diff --git a/package.json b/package.json index 683e3654..46f82677 100644 --- a/package.json +++ b/package.json @@ -38,19 +38,18 @@ "tag": "latest" }, "scripts": { - "typecheck": "tsc --noEmit && tsgo --noEmit", + "typecheck": "node scripts/tsrs.js --noEmit", "build": "vp pack", "build:esm:test": "node test/esm/index.js", - "build:mts:test": "tsc -p test/mts", - "build:test": "vp run build && vp run build:esm:test && vp run build:mts:test && vp run test-tsc", - "test-tsc": "vp run test-tsc:esm", - "test-tsc:esm": "tsc -p test/fixtures/ts-esm && node test/fixtures/ts-esm/hello.js", + "build:mts:test": "node scripts/tsrs.js -p test/mts", + "build:test": "vp run build && vp run build:esm:test && vp run build:mts:test && vp run test-tsrs", + "test-tsrs": "node scripts/tsrs.js -p test/fixtures/ts-esm && node test/fixtures/ts-esm/hello.js", "test": "vp run check && vp test run --reporter=dot", "bench": "vp test bench", "test-keepalive": "cross-env TEST_KEEPALIVE_COUNT=50 vp test run --reporter=dot --test-timeout 180000 keep-alive-header.test.ts", "cov": "vp test run --reporter=dot --coverage", "ci": "vp run cov && vp run build:test && npm pack", - "clean": "rm -rf dist && tsc -b --clean", + "clean": "rm -rf dist && node scripts/tsrs.js -b --clean", "prepublishOnly": "vp run build", "prepare": "vp config", "check": "vp check", @@ -67,13 +66,13 @@ }, "devDependencies": { "@eggjs/tsconfig": "^2.0.0", + "@ts-rs/wasm": "0.15.0-ts7.1.0-dev.20260929", "@types/busboy": "^1.5.4", "@types/mime-types": "^2.1.4", "@types/node": "^24.13.3", "@types/qs": "^6.15.0", "@types/selfsigned": "^2.1.0", "@types/tar-stream": "^2.2.3", - "@typescript/native-preview": "beta", "@vitest/coverage-v8": "catalog:", "busboy": "^1.6.0", "cross-env": "^10.1.0", @@ -81,7 +80,7 @@ "proxy": "^4.0.0", "selfsigned": "^3.0.1", "tar-stream": "^2.2.0", - "typescript": "^7.0.0", + "tsrs": "0.15.0-ts7.1.0-dev.20260929", "vite": "catalog:", "vite-plus": "catalog:", "vitest": "catalog:" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 34ef1818..bbc8eadb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -210,6 +210,9 @@ importers: '@eggjs/tsconfig': specifier: ^2.0.0 version: 2.0.0 + '@ts-rs/wasm': + specifier: 0.15.0-ts7.1.0-dev.20260929 + version: 0.15.0-ts7.1.0-dev.20260929 '@types/busboy': specifier: ^1.5.4 version: 1.5.5 @@ -228,9 +231,6 @@ importers: '@types/tar-stream': specifier: ^2.2.3 version: 2.2.3 - '@typescript/native-preview': - specifier: beta - version: 7.0.0-dev.20260421.2 '@vitest/coverage-v8': specifier: 'catalog:' version: 5.0.4(@vitest/browser@5.0.4)(vitest@5.0.4) @@ -252,18 +252,18 @@ importers: tar-stream: specifier: ^2.2.0 version: 2.2.0 - typescript: - specifier: ^7.0.0 - version: 7.0.2 + tsrs: + specifier: 0.15.0-ts7.1.0-dev.20260929 + version: 0.15.0-ts7.1.0-dev.20260929 vite: specifier: 'catalog:' - version: '@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)' + version: '@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)' vite-plus: specifier: 'catalog:' - version: 1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2) + version: 1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2) vitest: specifier: 'catalog:' - version: 5.0.4(@types/node@24.19.2)(@vitest/browser-preview@5.0.4)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)) + version: 5.0.4(@types/node@24.19.2)(@vitest/browser-preview@5.0.4)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)) packages: @@ -627,6 +627,45 @@ packages: peerDependencies: '@testing-library/dom': '>=7.21.4' + '@ts-rs/darwin-arm64@0.15.0-ts7.1.0-dev.20260929': + resolution: {integrity: sha512-gm84JKgef1CdiWvWdjJKiXyGhMu/k7BJP2xI5Dju2RSJp5W58cfThTWNJ5Mq7fnixGlOzSRegvKooBjRLQMJPQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@ts-rs/linux-arm64-gnu@0.15.0-ts7.1.0-dev.20260929': + resolution: {integrity: sha512-OglppJSIHHi4qRPtacSaSNJz7ttYMNgc0Jh3RS4IP+6UAqcNjrAPIbcadaWm2FGRkkTAMxkCKB6ltiY4F8FymQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@ts-rs/linux-arm64-musl@0.15.0-ts7.1.0-dev.20260929': + resolution: {integrity: sha512-Xerpk82Ox6xDCXprwEDWu16HNdE+dj/CVhemZE2gCLJDTm+UcuWP8bT7CzCWs5I+yvByHhJesgoCF1u4j4E1Cw==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@ts-rs/linux-x64-gnu@0.15.0-ts7.1.0-dev.20260929': + resolution: {integrity: sha512-WjisKfoR0AWOgoNaJOyv0AaUzR9sZxvCyQIQOYrwrO6dTCJqPeSYzt2N+XbQrjiH4XFZnb/GNRWaNtJH7+ylPA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@ts-rs/linux-x64-musl@0.15.0-ts7.1.0-dev.20260929': + resolution: {integrity: sha512-GMYKwwDQl1h4ApVmhbdd14eNwreSdKTsL2sp17Vr5Etz5GV42GG/KVsxZpIRxy2mpsXy/3WAJnm5wOx1F6M9KA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@ts-rs/wasm@0.15.0-ts7.1.0-dev.20260929': + resolution: {integrity: sha512-OzjW8AFuSSNFY+yu8pu5eDHdaBi9B3gHe4XgmBJ/9bc/tCwIyG/99c0F8ZywqOVn7c5946xi8FBowc+45rN/yA==} + engines: {node: '>=22'} + hasBin: true + '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -658,45 +697,6 @@ packages: '@types/tar-stream@2.2.3': resolution: {integrity: sha512-if3mugZfjVkXOMZdFjIHySxY13r6GXPpyOlsDmLffvyI7tLz9wXE8BFjNivXsvUeyJ1KNlOpfLnag+ISmxgxPw==} - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260421.2': - resolution: {integrity: sha512-fHv1r3ZmVo6zxuAIFmuX3w9QxbcauoG0SsWhmDwm6VmRubLlOJIcmTtlmV3JAb9oOnq8LuzZljzT7Q39fSMQDw==} - cpu: [arm64] - os: [darwin] - - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260421.2': - resolution: {integrity: sha512-KWTR6xbW9t+JS7D5DQIzo75pqVXVWUxF9PMv/+S6xsnOjCVd6g0ixHcFpFMJMKSUQpGPr8Z5f7b8ks6LHW01jg==} - cpu: [x64] - os: [darwin] - - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260421.2': - resolution: {integrity: sha512-VLMEuml3BhUb+jaL0TXQ4xvVODxJF+RhkI+tBWvlynsJI4khTXEiwWh+wPOJrsfBRYFRMXEu28Odl/HXkYze8w==} - cpu: [arm64] - os: [linux] - - '@typescript/native-preview-linux-arm@7.0.0-dev.20260421.2': - resolution: {integrity: sha512-BWLQO3nemLDSV5PoE5GPHe1dU9Dth77Kv8/cle9Ujcp4LhPo0KincdPqFH/qKeU/xvW25mgFueflZ1nc4rKuww==} - cpu: [arm] - os: [linux] - - '@typescript/native-preview-linux-x64@7.0.0-dev.20260421.2': - resolution: {integrity: sha512-qUrJWTB5/wv4wnRG0TRXElAxc2kykNiRNyEIEqBbLmzDlrcvAW7RRy8MXoY1ZyTiKGMu14itZ3x9oW6+blFpRw==} - cpu: [x64] - os: [linux] - - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260421.2': - resolution: {integrity: sha512-Rc6NsWlZmCs5YUKVzKgwoBOoRUGsPzct4BDMRX0csD1devLBBc4AbUXWKsJRbpwIAnqMO1ld4sNHEb+wXgfNHQ==} - cpu: [arm64] - os: [win32] - - '@typescript/native-preview-win32-x64@7.0.0-dev.20260421.2': - resolution: {integrity: sha512-GQv1+dya1t6EqF2Cpsb+xoozovdX10JUSf6Kl/8xNkTapzmlHd+uMr+8ku3jIASTxoRGn0Mklgjj3MDKrOTuLg==} - cpu: [x64] - os: [win32] - - '@typescript/native-preview@7.0.0-dev.20260421.2': - resolution: {integrity: sha512-CmajHI25HpVWE9R1XFoxr+cphJPxoYD3eFioQtAvXYkMFKnLdICMS9pXre9Pybizb75ejRxjKD5/CVG055rEIg==} - hasBin: true - '@typescript/typescript-aix-ppc64@7.0.2': resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} engines: {node: '>=16.20.0'} @@ -1608,6 +1608,11 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} + tsrs@0.15.0-ts7.1.0-dev.20260929: + resolution: {integrity: sha512-xisnBtyaf5C5I9xLqK9gjHSSCFeX9i2CS/lgTwcLaeR4t6IiJs/v2vkepyGio3jSObQ88LF9nwmkAGAp7vrVDw==} + engines: {node: '>=16.20.0'} + hasBin: true + type-fest@4.41.0: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} @@ -1948,6 +1953,23 @@ snapshots: dependencies: '@testing-library/dom': 10.4.2 + '@ts-rs/darwin-arm64@0.15.0-ts7.1.0-dev.20260929': + optional: true + + '@ts-rs/linux-arm64-gnu@0.15.0-ts7.1.0-dev.20260929': + optional: true + + '@ts-rs/linux-arm64-musl@0.15.0-ts7.1.0-dev.20260929': + optional: true + + '@ts-rs/linux-x64-gnu@0.15.0-ts7.1.0-dev.20260929': + optional: true + + '@ts-rs/linux-x64-musl@0.15.0-ts7.1.0-dev.20260929': + optional: true + + '@ts-rs/wasm@0.15.0-ts7.1.0-dev.20260929': {} + '@types/aria-query@5.0.4': {} '@types/busboy@1.5.5': @@ -1979,37 +2001,6 @@ snapshots: dependencies: '@types/node': 24.19.2 - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260421.2': - optional: true - - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260421.2': - optional: true - - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260421.2': - optional: true - - '@typescript/native-preview-linux-arm@7.0.0-dev.20260421.2': - optional: true - - '@typescript/native-preview-linux-x64@7.0.0-dev.20260421.2': - optional: true - - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260421.2': - optional: true - - '@typescript/native-preview-win32-x64@7.0.0-dev.20260421.2': - optional: true - - '@typescript/native-preview@7.0.0-dev.20260421.2': - optionalDependencies: - '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260421.2 - '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260421.2 - '@typescript/native-preview-linux-arm': 7.0.0-dev.20260421.2 - '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260421.2 - '@typescript/native-preview-linux-x64': 7.0.0-dev.20260421.2 - '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260421.2 - '@typescript/native-preview-win32-x64': 7.0.0-dev.20260421.2 - '@typescript/typescript-aix-ppc64@7.0.2': optional: true @@ -2070,29 +2061,29 @@ snapshots: '@typescript/typescript-win32-x64@7.0.2': optional: true - '@vitest/browser-preview@5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2))(vitest@5.0.4)': + '@vitest/browser-preview@5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2))(vitest@5.0.4)': dependencies: '@testing-library/dom': 10.4.2 '@testing-library/user-event': 14.6.8(@testing-library/dom@10.4.2) - '@vitest/browser': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2))(vitest@5.0.4) - vitest: 5.0.4(@types/node@24.19.2)(@vitest/browser-preview@5.0.4)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)) + '@vitest/browser': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2))(vitest@5.0.4) + vitest: 5.0.4(@types/node@24.19.2)(@vitest/browser-preview@5.0.4)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)) transitivePeerDependencies: - bufferutil - msw - utf-8-validate - vite - '@vitest/browser@5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2))(vitest@5.0.4)': + '@vitest/browser@5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2))(vitest@5.0.4)': dependencies: '@blazediff/core': 1.10.0 - '@vitest/mocker': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)) + '@vitest/mocker': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)) '@vitest/ui': 5.0.4(vitest@5.0.4) '@vitest/utils': 5.0.4 magic-string: 1.4.3 pngjs: 7.0.0 sirv: 3.0.2 tinyrainbow: 3.2.0 - vitest: 5.0.4(@types/node@24.19.2)(@vitest/browser-preview@5.0.4)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)) + vitest: 5.0.4(@types/node@24.19.2)(@vitest/browser-preview@5.0.4)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)) ws: 8.22.0 transitivePeerDependencies: - bufferutil @@ -2110,9 +2101,9 @@ snapshots: obug: 3.0.0 std-env: 4.3.0 tinyrainbow: 3.2.0 - vitest: 5.0.4(@types/node@24.19.2)(@vitest/browser-preview@5.0.4)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)) + vitest: 5.0.4(@types/node@24.19.2)(@vitest/browser-preview@5.0.4)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)) optionalDependencies: - '@vitest/browser': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2))(vitest@5.0.4) + '@vitest/browser': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2))(vitest@5.0.4) '@vitest/istanbul-lib-coverage@1.0.2': {} @@ -2120,14 +2111,14 @@ snapshots: dependencies: '@vitest/istanbul-lib-coverage': 1.0.2 - '@vitest/mocker@5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2))': + '@vitest/mocker@5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2))': dependencies: '@jridgewell/trace-mapping': 0.3.31 '@vitest/spy': 5.0.4 estree-walker: 3.0.3 magic-string: 1.4.3 optionalDependencies: - vite: '@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)' + vite: '@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)' '@vitest/pretty-format@5.0.4': dependencies: @@ -2150,7 +2141,7 @@ snapshots: pathe: 2.0.3 sirv: 3.0.2 tinyrainbow: 3.2.0 - vitest: 5.0.4(@types/node@24.19.2)(@vitest/browser-preview@5.0.4)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)) + vitest: 5.0.4(@types/node@24.19.2)(@vitest/browser-preview@5.0.4)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)) '@vitest/utils@5.0.4': dependencies: @@ -2158,7 +2149,7 @@ snapshots: convert-source-map: 2.0.0 tinyrainbow: 3.2.0 - '@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)': + '@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)': dependencies: '@oxc-project/runtime': 0.154.0 '@oxc-project/types': 0.154.0 @@ -2168,7 +2159,6 @@ snapshots: optionalDependencies: '@arethetypeswrong/core': 0.18.5 '@types/node': 24.19.2 - '@typescript/native-preview': 7.0.0-dev.20260421.2 '@voidzero-dev/vite-plus-darwin-arm64': 1.2.0 '@voidzero-dev/vite-plus-darwin-x64': 1.2.0 '@voidzero-dev/vite-plus-linux-arm64-gnu': 1.2.0 @@ -2557,7 +2547,7 @@ snapshots: dependencies: wrappy: 1.0.2 - oxfmt@0.73.0(vite-plus@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2)): + oxfmt@0.73.0(vite-plus@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2)): dependencies: tinypool: 2.2.0 optionalDependencies: @@ -2580,7 +2570,7 @@ snapshots: '@oxfmt/binding-win32-arm64-msvc': 0.73.0 '@oxfmt/binding-win32-ia32-msvc': 0.73.0 '@oxfmt/binding-win32-x64-msvc': 0.73.0 - vite-plus: 1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2) + vite-plus: 1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2) oxlint-tsgolint@7.0.2004: optionalDependencies: @@ -2591,7 +2581,7 @@ snapshots: '@oxlint-tsgolint/win32-arm64': 7.0.2004 '@oxlint-tsgolint/win32-x64': 7.0.2004 - oxlint@1.88.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2)): + oxlint@1.88.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2)): optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.88.0 '@oxlint/binding-android-arm64': 1.88.0 @@ -2613,7 +2603,7 @@ snapshots: '@oxlint/binding-win32-ia32-msvc': 1.88.0 '@oxlint/binding-win32-x64-msvc': 1.88.0 oxlint-tsgolint: 7.0.2004 - vite-plus: 1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2) + vite-plus: 1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2) path-key@3.1.1: {} @@ -2751,6 +2741,14 @@ snapshots: totalist@3.0.1: {} + tsrs@0.15.0-ts7.1.0-dev.20260929: + optionalDependencies: + '@ts-rs/darwin-arm64': 0.15.0-ts7.1.0-dev.20260929 + '@ts-rs/linux-arm64-gnu': 0.15.0-ts7.1.0-dev.20260929 + '@ts-rs/linux-arm64-musl': 0.15.0-ts7.1.0-dev.20260929 + '@ts-rs/linux-x64-gnu': 0.15.0-ts7.1.0-dev.20260929 + '@ts-rs/linux-x64-musl': 0.15.0-ts7.1.0-dev.20260929 + type-fest@4.41.0: {} typescript@5.6.1-rc: @@ -2778,6 +2776,7 @@ snapshots: '@typescript/typescript-sunos-x64': 7.0.2 '@typescript/typescript-win32-arm64': 7.0.2 '@typescript/typescript-win32-x64': 7.0.2 + optional: true undici-types@7.24.6: {} @@ -2788,22 +2787,22 @@ snapshots: validate-npm-package-name@5.0.1: optional: true - vite-plus@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2): + vite-plus@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2): dependencies: '@oxc-project/types': 0.154.0 '@oxlint/plugins': 1.88.0 - '@vitest/browser': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2))(vitest@5.0.4) - '@vitest/browser-preview': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2))(vitest@5.0.4) - '@vitest/mocker': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)) + '@vitest/browser': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2))(vitest@5.0.4) + '@vitest/browser-preview': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2))(vitest@5.0.4) + '@vitest/mocker': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)) '@vitest/pretty-format': 5.0.4 '@vitest/snapshot': 5.0.4 '@vitest/spy': 5.0.4 '@vitest/utils': 5.0.4 - oxfmt: 0.73.0(vite-plus@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2)) - oxlint: 1.88.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2)) + oxfmt: 0.73.0(vite-plus@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2)) + oxlint: 1.88.0(oxlint-tsgolint@7.0.2004)(vite-plus@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(typescript@7.0.2)) oxlint-tsgolint: 7.0.2004 - vite: '@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)' - vitest: 5.0.4(@types/node@24.19.2)(@vitest/browser-preview@5.0.4)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)) + vite: '@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)' + vitest: 5.0.4(@types/node@24.19.2)(@vitest/browser-preview@5.0.4)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)) optionalDependencies: '@voidzero-dev/vite-plus-darwin-arm64': 1.2.0 '@voidzero-dev/vite-plus-darwin-x64': 1.2.0 @@ -2848,10 +2847,10 @@ snapshots: - vue-tsc - yaml - vitest@5.0.4(@types/node@24.19.2)(@vitest/browser-preview@5.0.4)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)): + vitest@5.0.4(@types/node@24.19.2)(@vitest/browser-preview@5.0.4)(@vitest/coverage-v8@5.0.4)(@vitest/ui@5.0.4)(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)): dependencies: '@types/chai': 5.2.3 - '@vitest/mocker': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)) + '@vitest/mocker': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)) chai: 6.3.0 es-module-lexer: 2.3.2 expect-type: 1.4.0 @@ -2862,11 +2861,11 @@ snapshots: tinybench: 6.2.2 tinyexec: 1.3.1 tinyglobby: 0.2.17 - vite: '@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2)' + vite: '@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2)' why-is-node-running: 3.2.1 optionalDependencies: '@types/node': 24.19.2 - '@vitest/browser-preview': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(@typescript/native-preview@7.0.0-dev.20260421.2)(typescript@7.0.2))(vitest@5.0.4) + '@vitest/browser-preview': 5.0.4(@voidzero-dev/vite-plus-core@1.2.0(@arethetypeswrong/core@0.18.5)(@types/node@24.19.2)(typescript@7.0.2))(vitest@5.0.4) '@vitest/coverage-v8': 5.0.4(@vitest/browser@5.0.4)(vitest@5.0.4) '@vitest/ui': 5.0.4(vitest@5.0.4) transitivePeerDependencies: diff --git a/scripts/tsrs.js b/scripts/tsrs.js new file mode 100644 index 00000000..d342f385 --- /dev/null +++ b/scripts/tsrs.js @@ -0,0 +1,10 @@ +// tsrs has native binaries for Apple Silicon and 64-bit Linux. +// Use its WebAssembly compiler on other platforms, including Windows. +const hasNativeBinary = + (process.platform === 'darwin' && process.arch === 'arm64') || + (process.platform === 'linux' && ['arm64', 'x64'].includes(process.arch)); +const compiler = hasNativeBinary ? 'tsrs' : '@ts-rs/wasm'; +const packageUrl = import.meta.resolve(`${compiler}/package.json`); +const { default: packageJson } = await import(packageUrl, { with: { type: 'json' } }); + +await import(new URL(Object.values(packageJson.bin)[0], packageUrl).href);