diff --git a/.changeset/worker-drop-commonjs.md b/.changeset/worker-drop-commonjs.md new file mode 100644 index 00000000000..a30323221ab --- /dev/null +++ b/.changeset/worker-drop-commonjs.md @@ -0,0 +1,5 @@ +--- +"@fast-check/worker": minor +--- + +💥(worker) Drop CommonJS support diff --git a/.github/workflows/build-status.yml b/.github/workflows/build-status.yml index b621f9fd80a..4d91d012ff3 100644 --- a/.github/workflows/build-status.yml +++ b/.github/workflows/build-status.yml @@ -479,14 +479,14 @@ jobs: - name: Check in CommonJS mode run: | if [ "${{ matrix.ts-version }}" = "5.0" ] || [ "${{ matrix.ts-version }}" = "5.7" ]; then - pnpm --filter {./packages/**} --filter '!@fast-check/ava' --filter '!@fast-check/poisoning' --parallel -c exec "cd test-types && pnpm --package typescript@${{ matrix.ts-version }} dlx tsc --noEmit --skipLibCheck --strict *.cts" + pnpm --filter {./packages/**} --filter '!@fast-check/ava' --filter '!@fast-check/poisoning' --filter '!@fast-check/worker' --parallel -c exec "cd test-types && pnpm --package typescript@${{ matrix.ts-version }} dlx tsc --noEmit --skipLibCheck --strict *.cts" else pnpm --filter {./packages/**} --parallel -c exec "cd test-types && pnpm --package typescript@${{ matrix.ts-version }} dlx tsc --noEmit --skipLibCheck --strict *.cts" fi - name: Check in CommonJS mode with NodeNext run: | if [ "${{ matrix.ts-version }}" = "5.0" ] || [ "${{ matrix.ts-version }}" = "5.7" ]; then - pnpm --filter {./packages/**} --filter '!@fast-check/ava' --filter '!@fast-check/poisoning' --parallel -c exec "cd test-types && pnpm --package typescript@${{ matrix.ts-version }} dlx tsc --noEmit --skipLibCheck --strict --module NodeNext --moduleResolution NodeNext *.cts" + pnpm --filter {./packages/**} --filter '!@fast-check/ava' --filter '!@fast-check/poisoning' --filter '!@fast-check/worker' --parallel -c exec "cd test-types && pnpm --package typescript@${{ matrix.ts-version }} dlx tsc --noEmit --skipLibCheck --strict --module NodeNext --moduleResolution NodeNext *.cts" else pnpm --filter {./packages/**} --parallel -c exec "cd test-types && pnpm --package typescript@${{ matrix.ts-version }} dlx tsc --noEmit --skipLibCheck --strict --module NodeNext --moduleResolution NodeNext *.cts" fi @@ -495,14 +495,14 @@ jobs: - name: Check in ES Modules mode run: | if [ "${{ matrix.ts-version }}" = "5.0" ] || [ "${{ matrix.ts-version }}" = "5.7" ]; then - pnpm --filter {./packages/**} --filter '!@fast-check/ava' --filter '!@fast-check/poisoning' --parallel -c exec "cd test-types && pnpm --package typescript@${{ matrix.ts-version }} dlx tsc --noEmit --skipLibCheck --strict *.mts" + pnpm --filter {./packages/**} --filter '!@fast-check/ava' --filter '!@fast-check/poisoning' --filter '!@fast-check/worker' --parallel -c exec "cd test-types && pnpm --package typescript@${{ matrix.ts-version }} dlx tsc --noEmit --skipLibCheck --strict *.mts" else pnpm --filter {./packages/**} --parallel -c exec "cd test-types && pnpm --package typescript@${{ matrix.ts-version }} dlx tsc --noEmit --skipLibCheck --strict *.mts" fi - name: Check in ES Modules mode with NodeNext run: | if [ "${{ matrix.ts-version }}" = "5.0" ] || [ "${{ matrix.ts-version }}" = "5.7" ]; then - pnpm --filter {./packages/**} --filter '!@fast-check/ava' --filter '!@fast-check/poisoning' --parallel -c exec "cd test-types && pnpm --package typescript@${{ matrix.ts-version }} dlx tsc --noEmit --skipLibCheck --strict --module NodeNext --moduleResolution NodeNext *.mts" + pnpm --filter {./packages/**} --filter '!@fast-check/ava' --filter '!@fast-check/poisoning' --filter '!@fast-check/worker' --parallel -c exec "cd test-types && pnpm --package typescript@${{ matrix.ts-version }} dlx tsc --noEmit --skipLibCheck --strict --module NodeNext --moduleResolution NodeNext *.mts" else pnpm --filter {./packages/**} --parallel -c exec "cd test-types && pnpm --package typescript@${{ matrix.ts-version }} dlx tsc --noEmit --skipLibCheck --strict --module NodeNext --moduleResolution NodeNext *.mts" fi diff --git a/packages/jest/package.json b/packages/jest/package.json index 8445c5d3d8e..e80827563a8 100644 --- a/packages/jest/package.json +++ b/packages/jest/package.json @@ -38,7 +38,7 @@ "build:publish-types": "tsc -p tsconfig.publish.types.json && tsc -p tsconfig.publish.types.json --outDir lib/cjs", "build:publish-cjs": "tsc -p tsconfig.publish.json --outDir lib/cjs && cp package.cjs-template.json lib/cjs/package.json", "build:publish-esm": "tsc -p tsconfig.publish.json --module es2015 --moduleResolution node", - "test-bundle:cjs": "node --experimental-vm-modules node_modules/jest/bin/jest.js --config test-bundle/jest.config.cjs", + "test-bundle:cjs": "node --experimental-vm-modules node_modules/jest/bin/jest.js --config test-bundle/jest.config.main.cjs && node --experimental-vm-modules node_modules/jest/bin/jest.js --config test-bundle/jest.config.worker.cjs", "test-bundle:mjs": "node --experimental-vm-modules node_modules/jest/bin/jest.js --config test-bundle/jest.config.mjs", "test-bundle": "pnpm run test-bundle:cjs && pnpm run test-bundle:mjs", "typecheck": "tsc --noEmit" @@ -80,6 +80,7 @@ "fast-check": "workspace:*", "jest": "^30.2.0", "jest-jasmine2": "^30.2.0", + "jest-light-runner": "^0.7.11", "typescript": "~5.9.3", "vite": "^7.3.1", "vitest": "^4.0.5" diff --git a/packages/jest/test-bundle/jest.config.cjs b/packages/jest/test-bundle/jest.config.main.cjs similarity index 51% rename from packages/jest/test-bundle/jest.config.cjs rename to packages/jest/test-bundle/jest.config.main.cjs index 7e7b2459dc4..af673ff4291 100644 --- a/packages/jest/test-bundle/jest.config.cjs +++ b/packages/jest/test-bundle/jest.config.main.cjs @@ -1,4 +1,4 @@ module.exports = { - testMatch: ['/*.spec.cjs'], + testMatch: ['/main.spec.cjs'], testTimeout: 20_000, }; diff --git a/packages/jest/test-bundle/jest.config.worker.cjs b/packages/jest/test-bundle/jest.config.worker.cjs new file mode 100644 index 00000000000..7334a50355b --- /dev/null +++ b/packages/jest/test-bundle/jest.config.worker.cjs @@ -0,0 +1,5 @@ +module.exports = { + runner: 'jest-light-runner', + testMatch: ['/worker.spec.cjs'], + testTimeout: 20_000, +}; diff --git a/packages/jest/test/jest-fast-check.spec.ts b/packages/jest/test/jest-fast-check.spec.ts index d30c6fbf33a..adfdc2ba504 100644 --- a/packages/jest/test/jest-fast-check.spec.ts +++ b/packages/jest/test/jest-fast-check.spec.ts @@ -55,6 +55,7 @@ describe.each([ { specName: 'it', runnerName: 'it', useWorkers: false, testRunner: undefined }, ])('$specName', ({ runnerName, useWorkers, testRunner }) => { const options = { useWorkers, testRunner }; + const useESMOnlyWorkers = useWorkers; it.concurrent('should pass on successful no prop mode', async () => { // Arrange @@ -88,7 +89,7 @@ describe.each([ expect(out).toMatch(/[×✕] failing no prop/); }); - if (useWorkers) { + if (useWorkers && !useESMOnlyWorkers) { it.concurrent('should fail on property blocking the main thread', async () => { // Arrange const specDirectory = await writeToFile(runnerName, options, () => { @@ -152,7 +153,7 @@ describe.each([ // Assert expectFail(out); - expectAlignedSeeds(out); + expectAlignedSeeds(out, { noAlignWithJest: useESMOnlyWorkers }); expect(out).toMatch(/[×✕] property fail sync \(with seed=-?\d+\)/); }); @@ -170,7 +171,7 @@ describe.each([ // Assert expectFail(out); - expectAlignedSeeds(out); + expectAlignedSeeds(out, { noAlignWithJest: useESMOnlyWorkers }); expect(out).toMatch(/[×✕] property fail async \(with seed=-?\d+\)/); }); @@ -206,7 +207,7 @@ describe.each([ // Assert expectFail(out); - expectAlignedSeeds(out); + expectAlignedSeeds(out, { noAlignWithJest: useESMOnlyWorkers }); expect(out).toMatch(/[×✕] property fail record \(with seed=-?\d+\)/); }); @@ -259,38 +260,47 @@ describe.each([ expect(out).toMatch(/[×✕] property fail with globally requested seed \(with seed=4848\)/); }); - it.concurrent('should fail with seed requested at jest level', async () => { - // Arrange - const specDirectory = await writeToFile(runnerName, options, () => { - runner.prop([fc.constant(null)])('property fail with globally requested seed', (_unused) => false); - }); - - // Act - const out = await runSpec(specDirectory, { jestSeed: 6969 }); - - // Assert - expectFail(out); - expectAlignedSeeds(out); - expect(out).toMatch(/[×✕] property fail with globally requested seed \(with seed=6969\)/); - }); + // NOTE: Actually @fast-check/worker package up to version 0.5.0 should pass this test + // without any concerns. Problems came with 0.6.0 and the drop of the CJS bundle. + // But for now 0.6.0 is not published and we have not found ways to force pnpm to get + // the worker package from npm registry rather than taking the local instance. - describe('.skip', () => { - it.concurrent('should never be executed', async () => { + if (!useESMOnlyWorkers) { + it.concurrent('should fail with seed requested at jest level', async () => { // Arrange const specDirectory = await writeToFile(runnerName, options, () => { - runner.skip.prop([fc.constant(null)])('property never executed', (_unused) => false); + runner.prop([fc.constant(null)])('property fail with globally requested seed', (_unused) => false); }); // Act - const out = await runSpec(specDirectory); + const out = await runSpec(specDirectory, { jestSeed: 6969 }); // Assert - expect(out).toMatch(/Test Suites:\s+1 skipped, 0 of 1 total/); - expect(out).toMatch(/Tests:\s+1 skipped, 1 total/); + expectFail(out); + expectAlignedSeeds(out, { noAlignWithJest: useESMOnlyWorkers }); + expect(out).toMatch(/[×✕] property fail with globally requested seed \(with seed=6969\)/); }); - }); + } + + if (!useESMOnlyWorkers) { + describe('.skip', () => { + it.concurrent('should never be executed', async () => { + // Arrange + const specDirectory = await writeToFile(runnerName, options, () => { + runner.skip.prop([fc.constant(null)])('property never executed', (_unused) => false); + }); - if (testRunner === undefined) { + // Act + const out = await runSpec(specDirectory); + + // Assert + expect(out).toMatch(/Test Suites:\s+1 skipped, 0 of 1 total/); + expect(out).toMatch(/Tests:\s+1 skipped, 1 total/); + }); + }); + } + + if (testRunner === undefined && !useESMOnlyWorkers) { describe('.failing', () => { it.concurrent('should fail on successful no prop mode', async () => { // Arrange @@ -380,11 +390,11 @@ describe.each([ // Assert expectFail(out); - expectAlignedSeeds(out); + expectAlignedSeeds(out, { noAlignWithJest: useESMOnlyWorkers }); expect(out).toMatch(/[×✕] property fail on falsy property \(with seed=-?\d+\)/); }); - if (testRunner === undefined) { + if (testRunner === undefined && !useESMOnlyWorkers) { describe('.failing', () => { it.concurrent('should pass because failing', async () => { // Arrange @@ -423,143 +433,145 @@ describe.each([ } }); - describe('timeout', () => { - it.concurrent('should fail as test takes longer than global Jest timeout', async () => { - // Arrange - const specDirectory = await writeToFile(runnerName, options, () => { - runner.prop([fc.nat()])('property takes longer than global Jest timeout', async () => { - await new Promise(() => {}); // never resolving + if (!useWorkers) { + describe('timeout', () => { + it.concurrent('should fail as test takes longer than global Jest timeout', async () => { + // Arrange + const specDirectory = await writeToFile(runnerName, options, () => { + runner.prop([fc.nat()])('property takes longer than global Jest timeout', async () => { + await new Promise(() => {}); // never resolving + }); }); - }); - // Act - const out = await runSpec(specDirectory); - - // Assert - expectFail(out); - expectTimeout(out, 5000); - expect(out).toMatch(/[×✕] property takes longer than global Jest timeout/); - }); + // Act + const out = await runSpec(specDirectory); - it.concurrent('should fail as test takes longer than Jest local timeout', async () => { - // Arrange - const specDirectory = await writeToFile(runnerName, options, () => { - runner.prop([fc.nat()])( - 'property takes longer than Jest local timeout', - async () => { - await new Promise(() => {}); // never resolving - }, - 1000, - ); + // Assert + expectFail(out); + expectTimeout(out, 5000); + expect(out).toMatch(/[×✕] property takes longer than global Jest timeout/); }); - // Act - const out = await runSpec(specDirectory); + it.concurrent('should fail as test takes longer than Jest local timeout', async () => { + // Arrange + const specDirectory = await writeToFile(runnerName, options, () => { + runner.prop([fc.nat()])( + 'property takes longer than Jest local timeout', + async () => { + await new Promise(() => {}); // never resolving + }, + 1000, + ); + }); - // Assert - expectFail(out); - expectTimeout(out, 1000); - expect(out).toMatch(/[×✕] property takes longer than Jest local timeout/); - }); + // Act + const out = await runSpec(specDirectory); - it.concurrent('should fail as test takes longer than Jest config timeout', async () => { - // Arrange - const specDirectory = await writeToFile(runnerName, { ...options, testTimeoutConfig: 1000 }, () => { - runner.prop([fc.nat()])('property takes longer than Jest config timeout', async () => { - await new Promise(() => {}); // never resolving - }); + // Assert + expectFail(out); + expectTimeout(out, 1000); + expect(out).toMatch(/[×✕] property takes longer than Jest local timeout/); }); - // Act - const out = await runSpec(specDirectory); + it.concurrent('should fail as test takes longer than Jest config timeout', async () => { + // Arrange + const specDirectory = await writeToFile(runnerName, { ...options, testTimeoutConfig: 1000 }, () => { + runner.prop([fc.nat()])('property takes longer than Jest config timeout', async () => { + await new Promise(() => {}); // never resolving + }); + }); - // Assert - expectFail(out); - expectTimeout(out, 1000); - expect(out).toMatch(/[×✕] property takes longer than Jest config timeout/); - }); + // Act + const out = await runSpec(specDirectory); - it.concurrent('should fail as test takes longer than Jest setTimeout', async () => { - // Arrange - const specDirectory = await writeToFile(runnerName, options, () => { - if (typeof jest !== 'undefined') { - jest.setTimeout(1000); - } - runner.prop([fc.nat()])('property takes longer than Jest setTimeout', async () => { - await new Promise(() => {}); // never resolving - }); + // Assert + expectFail(out); + expectTimeout(out, 1000); + expect(out).toMatch(/[×✕] property takes longer than Jest config timeout/); }); - // Act - const out = await runSpec(specDirectory); + it.concurrent('should fail as test takes longer than Jest setTimeout', async () => { + // Arrange + const specDirectory = await writeToFile(runnerName, options, () => { + if (typeof jest !== 'undefined') { + jest.setTimeout(1000); + } + runner.prop([fc.nat()])('property takes longer than Jest setTimeout', async () => { + await new Promise(() => {}); // never resolving + }); + }); - // Assert - expectFail(out); - expectTimeout(out, 1000); - expect(out).toMatch(/[×✕] property takes longer than Jest setTimeout/); - }); + // Act + const out = await runSpec(specDirectory); - it.concurrent('should fail as test takes longer than Jest CLI timeout', async () => { - // Arrange - const specDirectory = await writeToFile(runnerName, options, () => { - runner.prop([fc.nat()])('property takes longer than Jest CLI timeout', async () => { - await new Promise(() => {}); // never resolving - }); + // Assert + expectFail(out); + expectTimeout(out, 1000); + expect(out).toMatch(/[×✕] property takes longer than Jest setTimeout/); }); - // Act - const out = await runSpec(specDirectory, { testTimeoutCLI: 1000 }); + it.concurrent('should fail as test takes longer than Jest CLI timeout', async () => { + // Arrange + const specDirectory = await writeToFile(runnerName, options, () => { + runner.prop([fc.nat()])('property takes longer than Jest CLI timeout', async () => { + await new Promise(() => {}); // never resolving + }); + }); - // Assert - expectFail(out); - expectTimeout(out, 1000); - expect(out).toMatch(/[×✕] property takes longer than Jest CLI timeout/); - }); + // Act + const out = await runSpec(specDirectory, { testTimeoutCLI: 1000 }); - it.concurrent('should fail but favor local Jest timeout over Jest setTimeout', async () => { - // Arrange - const specDirectory = await writeToFile(runnerName, options, () => { - if (typeof jest !== 'undefined') { - jest.setTimeout(2000); - } - runner.prop([fc.nat()])( - 'property favor local Jest timeout over Jest setTimeout', - async () => { - await new Promise(() => {}); // never resolving - }, - 1000, - ); + // Assert + expectFail(out); + expectTimeout(out, 1000); + expect(out).toMatch(/[×✕] property takes longer than Jest CLI timeout/); }); - // Act - const out = await runSpec(specDirectory); + it.concurrent('should fail but favor local Jest timeout over Jest setTimeout', async () => { + // Arrange + const specDirectory = await writeToFile(runnerName, options, () => { + if (typeof jest !== 'undefined') { + jest.setTimeout(2000); + } + runner.prop([fc.nat()])( + 'property favor local Jest timeout over Jest setTimeout', + async () => { + await new Promise(() => {}); // never resolving + }, + 1000, + ); + }); - // Assert - expectFail(out); - expectTimeout(out, 1000); // neither 2000 (setTimeout), nor 5000 (default) - expect(out).toMatch(/[×✕] property favor local Jest timeout over Jest setTimeout/); - }); + // Act + const out = await runSpec(specDirectory); - it.concurrent('should fail but favor Jest setTimeout over Jest CLI timeout', async () => { - // Arrange - const specDirectory = await writeToFile(runnerName, options, () => { - if (typeof jest !== 'undefined') { - jest.setTimeout(1000); - } - runner.prop([fc.nat()])('property favor Jest setTimeout over Jest CLI timeout', async () => { - await new Promise(() => {}); // never resolving - }); + // Assert + expectFail(out); + expectTimeout(out, 1000); // neither 2000 (setTimeout), nor 5000 (default) + expect(out).toMatch(/[×✕] property favor local Jest timeout over Jest setTimeout/); }); - // Act - const out = await runSpec(specDirectory, { testTimeoutCLI: 2000 }); + it.concurrent('should fail but favor Jest setTimeout over Jest CLI timeout', async () => { + // Arrange + const specDirectory = await writeToFile(runnerName, options, () => { + if (typeof jest !== 'undefined') { + jest.setTimeout(1000); + } + runner.prop([fc.nat()])('property favor Jest setTimeout over Jest CLI timeout', async () => { + await new Promise(() => {}); // never resolving + }); + }); - // Assert - expectFail(out); - expectTimeout(out, 1000); // neither 2000 (cli), nor 5000 (default) - expect(out).toMatch(/[×✕] property favor Jest setTimeout over Jest CLI timeout/); + // Act + const out = await runSpec(specDirectory, { testTimeoutCLI: 2000 }); + + // Assert + expectFail(out); + expectTimeout(out, 1000); // neither 2000 (cli), nor 5000 (default) + expect(out).toMatch(/[×✕] property favor Jest setTimeout over Jest CLI timeout/); + }); }); - }); + } }); // Helper @@ -608,9 +620,17 @@ async function writeToFile( fs.writeFile(specFilePath, specContent), fs.writeFile( jestConfigPath, - `module.exports = { testMatch: ['/${specFileName}'], transform: {}, ${ - options.testTimeoutConfig !== undefined ? `testTimeout: ${options.testTimeoutConfig},` : '' - }${options.testRunner !== undefined ? `testRunner: 'jest-jasmine2',` : ''} };`, + `module.exports = ${JSON.stringify( + { + testMatch: [`/${specFileName}`], + transform: {}, + testTimeout: options.testTimeoutConfig, + testRunner: options.testRunner !== undefined ? 'jest-jasmine2' : undefined, + runner: useWorkers ? 'jest-light-runner' : undefined, + }, + undefined, + 2, + )};`, ), ]); diff --git a/packages/worker/README.md b/packages/worker/README.md index 22dde0d9851..61c86145026 100644 --- a/packages/worker/README.md +++ b/packages/worker/README.md @@ -72,10 +72,10 @@ const property = propertyFor(new URL(import.meta.url), { randomSource: 'worker' ## Minimal requirements -- Node ≥14.18.0(1)(2)(3) +- Node ≥20.19.0(1)(2)(3) - TypeScript ≥4.1 (optional) -_(1): `worker_threads` alone would only require Node ≥10.5.0, but our usage of `require(node:*)` forces us to request at least Node ≥14.18.0_ +_(1): Requires support for `require(esm)`._ _(2): this package targets ES2020 specification which is quite well supported (more than 94%) by any Node ≥14.5.0_ diff --git a/packages/worker/package.cjs-template.json b/packages/worker/package.cjs-template.json deleted file mode 100644 index 5bbefffbabe..00000000000 --- a/packages/worker/package.cjs-template.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "commonjs" -} diff --git a/packages/worker/package.json b/packages/worker/package.json index adcbae01e44..5d7015bdf38 100644 --- a/packages/worker/package.json +++ b/packages/worker/package.json @@ -3,31 +3,28 @@ "description": "Provide built-ins to run predicates directly within dedicated workers", "version": "0.5.0", "type": "module", - "main": "lib/main.js", "exports": { "./package.json": "./package.json", ".": { - "require": { - "types": "./lib/cjs/main.d.ts", - "default": "./lib/cjs/main.js" - }, - "import": { - "types": "./lib/main.d.ts", - "default": "./lib/main.js" - } + "types": "./lib/main.d.ts", + "default": "./lib/main.js" + } + }, + "typesVersions": { + "*": { + "index": [ + "./lib/main.d.ts" + ] } }, - "module": "lib/main.js", - "types": "lib/main.d.ts", "files": [ "lib" ], "scripts": { - "build": "pnpm run build:publish-cjs && pnpm run build:publish-esm && pnpm run build:publish-types", + "build": "pnpm run build:publish-esm && pnpm run build:publish-types", "build-ci": "pnpm run build", - "build:publish-types": "tsc -p tsconfig.publish.types.json && tsc -p tsconfig.publish.types.json --outDir lib/cjs", - "build:publish-cjs": "tsc -p tsconfig.publish.json --outDir lib/cjs && cp package.cjs-template.json lib/cjs/package.json", - "build:publish-esm": "tsc -p tsconfig.publish.json --module es2015 --moduleResolution node", + "build:publish-types": "tsc -p tsconfig.publish.types.json", + "build:publish-esm": "tsc -p tsconfig.publish.json", "test-bundle:cjs": "node test-bundle/main.cjs", "test-bundle:mjs": "node test-bundle/main.mjs", "test-bundle": "pnpm run test-bundle:cjs && pnpm run test-bundle:mjs", diff --git a/packages/worker/tsconfig.json b/packages/worker/tsconfig.json index 51bf44c3454..9fed1d09972 100644 --- a/packages/worker/tsconfig.json +++ b/packages/worker/tsconfig.json @@ -1,3 +1,6 @@ { - "extends": "../../tsconfig.common.json" + "extends": "../../tsconfig.common.json", + "compilerOptions": { + "module": "node20" + } } diff --git a/packages/worker/tsconfig.publish.json b/packages/worker/tsconfig.publish.json index ed67654fec7..0ab96c43990 100644 --- a/packages/worker/tsconfig.publish.json +++ b/packages/worker/tsconfig.publish.json @@ -1,7 +1,8 @@ { "extends": "../../tsconfig.publish.json", "compilerOptions": { - "outDir": "lib/" + "outDir": "lib/", + "module": "node20" }, "include": ["src/"] } diff --git a/packages/worker/tsconfig.publish.types.json b/packages/worker/tsconfig.publish.types.json index e54be824c81..5d54fdac44d 100644 --- a/packages/worker/tsconfig.publish.types.json +++ b/packages/worker/tsconfig.publish.types.json @@ -1,7 +1,8 @@ { "extends": "../../tsconfig.publish.types.json", "compilerOptions": { - "outDir": "lib/" + "outDir": "lib/", + "module": "node20" }, "include": ["src/"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 604dfbb045f..569774955ce 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -199,10 +199,10 @@ importers: version: link:../worker '@jest/expect': specifier: ^30.2.0 - version: 30.2.0 + version: 30.2.0(supports-color@9.4.0) '@jest/globals': specifier: ^30.2.0 - version: 30.2.0 + version: 30.2.0(supports-color@9.4.0) '@types/jest': specifier: ^30.0.0 version: 30.0.0 @@ -215,6 +215,9 @@ importers: jest-jasmine2: specifier: ^30.2.0 version: 30.2.0 + jest-light-runner: + specifier: ^0.7.11 + version: 0.7.11(jest@30.2.0(@types/node@24.10.7)) typescript: specifier: ~5.9.3 version: 5.9.3 @@ -371,7 +374,7 @@ importers: version: 3.9.2(@swc/core@1.13.3)(acorn@8.15.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@jest/globals': specifier: ^30.2.0 - version: 30.2.0 + version: 30.2.0(supports-color@9.4.0) '@mdx-js/react': specifier: ^3.1.1 version: 3.1.1(@types/react@19.2.9)(react@19.2.3) @@ -6473,6 +6476,12 @@ packages: resolution: {integrity: sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} + jest-light-runner@0.7.11: + resolution: {integrity: sha512-fPJj5Y9LeHcc0tcDDZaRFEVzDh5/F3B2mcZFTaNv8cChYNnemmcLcASPj/phjTnM5K2LGC1BU65GYG+Ori29vw==} + engines: {node: ^16.10.0 || ^18.12.0 || >=20.0.0} + peerDependencies: + jest: ^27.5.0 || ^28.0.0 || ^29.0.0|| ^30.0.0 + jest-matcher-utils@30.2.0: resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} @@ -7512,6 +7521,10 @@ packages: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + p-limit@6.2.0: + resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} + engines: {node: '>=18'} + p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -9055,6 +9068,10 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} + supports-color@9.4.0: + resolution: {integrity: sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==} + engines: {node: '>=12'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -9174,6 +9191,10 @@ packages: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} + tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + engines: {node: '>=14.0.0'} + tinypool@1.1.1: resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} @@ -10147,20 +10168,20 @@ snapshots: '@babel/compat-data@7.28.0': {} - '@babel/core@7.28.0': + '@babel/core@7.28.0(supports-color@9.4.0)': dependencies: '@ampproject/remapping': 2.3.0 '@babel/code-frame': 7.27.1 '@babel/generator': 7.28.0 '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)(supports-color@9.4.0) '@babel/helpers': 7.28.2 '@babel/parser': 7.28.0 '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) '@babel/types': 7.28.2 convert-source-map: 2.0.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -10189,30 +10210,30 @@ snapshots: '@babel/helper-create-class-features-plugin@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) semver: 6.3.1 transitivePeerDependencies: - supports-color '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-annotate-as-pure': 7.27.3 regexpu-core: 6.2.0 semver: 6.3.1 '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) lodash.debounce: 4.0.8 resolve: 1.22.10 transitivePeerDependencies: @@ -10222,24 +10243,24 @@ snapshots: '@babel/helper-member-expression-to-functions@7.27.1': dependencies: - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.27.1': + '@babel/helper-module-imports@7.27.1(supports-color@9.4.0)': dependencies: - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)': + '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)(supports-color@9.4.0)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 + '@babel/core': 7.28.0(supports-color@9.4.0) + '@babel/helper-module-imports': 7.27.1(supports-color@9.4.0) '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -10251,25 +10272,25 @@ snapshots: '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-member-expression-to-functions': 7.27.1 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color @@ -10283,7 +10304,7 @@ snapshots: '@babel/helper-wrap-function@7.27.1': dependencies: '@babel/template': 7.27.2 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) '@babel/types': 7.28.2 transitivePeerDependencies: - supports-color @@ -10299,25 +10320,25 @@ snapshots: '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.0) @@ -10326,135 +10347,135 @@ snapshots: '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0) - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 + '@babel/core': 7.28.0(supports-color@9.4.0) + '@babel/helper-module-imports': 7.27.1(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.0) transitivePeerDependencies: @@ -10462,17 +10483,17 @@ snapshots: '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-block-scoping@7.28.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: @@ -10480,7 +10501,7 @@ snapshots: '@babel/plugin-transform-class-static-block@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: @@ -10488,55 +10509,55 @@ snapshots: '@babel/plugin-transform-classes@7.28.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-globals': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.2 '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0) transitivePeerDependencies: @@ -10544,17 +10565,17 @@ snapshots: '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: @@ -10562,102 +10583,102 @@ snapshots: '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/core': 7.28.0(supports-color@9.4.0) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/core': 7.28.0(supports-color@9.4.0) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/core': 7.28.0(supports-color@9.4.0) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0) + '@babel/core': 7.28.0(supports-color@9.4.0) + '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-object-rest-spread@7.28.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.0) '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.0) - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.0) transitivePeerDependencies: @@ -10665,12 +10686,12 @@ snapshots: '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: @@ -10678,12 +10699,12 @@ snapshots: '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: @@ -10691,7 +10712,7 @@ snapshots: '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 @@ -10700,31 +10721,31 @@ snapshots: '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-constant-elements@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-display-name@7.28.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-react-jsx-development@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.0) transitivePeerDependencies: - supports-color '@babel/plugin-transform-react-jsx@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.27.1 + '@babel/helper-module-imports': 7.27.1(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) '@babel/types': 7.28.2 @@ -10733,30 +10754,30 @@ snapshots: '@babel/plugin-transform-react-pure-annotations@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-regenerator@7.28.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-runtime@7.28.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 + '@babel/core': 7.28.0(supports-color@9.4.0) + '@babel/helper-module-imports': 7.27.1(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.0) babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.0) @@ -10767,12 +10788,12 @@ snapshots: '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: @@ -10780,22 +10801,22 @@ snapshots: '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-create-class-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 @@ -10806,31 +10827,31 @@ snapshots: '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/preset-env@7.28.0(@babel/core@7.28.0)': dependencies: '@babel/compat-data': 7.28.0 - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 @@ -10905,14 +10926,14 @@ snapshots: '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/types': 7.28.2 esutils: 2.0.3 '@babel/preset-react@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 '@babel/plugin-transform-react-display-name': 7.28.0(@babel/core@7.28.0) @@ -10924,7 +10945,7 @@ snapshots: '@babel/preset-typescript@7.27.1(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) @@ -10945,7 +10966,7 @@ snapshots: '@babel/parser': 7.28.0 '@babel/types': 7.28.2 - '@babel/traverse@7.28.0': + '@babel/traverse@7.28.0(supports-color@9.4.0)': dependencies: '@babel/code-frame': 7.27.1 '@babel/generator': 7.28.0 @@ -10953,7 +10974,7 @@ snapshots: '@babel/parser': 7.28.0 '@babel/template': 7.27.2 '@babel/types': 7.28.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -11533,7 +11554,7 @@ snapshots: '@docusaurus/babel@3.9.2(@swc/core@1.13.3)(acorn@8.15.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/generator': 7.28.0 '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.28.0) '@babel/plugin-transform-runtime': 7.28.0(@babel/core@7.28.0) @@ -11542,7 +11563,7 @@ snapshots: '@babel/preset-typescript': 7.27.1(@babel/core@7.28.0) '@babel/runtime': 7.28.6 '@babel/runtime-corejs3': 7.28.2 - '@babel/traverse': 7.28.0 + '@babel/traverse': 7.28.0(supports-color@9.4.0) '@docusaurus/logger': 3.9.2 '@docusaurus/utils': 3.9.2(@swc/core@1.13.3)(acorn@8.15.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) babel-plugin-dynamic-import-node: 2.3.3 @@ -11560,7 +11581,7 @@ snapshots: '@docusaurus/bundler@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.3)(acorn@8.15.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)))(@rspack/core@1.6.0)(@swc/core@1.13.3)(acorn@8.15.0)(lightningcss@1.30.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@docusaurus/babel': 3.9.2(@swc/core@1.13.3)(acorn@8.15.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@docusaurus/cssnano-preset': 3.9.2 '@docusaurus/logger': 3.9.2 @@ -12006,7 +12027,7 @@ snapshots: '@docusaurus/plugin-pwa@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.3)(acorn@8.15.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)))(@docusaurus/plugin-content-docs@3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.3)(acorn@8.15.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)))(@mdx-js/react@3.1.1(@types/react@19.2.9)(react@19.2.3))(@rspack/core@1.6.0)(@swc/core@1.13.3)(acorn@8.15.0)(lightningcss@1.30.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3))(@mdx-js/react@3.1.1(@types/react@19.2.9)(react@19.2.3))(@rspack/core@1.6.0)(@swc/core@1.13.3)(@types/babel__core@7.20.5)(acorn@8.15.0)(lightningcss@1.30.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/preset-env': 7.28.0(@babel/core@7.28.0) '@docusaurus/bundler': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.3)(acorn@8.15.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)))(@rspack/core@1.6.0)(@swc/core@1.13.3)(acorn@8.15.0)(lightningcss@1.30.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) '@docusaurus/core': 3.9.2(@docusaurus/faster@3.9.2(@docusaurus/types@3.9.2(@swc/core@1.13.3)(acorn@8.15.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)))(@mdx-js/react@3.1.1(@types/react@19.2.9)(react@19.2.3))(@rspack/core@1.6.0)(@swc/core@1.13.3)(acorn@8.15.0)(lightningcss@1.30.1)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) @@ -12515,7 +12536,7 @@ snapshots: '@eslint/config-array@0.21.1': dependencies: '@eslint/object-schema': 2.1.7 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -12531,7 +12552,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -12641,7 +12662,7 @@ snapshots: '@jest/pattern': 30.0.1 '@jest/reporters': 30.2.0 '@jest/test-result': 30.2.0 - '@jest/transform': 30.2.0 + '@jest/transform': 30.2.0(supports-color@9.4.0) '@jest/types': 30.2.0 '@types/node': 24.10.7 ansi-escapes: 4.3.2 @@ -12657,8 +12678,8 @@ snapshots: jest-resolve: 30.2.0 jest-resolve-dependencies: 30.2.0 jest-runner: 30.2.0 - jest-runtime: 30.2.0 - jest-snapshot: 30.2.0 + jest-runtime: 30.2.0(supports-color@9.4.0) + jest-snapshot: 30.2.0(supports-color@9.4.0) jest-util: 30.2.0 jest-validate: 30.2.0 jest-watcher: 30.2.0 @@ -12684,10 +12705,10 @@ snapshots: dependencies: '@jest/get-type': 30.1.0 - '@jest/expect@30.2.0': + '@jest/expect@30.2.0(supports-color@9.4.0)': dependencies: expect: 30.2.0 - jest-snapshot: 30.2.0 + jest-snapshot: 30.2.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -12702,10 +12723,10 @@ snapshots: '@jest/get-type@30.1.0': {} - '@jest/globals@30.2.0': + '@jest/globals@30.2.0(supports-color@9.4.0)': dependencies: '@jest/environment': 30.2.0 - '@jest/expect': 30.2.0 + '@jest/expect': 30.2.0(supports-color@9.4.0) '@jest/types': 30.2.0 jest-mock: 30.2.0 transitivePeerDependencies: @@ -12721,7 +12742,7 @@ snapshots: '@bcoe/v8-coverage': 0.2.3 '@jest/console': 30.2.0 '@jest/test-result': 30.2.0 - '@jest/transform': 30.2.0 + '@jest/transform': 30.2.0(supports-color@9.4.0) '@jest/types': 30.2.0 '@jridgewell/trace-mapping': 0.3.31 '@types/node': 24.10.7 @@ -12731,7 +12752,7 @@ snapshots: glob: 10.4.5 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 6.0.3 + istanbul-lib-instrument: 6.0.3(supports-color@9.4.0) istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.2.0 @@ -12779,12 +12800,12 @@ snapshots: jest-haste-map: 30.2.0 slash: 3.0.0 - '@jest/transform@30.2.0': + '@jest/transform@30.2.0(supports-color@9.4.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@jest/types': 30.2.0 '@jridgewell/trace-mapping': 0.3.31 - babel-plugin-istanbul: 7.0.1 + babel-plugin-istanbul: 7.0.1(supports-color@9.4.0) chalk: 4.1.2 convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 @@ -13494,8 +13515,8 @@ snapshots: '@rollup/plugin-babel@5.3.1(@babel/core@7.28.0)(@types/babel__core@7.20.5)(rollup@2.79.2)': dependencies: - '@babel/core': 7.28.0 - '@babel/helper-module-imports': 7.27.1 + '@babel/core': 7.28.0(supports-color@9.4.0) + '@babel/helper-module-imports': 7.27.1(supports-color@9.4.0) '@rollup/pluginutils': 3.1.0(rollup@2.79.2) rollup: 2.79.2 optionalDependencies: @@ -13815,39 +13836,39 @@ snapshots: '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@svgr/babel-preset@8.1.0(@babel/core@7.28.0)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.28.0) '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.28.0) '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.28.0) @@ -13859,7 +13880,7 @@ snapshots: '@svgr/core@8.1.0(typescript@5.9.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@svgr/babel-preset': 8.1.0(@babel/core@7.28.0) camelcase: 6.3.0 cosmiconfig: 8.3.6(typescript@5.9.3) @@ -13875,7 +13896,7 @@ snapshots: '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.9.3))': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@svgr/babel-preset': 8.1.0(@babel/core@7.28.0) '@svgr/core': 8.1.0(typescript@5.9.3) '@svgr/hast-util-to-babel-ast': 8.0.0 @@ -13894,7 +13915,7 @@ snapshots: '@svgr/webpack@8.1.0(typescript@5.9.3)': dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/plugin-transform-react-constant-elements': 7.27.1(@babel/core@7.28.0) '@babel/preset-env': 7.28.0(@babel/core@7.28.0) '@babel/preset-react': 7.27.1(@babel/core@7.28.0) @@ -14495,7 +14516,7 @@ snapshots: '@typescript-eslint/types': 8.53.1 '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.9.3) '@typescript-eslint/visitor-keys': 8.53.1 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) eslint: 9.39.2(jiti@1.21.7) typescript: 5.9.3 transitivePeerDependencies: @@ -14505,7 +14526,7 @@ snapshots: dependencies: '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.9.3) '@typescript-eslint/types': 8.53.1 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -14524,7 +14545,7 @@ snapshots: '@typescript-eslint/types': 8.53.1 '@typescript-eslint/typescript-estree': 8.53.1(typescript@5.9.3) '@typescript-eslint/utils': 8.53.1(eslint@9.39.2(jiti@1.21.7))(typescript@5.9.3) - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) eslint: 9.39.2(jiti@1.21.7) ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 @@ -14539,7 +14560,7 @@ snapshots: '@typescript-eslint/tsconfig-utils': 8.53.1(typescript@5.9.3) '@typescript-eslint/types': 8.53.1 '@typescript-eslint/visitor-keys': 8.53.1 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) minimatch: 9.0.5 semver: 7.7.3 tinyglobby: 0.2.15 @@ -14651,7 +14672,7 @@ snapshots: '@bcoe/v8-coverage': 1.0.2 '@vitest/utils': 4.0.5 ast-v8-to-istanbul: 0.3.8 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 @@ -15042,7 +15063,7 @@ snapshots: common-path-prefix: 3.0.0 concordance: 5.0.4 currently-unhandled: 0.4.1 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) emittery: 1.2.0 figures: 6.1.0 globby: 14.1.0 @@ -15078,10 +15099,10 @@ snapshots: babel-jest@30.2.0(@babel/core@7.28.0): dependencies: - '@babel/core': 7.28.0 - '@jest/transform': 30.2.0 + '@babel/core': 7.28.0(supports-color@9.4.0) + '@jest/transform': 30.2.0(supports-color@9.4.0) '@types/babel__core': 7.20.5 - babel-plugin-istanbul: 7.0.1 + babel-plugin-istanbul: 7.0.1(supports-color@9.4.0) babel-preset-jest: 30.2.0(@babel/core@7.28.0) chalk: 4.1.2 graceful-fs: 4.2.11 @@ -15091,7 +15112,7 @@ snapshots: babel-loader@9.2.1(@babel/core@7.28.0)(webpack@5.101.1(@swc/core@1.13.3)): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) find-cache-dir: 4.0.0 schema-utils: 4.3.2 webpack: 5.101.1(@swc/core@1.13.3) @@ -15100,12 +15121,12 @@ snapshots: dependencies: object.assign: 4.1.7 - babel-plugin-istanbul@7.0.1: + babel-plugin-istanbul@7.0.1(supports-color@9.4.0): dependencies: '@babel/helper-plugin-utils': 7.27.1 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 6.0.3 + istanbul-lib-instrument: 6.0.3(supports-color@9.4.0) test-exclude: 6.0.0 transitivePeerDependencies: - supports-color @@ -15117,7 +15138,7 @@ snapshots: babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.0): dependencies: '@babel/compat-data': 7.28.0 - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) semver: 6.3.1 transitivePeerDependencies: @@ -15125,7 +15146,7 @@ snapshots: babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.0): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) core-js-compat: 3.45.0 transitivePeerDependencies: @@ -15133,14 +15154,14 @@ snapshots: babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.0): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.0) transitivePeerDependencies: - supports-color babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.0): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.0) '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.0) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.0) @@ -15159,7 +15180,7 @@ snapshots: babel-preset-jest@30.2.0(@babel/core@7.28.0): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) babel-plugin-jest-hoist: 30.2.0 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.0) @@ -15218,7 +15239,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) http-errors: 2.0.1 iconv-lite: 0.7.0 on-finished: 2.4.1 @@ -16047,9 +16068,11 @@ snapshots: dependencies: ms: 2.0.0 - debug@4.4.3: + debug@4.4.3(supports-color@9.4.0): dependencies: ms: 2.1.3 + optionalDependencies: + supports-color: 9.4.0 decamelize@1.2.0: {} @@ -16123,7 +16146,7 @@ snapshots: detect-port@1.6.1: dependencies: address: 1.2.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -16469,7 +16492,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -16660,7 +16683,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) depd: 2.0.0 encodeurl: 2.0.0 escape-html: 1.0.3 @@ -16797,7 +16820,7 @@ snapshots: finalhandler@2.1.0: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -17315,7 +17338,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -17347,7 +17370,7 @@ snapshots: https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -17683,9 +17706,9 @@ snapshots: istanbul-lib-coverage@3.2.2: {} - istanbul-lib-instrument@6.0.3: + istanbul-lib-instrument@6.0.3(supports-color@9.4.0): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/parser': 7.28.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 @@ -17702,7 +17725,7 @@ snapshots: istanbul-lib-source-maps@5.0.6: dependencies: '@jridgewell/trace-mapping': 0.3.31 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color @@ -17730,10 +17753,10 @@ snapshots: jest-util: 30.2.0 p-limit: 3.1.0 - jest-circus@30.2.0: + jest-circus@30.2.0(supports-color@9.4.0): dependencies: '@jest/environment': 30.2.0 - '@jest/expect': 30.2.0 + '@jest/expect': 30.2.0(supports-color@9.4.0) '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 '@types/node': 24.10.7 @@ -17744,8 +17767,8 @@ snapshots: jest-each: 30.2.0 jest-matcher-utils: 30.2.0 jest-message-util: 30.2.0 - jest-runtime: 30.2.0 - jest-snapshot: 30.2.0 + jest-runtime: 30.2.0(supports-color@9.4.0) + jest-snapshot: 30.2.0(supports-color@9.4.0) jest-util: 30.2.0 p-limit: 3.1.0 pretty-format: 30.2.0 @@ -17777,7 +17800,7 @@ snapshots: jest-config@30.2.0(@types/node@24.10.7): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@jest/get-type': 30.1.0 '@jest/pattern': 30.0.1 '@jest/test-sequencer': 30.2.0 @@ -17788,7 +17811,7 @@ snapshots: deepmerge: 4.3.1 glob: 10.4.5 graceful-fs: 4.2.11 - jest-circus: 30.2.0 + jest-circus: 30.2.0(supports-color@9.4.0) jest-docblock: 30.2.0 jest-environment-node: 30.2.0 jest-regex-util: 30.0.1 @@ -17854,7 +17877,7 @@ snapshots: jest-jasmine2@30.2.0: dependencies: '@jest/environment': 30.2.0 - '@jest/expect': 30.2.0 + '@jest/expect': 30.2.0(supports-color@9.4.0) '@jest/source-map': 30.0.1 '@jest/test-result': 30.2.0 '@jest/types': 30.2.0 @@ -17865,8 +17888,8 @@ snapshots: jest-each: 30.2.0 jest-matcher-utils: 30.2.0 jest-message-util: 30.2.0 - jest-runtime: 30.2.0 - jest-snapshot: 30.2.0 + jest-runtime: 30.2.0(supports-color@9.4.0) + jest-snapshot: 30.2.0(supports-color@9.4.0) jest-util: 30.2.0 p-limit: 3.1.0 pretty-format: 30.2.0 @@ -17878,6 +17901,21 @@ snapshots: '@jest/get-type': 30.1.0 pretty-format: 30.2.0 + jest-light-runner@0.7.11(jest@30.2.0(@types/node@24.10.7)): + dependencies: + '@jest/expect': 30.2.0(supports-color@9.4.0) + '@jest/fake-timers': 30.2.0 + jest: 30.2.0(@types/node@24.10.7) + jest-circus: 30.2.0(supports-color@9.4.0) + jest-each: 30.2.0 + jest-mock: 30.2.0 + jest-snapshot: 30.2.0(supports-color@9.4.0) + p-limit: 6.2.0 + supports-color: 9.4.0 + tinypool: 0.8.4 + transitivePeerDependencies: + - babel-plugin-macros + jest-matcher-utils@30.2.0: dependencies: '@jest/get-type': 30.1.0 @@ -17912,7 +17950,7 @@ snapshots: jest-resolve-dependencies@30.2.0: dependencies: jest-regex-util: 30.0.1 - jest-snapshot: 30.2.0 + jest-snapshot: 30.2.0(supports-color@9.4.0) transitivePeerDependencies: - supports-color @@ -17932,7 +17970,7 @@ snapshots: '@jest/console': 30.2.0 '@jest/environment': 30.2.0 '@jest/test-result': 30.2.0 - '@jest/transform': 30.2.0 + '@jest/transform': 30.2.0(supports-color@9.4.0) '@jest/types': 30.2.0 '@types/node': 24.10.7 chalk: 4.1.2 @@ -17945,7 +17983,7 @@ snapshots: jest-leak-detector: 30.2.0 jest-message-util: 30.2.0 jest-resolve: 30.2.0 - jest-runtime: 30.2.0 + jest-runtime: 30.2.0(supports-color@9.4.0) jest-util: 30.2.0 jest-watcher: 30.2.0 jest-worker: 30.2.0 @@ -17954,14 +17992,14 @@ snapshots: transitivePeerDependencies: - supports-color - jest-runtime@30.2.0: + jest-runtime@30.2.0(supports-color@9.4.0): dependencies: '@jest/environment': 30.2.0 '@jest/fake-timers': 30.2.0 - '@jest/globals': 30.2.0 + '@jest/globals': 30.2.0(supports-color@9.4.0) '@jest/source-map': 30.0.1 '@jest/test-result': 30.2.0 - '@jest/transform': 30.2.0 + '@jest/transform': 30.2.0(supports-color@9.4.0) '@jest/types': 30.2.0 '@types/node': 24.10.7 chalk: 4.1.2 @@ -17974,16 +18012,16 @@ snapshots: jest-mock: 30.2.0 jest-regex-util: 30.0.1 jest-resolve: 30.2.0 - jest-snapshot: 30.2.0 + jest-snapshot: 30.2.0(supports-color@9.4.0) jest-util: 30.2.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - jest-snapshot@30.2.0: + jest-snapshot@30.2.0(supports-color@9.4.0): dependencies: - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/generator': 7.28.0 '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0) '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0) @@ -17991,7 +18029,7 @@ snapshots: '@jest/expect-utils': 30.2.0 '@jest/get-type': 30.1.0 '@jest/snapshot-utils': 30.2.0 - '@jest/transform': 30.2.0 + '@jest/transform': 30.2.0(supports-color@9.4.0) '@jest/types': 30.2.0 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.0) chalk: 4.1.2 @@ -18934,7 +18972,7 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -19298,6 +19336,10 @@ snapshots: dependencies: yocto-queue: 1.2.1 + p-limit@6.2.0: + dependencies: + yocto-queue: 1.2.1 + p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -20496,7 +20538,7 @@ snapshots: router@2.2.0: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -20623,7 +20665,7 @@ snapshots: send@1.2.0: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -20822,7 +20864,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) socks: 2.8.7 transitivePeerDependencies: - supports-color @@ -20879,7 +20921,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -20890,7 +20932,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -21068,7 +21110,7 @@ snapshots: dependencies: component-emitter: 1.3.1 cookiejar: 2.1.4 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) fast-safe-stringify: 2.1.1 form-data: 4.0.5 formidable: 3.5.4 @@ -21101,6 +21143,8 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-color@9.4.0: {} + supports-preserve-symlinks-flag@1.0.0: {} svg-parser@2.0.4: {} @@ -21207,6 +21251,8 @@ snapshots: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 + tinypool@0.8.4: {} + tinypool@1.1.1: {} tinyrainbow@3.0.3: {} @@ -21259,7 +21305,7 @@ snapshots: tuf-js@4.1.0: dependencies: '@tufjs/models': 4.1.0 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) make-fetch-happen: 15.0.3 transitivePeerDependencies: - supports-color @@ -21596,7 +21642,7 @@ snapshots: '@vitest/snapshot': 4.0.5 '@vitest/spy': 4.0.5 '@vitest/utils': 4.0.5 - debug: 4.4.3 + debug: 4.4.3(supports-color@9.4.0) es-module-lexer: 1.7.0 expect-type: 1.2.2 magic-string: 0.30.21 @@ -21891,7 +21937,7 @@ snapshots: workbox-build@7.3.0(@types/babel__core@7.20.5): dependencies: '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) - '@babel/core': 7.28.0 + '@babel/core': 7.28.0(supports-color@9.4.0) '@babel/preset-env': 7.28.0(@babel/core@7.28.0) '@babel/runtime': 7.28.6 '@rollup/plugin-babel': 5.3.1(@babel/core@7.28.0)(@types/babel__core@7.20.5)(rollup@2.79.2)