From 51aecd153aa46c8dd12d640275e2607919ff8d7d Mon Sep 17 00:00:00 2001 From: Nikita Skovoroda Date: Thu, 26 Mar 2026 21:51:53 +0400 Subject: [PATCH] feat: --oxc support --- bin/index.js | 24 +++++- package.json | 6 ++ pnpm-lock.yaml | 217 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 245 insertions(+), 2 deletions(-) diff --git a/bin/index.js b/bin/index.js index 158a409..275b6d9 100755 --- a/bin/index.js +++ b/bin/index.js @@ -93,6 +93,7 @@ function parseOptions() { typescript: false, flow: false, esbuild: false, + oxc: false, babel: false, coverage: getEnvFlag('EXODUS_TEST_COVERAGE'), coverageEngine: process.platform === 'win32' ? 'node' : 'c8', // c8 or node. TODO: can we use c8 on win? @@ -167,6 +168,9 @@ function parseOptions() { case '--esbuild': options.esbuild = args[0] instanceof OptionValue ? String(args.shift()) : '*' break + case '--oxc': + options.oxc = args[0] instanceof OptionValue ? String(args.shift()) : '*' + break case '--babel': options.babel = true break @@ -453,6 +457,8 @@ if (options.concurrency) { options.concurrency = concurrency } +assert(!options.esbuild || !options.oxc, 'Options --esbuild and --oxc are mutually exclusive') + if (options.esbuild && !options.bundle) { setEnv('EXODUS_TEST_ESBUILD', options.esbuild) if (options.loader === '--import') { @@ -465,15 +471,29 @@ if (options.esbuild && !options.bundle) { console.error(`Error: ${engineName} does not support --esbuild option`) process.exit(1) } +} else if (options.oxc) { + setEnv('EXODUS_TEST_OXC', options.oxc) + if (options.loader === '--import') { + const optional = options.oxc === '*' ? '' : '.optional' + args.push('--import', import.meta.resolve(`../loader/oxc${optional}.js`)) + } else if (options.flagEngine === false) { + // Engine is set via env, --oxc set via flag. Allow but warn + console.warn(`Warning: ${engineName} does not support --oxc option`) + } else { + console.error(`Error: ${engineName} does not support --oxc option`) + process.exit(1) + } } if (options.babel) { assert(!options.esbuild, 'Options --babel and --esbuild are mutually exclusive') + assert(!options.oxc, 'Options --babel and --oxc are mutually exclusive') args.push('-r', import.meta.resolve('../loader/babel.cjs')) } if (options.typescript) { assert(!options.esbuild, 'Options --typescript and --esbuild are mutually exclusive') + assert(!options.oxc, 'Options --typescript and --oxc are mutually exclusive') assert(!options.babel, 'Options --typescript and --babel are mutually exclusive') if (options.ts === 'flag') { @@ -552,9 +572,9 @@ if (options.debug.files) { } const tsTests = files.filter((file) => /\.[mc]?tsx?$/u.test(file)) -const tsSupport = options.ts === 'auto' || options.esbuild || options.typescript || options.babel +const tsSupport = options.ts === 'auto' || options.esbuild || options.oxc || options.typescript || options.babel if (tsTests.length > 0 && !tsSupport) { - console.error(`Some tests require --typescript or --esbuild flag:\n ${tsTests.join('\n ')}`) + console.error(`Some tests require --typescript, --esbuild or --oxc flag:\n ${tsTests.join('\n ')}`) process.exit(1) } else if (!allfiles.some((file) => /\.[cm]?ts$/.test(file)) && options.typescript) { console.warn(`Flag --typescript has been used, but there were no TypeScript tests found!`) diff --git a/package.json b/package.json index 1eaecde..3a8ffae 100644 --- a/package.json +++ b/package.json @@ -133,6 +133,7 @@ "test:typescript": "node ./bin/index.js --jest --typescript tests/typescript.test.ts", "test:jest": "node ./bin/index.js --jest --esbuild=ts,sum.test.js", "test:esbuild": "node ./bin/index.js --jest --esbuild", + "test:oxc": "node ./bin/index.js --jest --oxc", "test:tape": "node ./bin/index.js tests/vendor/tape/test/*.js tests/tape/*.test.*js", "test:simple": "node ./bin/index.js 'tests/*.test.js'", "test:pure": "EXODUS_TEST_ENGINE=node:pure npm run test --", @@ -184,6 +185,7 @@ "@chalker/queue": "^1.0.1", "@exodus/replay": "^1.0.0-rc.11", "@exodus/test-bundler": "1.0.0-rc.17", + "@oxc-node/core": "^0.0.35", "c8": "^9.1.0", "expect": "^30.2.0", "fast-glob": "^3.2.11", @@ -196,6 +198,7 @@ "@exodus/eslint-config": "^5.24.0", "@exodus/prettier": "^1.0.0", "@jest/globals": "^29.7.0", + "@oxc-node/core": "^0.0.35", "@types/jest-when": "^3.5.2", "@types/node": "^24.0.11", "@typescript-eslint/eslint-plugin": "^7.15.0", @@ -223,6 +226,9 @@ "@babel/register": { "optional": true }, + "@oxc-node/core": { + "optional": true + }, "electron": { "optional": true }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f9058bf..d4648b9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,6 +83,9 @@ importers: '@exodus/test-bundler': specifier: 1.0.0-rc.17 version: link:bundler + '@oxc-node/core': + specifier: ^0.0.35 + version: 0.0.35 c8: specifier: ^9.1.0 version: 9.1.0 @@ -454,6 +457,15 @@ packages: resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==, tarball: https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz} engines: {node: '>=12'} + '@emnapi/core@1.9.1': + resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==, tarball: https://registry.npmjs.org/@emnapi/core/-/core-1.9.1.tgz} + + '@emnapi/runtime@1.9.1': + resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==, tarball: https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.9.1.tgz} + + '@emnapi/wasi-threads@1.2.0': + resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==, tarball: https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.0.tgz} + '@es-joy/jsdoccomment@0.43.1': resolution: {integrity: sha512-I238eDtOolvCuvtxrnqtlBaw0BwdQuYqK7eA6XIonicMdOOOb75mqdIzkGDUbS04+1Di007rgm9snFRNeVrOog==, tarball: https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.43.1.tgz} engines: {node: '>=16'} @@ -800,6 +812,9 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, tarball: https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz} + '@napi-rs/wasm-runtime@1.1.1': + resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==, tarball: https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.1.tgz} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, tarball: https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz} engines: {node: '>= 8'} @@ -812,6 +827,94 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, tarball: https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} engines: {node: '>= 8'} + '@oxc-node/core-android-arm-eabi@0.0.35': + resolution: {integrity: sha512-Vgw/DtArB1fZJ7LX4FX7YDpRvWzwv80lFNngTcamS+9Kbd83HpZb6Tg38t6f7Ubyc/+cL0TTMo55Kg8gwnQGHQ==, tarball: https://registry.npmjs.org/@oxc-node/core-android-arm-eabi/-/core-android-arm-eabi-0.0.35.tgz} + cpu: [arm] + os: [android] + + '@oxc-node/core-android-arm64@0.0.35': + resolution: {integrity: sha512-Z/2jKqkTybSDnx2lBb44K0TLD2eUgLMi0te0pp5p5GVnsOZ8A+qSnhZpsPAR8GAbGERdMNOWrDYqj0/VYQt7sQ==, tarball: https://registry.npmjs.org/@oxc-node/core-android-arm64/-/core-android-arm64-0.0.35.tgz} + cpu: [arm64] + os: [android] + + '@oxc-node/core-darwin-arm64@0.0.35': + resolution: {integrity: sha512-aeEG/a1zj8pA6GC0P7NypzdDY0c6AbZOdbxaGl9UQlwGgHmw6sOtq5PJO+7rCvzxUKPxBH9VZOVg0laFcncIFw==, tarball: https://registry.npmjs.org/@oxc-node/core-darwin-arm64/-/core-darwin-arm64-0.0.35.tgz} + cpu: [arm64] + os: [darwin] + + '@oxc-node/core-darwin-x64@0.0.35': + resolution: {integrity: sha512-MtxGaUR2LBcUmqINyxzSYdx5om9KlFjyvN8cx/NizH6U5nYs7Wh/XAIoGpcQmkK2snT1FsgJeGR9L01Q1oqmng==, tarball: https://registry.npmjs.org/@oxc-node/core-darwin-x64/-/core-darwin-x64-0.0.35.tgz} + cpu: [x64] + os: [darwin] + + '@oxc-node/core-freebsd-x64@0.0.35': + resolution: {integrity: sha512-xsZNqMeavNxi/WTxaQMZj6walhj7skCu36yff5q0RjsV7Dzp3RQ/SYK1t3ydw3cwPz2oZCx0AukAYJAj4i9vdw==, tarball: https://registry.npmjs.org/@oxc-node/core-freebsd-x64/-/core-freebsd-x64-0.0.35.tgz} + cpu: [x64] + os: [freebsd] + + '@oxc-node/core-linux-arm-gnueabihf@0.0.35': + resolution: {integrity: sha512-F+d948mEzQMvcv0BQO3NN4DP0jsJwvvD5VGCFcR2mFa/z6L7UuRkS8yOKnP7tUfZjri7BwxXn37Szj0ZY7pEPA==, tarball: https://registry.npmjs.org/@oxc-node/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-0.0.35.tgz} + cpu: [arm] + os: [linux] + + '@oxc-node/core-linux-arm64-gnu@0.0.35': + resolution: {integrity: sha512-wKbAstp6Ztq5UVBf/csnMTPMef+wGsrNykJCAtJuO/l88Okm4jn6wnhudeD3hf/426Vw93txBS8veqN2JSb6fg==, tarball: https://registry.npmjs.org/@oxc-node/core-linux-arm64-gnu/-/core-linux-arm64-gnu-0.0.35.tgz} + cpu: [arm64] + os: [linux] + + '@oxc-node/core-linux-arm64-musl@0.0.35': + resolution: {integrity: sha512-IdLaYnFrDGRICQ86AoEQEv5Rfo//knhg4g9ABy7QE3C231C3YpbgwtY7YH7Qv+xHDuUHnTNo8Lo/iraSIY3tQA==, tarball: https://registry.npmjs.org/@oxc-node/core-linux-arm64-musl/-/core-linux-arm64-musl-0.0.35.tgz} + cpu: [arm64] + os: [linux] + + '@oxc-node/core-linux-ppc64-gnu@0.0.35': + resolution: {integrity: sha512-yxfWpG2as+al6G9epDvFk8AX1UWy76WlwCP3pUGtpEUGuoAO63JAHUMDSXv1sSd1YatJmRJ75ptexU6c/xMdXg==, tarball: https://registry.npmjs.org/@oxc-node/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-0.0.35.tgz} + cpu: [ppc64] + os: [linux] + + '@oxc-node/core-linux-s390x-gnu@0.0.35': + resolution: {integrity: sha512-nH3mnP6ger1i4LaroWhvtk3coquNYBJD9eqG3OEuJEFGo1Ao80irFcFoktQCLLq47uomYuNQxNJw5covYNHvLw==, tarball: https://registry.npmjs.org/@oxc-node/core-linux-s390x-gnu/-/core-linux-s390x-gnu-0.0.35.tgz} + cpu: [s390x] + os: [linux] + + '@oxc-node/core-linux-x64-gnu@0.0.35': + resolution: {integrity: sha512-2VKErkkTxLViK/8xbdRoQ9+sid8ZGRROLkcmMtrggjQLU69EhL0wioUVztnDVjHfOPAN17lEAN7tUgxz+PAxCg==, tarball: https://registry.npmjs.org/@oxc-node/core-linux-x64-gnu/-/core-linux-x64-gnu-0.0.35.tgz} + cpu: [x64] + os: [linux] + + '@oxc-node/core-linux-x64-musl@0.0.35': + resolution: {integrity: sha512-QDDZYWMbwB/1uyn0BPMYeqT6miWQBljzLCYESmsVcaHOps204yKHI1Ezp79n2BiYEghhu9RPWrOd4wZ7+Gqa7Q==, tarball: https://registry.npmjs.org/@oxc-node/core-linux-x64-musl/-/core-linux-x64-musl-0.0.35.tgz} + cpu: [x64] + os: [linux] + + '@oxc-node/core-openharmony-arm64@0.0.35': + resolution: {integrity: sha512-ihb0W8mc0iM9SpfFwj9xY/1gVAPv2y7fGuW2w4jWOICCY2enJ8GnY2N9eYloPkHd2/2+S87M63H998psVZQquQ==, tarball: https://registry.npmjs.org/@oxc-node/core-openharmony-arm64/-/core-openharmony-arm64-0.0.35.tgz} + cpu: [arm64] + os: [openharmony] + + '@oxc-node/core-wasm32-wasi@0.0.35': + resolution: {integrity: sha512-GoT1X1Rw3MXbvU25rsqT6gLhl9AKBdLe1ss6pVHxzps0Va6qrSD/2H4alGglUX+qccKcw0kCgJbPKJphM/0CrQ==, tarball: https://registry.npmjs.org/@oxc-node/core-wasm32-wasi/-/core-wasm32-wasi-0.0.35.tgz} + engines: {node: '>=14.0.0'} + cpu: [wasm32] + + '@oxc-node/core-win32-arm64-msvc@0.0.35': + resolution: {integrity: sha512-ObSjUyRd5md+hKg4j8ufhjaeXHGm4f+9cz1y20mOHr/HOkBIY6CNoPM7x5JEzZNerVZ9Ye62G6t6HNQZttBjsg==, tarball: https://registry.npmjs.org/@oxc-node/core-win32-arm64-msvc/-/core-win32-arm64-msvc-0.0.35.tgz} + cpu: [arm64] + os: [win32] + + '@oxc-node/core-win32-ia32-msvc@0.0.35': + resolution: {integrity: sha512-ZE7/di30tfhh/2ItgcZim4aPLw1ve+TQrp6oJSqMRyYjq0k1AwFrxIqICbaAG9sk79ap9Sy1icFMfFgSkhnABQ==, tarball: https://registry.npmjs.org/@oxc-node/core-win32-ia32-msvc/-/core-win32-ia32-msvc-0.0.35.tgz} + cpu: [ia32] + os: [win32] + + '@oxc-node/core-win32-x64-msvc@0.0.35': + resolution: {integrity: sha512-9OyyjY/ECi1icwq32baG0Uct7RuAHbVxzGDffJzNhRtBABpQiIQauoaVuYiSlNecqnA8qFYxh2wxbKaVlsR1YA==, tarball: https://registry.npmjs.org/@oxc-node/core-win32-x64-msvc/-/core-win32-x64-msvc-0.0.35.tgz} + cpu: [x64] + os: [win32] + + '@oxc-node/core@0.0.35': + resolution: {integrity: sha512-PV46QRDI2wCDdaPzppEh4UfzFmmpSt+1dX32ooq8RWb0BuWX24+LKYicAmSrsk1ls8JRSkAqiWrjrYFHIGozGg==, tarball: https://registry.npmjs.org/@oxc-node/core/-/core-0.0.35.tgz} + '@pkgr/core@0.1.1': resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==, tarball: https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -867,6 +970,9 @@ packages: '@tootallnate/quickjs-emscripten@0.23.0': resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==, tarball: https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==, tarball: https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz} + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, tarball: https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz} @@ -3298,6 +3404,10 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==, tarball: https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz} engines: {node: '>= 6'} + pirates@4.0.7: + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==, tarball: https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz} + engines: {node: '>= 6'} + pkg-dir@3.0.0: resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==, tarball: https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz} engines: {node: '>=6'} @@ -4599,6 +4709,22 @@ snapshots: transitivePeerDependencies: - supports-color + '@emnapi/core@1.9.1': + dependencies: + '@emnapi/wasi-threads': 1.2.0 + tslib: 2.6.3 + optional: true + + '@emnapi/runtime@1.9.1': + dependencies: + tslib: 2.6.3 + optional: true + + '@emnapi/wasi-threads@1.2.0': + dependencies: + tslib: 2.6.3 + optional: true + '@es-joy/jsdoccomment@0.43.1': dependencies: '@types/eslint': 8.56.10 @@ -5019,6 +5145,13 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 + '@napi-rs/wasm-runtime@1.1.1': + dependencies: + '@emnapi/core': 1.9.1 + '@emnapi/runtime': 1.9.1 + '@tybys/wasm-util': 0.10.1 + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -5031,6 +5164,82 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + '@oxc-node/core-android-arm-eabi@0.0.35': + optional: true + + '@oxc-node/core-android-arm64@0.0.35': + optional: true + + '@oxc-node/core-darwin-arm64@0.0.35': + optional: true + + '@oxc-node/core-darwin-x64@0.0.35': + optional: true + + '@oxc-node/core-freebsd-x64@0.0.35': + optional: true + + '@oxc-node/core-linux-arm-gnueabihf@0.0.35': + optional: true + + '@oxc-node/core-linux-arm64-gnu@0.0.35': + optional: true + + '@oxc-node/core-linux-arm64-musl@0.0.35': + optional: true + + '@oxc-node/core-linux-ppc64-gnu@0.0.35': + optional: true + + '@oxc-node/core-linux-s390x-gnu@0.0.35': + optional: true + + '@oxc-node/core-linux-x64-gnu@0.0.35': + optional: true + + '@oxc-node/core-linux-x64-musl@0.0.35': + optional: true + + '@oxc-node/core-openharmony-arm64@0.0.35': + optional: true + + '@oxc-node/core-wasm32-wasi@0.0.35': + dependencies: + '@napi-rs/wasm-runtime': 1.1.1 + optional: true + + '@oxc-node/core-win32-arm64-msvc@0.0.35': + optional: true + + '@oxc-node/core-win32-ia32-msvc@0.0.35': + optional: true + + '@oxc-node/core-win32-x64-msvc@0.0.35': + optional: true + + '@oxc-node/core@0.0.35': + dependencies: + pirates: 4.0.7 + optionalDependencies: + '@oxc-node/core-android-arm-eabi': 0.0.35 + '@oxc-node/core-android-arm64': 0.0.35 + '@oxc-node/core-darwin-arm64': 0.0.35 + '@oxc-node/core-darwin-x64': 0.0.35 + '@oxc-node/core-freebsd-x64': 0.0.35 + '@oxc-node/core-linux-arm-gnueabihf': 0.0.35 + '@oxc-node/core-linux-arm64-gnu': 0.0.35 + '@oxc-node/core-linux-arm64-musl': 0.0.35 + '@oxc-node/core-linux-ppc64-gnu': 0.0.35 + '@oxc-node/core-linux-s390x-gnu': 0.0.35 + '@oxc-node/core-linux-x64-gnu': 0.0.35 + '@oxc-node/core-linux-x64-musl': 0.0.35 + '@oxc-node/core-openharmony-arm64': 0.0.35 + '@oxc-node/core-wasm32-wasi': 0.0.35 + '@oxc-node/core-win32-arm64-msvc': 0.0.35 + '@oxc-node/core-win32-ia32-msvc': 0.0.35 + '@oxc-node/core-win32-x64-msvc': 0.0.35 + optional: true + '@pkgr/core@0.1.1': {} '@puppeteer/browsers@2.12.0': @@ -5095,6 +5304,11 @@ snapshots: '@tootallnate/quickjs-emscripten@0.23.0': optional: true + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.6.3 + optional: true + '@types/babel__core@7.20.5': dependencies: '@babel/parser': 7.27.0 @@ -8135,6 +8349,9 @@ snapshots: pirates@4.0.6: {} + pirates@4.0.7: + optional: true + pkg-dir@3.0.0: dependencies: find-up: 3.0.0