From fe7f9b87319574fcef0383c45f53231424e4fb2a Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 14:43:12 +0700 Subject: [PATCH 01/18] Move vitest workspace config from code/ to repo root Consolidate the two separate vitest setups (code/ and scripts/) into a single root-level vitest workspace config. This allows running all tests with a single `yarn test` from the repo root. Changes: - Add root vitest.config.ts that includes all projects from code/ and scripts/ - Remove code/vitest.config.ts (replaced by root config) - Add explicit configDir to storybook vitest plugin (needed for root context) - Update package.json scripts to run vitest from root - Merge NX test targets into a single target on the code project - Add ignoreSourceErrors to pseudo-states typecheck config --- code/addons/pseudo-states/vitest.config.ts | 1 + code/package.json | 10 +++++----- code/project.json | 4 ++-- code/vitest.config.storybook.ts | 3 +++ package.json | 7 ++++--- scripts/package.json | 4 ++-- scripts/project.json | 8 -------- scripts/vitest.config.ts | 1 + code/vitest.config.ts => vitest.config.ts | 17 +++++++++-------- yarn.lock | 1 + 10 files changed, 28 insertions(+), 28 deletions(-) rename code/vitest.config.ts => vitest.config.ts (79%) diff --git a/code/addons/pseudo-states/vitest.config.ts b/code/addons/pseudo-states/vitest.config.ts index 0e10a6f31d49..28a5ec0fffe9 100644 --- a/code/addons/pseudo-states/vitest.config.ts +++ b/code/addons/pseudo-states/vitest.config.ts @@ -8,6 +8,7 @@ export default mergeConfig( test: { typecheck: { enabled: true, + ignoreSourceErrors: true, }, }, }) diff --git a/code/package.json b/code/package.json index 16a5404a0206..479eb2ef5858 100644 --- a/code/package.json +++ b/code/package.json @@ -19,7 +19,7 @@ "changelog": "pr-log --sloppy --cherry-pick", "changelog:next": "pr-log --sloppy --since-prerelease", "check": "NODE_ENV=production yarn --cwd ../scripts check-package", - "ci-tests": "yarn task --task check --no-link --start-from=install && yarn lint && yarn test && cd ../scripts && yarn test", + "ci-tests": "yarn task --task check --no-link --start-from=install && yarn lint && yarn test", "danger": "danger", "generate-sandboxes": "yarn --cwd ../scripts generate-sandboxes", "github-release": "github-release-from-changelog", @@ -37,11 +37,11 @@ "storybook:ui": "NODE_OPTIONS=\"--max_old_space_size=4096 --trace-deprecation\" core/dist/bin/dispatcher.js dev --port 6006 --config-dir ./.storybook", "storybook:ui:build": "NODE_OPTIONS=\"--max_old_space_size=4096\" core/dist/bin/dispatcher.js build --config-dir ./.storybook --webpack-stats-json", "storybook:ui:chromatic": "chromatic --storybook-build-dir storybook-static --exit-zero-on-changes --exit-once-uploaded", - "storybook:vitest": "yarn test:watch --project storybook-ui", - "storybook:vitest:inspect": "INSPECT=true yarn test --project storybook-ui", + "storybook:vitest": "cd .. && NODE_OPTIONS=--max_old_space_size=4096 vitest watch --project storybook-ui", + "storybook:vitest:inspect": "cd .. && INSPECT=true NODE_OPTIONS=--max_old_space_size=4096 vitest run --project storybook-ui", "task": "yarn --cwd ../scripts task", - "test": "NODE_OPTIONS=--max_old_space_size=4096 vitest run", - "test:watch": "NODE_OPTIONS=--max_old_space_size=4096 vitest watch" + "test": "cd .. && NODE_OPTIONS=--max_old_space_size=4096 vitest run", + "test:watch": "cd .. && NODE_OPTIONS=--max_old_space_size=4096 vitest watch" }, "lint-staged": { "*.{html,js,json,jsx,mjs,ts,tsx}": [ diff --git a/code/project.json b/code/project.json index 93ce34f937cd..672622d33613 100644 --- a/code/project.json +++ b/code/project.json @@ -13,9 +13,9 @@ "test": { "dependsOn": [{ "projects": ["*"], "target": "compile" }], "executor": "nx:run-commands", - "options": { "cwd": "{projectRoot}", "command": "yarn test" }, + "options": { "command": "NODE_OPTIONS=--max_old_space_size=4096 vitest run" }, "cache": true, - "inputs": ["default"], + "inputs": ["default", "{workspaceRoot}/scripts/**/*"], "configurations": { "production": {} } }, "knip": { diff --git a/code/vitest.config.storybook.ts b/code/vitest.config.storybook.ts index 2f4bcdcd3215..08668876a01a 100644 --- a/code/vitest.config.storybook.ts +++ b/code/vitest.config.storybook.ts @@ -1,3 +1,5 @@ +import { resolve } from 'node:path'; + import { defaultExclude, defineProject } from 'vitest/config'; import { storybookTest } from '@storybook/addon-vitest/vitest-plugin'; @@ -21,6 +23,7 @@ if (process.env.INSPECT === 'true') { export default defineProject({ plugins: [ storybookTest({ + configDir: resolve(__dirname, '.storybook'), tags: { include: ['vitest'], }, diff --git a/package.json b/package.json index 00526f3ff9e2..70620c2806e4 100644 --- a/package.json +++ b/package.json @@ -29,8 +29,8 @@ "svelte-ecosystem-ci:build": "./scripts/ecosystem-ci/build.sh svelte-kit/skeleton-ts svelte", "svelte-ecosystem-ci:test": "./scripts/ecosystem-ci/test.sh svelte-kit/skeleton-ts", "task": "yarn --cwd=./scripts task", - "test": "cd code; yarn test", - "test:watch": "cd code; yarn test:watch", + "test": "NODE_OPTIONS=--max_old_space_size=4096 vitest run", + "test:watch": "NODE_OPTIONS=--max_old_space_size=4096 vitest watch", "upload-bench": "cd scripts; yarn upload-bench", "vite-ecosystem-ci:before-test": "./scripts/ecosystem-ci/before-test.sh react-vite/default-ts", "vite-ecosystem-ci:build": "./scripts/ecosystem-ci/build.sh react-vite/default-ts", @@ -67,7 +67,8 @@ "jiti": "^2.6.1", "kill-port": "^2.0.1", "nx": "^22.1.3", - "prettier": "^3.7.1" + "prettier": "^3.7.1", + "vitest": "^4.0.14" }, "packageManager": "yarn@4.10.3" } diff --git a/scripts/package.json b/scripts/package.json index d0e330c65af0..c310861b07e5 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -37,8 +37,8 @@ "release:write-changelog": "jiti ./release/write-changelog.ts", "strict-ts": "jiti ./strict-ts.ts", "task": "jiti ./task.ts", - "test": "NODE_OPTIONS=--max_old_space_size=4096 vitest run", - "test:watch": "NODE_OPTIONS=--max_old_space_size=4096 vitest watch", + "test": "cd .. && NODE_OPTIONS=--max_old_space_size=4096 vitest run --project scripts", + "test:watch": "cd .. && NODE_OPTIONS=--max_old_space_size=4096 vitest watch --project scripts", "upgrade": "jiti ./task.ts", "upload-bench": "jiti ./upload-bench.ts" }, diff --git a/scripts/project.json b/scripts/project.json index ef8f8237cd93..866383052a98 100644 --- a/scripts/project.json +++ b/scripts/project.json @@ -22,14 +22,6 @@ "inputs": ["default"], "configurations": { "production": {} } }, - "test": { - "dependsOn": [{ "projects": ["core"], "target": "compile" }], - "executor": "nx:run-commands", - "options": { "cwd": "{projectRoot}", "command": "yarn test" }, - "cache": true, - "inputs": ["default", "all-production"], - "configurations": { "production": {} } - }, "run-registry": {}, "publish": {} } diff --git a/scripts/vitest.config.ts b/scripts/vitest.config.ts index e0a86e20674e..2a98cdb7ce95 100644 --- a/scripts/vitest.config.ts +++ b/scripts/vitest.config.ts @@ -13,6 +13,7 @@ const threadCount = process.env.CI ? 1 : undefined; export default defineConfig({ test: { + name: 'scripts', clearMocks: true, pool: 'threads', maxWorkers: threadCount, diff --git a/code/vitest.config.ts b/vitest.config.ts similarity index 79% rename from code/vitest.config.ts rename to vitest.config.ts index cc508214b754..ee46b8695749 100644 --- a/code/vitest.config.ts +++ b/vitest.config.ts @@ -13,13 +13,14 @@ const threadCount = process.env.CI ? (process.platform === 'win32' ? 4 : 7) : un const shouldRunStorybookTests = !(process.env.CI && process.platform === 'win32'); const projects = [ - 'addons/*/vitest.config.ts', - 'frameworks/*/vitest.config.ts', - 'lib/*/vitest.config.ts', - 'core/vitest.config.ts', - 'builders/*/vitest.config.ts', - 'presets/*/vitest.config.ts', - 'renderers/*/vitest.config.ts', + 'code/addons/*/vitest.config.ts', + 'code/frameworks/*/vitest.config.ts', + 'code/lib/*/vitest.config.ts', + 'code/core/vitest.config.ts', + 'code/builders/*/vitest.config.ts', + 'code/presets/*/vitest.config.ts', + 'code/renderers/*/vitest.config.ts', + 'scripts/vitest.config.ts', ]; /** @@ -27,7 +28,7 @@ const projects = [ * these tests, that need browser-mode cannot be run/added */ if (shouldRunStorybookTests) { - projects.push('vitest.config.storybook.ts'); + projects.push('code/vitest.config.storybook.ts'); } export default defineConfig({ diff --git a/yarn.lock b/yarn.lock index 728a4a89bdc6..506463e66583 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8461,6 +8461,7 @@ __metadata: kill-port: "npm:^2.0.1" nx: "npm:^22.1.3" prettier: "npm:^3.7.1" + vitest: "npm:^4.0.14" languageName: unknown linkType: soft From 7396407827d2b8371d030136e48259fcf3b23c90 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 15:02:40 +0700 Subject: [PATCH 02/18] Fix NX cache inputs and restore DRY storybook:vitest scripts - Replace redundant scripts/**/* input with vitest.config.ts (root config was missing from NX cache inputs; scripts already covered by sharedGlobals) - Restore storybook:vitest scripts to reference yarn test:watch/test instead of duplicating the full command --- code/package.json | 4 ++-- code/project.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/package.json b/code/package.json index 479eb2ef5858..e2b1d96ed62e 100644 --- a/code/package.json +++ b/code/package.json @@ -37,8 +37,8 @@ "storybook:ui": "NODE_OPTIONS=\"--max_old_space_size=4096 --trace-deprecation\" core/dist/bin/dispatcher.js dev --port 6006 --config-dir ./.storybook", "storybook:ui:build": "NODE_OPTIONS=\"--max_old_space_size=4096\" core/dist/bin/dispatcher.js build --config-dir ./.storybook --webpack-stats-json", "storybook:ui:chromatic": "chromatic --storybook-build-dir storybook-static --exit-zero-on-changes --exit-once-uploaded", - "storybook:vitest": "cd .. && NODE_OPTIONS=--max_old_space_size=4096 vitest watch --project storybook-ui", - "storybook:vitest:inspect": "cd .. && INSPECT=true NODE_OPTIONS=--max_old_space_size=4096 vitest run --project storybook-ui", + "storybook:vitest": "yarn test:watch --project storybook-ui", + "storybook:vitest:inspect": "INSPECT=true yarn test --project storybook-ui", "task": "yarn --cwd ../scripts task", "test": "cd .. && NODE_OPTIONS=--max_old_space_size=4096 vitest run", "test:watch": "cd .. && NODE_OPTIONS=--max_old_space_size=4096 vitest watch" diff --git a/code/project.json b/code/project.json index 672622d33613..90553be06f8d 100644 --- a/code/project.json +++ b/code/project.json @@ -15,7 +15,7 @@ "executor": "nx:run-commands", "options": { "command": "NODE_OPTIONS=--max_old_space_size=4096 vitest run" }, "cache": true, - "inputs": ["default", "{workspaceRoot}/scripts/**/*"], + "inputs": ["default", "{workspaceRoot}/vitest.config.ts"], "configurations": { "production": {} } }, "knip": { From bb7153b0473139ed1591f6eb2b47dc94aad77ceb Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 15:35:54 +0700 Subject: [PATCH 03/18] Fix CircleCI test jobs to run from repo root The CI jobs previously ran `yarn test` from `code/` working directory, passing test file paths relative to `code/`. After the vitest root migration, `yarn test` changes CWD to root, so file paths and output paths need to be relative to root. - Remove `working_directory: 'code'` from test jobs - Prefix glob patterns with `code/` (and add `scripts/` for unit tests) - Update test result persist paths from `code/test-results` to `test-results` --- scripts/ci/common-jobs.ts | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/scripts/ci/common-jobs.ts b/scripts/ci/common-jobs.ts index a294206c1fed..53ba4ce361d8 100644 --- a/scripts/ci/common-jobs.ts +++ b/scripts/ci/common-jobs.ts @@ -247,14 +247,13 @@ export const testsUnit_linux = defineJob( { run: { name: 'Run tests', - working_directory: `code`, command: [ - 'TEST_FILES=$(circleci tests glob "**/*.{test,spec}.{ts,tsx,js,jsx,cjs}" | sed "/^e2e-tests\\//d" | sed "/^node_modules\\//d")', + 'TEST_FILES=$(circleci tests glob "code/**/*.{test,spec}.{ts,tsx,js,jsx,cjs}" "scripts/**/*.{test,spec}.{ts,tsx,js,jsx,cjs}" | sed "/e2e-tests\\//d" | sed "/node_modules\\//d")', 'echo "$TEST_FILES" | circleci tests run --command="xargs yarn test --reporter=junit --reporter=default --outputFile=./test-results/junit.xml" --verbose', ].join('\n'), }, }, - testResults.persist(`code/test-results`), + testResults.persist(`test-results`), git.check(), ...workflow.reportOnFailure(workflowName), @@ -276,14 +275,13 @@ export const testsStories_linux = defineJob( { run: { name: 'Run stories tests', - working_directory: `code`, command: [ - 'TEST_FILES=$(circleci tests glob "**/*.{stories}.{ts,tsx,js,jsx,cjs}" | sed "/^e2e-tests\\//d" | sed "/^node_modules\\//d")', + 'TEST_FILES=$(circleci tests glob "code/**/*.{stories}.{ts,tsx,js,jsx,cjs}" | sed "/e2e-tests\\//d" | sed "/node_modules\\//d")', 'echo "$TEST_FILES" | circleci tests run --command="xargs yarn test --reporter=junit --reporter=default --outputFile=./test-results/junit.xml" --verbose', ].join('\n'), }, }, - testResults.persist(`code/test-results`), + testResults.persist(`test-results`), git.check(), ...workflow.reportOnFailure(workflowName), @@ -314,10 +312,9 @@ export const testUnit_windows = defineJob( command: 'yarn test --reporter=junit --reporter=default --outputFile=./test-results/junit.xml', name: 'Run unit tests', - working_directory: `code`, }, }, - testResults.persist(`code/test-results`), + testResults.persist(`test-results`), ], }), [build_windows] From eed6a3717617a75ead0adafe6dc4c3517081bd68 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 16:09:58 +0700 Subject: [PATCH 04/18] Upgrade vitest from 4.0.14 to 4.1.0 - Upgrade vitest and @vitest/* packages to ^4.1.0 - Add vite resolution to pin ^7.0.4 (vitest 4.1.0 pulls in vite 8.0.0 which breaks JSX transforms) - Update EXISTING_RESOLUTIONS for ecosystem-ci Note: test-manager.test.ts has 14 new failures due to vitest 4.1.0's module mocking changes (#9774: manual mocks no longer load/transform original modules). This test mocks vitest/node internals and needs a separate fix. --- code/package.json | 10 +- package.json | 3 +- scripts/ecosystem-ci/existing-resolutions.js | 1 + scripts/package.json | 4 +- yarn.lock | 517 +++++++++++++++---- 5 files changed, 429 insertions(+), 106 deletions(-) diff --git a/code/package.json b/code/package.json index e2b1d96ed62e..85323865a560 100644 --- a/code/package.json +++ b/code/package.json @@ -115,10 +115,10 @@ "@types/react-dom": "^18.0.11", "@vitejs/plugin-react": "^4.3.2", "@vitejs/plugin-vue": "^4.4.0", - "@vitest/browser": "^4.0.14", - "@vitest/browser-playwright": "^4.0.14", - "@vitest/coverage-istanbul": "^4.0.14", - "@vitest/coverage-v8": "^4.0.14", + "@vitest/browser": "^4.1.0", + "@vitest/browser-playwright": "^4.1.0", + "@vitest/coverage-istanbul": "^4.1.0", + "@vitest/coverage-v8": "^4.1.0", "chromatic": "^13.3.4", "create-storybook": "workspace:*", "cross-env": "^7.0.3", @@ -146,7 +146,7 @@ "uuid": "^11.1.0", "vite": "^7.0.4", "vite-plugin-inspect": "^11.0.0", - "vitest": "^4.0.14", + "vitest": "^4.1.0", "wait-on": "^8.0.3" }, "dependenciesMeta": { diff --git a/package.json b/package.json index 70620c2806e4..2500fa734f00 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "@vitest/expect@npm:3.2.4": "patch:@vitest/expect@npm%3A3.2.4#~/.yarn/patches/@vitest-expect-npm-3.2.4-97c526d5cc.patch", "aria-query@5.3.0": "^5.3.0", "esbuild": "^0.27.0", + "vite": "^7.0.4", "playwright": "1.58.2", "playwright-core": "1.58.2", "react": "^18.2.0", @@ -68,7 +69,7 @@ "kill-port": "^2.0.1", "nx": "^22.1.3", "prettier": "^3.7.1", - "vitest": "^4.0.14" + "vitest": "^4.1.0" }, "packageManager": "yarn@4.10.3" } diff --git a/scripts/ecosystem-ci/existing-resolutions.js b/scripts/ecosystem-ci/existing-resolutions.js index 604f017f90c9..8ea9e9d8f98b 100644 --- a/scripts/ecosystem-ci/existing-resolutions.js +++ b/scripts/ecosystem-ci/existing-resolutions.js @@ -26,4 +26,5 @@ export const EXISTING_RESOLUTIONS = new Set([ 'serialize-javascript', 'type-fest', 'typescript', + 'vite', ]); diff --git a/scripts/package.json b/scripts/package.json index c310861b07e5..684148e8f295 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -82,7 +82,7 @@ "@typescript-eslint/eslint-plugin": "^8.48.0", "@typescript-eslint/experimental-utils": "^5.62.0", "@typescript-eslint/parser": "^8.48.0", - "@vitest/coverage-v8": "^4.0.14", + "@vitest/coverage-v8": "^4.1.0", "ansi-regex": "^6.0.1", "chromatic": "^13.3.4", "codecov": "^3.8.1", @@ -170,7 +170,7 @@ "type-fest": "~2.19", "typescript": "^5.9.3", "uuid": "^9.0.1", - "vitest": "^4.0.14", + "vitest": "^4.1.0", "wait-on": "^8.0.3", "window-size": "^1.1.1", "yaml": "^2.8.1", diff --git a/yarn.lock b/yarn.lock index 506463e66583..6160d3d6c116 100644 --- a/yarn.lock +++ b/yarn.lock @@ -458,6 +458,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/code-frame@npm:7.29.0" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.28.5" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.1.1" + checksum: 10c0/d34cc504e7765dfb576a663d97067afb614525806b5cad1a5cc1a7183b916fec8ff57fa233585e3926fd5a9e6b31aae6df91aa81ae9775fb7a28f658d3346f0d + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.26.8, @babel/compat-data@npm:^7.27.2, @babel/compat-data@npm:^7.27.7, @babel/compat-data@npm:^7.28.5": version: 7.28.5 resolution: "@babel/compat-data@npm:7.28.5" @@ -465,6 +476,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.28.6": + version: 7.29.0 + resolution: "@babel/compat-data@npm:7.29.0" + checksum: 10c0/08f348554989d23aa801bf1405aa34b15e841c0d52d79da7e524285c77a5f9d298e70e11d91cc578d8e2c9542efc586d50c5f5cf8e1915b254a9dcf786913a94 + languageName: node + linkType: hard + "@babel/core@npm:7.26.10": version: 7.26.10 resolution: "@babel/core@npm:7.26.10" @@ -534,6 +552,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.29.0": + version: 7.29.0 + resolution: "@babel/core@npm:7.29.0" + dependencies: + "@babel/code-frame": "npm:^7.29.0" + "@babel/generator": "npm:^7.29.0" + "@babel/helper-compilation-targets": "npm:^7.28.6" + "@babel/helper-module-transforms": "npm:^7.28.6" + "@babel/helpers": "npm:^7.28.6" + "@babel/parser": "npm:^7.29.0" + "@babel/template": "npm:^7.28.6" + "@babel/traverse": "npm:^7.29.0" + "@babel/types": "npm:^7.29.0" + "@jridgewell/remapping": "npm:^2.3.5" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/5127d2e8e842ae409e11bcbb5c2dff9874abf5415e8026925af7308e903f4f43397341467a130490d1a39884f461bc2b67f3063bce0be44340db89687fd852aa + languageName: node + linkType: hard + "@babel/generator@npm:7.26.10": version: 7.26.10 resolution: "@babel/generator@npm:7.26.10" @@ -560,6 +601,19 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.29.0": + version: 7.29.1 + resolution: "@babel/generator@npm:7.29.1" + dependencies: + "@babel/parser": "npm:^7.29.0" + "@babel/types": "npm:^7.29.0" + "@jridgewell/gen-mapping": "npm:^0.3.12" + "@jridgewell/trace-mapping": "npm:^0.3.28" + jsesc: "npm:^3.0.2" + checksum: 10c0/349086e6876258ef3fb2823030fee0f6c0eb9c3ebe35fc572e16997f8c030d765f636ddc6299edae63e760ea6658f8ee9a2edfa6d6b24c9a80c917916b973551 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:7.25.9": version: 7.25.9 resolution: "@babel/helper-annotate-as-pure@npm:7.25.9" @@ -591,6 +645,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helper-compilation-targets@npm:7.28.6" + dependencies: + "@babel/compat-data": "npm:^7.28.6" + "@babel/helper-validator-option": "npm:^7.27.1" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/3fcdf3b1b857a1578e99d20508859dbd3f22f3c87b8a0f3dc540627b4be539bae7f6e61e49d931542fe5b557545347272bbdacd7f58a5c77025a18b745593a50 + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.27.1, @babel/helper-create-class-features-plugin@npm:^7.28.3, @babel/helper-create-class-features-plugin@npm:^7.28.5": version: 7.28.5 resolution: "@babel/helper-create-class-features-plugin@npm:7.28.5" @@ -663,6 +730,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helper-module-imports@npm:7.28.6" + dependencies: + "@babel/traverse": "npm:^7.28.6" + "@babel/types": "npm:^7.28.6" + checksum: 10c0/b49d8d8f204d9dbfd5ac70c54e533e5269afb3cea966a9d976722b13e9922cc773a653405f53c89acb247d5aebdae4681d631a3ae3df77ec046b58da76eda2ac + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.26.0, @babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.28.3": version: 7.28.3 resolution: "@babel/helper-module-transforms@npm:7.28.3" @@ -676,6 +753,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helper-module-transforms@npm:7.28.6" + dependencies: + "@babel/helper-module-imports": "npm:^7.28.6" + "@babel/helper-validator-identifier": "npm:^7.28.5" + "@babel/traverse": "npm:^7.28.6" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/6f03e14fc30b287ce0b839474b5f271e72837d0cafe6b172d759184d998fbee3903a035e81e07c2c596449e504f453463d58baa65b6f40a37ded5bec74620b2b + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-optimise-call-expression@npm:7.27.1" @@ -779,6 +869,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.28.6": + version: 7.29.2 + resolution: "@babel/helpers@npm:7.29.2" + dependencies: + "@babel/template": "npm:^7.28.6" + "@babel/types": "npm:^7.29.0" + checksum: 10c0/dab0e65b9318b2502a62c58bc0913572318595eec0482c31f0ad416b72636e6698a1d7c57cd2791d4528eb8c548bca88d338dc4d2a55a108dc1f6702f9bc5512 + languageName: node + linkType: hard + "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.26.10, @babel/parser@npm:^7.26.9, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.0, @babel/parser@npm:^7.28.5, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.9.6": version: 7.28.5 resolution: "@babel/parser@npm:7.28.5" @@ -790,6 +890,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.28.6, @babel/parser@npm:^7.29.0": + version: 7.29.2 + resolution: "@babel/parser@npm:7.29.2" + dependencies: + "@babel/types": "npm:^7.29.0" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/e5a4e69e3ac7acdde995f37cf299a68458cfe7009dff66bd0962fd04920bef287201169006af365af479c08ff216bfefbb595e331f87f6ae7283858aebbc3317 + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9, @babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.28.5": version: 7.28.5 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.28.5" @@ -2058,6 +2169,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/template@npm:7.28.6" + dependencies: + "@babel/code-frame": "npm:^7.28.6" + "@babel/parser": "npm:^7.28.6" + "@babel/types": "npm:^7.28.6" + checksum: 10c0/66d87225ed0bc77f888181ae2d97845021838c619944877f7c4398c6748bcf611f216dfd6be74d39016af502bca876e6ce6873db3c49e4ac354c56d34d57e9f5 + languageName: node + linkType: hard + "@babel/traverse@npm:latest": version: 7.28.5 resolution: "@babel/traverse@npm:7.28.5" @@ -2104,6 +2226,13 @@ __metadata: languageName: node linkType: hard +"@blazediff/core@npm:1.9.1": + version: 1.9.1 + resolution: "@blazediff/core@npm:1.9.1" + checksum: 10c0/fd45cdd0544002341d74831a179ef693a81414abd348c1ff0c01086c0ea03f5e5ee284c4e16c2e6fb3670c265f90a3d85752b9360320efa9a835928e604dae77 + languageName: node + linkType: hard + "@bunchtogether/vite-plugin-flow@npm:^1.0.2": version: 1.0.2 resolution: "@bunchtogether/vite-plugin-flow@npm:1.0.2" @@ -3411,7 +3540,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.12, @jridgewell/gen-mapping@npm:^0.3.5": +"@jridgewell/gen-mapping@npm:^0.3.12, @jridgewell/gen-mapping@npm:^0.3.13, @jridgewell/gen-mapping@npm:^0.3.5": version: 0.3.13 resolution: "@jridgewell/gen-mapping@npm:0.3.13" dependencies: @@ -3455,7 +3584,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.28, @jridgewell/trace-mapping@npm:^0.3.31": +"@jridgewell/trace-mapping@npm:0.3.31, @jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.28, @jridgewell/trace-mapping@npm:^0.3.31": version: 0.3.31 resolution: "@jridgewell/trace-mapping@npm:0.3.31" dependencies: @@ -7606,6 +7735,13 @@ __metadata: languageName: node linkType: hard +"@standard-schema/spec@npm:^1.1.0": + version: 1.1.0 + resolution: "@standard-schema/spec@npm:1.1.0" + checksum: 10c0/d90f55acde4b2deb983529c87e8025fa693de1a5e8b49ecc6eb84d1fd96328add0e03d7d551442156c7432fd78165b2c26ff561b970a9a881f046abb78d6a526 + languageName: node + linkType: hard + "@storybook/addon-a11y@workspace:*, @storybook/addon-a11y@workspace:code/addons/a11y": version: 0.0.0-use.local resolution: "@storybook/addon-a11y@workspace:code/addons/a11y" @@ -7960,10 +8096,10 @@ __metadata: "@types/react-dom": "npm:^18.0.11" "@vitejs/plugin-react": "npm:^4.3.2" "@vitejs/plugin-vue": "npm:^4.4.0" - "@vitest/browser": "npm:^4.0.14" - "@vitest/browser-playwright": "npm:^4.0.14" - "@vitest/coverage-istanbul": "npm:^4.0.14" - "@vitest/coverage-v8": "npm:^4.0.14" + "@vitest/browser": "npm:^4.1.0" + "@vitest/browser-playwright": "npm:^4.1.0" + "@vitest/coverage-istanbul": "npm:^4.1.0" + "@vitest/coverage-v8": "npm:^4.1.0" chromatic: "npm:^13.3.4" create-storybook: "workspace:*" cross-env: "npm:^7.0.3" @@ -7991,7 +8127,7 @@ __metadata: uuid: "npm:^11.1.0" vite: "npm:^7.0.4" vite-plugin-inspect: "npm:^11.0.0" - vitest: "npm:^4.0.14" + vitest: "npm:^4.1.0" wait-on: "npm:^8.0.3" dependenciesMeta: ejs: @@ -8461,7 +8597,7 @@ __metadata: kill-port: "npm:^2.0.1" nx: "npm:^22.1.3" prettier: "npm:^3.7.1" - vitest: "npm:^4.0.14" + vitest: "npm:^4.1.0" languageName: unknown linkType: soft @@ -8501,7 +8637,7 @@ __metadata: "@typescript-eslint/experimental-utils": "npm:^5.62.0" "@typescript-eslint/parser": "npm:^8.48.0" "@verdaccio/types": "npm:^10.8.0" - "@vitest/coverage-v8": "npm:^4.0.14" + "@vitest/coverage-v8": "npm:^4.1.0" ansi-regex: "npm:^6.0.1" chromatic: "npm:^13.3.4" codecov: "npm:^3.8.1" @@ -8591,7 +8727,7 @@ __metadata: uuid: "npm:^9.0.1" verdaccio: "npm:^5.33.0" verdaccio-auth-memory: "npm:^10.3.1" - vitest: "npm:^4.0.14" + vitest: "npm:^4.1.0" wait-on: "npm:^8.0.3" window-size: "npm:^1.1.1" yaml: "npm:^2.8.1" @@ -10663,7 +10799,24 @@ __metadata: languageName: node linkType: hard -"@vitest/browser@npm:4.0.14, @vitest/browser@npm:^4.0.14": +"@vitest/browser-playwright@npm:^4.1.0": + version: 4.1.0 + resolution: "@vitest/browser-playwright@npm:4.1.0" + dependencies: + "@vitest/browser": "npm:4.1.0" + "@vitest/mocker": "npm:4.1.0" + tinyrainbow: "npm:^3.0.3" + peerDependencies: + playwright: "*" + vitest: 4.1.0 + peerDependenciesMeta: + playwright: + optional: false + checksum: 10c0/af2f6fc36eb56e3c1ac6e31b0ab2a2f4ca0bda86a306d0991b2f01047213fb191339b35775103af11ce1ef323ec72432eebe4bfeccd744d5e7c658716f1b985a + languageName: node + linkType: hard + +"@vitest/browser@npm:4.0.14": version: 4.0.14 resolution: "@vitest/browser@npm:4.0.14" dependencies: @@ -10681,22 +10834,41 @@ __metadata: languageName: node linkType: hard -"@vitest/coverage-istanbul@npm:^4.0.14": - version: 4.0.14 - resolution: "@vitest/coverage-istanbul@npm:4.0.14" +"@vitest/browser@npm:4.1.0, @vitest/browser@npm:^4.1.0": + version: 4.1.0 + resolution: "@vitest/browser@npm:4.1.0" dependencies: + "@blazediff/core": "npm:1.9.1" + "@vitest/mocker": "npm:4.1.0" + "@vitest/utils": "npm:4.1.0" + magic-string: "npm:^0.30.21" + pngjs: "npm:^7.0.0" + sirv: "npm:^3.0.2" + tinyrainbow: "npm:^3.0.3" + ws: "npm:^8.19.0" + peerDependencies: + vitest: 4.1.0 + checksum: 10c0/33b35cea63f392b6afafb6636bebe7ff0d234b1c120ec74a97462c7a7cbdbc67f415a5f0f95651f4074d53bfe12d4ff3ae8f16ba79045226df6365c77f950e18 + languageName: node + linkType: hard + +"@vitest/coverage-istanbul@npm:^4.1.0": + version: 4.1.0 + resolution: "@vitest/coverage-istanbul@npm:4.1.0" + dependencies: + "@babel/core": "npm:^7.29.0" "@istanbuljs/schema": "npm:^0.1.3" + "@jridgewell/gen-mapping": "npm:^0.3.13" + "@jridgewell/trace-mapping": "npm:0.3.31" istanbul-lib-coverage: "npm:^3.2.2" - istanbul-lib-instrument: "npm:^6.0.3" istanbul-lib-report: "npm:^3.0.1" - istanbul-lib-source-maps: "npm:^5.0.6" istanbul-reports: "npm:^3.2.0" - magicast: "npm:^0.5.1" + magicast: "npm:^0.5.2" obug: "npm:^2.1.1" tinyrainbow: "npm:^3.0.3" peerDependencies: - vitest: 4.0.14 - checksum: 10c0/baeb4b239b4e4b48e76c41df86ba20c99366cd1a3a6f53637f489b7fd7c12371389312f853a3ac7e0867e577100e35456a3e8038783fccd32fe4e631e2e6d218 + vitest: 4.1.0 + checksum: 10c0/674d3f6a1b411a2f1d48e5fd6d2bc50d30e16b1e540737492d9f5238b57cf999fb93c316744f2acd661369277438f969fd1a6e8195cdd36ee2fe01b7531f6e98 languageName: node linkType: hard @@ -10727,28 +10899,27 @@ __metadata: languageName: node linkType: hard -"@vitest/coverage-v8@npm:^4.0.14": - version: 4.0.14 - resolution: "@vitest/coverage-v8@npm:4.0.14" +"@vitest/coverage-v8@npm:^4.1.0": + version: 4.1.0 + resolution: "@vitest/coverage-v8@npm:4.1.0" dependencies: "@bcoe/v8-coverage": "npm:^1.0.2" - "@vitest/utils": "npm:4.0.14" - ast-v8-to-istanbul: "npm:^0.3.8" + "@vitest/utils": "npm:4.1.0" + ast-v8-to-istanbul: "npm:^1.0.0" istanbul-lib-coverage: "npm:^3.2.2" istanbul-lib-report: "npm:^3.0.1" - istanbul-lib-source-maps: "npm:^5.0.6" istanbul-reports: "npm:^3.2.0" - magicast: "npm:^0.5.1" + magicast: "npm:^0.5.2" obug: "npm:^2.1.1" - std-env: "npm:^3.10.0" + std-env: "npm:^4.0.0-rc.1" tinyrainbow: "npm:^3.0.3" peerDependencies: - "@vitest/browser": 4.0.14 - vitest: 4.0.14 + "@vitest/browser": 4.1.0 + vitest: 4.1.0 peerDependenciesMeta: "@vitest/browser": optional: true - checksum: 10c0/ae4f7c0b187167bb679c6eee9b6dc6d036e15b629506cb2a462675de7ebd7bcf43ed07c2ade9d9737c351cf9f8fcd614f42b028a26cd4e44fce56ec05a79d6ca + checksum: 10c0/0bcbc9d20dd4c998ff76b82a721d6000f1300346b93cfc441f9012797a34be65bb73dc99451275d7f7dcb06b98856b4e5dc30b2c483051ec2320e9a89af14179 languageName: node linkType: hard @@ -10779,6 +10950,20 @@ __metadata: languageName: node linkType: hard +"@vitest/expect@npm:4.1.0": + version: 4.1.0 + resolution: "@vitest/expect@npm:4.1.0" + dependencies: + "@standard-schema/spec": "npm:^1.1.0" + "@types/chai": "npm:^5.2.2" + "@vitest/spy": "npm:4.1.0" + "@vitest/utils": "npm:4.1.0" + chai: "npm:^6.2.2" + tinyrainbow: "npm:^3.0.3" + checksum: 10c0/91cd7bb036401df5dfd9204f3de9a0afdb21dea6ee154622e5ed849e87a0df68b74258d490559c7046d3c03bc7aa634e9b0c166942a21d5e475c86c971486091 + languageName: node + linkType: hard + "@vitest/expect@patch:@vitest/expect@npm%3A3.2.4#~/.yarn/patches/@vitest-expect-npm-3.2.4-97c526d5cc.patch": version: 3.2.4 resolution: "@vitest/expect@patch:@vitest/expect@npm%3A3.2.4#~/.yarn/patches/@vitest-expect-npm-3.2.4-97c526d5cc.patch::version=3.2.4&hash=6385de" @@ -10830,6 +11015,25 @@ __metadata: languageName: node linkType: hard +"@vitest/mocker@npm:4.1.0": + version: 4.1.0 + resolution: "@vitest/mocker@npm:4.1.0" + dependencies: + "@vitest/spy": "npm:4.1.0" + estree-walker: "npm:^3.0.3" + magic-string: "npm:^0.30.21" + peerDependencies: + msw: ^2.4.9 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + checksum: 10c0/f61d3df6461008eb1e62ba465172207b29bd0d9866ff6bc88cd40fc99cd5d215ad89e2894ba6de87068e33f75de903b28a65ccc6074edf3de1fbead6a4a369cc + languageName: node + linkType: hard + "@vitest/pretty-format@npm:3.2.4": version: 3.2.4 resolution: "@vitest/pretty-format@npm:3.2.4" @@ -10848,6 +11052,15 @@ __metadata: languageName: node linkType: hard +"@vitest/pretty-format@npm:4.1.0": + version: 4.1.0 + resolution: "@vitest/pretty-format@npm:4.1.0" + dependencies: + tinyrainbow: "npm:^3.0.3" + checksum: 10c0/638077f53b5f24ff2d4bc062e69931fa718141db28ddafe435de98a402586b82e8c3cadfc580c0ad233d7f0203aa22d866ac2adca98b83038dbd5423c3d7fe27 + languageName: node + linkType: hard + "@vitest/runner@npm:4.0.14, @vitest/runner@npm:^4.0.14": version: 4.0.14 resolution: "@vitest/runner@npm:4.0.14" @@ -10858,6 +11071,16 @@ __metadata: languageName: node linkType: hard +"@vitest/runner@npm:4.1.0": + version: 4.1.0 + resolution: "@vitest/runner@npm:4.1.0" + dependencies: + "@vitest/utils": "npm:4.1.0" + pathe: "npm:^2.0.3" + checksum: 10c0/9e09ca1b9070d3fe26c9bd48443d21b9fe2cb9abb2f694300bd9e5065f4e904f7322c07cd4bafadfed6fb11adfb50e4d1535f327ac6d24b6c373e92be90510bc + languageName: node + linkType: hard + "@vitest/snapshot@npm:4.0.14": version: 4.0.14 resolution: "@vitest/snapshot@npm:4.0.14" @@ -10869,6 +11092,18 @@ __metadata: languageName: node linkType: hard +"@vitest/snapshot@npm:4.1.0": + version: 4.1.0 + resolution: "@vitest/snapshot@npm:4.1.0" + dependencies: + "@vitest/pretty-format": "npm:4.1.0" + "@vitest/utils": "npm:4.1.0" + magic-string: "npm:^0.30.21" + pathe: "npm:^2.0.3" + checksum: 10c0/582c22988c47a99d93dd17ef660427fefe101f67ae4394b64fe58ec103ddc55fc5993626b4a2b556e0a38d40552abaca78196907455e794805ba197b3d56860f + languageName: node + linkType: hard + "@vitest/spy@npm:3.2.4": version: 3.2.4 resolution: "@vitest/spy@npm:3.2.4" @@ -10885,6 +11120,13 @@ __metadata: languageName: node linkType: hard +"@vitest/spy@npm:4.1.0": + version: 4.1.0 + resolution: "@vitest/spy@npm:4.1.0" + checksum: 10c0/363776bbffda45af76ff500deacb9b1a35ad8b889462c1be9ebe5f29578ce1dd2c4bd7858c8188614a7db9699a5c802b7beb72e5a18ab5130a70326817961446 + languageName: node + linkType: hard + "@vitest/utils@npm:3.2.4, @vitest/utils@npm:^3.2.4": version: 3.2.4 resolution: "@vitest/utils@npm:3.2.4" @@ -10906,6 +11148,17 @@ __metadata: languageName: node linkType: hard +"@vitest/utils@npm:4.1.0": + version: 4.1.0 + resolution: "@vitest/utils@npm:4.1.0" + dependencies: + "@vitest/pretty-format": "npm:4.1.0" + convert-source-map: "npm:^2.0.0" + tinyrainbow: "npm:^3.0.3" + checksum: 10c0/222afbdef4f680a554bb6c3d946a4a879a441ebfb8597295cb7554d295e0e2624f3d4c2920b5767bbb8961a9f8a16756270ffc84032f5ea432cdce080ccab050 + languageName: node + linkType: hard + "@volar/language-core@npm:2.4.15": version: 2.4.15 resolution: "@volar/language-core@npm:2.4.15" @@ -12018,7 +12271,7 @@ __metadata: languageName: node linkType: hard -"ast-v8-to-istanbul@npm:^0.3.3, ast-v8-to-istanbul@npm:^0.3.8": +"ast-v8-to-istanbul@npm:^0.3.3": version: 0.3.8 resolution: "ast-v8-to-istanbul@npm:0.3.8" dependencies: @@ -12029,6 +12282,17 @@ __metadata: languageName: node linkType: hard +"ast-v8-to-istanbul@npm:^1.0.0": + version: 1.0.0 + resolution: "ast-v8-to-istanbul@npm:1.0.0" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.31" + estree-walker: "npm:^3.0.3" + js-tokens: "npm:^10.0.0" + checksum: 10c0/35e57b754ba63287358094d4f7ae8de2de27286fb4e76a1fbf28b2e67e3b670b59c3f511882473d0fd2cdbaa260062e3cd4f216b724c70032e2b09e5cebbd618 + languageName: node + linkType: hard + "astring@npm:^1.8.0": version: 1.9.0 resolution: "astring@npm:1.9.0" @@ -13260,6 +13524,13 @@ __metadata: languageName: node linkType: hard +"chai@npm:^6.2.2": + version: 6.2.2 + resolution: "chai@npm:6.2.2" + checksum: 10c0/e6c69e5f0c11dffe6ea13d0290936ebb68fcc1ad688b8e952e131df6a6d5797d5e860bc55cef1aca2e950c3e1f96daf79e9d5a70fb7dbaab4e46355e2635ed53 + languageName: node + linkType: hard + "chalk@npm:^2.0.0, chalk@npm:^2.3.0": version: 2.4.2 resolution: "chalk@npm:2.4.2" @@ -15817,6 +16088,13 @@ __metadata: languageName: node linkType: hard +"es-module-lexer@npm:^2.0.0": + version: 2.0.0 + resolution: "es-module-lexer@npm:2.0.0" + checksum: 10c0/ae78dbbd43035a4b972c46cfb6877e374ea290adfc62bc2f5a083fea242c0b2baaab25c5886af86be55f092f4a326741cb94334cd3c478c383fdc8a9ec5ff817 + languageName: node + linkType: hard + "es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": version: 1.1.1 resolution: "es-object-atoms@npm:1.1.1" @@ -16889,6 +17167,13 @@ __metadata: languageName: node linkType: hard +"expect-type@npm:^1.3.0": + version: 1.3.0 + resolution: "expect-type@npm:1.3.0" + checksum: 10c0/8412b3fe4f392c420ab41dae220b09700e4e47c639a29ba7ba2e83cc6cffd2b4926f7ac9e47d7e277e8f4f02acda76fd6931cb81fd2b382fa9477ef9ada953fd + languageName: node + linkType: hard + "expect@npm:^29.0.0": version: 29.7.0 resolution: "expect@npm:29.7.0" @@ -17239,7 +17524,7 @@ __metadata: languageName: node linkType: hard -"fdir@npm:^6.2.0, fdir@npm:^6.4.4, fdir@npm:^6.5.0": +"fdir@npm:^6.2.0, fdir@npm:^6.5.0": version: 6.5.0 resolution: "fdir@npm:6.5.0" peerDependencies: @@ -20113,7 +20398,7 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-instrument@npm:6.0.3, istanbul-lib-instrument@npm:^6.0.3": +"istanbul-lib-instrument@npm:6.0.3": version: 6.0.3 resolution: "istanbul-lib-instrument@npm:6.0.3" dependencies: @@ -20385,6 +20670,13 @@ __metadata: languageName: node linkType: hard +"js-tokens@npm:^10.0.0": + version: 10.0.0 + resolution: "js-tokens@npm:10.0.0" + checksum: 10c0/a93498747812ba3e0c8626f95f75ab29319f2a13613a0de9e610700405760931624433a0de59eb7c27ff8836e526768fb20783861b86ef89be96676f2c996b64 + languageName: node + linkType: hard + "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -21509,14 +21801,14 @@ __metadata: languageName: node linkType: hard -"magicast@npm:^0.5.1": - version: 0.5.1 - resolution: "magicast@npm:0.5.1" +"magicast@npm:^0.5.2": + version: 0.5.2 + resolution: "magicast@npm:0.5.2" dependencies: - "@babel/parser": "npm:^7.28.5" - "@babel/types": "npm:^7.28.5" + "@babel/parser": "npm:^7.29.0" + "@babel/types": "npm:^7.29.0" source-map-js: "npm:^1.2.1" - checksum: 10c0/a00bbf3688b9b3e83c10b3bfe3f106cc2ccbf20c4f2dc1c9020a10556dfe0a6a6605a445ee8e86a6e2b484ec519a657b5e405532684f72678c62e4c0d32f962c + checksum: 10c0/924af677643c5a0a7d6cdb3247c0eb96fa7611b2ba6a5e720d35d81c503d3d9f5948eb5227f80f90f82ea3e7d38cffd10bb988f3fc09020db428e14f26e960d7 languageName: node linkType: hard @@ -24846,7 +25138,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.2.14, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.49, postcss@npm:^8.5.3, postcss@npm:^8.5.6": +"postcss@npm:^8.2.14, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.49, postcss@npm:^8.5.6": version: 8.5.6 resolution: "postcss@npm:8.5.6" dependencies: @@ -26950,7 +27242,7 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.21.0, rollup@npm:^4.34.9, rollup@npm:^4.43.0": +"rollup@npm:^4.21.0, rollup@npm:^4.43.0": version: 4.53.2 resolution: "rollup@npm:4.53.2" dependencies: @@ -28256,7 +28548,7 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^4.0.0": +"std-env@npm:^4.0.0, std-env@npm:^4.0.0-rc.1": version: 4.0.0 resolution: "std-env@npm:4.0.0" checksum: 10c0/63b1716eae27947adde49e21b7225a0f75fb2c3d410273ae9de8333c07c7d5fc7a0628ae4c8af6b4b49b4274ed46c2bf118ed69b64f1261c9d8213d76ed1c16c @@ -29300,6 +29592,13 @@ __metadata: languageName: node linkType: hard +"tinyexec@npm:^1.0.2": + version: 1.0.4 + resolution: "tinyexec@npm:1.0.4" + checksum: 10c0/d4a5bbcf6bdb23527a4b74c4aa566f41432167112fe76f420ec7e3a90a3ecfd3a7d944383e2719fc3987b69400f7b928daf08700d145fb527c2e80ec01e198bd + languageName: node + linkType: hard + "tinyglobby@npm:^0.2.10, tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13, tinyglobby@npm:^0.2.15": version: 0.2.15 resolution: "tinyglobby@npm:0.2.15" @@ -30667,62 +30966,7 @@ __metadata: languageName: node linkType: hard -"vite@npm:6.4.1": - version: 6.4.1 - resolution: "vite@npm:6.4.1" - dependencies: - esbuild: "npm:^0.25.0" - fdir: "npm:^6.4.4" - fsevents: "npm:~2.3.3" - picomatch: "npm:^4.0.2" - postcss: "npm:^8.5.3" - rollup: "npm:^4.34.9" - tinyglobby: "npm:^0.2.13" - peerDependencies: - "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 - jiti: ">=1.21.0" - less: "*" - lightningcss: ^1.21.0 - sass: "*" - sass-embedded: "*" - stylus: "*" - sugarss: "*" - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.4.2 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@types/node": - optional: true - jiti: - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - bin: - vite: bin/vite.js - checksum: 10c0/77bb4c5b10f2a185e7859cc9a81c789021bc18009b02900347d1583b453b58e4b19ff07a5e5a5b522b68fc88728460bb45a63b104d969e8c6a6152aea3b849f7 - languageName: node - linkType: hard - -"vite@npm:^6.0.0 || ^7.0.0, vite@npm:^7.0.4": +"vite@npm:^7.0.4": version: 7.2.2 resolution: "vite@npm:7.2.2" dependencies: @@ -30864,6 +31108,68 @@ __metadata: languageName: node linkType: hard +"vitest@npm:^4.1.0": + version: 4.1.0 + resolution: "vitest@npm:4.1.0" + dependencies: + "@vitest/expect": "npm:4.1.0" + "@vitest/mocker": "npm:4.1.0" + "@vitest/pretty-format": "npm:4.1.0" + "@vitest/runner": "npm:4.1.0" + "@vitest/snapshot": "npm:4.1.0" + "@vitest/spy": "npm:4.1.0" + "@vitest/utils": "npm:4.1.0" + es-module-lexer: "npm:^2.0.0" + expect-type: "npm:^1.3.0" + magic-string: "npm:^0.30.21" + obug: "npm:^2.1.1" + pathe: "npm:^2.0.3" + picomatch: "npm:^4.0.3" + std-env: "npm:^4.0.0-rc.1" + tinybench: "npm:^2.9.0" + tinyexec: "npm:^1.0.2" + tinyglobby: "npm:^0.2.15" + tinyrainbow: "npm:^3.0.3" + vite: "npm:^6.0.0 || ^7.0.0 || ^8.0.0-0" + why-is-node-running: "npm:^2.3.0" + peerDependencies: + "@edge-runtime/vm": "*" + "@opentelemetry/api": ^1.9.0 + "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 + "@vitest/browser-playwright": 4.1.0 + "@vitest/browser-preview": 4.1.0 + "@vitest/browser-webdriverio": 4.1.0 + "@vitest/ui": 4.1.0 + happy-dom: "*" + jsdom: "*" + vite: ^6.0.0 || ^7.0.0 || ^8.0.0-0 + peerDependenciesMeta: + "@edge-runtime/vm": + optional: true + "@opentelemetry/api": + optional: true + "@types/node": + optional: true + "@vitest/browser-playwright": + optional: true + "@vitest/browser-preview": + optional: true + "@vitest/browser-webdriverio": + optional: true + "@vitest/ui": + optional: true + happy-dom: + optional: true + jsdom: + optional: true + vite: + optional: false + bin: + vitest: vitest.mjs + checksum: 10c0/48048e4391e4e8190aa12b1c868bef4ad8d346214631b4506e0dc1f3241ecb8bcb24f296c38a7d98eae712a042375ae209da4b35165db38f9a9bc79a3a9e2a04 + languageName: node + linkType: hard + "vlq@npm:^0.2.1": version: 0.2.3 resolution: "vlq@npm:0.2.3" @@ -31713,6 +32019,21 @@ __metadata: languageName: node linkType: hard +"ws@npm:^8.19.0": + version: 8.19.0 + resolution: "ws@npm:8.19.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/4741d9b9bc3f9c791880882414f96e36b8b254e34d4b503279d6400d9a4b87a033834856dbdd94ee4b637944df17ea8afc4bce0ff4a1560d2166be8855da5b04 + languageName: node + linkType: hard + "wsl-utils@npm:^0.1.0": version: 0.1.0 resolution: "wsl-utils@npm:0.1.0" From 6079fbd674de5708d967ea9e3fb003ad23ced669 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 16:15:19 +0700 Subject: [PATCH 05/18] Fix test-manager mock for vitest 4.1.0 compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vitest 4.1.0 changed module mocking behavior: importOriginal() in manual mocks no longer loads/transforms original modules (#9774). Remove the importOriginal() spread since the test only needs the createVitest mock — no other exports from vitest/node are used at runtime. --- code/addons/vitest/src/node/test-manager.test.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/addons/vitest/src/node/test-manager.test.ts b/code/addons/vitest/src/node/test-manager.test.ts index 736e688ab6fc..bdc919b1b354 100644 --- a/code/addons/vitest/src/node/test-manager.test.ts +++ b/code/addons/vitest/src/node/test-manager.test.ts @@ -44,8 +44,7 @@ const vitest = vi.hoisted(() => ({ const mockCreateVitest = vi.fn(); -vi.mock('vitest/node', async (importOriginal) => ({ - ...(await importOriginal()), +vi.mock('vitest/node', () => ({ createVitest: mockCreateVitest, })); From 05865b1f61a3da9b005772f0b9c1f2b3f1e146b1 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 17:24:14 +0700 Subject: [PATCH 06/18] Address PR review feedback and fix addon-vitest type check - Remove ignoreSourceErrors from pseudo-states vitest config - Use yarn test in code/project.json NX target - Replace __dirname with import.meta.dirname in vitest.config.storybook.ts - Move vite from resolutions to devDependencies - Fix BrowserCommands type augmentation for vitest 4.1.0 compatibility --- code/addons/pseudo-states/vitest.config.ts | 1 - code/addons/vitest/src/vitest-plugin/test-utils.ts | 10 +++------- code/project.json | 2 +- code/vitest.config.storybook.ts | 4 +--- package.json | 2 +- scripts/ecosystem-ci/existing-resolutions.js | 1 - 6 files changed, 6 insertions(+), 14 deletions(-) diff --git a/code/addons/pseudo-states/vitest.config.ts b/code/addons/pseudo-states/vitest.config.ts index 28a5ec0fffe9..0e10a6f31d49 100644 --- a/code/addons/pseudo-states/vitest.config.ts +++ b/code/addons/pseudo-states/vitest.config.ts @@ -8,7 +8,6 @@ export default mergeConfig( test: { typecheck: { enabled: true, - ignoreSourceErrors: true, }, }, }) diff --git a/code/addons/vitest/src/vitest-plugin/test-utils.ts b/code/addons/vitest/src/vitest-plugin/test-utils.ts index ec39bbc0734f..c0d2146187b2 100644 --- a/code/addons/vitest/src/vitest-plugin/test-utils.ts +++ b/code/addons/vitest/src/vitest-plugin/test-utils.ts @@ -8,13 +8,9 @@ import { type Report, composeStory, getCsfFactoryAnnotations } from 'storybook/p import { setViewport } from './viewports'; -declare module 'vitest/browser' { - interface BrowserCommands { - getInitialGlobals: () => Promise>; - } -} - -const { getInitialGlobals } = server.commands; +const { getInitialGlobals } = server.commands as typeof server.commands & { + getInitialGlobals: () => Promise>; +}; /** * Converts a file URL to a file path, handling URL encoding diff --git a/code/project.json b/code/project.json index 90553be06f8d..ff6804de0ee1 100644 --- a/code/project.json +++ b/code/project.json @@ -13,7 +13,7 @@ "test": { "dependsOn": [{ "projects": ["*"], "target": "compile" }], "executor": "nx:run-commands", - "options": { "command": "NODE_OPTIONS=--max_old_space_size=4096 vitest run" }, + "options": { "command": "yarn test" }, "cache": true, "inputs": ["default", "{workspaceRoot}/vitest.config.ts"], "configurations": { "production": {} } diff --git a/code/vitest.config.storybook.ts b/code/vitest.config.storybook.ts index 08668876a01a..2088e69634ae 100644 --- a/code/vitest.config.storybook.ts +++ b/code/vitest.config.storybook.ts @@ -1,5 +1,3 @@ -import { resolve } from 'node:path'; - import { defaultExclude, defineProject } from 'vitest/config'; import { storybookTest } from '@storybook/addon-vitest/vitest-plugin'; @@ -23,7 +21,7 @@ if (process.env.INSPECT === 'true') { export default defineProject({ plugins: [ storybookTest({ - configDir: resolve(__dirname, '.storybook'), + configDir: import.meta.dirname + '/.storybook', tags: { include: ['vitest'], }, diff --git a/package.json b/package.json index 2500fa734f00..7edc2a74a757 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,6 @@ "@vitest/expect@npm:3.2.4": "patch:@vitest/expect@npm%3A3.2.4#~/.yarn/patches/@vitest-expect-npm-3.2.4-97c526d5cc.patch", "aria-query@5.3.0": "^5.3.0", "esbuild": "^0.27.0", - "vite": "^7.0.4", "playwright": "1.58.2", "playwright-core": "1.58.2", "react": "^18.2.0", @@ -69,6 +68,7 @@ "kill-port": "^2.0.1", "nx": "^22.1.3", "prettier": "^3.7.1", + "vite": "^7.0.4", "vitest": "^4.1.0" }, "packageManager": "yarn@4.10.3" diff --git a/scripts/ecosystem-ci/existing-resolutions.js b/scripts/ecosystem-ci/existing-resolutions.js index 8ea9e9d8f98b..604f017f90c9 100644 --- a/scripts/ecosystem-ci/existing-resolutions.js +++ b/scripts/ecosystem-ci/existing-resolutions.js @@ -26,5 +26,4 @@ export const EXISTING_RESOLUTIONS = new Set([ 'serialize-javascript', 'type-fest', 'typescript', - 'vite', ]); From ecd29967df27593adffde1c0af8bac44d4e214fa Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 17:31:52 +0700 Subject: [PATCH 07/18] Fix BrowserCommands augmentation by deduplicating vitest The addon had vitest ^4.0.14 while root had ^4.1.0, causing two separate copies with distinct BrowserCommands interfaces. Bump addon devDeps to ^4.1.0 and use the docs-recommended `declare module 'vitest/browser'` augmentation path. --- code/addons/vitest/package.json | 6 +- .../vitest/src/vitest-plugin/test-utils.ts | 10 +- yarn.lock | 999 ++++++++++++++---- 3 files changed, 774 insertions(+), 241 deletions(-) diff --git a/code/addons/vitest/package.json b/code/addons/vitest/package.json index 541e8719a446..ae7fefad70cb 100644 --- a/code/addons/vitest/package.json +++ b/code/addons/vitest/package.json @@ -85,8 +85,8 @@ "@types/micromatch": "^4.0.0", "@types/node": "^22.19.1", "@types/semver": "^7.7.1", - "@vitest/browser-playwright": "^4.0.14", - "@vitest/runner": "^4.0.14", + "@vitest/browser-playwright": "^4.1.0", + "@vitest/runner": "^4.1.0", "empathic": "^2.0.0", "es-toolkit": "^1.43.0", "istanbul-lib-report": "^3.0.1", @@ -102,7 +102,7 @@ "tree-kill": "^1.2.2", "ts-dedent": "^2.2.0", "typescript": "^5.9.3", - "vitest": "^4.0.14" + "vitest": "^4.1.0" }, "peerDependencies": { "@vitest/browser": "^3.0.0 || ^4.0.0", diff --git a/code/addons/vitest/src/vitest-plugin/test-utils.ts b/code/addons/vitest/src/vitest-plugin/test-utils.ts index c0d2146187b2..ec39bbc0734f 100644 --- a/code/addons/vitest/src/vitest-plugin/test-utils.ts +++ b/code/addons/vitest/src/vitest-plugin/test-utils.ts @@ -8,9 +8,13 @@ import { type Report, composeStory, getCsfFactoryAnnotations } from 'storybook/p import { setViewport } from './viewports'; -const { getInitialGlobals } = server.commands as typeof server.commands & { - getInitialGlobals: () => Promise>; -}; +declare module 'vitest/browser' { + interface BrowserCommands { + getInitialGlobals: () => Promise>; + } +} + +const { getInitialGlobals } = server.commands; /** * Converts a file URL to a file path, handling URL encoding diff --git a/yarn.lock b/yarn.lock index 6160d3d6c116..af32591deeac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2409,6 +2409,16 @@ __metadata: languageName: node linkType: hard +"@emnapi/core@npm:^1.7.1": + version: 1.9.0 + resolution: "@emnapi/core@npm:1.9.0" + dependencies: + "@emnapi/wasi-threads": "npm:1.2.0" + tslib: "npm:^2.4.0" + checksum: 10c0/defbfa5861aa5ff1346dbc6a19df50d727ae76ae276a31a97b178db8eecae0c5179976878087b43ac2441750e40e6c50e465280383256deb16dd2fb167dd515c + languageName: node + linkType: hard + "@emnapi/runtime@npm:^1.1.0, @emnapi/runtime@npm:^1.4.3, @emnapi/runtime@npm:^1.5.0, @emnapi/runtime@npm:^1.7.0": version: 1.7.1 resolution: "@emnapi/runtime@npm:1.7.1" @@ -2418,6 +2428,15 @@ __metadata: languageName: node linkType: hard +"@emnapi/runtime@npm:^1.7.1": + version: 1.9.0 + resolution: "@emnapi/runtime@npm:1.9.0" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/f825e53b2d3f9d31fd880e669197d006bb5158c3a52ab25f0546f3d52ac58eb539a4bd1dcc378af6c10d202956fa064b28ab7b572a76de58972c0b8656a692ef + languageName: node + linkType: hard + "@emnapi/wasi-threads@npm:1.1.0": version: 1.1.0 resolution: "@emnapi/wasi-threads@npm:1.1.0" @@ -2427,6 +2446,15 @@ __metadata: languageName: node linkType: hard +"@emnapi/wasi-threads@npm:1.2.0": + version: 1.2.0 + resolution: "@emnapi/wasi-threads@npm:1.2.0" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/1e3724b5814b06c14782fda87eee9b9aa68af01576c81ffeaefdf621ddb74386e419d5b3b1027b6a8172397729d95a92f814fc4b8d3c224376428faa07a6a01a + languageName: node + linkType: hard + "@emotion/babel-plugin@npm:^11.13.5": version: 11.13.5 resolution: "@emotion/babel-plugin@npm:11.13.5" @@ -4064,6 +4092,17 @@ __metadata: languageName: node linkType: hard +"@napi-rs/wasm-runtime@npm:^1.1.1": + version: 1.1.1 + resolution: "@napi-rs/wasm-runtime@npm:1.1.1" + dependencies: + "@emnapi/core": "npm:^1.7.1" + "@emnapi/runtime": "npm:^1.7.1" + "@tybys/wasm-util": "npm:^0.10.1" + checksum: 10c0/04d57b67e80736e41fe44674a011878db0a8ad893f4d44abb9d3608debb7c174224cba2796ed5b0c1d367368159f3ca6be45f1c59222f70e32ddc880f803d447 + languageName: node + linkType: hard + "@neoconfetti/react@npm:^1.0.0": version: 1.0.0 resolution: "@neoconfetti/react@npm:1.0.0" @@ -4806,6 +4845,20 @@ __metadata: languageName: node linkType: hard +"@oxc-project/runtime@npm:0.115.0": + version: 0.115.0 + resolution: "@oxc-project/runtime@npm:0.115.0" + checksum: 10c0/88905181724fcad06d2852969e706a25a7b6c4fadac22dd6aece24b882a947eda7487451e0824781c9dc87b40b2c6ee582790e47fec5a9ba5d27c6e8c6c35bc1 + languageName: node + linkType: hard + +"@oxc-project/types@npm:=0.115.0": + version: 0.115.0 + resolution: "@oxc-project/types@npm:0.115.0" + checksum: 10c0/47fc31eb3fb3fcf4119955339f92ba2003f9b445834c1a28ed945cd6b9cd833c7ba66fca88aa5277336c2c55df300a593bc67970e544691eceaa486ebe12cb58 + languageName: node + linkType: hard + "@oxc-resolver/binding-android-arm-eabi@npm:11.14.0": version: 11.14.0 resolution: "@oxc-resolver/binding-android-arm-eabi@npm:11.14.0" @@ -7323,6 +7376,113 @@ __metadata: languageName: node linkType: hard +"@rolldown/binding-android-arm64@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-android-arm64@npm:1.0.0-rc.9" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rolldown/binding-darwin-arm64@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-darwin-arm64@npm:1.0.0-rc.9" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rolldown/binding-darwin-x64@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-darwin-x64@npm:1.0.0-rc.9" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rolldown/binding-freebsd-x64@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-freebsd-x64@npm:1.0.0-rc.9" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.9" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.9" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.9" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.9" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.9" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.9" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.9" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.9" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.9" + dependencies: + "@napi-rs/wasm-runtime": "npm:^1.1.1" + conditions: cpu=wasm32 + languageName: node + linkType: hard + +"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.9" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.9" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rolldown/pluginutils@npm:1.0.0-beta.18": version: 1.0.0-beta.18 resolution: "@rolldown/pluginutils@npm:1.0.0-beta.18" @@ -7351,6 +7511,13 @@ __metadata: languageName: node linkType: hard +"@rolldown/pluginutils@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@rolldown/pluginutils@npm:1.0.0-rc.9" + checksum: 10c0/fca488fb96b134ccf95b42632b6112b4abb8b3a9688f166fbd627410def2538ee201953717d234ddecbff62dfe4edc4e72c657b01a9d0750134608d767eea5fd + languageName: node + linkType: hard + "@rollup/pluginutils@npm:^5.0.2": version: 5.3.0 resolution: "@rollup/pluginutils@npm:5.3.0" @@ -7381,6 +7548,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.59.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@rollup/rollup-android-arm64@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-android-arm64@npm:4.34.8" @@ -7395,6 +7569,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-android-arm64@npm:4.59.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-arm64@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-darwin-arm64@npm:4.34.8" @@ -7409,6 +7590,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-arm64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.59.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-x64@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-darwin-x64@npm:4.34.8" @@ -7423,6 +7611,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-x64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.59.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-freebsd-arm64@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-freebsd-arm64@npm:4.34.8" @@ -7437,6 +7632,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-freebsd-arm64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.59.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-freebsd-x64@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-freebsd-x64@npm:4.34.8" @@ -7451,6 +7653,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-freebsd-x64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.59.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-gnueabihf@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.34.8" @@ -7465,6 +7674,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-gnueabihf@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.59.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-musleabihf@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.34.8" @@ -7479,6 +7695,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-musleabihf@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.59.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-gnu@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.34.8" @@ -7493,6 +7716,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.59.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-musl@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.34.8" @@ -7507,6 +7737,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.59.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-loong64-gnu@npm:4.53.2": version: 4.53.2 resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.53.2" @@ -7514,6 +7751,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-loong64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.59.0" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-loong64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-loong64-musl@npm:4.59.0" + conditions: os=linux & cpu=loong64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-loongarch64-gnu@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.34.8" @@ -7535,6 +7786,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-ppc64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.59.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-ppc64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.59.0" + conditions: os=linux & cpu=ppc64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-riscv64-gnu@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.34.8" @@ -7549,6 +7814,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.59.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-riscv64-musl@npm:4.53.2": version: 4.53.2 resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.53.2" @@ -7556,6 +7828,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-riscv64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.59.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-s390x-gnu@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.34.8" @@ -7570,6 +7849,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-s390x-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.59.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-gnu@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.34.8" @@ -7584,6 +7870,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.59.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-musl@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-linux-x64-musl@npm:4.34.8" @@ -7598,6 +7891,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-musl@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.59.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-openbsd-x64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-openbsd-x64@npm:4.59.0" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-openharmony-arm64@npm:4.53.2": version: 4.53.2 resolution: "@rollup/rollup-openharmony-arm64@npm:4.53.2" @@ -7605,6 +7912,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-openharmony-arm64@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.59.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-arm64-msvc@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.34.8" @@ -7619,6 +7933,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-arm64-msvc@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.59.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-ia32-msvc@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.34.8" @@ -7633,6 +7954,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-ia32-msvc@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.59.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@rollup/rollup-win32-x64-gnu@npm:4.53.2": version: 4.53.2 resolution: "@rollup/rollup-win32-x64-gnu@npm:4.53.2" @@ -7640,6 +7968,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-x64-gnu@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.59.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-win32-x64-msvc@npm:4.34.8": version: 4.34.8 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.34.8" @@ -7654,6 +7989,13 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-x64-msvc@npm:4.59.0": + version: 4.59.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.59.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@sec-ant/readable-stream@npm:^0.4.1": version: 0.4.1 resolution: "@sec-ant/readable-stream@npm:0.4.1" @@ -7728,13 +8070,6 @@ __metadata: languageName: node linkType: hard -"@standard-schema/spec@npm:^1.0.0": - version: 1.0.0 - resolution: "@standard-schema/spec@npm:1.0.0" - checksum: 10c0/a1ab9a8bdc09b5b47aa8365d0e0ec40cc2df6437be02853696a0e377321653b0d3ac6f079a8c67d5ddbe9821025584b1fb71d9cc041a6666a96f1fadf2ece15f - languageName: node - linkType: hard - "@standard-schema/spec@npm:^1.1.0": version: 1.1.0 resolution: "@standard-schema/spec@npm:1.1.0" @@ -7871,8 +8206,8 @@ __metadata: "@types/micromatch": "npm:^4.0.0" "@types/node": "npm:^22.19.1" "@types/semver": "npm:^7.7.1" - "@vitest/browser-playwright": "npm:^4.0.14" - "@vitest/runner": "npm:^4.0.14" + "@vitest/browser-playwright": "npm:^4.1.0" + "@vitest/runner": "npm:^4.1.0" empathic: "npm:^2.0.0" es-toolkit: "npm:^1.43.0" istanbul-lib-report: "npm:^3.0.1" @@ -7888,7 +8223,7 @@ __metadata: tree-kill: "npm:^1.2.2" ts-dedent: "npm:^2.2.0" typescript: "npm:^5.9.3" - vitest: "npm:^4.0.14" + vitest: "npm:^4.1.0" peerDependencies: "@vitest/browser": ^3.0.0 || ^4.0.0 "@vitest/browser-playwright": ^4.0.0 @@ -8597,6 +8932,7 @@ __metadata: kill-port: "npm:^2.0.1" nx: "npm:^22.1.3" prettier: "npm:^3.7.1" + vite: "npm:^7.0.4" vitest: "npm:^4.1.0" languageName: unknown linkType: soft @@ -10782,23 +11118,6 @@ __metadata: languageName: node linkType: hard -"@vitest/browser-playwright@npm:^4.0.14": - version: 4.0.14 - resolution: "@vitest/browser-playwright@npm:4.0.14" - dependencies: - "@vitest/browser": "npm:4.0.14" - "@vitest/mocker": "npm:4.0.14" - tinyrainbow: "npm:^3.0.3" - peerDependencies: - playwright: "*" - vitest: 4.0.14 - peerDependenciesMeta: - playwright: - optional: false - checksum: 10c0/4f781884357f14e543a90d8426a579b23372ba29dda77af6290f1d3535646889ed833e4e4166d89a1c095b555427f3d7f83841a58bfe7ef8e26d6942a0d490fd - languageName: node - linkType: hard - "@vitest/browser-playwright@npm:^4.1.0": version: 4.1.0 resolution: "@vitest/browser-playwright@npm:4.1.0" @@ -10816,24 +11135,6 @@ __metadata: languageName: node linkType: hard -"@vitest/browser@npm:4.0.14": - version: 4.0.14 - resolution: "@vitest/browser@npm:4.0.14" - dependencies: - "@vitest/mocker": "npm:4.0.14" - "@vitest/utils": "npm:4.0.14" - magic-string: "npm:^0.30.21" - pixelmatch: "npm:7.1.0" - pngjs: "npm:^7.0.0" - sirv: "npm:^3.0.2" - tinyrainbow: "npm:^3.0.3" - ws: "npm:^8.18.3" - peerDependencies: - vitest: 4.0.14 - checksum: 10c0/6f741fbe1173b0620f27730c74eec2e92bcd584bf1d9075633563497196b747f5c7a21059f21ec4fbc37a4979aca4dd3b4572dbdebe0482b473fb55609b5af37 - languageName: node - linkType: hard - "@vitest/browser@npm:4.1.0, @vitest/browser@npm:^4.1.0": version: 4.1.0 resolution: "@vitest/browser@npm:4.1.0" @@ -10936,20 +11237,6 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:4.0.14": - version: 4.0.14 - resolution: "@vitest/expect@npm:4.0.14" - dependencies: - "@standard-schema/spec": "npm:^1.0.0" - "@types/chai": "npm:^5.2.2" - "@vitest/spy": "npm:4.0.14" - "@vitest/utils": "npm:4.0.14" - chai: "npm:^6.2.1" - tinyrainbow: "npm:^3.0.3" - checksum: 10c0/cb82f16c0e7bd82743d91bc99a0c2a0906a2d5760d0bd80d68964e4d4d5fd99097b154de2315014a857ce86d66ecb7bda81c6ba4b9b3a3a5dc5c16fcc4187bde - languageName: node - linkType: hard - "@vitest/expect@npm:4.1.0": version: 4.1.0 resolution: "@vitest/expect@npm:4.1.0" @@ -10996,25 +11283,6 @@ __metadata: languageName: node linkType: hard -"@vitest/mocker@npm:4.0.14": - version: 4.0.14 - resolution: "@vitest/mocker@npm:4.0.14" - dependencies: - "@vitest/spy": "npm:4.0.14" - estree-walker: "npm:^3.0.3" - magic-string: "npm:^0.30.21" - peerDependencies: - msw: ^2.4.9 - vite: ^6.0.0 || ^7.0.0-0 - peerDependenciesMeta: - msw: - optional: true - vite: - optional: true - checksum: 10c0/fba7366b26a7fe1222bb576ec807297270a2ad55d9db0d4849b4011364b182545326a8e9522a386e89d52afefa3bafbf456c57792ba9fa2fab4d84772e8c02ae - languageName: node - linkType: hard - "@vitest/mocker@npm:4.1.0": version: 4.1.0 resolution: "@vitest/mocker@npm:4.1.0" @@ -11043,15 +11311,6 @@ __metadata: languageName: node linkType: hard -"@vitest/pretty-format@npm:4.0.14": - version: 4.0.14 - resolution: "@vitest/pretty-format@npm:4.0.14" - dependencies: - tinyrainbow: "npm:^3.0.3" - checksum: 10c0/ca03cbad86053a05eb3164b1794ada25767215e94f76fe069c0a0431629500a53b221610b186917bfbdebf6a28ac7d3945f78e1e18875230ea6dda685c6a18f3 - languageName: node - linkType: hard - "@vitest/pretty-format@npm:4.1.0": version: 4.1.0 resolution: "@vitest/pretty-format@npm:4.1.0" @@ -11061,17 +11320,7 @@ __metadata: languageName: node linkType: hard -"@vitest/runner@npm:4.0.14, @vitest/runner@npm:^4.0.14": - version: 4.0.14 - resolution: "@vitest/runner@npm:4.0.14" - dependencies: - "@vitest/utils": "npm:4.0.14" - pathe: "npm:^2.0.3" - checksum: 10c0/97e49a99772fdc0b798d1ba5e8eabc76fa8846a7b5e41c7ac8a43cb0455d333fa37987b88bcbe344d7af51c967f06016c54fef70ded3a212479c71cd4d892d78 - languageName: node - linkType: hard - -"@vitest/runner@npm:4.1.0": +"@vitest/runner@npm:4.1.0, @vitest/runner@npm:^4.1.0": version: 4.1.0 resolution: "@vitest/runner@npm:4.1.0" dependencies: @@ -11081,17 +11330,6 @@ __metadata: languageName: node linkType: hard -"@vitest/snapshot@npm:4.0.14": - version: 4.0.14 - resolution: "@vitest/snapshot@npm:4.0.14" - dependencies: - "@vitest/pretty-format": "npm:4.0.14" - magic-string: "npm:^0.30.21" - pathe: "npm:^2.0.3" - checksum: 10c0/6b187b08751fbacb32baa2e970d6f2fa90e9de1bc76c97f64bb5370c2341ff18af63af571dd11fa94cbd5ddba00de6b5280cbab948bca738d80f57d8f662035a - languageName: node - linkType: hard - "@vitest/snapshot@npm:4.1.0": version: 4.1.0 resolution: "@vitest/snapshot@npm:4.1.0" @@ -11113,13 +11351,6 @@ __metadata: languageName: node linkType: hard -"@vitest/spy@npm:4.0.14": - version: 4.0.14 - resolution: "@vitest/spy@npm:4.0.14" - checksum: 10c0/46917fab9c9aaa3c4f815300ec8e21631a7f9cd4d74aac06bad29bb750d9e7a726cd26149c29ea16b1dc5197995faceff3efdcc41c49f402e9da8916dd410be3 - languageName: node - linkType: hard - "@vitest/spy@npm:4.1.0": version: 4.1.0 resolution: "@vitest/spy@npm:4.1.0" @@ -11138,16 +11369,6 @@ __metadata: languageName: node linkType: hard -"@vitest/utils@npm:4.0.14": - version: 4.0.14 - resolution: "@vitest/utils@npm:4.0.14" - dependencies: - "@vitest/pretty-format": "npm:4.0.14" - tinyrainbow: "npm:^3.0.3" - checksum: 10c0/be5432b4445bdb1b41d1ad1bffe9e2a297b7d1d9addef3cbf3782d66da4e80ec8a14e2396638172572e5a6e3527f34bae7f1b98cee00cbe1175b099a28073ecd - languageName: node - linkType: hard - "@vitest/utils@npm:4.1.0": version: 4.1.0 resolution: "@vitest/utils@npm:4.1.0" @@ -13517,13 +13738,6 @@ __metadata: languageName: node linkType: hard -"chai@npm:^6.2.1": - version: 6.2.1 - resolution: "chai@npm:6.2.1" - checksum: 10c0/0c2d84392d7c6d44ca5d14d94204f1760e22af68b83d1f4278b5c4d301dabfc0242da70954dd86b1eda01e438f42950de6cf9d569df2103678538e4014abe50b - languageName: node - linkType: hard - "chai@npm:^6.2.2": version: 6.2.2 resolution: "chai@npm:6.2.2" @@ -15133,7 +15347,7 @@ __metadata: languageName: node linkType: hard -"detect-libc@npm:^2.0.1, detect-libc@npm:^2.1.2": +"detect-libc@npm:^2.0.1, detect-libc@npm:^2.0.3, detect-libc@npm:^2.1.2": version: 2.1.2 resolution: "detect-libc@npm:2.1.2" checksum: 10c0/acc675c29a5649fa1fb6e255f993b8ee829e510b6b56b0910666949c80c364738833417d0edb5f90e4e46be17228b0f2b66a010513984e18b15deeeac49369c4 @@ -16081,7 +16295,7 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.0, es-module-lexer@npm:^1.5.4, es-module-lexer@npm:^1.7.0": +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.0, es-module-lexer@npm:^1.5.4": version: 1.7.0 resolution: "es-module-lexer@npm:1.7.0" checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b @@ -17160,13 +17374,6 @@ __metadata: languageName: node linkType: hard -"expect-type@npm:^1.2.2": - version: 1.2.2 - resolution: "expect-type@npm:1.2.2" - checksum: 10c0/6019019566063bbc7a690d9281d920b1a91284a4a093c2d55d71ffade5ac890cf37a51e1da4602546c4b56569d2ad2fc175a2ccee77d1ae06cb3af91ef84f44b - languageName: node - linkType: hard - "expect-type@npm:^1.3.0": version: 1.3.0 resolution: "expect-type@npm:1.3.0" @@ -17524,7 +17731,7 @@ __metadata: languageName: node linkType: hard -"fdir@npm:^6.2.0, fdir@npm:^6.5.0": +"fdir@npm:^6.2.0, fdir@npm:^6.4.4, fdir@npm:^6.5.0": version: 6.5.0 resolution: "fdir@npm:6.5.0" peerDependencies: @@ -21249,34 +21456,154 @@ __metadata: languageName: node linkType: hard -"leven@npm:^4.0.0": - version: 4.1.0 - resolution: "leven@npm:4.1.0" - checksum: 10c0/de45316555624d7616c562055ce4773ad44dff7486a1696be300b040eb85472a429c2f18fd0f6352101b1fb01b336405b893f048d88d30f6fb7f8a2a2999a0c0 +"leven@npm:^4.0.0": + version: 4.1.0 + resolution: "leven@npm:4.1.0" + checksum: 10c0/de45316555624d7616c562055ce4773ad44dff7486a1696be300b040eb85472a429c2f18fd0f6352101b1fb01b336405b893f048d88d30f6fb7f8a2a2999a0c0 + languageName: node + linkType: hard + +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: "npm:^1.2.1" + type-check: "npm:~0.4.0" + checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e + languageName: node + linkType: hard + +"license-webpack-plugin@npm:4.0.2": + version: 4.0.2 + resolution: "license-webpack-plugin@npm:4.0.2" + dependencies: + webpack-sources: "npm:^3.0.0" + peerDependenciesMeta: + webpack: + optional: true + webpack-sources: + optional: true + checksum: 10c0/6014492b22c5f28a4d367057b5b2c1214b83c73785157fea130d5b877b50ed8820d8d8e73e96b3437c455b5b5c6817b36837da093239f95b534be43c0cdcfedc + languageName: node + linkType: hard + +"lightningcss-android-arm64@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-android-arm64@npm:1.32.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"lightningcss-darwin-arm64@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-darwin-arm64@npm:1.32.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"lightningcss-darwin-x64@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-darwin-x64@npm:1.32.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"lightningcss-freebsd-x64@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-freebsd-x64@npm:1.32.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"lightningcss-linux-arm-gnueabihf@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-arm-gnueabihf@npm:1.32.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"lightningcss-linux-arm64-gnu@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-arm64-gnu@npm:1.32.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"lightningcss-linux-arm64-musl@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-arm64-musl@npm:1.32.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"lightningcss-linux-x64-gnu@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-x64-gnu@npm:1.32.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"lightningcss-linux-x64-musl@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-linux-x64-musl@npm:1.32.0" + conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"levn@npm:^0.4.1": - version: 0.4.1 - resolution: "levn@npm:0.4.1" - dependencies: - prelude-ls: "npm:^1.2.1" - type-check: "npm:~0.4.0" - checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e +"lightningcss-win32-arm64-msvc@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-win32-arm64-msvc@npm:1.32.0" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"license-webpack-plugin@npm:4.0.2": - version: 4.0.2 - resolution: "license-webpack-plugin@npm:4.0.2" +"lightningcss-win32-x64-msvc@npm:1.32.0": + version: 1.32.0 + resolution: "lightningcss-win32-x64-msvc@npm:1.32.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"lightningcss@npm:^1.32.0": + version: 1.32.0 + resolution: "lightningcss@npm:1.32.0" dependencies: - webpack-sources: "npm:^3.0.0" - peerDependenciesMeta: - webpack: + detect-libc: "npm:^2.0.3" + lightningcss-android-arm64: "npm:1.32.0" + lightningcss-darwin-arm64: "npm:1.32.0" + lightningcss-darwin-x64: "npm:1.32.0" + lightningcss-freebsd-x64: "npm:1.32.0" + lightningcss-linux-arm-gnueabihf: "npm:1.32.0" + lightningcss-linux-arm64-gnu: "npm:1.32.0" + lightningcss-linux-arm64-musl: "npm:1.32.0" + lightningcss-linux-x64-gnu: "npm:1.32.0" + lightningcss-linux-x64-musl: "npm:1.32.0" + lightningcss-win32-arm64-msvc: "npm:1.32.0" + lightningcss-win32-x64-msvc: "npm:1.32.0" + dependenciesMeta: + lightningcss-android-arm64: optional: true - webpack-sources: + lightningcss-darwin-arm64: optional: true - checksum: 10c0/6014492b22c5f28a4d367057b5b2c1214b83c73785157fea130d5b877b50ed8820d8d8e73e96b3437c455b5b5c6817b36837da093239f95b534be43c0cdcfedc + lightningcss-darwin-x64: + optional: true + lightningcss-freebsd-x64: + optional: true + lightningcss-linux-arm-gnueabihf: + optional: true + lightningcss-linux-arm64-gnu: + optional: true + lightningcss-linux-arm64-musl: + optional: true + lightningcss-linux-x64-gnu: + optional: true + lightningcss-linux-x64-musl: + optional: true + lightningcss-win32-arm64-msvc: + optional: true + lightningcss-win32-x64-msvc: + optional: true + checksum: 10c0/70945bd55097af46fc9fab7f5ed09cd5869d85940a2acab7ee06d0117004a1d68155708a2d462531cea2fc3c67aefc9333a7068c80b0b78dd404c16838809e03 languageName: node linkType: hard @@ -24829,17 +25156,6 @@ __metadata: languageName: node linkType: hard -"pixelmatch@npm:7.1.0": - version: 7.1.0 - resolution: "pixelmatch@npm:7.1.0" - dependencies: - pngjs: "npm:^7.0.0" - bin: - pixelmatch: bin/pixelmatch - checksum: 10c0/ff069f92edaa841ac9b58b0ab74e1afa1f3b5e770eea0218c96bac1da4e752f5f6b79a0f9c4ba6b02afb955d39b8c78bcc3cc884f8122b67a1f2efbbccbe1a73 - languageName: node - linkType: hard - "pkg-dir@npm:^3.0.0": version: 3.0.0 resolution: "pkg-dir@npm:3.0.0" @@ -25149,6 +25465,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.5.3, postcss@npm:^8.5.8": + version: 8.5.8 + resolution: "postcss@npm:8.5.8" + dependencies: + nanoid: "npm:^3.3.11" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 10c0/dd918f7127ee7c60a0295bae2e72b3787892296e1d1c3c564d7a2a00c68d8df83cadc3178491259daa19ccc54804fb71ed8c937c6787e08d8bd4bedf8d17044c + languageName: node + linkType: hard + "preact@npm:^10.5.13": version: 10.27.2 resolution: "preact@npm:10.27.2" @@ -27145,6 +27472,64 @@ __metadata: languageName: node linkType: hard +"rolldown@npm:1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "rolldown@npm:1.0.0-rc.9" + dependencies: + "@oxc-project/types": "npm:=0.115.0" + "@rolldown/binding-android-arm64": "npm:1.0.0-rc.9" + "@rolldown/binding-darwin-arm64": "npm:1.0.0-rc.9" + "@rolldown/binding-darwin-x64": "npm:1.0.0-rc.9" + "@rolldown/binding-freebsd-x64": "npm:1.0.0-rc.9" + "@rolldown/binding-linux-arm-gnueabihf": "npm:1.0.0-rc.9" + "@rolldown/binding-linux-arm64-gnu": "npm:1.0.0-rc.9" + "@rolldown/binding-linux-arm64-musl": "npm:1.0.0-rc.9" + "@rolldown/binding-linux-ppc64-gnu": "npm:1.0.0-rc.9" + "@rolldown/binding-linux-s390x-gnu": "npm:1.0.0-rc.9" + "@rolldown/binding-linux-x64-gnu": "npm:1.0.0-rc.9" + "@rolldown/binding-linux-x64-musl": "npm:1.0.0-rc.9" + "@rolldown/binding-openharmony-arm64": "npm:1.0.0-rc.9" + "@rolldown/binding-wasm32-wasi": "npm:1.0.0-rc.9" + "@rolldown/binding-win32-arm64-msvc": "npm:1.0.0-rc.9" + "@rolldown/binding-win32-x64-msvc": "npm:1.0.0-rc.9" + "@rolldown/pluginutils": "npm:1.0.0-rc.9" + dependenciesMeta: + "@rolldown/binding-android-arm64": + optional: true + "@rolldown/binding-darwin-arm64": + optional: true + "@rolldown/binding-darwin-x64": + optional: true + "@rolldown/binding-freebsd-x64": + optional: true + "@rolldown/binding-linux-arm-gnueabihf": + optional: true + "@rolldown/binding-linux-arm64-gnu": + optional: true + "@rolldown/binding-linux-arm64-musl": + optional: true + "@rolldown/binding-linux-ppc64-gnu": + optional: true + "@rolldown/binding-linux-s390x-gnu": + optional: true + "@rolldown/binding-linux-x64-gnu": + optional: true + "@rolldown/binding-linux-x64-musl": + optional: true + "@rolldown/binding-openharmony-arm64": + optional: true + "@rolldown/binding-wasm32-wasi": + optional: true + "@rolldown/binding-win32-arm64-msvc": + optional: true + "@rolldown/binding-win32-x64-msvc": + optional: true + bin: + rolldown: bin/cli.mjs + checksum: 10c0/d19af14dccf569dc25c0c3c2f1142b7a6f7cec291d55bba80cea71099f89c6d634145bb1b6487626ddd41d578f183f7065ed68067e49d2b964ad6242693b0f79 + languageName: node + linkType: hard + "rollup-plugin-dts@npm:^6.1.1": version: 6.1.1 resolution: "rollup-plugin-dts@npm:6.1.1" @@ -27323,6 +27708,96 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.34.9": + version: 4.59.0 + resolution: "rollup@npm:4.59.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.59.0" + "@rollup/rollup-android-arm64": "npm:4.59.0" + "@rollup/rollup-darwin-arm64": "npm:4.59.0" + "@rollup/rollup-darwin-x64": "npm:4.59.0" + "@rollup/rollup-freebsd-arm64": "npm:4.59.0" + "@rollup/rollup-freebsd-x64": "npm:4.59.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.59.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.59.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.59.0" + "@rollup/rollup-linux-loong64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-loong64-musl": "npm:4.59.0" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-ppc64-musl": "npm:4.59.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-riscv64-musl": "npm:4.59.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.59.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.59.0" + "@rollup/rollup-linux-x64-musl": "npm:4.59.0" + "@rollup/rollup-openbsd-x64": "npm:4.59.0" + "@rollup/rollup-openharmony-arm64": "npm:4.59.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.59.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.59.0" + "@rollup/rollup-win32-x64-gnu": "npm:4.59.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.59.0" + "@types/estree": "npm:1.0.8" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loong64-gnu": + optional: true + "@rollup/rollup-linux-loong64-musl": + optional: true + "@rollup/rollup-linux-ppc64-gnu": + optional: true + "@rollup/rollup-linux-ppc64-musl": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-openbsd-x64": + optional: true + "@rollup/rollup-openharmony-arm64": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-gnu": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/f38742da34cfee5e899302615fa157aa77cb6a2a1495e5e3ce4cc9c540d3262e235bbe60caa31562bbfe492b01fdb3e7a8c43c39d842d3293bcf843123b766fc + languageName: node + linkType: hard + "rsvp@npm:^3.0.14, rsvp@npm:^3.0.18": version: 3.6.2 resolution: "rsvp@npm:3.6.2" @@ -28541,7 +29016,7 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^3.10.0, std-env@npm:^3.9.0": +"std-env@npm:^3.9.0": version: 3.10.0 resolution: "std-env@npm:3.10.0" checksum: 10c0/1814927a45004d36dde6707eaf17552a546769bc79a6421be2c16ce77d238158dfe5de30910b78ec30d95135cc1c59ea73ee22d2ca170f8b9753f84da34c427f @@ -29585,7 +30060,7 @@ __metadata: languageName: node linkType: hard -"tinyexec@npm:^0.3.0, tinyexec@npm:^0.3.2": +"tinyexec@npm:^0.3.0": version: 0.3.2 resolution: "tinyexec@npm:0.3.2" checksum: 10c0/3efbf791a911be0bf0821eab37a3445c2ba07acc1522b1fa84ae1e55f10425076f1290f680286345ed919549ad67527d07281f1c19d584df3b74326909eb1f90 @@ -30966,6 +31441,119 @@ __metadata: languageName: node linkType: hard +"vite@npm:6.4.1": + version: 6.4.1 + resolution: "vite@npm:6.4.1" + dependencies: + esbuild: "npm:^0.25.0" + fdir: "npm:^6.4.4" + fsevents: "npm:~2.3.3" + picomatch: "npm:^4.0.2" + postcss: "npm:^8.5.3" + rollup: "npm:^4.34.9" + tinyglobby: "npm:^0.2.13" + peerDependencies: + "@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: ">=1.21.0" + less: "*" + lightningcss: ^1.21.0 + sass: "*" + sass-embedded: "*" + stylus: "*" + sugarss: "*" + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + bin: + vite: bin/vite.js + checksum: 10c0/77bb4c5b10f2a185e7859cc9a81c789021bc18009b02900347d1583b453b58e4b19ff07a5e5a5b522b68fc88728460bb45a63b104d969e8c6a6152aea3b849f7 + languageName: node + linkType: hard + +"vite@npm:^6.0.0 || ^7.0.0 || ^8.0.0-0": + version: 8.0.0 + resolution: "vite@npm:8.0.0" + dependencies: + "@oxc-project/runtime": "npm:0.115.0" + fsevents: "npm:~2.3.3" + lightningcss: "npm:^1.32.0" + picomatch: "npm:^4.0.3" + postcss: "npm:^8.5.8" + rolldown: "npm:1.0.0-rc.9" + tinyglobby: "npm:^0.2.15" + peerDependencies: + "@types/node": ^20.19.0 || >=22.12.0 + "@vitejs/devtools": ^0.0.0-alpha.31 + esbuild: ^0.27.0 + jiti: ">=1.21.0" + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: ">=0.54.8" + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + "@vitejs/devtools": + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + bin: + vite: bin/vite.js + checksum: 10c0/2246d3d54788dcd53c39da82da3f934a760756642ba9a575c84c5ef9f310bc47697f7f9fde6721fa566675e93e408736b4ac068008d2ddbd75b0ed99c7fd4c67 + languageName: node + linkType: hard + "vite@npm:^7.0.4": version: 7.2.2 resolution: "vite@npm:7.2.2" @@ -31049,65 +31637,6 @@ __metadata: languageName: node linkType: hard -"vitest@npm:^4.0.14": - version: 4.0.14 - resolution: "vitest@npm:4.0.14" - dependencies: - "@vitest/expect": "npm:4.0.14" - "@vitest/mocker": "npm:4.0.14" - "@vitest/pretty-format": "npm:4.0.14" - "@vitest/runner": "npm:4.0.14" - "@vitest/snapshot": "npm:4.0.14" - "@vitest/spy": "npm:4.0.14" - "@vitest/utils": "npm:4.0.14" - es-module-lexer: "npm:^1.7.0" - expect-type: "npm:^1.2.2" - magic-string: "npm:^0.30.21" - obug: "npm:^2.1.1" - pathe: "npm:^2.0.3" - picomatch: "npm:^4.0.3" - std-env: "npm:^3.10.0" - tinybench: "npm:^2.9.0" - tinyexec: "npm:^0.3.2" - tinyglobby: "npm:^0.2.15" - tinyrainbow: "npm:^3.0.3" - vite: "npm:^6.0.0 || ^7.0.0" - why-is-node-running: "npm:^2.3.0" - peerDependencies: - "@edge-runtime/vm": "*" - "@opentelemetry/api": ^1.9.0 - "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 - "@vitest/browser-playwright": 4.0.14 - "@vitest/browser-preview": 4.0.14 - "@vitest/browser-webdriverio": 4.0.14 - "@vitest/ui": 4.0.14 - happy-dom: "*" - jsdom: "*" - peerDependenciesMeta: - "@edge-runtime/vm": - optional: true - "@opentelemetry/api": - optional: true - "@types/node": - optional: true - "@vitest/browser-playwright": - optional: true - "@vitest/browser-preview": - optional: true - "@vitest/browser-webdriverio": - optional: true - "@vitest/ui": - optional: true - happy-dom: - optional: true - jsdom: - optional: true - bin: - vitest: vitest.mjs - checksum: 10c0/97e05dabe5be18ecc72e4fa2f45be7353f828c35ad2d8957772027be52aa1f60d5f2609d166c85369d5888b9f664968dce2b918a7fffbcc91fbac29f1fdddabe - languageName: node - linkType: hard - "vitest@npm:^4.1.0": version: 4.1.0 resolution: "vitest@npm:4.1.0" @@ -32004,7 +32533,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.18.0, ws@npm:^8.18.3": +"ws@npm:^8.18.0": version: 8.18.3 resolution: "ws@npm:8.18.3" peerDependencies: From 7bfea231e9bfccb0f648d76b9fbfda8cb2cad7ea Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 17:45:59 +0700 Subject: [PATCH 08/18] Remove test/test:watch/affected:test scripts from code/package.json Vitest now runs from root, so these were just delegating with `cd ..`. Updated storybook:vitest and ci-tests to call vitest directly, and updated AGENTS.md to reflect root-level commands. --- AGENTS.md | 11 +++++------ code/package.json | 11 ++++------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index a62d7ddb5bf1..dfe0bc424393 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -111,8 +111,8 @@ yarn nx run-many -t check ```bash cd code && yarn storybook:ui cd code && yarn storybook:ui:build -cd code && yarn test -cd code && yarn test:watch +yarn test +yarn test:watch cd code && yarn storybook:vitest ``` @@ -125,7 +125,7 @@ cd code && yarn storybook:vitest | Check TypeScript errors quickly | `yarn nx run-many -t check` | | Start the internal Storybook UI | `cd code && yarn storybook:ui` | | Build the internal Storybook UI | `cd code && yarn storybook:ui:build` | -| Run unit tests | `cd code && yarn test` | +| Run unit tests | `yarn test` | | Run Storybook Vitest tests | `cd code && yarn storybook:vitest` | | Generate a sandbox | `yarn task sandbox --template react-vite/default-ts --start-from auto` | | Run sandbox E2E tests | `yarn task e2e-tests-dev --template react-vite/default-ts --start-from auto` | @@ -209,7 +209,7 @@ Common templates: ## Testing Expectations -- Use `cd code && yarn test` for unit tests +- Use `yarn test` for unit tests - Use Storybook UI or Chromatic for visual validation - Use `yarn task e2e-tests --start-from auto` or `yarn task e2e-tests-dev --start-from auto` for E2E coverage - Use `yarn task test-runner --start-from auto` or `yarn task test-runner-dev --start-from auto` for test-runner scenarios @@ -218,8 +218,7 @@ Common templates: Watch-mode commands: ```bash -cd code && yarn test:watch -yarn affected:test +yarn test:watch cd code && yarn storybook:vitest ``` diff --git a/code/package.json b/code/package.json index 85323865a560..6e312b8a9877 100644 --- a/code/package.json +++ b/code/package.json @@ -13,13 +13,12 @@ "url": "https://opencollective.com/storybook" }, "scripts": { - "affected:test": "nx show projects --affected -t test | xargs -I # echo --project # | xargs yarn test:watch", "await-serve-storybooks": "wait-on http://localhost:8001", "build": "NODE_ENV=production yarn --cwd ../scripts build-package", "changelog": "pr-log --sloppy --cherry-pick", "changelog:next": "pr-log --sloppy --since-prerelease", "check": "NODE_ENV=production yarn --cwd ../scripts check-package", - "ci-tests": "yarn task --task check --no-link --start-from=install && yarn lint && yarn test", + "ci-tests": "yarn task --task check --no-link --start-from=install && yarn lint && cd .. && yarn test", "danger": "danger", "generate-sandboxes": "yarn --cwd ../scripts generate-sandboxes", "github-release": "github-release-from-changelog", @@ -37,11 +36,9 @@ "storybook:ui": "NODE_OPTIONS=\"--max_old_space_size=4096 --trace-deprecation\" core/dist/bin/dispatcher.js dev --port 6006 --config-dir ./.storybook", "storybook:ui:build": "NODE_OPTIONS=\"--max_old_space_size=4096\" core/dist/bin/dispatcher.js build --config-dir ./.storybook --webpack-stats-json", "storybook:ui:chromatic": "chromatic --storybook-build-dir storybook-static --exit-zero-on-changes --exit-once-uploaded", - "storybook:vitest": "yarn test:watch --project storybook-ui", - "storybook:vitest:inspect": "INSPECT=true yarn test --project storybook-ui", - "task": "yarn --cwd ../scripts task", - "test": "cd .. && NODE_OPTIONS=--max_old_space_size=4096 vitest run", - "test:watch": "cd .. && NODE_OPTIONS=--max_old_space_size=4096 vitest watch" + "storybook:vitest": "cd .. && NODE_OPTIONS=--max_old_space_size=4096 vitest watch --project storybook-ui", + "storybook:vitest:inspect": "cd .. && INSPECT=true NODE_OPTIONS=--max_old_space_size=4096 vitest run --project storybook-ui", + "task": "yarn --cwd ../scripts task" }, "lint-staged": { "*.{html,js,json,jsx,mjs,ts,tsx}": [ From a78e33b1e0e4945675aebee0c89d53a8c0462be3 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 20:16:40 +0700 Subject: [PATCH 09/18] Move storybook:vitest scripts from code/ to root package.json Vitest runs from root, so these scripts belong there too. --- AGENTS.md | 6 +++--- code/package.json | 2 -- package.json | 2 ++ 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index dfe0bc424393..ece72f32b4c3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -113,7 +113,7 @@ cd code && yarn storybook:ui cd code && yarn storybook:ui:build yarn test yarn test:watch -cd code && yarn storybook:vitest +yarn storybook:vitest ``` ### Common task scenarios @@ -126,7 +126,7 @@ cd code && yarn storybook:vitest | Start the internal Storybook UI | `cd code && yarn storybook:ui` | | Build the internal Storybook UI | `cd code && yarn storybook:ui:build` | | Run unit tests | `yarn test` | -| Run Storybook Vitest tests | `cd code && yarn storybook:vitest` | +| Run Storybook Vitest tests | `yarn storybook:vitest` | | Generate a sandbox | `yarn task sandbox --template react-vite/default-ts --start-from auto` | | Run sandbox E2E tests | `yarn task e2e-tests-dev --template react-vite/default-ts --start-from auto` | | Run sandbox test-runner tests | `yarn task test-runner-dev --template react-vite/default-ts --start-from auto` | @@ -219,7 +219,7 @@ Watch-mode commands: ```bash yarn test:watch -cd code && yarn storybook:vitest +yarn storybook:vitest ``` When writing tests: diff --git a/code/package.json b/code/package.json index 6e312b8a9877..2a3c2b81ba62 100644 --- a/code/package.json +++ b/code/package.json @@ -36,8 +36,6 @@ "storybook:ui": "NODE_OPTIONS=\"--max_old_space_size=4096 --trace-deprecation\" core/dist/bin/dispatcher.js dev --port 6006 --config-dir ./.storybook", "storybook:ui:build": "NODE_OPTIONS=\"--max_old_space_size=4096\" core/dist/bin/dispatcher.js build --config-dir ./.storybook --webpack-stats-json", "storybook:ui:chromatic": "chromatic --storybook-build-dir storybook-static --exit-zero-on-changes --exit-once-uploaded", - "storybook:vitest": "cd .. && NODE_OPTIONS=--max_old_space_size=4096 vitest watch --project storybook-ui", - "storybook:vitest:inspect": "cd .. && INSPECT=true NODE_OPTIONS=--max_old_space_size=4096 vitest run --project storybook-ui", "task": "yarn --cwd ../scripts task" }, "lint-staged": { diff --git a/package.json b/package.json index 7edc2a74a757..8f741ed893ea 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,8 @@ "svelte-ecosystem-ci:build": "./scripts/ecosystem-ci/build.sh svelte-kit/skeleton-ts svelte", "svelte-ecosystem-ci:test": "./scripts/ecosystem-ci/test.sh svelte-kit/skeleton-ts", "task": "yarn --cwd=./scripts task", + "storybook:vitest": "NODE_OPTIONS=--max_old_space_size=4096 vitest watch --project storybook-ui", + "storybook:vitest:inspect": "INSPECT=true NODE_OPTIONS=--max_old_space_size=4096 vitest run --project storybook-ui", "test": "NODE_OPTIONS=--max_old_space_size=4096 vitest run", "test:watch": "NODE_OPTIONS=--max_old_space_size=4096 vitest watch", "upload-bench": "cd scripts; yarn upload-bench", From e9cc2d35824bd70339ad99fb9a8072cfe56d0700 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 20:21:14 +0700 Subject: [PATCH 10/18] Remove unused scripts from code/package.json Remove await-serve-storybooks, build, changelog, changelog:next, danger, github-release, and i scripts that are not referenced in any CI config or workflow. --- code/package.json | 7 ------- 1 file changed, 7 deletions(-) diff --git a/code/package.json b/code/package.json index 2a3c2b81ba62..988d54c9aa7d 100644 --- a/code/package.json +++ b/code/package.json @@ -13,16 +13,9 @@ "url": "https://opencollective.com/storybook" }, "scripts": { - "await-serve-storybooks": "wait-on http://localhost:8001", - "build": "NODE_ENV=production yarn --cwd ../scripts build-package", - "changelog": "pr-log --sloppy --cherry-pick", - "changelog:next": "pr-log --sloppy --since-prerelease", "check": "NODE_ENV=production yarn --cwd ../scripts check-package", "ci-tests": "yarn task --task check --no-link --start-from=install && yarn lint && cd .. && yarn test", - "danger": "danger", "generate-sandboxes": "yarn --cwd ../scripts generate-sandboxes", - "github-release": "github-release-from-changelog", - "i": "yarn --cwd .. i", "knip": "knip --config ../scripts/knip.config.ts", "lint": "yarn lint:js && yarn lint:other", "lint:ejs": "ejslint **/*.ejs", From 403a41dd6bd12ea8a68e1add4c88bc66b83fe5e5 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 20:22:51 +0700 Subject: [PATCH 11/18] Revert "Remove unused scripts from code/package.json" This reverts commit e9cc2d35824bd70339ad99fb9a8072cfe56d0700. --- code/package.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/package.json b/code/package.json index 988d54c9aa7d..2a3c2b81ba62 100644 --- a/code/package.json +++ b/code/package.json @@ -13,9 +13,16 @@ "url": "https://opencollective.com/storybook" }, "scripts": { + "await-serve-storybooks": "wait-on http://localhost:8001", + "build": "NODE_ENV=production yarn --cwd ../scripts build-package", + "changelog": "pr-log --sloppy --cherry-pick", + "changelog:next": "pr-log --sloppy --since-prerelease", "check": "NODE_ENV=production yarn --cwd ../scripts check-package", "ci-tests": "yarn task --task check --no-link --start-from=install && yarn lint && cd .. && yarn test", + "danger": "danger", "generate-sandboxes": "yarn --cwd ../scripts generate-sandboxes", + "github-release": "github-release-from-changelog", + "i": "yarn --cwd .. i", "knip": "knip --config ../scripts/knip.config.ts", "lint": "yarn lint:js && yarn lint:other", "lint:ejs": "ejslint **/*.ejs", From dd4d3378d527f3549dc3a039806f49fa12ef9370 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 20:45:35 +0700 Subject: [PATCH 12/18] Note in AGENTS.md that the default branch is next --- AGENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index ece72f32b4c3..0d155b77a00d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,7 +6,7 @@ This file is the canonical instruction source for coding agents. Files like `CLA ## Repository Overview -Storybook is a large TypeScript monorepo. The git root is the repo root, the main code lives in `code/`, and build tooling lives in `scripts/`. +Storybook is a large TypeScript monorepo. The git root is the repo root, the main code lives in `code/`, and build tooling lives in `scripts/`. The default branch is `next`. - **Node.js**: `22.21.1` (see `.nvmrc`) - **Package Manager**: Yarn Berry From 7ffabb5007e0abd3898c196de5cb8c6e31d8cc60 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 21:08:59 +0700 Subject: [PATCH 13/18] Fix tests that relied on process.cwd() being code/ - eslint-plugin: derive rootDir from process.cwd() instead of hardcoding 'code' - react-docgen: mock process.cwd() to renderer directory so tsconfig resolution works from any vitest root --- .../src/rules/no-uninstalled-addons.test.ts | 30 ++++++++++--------- .../reactDocgenTypescript.test.ts | 8 ++++- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/code/lib/eslint-plugin/src/rules/no-uninstalled-addons.test.ts b/code/lib/eslint-plugin/src/rules/no-uninstalled-addons.test.ts index 07dc9c94ec0c..b2911a6cf149 100644 --- a/code/lib/eslint-plugin/src/rules/no-uninstalled-addons.test.ts +++ b/code/lib/eslint-plugin/src/rules/no-uninstalled-addons.test.ts @@ -14,6 +14,8 @@ import { sep } from 'path'; import ruleTester from '../test-utils'; import rule from './no-uninstalled-addons'; +const rootDir = process.cwd().split(sep).pop(); + vi.mock('fs', () => ({ ...vi.importActual('fs'), readFileSync: () => ` @@ -177,7 +179,7 @@ ruleTester.run('no-uninstalled-addons', rule, { type: AST_NODE_TYPES.Literal, data: { addonName: '@storybook/not-installed-addon', - packageJsonPath: `code${sep}`, + packageJsonPath: `${rootDir}${sep}`, }, }, ], @@ -201,7 +203,7 @@ ruleTester.run('no-uninstalled-addons', rule, { type: AST_NODE_TYPES.Literal, data: { addonName: '@storybook/not-installed-addon', - packageJsonPath: `code${sep}`, + packageJsonPath: `${rootDir}${sep}`, }, }, ], @@ -224,7 +226,7 @@ ruleTester.run('no-uninstalled-addons', rule, { type: AST_NODE_TYPES.Literal, data: { addonName: '@storybook/addon-esentials', - packageJsonPath: `code${sep}`, + packageJsonPath: `${rootDir}${sep}`, }, }, ], @@ -245,7 +247,7 @@ ruleTester.run('no-uninstalled-addons', rule, { type: AST_NODE_TYPES.Literal, data: { addonName: '@storybook/adon-essentials', - packageJsonPath: `code${sep}`, + packageJsonPath: `${rootDir}${sep}`, }, }, ], @@ -268,7 +270,7 @@ ruleTester.run('no-uninstalled-addons', rule, { type: AST_NODE_TYPES.Literal, data: { addonName: 'addon-withut-the-prefix', - packageJsonPath: `code${sep}`, + packageJsonPath: `${rootDir}${sep}`, }, }, { @@ -276,7 +278,7 @@ ruleTester.run('no-uninstalled-addons', rule, { type: AST_NODE_TYPES.Literal, data: { addonName: '@storybook/addon-esentials', - packageJsonPath: `code${sep}`, + packageJsonPath: `${rootDir}${sep}`, }, }, ], @@ -299,7 +301,7 @@ ruleTester.run('no-uninstalled-addons', rule, { type: AST_NODE_TYPES.Literal, data: { addonName: 'addon-withut-the-prefix', - packageJsonPath: `code${sep}`, + packageJsonPath: `${rootDir}${sep}`, }, }, { @@ -307,7 +309,7 @@ ruleTester.run('no-uninstalled-addons', rule, { type: AST_NODE_TYPES.Literal, data: { addonName: '@storybook/addon-esentials', - packageJsonPath: `code${sep}`, + packageJsonPath: `${rootDir}${sep}`, }, }, ], @@ -330,7 +332,7 @@ ruleTester.run('no-uninstalled-addons', rule, { type: AST_NODE_TYPES.Literal, data: { addonName: 'addon-withut-the-prefix', - packageJsonPath: `code${sep}`, + packageJsonPath: `${rootDir}${sep}`, }, }, { @@ -338,7 +340,7 @@ ruleTester.run('no-uninstalled-addons', rule, { type: AST_NODE_TYPES.Literal, data: { addonName: '@storybook/addon-esentials', - packageJsonPath: `code${sep}`, + packageJsonPath: `${rootDir}${sep}`, }, }, ], @@ -362,7 +364,7 @@ ruleTester.run('no-uninstalled-addons', rule, { type: AST_NODE_TYPES.Literal, data: { addonName: 'addon-withut-the-prefix', - packageJsonPath: `code${sep}`, + packageJsonPath: `${rootDir}${sep}`, }, }, { @@ -370,7 +372,7 @@ ruleTester.run('no-uninstalled-addons', rule, { type: AST_NODE_TYPES.Literal, data: { addonName: '@storybook/addon-esentials', - packageJsonPath: `code${sep}`, + packageJsonPath: `${rootDir}${sep}`, }, }, ], @@ -392,7 +394,7 @@ ruleTester.run('no-uninstalled-addons', rule, { type: AST_NODE_TYPES.Literal, data: { addonName: 'addon-withut-the-prefix', - packageJsonPath: `code${sep}`, + packageJsonPath: `${rootDir}${sep}`, }, }, { @@ -400,7 +402,7 @@ ruleTester.run('no-uninstalled-addons', rule, { type: AST_NODE_TYPES.Literal, data: { addonName: '@storybook/addon-esentials', - packageJsonPath: `code${sep}`, + packageJsonPath: `${rootDir}${sep}`, }, }, ], diff --git a/code/renderers/react/src/componentManifest/reactDocgenTypescript.test.ts b/code/renderers/react/src/componentManifest/reactDocgenTypescript.test.ts index f6c86ea2d526..2ece670c88e5 100644 --- a/code/renderers/react/src/componentManifest/reactDocgenTypescript.test.ts +++ b/code/renderers/react/src/componentManifest/reactDocgenTypescript.test.ts @@ -1,9 +1,15 @@ import { join } from 'node:path'; -import { describe, expect, test } from 'vitest'; +import { beforeEach, describe, expect, test, vi } from 'vitest'; import { parseWithReactDocgenTypescript } from './reactDocgenTypescript'; +// parseWithReactDocgenTypescript uses process.cwd() to find tsconfig.json +// Ensure it resolves from the react renderer directory regardless of vitest's cwd +beforeEach(() => { + vi.spyOn(process, 'cwd').mockReturnValue(join(__dirname, '..', '..')); +}); + const fixture = (name: string) => join(__dirname, '__testfixtures__', name); // Strip absolute paths so snapshots are portable across machines and CI environments From 0134642e8401f34d147f0383d3c25bc10cb82b91 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 22:47:30 +0700 Subject: [PATCH 14/18] Revert unrelated publish.yml change and remove unnecessary configDir --- .github/workflows/publish.yml | 4 ++-- code/vitest.config.storybook.ts | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 8259f525d13e..c3d65e243846 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -83,7 +83,7 @@ jobs: git config --global user.name "storybook-bot" git config --global user.email "32066757+storybook-bot@users.noreply.github.com" git add . - git commit -m "Bump version from $CURRENT_VERSION to $DEFERRED_NEXT_VERSION [skip ci]" --no-verify --allow-empty + git commit -m "Bump version from $CURRENT_VERSION to $DEFERRED_NEXT_VERSION [skip ci]" || true git push origin "$REF_NAME" - name: Get current version @@ -181,7 +181,7 @@ jobs: git pull git checkout origin/main ./CHANGELOG.md git add ./CHANGELOG.md - git commit -m "Update CHANGELOG.md for v$CURRENT_VERSION [skip ci]" --no-verify --allow-empty + git commit -m "Update CHANGELOG.md for v$CURRENT_VERSION [skip ci]" || true git push origin next # Sync the next.json version file to the main branch so it gets deployed to the docs site diff --git a/code/vitest.config.storybook.ts b/code/vitest.config.storybook.ts index 2088e69634ae..2f4bcdcd3215 100644 --- a/code/vitest.config.storybook.ts +++ b/code/vitest.config.storybook.ts @@ -21,7 +21,6 @@ if (process.env.INSPECT === 'true') { export default defineProject({ plugins: [ storybookTest({ - configDir: import.meta.dirname + '/.storybook', tags: { include: ['vitest'], }, From f31885c1c7d54c54c900553134533b78b49649c9 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 22:50:18 +0700 Subject: [PATCH 15/18] Update yarn.lock --- yarn.lock | 456 ++---------------------------------------------------- 1 file changed, 17 insertions(+), 439 deletions(-) diff --git a/yarn.lock b/yarn.lock index af32591deeac..283a4d020bf3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -447,18 +447,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.24.2, @babel/code-frame@npm:^7.26.2, @babel/code-frame@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/code-frame@npm:7.27.1" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.27.1" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.1.1" - checksum: 10c0/5dd9a18baa5fce4741ba729acc3a3272c49c25cb8736c4b18e113099520e7ef7b545a4096a26d600e4416157e63e87d66db46aa3fbf0a5f2286da2705c12da00 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.24.2, @babel/code-frame@npm:^7.26.2, @babel/code-frame@npm:^7.27.1, @babel/code-frame@npm:^7.28.6, @babel/code-frame@npm:^7.29.0": version: 7.29.0 resolution: "@babel/code-frame@npm:7.29.0" dependencies: @@ -469,14 +458,7 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.26.8, @babel/compat-data@npm:^7.27.2, @babel/compat-data@npm:^7.27.7, @babel/compat-data@npm:^7.28.5": - version: 7.28.5 - resolution: "@babel/compat-data@npm:7.28.5" - checksum: 10c0/702a25de73087b0eba325c1d10979eed7c9b6662677386ba7b5aa6eace0fc0676f78343bae080a0176ae26f58bd5535d73b9d0fbb547fef377692e8b249353a7 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.28.6": +"@babel/compat-data@npm:^7.26.8, @babel/compat-data@npm:^7.27.7, @babel/compat-data@npm:^7.28.5, @babel/compat-data@npm:^7.28.6": version: 7.29.0 resolution: "@babel/compat-data@npm:7.29.0" checksum: 10c0/08f348554989d23aa801bf1405aa34b15e841c0d52d79da7e524285c77a5f9d298e70e11d91cc578d8e2c9542efc586d50c5f5cf8e1915b254a9dcf786913a94 @@ -529,30 +511,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.12.0, @babel/core@npm:^7.18.9, @babel/core@npm:^7.23.0, @babel/core@npm:^7.23.9, @babel/core@npm:^7.28.0, @babel/core@npm:^7.28.5, @babel/core@npm:^7.3.4, @babel/core@npm:^7.7.5": - version: 7.28.5 - resolution: "@babel/core@npm:7.28.5" - dependencies: - "@babel/code-frame": "npm:^7.27.1" - "@babel/generator": "npm:^7.28.5" - "@babel/helper-compilation-targets": "npm:^7.27.2" - "@babel/helper-module-transforms": "npm:^7.28.3" - "@babel/helpers": "npm:^7.28.4" - "@babel/parser": "npm:^7.28.5" - "@babel/template": "npm:^7.27.2" - "@babel/traverse": "npm:^7.28.5" - "@babel/types": "npm:^7.28.5" - "@jridgewell/remapping": "npm:^2.3.5" - convert-source-map: "npm:^2.0.0" - debug: "npm:^4.1.0" - gensync: "npm:^1.0.0-beta.2" - json5: "npm:^2.2.3" - semver: "npm:^6.3.1" - checksum: 10c0/535f82238027621da6bdffbdbe896ebad3558b311d6f8abc680637a9859b96edbf929ab010757055381570b29cf66c4a295b5618318d27a4273c0e2033925e72 - languageName: node - linkType: hard - -"@babel/core@npm:^7.29.0": +"@babel/core@npm:^7.12.0, @babel/core@npm:^7.18.9, @babel/core@npm:^7.23.0, @babel/core@npm:^7.23.9, @babel/core@npm:^7.28.0, @babel/core@npm:^7.28.5, @babel/core@npm:^7.29.0, @babel/core@npm:^7.3.4, @babel/core@npm:^7.7.5": version: 7.29.0 resolution: "@babel/core@npm:7.29.0" dependencies: @@ -588,20 +547,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.26.10, @babel/generator@npm:^7.26.9, @babel/generator@npm:^7.28.0, @babel/generator@npm:^7.28.5": - version: 7.28.5 - resolution: "@babel/generator@npm:7.28.5" - dependencies: - "@babel/parser": "npm:^7.28.5" - "@babel/types": "npm:^7.28.5" - "@jridgewell/gen-mapping": "npm:^0.3.12" - "@jridgewell/trace-mapping": "npm:^0.3.28" - jsesc: "npm:^3.0.2" - checksum: 10c0/9f219fe1d5431b6919f1a5c60db8d5d34fe546c0d8f5a8511b32f847569234ffc8032beb9e7404649a143f54e15224ecb53a3d11b6bb85c3203e573d91fca752 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.29.0": +"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.26.10, @babel/generator@npm:^7.26.9, @babel/generator@npm:^7.28.0, @babel/generator@npm:^7.28.5, @babel/generator@npm:^7.29.0": version: 7.29.1 resolution: "@babel/generator@npm:7.29.1" dependencies: @@ -632,20 +578,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.12.0, @babel/helper-compilation-targets@npm:^7.26.5, @babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.27.2": - version: 7.27.2 - resolution: "@babel/helper-compilation-targets@npm:7.27.2" - dependencies: - "@babel/compat-data": "npm:^7.27.2" - "@babel/helper-validator-option": "npm:^7.27.1" - browserslist: "npm:^4.24.0" - lru-cache: "npm:^5.1.1" - semver: "npm:^6.3.1" - checksum: 10c0/f338fa00dcfea931804a7c55d1a1c81b6f0a09787e528ec580d5c21b3ecb3913f6cb0f361368973ce953b824d910d3ac3e8a8ee15192710d3563826447193ad1 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.28.6": +"@babel/helper-compilation-targets@npm:^7.12.0, @babel/helper-compilation-targets@npm:^7.26.5, @babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.27.2, @babel/helper-compilation-targets@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-compilation-targets@npm:7.28.6" dependencies: @@ -720,17 +653,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.25.9, @babel/helper-module-imports@npm:^7.27.1, @babel/helper-module-imports@npm:^7.8.3": - version: 7.27.1 - resolution: "@babel/helper-module-imports@npm:7.27.1" - dependencies: - "@babel/traverse": "npm:^7.27.1" - "@babel/types": "npm:^7.27.1" - checksum: 10c0/e00aace096e4e29290ff8648455c2bc4ed982f0d61dbf2db1b5e750b9b98f318bf5788d75a4f974c151bd318fd549e81dbcab595f46b14b81c12eda3023f51e8 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.28.6": +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.25.9, @babel/helper-module-imports@npm:^7.27.1, @babel/helper-module-imports@npm:^7.28.6, @babel/helper-module-imports@npm:^7.8.3": version: 7.28.6 resolution: "@babel/helper-module-imports@npm:7.28.6" dependencies: @@ -740,20 +663,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.26.0, @babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.28.3": - version: 7.28.3 - resolution: "@babel/helper-module-transforms@npm:7.28.3" - dependencies: - "@babel/helper-module-imports": "npm:^7.27.1" - "@babel/helper-validator-identifier": "npm:^7.27.1" - "@babel/traverse": "npm:^7.28.3" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/549be62515a6d50cd4cfefcab1b005c47f89bd9135a22d602ee6a5e3a01f27571868ada10b75b033569f24dc4a2bb8d04bfa05ee75c16da7ade2d0db1437fcdb - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.28.6": +"@babel/helper-module-transforms@npm:^7.26.0, @babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.28.3, @babel/helper-module-transforms@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-module-transforms@npm:7.28.6" dependencies: @@ -834,7 +744,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.27.1, @babel/helper-validator-identifier@npm:^7.28.5": +"@babel/helper-validator-identifier@npm:^7.28.5": version: 7.28.5 resolution: "@babel/helper-validator-identifier@npm:7.28.5" checksum: 10c0/42aaebed91f739a41f3d80b72752d1f95fd7c72394e8e4bd7cdd88817e0774d80a432451bcba17c2c642c257c483bf1d409dd4548883429ea9493a3bc4ab0847 @@ -859,17 +769,7 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.26.10, @babel/helpers@npm:^7.26.9, @babel/helpers@npm:^7.28.4": - version: 7.28.4 - resolution: "@babel/helpers@npm:7.28.4" - dependencies: - "@babel/template": "npm:^7.27.2" - "@babel/types": "npm:^7.28.4" - checksum: 10c0/aaa5fb8098926dfed5f223adf2c5e4c7fbba4b911b73dfec2d7d3083f8ba694d201a206db673da2d9b3ae8c01793e795767654558c450c8c14b4c2175b4fcb44 - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.28.6": +"@babel/helpers@npm:^7.26.10, @babel/helpers@npm:^7.26.9, @babel/helpers@npm:^7.28.6": version: 7.29.2 resolution: "@babel/helpers@npm:7.29.2" dependencies: @@ -879,18 +779,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.26.10, @babel/parser@npm:^7.26.9, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.0, @babel/parser@npm:^7.28.5, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.9.6": - version: 7.28.5 - resolution: "@babel/parser@npm:7.28.5" - dependencies: - "@babel/types": "npm:^7.28.5" - bin: - parser: ./bin/babel-parser.js - checksum: 10c0/5bbe48bf2c79594ac02b490a41ffde7ef5aa22a9a88ad6bcc78432a6ba8a9d638d531d868bd1f104633f1f6bba9905746e15185b8276a3756c42b765d131b1ef - languageName: node - linkType: hard - -"@babel/parser@npm:^7.28.6, @babel/parser@npm:^7.29.0": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.26.10, @babel/parser@npm:^7.26.9, @babel/parser@npm:^7.28.0, @babel/parser@npm:^7.28.5, @babel/parser@npm:^7.28.6, @babel/parser@npm:^7.29.0, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.9.6": version: 7.29.2 resolution: "@babel/parser@npm:7.29.2" dependencies: @@ -2158,18 +2047,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.26.9, @babel/template@npm:^7.27.1, @babel/template@npm:^7.27.2": - version: 7.27.2 - resolution: "@babel/template@npm:7.27.2" - dependencies: - "@babel/code-frame": "npm:^7.27.1" - "@babel/parser": "npm:^7.27.2" - "@babel/types": "npm:^7.27.1" - checksum: 10c0/ed9e9022651e463cc5f2cc21942f0e74544f1754d231add6348ff1b472985a3b3502041c0be62dc99ed2d12cfae0c51394bf827452b98a2f8769c03b87aadc81 - languageName: node - linkType: hard - -"@babel/template@npm:^7.28.6": +"@babel/template@npm:^7.26.9, @babel/template@npm:^7.27.1, @babel/template@npm:^7.27.2, @babel/template@npm:^7.28.6": version: 7.28.6 resolution: "@babel/template@npm:7.28.6" dependencies: @@ -2399,17 +2277,7 @@ __metadata: languageName: node linkType: hard -"@emnapi/core@npm:^1.1.0, @emnapi/core@npm:^1.4.3, @emnapi/core@npm:^1.5.0": - version: 1.7.1 - resolution: "@emnapi/core@npm:1.7.1" - dependencies: - "@emnapi/wasi-threads": "npm:1.1.0" - tslib: "npm:^2.4.0" - checksum: 10c0/f3740be23440b439333e3ae3832163f60c96c4e35337f3220ceba88f36ee89a57a871d27c94eb7a9ff98a09911ed9a2089e477ab549f4d30029f8b907f84a351 - languageName: node - linkType: hard - -"@emnapi/core@npm:^1.7.1": +"@emnapi/core@npm:^1.1.0, @emnapi/core@npm:^1.4.3, @emnapi/core@npm:^1.7.1": version: 1.9.0 resolution: "@emnapi/core@npm:1.9.0" dependencies: @@ -2419,16 +2287,7 @@ __metadata: languageName: node linkType: hard -"@emnapi/runtime@npm:^1.1.0, @emnapi/runtime@npm:^1.4.3, @emnapi/runtime@npm:^1.5.0, @emnapi/runtime@npm:^1.7.0": - version: 1.7.1 - resolution: "@emnapi/runtime@npm:1.7.1" - dependencies: - tslib: "npm:^2.4.0" - checksum: 10c0/26b851cd3e93877d8732a985a2ebf5152325bbacc6204ef5336a47359dedcc23faeb08cdfcb8bb389b5401b3e894b882bc1a1e55b4b7c1ed1e67c991a760ddd5 - languageName: node - linkType: hard - -"@emnapi/runtime@npm:^1.7.1": +"@emnapi/runtime@npm:^1.1.0, @emnapi/runtime@npm:^1.4.3, @emnapi/runtime@npm:^1.7.0, @emnapi/runtime@npm:^1.7.1": version: 1.9.0 resolution: "@emnapi/runtime@npm:1.9.0" dependencies: @@ -2437,15 +2296,6 @@ __metadata: languageName: node linkType: hard -"@emnapi/wasi-threads@npm:1.1.0": - version: 1.1.0 - resolution: "@emnapi/wasi-threads@npm:1.1.0" - dependencies: - tslib: "npm:^2.4.0" - checksum: 10c0/e6d54bf2b1e64cdd83d2916411e44e579b6ae35d5def0dea61a3c452d9921373044dff32a8b8473ae60c80692bdc39323e98b96a3f3d87ba6886b24dd0ef7ca1 - languageName: node - linkType: hard - "@emnapi/wasi-threads@npm:1.2.0": version: 1.2.0 resolution: "@emnapi/wasi-threads@npm:1.2.0" @@ -4081,18 +3931,7 @@ __metadata: languageName: node linkType: hard -"@napi-rs/wasm-runtime@npm:^1.0.7": - version: 1.0.7 - resolution: "@napi-rs/wasm-runtime@npm:1.0.7" - dependencies: - "@emnapi/core": "npm:^1.5.0" - "@emnapi/runtime": "npm:^1.5.0" - "@tybys/wasm-util": "npm:^0.10.1" - checksum: 10c0/2d8635498136abb49d6dbf7395b78c63422292240963bf055f307b77aeafbde57ae2c0ceaaef215601531b36d6eb92a2cdd6f5ba90ed2aa8127c27aff9c4ae55 - languageName: node - linkType: hard - -"@napi-rs/wasm-runtime@npm:^1.1.1": +"@napi-rs/wasm-runtime@npm:^1.0.7, @napi-rs/wasm-runtime@npm:^1.1.1": version: 1.1.1 resolution: "@napi-rs/wasm-runtime@npm:1.1.1" dependencies: @@ -7541,13 +7380,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.53.2" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - "@rollup/rollup-android-arm-eabi@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-android-arm-eabi@npm:4.59.0" @@ -7562,13 +7394,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-android-arm64@npm:4.53.2" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - "@rollup/rollup-android-arm64@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-android-arm64@npm:4.59.0" @@ -7583,13 +7408,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-darwin-arm64@npm:4.53.2" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - "@rollup/rollup-darwin-arm64@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-darwin-arm64@npm:4.59.0" @@ -7604,13 +7422,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-darwin-x64@npm:4.53.2" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@rollup/rollup-darwin-x64@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-darwin-x64@npm:4.59.0" @@ -7625,13 +7436,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.53.2" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - "@rollup/rollup-freebsd-arm64@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-freebsd-arm64@npm:4.59.0" @@ -7646,13 +7450,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-freebsd-x64@npm:4.53.2" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - "@rollup/rollup-freebsd-x64@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-freebsd-x64@npm:4.59.0" @@ -7667,13 +7464,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.53.2" - conditions: os=linux & cpu=arm & libc=glibc - languageName: node - linkType: hard - "@rollup/rollup-linux-arm-gnueabihf@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.59.0" @@ -7688,13 +7478,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.53.2" - conditions: os=linux & cpu=arm & libc=musl - languageName: node - linkType: hard - "@rollup/rollup-linux-arm-musleabihf@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.59.0" @@ -7709,13 +7492,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.53.2" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - "@rollup/rollup-linux-arm64-gnu@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.59.0" @@ -7730,13 +7506,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.53.2" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - "@rollup/rollup-linux-arm64-musl@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.59.0" @@ -7744,13 +7513,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-loong64-gnu@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.53.2" - conditions: os=linux & cpu=loong64 & libc=glibc - languageName: node - linkType: hard - "@rollup/rollup-linux-loong64-gnu@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.59.0" @@ -7779,13 +7541,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-ppc64-gnu@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.53.2" - conditions: os=linux & cpu=ppc64 & libc=glibc - languageName: node - linkType: hard - "@rollup/rollup-linux-ppc64-gnu@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.59.0" @@ -7807,13 +7562,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.53.2" - conditions: os=linux & cpu=riscv64 & libc=glibc - languageName: node - linkType: hard - "@rollup/rollup-linux-riscv64-gnu@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.59.0" @@ -7821,13 +7569,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-musl@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.53.2" - conditions: os=linux & cpu=riscv64 & libc=musl - languageName: node - linkType: hard - "@rollup/rollup-linux-riscv64-musl@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.59.0" @@ -7842,13 +7583,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.53.2" - conditions: os=linux & cpu=s390x & libc=glibc - languageName: node - linkType: hard - "@rollup/rollup-linux-s390x-gnu@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.59.0" @@ -7863,13 +7597,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.53.2" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - "@rollup/rollup-linux-x64-gnu@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.59.0" @@ -7884,13 +7611,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.53.2" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - "@rollup/rollup-linux-x64-musl@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-linux-x64-musl@npm:4.59.0" @@ -7905,13 +7625,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-openharmony-arm64@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-openharmony-arm64@npm:4.53.2" - conditions: os=openharmony & cpu=arm64 - languageName: node - linkType: hard - "@rollup/rollup-openharmony-arm64@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-openharmony-arm64@npm:4.59.0" @@ -7926,13 +7639,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.53.2" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - "@rollup/rollup-win32-arm64-msvc@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.59.0" @@ -7947,13 +7653,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.53.2" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - "@rollup/rollup-win32-ia32-msvc@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.59.0" @@ -7961,13 +7660,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-x64-gnu@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-win32-x64-gnu@npm:4.53.2" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@rollup/rollup-win32-x64-gnu@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-win32-x64-gnu@npm:4.59.0" @@ -7982,13 +7674,6 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.53.2": - version: 4.53.2 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.53.2" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@rollup/rollup-win32-x64-msvc@npm:4.59.0": version: 4.59.0 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.59.0" @@ -25454,18 +25139,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.2.14, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.49, postcss@npm:^8.5.6": - version: 8.5.6 - resolution: "postcss@npm:8.5.6" - dependencies: - nanoid: "npm:^3.3.11" - picocolors: "npm:^1.1.1" - source-map-js: "npm:^1.2.1" - checksum: 10c0/5127cc7c91ed7a133a1b7318012d8bfa112da9ef092dddf369ae699a1f10ebbd89b1b9f25f3228795b84585c72aabd5ced5fc11f2ba467eedf7b081a66fad024 - languageName: node - linkType: hard - -"postcss@npm:^8.5.3, postcss@npm:^8.5.8": +"postcss@npm:^8.2.14, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.49, postcss@npm:^8.5.3, postcss@npm:^8.5.6, postcss@npm:^8.5.8": version: 8.5.8 resolution: "postcss@npm:8.5.8" dependencies: @@ -27627,88 +27301,7 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.21.0, rollup@npm:^4.43.0": - version: 4.53.2 - resolution: "rollup@npm:4.53.2" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.53.2" - "@rollup/rollup-android-arm64": "npm:4.53.2" - "@rollup/rollup-darwin-arm64": "npm:4.53.2" - "@rollup/rollup-darwin-x64": "npm:4.53.2" - "@rollup/rollup-freebsd-arm64": "npm:4.53.2" - "@rollup/rollup-freebsd-x64": "npm:4.53.2" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.53.2" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.53.2" - "@rollup/rollup-linux-arm64-gnu": "npm:4.53.2" - "@rollup/rollup-linux-arm64-musl": "npm:4.53.2" - "@rollup/rollup-linux-loong64-gnu": "npm:4.53.2" - "@rollup/rollup-linux-ppc64-gnu": "npm:4.53.2" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.53.2" - "@rollup/rollup-linux-riscv64-musl": "npm:4.53.2" - "@rollup/rollup-linux-s390x-gnu": "npm:4.53.2" - "@rollup/rollup-linux-x64-gnu": "npm:4.53.2" - "@rollup/rollup-linux-x64-musl": "npm:4.53.2" - "@rollup/rollup-openharmony-arm64": "npm:4.53.2" - "@rollup/rollup-win32-arm64-msvc": "npm:4.53.2" - "@rollup/rollup-win32-ia32-msvc": "npm:4.53.2" - "@rollup/rollup-win32-x64-gnu": "npm:4.53.2" - "@rollup/rollup-win32-x64-msvc": "npm:4.53.2" - "@types/estree": "npm:1.0.8" - fsevents: "npm:~2.3.2" - dependenciesMeta: - "@rollup/rollup-android-arm-eabi": - optional: true - "@rollup/rollup-android-arm64": - optional: true - "@rollup/rollup-darwin-arm64": - optional: true - "@rollup/rollup-darwin-x64": - optional: true - "@rollup/rollup-freebsd-arm64": - optional: true - "@rollup/rollup-freebsd-x64": - optional: true - "@rollup/rollup-linux-arm-gnueabihf": - optional: true - "@rollup/rollup-linux-arm-musleabihf": - optional: true - "@rollup/rollup-linux-arm64-gnu": - optional: true - "@rollup/rollup-linux-arm64-musl": - optional: true - "@rollup/rollup-linux-loong64-gnu": - optional: true - "@rollup/rollup-linux-ppc64-gnu": - optional: true - "@rollup/rollup-linux-riscv64-gnu": - optional: true - "@rollup/rollup-linux-riscv64-musl": - optional: true - "@rollup/rollup-linux-s390x-gnu": - optional: true - "@rollup/rollup-linux-x64-gnu": - optional: true - "@rollup/rollup-linux-x64-musl": - optional: true - "@rollup/rollup-openharmony-arm64": - optional: true - "@rollup/rollup-win32-arm64-msvc": - optional: true - "@rollup/rollup-win32-ia32-msvc": - optional: true - "@rollup/rollup-win32-x64-gnu": - optional: true - "@rollup/rollup-win32-x64-msvc": - optional: true - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: 10c0/427216da71c1ce7fefb0bef75f94c301afd858ac27e35898e098c2da5977325fa54c2edda867caf9675c8abfa8d8d94efa99c482fa04f5cd91f3a740112d4f4f - languageName: node - linkType: hard - -"rollup@npm:^4.34.9": +"rollup@npm:^4.21.0, rollup@npm:^4.34.9, rollup@npm:^4.43.0": version: 4.59.0 resolution: "rollup@npm:4.59.0" dependencies: @@ -32533,22 +32126,7 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.18.0": - version: 8.18.3 - resolution: "ws@npm:8.18.3" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 10c0/eac918213de265ef7cb3d4ca348b891a51a520d839aa51cdb8ca93d4fa7ff9f6ccb339ccee89e4075324097f0a55157c89fa3f7147bde9d8d7e90335dc087b53 - languageName: node - linkType: hard - -"ws@npm:^8.19.0": +"ws@npm:^8.18.0, ws@npm:^8.19.0": version: 8.19.0 resolution: "ws@npm:8.19.0" peerDependencies: From 8a7137cdd9cac9483d7c77f934b2114103860ed6 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 23:27:37 +0700 Subject: [PATCH 16/18] Restore publish.yml to match next --- .github/workflows/publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c3d65e243846..8259f525d13e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -83,7 +83,7 @@ jobs: git config --global user.name "storybook-bot" git config --global user.email "32066757+storybook-bot@users.noreply.github.com" git add . - git commit -m "Bump version from $CURRENT_VERSION to $DEFERRED_NEXT_VERSION [skip ci]" || true + git commit -m "Bump version from $CURRENT_VERSION to $DEFERRED_NEXT_VERSION [skip ci]" --no-verify --allow-empty git push origin "$REF_NAME" - name: Get current version @@ -181,7 +181,7 @@ jobs: git pull git checkout origin/main ./CHANGELOG.md git add ./CHANGELOG.md - git commit -m "Update CHANGELOG.md for v$CURRENT_VERSION [skip ci]" || true + git commit -m "Update CHANGELOG.md for v$CURRENT_VERSION [skip ci]" --no-verify --allow-empty git push origin next # Sync the next.json version file to the main branch so it gets deployed to the docs site From 8b2044a8352c295be05e48218209f44da804b5b0 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 23:35:29 +0700 Subject: [PATCH 17/18] Remove reactDocgenTypescript test (covered elsewhere) --- .../reactDocgenTypescript.test.ts | 1575 ----------------- 1 file changed, 1575 deletions(-) delete mode 100644 code/renderers/react/src/componentManifest/reactDocgenTypescript.test.ts diff --git a/code/renderers/react/src/componentManifest/reactDocgenTypescript.test.ts b/code/renderers/react/src/componentManifest/reactDocgenTypescript.test.ts deleted file mode 100644 index 2ece670c88e5..000000000000 --- a/code/renderers/react/src/componentManifest/reactDocgenTypescript.test.ts +++ /dev/null @@ -1,1575 +0,0 @@ -import { join } from 'node:path'; - -import { beforeEach, describe, expect, test, vi } from 'vitest'; - -import { parseWithReactDocgenTypescript } from './reactDocgenTypescript'; - -// parseWithReactDocgenTypescript uses process.cwd() to find tsconfig.json -// Ensure it resolves from the react renderer directory regardless of vitest's cwd -beforeEach(() => { - vi.spyOn(process, 'cwd').mockReturnValue(join(__dirname, '..', '..')); -}); - -const fixture = (name: string) => join(__dirname, '__testfixtures__', name); - -// Strip absolute paths so snapshots are portable across machines and CI environments -function normalize(results: any[]) { - return JSON.parse( - JSON.stringify(results, (key, value) => { - if ((key === 'filePath' || key === 'fileName') && typeof value === 'string') { - return value - .replace(/.*__testfixtures__[\\/]/, '') - .replace(/.*node_modules[\\/]/, 'node_modules/'); - } - return value; - }) - ); -} - -describe('parseFile', () => { - test('Button', { timeout: 30_000 }, () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('Button.ts')))).toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "Button", - "exportName": "Button", - "filePath": "Button.ts", - "methods": [], - "props": { - "disabled": { - "declarations": [ - { - "fileName": "Button.ts", - "name": "ButtonProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "disabled", - "parent": { - "fileName": "Button.ts", - "name": "ButtonProps", - }, - "required": false, - "type": { - "name": "boolean", - }, - }, - "label": { - "declarations": [ - { - "fileName": "Button.ts", - "name": "ButtonProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "label", - "parent": { - "fileName": "Button.ts", - "name": "ButtonProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - }, - "tags": {}, - }, - ] - `); - }); - - test('Arrow', () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('Arrow.ts')))).toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "Card", - "exportName": "Card", - "filePath": "Arrow.ts", - "methods": [], - "props": { - "title": { - "declarations": [ - { - "fileName": "Arrow.ts", - "name": "CardProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "title", - "parent": { - "fileName": "Arrow.ts", - "name": "CardProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - }, - "tags": {}, - }, - ] - `); - }); - - test('DefaultExport', () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('DefaultExport.ts')))) - .toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "Icon", - "exportName": "default", - "filePath": "DefaultExport.ts", - "methods": [], - "props": { - "name": { - "declarations": [ - { - "fileName": "DefaultExport.ts", - "name": "IconProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "name", - "parent": { - "fileName": "DefaultExport.ts", - "name": "IconProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - "size": { - "declarations": [ - { - "fileName": "DefaultExport.ts", - "name": "IconProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "size", - "parent": { - "fileName": "DefaultExport.ts", - "name": "IconProps", - }, - "required": false, - "type": { - "name": "number", - }, - }, - }, - "tags": {}, - }, - ] - `); - }); - - test('MultipleExports', () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('MultipleExports.ts')))) - .toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "Input", - "exportName": "Input", - "filePath": "MultipleExports.ts", - "methods": [], - "props": { - "placeholder": { - "declarations": [ - { - "fileName": "MultipleExports.ts", - "name": "InputProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "placeholder", - "parent": { - "fileName": "MultipleExports.ts", - "name": "InputProps", - }, - "required": false, - "type": { - "name": "string", - }, - }, - }, - "tags": {}, - }, - { - "description": "", - "displayName": "MultipleExports", - "exportName": "default", - "filePath": "MultipleExports.ts", - "methods": [], - "props": { - "text": { - "declarations": [ - { - "fileName": "MultipleExports.ts", - "name": "LabelProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "text", - "parent": { - "fileName": "MultipleExports.ts", - "name": "LabelProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - }, - "tags": {}, - }, - ] - `); - }); - - test('UnionProps', () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('UnionProps.ts')))) - .toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "Tag", - "exportName": "Tag", - "filePath": "UnionProps.ts", - "methods": [], - "props": { - "size": { - "declarations": [ - { - "fileName": "UnionProps.ts", - "name": "TagProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "size", - "parent": { - "fileName": "UnionProps.ts", - "name": "TagProps", - }, - "required": false, - "type": { - "name": "enum", - "raw": ""small" | "large"", - "value": [ - { - "value": ""small"", - }, - { - "value": ""large"", - }, - ], - }, - }, - "variant": { - "declarations": [ - { - "fileName": "UnionProps.ts", - "name": "TagProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "variant", - "parent": { - "fileName": "UnionProps.ts", - "name": "TagProps", - }, - "required": true, - "type": { - "name": "enum", - "raw": ""primary" | "secondary" | "danger"", - "value": [ - { - "value": ""primary"", - }, - { - "value": ""secondary"", - }, - { - "value": ""danger"", - }, - ], - }, - }, - }, - "tags": {}, - }, - ] - `); - }); - - test('FunctionProps', () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('FunctionProps.ts')))) - .toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "Callback", - "exportName": "Callback", - "filePath": "FunctionProps.ts", - "methods": [], - "props": { - "onClick": { - "declarations": [ - { - "fileName": "FunctionProps.ts", - "name": "CallbackProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "onClick", - "parent": { - "fileName": "FunctionProps.ts", - "name": "CallbackProps", - }, - "required": false, - "type": { - "name": "((id: string) => void)", - }, - }, - "onSubmit": { - "declarations": [ - { - "fileName": "FunctionProps.ts", - "name": "CallbackProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "onSubmit", - "parent": { - "fileName": "FunctionProps.ts", - "name": "CallbackProps", - }, - "required": true, - "type": { - "name": "() => boolean", - }, - }, - }, - "tags": {}, - }, - ] - `); - }); - - test('DefaultValues', () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('DefaultValues.ts')))) - .toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "Alert", - "exportName": "Alert", - "filePath": "DefaultValues.ts", - "methods": [], - "props": { - "message": { - "declarations": [ - { - "fileName": "DefaultValues.ts", - "name": "AlertProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "message", - "parent": { - "fileName": "DefaultValues.ts", - "name": "AlertProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - "severity": { - "declarations": [ - { - "fileName": "DefaultValues.ts", - "name": "AlertProps", - }, - ], - "defaultValue": { - "value": "info", - }, - "description": "", - "name": "severity", - "parent": { - "fileName": "DefaultValues.ts", - "name": "AlertProps", - }, - "required": false, - "type": { - "name": "string", - }, - }, - }, - "tags": {}, - }, - ] - `); - }); - - test('Documented', () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('Documented.ts')))) - .toMatchInlineSnapshot(` - [ - { - "description": "A tooltip component.", - "displayName": "Tooltip", - "exportName": "Tooltip", - "filePath": "Documented.ts", - "methods": [], - "props": { - "content": { - "declarations": [ - { - "fileName": "Documented.ts", - "name": "TooltipProps", - }, - ], - "defaultValue": null, - "description": "The content to display", - "name": "content", - "parent": { - "fileName": "Documented.ts", - "name": "TooltipProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - }, - "tags": {}, - }, - ] - `); - }); - - test('NoComponents', () => { - expect( - normalize(parseWithReactDocgenTypescript(fixture('NoComponents.ts'))) - ).toMatchInlineSnapshot(`[]`); - }); - - test('ImportedProps (extends + imported types from another file)', () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('ImportedProps.ts')))) - .toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "Badge", - "exportName": "Badge", - "filePath": "ImportedProps.ts", - "methods": [], - "props": { - "className": { - "declarations": [ - { - "fileName": "types.ts", - "name": "SharedProps", - }, - ], - "defaultValue": null, - "description": "Optional CSS class name", - "name": "className", - "parent": { - "fileName": "types.ts", - "name": "SharedProps", - }, - "required": false, - "type": { - "name": "string", - }, - }, - "count": { - "declarations": [ - { - "fileName": "ImportedProps.ts", - "name": "BadgeProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "count", - "parent": { - "fileName": "ImportedProps.ts", - "name": "BadgeProps", - }, - "required": false, - "type": { - "name": "number", - }, - }, - "disabled": { - "declarations": [ - { - "fileName": "types.ts", - "name": "ClickableProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "disabled", - "parent": { - "fileName": "types.ts", - "name": "ClickableProps", - }, - "required": false, - "type": { - "name": "boolean", - }, - }, - "id": { - "declarations": [ - { - "fileName": "types.ts", - "name": "SharedProps", - }, - ], - "defaultValue": null, - "description": "Unique identifier", - "name": "id", - "parent": { - "fileName": "types.ts", - "name": "SharedProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - "label": { - "declarations": [ - { - "fileName": "ImportedProps.ts", - "name": "BadgeProps", - }, - ], - "defaultValue": null, - "description": "The badge label", - "name": "label", - "parent": { - "fileName": "ImportedProps.ts", - "name": "BadgeProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - "onClick": { - "declarations": [ - { - "fileName": "types.ts", - "name": "ClickableProps", - }, - ], - "defaultValue": null, - "description": "Click handler", - "name": "onClick", - "parent": { - "fileName": "types.ts", - "name": "ClickableProps", - }, - "required": false, - "type": { - "name": "((event: { target: string; }) => void)", - }, - }, - "variant": { - "declarations": [ - { - "fileName": "ImportedProps.ts", - "name": "BadgeProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "variant", - "parent": { - "fileName": "ImportedProps.ts", - "name": "BadgeProps", - }, - "required": true, - "type": { - "name": "enum", - "raw": "Variant", - "value": [ - { - "value": ""primary"", - }, - { - "value": ""secondary"", - }, - { - "value": ""danger"", - }, - ], - }, - }, - }, - "tags": {}, - }, - ] - `); - }); - - test('PickOmit (Pick/Omit utility types on imported interfaces)', () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('PickOmit.ts')))) - .toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "Card", - "exportName": "Card", - "filePath": "PickOmit.ts", - "methods": [], - "props": { - "id": { - "declarations": [ - { - "fileName": "types.ts", - "name": "SharedProps", - }, - ], - "defaultValue": null, - "description": "Unique identifier", - "name": "id", - "parent": { - "fileName": "types.ts", - "name": "SharedProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - "onClick": { - "declarations": [ - { - "fileName": "types.ts", - "name": "ClickableProps", - }, - ], - "defaultValue": null, - "description": "Click handler", - "name": "onClick", - "parent": { - "fileName": "types.ts", - "name": "ClickableProps", - }, - "required": false, - "type": { - "name": "((event: { target: string; }) => void)", - }, - }, - "subtitle": { - "declarations": [ - { - "fileName": "PickOmit.ts", - "name": "TypeLiteral", - }, - ], - "defaultValue": null, - "description": "", - "name": "subtitle", - "required": false, - "type": { - "name": "string", - }, - }, - "title": { - "declarations": [ - { - "fileName": "PickOmit.ts", - "name": "TypeLiteral", - }, - ], - "defaultValue": null, - "description": "", - "name": "title", - "required": true, - "type": { - "name": "string", - }, - }, - }, - "tags": {}, - }, - ] - `); - }); - - test('Generic (generic type parameters resolved to concrete types)', () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('Generic.ts')))).toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "StringList", - "exportName": "StringList", - "filePath": "Generic.ts", - "methods": [], - "props": { - "emptyMessage": { - "declarations": [ - { - "fileName": "Generic.ts", - "name": "ListProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "emptyMessage", - "parent": { - "fileName": "Generic.ts", - "name": "ListProps", - }, - "required": false, - "type": { - "name": "string", - }, - }, - "items": { - "declarations": [ - { - "fileName": "Generic.ts", - "name": "ListProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "items", - "parent": { - "fileName": "Generic.ts", - "name": "ListProps", - }, - "required": true, - "type": { - "name": "string[]", - }, - }, - "renderItem": { - "declarations": [ - { - "fileName": "Generic.ts", - "name": "ListProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "renderItem", - "parent": { - "fileName": "Generic.ts", - "name": "ListProps", - }, - "required": true, - "type": { - "name": "(item: string) => string", - }, - }, - }, - "tags": {}, - }, - { - "description": "", - "displayName": "NumberList", - "exportName": "NumberList", - "filePath": "Generic.ts", - "methods": [], - "props": { - "emptyMessage": { - "declarations": [ - { - "fileName": "Generic.ts", - "name": "ListProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "emptyMessage", - "parent": { - "fileName": "Generic.ts", - "name": "ListProps", - }, - "required": false, - "type": { - "name": "string", - }, - }, - "items": { - "declarations": [ - { - "fileName": "Generic.ts", - "name": "ListProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "items", - "parent": { - "fileName": "Generic.ts", - "name": "ListProps", - }, - "required": true, - "type": { - "name": "number[]", - }, - }, - "renderItem": { - "declarations": [ - { - "fileName": "Generic.ts", - "name": "ListProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "renderItem", - "parent": { - "fileName": "Generic.ts", - "name": "ListProps", - }, - "required": true, - "type": { - "name": "(item: number) => string", - }, - }, - }, - "tags": {}, - }, - ] - `); - }); - - test('ReExport (re-exported components from other files)', () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('ReExport.ts')))) - .toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "Badge", - "exportName": "Badge", - "filePath": "ReExport.ts", - "methods": [], - "props": { - "className": { - "declarations": [ - { - "fileName": "types.ts", - "name": "SharedProps", - }, - ], - "defaultValue": null, - "description": "Optional CSS class name", - "name": "className", - "parent": { - "fileName": "types.ts", - "name": "SharedProps", - }, - "required": false, - "type": { - "name": "string", - }, - }, - "count": { - "declarations": [ - { - "fileName": "ImportedProps.ts", - "name": "BadgeProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "count", - "parent": { - "fileName": "ImportedProps.ts", - "name": "BadgeProps", - }, - "required": false, - "type": { - "name": "number", - }, - }, - "disabled": { - "declarations": [ - { - "fileName": "types.ts", - "name": "ClickableProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "disabled", - "parent": { - "fileName": "types.ts", - "name": "ClickableProps", - }, - "required": false, - "type": { - "name": "boolean", - }, - }, - "id": { - "declarations": [ - { - "fileName": "types.ts", - "name": "SharedProps", - }, - ], - "defaultValue": null, - "description": "Unique identifier", - "name": "id", - "parent": { - "fileName": "types.ts", - "name": "SharedProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - "label": { - "declarations": [ - { - "fileName": "ImportedProps.ts", - "name": "BadgeProps", - }, - ], - "defaultValue": null, - "description": "The badge label", - "name": "label", - "parent": { - "fileName": "ImportedProps.ts", - "name": "BadgeProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - "onClick": { - "declarations": [ - { - "fileName": "types.ts", - "name": "ClickableProps", - }, - ], - "defaultValue": null, - "description": "Click handler", - "name": "onClick", - "parent": { - "fileName": "types.ts", - "name": "ClickableProps", - }, - "required": false, - "type": { - "name": "((event: { target: string; }) => void)", - }, - }, - "variant": { - "declarations": [ - { - "fileName": "ImportedProps.ts", - "name": "BadgeProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "variant", - "parent": { - "fileName": "ImportedProps.ts", - "name": "BadgeProps", - }, - "required": true, - "type": { - "name": "enum", - "raw": "Variant", - "value": [ - { - "value": ""primary"", - }, - { - "value": ""secondary"", - }, - { - "value": ""danger"", - }, - ], - }, - }, - }, - "tags": {}, - }, - { - "description": "", - "displayName": "Card", - "exportName": "RenamedCard", - "filePath": "ReExport.ts", - "methods": [], - "props": { - "id": { - "declarations": [ - { - "fileName": "types.ts", - "name": "SharedProps", - }, - ], - "defaultValue": null, - "description": "Unique identifier", - "name": "id", - "parent": { - "fileName": "types.ts", - "name": "SharedProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - "onClick": { - "declarations": [ - { - "fileName": "types.ts", - "name": "ClickableProps", - }, - ], - "defaultValue": null, - "description": "Click handler", - "name": "onClick", - "parent": { - "fileName": "types.ts", - "name": "ClickableProps", - }, - "required": false, - "type": { - "name": "((event: { target: string; }) => void)", - }, - }, - "subtitle": { - "declarations": [ - { - "fileName": "PickOmit.ts", - "name": "TypeLiteral", - }, - ], - "defaultValue": null, - "description": "", - "name": "subtitle", - "required": false, - "type": { - "name": "string", - }, - }, - "title": { - "declarations": [ - { - "fileName": "PickOmit.ts", - "name": "TypeLiteral", - }, - ], - "defaultValue": null, - "description": "", - "name": "title", - "required": true, - "type": { - "name": "string", - }, - }, - }, - "tags": {}, - }, - ] - `); - }); - - test('Intersection (intersection of multiple type aliases)', () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('Intersection.ts')))) - .toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "Item", - "exportName": "Item", - "filePath": "Intersection.ts", - "methods": [], - "props": { - "archived": { - "declarations": [ - { - "fileName": "Intersection.ts", - "name": "TypeLiteral", - }, - ], - "defaultValue": null, - "description": "", - "name": "archived", - "required": false, - "type": { - "name": "boolean", - }, - }, - "createdAt": { - "declarations": [ - { - "fileName": "Intersection.ts", - "name": "TypeLiteral", - }, - ], - "defaultValue": null, - "description": "", - "name": "createdAt", - "required": true, - "type": { - "name": "Date", - }, - }, - "id": { - "declarations": [ - { - "fileName": "Intersection.ts", - "name": "TypeLiteral", - }, - ], - "defaultValue": null, - "description": "", - "name": "id", - "required": true, - "type": { - "name": "string", - }, - }, - "onSave": { - "declarations": [ - { - "fileName": "Intersection.ts", - "name": "TypeLiteral", - }, - ], - "defaultValue": null, - "description": "", - "name": "onSave", - "required": true, - "type": { - "name": "() => Promise", - }, - }, - "tags": { - "declarations": [ - { - "fileName": "Intersection.ts", - "name": "TypeLiteral", - }, - ], - "defaultValue": null, - "description": "", - "name": "tags", - "required": true, - "type": { - "name": "string[]", - }, - }, - "title": { - "declarations": [ - { - "fileName": "Intersection.ts", - "name": "TypeLiteral", - }, - ], - "defaultValue": null, - "description": "", - "name": "title", - "required": true, - "type": { - "name": "string", - }, - }, - }, - "tags": {}, - }, - ] - `); - }); - - test('DtsComponent (extends React.ButtonHTMLAttributes from .d.ts)', () => { - const results = normalize(parseWithReactDocgenTypescript(fixture('DtsComponent.tsx'))); - - expect(results).toHaveLength(1); - expect(results[0].displayName).toBe('HtmlButton'); - expect(results[0].exportName).toBe('HtmlButton'); - - // User-defined prop should always be present - expect(results[0].props.variant).toMatchInlineSnapshot(` - { - "declarations": [ - { - "fileName": "DtsComponent.tsx", - "name": "HtmlButtonProps", - }, - ], - "defaultValue": null, - "description": "The button variant", - "name": "variant", - "parent": { - "fileName": "DtsComponent.tsx", - "name": "HtmlButtonProps", - }, - "required": false, - "type": { - "name": "enum", - "raw": ""solid" | "outline"", - "value": [ - { - "value": ""solid"", - }, - { - "value": ""outline"", - }, - ], - }, - } - `); - - // Bulk system props (>30 from one .d.ts source) should be filtered out - // The exact set of remaining small-source props varies by @types/react version, - // so we only assert the structural invariant - const propNames = Object.keys(results[0].props); - expect(propNames).toContain('variant'); - expect(propNames).not.toContain('className'); - expect(propNames).not.toContain('onClick'); - expect(propNames).not.toContain('children'); - }); - - test('ForwardRef', () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('ForwardRef.tsx')))) - .toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "TextInput", - "exportName": "TextInput", - "filePath": "ForwardRef.tsx", - "methods": [], - "props": { - "key": { - "declarations": [ - { - "fileName": "node_modules/@types/react/index.d.ts", - "name": "Attributes", - }, - ], - "defaultValue": null, - "description": "", - "name": "key", - "parent": { - "fileName": "node_modules/@types/react/index.d.ts", - "name": "Attributes", - }, - "required": false, - "type": { - "name": "Key | null", - }, - }, - "label": { - "declarations": [ - { - "fileName": "ForwardRef.tsx", - "name": "TextInputProps", - }, - ], - "defaultValue": null, - "description": "Input label", - "name": "label", - "parent": { - "fileName": "ForwardRef.tsx", - "name": "TextInputProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - "onChange": { - "declarations": [ - { - "fileName": "ForwardRef.tsx", - "name": "TextInputProps", - }, - ], - "defaultValue": null, - "description": "Change handler", - "name": "onChange", - "parent": { - "fileName": "ForwardRef.tsx", - "name": "TextInputProps", - }, - "required": false, - "type": { - "name": "((value: string) => void)", - }, - }, - "placeholder": { - "declarations": [ - { - "fileName": "ForwardRef.tsx", - "name": "TextInputProps", - }, - ], - "defaultValue": null, - "description": "Placeholder text", - "name": "placeholder", - "parent": { - "fileName": "ForwardRef.tsx", - "name": "TextInputProps", - }, - "required": false, - "type": { - "name": "string", - }, - }, - "ref": { - "declarations": [ - { - "fileName": "node_modules/@types/react/index.d.ts", - "name": "RefAttributes", - }, - ], - "defaultValue": null, - "description": "Allows getting a ref to the component instance. - Once the component unmounts, React will set \`ref.current\` to \`null\` - (or call the ref with \`null\` if you passed a callback ref). - @see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}", - "name": "ref", - "parent": { - "fileName": "node_modules/@types/react/index.d.ts", - "name": "RefAttributes", - }, - "required": false, - "type": { - "name": "LegacyRef", - }, - }, - }, - "tags": {}, - }, - ] - `); - }); - - test('RenamedExport (export { Foo as Bar } — displayName differs from exportName)', () => { - const result = normalize(parseWithReactDocgenTypescript(fixture('RenamedExport.ts'))); - expect(result).toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "Alert", - "exportName": "NotificationBanner", - "filePath": "RenamedExport.ts", - "methods": [], - "props": { - "message": { - "declarations": [ - { - "fileName": "RenamedExport.ts", - "name": "AlertProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "message", - "parent": { - "fileName": "RenamedExport.ts", - "name": "AlertProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - "severity": { - "declarations": [ - { - "fileName": "RenamedExport.ts", - "name": "AlertProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "severity", - "parent": { - "fileName": "RenamedExport.ts", - "name": "AlertProps", - }, - "required": false, - "type": { - "name": "enum", - "raw": ""info" | "warning" | "error"", - "value": [ - { - "value": ""info"", - }, - { - "value": ""warning"", - }, - { - "value": ""error"", - }, - ], - }, - }, - }, - "tags": {}, - }, - ] - `); - // Key assertion: displayName is the internal name, exportName is what consumers import - expect(result[0].displayName).toBe('Alert'); - expect(result[0].exportName).toBe('NotificationBanner'); - }); - - test('DisplayNameOverride (component.displayName set explicitly)', () => { - const result = normalize(parseWithReactDocgenTypescript(fixture('DisplayNameOverride.ts'))); - // The export name should be "Modal" (the export alias), not "InternalModal" or "FancyModal" - expect(result[0].exportName).toBe('Modal'); - expect(result[0].props).toHaveProperty('title'); - expect(result[0].props).toHaveProperty('open'); - }); - - test('Barrel (export * from barrel index)', () => { - expect(normalize(parseWithReactDocgenTypescript(fixture('barrel/index.ts')))) - .toMatchInlineSnapshot(` - [ - { - "description": "", - "displayName": "Button", - "exportName": "Button", - "filePath": "barrel/index.ts", - "methods": [], - "props": { - "label": { - "declarations": [ - { - "fileName": "barrel/Button.ts", - "name": "ButtonProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "label", - "parent": { - "fileName": "barrel/Button.ts", - "name": "ButtonProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - "size": { - "declarations": [ - { - "fileName": "barrel/Button.ts", - "name": "ButtonProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "size", - "parent": { - "fileName": "barrel/Button.ts", - "name": "ButtonProps", - }, - "required": false, - "type": { - "name": "enum", - "raw": ""sm" | "md" | "lg"", - "value": [ - { - "value": ""sm"", - }, - { - "value": ""md"", - }, - { - "value": ""lg"", - }, - ], - }, - }, - }, - "tags": {}, - }, - { - "description": "", - "displayName": "Input", - "exportName": "Input", - "filePath": "barrel/index.ts", - "methods": [], - "props": { - "onChange": { - "declarations": [ - { - "fileName": "barrel/Input.ts", - "name": "InputProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "onChange", - "parent": { - "fileName": "barrel/Input.ts", - "name": "InputProps", - }, - "required": true, - "type": { - "name": "(value: string) => void", - }, - }, - "value": { - "declarations": [ - { - "fileName": "barrel/Input.ts", - "name": "InputProps", - }, - ], - "defaultValue": null, - "description": "", - "name": "value", - "parent": { - "fileName": "barrel/Input.ts", - "name": "InputProps", - }, - "required": true, - "type": { - "name": "string", - }, - }, - }, - "tags": {}, - }, - ] - `); - }); -}); From 4e27527629edefddfb29a41ffedb66184f50bf0b Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 17 Mar 2026 23:56:34 +0700 Subject: [PATCH 18/18] Restore configDir in storybook vitest config (needed when running from root) --- code/vitest.config.storybook.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/code/vitest.config.storybook.ts b/code/vitest.config.storybook.ts index 2f4bcdcd3215..2088e69634ae 100644 --- a/code/vitest.config.storybook.ts +++ b/code/vitest.config.storybook.ts @@ -21,6 +21,7 @@ if (process.env.INSPECT === 'true') { export default defineProject({ plugins: [ storybookTest({ + configDir: import.meta.dirname + '/.storybook', tags: { include: ['vitest'], },