From a064053f1bf9f8286a11ad2fa45318da423244c1 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 18 Jun 2025 16:51:09 +0200 Subject: [PATCH 01/27] stop using serverRequire from storybook common, because it's about to be async, which this package cannot deal with, it seems --- package.json | 4 +++- src/util/getStorybookMain.ts | 2 +- src/util/getTestRunnerConfig.ts | 2 +- src/util/serverRequire.ts | 19 +++++++++++++++++++ tsup.config.ts | 1 - yarn.lock | 20 +++++++++++++++----- 6 files changed, 39 insertions(+), 9 deletions(-) create mode 100644 src/util/serverRequire.ts diff --git a/package.json b/package.json index 4b4c264c..7464c5ae 100644 --- a/package.json +++ b/package.json @@ -52,12 +52,14 @@ }, "dependencies": { "@babel/core": "^7.22.5", + "esbuild-register": "^3.6.0", "@babel/generator": "^7.22.5", "@babel/template": "^7.22.5", "@babel/types": "^7.22.5", "@jest/types": "^29.6.3", "@swc/core": "^1.5.22", "@swc/jest": "^0.2.23", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0", "expect-playwright": "^0.8.0", "jest": "^29.6.4", "jest-circus": "^29.6.4", @@ -81,7 +83,7 @@ "@storybook/addon-docs": "next", "@storybook/react-vite": "next", "@types/jest": "^29.0.0", - "@types/node": "^16.4.1", + "@types/node": "^20.0.0", "@types/node-fetch": "^2.6.11", "@vitejs/plugin-react": "^4.0.3", "auto": "^11.1.6", diff --git a/src/util/getStorybookMain.ts b/src/util/getStorybookMain.ts index 90d66c16..bc81413c 100644 --- a/src/util/getStorybookMain.ts +++ b/src/util/getStorybookMain.ts @@ -1,7 +1,7 @@ import { join, resolve } from 'path'; -import { serverRequire } from 'storybook/internal/common'; import type { StorybookConfig } from 'storybook/internal/types'; import dedent from 'ts-dedent'; +import { serverRequire } from './serverRequire'; export const storybookMainConfig = new Map(); diff --git a/src/util/getTestRunnerConfig.ts b/src/util/getTestRunnerConfig.ts index 4b3307ad..feb4b521 100644 --- a/src/util/getTestRunnerConfig.ts +++ b/src/util/getTestRunnerConfig.ts @@ -1,6 +1,6 @@ import { join, resolve } from 'path'; -import { serverRequire } from 'storybook/internal/common'; import { TestRunnerConfig } from '../playwright/hooks'; +import { serverRequire } from './serverRequire'; let testRunnerConfig: TestRunnerConfig; let loaded = false; diff --git a/src/util/serverRequire.ts b/src/util/serverRequire.ts new file mode 100644 index 00000000..eff568cf --- /dev/null +++ b/src/util/serverRequire.ts @@ -0,0 +1,19 @@ +import { serverResolve } from 'storybook/internal/common'; +const { register } = require('esbuild-register/dist/node'); + +register(); + +export function serverRequire(path: string) { + const located = serverResolve(path); + if (!located) { + throw new Error(`Could not find ${path}`); + } + + const result = require(located); + + if (result.default) { + return result.default; + } + + return result; +} diff --git a/tsup.config.ts b/tsup.config.ts index f0474e64..bcbf6355 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -2,7 +2,6 @@ import { defineConfig } from 'tsup'; export default defineConfig([ { - clean: true, entry: ['./src/index.ts', './src/test-storybook.ts'], format: ['cjs', 'esm'], splitting: false, diff --git a/yarn.lock b/yarn.lock index 2457dc54..3179d80d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2946,7 +2946,7 @@ __metadata: "@swc/core": "npm:^1.5.22" "@swc/jest": "npm:^0.2.23" "@types/jest": "npm:^29.0.0" - "@types/node": "npm:^16.4.1" + "@types/node": "npm:^20.0.0" "@types/node-fetch": "npm:^2.6.11" "@vitejs/plugin-react": "npm:^4.0.3" auto: "npm:^11.1.6" @@ -2956,6 +2956,7 @@ __metadata: can-bind-to-host: "npm:^1.1.1" commander: "npm:^9.0.0" concurrently: "npm:^7.0.0" + esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0" expect-playwright: "npm:^0.8.0" glob: "npm:^10.2.2" husky: "npm:^8.0.0" @@ -3341,10 +3342,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^16.4.1": - version: 16.18.61 - resolution: "@types/node@npm:16.18.61" - checksum: 10/ea2fdb3876f77ef8be0bdeee7b0c301a6bf27ab743f55a10486725d8ddd51b84edea7c219e9d09fd24650e8b14c040207a48169bd396915e7a989bac1a7c0bee +"@types/node@npm:^20.0.0": + version: 20.19.1 + resolution: "@types/node@npm:20.19.1" + dependencies: + undici-types: "npm:~6.21.0" + checksum: 10/2369a96a832a6e8111d2b996c56fb1b78b27fad0879de3e344ae2835697464e001d6fe813a11902348fc7dc63b9510000f3d2cd4bedadf2d3fce7b7bb7903444 languageName: node linkType: hard @@ -9744,6 +9747,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~6.21.0": + version: 6.21.0 + resolution: "undici-types@npm:6.21.0" + checksum: 10/ec8f41aa4359d50f9b59fa61fe3efce3477cc681908c8f84354d8567bb3701fafdddf36ef6bff307024d3feb42c837cf6f670314ba37fc8145e219560e473d14 + languageName: node + linkType: hard + "unicode-canonical-property-names-ecmascript@npm:^2.0.0": version: 2.0.0 resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" From 958c7be864e4df15b7ddd4e2e2727f27b6ae78be Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 18 Jun 2025 16:53:42 +0200 Subject: [PATCH 02/27] Update Node.js version to 20.16.0 in .nvmrc and workflows; reintroduce esbuild-register dependency in package.json and yarn.lock --- .github/workflows/tests-extended.yml | 2 +- .github/workflows/tests.yml | 2 +- .nvmrc | 2 +- package.json | 2 +- yarn.lock | 45 +++++----------------------- 5 files changed, 12 insertions(+), 41 deletions(-) diff --git a/.github/workflows/tests-extended.yml b/.github/workflows/tests-extended.yml index b7b0d15b..089eb764 100644 --- a/.github/workflows/tests-extended.yml +++ b/.github/workflows/tests-extended.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [20.x, 22.x] + node-version: [20.16.0, 22.x] steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4eb5be6d..2e10d26c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [20.x] + node-version: [20.16.0] steps: - uses: actions/checkout@v4 diff --git a/.nvmrc b/.nvmrc index 3f430af8..80a9956e 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v18 +v20.16.0 diff --git a/package.json b/package.json index 7464c5ae..91b9bc7b 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,6 @@ }, "dependencies": { "@babel/core": "^7.22.5", - "esbuild-register": "^3.6.0", "@babel/generator": "^7.22.5", "@babel/template": "^7.22.5", "@babel/types": "^7.22.5", @@ -60,6 +59,7 @@ "@swc/core": "^1.5.22", "@swc/jest": "^0.2.23", "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0", + "esbuild-register": "^3.6.0", "expect-playwright": "^0.8.0", "jest": "^29.6.4", "jest-circus": "^29.6.4", diff --git a/yarn.lock b/yarn.lock index 3179d80d..4fa7d772 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2957,6 +2957,7 @@ __metadata: commander: "npm:^9.0.0" concurrently: "npm:^7.0.0" esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0" + esbuild-register: "npm:^3.6.0" expect-playwright: "npm:^0.8.0" glob: "npm:^10.2.2" husky: "npm:^8.0.0" @@ -3251,20 +3252,13 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:1.0.7": +"@types/estree@npm:1.0.7, @types/estree@npm:^1.0.0": version: 1.0.7 resolution: "@types/estree@npm:1.0.7" checksum: 10/419c845ece767ad4b21171e6e5b63dabb2eb46b9c0d97361edcd9cabbf6a95fcadb91d89b5fa098d1336fa0b8fceaea82fca97a2ef3971f5c86e53031e157b21 languageName: node linkType: hard -"@types/estree@npm:^1.0.0": - version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: 10/7de6d928dd4010b0e20c6919e1a6c27b61f8d4567befa89252055fad503d587ecb9a1e3eab1b1901f923964d7019796db810b7fd6430acb26c32866d126fd408 - languageName: node - linkType: hard - "@types/graceful-fs@npm:^4.1.3": version: 4.1.9 resolution: "@types/graceful-fs@npm:4.1.9" @@ -3333,16 +3327,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*": - version: 20.9.0 - resolution: "@types/node@npm:20.9.0" - dependencies: - undici-types: "npm:~5.26.4" - checksum: 10/a934f7645ed117a27857147403b0c657ffbca578c8f280e4c21d27dfb43e58dc4f24c4319d4335b8a4fa08e28fb2dc905a5bd5e4bc8878047164c56c1b162139 - languageName: node - linkType: hard - -"@types/node@npm:^20.0.0": +"@types/node@npm:*, @types/node@npm:^20.0.0": version: 20.19.1 resolution: "@types/node@npm:20.19.1" dependencies: @@ -4927,14 +4912,14 @@ __metadata: languageName: node linkType: hard -"esbuild-register@npm:^3.5.0": - version: 3.5.0 - resolution: "esbuild-register@npm:3.5.0" +"esbuild-register@npm:^3.5.0, esbuild-register@npm:^3.6.0": + version: 3.6.0 + resolution: "esbuild-register@npm:3.6.0" dependencies: debug: "npm:^4.3.4" peerDependencies: esbuild: ">=0.12 <1" - checksum: 10/af6874ce9b5fcdb0974c9d9e9f16530a5b9bd80c699b2ba9d7ace33439c1af1be6948535c775d9a6439e2bf23fb31cfd54ac882cfa38308a3f182039f4b98a01 + checksum: 10/4ae1a016e3dad5b53c3d68cf07e31d8c1cec1a0b584038ece726097ac80bd33ab48fb224c766c9b341c04793837e652461eaca9327a116e7564f553b61ccca71 languageName: node linkType: hard @@ -7113,14 +7098,7 @@ __metadata: languageName: node linkType: hard -"loupe@npm:^3.1.0": - version: 3.1.2 - resolution: "loupe@npm:3.1.2" - checksum: 10/8f5734e53fb64cd914aa7d986e01b6d4c2e3c6c56dcbd5428d71c2703f0ab46b5ab9f9eeaaf2b485e8a1c43f865bdd16ec08ae1a661c8f55acdbd9f4d59c607a - languageName: node - linkType: hard - -"loupe@npm:^3.1.3": +"loupe@npm:^3.1.0, loupe@npm:^3.1.3": version: 3.1.3 resolution: "loupe@npm:3.1.3" checksum: 10/9e98c34daf0eba48ccc603595e51f2ae002110982d84879cf78c51de2c632f0c571dfe82ce4210af60c32203d06b443465c269bda925076fe6d9b612cc65c321 @@ -9740,13 +9718,6 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~5.26.4": - version: 5.26.5 - resolution: "undici-types@npm:5.26.5" - checksum: 10/0097779d94bc0fd26f0418b3a05472410408877279141ded2bd449167be1aed7ea5b76f756562cb3586a07f251b90799bab22d9019ceba49c037c76445f7cddd - languageName: node - linkType: hard - "undici-types@npm:~6.21.0": version: 6.21.0 resolution: "undici-types@npm:6.21.0" From fd3c654f401c6306f21493bb01302b2c8544733d Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 18 Jun 2025 17:01:12 +0200 Subject: [PATCH 03/27] Refactor typecheck workflow and update test mocks to use local serverRequire module --- .github/workflows/typecheck.yml | 25 ++++++++++++------------- src/util/getStorybookMain.test.ts | 4 ++-- src/util/getTestRunnerConfig.test.ts | 12 ++++-------- 3 files changed, 18 insertions(+), 23 deletions(-) diff --git a/.github/workflows/typecheck.yml b/.github/workflows/typecheck.yml index dbc5cad5..2621704f 100644 --- a/.github/workflows/typecheck.yml +++ b/.github/workflows/typecheck.yml @@ -3,19 +3,18 @@ name: Typecheck on: [push, pull_request] jobs: - typecheck: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 + typecheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 - - name: Use Node.js 20.x - uses: actions/setup-node@v1 - with: - node-version: '20.x' + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version-file: .nvmrc - - name: Install dependencies - uses: bahmutov/npm-install@v1 - - - name: Type check - run: yarn tsc + - name: Install dependencies + uses: bahmutov/npm-install@v1 + - name: Type check + run: yarn tsc diff --git a/src/util/getStorybookMain.test.ts b/src/util/getStorybookMain.test.ts index 0ac9dc8f..e0032f99 100644 --- a/src/util/getStorybookMain.test.ts +++ b/src/util/getStorybookMain.test.ts @@ -1,7 +1,7 @@ import { getStorybookMain, resetStorybookMainCache, storybookMainConfig } from './getStorybookMain'; -import * as coreCommon from 'storybook/internal/common'; +import * as coreCommon from './serverRequire'; -jest.mock('storybook/internal/common'); +jest.mock('./serverRequire'); describe('getStorybookMain', () => { beforeEach(() => { diff --git a/src/util/getTestRunnerConfig.test.ts b/src/util/getTestRunnerConfig.test.ts index 0361d5eb..832415fe 100644 --- a/src/util/getTestRunnerConfig.test.ts +++ b/src/util/getTestRunnerConfig.test.ts @@ -26,7 +26,7 @@ const testRunnerConfig: TestRunnerConfig = { }, }; -jest.mock('storybook/internal/common', () => ({ +jest.mock('./serverRequire', () => ({ serverRequire: jest.fn(), })); @@ -37,23 +37,19 @@ describe('getTestRunnerConfig', () => { it('should load the test runner config', () => { const configDir = '.storybook'; - (require('storybook/internal/common').serverRequire as jest.Mock).mockReturnValueOnce( - testRunnerConfig - ); + (require('./serverRequire').serverRequire as jest.Mock).mockReturnValueOnce(testRunnerConfig); const result = getTestRunnerConfig(configDir); expect(result).toEqual(testRunnerConfig); - expect(require('storybook/internal/common').serverRequire).toHaveBeenCalledWith( + expect(require('./serverRequire').serverRequire).toHaveBeenCalledWith( join(resolve('.storybook', 'test-runner')) ); }); it('should cache the test runner config', () => { const configDir = '.storybook'; - (require('storybook/internal/common').serverRequire as jest.Mock).mockReturnValueOnce( - testRunnerConfig - ); + (require('./serverRequire').serverRequire as jest.Mock).mockReturnValueOnce(testRunnerConfig); const result1 = getTestRunnerConfig(configDir); const result2 = getTestRunnerConfig(configDir); From b6bd5f61bd922562f4f1cf445fd4bbb7130427aa Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 19 Jun 2025 00:12:27 +0200 Subject: [PATCH 04/27] Add error handling to getTestRunnerConfig function --- src/util/getTestRunnerConfig.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/util/getTestRunnerConfig.ts b/src/util/getTestRunnerConfig.ts index feb4b521..1eaf99d0 100644 --- a/src/util/getTestRunnerConfig.ts +++ b/src/util/getTestRunnerConfig.ts @@ -13,7 +13,12 @@ export const getTestRunnerConfig = ( return testRunnerConfig; } - testRunnerConfig = serverRequire(join(resolve(configDir), 'test-runner')); - loaded = true; - return testRunnerConfig; + try { + testRunnerConfig = serverRequire(join(resolve(configDir), 'test-runner')); + loaded = true; + return testRunnerConfig; + } catch (error) { + console.error(error); + return undefined; + } }; From 2094e4baae4e5859b1f6a7c3f0c45e728b9752ea Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 19 Jun 2025 09:33:11 +0200 Subject: [PATCH 05/27] Update tsup configuration to include Storybook dependencies and adjust external modules --- tsup.config.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tsup.config.ts b/tsup.config.ts index bcbf6355..565730de 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -1,16 +1,24 @@ +import { readFileSync } from 'node:fs'; import { defineConfig } from 'tsup'; +const corePkgJson = JSON.parse(readFileSync('./node_modules/storybook/package.json', 'utf8')); + export default defineConfig([ { entry: ['./src/index.ts', './src/test-storybook.ts'], format: ['cjs', 'esm'], splitting: false, + noExternal: ['storybook/internal/common'], dts: true, minify: false, treeshake: false, bundle: true, platform: 'node', - external: ['@storybook/test-runner'], + external: [ + '@storybook/test-runner', + ...Object.keys(corePkgJson.dependencies), + ...Object.keys(corePkgJson.peerDependencies), + ], esbuildOptions(options) { options.platform = 'node'; }, From 7fd5891e6d6190778daa48d82176234e072689b8 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 19 Jun 2025 09:42:43 +0200 Subject: [PATCH 06/27] Add semver dependency to package.json and update yarn.lock --- package.json | 3 ++- yarn.lock | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 91b9bc7b..522fa422 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,8 @@ "jest-serializer-html": "^7.1.0", "jest-watch-typeahead": "^2.0.0", "nyc": "^15.1.0", - "playwright": "^1.14.0" + "playwright": "^1.14.0", + "semver": "^7.6.2" }, "devDependencies": { "@auto-it/released": "^11.1.6", diff --git a/yarn.lock b/yarn.lock index 4fa7d772..ed4e4f4c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2979,6 +2979,7 @@ __metadata: react: "npm:^17.0.1" react-dom: "npm:^17.0.1" read-pkg-up: "npm:^7.0.1" + semver: "npm:^7.6.2" storybook: "npm:next" tempy: "npm:^1.0.1" ts-dedent: "npm:^2.0.0" From f4b51e6047cf56156965b48b89ba06c284b0f615 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 19 Jun 2025 10:27:46 +0200 Subject: [PATCH 07/27] Remove console error logging from getTestRunnerConfig function --- src/util/getTestRunnerConfig.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/util/getTestRunnerConfig.ts b/src/util/getTestRunnerConfig.ts index 1eaf99d0..9fbc95e8 100644 --- a/src/util/getTestRunnerConfig.ts +++ b/src/util/getTestRunnerConfig.ts @@ -18,7 +18,6 @@ export const getTestRunnerConfig = ( loaded = true; return testRunnerConfig; } catch (error) { - console.error(error); return undefined; } }; From 49024ffa58cb9103402edc4c5898008c4a2e0645 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 19 Jun 2025 10:36:41 +0200 Subject: [PATCH 08/27] Enable treeshaking in tsup configuration for optimized builds --- tsup.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsup.config.ts b/tsup.config.ts index 565730de..df38fa47 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -11,7 +11,7 @@ export default defineConfig([ noExternal: ['storybook/internal/common'], dts: true, minify: false, - treeshake: false, + treeshake: true, bundle: true, platform: 'node', external: [ From de6531aad926cd69215e0cd912ef76b30622c095 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 19 Jun 2025 10:56:51 +0200 Subject: [PATCH 09/27] Update tsup configuration to exclude additional Storybook internal modules from external dependencies --- tsup.config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsup.config.ts b/tsup.config.ts index df38fa47..5957d0fa 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -8,7 +8,7 @@ export default defineConfig([ entry: ['./src/index.ts', './src/test-storybook.ts'], format: ['cjs', 'esm'], splitting: false, - noExternal: ['storybook/internal/common'], + noExternal: ['storybook/internal/common', 'storybook/internal/csf-tools'], dts: true, minify: false, treeshake: true, From d23885ca9b0162e16a8df6d76e64ccaea3d975ee Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Tue, 24 Jun 2025 10:19:00 +0200 Subject: [PATCH 10/27] bundle in the whole core of storybook into the test-runner, since everything is becoming ESM-only --- package.json | 4 ++-- tsup.config.ts | 17 ++++++++++++++--- yarn.lock | 4 ++-- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 522fa422..3b8351ee 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "*.d.ts" ], "scripts": { - "build": "tsup", + "build": "NODE_ENV=production NODE_OPTIONS='--max-old-space-size=8192' tsup", "build-storybook": "storybook build", "build:watch": "tsup --watch", "generate-dynamic-stories": "node scripts/generate-dynamic-stories.js", @@ -104,7 +104,7 @@ "react": "^17.0.1", "react-dom": "^17.0.1", "read-pkg-up": "^7.0.1", - "storybook": "next", + "storybook": "^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0", "tempy": "^1.0.1", "ts-dedent": "^2.0.0", "ts-jest": "^29.0.0", diff --git a/tsup.config.ts b/tsup.config.ts index 5957d0fa..63c8c0eb 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -6,9 +6,18 @@ const corePkgJson = JSON.parse(readFileSync('./node_modules/storybook/package.js export default defineConfig([ { entry: ['./src/index.ts', './src/test-storybook.ts'], - format: ['cjs', 'esm'], + format: ['cjs'], splitting: false, - noExternal: ['storybook/internal/common', 'storybook/internal/csf-tools'], + noExternal: [ + 'storybook', + 'storybook/internal/common', + 'storybook/internal/csf-tools', + 'storybook/internal/csf', + 'storybook/internal/node-logger', + 'storybook/internal/preview-api', + 'storybook/internal/telemetry', + 'storybook/internal/types', + ], dts: true, minify: false, treeshake: true, @@ -17,7 +26,8 @@ export default defineConfig([ external: [ '@storybook/test-runner', ...Object.keys(corePkgJson.dependencies), - ...Object.keys(corePkgJson.peerDependencies), + // explicitly exclude the `storybook` package, we want it bundled in, as it's ESM-only + // ...Object.keys(corePkgJson.peerDependencies), ], esbuildOptions(options) { options.platform = 'node'; @@ -28,6 +38,7 @@ export default defineConfig([ format: ['esm'], dts: false, bundle: false, + minify: false, treeshake: false, platform: 'browser', }, diff --git a/yarn.lock b/yarn.lock index ed4e4f4c..7c334344 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2980,7 +2980,7 @@ __metadata: react-dom: "npm:^17.0.1" read-pkg-up: "npm:^7.0.1" semver: "npm:^7.6.2" - storybook: "npm:next" + storybook: "npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0" tempy: "npm:^1.0.1" ts-dedent: "npm:^2.0.0" ts-jest: "npm:^29.0.0" @@ -9051,7 +9051,7 @@ __metadata: languageName: node linkType: hard -"storybook@npm:next": +"storybook@npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0": version: 9.1.0-alpha.6 resolution: "storybook@npm:9.1.0-alpha.6" dependencies: From 2a1e346043c58aa67172c1a4fc71f1560e8b83e2 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Tue, 24 Jun 2025 10:32:30 +0200 Subject: [PATCH 11/27] Update GitHub Actions workflow to set NODE_ENV and increase memory limit for test runs --- .github/workflows/tests.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2e10d26c..65cd20c1 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,6 +23,9 @@ jobs: run: | yarn build yarn test --coverage + env: + NODE_ENV: production + NODE_OPTIONS: --max-old-space-size=8192 - name: Install Playwright Browsers run: npx playwright install --with-deps @@ -31,6 +34,9 @@ jobs: run: | yarn build yarn test-storybook:ci-coverage + env: + NODE_ENV: production + NODE_OPTIONS: --max-old-space-size=8192 - name: Generate code coverage uses: codecov/codecov-action@v3 From 8fcb31b34a5b84a986b6c19e021a7b5b8a0cfd15 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Tue, 24 Jun 2025 10:58:15 +0200 Subject: [PATCH 12/27] Refactor test commands in package.json and update GitHub Actions workflow to streamline test execution and coverage reporting --- .github/workflows/tests.yml | 12 ++++-------- package.json | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 65cd20c1..5f770397 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -19,24 +19,20 @@ jobs: - name: Install dependencies uses: bahmutov/npm-install@v1 - - name: Run unit tests + - name: Build run: | yarn build + + - name: Run unit tests + run: | yarn test --coverage - env: - NODE_ENV: production - NODE_OPTIONS: --max-old-space-size=8192 - name: Install Playwright Browsers run: npx playwright install --with-deps - name: Run test runner run: | - yarn build yarn test-storybook:ci-coverage - env: - NODE_ENV: production - NODE_OPTIONS: --max-old-space-size=8192 - name: Generate code coverage uses: codecov/codecov-action@v3 diff --git a/package.json b/package.json index 3b8351ee..6ebe3ce9 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "release": "yarn build && auto shipit", "start": "concurrently \"yarn build:watch\" \"yarn storybook -- --quiet\"", "storybook": "storybook dev -p 6006", - "test": "jest", + "test": "NODE_ENV=production NODE_OPTIONS='--max-old-space-size=8192' jest --maxWorkers=1", "test-storybook": "node dist/test-storybook", "test-storybook:ci": "concurrently -k -s first -n \"SB,TEST\" -c \"magenta,blue\" \"yarn build-storybook --quiet && npx serve storybook-static -l 6006\" \"wait-on tcp:6006 && yarn test-storybook\"", "test-storybook:ci-coverage": "concurrently -k -s first -n \"SB,TEST\" -c \"magenta,blue\" \"yarn build-storybook --quiet && npx serve storybook-static -l 6006\" \"wait-on tcp:6006 && yarn test-storybook --coverage\"", From 4da85c2eba1b086af255b9cd8de24c2a6bf661be Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Tue, 24 Jun 2025 12:09:14 +0200 Subject: [PATCH 13/27] babel everything --- .babelrc.js | 19 +---- jest.config.js | 3 + package.json | 4 +- src/playwright/transformPlaywright.test.ts | 1 - src/playwright/transformPlaywright.ts | 2 +- src/test-storybook.ts | 2 +- src/util/autoTitle.ts | 98 ++++++++++++++++++++++ src/util/getStorybookMetadata.test.ts | 1 - src/util/getStorybookMetadata.ts | 2 +- src/util/getTestRunnerConfig.ts | 4 +- src/util/serverRequire.ts | 76 +++++++++++++++-- tsup.config.ts | 20 +---- 12 files changed, 182 insertions(+), 50 deletions(-) create mode 100644 src/util/autoTitle.ts diff --git a/.babelrc.js b/.babelrc.js index 25da7069..212815be 100644 --- a/.babelrc.js +++ b/.babelrc.js @@ -1,20 +1,9 @@ module.exports = { - presets: [ - ['@babel/preset-env', { targets: { node: 'current' } }], - '@babel/preset-typescript', - '@babel/preset-react', - ], + presets: [['@babel/preset-env', { targets: { node: 'current' } }], '@babel/preset-typescript'], env: { - esm: { - presets: [ - [ - '@babel/preset-env', - { - modules: false, - targets: { node: 'current' }, - }, - ], - ], + test: { + presets: ['@babel/preset-typescript'], + plugins: ['@babel/plugin-transform-modules-commonjs'], }, }, }; diff --git a/jest.config.js b/jest.config.js index fec48d9a..a6ef4e33 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,5 +1,8 @@ module.exports = { testMatch: ['**/*.test.ts'], + transform: { + '^.+\\.[t|j]sx?$': 'babel-jest', + }, moduleNameMapper: { '@storybook/test-runner/playwright/global-setup': '/playwright/global-setup', '@storybook/test-runner/playwright/global-teardown': '/playwright/global-teardown', diff --git a/package.json b/package.json index 6ebe3ce9..65b8d2bd 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "*.d.ts" ], "scripts": { - "build": "NODE_ENV=production NODE_OPTIONS='--max-old-space-size=8192' tsup", + "build": "tsup", "build-storybook": "storybook build", "build:watch": "tsup --watch", "generate-dynamic-stories": "node scripts/generate-dynamic-stories.js", @@ -37,7 +37,7 @@ "release": "yarn build && auto shipit", "start": "concurrently \"yarn build:watch\" \"yarn storybook -- --quiet\"", "storybook": "storybook dev -p 6006", - "test": "NODE_ENV=production NODE_OPTIONS='--max-old-space-size=8192' jest --maxWorkers=1", + "test": "jest", "test-storybook": "node dist/test-storybook", "test-storybook:ci": "concurrently -k -s first -n \"SB,TEST\" -c \"magenta,blue\" \"yarn build-storybook --quiet && npx serve storybook-static -l 6006\" \"wait-on tcp:6006 && yarn test-storybook\"", "test-storybook:ci-coverage": "concurrently -k -s first -n \"SB,TEST\" -c \"magenta,blue\" \"yarn build-storybook --quiet && npx serve storybook-static -l 6006\" \"wait-on tcp:6006 && yarn test-storybook --coverage\"", diff --git a/src/playwright/transformPlaywright.test.ts b/src/playwright/transformPlaywright.test.ts index 09006641..aad7bbbb 100644 --- a/src/playwright/transformPlaywright.test.ts +++ b/src/playwright/transformPlaywright.test.ts @@ -5,7 +5,6 @@ import * as storybookMain from '../util/getStorybookMain'; import { transformPlaywright } from './transformPlaywright'; jest.mock('storybook/internal/common', () => ({ - ...jest.requireActual('storybook/internal/common'), getProjectRoot: jest.fn(() => '/foo/bar'), normalizeStories: jest.fn(() => [ { diff --git a/src/playwright/transformPlaywright.ts b/src/playwright/transformPlaywright.ts index 818296c3..3597dda5 100644 --- a/src/playwright/transformPlaywright.ts +++ b/src/playwright/transformPlaywright.ts @@ -1,11 +1,11 @@ import { relative } from 'path'; import template from '@babel/template'; -import { userOrAutoTitle } from 'storybook/internal/preview-api'; import dedent from 'ts-dedent'; import { getStorybookMetadata } from '../util'; import { transformCsf } from '../csf/transformCsf'; import type { TestPrefixer } from '../csf/transformCsf'; +import { userOrAutoTitle } from '../util/autoTitle'; const coverageErrorMessage = dedent` [Test runner] An error occurred when evaluating code coverage: diff --git a/src/test-storybook.ts b/src/test-storybook.ts index 8004e530..dff5dfe6 100644 --- a/src/test-storybook.ts +++ b/src/test-storybook.ts @@ -7,7 +7,6 @@ import canBindToHost from 'can-bind-to-host'; import dedent from 'ts-dedent'; import path, { join, resolve } from 'path'; import tempy from 'tempy'; -import { getInterpretedFile } from 'storybook/internal/common'; import { readConfig } from 'storybook/internal/csf-tools'; import { telemetry } from 'storybook/internal/telemetry'; import { glob } from 'glob'; @@ -17,6 +16,7 @@ import { getStorybookMetadata } from './util/getStorybookMetadata'; import { getTestRunnerConfig } from './util/getTestRunnerConfig'; import { transformPlaywrightJson } from './playwright/transformPlaywrightJson'; import { TestRunnerConfig } from './playwright/hooks'; +import { getInterpretedFile } from './util/serverRequire'; // Do this as the first thing so that any code reading it knows the right env. process.env.BABEL_ENV = 'test'; diff --git a/src/util/autoTitle.ts b/src/util/autoTitle.ts new file mode 100644 index 00000000..607ce555 --- /dev/null +++ b/src/util/autoTitle.ts @@ -0,0 +1,98 @@ +import type { NormalizedStoriesSpecifier } from 'storybook/internal/types'; + +import slash from 'slash'; +import { dedent } from 'ts-dedent'; + +// FIXME: types duplicated type from `core-common', to be +// removed when we remove v6 back-compat. + +// deal with files like "atoms/button/{button,index}.stories.js" +const sanitize = (parts: string[]) => { + if (parts.length === 0) { + return parts; + } + + const last = parts[parts.length - 1]; + const lastStripped = last?.replace(/(?:[.](?:story|stories))?([.][^.]+)$/i, ''); + + if (parts.length === 1) { + return [lastStripped]; + } + + const nextToLast = parts[parts.length - 2]; + if (lastStripped && nextToLast && lastStripped.toLowerCase() === nextToLast.toLowerCase()) { + return [...parts.slice(0, -2), lastStripped]; + } + + return lastStripped && + (/^(story|stories)([.][^.]+)$/i.test(last) || /^index$/i.test(lastStripped)) + ? parts.slice(0, -1) + : [...parts.slice(0, -1), lastStripped]; +}; + +/** + * Combines path parts together, without duplicating separators (slashes). Used instead of + * `path.join` because this code runs in the browser. + * + * @param paths Array of paths to join together. + * @returns Joined path string, with single '/' between parts + */ +function pathJoin(paths: string[]): string { + return paths + .flatMap((p) => p.split('/')) + .filter(Boolean) + .join('/'); +} + +export const userOrAutoTitleFromSpecifier = ( + fileName: string | number, + entry: NormalizedStoriesSpecifier, + userTitle?: string +) => { + const { directory, importPathMatcher, titlePrefix = '' } = entry || {}; + // On Windows, backslashes are used in paths, which can cause problems here + // slash makes sure we always handle paths with unix-style forward slash + + if (typeof fileName === 'number') { + console.warn(dedent` + CSF Auto-title received a numeric fileName. This typically happens when + webpack is mis-configured in production mode. To force webpack to produce + filenames, set optimization.moduleIds = "named" in your webpack config. + `); + } + + const normalizedFileName = slash(String(fileName)); + + if (importPathMatcher.exec(normalizedFileName)) { + if (!userTitle) { + const suffix = normalizedFileName.replace(directory, ''); + let parts = pathJoin([titlePrefix, suffix]).split('/'); + parts = sanitize(parts); + return parts.join('/'); + } + + if (!titlePrefix) { + return userTitle; + } + + return pathJoin([titlePrefix, userTitle]); + } + + return undefined; +}; + +export const userOrAutoTitle = ( + fileName: string, + storiesEntries: NormalizedStoriesSpecifier[], + userTitle?: string +) => { + for (let i = 0; i < storiesEntries.length; i += 1) { + const title = userOrAutoTitleFromSpecifier(fileName, storiesEntries[i], userTitle); + + if (title) { + return title; + } + } + + return userTitle || undefined; +}; diff --git a/src/util/getStorybookMetadata.test.ts b/src/util/getStorybookMetadata.test.ts index 1a5c103a..cdc607d3 100644 --- a/src/util/getStorybookMetadata.test.ts +++ b/src/util/getStorybookMetadata.test.ts @@ -4,7 +4,6 @@ import * as storybookMain from './getStorybookMain'; import { getStorybookMetadata } from './getStorybookMetadata'; jest.mock('storybook/internal/common', () => ({ - ...jest.requireActual('storybook/internal/common'), getProjectRoot: jest.fn(() => '/foo/bar'), normalizeStories: jest.fn(() => [ { diff --git a/src/util/getStorybookMetadata.ts b/src/util/getStorybookMetadata.ts index bf496bd8..8b90c2b6 100644 --- a/src/util/getStorybookMetadata.ts +++ b/src/util/getStorybookMetadata.ts @@ -1,6 +1,6 @@ import { join } from 'path'; import { normalizeStories, getProjectRoot } from 'storybook/internal/common'; -import { StoriesEntry } from 'storybook/internal/types'; +import type { StoriesEntry } from 'storybook/internal/types'; import { getStorybookMain } from './getStorybookMain'; diff --git a/src/util/getTestRunnerConfig.ts b/src/util/getTestRunnerConfig.ts index 9fbc95e8..0b782677 100644 --- a/src/util/getTestRunnerConfig.ts +++ b/src/util/getTestRunnerConfig.ts @@ -1,5 +1,5 @@ -import { join, resolve } from 'path'; -import { TestRunnerConfig } from '../playwright/hooks'; +import { join, resolve } from 'node:path'; +import type { TestRunnerConfig } from '../playwright/hooks'; import { serverRequire } from './serverRequire'; let testRunnerConfig: TestRunnerConfig; diff --git a/src/util/serverRequire.ts b/src/util/serverRequire.ts index eff568cf..9e2d9bbe 100644 --- a/src/util/serverRequire.ts +++ b/src/util/serverRequire.ts @@ -1,9 +1,27 @@ -import { serverResolve } from 'storybook/internal/common'; -const { register } = require('esbuild-register/dist/node'); - -register(); +let registered = false; export function serverRequire(path: string) { + const hasEsbuildBeenRegistered = !!require('module')._extensions['.ts']; + + if (registered === false && !hasEsbuildBeenRegistered) { + const { register } = require('esbuild-register/dist/node'); + registered = true; + register({ + target: `node${process.version.slice(1)}`, + format: 'cjs', + hookIgnoreNodeModules: true, + // Some frameworks, like Stylus, rely on the 'name' property of classes or functions + // https://github.com/storybookjs/storybook/issues/19049 + keepNames: true, + tsconfigRaw: `{ + "compilerOptions": { + "strict": false, + "skipLibCheck": true, + }, + }`, + }); + } + const located = serverResolve(path); if (!located) { throw new Error(`Could not find ${path}`); @@ -11,9 +29,53 @@ export function serverRequire(path: string) { const result = require(located); - if (result.default) { - return result.default; + const isES6DefaultExported = + typeof result === 'object' && result !== null && typeof result.default !== 'undefined'; + + return isES6DefaultExported ? result.default : result; +} + +function getCandidate(paths: string[]) { + for (let i = 0; i < paths.length; i += 1) { + const candidate = getInterpretedFileWithExt(paths[i]); + + if (candidate) { + return candidate; + } + } + + return undefined; +} + +export function serverResolve(filePath: string | string[]): string | null { + const paths = Array.isArray(filePath) ? filePath : [filePath]; + const existingCandidate = getCandidate(paths); + + if (!existingCandidate) { + return null; } - return result; + return existingCandidate.path; +} + +import { existsSync } from 'node:fs'; + +export const boost = new Set(['.js', '.jsx', '.ts', '.tsx', '.cts', '.mts', '.cjs', '.mjs']); + +function sortExtensions() { + return [...Array.from(boost)]; +} + +const possibleExtensions = sortExtensions(); + +export function getInterpretedFile(pathToFile: string) { + return possibleExtensions + .map((ext) => (pathToFile.endsWith(ext) ? pathToFile : `${pathToFile}${ext}`)) + .find((candidate) => existsSync(candidate)); +} + +export function getInterpretedFileWithExt(pathToFile: string) { + return possibleExtensions + .map((ext) => ({ path: pathToFile.endsWith(ext) ? pathToFile : `${pathToFile}${ext}`, ext })) + .find((candidate) => existsSync(candidate.path)); } diff --git a/tsup.config.ts b/tsup.config.ts index 63c8c0eb..9891e16e 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -1,34 +1,16 @@ -import { readFileSync } from 'node:fs'; import { defineConfig } from 'tsup'; -const corePkgJson = JSON.parse(readFileSync('./node_modules/storybook/package.json', 'utf8')); - export default defineConfig([ { entry: ['./src/index.ts', './src/test-storybook.ts'], format: ['cjs'], splitting: false, - noExternal: [ - 'storybook', - 'storybook/internal/common', - 'storybook/internal/csf-tools', - 'storybook/internal/csf', - 'storybook/internal/node-logger', - 'storybook/internal/preview-api', - 'storybook/internal/telemetry', - 'storybook/internal/types', - ], dts: true, minify: false, treeshake: true, bundle: true, platform: 'node', - external: [ - '@storybook/test-runner', - ...Object.keys(corePkgJson.dependencies), - // explicitly exclude the `storybook` package, we want it bundled in, as it's ESM-only - // ...Object.keys(corePkgJson.peerDependencies), - ], + external: ['@storybook/test-runner'], esbuildOptions(options) { options.platform = 'node'; }, From 9afc71cff8b3befc03acf0d63875960248b233d8 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Tue, 24 Jun 2025 12:29:20 +0200 Subject: [PATCH 14/27] Update package.json to include multiple authors for better collaboration --- package.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 65b8d2bd..6684e2e7 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,11 @@ "url": "https://github.com/storybookjs/test-runner" }, "license": "MIT", - "author": "shilman", + "author": [ + "shilman", + "ndelangen", + "yannbf" + ], "main": "dist/index.js", "module": "dist/index.mjs", "types": "dist/index.d.ts", From 6552af95a4502a8de42d7131eafa781619e14419 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Tue, 24 Jun 2025 13:13:57 +0200 Subject: [PATCH 15/27] Update dependencies in package.json and yarn.lock, including the addition of playwright-core and @babel/plugin-transform-modules-commonjs, and upgrade several Babel packages to their latest versions for improved compatibility and performance. --- package.json | 3 +- yarn.lock | 165 +++++++++++++++++++++++++-------------------------- 2 files changed, 84 insertions(+), 84 deletions(-) diff --git a/package.json b/package.json index 6684e2e7..e1cdecda 100644 --- a/package.json +++ b/package.json @@ -75,11 +75,12 @@ "jest-watch-typeahead": "^2.0.0", "nyc": "^15.1.0", "playwright": "^1.14.0", - "semver": "^7.6.2" + "playwright-core": "^1.14.0" }, "devDependencies": { "@auto-it/released": "^11.1.6", "@babel/cli": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", "@babel/preset-env": "^7.19.4", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", diff --git a/yarn.lock b/yarn.lock index 7c334344..ca63b092 100644 --- a/yarn.lock +++ b/yarn.lock @@ -168,14 +168,14 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0": - version: 7.26.2 - resolution: "@babel/code-frame@npm:7.26.2" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.26.0, @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.25.9" + "@babel/helper-validator-identifier": "npm:^7.27.1" js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10/db2c2122af79d31ca916755331bb4bac96feb2b334cdaca5097a6b467fdd41963b89b14b6836a14f083de7ff887fc78fa1b3c10b14e743d33e12dbfe5ee3d223 + picocolors: "npm:^1.1.1" + checksum: 10/721b8a6e360a1fa0f1c9fe7351ae6c874828e119183688b533c477aa378f1010f37cc9afbfc4722c686d1f5cdd00da02eab4ba7278a0c504fa0d7a321dcd4fdf languageName: node linkType: hard @@ -209,16 +209,16 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.22.5, @babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0, @babel/generator@npm:^7.7.2": - version: 7.26.2 - resolution: "@babel/generator@npm:7.26.2" +"@babel/generator@npm:^7.22.5, @babel/generator@npm:^7.26.0, @babel/generator@npm:^7.27.3, @babel/generator@npm:^7.7.2": + version: 7.27.5 + resolution: "@babel/generator@npm:7.27.5" dependencies: - "@babel/parser": "npm:^7.26.2" - "@babel/types": "npm:^7.26.0" + "@babel/parser": "npm:^7.27.5" + "@babel/types": "npm:^7.27.3" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^3.0.2" - checksum: 10/71ace82b5b07a554846a003624bfab93275ccf73cdb9f1a37a4c1094bf9dc94bb677c67e8b8c939dbd6c5f0eda2e8f268aa2b0d9c3b9511072565660e717e045 + checksum: 10/f5e6942670cb32156b3ac2d75ce09b373558823387f15dd1413c27fe9eb5756a7c6011fc7f956c7acc53efb530bfb28afffa24364d46c4e9ffccc4e5c8b3b094 languageName: node linkType: hard @@ -334,26 +334,26 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-module-imports@npm:7.25.9" +"@babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-imports@npm:7.27.1" dependencies: - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10/e090be5dee94dda6cd769972231b21ddfae988acd76b703a480ac0c96f3334557d70a965bf41245d6ee43891e7571a8b400ccf2b2be5803351375d0f4e5bcf08 + "@babel/traverse": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10/58e792ea5d4ae71676e0d03d9fef33e886a09602addc3bd01388a98d87df9fcfd192968feb40ac4aedb7e287ec3d0c17b33e3ecefe002592041a91d8a1998a8d languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.23.3, @babel/helper-module-transforms@npm:^7.25.9, @babel/helper-module-transforms@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/helper-module-transforms@npm:7.26.0" +"@babel/helper-module-transforms@npm:^7.23.3, @babel/helper-module-transforms@npm:^7.26.0, @babel/helper-module-transforms@npm:^7.27.1": + version: 7.27.3 + resolution: "@babel/helper-module-transforms@npm:7.27.3" dependencies: - "@babel/helper-module-imports": "npm:^7.25.9" - "@babel/helper-validator-identifier": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" + "@babel/helper-module-imports": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.3" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10/9841d2a62f61ad52b66a72d08264f23052d533afc4ce07aec2a6202adac0bfe43014c312f94feacb3291f4c5aafe681955610041ece2c276271adce3f570f2f5 + checksum: 10/47abc90ceb181b4bdea9bf1717adf536d1b5e5acb6f6d8a7a4524080318b5ca8a99e6d58677268c596bad71077d1d98834d2c3815f2443e6d3f287962300f15d languageName: node linkType: hard @@ -366,10 +366,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.25.9 - resolution: "@babel/helper-plugin-utils@npm:7.25.9" - checksum: 10/e347d87728b1ab10b6976d46403941c8f9008c045ea6d99997a7ffca7b852dc34b6171380f7b17edf94410e0857ff26f3a53d8618f11d73744db86e8ca9b8c64 +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.25.9, @babel/helper-plugin-utils@npm:^7.27.1, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": + version: 7.27.1 + resolution: "@babel/helper-plugin-utils@npm:7.27.1" + checksum: 10/96136c2428888e620e2ec493c25888f9ceb4a21099dcf3dd4508ea64b58cdedbd5a9fb6c7b352546de84d6c24edafe482318646932a22c449ebd16d16c22d864 languageName: node linkType: hard @@ -399,16 +399,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-simple-access@npm:7.25.9" - dependencies: - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10/a16a6cfa5e8ac7144e856bcdaaf0022cf5de028fc0c56ce21dd664a6e900999a4285c587a209f2acf9de438c0d60bfb497f5f34aa34cbaf29da3e2f8d8d7feb7 - languageName: node - linkType: hard - "@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5, @babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" @@ -428,17 +418,17 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-string-parser@npm:7.25.9" - checksum: 10/c28656c52bd48e8c1d9f3e8e68ecafd09d949c57755b0d353739eb4eae7ba4f7e67e92e4036f1cd43378cc1397a2c943ed7bcaf5949b04ab48607def0258b775 +"@babel/helper-string-parser@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-string-parser@npm:7.27.1" + checksum: 10/0ae29cc2005084abdae2966afdb86ed14d41c9c37db02c3693d5022fba9f5d59b011d039380b8e537c34daf117c549f52b452398f576e908fb9db3c7abbb3a00 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.20, @babel/helper-validator-identifier@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-validator-identifier@npm:7.25.9" - checksum: 10/3f9b649be0c2fd457fa1957b694b4e69532a668866b8a0d81eabfa34ba16dbf3107b39e0e7144c55c3c652bf773ec816af8df4a61273a2bb4eb3145ca9cf478e +"@babel/helper-validator-identifier@npm:^7.22.20, @babel/helper-validator-identifier@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-identifier@npm:7.27.1" + checksum: 10/75041904d21bdc0cd3b07a8ac90b11d64cd3c881e89cb936fa80edd734bf23c35e6bd1312611e8574c4eab1f3af0f63e8a5894f4699e9cfdf70c06fcf4252320 languageName: node linkType: hard @@ -470,14 +460,14 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2": - version: 7.26.2 - resolution: "@babel/parser@npm:7.26.2" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.27.4, @babel/parser@npm:^7.27.5": + version: 7.27.5 + resolution: "@babel/parser@npm:7.27.5" dependencies: - "@babel/types": "npm:^7.26.0" + "@babel/types": "npm:^7.27.3" bin: parser: ./bin/babel-parser.js - checksum: 10/8baee43752a3678ad9f9e360ec845065eeee806f1fdc8e0f348a8a0e13eef0959dabed4a197c978896c493ea205c804d0a1187cc52e4a1ba017c7935bab4983d + checksum: 10/0ad671be7994dba7d31ec771bd70ea5090aa34faf73e93b1b072e3c0a704ab69f4a7a68ebfb9d6a7fa455e0aa03dfa65619c4df6bae1cf327cba925b1d233fc4 languageName: node linkType: hard @@ -1026,16 +1016,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.23.3, @babel/plugin-transform-modules-commonjs@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.9" +"@babel/plugin-transform-modules-commonjs@npm:^7.22.5, @babel/plugin-transform-modules-commonjs@npm:^7.23.3, @babel/plugin-transform-modules-commonjs@npm:^7.25.9": + version: 7.27.1 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.27.1" dependencies: - "@babel/helper-module-transforms": "npm:^7.25.9" - "@babel/helper-plugin-utils": "npm:^7.25.9" - "@babel/helper-simple-access": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/a7390ca999373ccdef91075f274d1ace3a5cb79f9b9118ed6f76e94867ed454cf798a6f312ce2c4cdc1e035a25d810d754e4cb2e4d866acb4219490f3585de60 + checksum: 10/9059243a977bc1f13e3dccfc6feb6508890e7c7bb191f7eb56626b20672b4b12338051ca835ab55426875a473181502c8f35b4df58ba251bef63b25866d995fe languageName: node linkType: hard @@ -1567,39 +1556,39 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5, @babel/template@npm:^7.25.9, @babel/template@npm:^7.3.3": - version: 7.25.9 - resolution: "@babel/template@npm:7.25.9" +"@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5, @babel/template@npm:^7.25.9, @babel/template@npm:^7.27.2, @babel/template@npm:^7.3.3": + version: 7.27.2 + resolution: "@babel/template@npm:7.27.2" dependencies: - "@babel/code-frame": "npm:^7.25.9" - "@babel/parser": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10/e861180881507210150c1335ad94aff80fd9e9be6202e1efa752059c93224e2d5310186ddcdd4c0f0b0fc658ce48cb47823f15142b5c00c8456dde54f5de80b2 + "@babel/code-frame": "npm:^7.27.1" + "@babel/parser": "npm:^7.27.2" + "@babel/types": "npm:^7.27.1" + checksum: 10/fed15a84beb0b9340e5f81566600dbee5eccd92e4b9cc42a944359b1aa1082373391d9d5fc3656981dff27233ec935d0bc96453cf507f60a4b079463999244d8 languageName: node linkType: hard -"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/traverse@npm:7.25.9" +"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.3": + version: 7.27.4 + resolution: "@babel/traverse@npm:7.27.4" dependencies: - "@babel/code-frame": "npm:^7.25.9" - "@babel/generator": "npm:^7.25.9" - "@babel/parser": "npm:^7.25.9" - "@babel/template": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" + "@babel/code-frame": "npm:^7.27.1" + "@babel/generator": "npm:^7.27.3" + "@babel/parser": "npm:^7.27.4" + "@babel/template": "npm:^7.27.2" + "@babel/types": "npm:^7.27.3" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10/7431614d76d4a053e429208db82f2846a415833f3d9eb2e11ef72eeb3c64dfd71f4a4d983de1a4a047b36165a1f5a64de8ca2a417534cc472005c740ffcb9c6a + checksum: 10/4debb80b9068a46e188e478272f3b6820e16d17e2651e82d0a0457176b0c3b2489994f0a0d6e8941ee90218b0a8a69fe52ba350c1aa66eb4c72570d6b2405f91 languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": - version: 7.26.0 - resolution: "@babel/types@npm:7.26.0" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": + version: 7.27.6 + resolution: "@babel/types@npm:7.27.6" dependencies: - "@babel/helper-string-parser": "npm:^7.25.9" - "@babel/helper-validator-identifier": "npm:^7.25.9" - checksum: 10/40780741ecec886ed9edae234b5eb4976968cc70d72b4e5a40d55f83ff2cc457de20f9b0f4fe9d858350e43dab0ea496e7ef62e2b2f08df699481a76df02cd6e + "@babel/helper-string-parser": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + checksum: 10/174741c667775680628a09117828bbeffb35ea543f59bf80649d0d60672f7815a0740ddece3cca87516199033a039166a6936434131fce2b6a820227e64f91ae languageName: node linkType: hard @@ -2933,6 +2922,7 @@ __metadata: "@babel/cli": "npm:^7.12.1" "@babel/core": "npm:^7.22.5" "@babel/generator": "npm:^7.22.5" + "@babel/plugin-transform-modules-commonjs": "npm:^7.22.5" "@babel/preset-env": "npm:^7.19.4" "@babel/preset-react": "npm:^7.18.6" "@babel/preset-typescript": "npm:^7.18.6" @@ -2975,11 +2965,11 @@ __metadata: nyc: "npm:^15.1.0" pkg-up: "npm:^5.0.0" playwright: "npm:^1.14.0" + playwright-core: "npm:^1.14.0" prettier: "npm:^2.8.1" react: "npm:^17.0.1" react-dom: "npm:^17.0.1" read-pkg-up: "npm:^7.0.1" - semver: "npm:^7.6.2" storybook: "npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0" tempy: "npm:^1.0.1" ts-dedent: "npm:^2.0.0" @@ -8025,7 +8015,7 @@ __metadata: languageName: node linkType: hard -"playwright-core@npm:1.50.1, playwright-core@npm:>=1.2.0": +"playwright-core@npm:1.50.1": version: 1.50.1 resolution: "playwright-core@npm:1.50.1" bin: @@ -8034,6 +8024,15 @@ __metadata: languageName: node linkType: hard +"playwright-core@npm:>=1.2.0, playwright-core@npm:^1.14.0": + version: 1.53.1 + resolution: "playwright-core@npm:1.53.1" + bin: + playwright-core: cli.js + checksum: 10/d0ea8674c3abb76069255ca81bc0dfdef3f9548207f1404eec036bb8724135710f25ee791bfd7c043d5b9c2ccfa42288b0308d61dc5efc60a13b18811a15c4cd + languageName: node + linkType: hard + "playwright@npm:^1.14.0": version: 1.50.1 resolution: "playwright@npm:1.50.1" From d9d46ef31afbeef81d3c613fafd48a92f9e52b20 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Tue, 24 Jun 2025 19:44:27 +0200 Subject: [PATCH 16/27] Enhance project structure by refactoring internal imports, adding new utility functions for story normalization, and updating Jest configuration for improved compatibility with Playwright. This includes the introduction of a project root utility and normalization logic for story entries, alongside various type imports for better type safety. --- jest.config.js | 1 + package.json | 71 +- src/config/jest-playwright.ts | 5 +- src/csf/transformCsf.test.ts | 10 +- src/csf/transformCsf.ts | 12 +- src/playwright/transformPlaywright.test.ts | 5 +- src/setup-page-script.ts | 4 +- src/util/getStorybookMetadata.test.ts | 4 +- src/util/getStorybookMetadata.ts | 3 +- src/util/getTestRunnerConfig.test.ts | 15 +- src/util/normalizeStories.ts | 143 ++ src/util/projectRoot.ts | 107 ++ src/util/serverRequire.ts | 10 +- tsup.config.ts | 36 +- yarn.lock | 1637 ++++++++++++++++++-- 15 files changed, 1893 insertions(+), 170 deletions(-) create mode 100644 src/util/normalizeStories.ts create mode 100644 src/util/projectRoot.ts diff --git a/jest.config.js b/jest.config.js index a6ef4e33..00fcbaf7 100644 --- a/jest.config.js +++ b/jest.config.js @@ -3,6 +3,7 @@ module.exports = { transform: { '^.+\\.[t|j]sx?$': 'babel-jest', }, + transformIgnorePatterns: ['node_modules/(?!(storybook-src)/)'], moduleNameMapper: { '@storybook/test-runner/playwright/global-setup': '/playwright/global-setup', '@storybook/test-runner/playwright/global-teardown': '/playwright/global-teardown', diff --git a/package.json b/package.json index e1cdecda..14512c2c 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "*.d.ts" ], "scripts": { - "build": "tsup", + "build": "NODE_ENV=production NODE_OPTIONS='--max-old-space-size=8192' tsup", "build-storybook": "storybook build", "build:watch": "tsup --watch", "generate-dynamic-stories": "node scripts/generate-dynamic-stories.js", @@ -55,9 +55,16 @@ "*.{ts,js,tsx,jsx,css,md}": "prettier --write" }, "dependencies": { + "@babel/cli": "^7.12.1", "@babel/core": "^7.22.5", "@babel/generator": "^7.22.5", + "@babel/parser": "^7.26.9", + "@babel/plugin-transform-modules-commonjs": "^7.22.5", + "@babel/preset-env": "^7.19.4", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", "@babel/template": "^7.22.5", + "@babel/traverse": "^7.26.9", "@babel/types": "^7.22.5", "@jest/types": "^29.6.3", "@swc/core": "^1.5.22", @@ -75,48 +82,102 @@ "jest-watch-typeahead": "^2.0.0", "nyc": "^15.1.0", "playwright": "^1.14.0", - "playwright-core": "^1.14.0" + "playwright-core": "^1.14.0", + "semver": "^7.6.2" }, "devDependencies": { "@auto-it/released": "^11.1.6", + "@aw-web-design/x-default-browser": "1.4.126", "@babel/cli": "^7.12.1", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", "@babel/preset-env": "^7.19.4", "@babel/preset-react": "^7.18.6", "@babel/preset-typescript": "^7.18.6", "@storybook/addon-a11y": "next", "@storybook/addon-coverage": "^1.0.0", "@storybook/addon-docs": "next", + "@storybook/docs-mdx": "4.0.0-next.1", + "@storybook/icons": "^1.4.0", "@storybook/react-vite": "next", + "@testing-library/dom": "10.4.0", + "@testing-library/react": "^14.0.0", + "@types/cross-spawn": "^6.0.6", + "@types/detect-port": "^1.3.0", + "@types/diff": "^5.0.9", + "@types/ejs": "^3.1.1", + "@types/find-cache-dir": "^5.0.0", "@types/jest": "^29.0.0", - "@types/node": "^20.0.0", + "@types/js-yaml": "^4.0.5", + "@types/node": "^16.4.1", "@types/node-fetch": "^2.6.11", + "@types/npmlog": "^7.0.0", + "@types/picomatch": "^2.3.0", + "@types/prettier": "^3.0.0", + "@types/pretty-hrtime": "^1.0.0", + "@types/semver": "^7.5.8", "@vitejs/plugin-react": "^4.0.3", + "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", + "@yarnpkg/fslib": "2.10.3", + "@yarnpkg/libzip": "2.3.0", "auto": "^11.1.6", "babel-jest": "^29.0.0", "babel-loader": "^8.1.0", "babel-plugin-istanbul": "^6.1.1", + "browser-dtector": "^3.4.0", + "bundle-require": "^5.1.0", + "camelcase": "^8.0.0", "can-bind-to-host": "^1.1.1", + "chai": "^5.1.1", "commander": "^9.0.0", + "comment-parser": "^1.4.1", "concurrently": "^7.0.0", + "cross-spawn": "^7.0.6", + "diff": "^5.2.0", + "es-toolkit": "^1.36.0", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0", + "find-up": "^5.0.0", "glob": "^10.2.2", + "globby": "^14.0.1", "husky": "^8.0.0", "jest-image-snapshot": "^6.2.0", + "js-yaml": "^4.1.0", + "leven": "^4.0.0", "lint-staged": "^13.0.3", + "mlly": "^1.7.4", + "nanoid": "^4.0.2", "node-fetch": "^2", + "npmlog": "^7.0.0", + "open": "^8.4.0", + "p-limit": "^6.2.0", + "package-manager-detector": "^1.1.0", + "picocolors": "^1.1.0", + "picomatch": "^2.3.0", + "picoquery": "^1.4.0", "pkg-up": "^5.0.0", "prettier": "^2.8.1", + "pretty-hrtime": "^1.0.3", "react": "^17.0.1", "react-dom": "^17.0.1", "read-pkg-up": "^7.0.1", + "sirv": "^2.0.4", + "slash": "^3.0.0", "storybook": "^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0", + "storybook-src": "git+https://github.com/storybookjs/storybook.git#jeppe/migrate-core-esm-only-4", + "strip-ansi": "^7.1.0", + "strip-json-comments": "^5.0.1", + "telejson": "8.0.0", "tempy": "^1.0.1", + "tiny-invariant": "^1.3.1", + "tinyspy": "^3.0.2", "ts-dedent": "^2.0.0", "ts-jest": "^29.0.0", + "tsconfig-paths": "^4.2.0", "tsup": "^6.5.0", + "type-fest": "^4.18.1", "typescript": "~4.9.4", + "unique-string": "^3.0.0", "vite": "^6.3.2", - "wait-on": "^7.2.0" + "wait-on": "^7.2.0", + "watchpack": "^2.2.0" }, "peerDependencies": { "storybook": "^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0" diff --git a/src/config/jest-playwright.ts b/src/config/jest-playwright.ts index 4fab6d3f..afb99856 100644 --- a/src/config/jest-playwright.ts +++ b/src/config/jest-playwright.ts @@ -1,7 +1,8 @@ -import path from 'path'; -import { getProjectRoot } from 'storybook/internal/common'; +import path from 'node:path'; import type { Config } from '@jest/types'; +import { getProjectRoot } from '../util/projectRoot'; + const getTestRunnerPath = () => process.env.STORYBOOK_TEST_RUNNER_PATH ?? '@storybook/test-runner'; /** diff --git a/src/csf/transformCsf.test.ts b/src/csf/transformCsf.test.ts index f48379d3..ac86f244 100644 --- a/src/csf/transformCsf.test.ts +++ b/src/csf/transformCsf.test.ts @@ -1,7 +1,15 @@ -import { TestPrefixer, TransformOptions, transformCsf } from './transformCsf'; +import { type TestPrefixer, type TransformOptions, transformCsf } from './transformCsf'; import { testPrefixer } from '../playwright/transformPlaywright'; import template from '@babel/template'; +jest.mock('storybook/internal/common', () => ({})); +jest.mock('esbuild-register/dist/node', () => ({ + register: jest.fn(), +})); +jest.mock('../util/serverRequire', () => ({ + serverRequire: jest.fn(), +})); + describe('transformCsf', () => { it('inserts a no-op test if there are no stories', () => { const csfCode = ` diff --git a/src/csf/transformCsf.ts b/src/csf/transformCsf.ts index c004a16e..3879179d 100644 --- a/src/csf/transformCsf.ts +++ b/src/csf/transformCsf.ts @@ -1,9 +1,8 @@ /* eslint-disable no-underscore-dangle */ import { toId, storyNameFromExport, combineTags } from 'storybook/internal/csf'; -import { loadCsf } from 'storybook/internal/csf-tools'; -import * as t from '@babel/types'; -import generate from '@babel/generator'; -import dedent from 'ts-dedent'; +import { CsfFile, loadCsf } from 'storybook/internal/csf-tools'; +import { generate, types as t } from 'storybook/internal/babel'; +import { dedent } from 'ts-dedent'; import { getTagOptions } from '../util/getTagOptions'; @@ -113,7 +112,10 @@ export const transformCsf = ( ) => { const { includeTags, excludeTags, skipTags } = getTagOptions(); - const csf = loadCsf(code, { makeTitle: makeTitle ?? ((userTitle: string) => userTitle) }); + const csf: CsfFile = loadCsf(code, { + fileName: 'test.js', + makeTitle: makeTitle ?? ((userTitle: string) => userTitle), + }); csf.parse(); const storyExports = Object.keys(csf._stories); diff --git a/src/playwright/transformPlaywright.test.ts b/src/playwright/transformPlaywright.test.ts index aad7bbbb..3a10e0ee 100644 --- a/src/playwright/transformPlaywright.test.ts +++ b/src/playwright/transformPlaywright.test.ts @@ -4,8 +4,11 @@ import * as storybookMain from '../util/getStorybookMain'; import { transformPlaywright } from './transformPlaywright'; -jest.mock('storybook/internal/common', () => ({ +jest.mock('../util/projectRoot', () => ({ getProjectRoot: jest.fn(() => '/foo/bar'), +})); + +jest.mock('../util/normalizeStories', () => ({ normalizeStories: jest.fn(() => [ { titlePrefix: 'Example', diff --git a/src/setup-page-script.ts b/src/setup-page-script.ts index b81e8563..9abd9c6b 100644 --- a/src/setup-page-script.ts +++ b/src/setup-page-script.ts @@ -4,8 +4,8 @@ * This file is a template to the content which is injected to the Playwright page via the ./setup-page.ts file. * setup-page.ts will read the contents of this file and replace values that use {{x}} pattern, and they should be put right below: */ -import { PreviewWeb } from 'storybook/internal/preview-api'; -import { StoryContext } from 'storybook/internal/csf'; +import type { PreviewWeb } from 'storybook/internal/preview-api'; +import type { StoryContext } from 'storybook/internal/csf'; type ConsoleMethod = | 'log' diff --git a/src/util/getStorybookMetadata.test.ts b/src/util/getStorybookMetadata.test.ts index cdc607d3..c7614f5f 100644 --- a/src/util/getStorybookMetadata.test.ts +++ b/src/util/getStorybookMetadata.test.ts @@ -3,8 +3,10 @@ import { StorybookConfig } from 'storybook/internal/types'; import * as storybookMain from './getStorybookMain'; import { getStorybookMetadata } from './getStorybookMetadata'; -jest.mock('storybook/internal/common', () => ({ +jest.mock('./projectRoot', () => ({ getProjectRoot: jest.fn(() => '/foo/bar'), +})); +jest.mock('./normalizeStories', () => ({ normalizeStories: jest.fn(() => [ { titlePrefix: 'Example', diff --git a/src/util/getStorybookMetadata.ts b/src/util/getStorybookMetadata.ts index 8b90c2b6..9decfa00 100644 --- a/src/util/getStorybookMetadata.ts +++ b/src/util/getStorybookMetadata.ts @@ -1,8 +1,9 @@ import { join } from 'path'; -import { normalizeStories, getProjectRoot } from 'storybook/internal/common'; import type { StoriesEntry } from 'storybook/internal/types'; import { getStorybookMain } from './getStorybookMain'; +import { getProjectRoot } from './projectRoot'; +import { normalizeStories } from './normalizeStories'; export const getStorybookMetadata = () => { const workingDir = getProjectRoot(); diff --git a/src/util/getTestRunnerConfig.test.ts b/src/util/getTestRunnerConfig.test.ts index 832415fe..c66c9c3d 100644 --- a/src/util/getTestRunnerConfig.test.ts +++ b/src/util/getTestRunnerConfig.test.ts @@ -2,6 +2,8 @@ import { TestRunnerConfig } from '../playwright/hooks'; import { getTestRunnerConfig } from './getTestRunnerConfig'; import { join, resolve } from 'path'; +import { serverRequire } from './serverRequire'; + const testRunnerConfig: TestRunnerConfig = { setup: () => { console.log('Running setup'); @@ -27,29 +29,30 @@ const testRunnerConfig: TestRunnerConfig = { }; jest.mock('./serverRequire', () => ({ - serverRequire: jest.fn(), + serverRequire: jest.fn(() => {}), })); describe('getTestRunnerConfig', () => { beforeEach(() => { jest.clearAllMocks(); }); + afterAll(() => { + jest.restoreAllMocks(); + }); it('should load the test runner config', () => { const configDir = '.storybook'; - (require('./serverRequire').serverRequire as jest.Mock).mockReturnValueOnce(testRunnerConfig); + (serverRequire as jest.Mock).mockReturnValueOnce(testRunnerConfig); const result = getTestRunnerConfig(configDir); expect(result).toEqual(testRunnerConfig); - expect(require('./serverRequire').serverRequire).toHaveBeenCalledWith( - join(resolve('.storybook', 'test-runner')) - ); + expect(serverRequire).toHaveBeenCalledWith(join(resolve('.storybook', 'test-runner'))); }); it('should cache the test runner config', () => { const configDir = '.storybook'; - (require('./serverRequire').serverRequire as jest.Mock).mockReturnValueOnce(testRunnerConfig); + (serverRequire as jest.Mock).mockReturnValueOnce(testRunnerConfig); const result1 = getTestRunnerConfig(configDir); const result2 = getTestRunnerConfig(configDir); diff --git a/src/util/normalizeStories.ts b/src/util/normalizeStories.ts new file mode 100644 index 00000000..55390ea7 --- /dev/null +++ b/src/util/normalizeStories.ts @@ -0,0 +1,143 @@ +import type { NormalizedStoriesSpecifier, StoriesEntry } from 'storybook/internal/types'; +import * as pico from 'picomatch'; +import { basename, dirname, relative, resolve, sep } from 'node:path'; + +import slash from 'slash'; +import { lstatSync } from 'node:fs'; + +const DEFAULT_TITLE_PREFIX = ''; +export const DEFAULT_FILES_PATTERN = '**/*.@(mdx|stories.@(js|jsx|mjs|ts|tsx))'; + +interface NormalizeOptions { + configDir: string; + workingDir: string; + defaultFilesPattern?: string; +} + +const isDirectory = (configDir: string, entry: string) => { + try { + return lstatSync(resolve(configDir, entry)).isDirectory(); + } catch (err) { + return false; + } +}; + +export const normalizeStoriesEntry = ( + entry: StoriesEntry, + { configDir, workingDir, defaultFilesPattern = DEFAULT_FILES_PATTERN }: NormalizeOptions +): NormalizedStoriesSpecifier => { + let specifierWithoutMatcher: Omit; + + if (typeof entry === 'string') { + const globResult = pico.scan(entry); + if (globResult.isGlob) { + const directory = globResult.prefix + globResult.base; + const files = globResult.glob; + + specifierWithoutMatcher = { + titlePrefix: DEFAULT_TITLE_PREFIX, + directory, + files, + }; + } else if (isDirectory(configDir, entry)) { + specifierWithoutMatcher = { + titlePrefix: DEFAULT_TITLE_PREFIX, + directory: entry, + files: defaultFilesPattern, + }; + } else { + specifierWithoutMatcher = { + titlePrefix: DEFAULT_TITLE_PREFIX, + directory: dirname(entry), + files: basename(entry), + }; + } + } else { + specifierWithoutMatcher = { + titlePrefix: DEFAULT_TITLE_PREFIX, + files: defaultFilesPattern, + ...entry, + }; + } + + // We are going to be doing everything with node importPaths which use + // URL format, i.e. `/` as a separator, so let's make sure we've normalized + const files = slash(specifierWithoutMatcher.files); + + // At this stage `directory` is relative to `main.js` (the config dir) + // We want to work relative to the working dir, so we transform it here. + const { directory: directoryRelativeToConfig } = specifierWithoutMatcher; + + const directory = slash( + getDirectoryFromWorkingDir({ + configDir, + workingDir, + directory: directoryRelativeToConfig, + }) + ).replace(/\/$/, ''); + + // Now make the importFn matcher. + const importPathMatcher = globToRegexp(`${directory}/${files}`); + + return { + ...specifierWithoutMatcher, + directory, + importPathMatcher, + }; +}; + +export const normalizeStories = (entries: StoriesEntry[], options: NormalizeOptions) => { + if (!entries || (Array.isArray(entries) && entries.length === 0)) { + throw new Error('InvalidStoriesEntryError'); + } + + return entries.map((entry) => normalizeStoriesEntry(entry, options)); +}; + +export const getDirectoryFromWorkingDir = ({ + configDir, + workingDir, + directory, +}: NormalizeOptions & { directory: string }) => { + const directoryFromConfig = resolve(configDir, directory); + const directoryFromWorking = relative(workingDir, directoryFromConfig); + + // relative('/foo', '/foo/src') => 'src' + // but we want `./src` to match importPaths + return normalizeStoryPath(directoryFromWorking); +}; + +export function globToRegexp(glob: string) { + const regex = pico.makeRe(glob, { + fastpaths: false, + noglobstar: false, + bash: false, + }); + + if (!regex.source.startsWith('^')) { + throw new Error(`Invalid glob: >> ${glob} >> ${regex}`); + } + + if (!glob.startsWith('./')) { + return regex; + } + + // makeRe is sort of funny. If you pass it a directory starting with `./` it + // creates a matcher that expects files with no prefix (e.g. `src/file.js`) + // but if you pass it a directory that starts with `../` it expects files that + // start with `../`. Let's make it consistent. + // Globs starting `**` require special treatment due to the regex they + // produce, specifically a negative look-ahead + return new RegExp( + ['^\\.', glob.startsWith('./**') ? '' : '[\\\\/]', regex.source.substring(1)].join('') + ); +} + +const relativePattern = /^\.{1,2}([/\\]|$)/; +export function normalizeStoryPath(filename: string) { + if (relativePattern.test(filename)) { + return filename; + } + + return `.${sep}${filename}`; +} diff --git a/src/util/projectRoot.ts b/src/util/projectRoot.ts new file mode 100644 index 00000000..26db439c --- /dev/null +++ b/src/util/projectRoot.ts @@ -0,0 +1,107 @@ +import { join, relative, resolve, sep } from 'node:path'; + +import { sync as findUpSync } from 'find-up'; + +export const NPM_LOCKFILE = 'package-lock.json'; +export const PNPM_LOCKFILE = 'pnpm-lock.yaml'; +export const YARN_LOCKFILE = 'yarn.lock'; +export const BUN_LOCKFILE = 'bun.lock'; +export const BUN_LOCKFILE_BINARY = 'bun.lockb'; + +export const LOCK_FILES = [ + NPM_LOCKFILE, + PNPM_LOCKFILE, + YARN_LOCKFILE, + BUN_LOCKFILE, + BUN_LOCKFILE_BINARY, +]; +let projectRoot: string | undefined; + +export const getProjectRoot = () => { + if (projectRoot) { + return projectRoot; + } + + let result; + // Allow manual override in cases where auto-detect doesn't work + if (process.env.STORYBOOK_PROJECT_ROOT) { + return process.env.STORYBOOK_PROJECT_ROOT; + } + + try { + const found = findUpSync('.git', { type: 'directory' }); + if (found) { + result = join(found, '..'); + } + } catch (e) { + // + } + + try { + const found = findUpSync('.svn', { type: 'directory' }); + if (found) { + result = result || join(found, '..'); + } + } catch (e) { + // + } + + try { + const found = findUpSync('.hg', { type: 'directory' }); + if (found) { + result = result || join(found, '..'); + } + } catch (e) { + // + } + + try { + const splitDirname = __dirname.split('node_modules'); + const isSplitDirnameReachable = !relative(splitDirname[0], process.cwd()).startsWith('..'); + result = + result || + (isSplitDirnameReachable + ? splitDirname.length >= 2 + ? splitDirname[0] + : undefined + : undefined); + } catch (e) { + // + } + + try { + const found = findUpSync(LOCK_FILES, { + type: 'file', + }); + if (found) { + result = result || join(found, '..'); + } + } catch (e) { + // + } + + projectRoot = result || process.cwd(); + + return projectRoot; +}; + +export const invalidateProjectRootCache = () => { + projectRoot = undefined; +}; + +export const nodePathsToArray = (nodePath: string) => + nodePath + .split(process.platform === 'win32' ? ';' : ':') + .filter(Boolean) + .map((p) => resolve('./', p)); + +const relativePattern = /^\.{1,2}([/\\]|$)/; + +/** Ensures that a path starts with `./` or `../`, or is entirely `.` or `..` */ +export function normalizeStoryPath(filename: string) { + if (relativePattern.test(filename)) { + return filename; + } + + return `.${sep}${filename}`; +} diff --git a/src/util/serverRequire.ts b/src/util/serverRequire.ts index 9e2d9bbe..1fb91171 100644 --- a/src/util/serverRequire.ts +++ b/src/util/serverRequire.ts @@ -14,11 +14,11 @@ export function serverRequire(path: string) { // https://github.com/storybookjs/storybook/issues/19049 keepNames: true, tsconfigRaw: `{ - "compilerOptions": { - "strict": false, - "skipLibCheck": true, - }, - }`, + "compilerOptions": { + "strict": false, + "skipLibCheck": true, + }, + }`, }); } diff --git a/tsup.config.ts b/tsup.config.ts index 9891e16e..5086e9d5 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -1,16 +1,46 @@ +import { resolve } from 'node:path'; import { defineConfig } from 'tsup'; +const packageMap = { + 'storybook/internal/babel': 'node_modules/storybook-src/code/core/src/babel/index.ts', + 'storybook/internal/common': 'node_modules/storybook-src/code/core/src/common/index.ts', + 'storybook/internal/csf-tools': 'node_modules/storybook-src/code/core/src/csf-tools/index.ts', + 'storybook/internal/csf': 'node_modules/storybook-src/code/core/src/csf/index.ts', + 'storybook/internal/node-logger': 'node_modules/storybook-src/code/core/src/node-logger/index.ts', + 'storybook/internal/preview-api': 'node_modules/storybook-src/code/core/src/preview-api/index.ts', + 'storybook/internal/telemetry': 'node_modules/storybook-src/code/core/src/telemetry/index.ts', + 'storybook/internal/types': 'node_modules/storybook-src/code/core/src/types/index.ts', + 'storybook/internal/server-errors': 'node_modules/storybook-src/code/core/src/server-errors.ts', + 'storybook/internal/preview-errors': 'node_modules/storybook-src/code/core/src/preview-errors.ts', +}; + export default defineConfig([ { + // entry: ['./src/core.ts'], entry: ['./src/index.ts', './src/test-storybook.ts'], format: ['cjs'], - splitting: false, - dts: true, + splitting: true, + dts: false, minify: false, treeshake: true, bundle: true, platform: 'node', - external: ['@storybook/test-runner'], + noExternal: ['storybook-src', 'storybook'], + external: ['@storybook/test-runner', 'prettier'], + esbuildPlugins: [ + { + name: 'alias', + setup(build) { + build.onResolve({ filter: /\/storybook\// }, (args) => { + const p = resolve(packageMap[args.path] ?? args.path); + console.log({ p, f: args.importer }); + return { + path: p, + }; + }); + }, + }, + ], esbuildOptions(options) { options.platform = 'node'; }, diff --git a/yarn.lock b/yarn.lock index ca63b092..e112678c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -141,6 +141,17 @@ __metadata: languageName: node linkType: hard +"@aw-web-design/x-default-browser@npm:1.4.126": + version: 1.4.126 + resolution: "@aw-web-design/x-default-browser@npm:1.4.126" + dependencies: + default-browser-id: "npm:3.0.0" + bin: + x-default-browser: bin/x-default-browser.js + checksum: 10/f7111a6f00953f32d344a05c9a1bc1f22124dfc2696b2b7906ca856a9f845a282f272f603c997ebbb8a2d6b865664f46fda3bec1c480f040e21b815ff8ed3607 + languageName: node + linkType: hard + "@babel/cli@npm:^7.12.1": version: 7.23.0 resolution: "@babel/cli@npm:7.23.0" @@ -168,7 +179,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.26.0, @babel/code-frame@npm:^7.27.1": +"@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.27.1": version: 7.27.1 resolution: "@babel/code-frame@npm:7.27.1" dependencies: @@ -179,37 +190,37 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.25.9": - version: 7.26.2 - resolution: "@babel/compat-data@npm:7.26.2" - checksum: 10/ed9eed6b62ce803ef4a320b1dac76b0302abbb29c49dddf96f3e3207d9717eb34e299a8651bb1582e9c3346ead74b6d595ffced5b3dae718afa08b18741f8402 +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.27.2": + version: 7.27.5 + resolution: "@babel/compat-data@npm:7.27.5" + checksum: 10/04c343b8a25955bbbe1569564c63ac481a74710eb2e7989b97bd10baf2f0f3b1aa1b6c6122749806e92d70cfc22c10c757ff62336eb10a28ea98ab2b82bc0c2c languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.18.9, @babel/core@npm:^7.22.5, @babel/core@npm:^7.23.2, @babel/core@npm:^7.23.9, @babel/core@npm:^7.7.5": - version: 7.26.0 - resolution: "@babel/core@npm:7.26.0" +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.18.9, @babel/core@npm:^7.22.5, @babel/core@npm:^7.23.9, @babel/core@npm:^7.27.4, @babel/core@npm:^7.7.5": + version: 7.27.4 + resolution: "@babel/core@npm:7.27.4" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.26.0" - "@babel/generator": "npm:^7.26.0" - "@babel/helper-compilation-targets": "npm:^7.25.9" - "@babel/helper-module-transforms": "npm:^7.26.0" - "@babel/helpers": "npm:^7.26.0" - "@babel/parser": "npm:^7.26.0" - "@babel/template": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.26.0" + "@babel/code-frame": "npm:^7.27.1" + "@babel/generator": "npm:^7.27.3" + "@babel/helper-compilation-targets": "npm:^7.27.2" + "@babel/helper-module-transforms": "npm:^7.27.3" + "@babel/helpers": "npm:^7.27.4" + "@babel/parser": "npm:^7.27.4" + "@babel/template": "npm:^7.27.2" + "@babel/traverse": "npm:^7.27.4" + "@babel/types": "npm:^7.27.3" 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: 10/65767bfdb1f02e80d3af4f138066670ef8fdd12293de85ef151758a901c191c797e86d2e99b11c4cdfca33c72385ecaf38bbd7fa692791ec44c77763496b9b93 + checksum: 10/28c01186d5f2599e41f92c94fd14a02cfdcf4b74429b4028a8d16e45c1b08d3924c4275e56412f30fcd2664e5ddc2200f1c06cee8bffff4bba628ff1f20c6e70 languageName: node linkType: hard -"@babel/generator@npm:^7.22.5, @babel/generator@npm:^7.26.0, @babel/generator@npm:^7.27.3, @babel/generator@npm:^7.7.2": +"@babel/generator@npm:^7.22.5, @babel/generator@npm:^7.27.3, @babel/generator@npm:^7.7.2": version: 7.27.5 resolution: "@babel/generator@npm:7.27.5" dependencies: @@ -240,16 +251,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-compilation-targets@npm:7.25.9" +"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @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.25.9" - "@babel/helper-validator-option": "npm:^7.25.9" + "@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: 10/8053fbfc21e8297ab55c8e7f9f119e4809fa7e505268691e1bedc2cf5e7a5a7de8c60ad13da2515378621b7601c42e101d2d679904da395fa3806a1edef6b92e + checksum: 10/bd53c30a7477049db04b655d11f4c3500aea3bcbc2497cf02161de2ecf994fec7c098aabbcebe210ffabc2ecbdb1e3ffad23fb4d3f18723b814f423ea1749fe8 languageName: node linkType: hard @@ -344,7 +355,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.23.3, @babel/helper-module-transforms@npm:^7.26.0, @babel/helper-module-transforms@npm:^7.27.1": +"@babel/helper-module-transforms@npm:^7.23.3, @babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.27.3": version: 7.27.3 resolution: "@babel/helper-module-transforms@npm:7.27.3" dependencies: @@ -432,10 +443,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-validator-option@npm:7.25.9" - checksum: 10/9491b2755948ebbdd68f87da907283698e663b5af2d2b1b02a2765761974b1120d5d8d49e9175b167f16f72748ffceec8c9cf62acfbee73f4904507b246e2b3d +"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.25.9, @babel/helper-validator-option@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-option@npm:7.27.1" + checksum: 10/db73e6a308092531c629ee5de7f0d04390835b21a263be2644276cb27da2384b64676cab9f22cd8d8dbd854c92b1d7d56fc8517cf0070c35d1c14a8c828b0903 languageName: node linkType: hard @@ -450,17 +461,17 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/helpers@npm:7.26.0" +"@babel/helpers@npm:^7.27.4": + version: 7.27.6 + resolution: "@babel/helpers@npm:7.27.6" dependencies: - "@babel/template": "npm:^7.25.9" - "@babel/types": "npm:^7.26.0" - checksum: 10/fd4757f65d10b64cfdbf4b3adb7ea6ffff9497c53e0786452f495d1f7794da7e0898261b4db65e1c62bbb9a360d7d78a1085635c23dfc3af2ab6dcba06585f86 + "@babel/template": "npm:^7.27.2" + "@babel/types": "npm:^7.27.6" + checksum: 10/33c1ab2b42f05317776a4d67c5b00d916dbecfbde38a9406a1300ad3ad6e0380a2f6fcd3361369119a82a7d3c20de6e66552d147297f17f656cf17912605aa97 languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.27.4, @babel/parser@npm:^7.27.5": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.26.9, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.27.4, @babel/parser@npm:^7.27.5": version: 7.27.5 resolution: "@babel/parser@npm:7.27.5" dependencies: @@ -1223,25 +1234,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-self@npm:^7.22.5": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.23.3" +"@babel/plugin-transform-react-jsx-self@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/882bf56bc932d015c2d83214133939ddcf342e5bcafa21f1a93b19f2e052145115e1e0351730897fd66e5f67cad7875b8a8d81ceb12b6e2a886ad0102cb4eb1f + checksum: 10/72cbae66a58c6c36f7e12e8ed79f292192d858dd4bb00e9e89d8b695e4c5cb6ef48eec84bffff421a5db93fd10412c581f1cccdb00264065df76f121995bdb68 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-source@npm:^7.22.5": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.23.3" +"@babel/plugin-transform-react-jsx-source@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/92287fb797e522d99bdc77eaa573ce79ff0ad9f1cf4e7df374645e28e51dce0adad129f6f075430b129b5bac8dad843f65021970e12e992d6d6671f0d65bb1e0 + checksum: 10/e2843362adb53692be5ee9fa07a386d2d8883daad2063a3575b3c373fc14cdf4ea7978c67a183cb631b4c9c8d77b2f48c24c088f8e65cc3600cb8e97d72a7161 languageName: node linkType: hard @@ -1547,16 +1558,14 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.8.4": - version: 7.26.0 - resolution: "@babel/runtime@npm:7.26.0" - dependencies: - regenerator-runtime: "npm:^0.14.0" - checksum: 10/9f4ea1c1d566c497c052d505587554e782e021e6ccd302c2ad7ae8291c8e16e3f19d4a7726fb64469e057779ea2081c28b7dbefec6d813a22f08a35712c0f699 +"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.8.4": + version: 7.27.6 + resolution: "@babel/runtime@npm:7.27.6" + checksum: 10/cc957a12ba3781241b83d528eb69ddeb86ca5ac43179a825e83aa81263a6b3eb88c57bed8a937cdeacfc3192e07ec24c73acdfea4507d0c0428c8e23d6322bfe languageName: node linkType: hard -"@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5, @babel/template@npm:^7.25.9, @babel/template@npm:^7.27.2, @babel/template@npm:^7.3.3": +"@babel/template@npm:^7.22.15, @babel/template@npm:^7.22.5, @babel/template@npm:^7.27.2, @babel/template@npm:^7.3.3": version: 7.27.2 resolution: "@babel/template@npm:7.27.2" dependencies: @@ -1567,7 +1576,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.3": +"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.9, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.3, @babel/traverse@npm:^7.27.4": version: 7.27.4 resolution: "@babel/traverse@npm:7.27.4" dependencies: @@ -1582,7 +1591,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.25.9, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.27.6, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": version: 7.27.6 resolution: "@babel/types@npm:7.27.6" dependencies: @@ -2271,13 +2280,13 @@ __metadata: linkType: hard "@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5": - version: 0.3.5 - resolution: "@jridgewell/gen-mapping@npm:0.3.5" + version: 0.3.8 + resolution: "@jridgewell/gen-mapping@npm:0.3.8" dependencies: "@jridgewell/set-array": "npm:^1.2.1" "@jridgewell/sourcemap-codec": "npm:^1.4.10" "@jridgewell/trace-mapping": "npm:^0.3.24" - checksum: 10/81587b3c4dd8e6c60252122937cea0c637486311f4ed208b52b62aae2e7a87598f63ec330e6cd0984af494bfb16d3f0d60d3b21d7e5b4aedd2602ff3fe9d32e2 + checksum: 10/9d3a56ab3612ab9b85d38b2a93b87f3324f11c5130859957f6500e4ac8ce35f299d5ccc3ecd1ae87597601ecf83cee29e9afd04c18777c24011073992ff946df languageName: node linkType: hard @@ -2573,6 +2582,20 @@ __metadata: languageName: node linkType: hard +"@polka/url@npm:^1.0.0-next.24": + version: 1.0.0-next.29 + resolution: "@polka/url@npm:1.0.0-next.29" + checksum: 10/69ca11ab15a4ffec7f0b07fcc4e1f01489b3d9683a7e1867758818386575c60c213401259ba3705b8a812228d17e2bfd18e6f021194d943fff4bca389c9d4f28 + languageName: node + linkType: hard + +"@rolldown/pluginutils@npm:1.0.0-beta.19": + version: 1.0.0-beta.19 + resolution: "@rolldown/pluginutils@npm:1.0.0-beta.19" + checksum: 10/3b09ebf03e0f30b48770bcd7075c3092c6be09f60e6cb320142a37ae651cfc03974186b24cd7df5bd8110561c1da9d3e8bb4ecff0f2459ca4370da3d62c6806e + languageName: node + linkType: hard + "@rollup/pluginutils@npm:^5.0.2": version: 5.0.5 resolution: "@rollup/pluginutils@npm:5.0.5" @@ -2759,6 +2782,13 @@ __metadata: languageName: node linkType: hard +"@sindresorhus/merge-streams@npm:^2.1.0": + version: 2.3.0 + resolution: "@sindresorhus/merge-streams@npm:2.3.0" + checksum: 10/798bcb53cd1ace9df84fcdd1ba86afdc9e0cd84f5758d26ae9b1eefd8e8887e5fc30051132b9e74daf01bb41fa5a2faf1369361f83d76a3b3d7ee938058fd71c + languageName: node + linkType: hard + "@sinonjs/commons@npm:^3.0.0": version: 3.0.0 resolution: "@sinonjs/commons@npm:3.0.0" @@ -2846,6 +2876,15 @@ __metadata: languageName: node linkType: hard +"@storybook/docs-mdx@npm:4.0.0-next.1": + version: 4.0.0-next.1 + resolution: "@storybook/docs-mdx@npm:4.0.0-next.1" + dependencies: + acorn: "npm:^8.12.1" + checksum: 10/f18867c69e6b2d8a1354bd40c05b3cfb85a417414f92be57d95f9735c5788abcbc30d84ab639468e8e890d209eaca3e127a4d27ebe587adb86257e470845d43b + languageName: node + linkType: hard + "@storybook/global@npm:^5.0.0": version: 5.0.0 resolution: "@storybook/global@npm:5.0.0" @@ -2853,7 +2892,7 @@ __metadata: languageName: node linkType: hard -"@storybook/icons@npm:^1.2.12": +"@storybook/icons@npm:^1.2.12, @storybook/icons@npm:^1.4.0": version: 1.4.0 resolution: "@storybook/icons@npm:1.4.0" peerDependencies: @@ -2919,37 +2958,68 @@ __metadata: resolution: "@storybook/test-runner@workspace:." dependencies: "@auto-it/released": "npm:^11.1.6" + "@aw-web-design/x-default-browser": "npm:1.4.126" "@babel/cli": "npm:^7.12.1" "@babel/core": "npm:^7.22.5" "@babel/generator": "npm:^7.22.5" + "@babel/parser": "npm:^7.26.9" "@babel/plugin-transform-modules-commonjs": "npm:^7.22.5" "@babel/preset-env": "npm:^7.19.4" "@babel/preset-react": "npm:^7.18.6" "@babel/preset-typescript": "npm:^7.18.6" "@babel/template": "npm:^7.22.5" + "@babel/traverse": "npm:^7.26.9" "@babel/types": "npm:^7.22.5" "@jest/types": "npm:^29.6.3" "@storybook/addon-a11y": "npm:next" "@storybook/addon-coverage": "npm:^1.0.0" "@storybook/addon-docs": "npm:next" + "@storybook/docs-mdx": "npm:4.0.0-next.1" + "@storybook/icons": "npm:^1.4.0" "@storybook/react-vite": "npm:next" "@swc/core": "npm:^1.5.22" "@swc/jest": "npm:^0.2.23" + "@testing-library/dom": "npm:10.4.0" + "@testing-library/react": "npm:^14.0.0" + "@types/cross-spawn": "npm:^6.0.6" + "@types/detect-port": "npm:^1.3.0" + "@types/diff": "npm:^5.0.9" + "@types/ejs": "npm:^3.1.1" + "@types/find-cache-dir": "npm:^5.0.0" "@types/jest": "npm:^29.0.0" - "@types/node": "npm:^20.0.0" + "@types/js-yaml": "npm:^4.0.5" + "@types/node": "npm:^16.4.1" "@types/node-fetch": "npm:^2.6.11" + "@types/npmlog": "npm:^7.0.0" + "@types/picomatch": "npm:^2.3.0" + "@types/prettier": "npm:^3.0.0" + "@types/pretty-hrtime": "npm:^1.0.0" + "@types/semver": "npm:^7.5.8" "@vitejs/plugin-react": "npm:^4.0.3" + "@yarnpkg/esbuild-plugin-pnp": "npm:^3.0.0-rc.10" + "@yarnpkg/fslib": "npm:2.10.3" + "@yarnpkg/libzip": "npm:2.3.0" auto: "npm:^11.1.6" babel-jest: "npm:^29.0.0" babel-loader: "npm:^8.1.0" babel-plugin-istanbul: "npm:^6.1.1" + browser-dtector: "npm:^3.4.0" + bundle-require: "npm:^5.1.0" + camelcase: "npm:^8.0.0" can-bind-to-host: "npm:^1.1.1" + chai: "npm:^5.1.1" commander: "npm:^9.0.0" + comment-parser: "npm:^1.4.1" concurrently: "npm:^7.0.0" + cross-spawn: "npm:^7.0.6" + diff: "npm:^5.2.0" + es-toolkit: "npm:^1.36.0" esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0" esbuild-register: "npm:^3.6.0" expect-playwright: "npm:^0.8.0" + find-up: "npm:^5.0.0" glob: "npm:^10.2.2" + globby: "npm:^14.0.1" husky: "npm:^8.0.0" jest: "npm:^29.6.4" jest-circus: "npm:^29.6.4" @@ -2960,24 +3030,49 @@ __metadata: jest-runner: "npm:^29.6.4" jest-serializer-html: "npm:^7.1.0" jest-watch-typeahead: "npm:^2.0.0" + js-yaml: "npm:^4.1.0" + leven: "npm:^4.0.0" lint-staged: "npm:^13.0.3" + mlly: "npm:^1.7.4" + nanoid: "npm:^4.0.2" node-fetch: "npm:^2" + npmlog: "npm:^7.0.0" nyc: "npm:^15.1.0" + open: "npm:^8.4.0" + p-limit: "npm:^6.2.0" + package-manager-detector: "npm:^1.1.0" + picocolors: "npm:^1.1.0" + picomatch: "npm:^2.3.0" + picoquery: "npm:^1.4.0" pkg-up: "npm:^5.0.0" playwright: "npm:^1.14.0" playwright-core: "npm:^1.14.0" prettier: "npm:^2.8.1" + pretty-hrtime: "npm:^1.0.3" react: "npm:^17.0.1" react-dom: "npm:^17.0.1" read-pkg-up: "npm:^7.0.1" + semver: "npm:^7.6.2" + sirv: "npm:^2.0.4" + slash: "npm:^3.0.0" storybook: "npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0" + storybook-src: "git+https://github.com/storybookjs/storybook.git#jeppe/migrate-core-esm-only-4" + strip-ansi: "npm:^7.1.0" + strip-json-comments: "npm:^5.0.1" + telejson: "npm:8.0.0" tempy: "npm:^1.0.1" + tiny-invariant: "npm:^1.3.1" + tinyspy: "npm:^3.0.2" ts-dedent: "npm:^2.0.0" ts-jest: "npm:^29.0.0" + tsconfig-paths: "npm:^4.2.0" tsup: "npm:^6.5.0" + type-fest: "npm:^4.18.1" typescript: "npm:~4.9.4" + unique-string: "npm:^3.0.0" vite: "npm:^6.3.2" wait-on: "npm:^7.2.0" + watchpack: "npm:^2.2.0" peerDependencies: storybook: ^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0 bin: @@ -3129,6 +3224,38 @@ __metadata: languageName: node linkType: hard +"@testing-library/dom@npm:10.4.0": + version: 10.4.0 + resolution: "@testing-library/dom@npm:10.4.0" + dependencies: + "@babel/code-frame": "npm:^7.10.4" + "@babel/runtime": "npm:^7.12.5" + "@types/aria-query": "npm:^5.0.1" + aria-query: "npm:5.3.0" + chalk: "npm:^4.1.0" + dom-accessibility-api: "npm:^0.5.9" + lz-string: "npm:^1.5.0" + pretty-format: "npm:^27.0.2" + checksum: 10/05825ee9a15b88cbdae12c137db7111c34069ed3c7a1bd03b6696cb1b37b29f6f2d2de581ebf03033e7df1ab7ebf08399310293f440a4845d95c02c0a9ecc899 + languageName: node + linkType: hard + +"@testing-library/dom@npm:^9.0.0": + version: 9.3.4 + resolution: "@testing-library/dom@npm:9.3.4" + dependencies: + "@babel/code-frame": "npm:^7.10.4" + "@babel/runtime": "npm:^7.12.5" + "@types/aria-query": "npm:^5.0.1" + aria-query: "npm:5.1.3" + chalk: "npm:^4.1.0" + dom-accessibility-api: "npm:^0.5.9" + lz-string: "npm:^1.5.0" + pretty-format: "npm:^27.0.2" + checksum: 10/510da752ea76f4a10a0a4e3a77917b0302cf03effe576cd3534cab7e796533ee2b0e9fb6fb11b911a1ebd7c70a0bb6f235bf4f816c9b82b95b8fe0cddfd10975 + languageName: node + linkType: hard + "@testing-library/jest-dom@npm:^6.6.3": version: 6.6.3 resolution: "@testing-library/jest-dom@npm:6.6.3" @@ -3144,6 +3271,20 @@ __metadata: languageName: node linkType: hard +"@testing-library/react@npm:^14.0.0": + version: 14.3.1 + resolution: "@testing-library/react@npm:14.3.1" + dependencies: + "@babel/runtime": "npm:^7.12.5" + "@testing-library/dom": "npm:^9.0.0" + "@types/react-dom": "npm:^18.0.0" + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + checksum: 10/83359dcdf9eaf067839f34604e1a181cbc14fc09f3a07672403700fcc6a900c4b8054ad1114fc24b4b9f89d84e2a09e1b7c9afce2306b1d4b4c9e30eb1cb12de + languageName: node + linkType: hard + "@testing-library/user-event@npm:^14.6.1": version: 14.6.1 resolution: "@testing-library/user-event@npm:14.6.1" @@ -3181,7 +3322,14 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.18.0, @types/babel__core@npm:^7.20.3": +"@types/aria-query@npm:^5.0.1": + version: 5.0.4 + resolution: "@types/aria-query@npm:5.0.4" + checksum: 10/c0084c389dc030daeaf0115a92ce43a3f4d42fc8fef2d0e22112d87a42798d4a15aac413019d4a63f868327d52ad6740ab99609462b442fe6b9286b172d2e82e + languageName: node + linkType: hard + +"@types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.18.0, @types/babel__core@npm:^7.20.5": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" dependencies: @@ -3236,6 +3384,29 @@ __metadata: languageName: node linkType: hard +"@types/cross-spawn@npm:^6.0.6": + version: 6.0.6 + resolution: "@types/cross-spawn@npm:6.0.6" + dependencies: + "@types/node": "npm:*" + checksum: 10/b4172927cd1387cf037c3ade785ef46c87537b7bc2803d7f6663b4904d0c5d6f726415d1adb2fee4fecb21746738f11336076449265d46be4ce110cc3a8c8436 + languageName: node + linkType: hard + +"@types/detect-port@npm:^1.3.0": + version: 1.3.5 + resolution: "@types/detect-port@npm:1.3.5" + checksum: 10/923cf04c6a05af59090743baeb9948f1938ceb98c1f7ea93db7ac310210426b385aa00005d23039ebb8019a9d13e141f5246e9c733b290885018d722a4787921 + languageName: node + linkType: hard + +"@types/diff@npm:^5.0.9": + version: 5.2.3 + resolution: "@types/diff@npm:5.2.3" + checksum: 10/2b426a0e6936c6dd3b8da35146fea8786e3fab4f4d96fe0174ac6bf704ff933fddde08a95e125484568205cea56c3d7dca85b8e11465c0ee5ce8c1f7b877f6df + languageName: node + linkType: hard + "@types/doctrine@npm:^0.0.9": version: 0.0.9 resolution: "@types/doctrine@npm:0.0.9" @@ -3243,6 +3414,20 @@ __metadata: languageName: node linkType: hard +"@types/ejs@npm:^3.1.1": + version: 3.1.5 + resolution: "@types/ejs@npm:3.1.5" + checksum: 10/918898fd279108087722c1713e2ddb0c152ab839397946d164db8a18b5bbd732af9746373882a9bcf4843d35c6b191a8f569a7a4e51e90726d24501b39f40367 + languageName: node + linkType: hard + +"@types/emscripten@npm:^1.39.6": + version: 1.40.1 + resolution: "@types/emscripten@npm:1.40.1" + checksum: 10/d1aa8b91416c0d8ea7d2f3b99c8c40327350dff632ad98cb67f9df9afa13efd4d755c273b49a37797390a94180c7cc98397bbbe1d8def4ea1d5d3bff9c816ac9 + languageName: node + linkType: hard + "@types/estree@npm:1.0.7, @types/estree@npm:^1.0.0": version: 1.0.7 resolution: "@types/estree@npm:1.0.7" @@ -3250,6 +3435,15 @@ __metadata: languageName: node linkType: hard +"@types/find-cache-dir@npm:^5.0.0": + version: 5.0.2 + resolution: "@types/find-cache-dir@npm:5.0.2" + dependencies: + find-cache-dir: "npm:*" + checksum: 10/528b9ff329cc7129021ab7c24bf3f2105d0e4d5606413a8ba479e56621e3ac9c976cd820caf786df5777b81138c433432b0c3bb501d5ec4af3302c66be6a2cae + languageName: node + linkType: hard + "@types/graceful-fs@npm:^4.1.3": version: 4.1.9 resolution: "@types/graceful-fs@npm:4.1.9" @@ -3294,6 +3488,13 @@ __metadata: languageName: node linkType: hard +"@types/js-yaml@npm:^4.0.5": + version: 4.0.9 + resolution: "@types/js-yaml@npm:4.0.9" + checksum: 10/a0ce595db8a987904badd21fc50f9f444cb73069f4b95a76cc222e0a17b3ff180669059c763ec314bc4c3ce284379177a9da80e83c5f650c6c1310cafbfaa8e6 + languageName: node + linkType: hard + "@types/json-schema@npm:^7.0.5": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" @@ -3318,7 +3519,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^20.0.0": +"@types/node@npm:*": version: 20.19.1 resolution: "@types/node@npm:20.19.1" dependencies: @@ -3327,6 +3528,13 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^16.4.1": + version: 16.18.126 + resolution: "@types/node@npm:16.18.126" + checksum: 10/33e0fa9209a4a96459a8fdf6b078ca9590eb67a8d51899180cfac8afecb9aa133c755d1c38a8b947b9f384f2faa184cabf4e567f5f6dded285be1b31588ec199 + languageName: node + linkType: hard + "@types/normalize-package-data@npm:^2.4.0": version: 2.4.4 resolution: "@types/normalize-package-data@npm:2.4.4" @@ -3334,6 +3542,15 @@ __metadata: languageName: node linkType: hard +"@types/npmlog@npm:^7.0.0": + version: 7.0.0 + resolution: "@types/npmlog@npm:7.0.0" + dependencies: + "@types/node": "npm:*" + checksum: 10/0fbddf3b9647fcdbd47fa5851ba55d05d9a25c5a6ca0029a2a25d3a69bbe966c5dd1dfe7e4f051af6294b59d457e931e524338a20e9cfeea90fd994f5779537a + languageName: node + linkType: hard + "@types/parse-json@npm:^4.0.0": version: 4.0.2 resolution: "@types/parse-json@npm:4.0.2" @@ -3341,6 +3558,38 @@ __metadata: languageName: node linkType: hard +"@types/picomatch@npm:^2.3.0": + version: 2.3.4 + resolution: "@types/picomatch@npm:2.3.4" + checksum: 10/12f67f2425fb134cb24edfeeeebee1a18b4464e7767690780ca9e1edc8e3573bfb851febba5ee079ff1ee87bc0a9525bed0f3b724581f6e8051ff48529078f17 + languageName: node + linkType: hard + +"@types/prettier@npm:^3.0.0": + version: 3.0.0 + resolution: "@types/prettier@npm:3.0.0" + dependencies: + prettier: "npm:*" + checksum: 10/a2a512d304e5bcf78f38089dc88ad19215e6ab871d435a17aef3ce538a63b07c0e359c18db23989dc1ed9fff96d99eee1f680416080184df5c7e0e3bf767e165 + languageName: node + linkType: hard + +"@types/pretty-hrtime@npm:^1.0.0": + version: 1.0.3 + resolution: "@types/pretty-hrtime@npm:1.0.3" + checksum: 10/288061dff992c8107d5c7b5a1277bbb0a314a27eb10087dea628a08fa37694a655191a69e25a212c95e61e498363c48ad9e281d23964a448f6c14100a6be0910 + languageName: node + linkType: hard + +"@types/react-dom@npm:^18.0.0": + version: 18.3.7 + resolution: "@types/react-dom@npm:18.3.7" + peerDependencies: + "@types/react": ^18.0.0 + checksum: 10/317569219366d487a3103ba1e5e47154e95a002915fdcf73a44162c48fe49c3a57fcf7f57fc6979e70d447112681e6b13c6c3c1df289db8b544df4aab2d318f3 + languageName: node + linkType: hard + "@types/resolve@npm:^1.20.2": version: 1.20.5 resolution: "@types/resolve@npm:1.20.5" @@ -3348,6 +3597,13 @@ __metadata: languageName: node linkType: hard +"@types/semver@npm:^7.5.8": + version: 7.7.0 + resolution: "@types/semver@npm:7.7.0" + checksum: 10/ee4514c6c852b1c38f951239db02f9edeea39f5310fad9396a00b51efa2a2d96b3dfca1ae84c88181ea5b7157c57d32d7ef94edacee36fbf975546396b85ba5b + languageName: node + linkType: hard + "@types/stack-utils@npm:^2.0.0": version: 2.0.3 resolution: "@types/stack-utils@npm:2.0.3" @@ -3390,17 +3646,18 @@ __metadata: linkType: hard "@vitejs/plugin-react@npm:^4.0.3": - version: 4.1.1 - resolution: "@vitejs/plugin-react@npm:4.1.1" + version: 4.6.0 + resolution: "@vitejs/plugin-react@npm:4.6.0" dependencies: - "@babel/core": "npm:^7.23.2" - "@babel/plugin-transform-react-jsx-self": "npm:^7.22.5" - "@babel/plugin-transform-react-jsx-source": "npm:^7.22.5" - "@types/babel__core": "npm:^7.20.3" - react-refresh: "npm:^0.14.0" + "@babel/core": "npm:^7.27.4" + "@babel/plugin-transform-react-jsx-self": "npm:^7.27.1" + "@babel/plugin-transform-react-jsx-source": "npm:^7.27.1" + "@rolldown/pluginutils": "npm:1.0.0-beta.19" + "@types/babel__core": "npm:^7.20.5" + react-refresh: "npm:^0.17.0" peerDependencies: - vite: ^4.2.0 - checksum: 10/5bfabd78812099270f03ed3e37db157335c423e06545cfd05415ca0a64ea583f14c37686aba0d5ff9dab0a26b6c88e06ae2130739e2f1bd709a99b68abc16d7e + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 + checksum: 10/f05479b74070bcaa7aedfc0aefcfb40f732ccd0126b30885113719ff0c471b7a09626546c0a6b9404ce66245689b11cb3103c42e59c211ea518713d73c028b02 languageName: node linkType: hard @@ -3445,6 +3702,37 @@ __metadata: languageName: node linkType: hard +"@yarnpkg/esbuild-plugin-pnp@npm:^3.0.0-rc.10": + version: 3.0.0-rc.15 + resolution: "@yarnpkg/esbuild-plugin-pnp@npm:3.0.0-rc.15" + dependencies: + tslib: "npm:^2.4.0" + peerDependencies: + esbuild: ">=0.10.0" + checksum: 10/454f521088c1fa24fda51f83ca4a50ba6e3bd147e5dee8c899e6bf24a7196186532c3abb18480e83395708ffb7238c9cac5b82595c3985ce93593b5afbd0a9f0 + languageName: node + linkType: hard + +"@yarnpkg/fslib@npm:2.10.3": + version: 2.10.3 + resolution: "@yarnpkg/fslib@npm:2.10.3" + dependencies: + "@yarnpkg/libzip": "npm:^2.3.0" + tslib: "npm:^1.13.0" + checksum: 10/29b38bd2054e3ec14677c16321a20ed69ac41d9d6f2fee7d9d7bc0a5a737e6d94add79cfa5f6ab867b5a98ab6aa2df3b53cb34f81159907cc308576a7bc08c67 + languageName: node + linkType: hard + +"@yarnpkg/libzip@npm:2.3.0, @yarnpkg/libzip@npm:^2.3.0": + version: 2.3.0 + resolution: "@yarnpkg/libzip@npm:2.3.0" + dependencies: + "@types/emscripten": "npm:^1.39.6" + tslib: "npm:^1.13.0" + checksum: 10/0eb147f39eab2830c29120d17e8bfba5aa15dedb940a7378070c67d4de08e9ba8d34068522e15e6b4db94ecaed4ad520e1e517588a36a348d1aa160bc36156ea + languageName: node + linkType: hard + "abbrev@npm:^2.0.0": version: 2.0.0 resolution: "abbrev@npm:2.0.0" @@ -3468,12 +3756,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.10.0, acorn@npm:^8.4.1, acorn@npm:^8.9.0": - version: 8.14.0 - resolution: "acorn@npm:8.14.0" +"acorn@npm:^8.10.0, acorn@npm:^8.12.1, acorn@npm:^8.14.0, acorn@npm:^8.4.1, acorn@npm:^8.9.0": + version: 8.15.0 + resolution: "acorn@npm:8.15.0" bin: acorn: bin/acorn - checksum: 10/6df29c35556782ca9e632db461a7f97947772c6c1d5438a81f0c873a3da3a792487e83e404d1c6c25f70513e91aa18745f6eafb1fcc3a43ecd1920b21dd173d2 + checksum: 10/77f2de5051a631cf1729c090e5759148459cdb76b5f5c70f890503d629cf5052357b0ce783c0f976dd8a93c5150f59f6d18df1def3f502396a20f81282482fa4 languageName: node linkType: hard @@ -3632,6 +3920,13 @@ __metadata: languageName: node linkType: hard +"aproba@npm:^1.0.3 || ^2.0.0": + version: 2.0.0 + resolution: "aproba@npm:2.0.0" + checksum: 10/c2b9a631298e8d6f3797547e866db642f68493808f5b37cd61da778d5f6ada890d16f668285f7d60bd4fc3b03889bd590ffe62cf81b700e9bb353431238a0a7b + languageName: node + linkType: hard + "archy@npm:^1.0.0": version: 1.0.0 resolution: "archy@npm:1.0.0" @@ -3639,6 +3934,13 @@ __metadata: languageName: node linkType: hard +"are-we-there-yet@npm:^4.0.0": + version: 4.0.2 + resolution: "are-we-there-yet@npm:4.0.2" + checksum: 10/86feb4e8384b0820adaf7693bd02f602d001b0e5f051744dc2d05b30b74f9bd3e1e6f1a0c70fdadeddd837b8e5f8f77569a1a286078fb39b32a0a8f3724660d7 + languageName: node + linkType: hard + "arg@npm:^4.1.0": version: 4.1.3 resolution: "arg@npm:4.1.3" @@ -3655,7 +3957,23 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^5.0.0": +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 10/18640244e641a417ec75a9bd38b0b2b6b95af5199aa241b131d4b2fb206f334d7ecc600bd194861610a5579084978bfcbb02baa399dbe442d56d0ae5e60dbaef + languageName: node + linkType: hard + +"aria-query@npm:5.1.3": + version: 5.1.3 + resolution: "aria-query@npm:5.1.3" + dependencies: + deep-equal: "npm:^2.0.5" + checksum: 10/e5da608a7c4954bfece2d879342b6c218b6b207e2d9e5af270b5e38ef8418f02d122afdc948b68e32649b849a38377785252059090d66fa8081da95d1609c0d2 + languageName: node + linkType: hard + +"aria-query@npm:5.3.0, aria-query@npm:^5.0.0": version: 5.3.0 resolution: "aria-query@npm:5.3.0" dependencies: @@ -3678,6 +3996,16 @@ __metadata: languageName: node linkType: hard +"array-buffer-byte-length@npm:^1.0.0": + version: 1.0.2 + resolution: "array-buffer-byte-length@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.3" + is-array-buffer: "npm:^3.0.5" + checksum: 10/0ae3786195c3211b423e5be8dd93357870e6fb66357d81da968c2c39ef43583ef6eece1f9cb1caccdae4806739c65dea832b44b8593414313cd76a89795fca63 + languageName: node + linkType: hard + "array-union@npm:^1.0.1": version: 1.0.2 resolution: "array-union@npm:1.0.2" @@ -3753,6 +4081,15 @@ __metadata: languageName: node linkType: hard +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: "npm:^1.0.0" + checksum: 10/6c9da3a66caddd83c875010a1ca8ef11eac02ba15fb592dc9418b2b5e7b77b645fa7729380a92d9835c2f05f2ca1b6251f39b993e0feb3f1517c74fa1af02cab + languageName: node + linkType: hard + "await-to-js@npm:^3.0.0": version: 3.0.0 resolution: "await-to-js@npm:3.0.0" @@ -3928,6 +4265,13 @@ __metadata: languageName: node linkType: hard +"big-integer@npm:^1.6.44": + version: 1.6.52 + resolution: "big-integer@npm:1.6.52" + checksum: 10/4bc6ae152a96edc9f95020f5fc66b13d26a9ad9a021225a9f0213f7e3dc44269f423aa8c42e19d6ac4a63bb2b22140b95d10be8f9ca7a6d9aa1b22b330d1f514 + languageName: node + linkType: hard + "big.js@npm:^5.2.2": version: 5.2.2 resolution: "big.js@npm:5.2.2" @@ -3949,6 +4293,15 @@ __metadata: languageName: node linkType: hard +"bplist-parser@npm:^0.2.0": + version: 0.2.0 + resolution: "bplist-parser@npm:0.2.0" + dependencies: + big-integer: "npm:^1.6.44" + checksum: 10/15d31c1b0c7e0fb384e96349453879a33609d92d91b55a9ccee04b4be4b0645f1c823253d73326a1a23104521fbc45c2dd97fb05adf61863841b68cbb2ca7a3d + languageName: node + linkType: hard + "brace-expansion@npm:^1.1.7": version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" @@ -3977,6 +4330,13 @@ __metadata: languageName: node linkType: hard +"browser-dtector@npm:^3.4.0": + version: 3.4.0 + resolution: "browser-dtector@npm:3.4.0" + checksum: 10/94df10046f9b780899a305ac2e71e8aa12a1082b7ebd51c78e5e9aac3c3040b51b6c300e089356b6a55416372723559ef1fd3ffd6f83c48c5d981ca5a8fdf36a + languageName: node + linkType: hard + "browserslist@npm:^4.22.1, browserslist@npm:^4.24.0": version: 4.24.2 resolution: "browserslist@npm:4.24.2" @@ -4017,13 +4377,24 @@ __metadata: linkType: hard "bundle-require@npm:^4.0.0": - version: 4.0.2 - resolution: "bundle-require@npm:4.0.2" + version: 4.2.1 + resolution: "bundle-require@npm:4.2.1" dependencies: load-tsconfig: "npm:^0.2.3" peerDependencies: esbuild: ">=0.17" - checksum: 10/22178607249adb52cc76e409add67930b81cdc6507ed8cbd7b162dc2824ce53c51b669d01bf073e9b7cd9d98f10f3dbf9a3285345813085b856d437cdc97e162 + checksum: 10/e49cb6528373d4e086723bc37fb037e05e9cd529e1b3aa1c4da6c495c4725a0f74ae9cc461de35163d65dd3a6c41a0474c6e52b74b8ded4fe829c951d0784ec1 + languageName: node + linkType: hard + +"bundle-require@npm:^5.1.0": + version: 5.1.0 + resolution: "bundle-require@npm:5.1.0" + dependencies: + load-tsconfig: "npm:^0.2.3" + peerDependencies: + esbuild: ">=0.18" + checksum: 10/735e0220055b9bdac20bea48ec1e10dc3a205232c889ef54767900bebdc721959c4ccb221e4ea434d7ddcd693a8a4445c3d0598e4040ee313ce0ac3aae3e6178 languageName: node linkType: hard @@ -4066,6 +4437,38 @@ __metadata: languageName: node linkType: hard +"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind-apply-helpers@npm:1.0.2" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + checksum: 10/00482c1f6aa7cfb30fb1dbeb13873edf81cfac7c29ed67a5957d60635a56b2a4a480f1016ddbdb3395cc37900d46037fb965043a51c5c789ffeab4fc535d18b5 + languageName: node + linkType: hard + +"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": + version: 1.0.8 + resolution: "call-bind@npm:1.0.8" + dependencies: + call-bind-apply-helpers: "npm:^1.0.0" + es-define-property: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" + set-function-length: "npm:^1.2.2" + checksum: 10/659b03c79bbfccf0cde3a79e7d52570724d7290209823e1ca5088f94b52192dc1836b82a324d0144612f816abb2f1734447438e38d9dafe0b3f82c2a1b9e3bce + languageName: node + linkType: hard + +"call-bound@npm:^1.0.2, call-bound@npm:^1.0.3, call-bound@npm:^1.0.4": + version: 1.0.4 + resolution: "call-bound@npm:1.0.4" + dependencies: + call-bind-apply-helpers: "npm:^1.0.2" + get-intrinsic: "npm:^1.3.0" + checksum: 10/ef2b96e126ec0e58a7ff694db43f4d0d44f80e641370c21549ed911fecbdbc2df3ebc9bddad918d6bbdefeafb60bb3337902006d5176d72bcd2da74820991af7 + languageName: node + linkType: hard + "callsites@npm:^3.0.0": version: 3.1.0 resolution: "callsites@npm:3.1.0" @@ -4087,6 +4490,13 @@ __metadata: languageName: node linkType: hard +"camelcase@npm:^8.0.0": + version: 8.0.0 + resolution: "camelcase@npm:8.0.0" + checksum: 10/6da7abe997af29e80052f17aa21628c7cce14af364cef9f07a2a44d59614dd6f361d405f121938e673424d673697a8c53ad17be8c4b03b0a727307c4db8b5b5e + languageName: node + linkType: hard + "can-bind-to-host@npm:^1.1.1": version: 1.1.2 resolution: "can-bind-to-host@npm:1.1.2" @@ -4103,7 +4513,7 @@ __metadata: languageName: node linkType: hard -"chai@npm:^5.2.0": +"chai@npm:^5.1.1, chai@npm:^5.2.0": version: 5.2.0 resolution: "chai@npm:5.2.0" dependencies: @@ -4309,6 +4719,15 @@ __metadata: languageName: node linkType: hard +"color-support@npm:^1.1.3": + version: 1.1.3 + resolution: "color-support@npm:1.1.3" + bin: + color-support: bin.js + checksum: 10/4bcfe30eea1498fe1cabc852bbda6c9770f230ea0e4faf4611c5858b1b9e4dde3730ac485e65f54ca182f4c50b626c1bea7c8441ceda47367a54a818c248aa7a + languageName: node + linkType: hard + "colorette@npm:^2.0.20": version: 2.0.20 resolution: "colorette@npm:2.0.20" @@ -4400,6 +4819,20 @@ __metadata: languageName: node linkType: hard +"comment-parser@npm:^1.4.1": + version: 1.4.1 + resolution: "comment-parser@npm:1.4.1" + checksum: 10/16a3260b5e77819ebd9c99b0b65c7d6723b1ff73487bac9ce2d8f016a2847dd689e8663b88e1fad1444bbea89847c42f785708ac86a2c55f614f7095249bbf6b + languageName: node + linkType: hard + +"common-path-prefix@npm:^3.0.0": + version: 3.0.0 + resolution: "common-path-prefix@npm:3.0.0" + checksum: 10/09c180e8d8495d42990d617f4d4b7522b5da20f6b236afe310192d401d1da8147a7835ae1ea37797ba0c2238ef3d06f3492151591451df34539fdb4b2630f2b3 + languageName: node + linkType: hard + "commondir@npm:^1.0.1": version: 1.0.1 resolution: "commondir@npm:1.0.1" @@ -4434,6 +4867,20 @@ __metadata: languageName: node linkType: hard +"confbox@npm:^0.1.8": + version: 0.1.8 + resolution: "confbox@npm:0.1.8" + checksum: 10/4ebcfb1c6a3b25276734ec5722e88768eb61fc02f98e11960b845c5c62bc27fd05f493d2a8244d9675b24ef95afe4c0d511cdcad02c72f5eeea463cc26687999 + languageName: node + linkType: hard + +"console-control-strings@npm:^1.1.0": + version: 1.1.0 + resolution: "console-control-strings@npm:1.1.0" + checksum: 10/27b5fa302bc8e9ae9e98c03c66d76ca289ad0c61ce2fe20ab288d288bee875d217512d2edb2363fc83165e88f1c405180cf3f5413a46e51b4fe1a004840c6cdb + languageName: node + linkType: hard + "convert-source-map@npm:^1.6.0, convert-source-map@npm:^1.7.0": version: 1.9.0 resolution: "convert-source-map@npm:1.9.0" @@ -4494,14 +4941,14 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.6": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" dependencies: path-key: "npm:^3.1.0" shebang-command: "npm:^2.0.0" which: "npm:^2.0.1" - checksum: 10/e1a13869d2f57d974de0d9ef7acbf69dc6937db20b918525a01dacb5032129bd552d290d886d981e99f1b624cb03657084cc87bd40f115c07ecf376821c729ce + checksum: 10/0d52657d7ae36eb130999dffff1168ec348687b48dd38e2ff59992ed916c88d328cf1d07ff4a4a10bc78de5e1c23f04b306d569e42f7a2293915c081e4dfee86 languageName: node linkType: hard @@ -4512,6 +4959,15 @@ __metadata: languageName: node linkType: hard +"crypto-random-string@npm:^4.0.0": + version: 4.0.0 + resolution: "crypto-random-string@npm:4.0.0" + dependencies: + type-fest: "npm:^1.0.1" + checksum: 10/cd5d7ae13803de53680aaed4c732f67209af5988cbeec5f6b29082020347c2d8849ca921b2008be7d6bd1d9d198c3c3697e7441d6d0d3da1bf51e9e4d2032149 + languageName: node + linkType: hard + "css.escape@npm:^1.5.1": version: 1.5.1 resolution: "css.escape@npm:1.5.1" @@ -4595,6 +5051,32 @@ __metadata: languageName: node linkType: hard +"deep-equal@npm:^2.0.5": + version: 2.2.3 + resolution: "deep-equal@npm:2.2.3" + dependencies: + array-buffer-byte-length: "npm:^1.0.0" + call-bind: "npm:^1.0.5" + es-get-iterator: "npm:^1.1.3" + get-intrinsic: "npm:^1.2.2" + is-arguments: "npm:^1.1.1" + is-array-buffer: "npm:^3.0.2" + is-date-object: "npm:^1.0.5" + is-regex: "npm:^1.1.4" + is-shared-array-buffer: "npm:^1.0.2" + isarray: "npm:^2.0.5" + object-is: "npm:^1.1.5" + object-keys: "npm:^1.1.1" + object.assign: "npm:^4.1.4" + regexp.prototype.flags: "npm:^1.5.1" + side-channel: "npm:^1.0.4" + which-boxed-primitive: "npm:^1.0.2" + which-collection: "npm:^1.0.1" + which-typed-array: "npm:^1.1.13" + checksum: 10/1ce49d0b71d0f14d8ef991a742665eccd488dfc9b3cada069d4d7a86291e591c92d2589c832811dea182b4015736b210acaaebce6184be356c1060d176f5a05f + languageName: node + linkType: hard + "deep-extend@npm:^0.6.0, deep-extend@npm:~0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -4609,6 +5091,16 @@ __metadata: languageName: node linkType: hard +"default-browser-id@npm:3.0.0": + version: 3.0.0 + resolution: "default-browser-id@npm:3.0.0" + dependencies: + bplist-parser: "npm:^0.2.0" + untildify: "npm:^4.0.0" + checksum: 10/279c7ad492542e5556336b6c254a4eaf31b2c63a5433265655ae6e47301197b6cfb15c595a6fdc6463b2ff8e1a1a1ed3cba56038a60e1527ba4ab1628c6b9941 + languageName: node + linkType: hard + "default-require-extensions@npm:^3.0.0": version: 3.0.1 resolution: "default-require-extensions@npm:3.0.1" @@ -4618,6 +5110,17 @@ __metadata: languageName: node linkType: hard +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.0.1" + checksum: 10/abdcb2505d80a53524ba871273e5da75e77e52af9e15b3aa65d8aad82b8a3a424dad7aee2cc0b71470ac7acf501e08defac362e8b6a73cdb4309f028061df4ae + languageName: node + linkType: hard + "define-lazy-prop@npm:^2.0.0": version: 2.0.0 resolution: "define-lazy-prop@npm:2.0.0" @@ -4625,6 +5128,17 @@ __metadata: languageName: node linkType: hard +"define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" + dependencies: + define-data-property: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.0" + object-keys: "npm:^1.1.1" + checksum: 10/b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 + languageName: node + linkType: hard + "del@npm:^6.0.0": version: 6.1.1 resolution: "del@npm:6.1.1" @@ -4683,9 +5197,16 @@ __metadata: languageName: node linkType: hard -"diffable-html@npm:^4.1.0": - version: 4.1.0 - resolution: "diffable-html@npm:4.1.0" +"diff@npm:^5.2.0": + version: 5.2.0 + resolution: "diff@npm:5.2.0" + checksum: 10/01b7b440f83a997350a988e9d2f558366c0f90f15be19f4aa7f1bb3109a4e153dfc3b9fbf78e14ea725717017407eeaa2271e3896374a0181e8f52445740846d + languageName: node + linkType: hard + +"diffable-html@npm:^4.1.0": + version: 4.1.0 + resolution: "diffable-html@npm:4.1.0" dependencies: htmlparser2: "npm:^3.9.2" checksum: 10/3dd0f2a1e956be394a7da47caa9cb593073d91e3eb30d79de00664941f2d68a2549c7e392da1037afb45de1cf37b12e8b7dbaa312d47186061c66c9ce4aaa601 @@ -4719,6 +5240,13 @@ __metadata: languageName: node linkType: hard +"dom-accessibility-api@npm:^0.5.9": + version: 0.5.16 + resolution: "dom-accessibility-api@npm:0.5.16" + checksum: 10/377b4a7f9eae0a5d72e1068c369c99e0e4ca17fdfd5219f3abd32a73a590749a267475a59d7b03a891f9b673c27429133a818c44b2e47e32fec024b34274e2ca + languageName: node + linkType: hard + "dom-accessibility-api@npm:^0.6.3": version: 0.6.3 resolution: "dom-accessibility-api@npm:0.6.3" @@ -4776,6 +5304,17 @@ __metadata: languageName: node linkType: hard +"dunder-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" + dependencies: + call-bind-apply-helpers: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.2.0" + checksum: 10/5add88a3d68d42d6e6130a0cac450b7c2edbe73364bbd2fc334564418569bea97c6943a8fcd70e27130bf32afc236f30982fc4905039b703f23e9e0433c29934 + languageName: node + linkType: hard + "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" @@ -4896,6 +5435,58 @@ __metadata: languageName: node linkType: hard +"es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 10/f8dc9e660d90919f11084db0a893128f3592b781ce967e4fccfb8f3106cb83e400a4032c559184ec52ee1dbd4b01e7776c7cd0b3327b1961b1a4a7008920fe78 + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 10/96e65d640156f91b707517e8cdc454dd7d47c32833aa3e85d79f24f9eb7ea85f39b63e36216ef0114996581969b59fe609a94e30316b08f5f4df1d44134cf8d5 + languageName: node + linkType: hard + +"es-get-iterator@npm:^1.1.3": + version: 1.1.3 + resolution: "es-get-iterator@npm:1.1.3" + dependencies: + call-bind: "npm:^1.0.2" + get-intrinsic: "npm:^1.1.3" + has-symbols: "npm:^1.0.3" + is-arguments: "npm:^1.1.1" + is-map: "npm:^2.0.2" + is-set: "npm:^2.0.2" + is-string: "npm:^1.0.7" + isarray: "npm:^2.0.5" + stop-iteration-iterator: "npm:^1.0.0" + checksum: 10/bc2194befbe55725f9489098626479deee3c801eda7e83ce0dff2eb266a28dc808edb9b623ff01d31ebc1328f09d661333d86b601036692c2e3c1a6942319433 + 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" + dependencies: + es-errors: "npm:^1.3.0" + checksum: 10/54fe77de288451dae51c37bfbfe3ec86732dc3778f98f3eb3bdb4bf48063b2c0b8f9c93542656986149d08aa5be3204286e2276053d19582b76753f1a2728867 + languageName: node + linkType: hard + +"es-toolkit@npm:^1.36.0": + version: 1.39.5 + resolution: "es-toolkit@npm:1.39.5" + dependenciesMeta: + "@trivago/prettier-plugin-sort-imports@4.3.0": + unplugged: true + prettier-plugin-sort-re-exports@0.0.1: + unplugged: true + checksum: 10/3b7e7d5bd50b8e603fbde93149d90ae541c1fc804b516d3b22f3d107724fb0b8f91bc4a17ca6af3bd17c8e5be89f1a7ec673a3e7f8a55323704a31e77cc5fa67 + languageName: node + linkType: hard + "es6-error@npm:^4.0.1": version: 4.1.1 resolution: "es6-error@npm:4.1.1" @@ -5231,16 +5822,16 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.1.1, fast-glob@npm:^3.2.9": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" +"fast-glob@npm:^3.1.1, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.3": + version: 3.3.3 + resolution: "fast-glob@npm:3.3.3" dependencies: "@nodelib/fs.stat": "npm:^2.0.2" "@nodelib/fs.walk": "npm:^1.2.3" glob-parent: "npm:^5.1.2" merge2: "npm:^1.3.0" - micromatch: "npm:^4.0.4" - checksum: 10/222512e9315a0efca1276af9adb2127f02105d7288fa746145bf45e2716383fb79eb983c89601a72a399a56b7c18d38ce70457c5466218c5f13fad957cee16df + micromatch: "npm:^4.0.8" + checksum: 10/dcc6432b269762dd47381d8b8358bf964d8f4f60286ac6aa41c01ade70bda459ff2001b516690b96d5365f68a49242966112b5d5cc9cd82395fa8f9d017c90ad languageName: node linkType: hard @@ -5306,6 +5897,16 @@ __metadata: languageName: node linkType: hard +"find-cache-dir@npm:*": + version: 5.0.0 + resolution: "find-cache-dir@npm:5.0.0" + dependencies: + common-path-prefix: "npm:^3.0.0" + pkg-dir: "npm:^7.0.0" + checksum: 10/1be046a2d6d98698d181352139bdd2f3e45cad4a0b3c9f06a611124ca52d823b0b327f5a629d7c5268b7fad54a202104765e572f8415b89ac35f76818fb3b75e + languageName: node + linkType: hard + "find-cache-dir@npm:^3.2.0, find-cache-dir@npm:^3.3.1": version: 3.3.2 resolution: "find-cache-dir@npm:3.3.2" @@ -5377,7 +5978,17 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^6.2.0": +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: "npm:^6.0.0" + path-exists: "npm:^4.0.0" + checksum: 10/07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + languageName: node + linkType: hard + +"find-up@npm:^6.2.0, find-up@npm:^6.3.0": version: 6.3.0 resolution: "find-up@npm:6.3.0" dependencies: @@ -5408,6 +6019,15 @@ __metadata: languageName: node linkType: hard +"for-each@npm:^0.3.5": + version: 0.3.5 + resolution: "for-each@npm:0.3.5" + dependencies: + is-callable: "npm:^1.2.7" + checksum: 10/330cc2439f85c94f4609de3ee1d32c5693ae15cdd7fe3d112c4fd9efd4ce7143f2c64ef6c2c9e0cfdb0058437f33ef05b5bdae5b98fcc903fb2143fbaf0fea0f + languageName: node + linkType: hard + "foreground-child@npm:^2.0.0": version: 2.0.0 resolution: "foreground-child@npm:2.0.0" @@ -5537,6 +6157,29 @@ __metadata: languageName: node linkType: hard +"functions-have-names@npm:^1.2.3": + version: 1.2.3 + resolution: "functions-have-names@npm:1.2.3" + checksum: 10/0ddfd3ed1066a55984aaecebf5419fbd9344a5c38dd120ffb0739fac4496758dcf371297440528b115e4367fc46e3abc86a2cc0ff44612181b175ae967a11a05 + languageName: node + linkType: hard + +"gauge@npm:^5.0.0": + version: 5.0.2 + resolution: "gauge@npm:5.0.2" + dependencies: + aproba: "npm:^1.0.3 || ^2.0.0" + color-support: "npm:^1.1.3" + console-control-strings: "npm:^1.1.0" + has-unicode: "npm:^2.0.1" + signal-exit: "npm:^4.0.1" + string-width: "npm:^4.2.3" + strip-ansi: "npm:^6.0.1" + wide-align: "npm:^1.1.5" + checksum: 10/7ed6930e03622e3651182d9312ea763e208e7e71bf126505a59a4424820af2715fdbc4f0655f92a092f3f1015c425094421c9d1a898dbe33cf6779d3e7e91e5c + languageName: node + linkType: hard + "gensync@npm:^1.0.0-beta.2": version: 1.0.0-beta.2 resolution: "gensync@npm:1.0.0-beta.2" @@ -5551,6 +6194,24 @@ __metadata: languageName: node linkType: hard +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.3.0": + version: 1.3.0 + resolution: "get-intrinsic@npm:1.3.0" + dependencies: + call-bind-apply-helpers: "npm:^1.0.2" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.1.1" + function-bind: "npm:^1.1.2" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + math-intrinsics: "npm:^1.1.0" + checksum: 10/6e9dd920ff054147b6f44cb98104330e87caafae051b6d37b13384a45ba15e71af33c3baeac7cb630a0aaa23142718dcf25b45cfdd86c184c5dcb4e56d953a10 + languageName: node + linkType: hard + "get-monorepo-packages@npm:^1.1.0": version: 1.2.0 resolution: "get-monorepo-packages@npm:1.2.0" @@ -5568,6 +6229,16 @@ __metadata: languageName: node linkType: hard +"get-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "get-proto@npm:1.0.1" + dependencies: + dunder-proto: "npm:^1.0.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/4fc96afdb58ced9a67558698b91433e6b037aaa6f1493af77498d7c85b141382cf223c0e5946f334fb328ee85dfe6edd06d218eaf09556f4bc4ec6005d7f5f7b + languageName: node + linkType: hard + "get-stdin@npm:^5.0.1": version: 5.0.1 resolution: "get-stdin@npm:5.0.1" @@ -5601,17 +6272,10 @@ __metadata: languageName: node linkType: hard -"glob@npm:7.1.6": - version: 7.1.6 - resolution: "glob@npm:7.1.6" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^3.0.4" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: 10/7d6ec98bc746980d5fe4d764b9c7ada727e3fbd2a7d85cd96dd95fb18638c9c54a70c692fd2ab5d68a186dc8cd9d6a4192d3df220beed891f687db179c430237 +"glob-to-regexp@npm:^0.4.1": + version: 0.4.1 + resolution: "glob-to-regexp@npm:0.4.1" + checksum: 10/9009529195a955c40d7b9690794aeff5ba665cc38f1519e111c58bb54366fd0c106bde80acf97ba4e533208eb53422c83b136611a54c5fefb1edd8dc267cb62e languageName: node linkType: hard @@ -5688,6 +6352,20 @@ __metadata: languageName: node linkType: hard +"globby@npm:^14.0.1": + version: 14.1.0 + resolution: "globby@npm:14.1.0" + dependencies: + "@sindresorhus/merge-streams": "npm:^2.1.0" + fast-glob: "npm:^3.3.3" + ignore: "npm:^7.0.3" + path-type: "npm:^6.0.0" + slash: "npm:^5.1.0" + unicorn-magic: "npm:^0.3.0" + checksum: 10/e527ff54f0dddf60abfabd0d9e799768619d957feecd8b13ef60481f270bfdce0d28f6b09267c60f8064798fb3003b8ec991375f7fe0233fbce5304e1741368c + languageName: node + linkType: hard + "globby@npm:^7.1.1": version: 7.1.1 resolution: "globby@npm:7.1.1" @@ -5709,6 +6387,13 @@ __metadata: languageName: node linkType: hard +"gopd@npm:^1.0.1, gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: 10/94e296d69f92dc1c0768fcfeecfb3855582ab59a7c75e969d5f96ce50c3d201fd86d5a2857c22565764d5bb8a816c7b1e58f133ec318cd56274da36c5e3fb1a1 + languageName: node + linkType: hard + "graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" @@ -5716,6 +6401,13 @@ __metadata: languageName: node linkType: hard +"has-bigints@npm:^1.0.2": + version: 1.1.0 + resolution: "has-bigints@npm:1.1.0" + checksum: 10/90fb1b24d40d2472bcd1c8bd9dd479037ec240215869bdbff97b2be83acef57d28f7e96bdd003a21bed218d058b49097f4acc8821c05b1629cc5d48dd7bfcccd + languageName: node + linkType: hard + "has-flag@npm:^3.0.0": version: 3.0.0 resolution: "has-flag@npm:3.0.0" @@ -5730,6 +6422,38 @@ __metadata: languageName: node linkType: hard +"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: "npm:^1.0.0" + checksum: 10/2d8c9ab8cebb572e3362f7d06139a4592105983d4317e68f7adba320fe6ddfc8874581e0971e899e633fd5f72e262830edce36d5a0bc863dad17ad20572484b2 + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: 10/959385c98696ebbca51e7534e0dc723ada325efa3475350951363cce216d27373e0259b63edb599f72eb94d6cde8577b4b2375f080b303947e560f85692834fa + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: "npm:^1.0.3" + checksum: 10/c74c5f5ceee3c8a5b8bc37719840dc3749f5b0306d818974141dda2471a1a2ca6c8e46b9d6ac222c5345df7a901c9b6f350b1e6d62763fec877e26609a401bfe + languageName: node + linkType: hard + +"has-unicode@npm:^2.0.1": + version: 2.0.1 + resolution: "has-unicode@npm:2.0.1" + checksum: 10/041b4293ad6bf391e21c5d85ed03f412506d6623786b801c4ab39e4e6ca54993f13201bceb544d92963f9e0024e6e7fbf0cb1d84c9d6b31cb9c79c8c990d13d8 + languageName: node + linkType: hard + "hasha@npm:^5.0.0": version: 5.2.2 resolution: "hasha@npm:5.2.2" @@ -5740,7 +6464,7 @@ __metadata: languageName: node linkType: hard -"hasown@npm:^2.0.0": +"hasown@npm:^2.0.0, hasown@npm:^2.0.2": version: 2.0.2 resolution: "hasown@npm:2.0.2" dependencies: @@ -5869,6 +6593,13 @@ __metadata: languageName: node linkType: hard +"ignore@npm:^7.0.3": + version: 7.0.5 + resolution: "ignore@npm:7.0.5" + checksum: 10/f134b96a4de0af419196f52c529d5c6120c4456ff8a6b5a14ceaaa399f883e15d58d2ce651c9b69b9388491d4669dda47285d307e827de9304a53a1824801bc6 + languageName: node + linkType: hard + "import-cwd@npm:^3.0.0": version: 3.0.0 resolution: "import-cwd@npm:3.0.0" @@ -5947,6 +6678,17 @@ __metadata: languageName: node linkType: hard +"internal-slot@npm:^1.1.0": + version: 1.1.0 + resolution: "internal-slot@npm:1.1.0" + dependencies: + es-errors: "npm:^1.3.0" + hasown: "npm:^2.0.2" + side-channel: "npm:^1.1.0" + checksum: 10/1d5219273a3dab61b165eddf358815eefc463207db33c20fcfca54717da02e3f492003757721f972fd0bf21e4b426cab389c5427b99ceea4b8b670dc88ee6d4a + languageName: node + linkType: hard + "io-ts@npm:^2.1.2": version: 2.2.20 resolution: "io-ts@npm:2.2.20" @@ -5963,6 +6705,27 @@ __metadata: languageName: node linkType: hard +"is-arguments@npm:^1.1.1": + version: 1.2.0 + resolution: "is-arguments@npm:1.2.0" + dependencies: + call-bound: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.2" + checksum: 10/471a8ef631b8ee8829c43a8ab05c081700c0e25180c73d19f3bf819c1a8448c426a9e8e601f278973eca68966384b16ceb78b8c63af795b099cd199ea5afc457 + languageName: node + linkType: hard + +"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.5": + version: 3.0.5 + resolution: "is-array-buffer@npm:3.0.5" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + get-intrinsic: "npm:^1.2.6" + checksum: 10/ef1095c55b963cd0dcf6f88a113e44a0aeca91e30d767c475e7d746d28d1195b10c5076b94491a7a0cd85020ca6a4923070021d74651d093dc909e9932cf689b + languageName: node + linkType: hard + "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -5970,6 +6733,15 @@ __metadata: languageName: node linkType: hard +"is-bigint@npm:^1.1.0": + version: 1.1.0 + resolution: "is-bigint@npm:1.1.0" + dependencies: + has-bigints: "npm:^1.0.2" + checksum: 10/10cf327310d712fe227cfaa32d8b11814c214392b6ac18c827f157e1e85363cf9c8e2a22df526689bd5d25e53b58cc110894787afb54e138e7c504174dba15fd + languageName: node + linkType: hard + "is-binary-path@npm:~2.1.0": version: 2.1.0 resolution: "is-binary-path@npm:2.1.0" @@ -5979,6 +6751,23 @@ __metadata: languageName: node linkType: hard +"is-boolean-object@npm:^1.2.1": + version: 1.2.2 + resolution: "is-boolean-object@npm:1.2.2" + dependencies: + call-bound: "npm:^1.0.3" + has-tostringtag: "npm:^1.0.2" + checksum: 10/051fa95fdb99d7fbf653165a7e6b2cba5d2eb62f7ffa81e793a790f3fb5366c91c1b7b6af6820aa2937dd86c73aa3ca9d9ca98f500988457b1c59692c52ba911 + languageName: node + linkType: hard + +"is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 10/48a9297fb92c99e9df48706241a189da362bff3003354aea4048bd5f7b2eb0d823cd16d0a383cece3d76166ba16d85d9659165ac6fcce1ac12e6c649d66dbdb9 + languageName: node + linkType: hard + "is-core-module@npm:^2.13.0": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" @@ -5988,6 +6777,16 @@ __metadata: languageName: node linkType: hard +"is-date-object@npm:^1.0.5": + version: 1.1.0 + resolution: "is-date-object@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.2" + checksum: 10/3a811b2c3176fb31abee1d23d3dc78b6c65fd9c07d591fcb67553cab9e7f272728c3dd077d2d738b53f9a2103255b0a6e8dfc9568a7805c56a78b2563e8d1dec + languageName: node + linkType: hard + "is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": version: 2.2.1 resolution: "is-docker@npm:2.2.1" @@ -6041,6 +6840,23 @@ __metadata: languageName: node linkType: hard +"is-map@npm:^2.0.2, is-map@npm:^2.0.3": + version: 2.0.3 + resolution: "is-map@npm:2.0.3" + checksum: 10/8de7b41715b08bcb0e5edb0fb9384b80d2d5bcd10e142188f33247d19ff078abaf8e9b6f858e2302d8d05376a26a55cd23a3c9f8ab93292b02fcd2cc9e4e92bb + languageName: node + linkType: hard + +"is-number-object@npm:^1.1.1": + version: 1.1.1 + resolution: "is-number-object@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.3" + has-tostringtag: "npm:^1.0.2" + checksum: 10/a5922fb8779ab1ea3b8a9c144522b3d0bea5d9f8f23f7a72470e61e1e4df47714e28e0154ac011998b709cce260c3c9447ad3cd24a96c2f2a0abfdb2cbdc76c8 + languageName: node + linkType: hard + "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" @@ -6069,6 +6885,34 @@ __metadata: languageName: node linkType: hard +"is-regex@npm:^1.1.4, is-regex@npm:^1.2.1": + version: 1.2.1 + resolution: "is-regex@npm:1.2.1" + dependencies: + call-bound: "npm:^1.0.2" + gopd: "npm:^1.2.0" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10/c42b7efc5868a5c9a4d8e6d3e9816e8815c611b09535c00fead18a1138455c5cb5e1887f0023a467ad3f9c419d62ba4dc3d9ba8bafe55053914d6d6454a945d2 + languageName: node + linkType: hard + +"is-set@npm:^2.0.2, is-set@npm:^2.0.3": + version: 2.0.3 + resolution: "is-set@npm:2.0.3" + checksum: 10/5685df33f0a4a6098a98c72d94d67cad81b2bc72f1fb2091f3d9283c4a1c582123cd709145b02a9745f0ce6b41e3e43f1c944496d1d74d4ea43358be61308669 + languageName: node + linkType: hard + +"is-shared-array-buffer@npm:^1.0.2": + version: 1.0.4 + resolution: "is-shared-array-buffer@npm:1.0.4" + dependencies: + call-bound: "npm:^1.0.3" + checksum: 10/0380d7c60cc692856871526ffcd38a8133818a2ee42d47bb8008248a0cd2121d8c8b5f66b6da3cac24bc5784553cacb6faaf678f66bc88c6615b42af2825230e + languageName: node + linkType: hard + "is-stream@npm:^2.0.0": version: 2.0.1 resolution: "is-stream@npm:2.0.1" @@ -6083,6 +6927,27 @@ __metadata: languageName: node linkType: hard +"is-string@npm:^1.0.7, is-string@npm:^1.1.1": + version: 1.1.1 + resolution: "is-string@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.3" + has-tostringtag: "npm:^1.0.2" + checksum: 10/5277cb9e225a7cc8a368a72623b44a99f2cfa139659c6b203553540681ad4276bfc078420767aad0e73eef5f0bd07d4abf39a35d37ec216917879d11cebc1f8b + languageName: node + linkType: hard + +"is-symbol@npm:^1.1.1": + version: 1.1.1 + resolution: "is-symbol@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.2" + has-symbols: "npm:^1.1.0" + safe-regex-test: "npm:^1.1.0" + checksum: 10/db495c0d8cd0a7a66b4f4ef7fccee3ab5bd954cb63396e8ac4d32efe0e9b12fdfceb851d6c501216a71f4f21e5ff20fc2ee845a3d52d455e021c466ac5eb2db2 + languageName: node + linkType: hard + "is-typedarray@npm:^1.0.0": version: 1.0.0 resolution: "is-typedarray@npm:1.0.0" @@ -6097,6 +6962,23 @@ __metadata: languageName: node linkType: hard +"is-weakmap@npm:^2.0.2": + version: 2.0.2 + resolution: "is-weakmap@npm:2.0.2" + checksum: 10/a7b7e23206c542dcf2fa0abc483142731788771527e90e7e24f658c0833a0d91948a4f7b30d78f7a65255a48512e41a0288b778ba7fc396137515c12e201fd11 + languageName: node + linkType: hard + +"is-weakset@npm:^2.0.3": + version: 2.0.4 + resolution: "is-weakset@npm:2.0.4" + dependencies: + call-bound: "npm:^1.0.3" + get-intrinsic: "npm:^1.2.6" + checksum: 10/1d5e1d0179beeed3661125a6faa2e59bfb48afda06fc70db807f178aa0ebebc3758fb6358d76b3d528090d5ef85148c345dcfbf90839592fe293e3e5e82f2134 + languageName: node + linkType: hard + "is-windows@npm:^0.2.0": version: 0.2.0 resolution: "is-windows@npm:0.2.0" @@ -6120,6 +7002,13 @@ __metadata: languageName: node linkType: hard +"isarray@npm:^2.0.5": + version: 2.0.5 + resolution: "isarray@npm:2.0.5" + checksum: 10/1d8bc7911e13bb9f105b1b3e0b396c787a9e63046af0b8fe0ab1414488ab06b2b099b87a2d8a9e31d21c9a6fad773c7fc8b257c4880f2d957274479d28ca3414 + languageName: node + linkType: hard + "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" @@ -6828,6 +7717,17 @@ __metadata: languageName: node linkType: hard +"js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10/c138a34a3fd0d08ebaf71273ad4465569a483b8a639e0b118ff65698d257c2791d3199e3f303631f2cb98213fa7b5f5d6a4621fd0fff819421b990d30d967140 + languageName: node + linkType: hard + "jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": version: 3.0.2 resolution: "jsesc@npm:3.0.2" @@ -6888,6 +7788,13 @@ __metadata: languageName: node linkType: hard +"leven@npm:^4.0.0": + version: 4.0.0 + resolution: "leven@npm:4.0.0" + checksum: 10/d70b9fef4cca487a38021bb173a5cae98d39b1c7f4a5b2439763bd89df8e389f178a3c941b6fc3fab1582f5052b5e8c91353d9607799a2ad3841e7ea22f9720f + languageName: node + linkType: hard + "lilconfig@npm:2.1.0, lilconfig@npm:^2.0.5": version: 2.1.0 resolution: "lilconfig@npm:2.1.0" @@ -6990,6 +7897,15 @@ __metadata: languageName: node linkType: hard +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: "npm:^5.0.0" + checksum: 10/72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + languageName: node + linkType: hard + "locate-path@npm:^7.1.0, locate-path@npm:^7.2.0": version: 7.2.0 resolution: "locate-path@npm:7.2.0" @@ -7112,6 +8028,15 @@ __metadata: languageName: node linkType: hard +"lz-string@npm:^1.5.0": + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" + bin: + lz-string: bin/bin.js + checksum: 10/e86f0280e99a8d8cd4eef24d8601ddae15ce54e43ac9990dfcb79e1e081c255ad24424a30d78d2ad8e51a8ce82a66a930047fed4b4aa38c6f0b392ff9300edfc + languageName: node + linkType: hard + "magic-string@npm:^0.30.0": version: 0.30.5 resolution: "magic-string@npm:0.30.5" @@ -7184,6 +8109,13 @@ __metadata: languageName: node linkType: hard +"math-intrinsics@npm:^1.1.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 10/11df2eda46d092a6035479632e1ec865b8134bdfc4bd9e571a656f4191525404f13a283a515938c3a8de934dbfd9c09674d9da9fa831e6eb7e22b50b197d2edd + languageName: node + linkType: hard + "meant@npm:^1.0.1": version: 1.0.3 resolution: "meant@npm:1.0.3" @@ -7224,7 +8156,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^4.0.4": +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -7389,6 +8321,18 @@ __metadata: languageName: node linkType: hard +"mlly@npm:^1.7.4": + version: 1.7.4 + resolution: "mlly@npm:1.7.4" + dependencies: + acorn: "npm:^8.14.0" + pathe: "npm:^2.0.1" + pkg-types: "npm:^1.3.0" + ufo: "npm:^1.5.4" + checksum: 10/1b36163d38c2331f8ae480e6a11da3d15927a2148d729fcd9df6d0059ca74869aa693931bd1f762f82eb534b84c921bdfbc036eb0e4da4faeb55f1349d254f35 + languageName: node + linkType: hard + "module-alias@npm:^2.2.2": version: 2.2.3 resolution: "module-alias@npm:2.2.3" @@ -7396,6 +8340,13 @@ __metadata: languageName: node linkType: hard +"mrmime@npm:^2.0.0": + version: 2.0.1 + resolution: "mrmime@npm:2.0.1" + checksum: 10/1f966e2c05b7264209c4149ae50e8e830908eb64dd903535196f6ad72681fa109b794007288a3c2814f7a1ecf9ca192769909c0c374d974d604a8de5fc095d4a + languageName: node + linkType: hard + "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -7430,6 +8381,15 @@ __metadata: languageName: node linkType: hard +"nanoid@npm:^4.0.2": + version: 4.0.2 + resolution: "nanoid@npm:4.0.2" + bin: + nanoid: bin/nanoid.js + checksum: 10/8c0c267de44cddcad79c3361d2cbd281694c36bf7ab6a163f36dd8f6e6ee43e9783561302c55fab2986a2fa847e7a6b30fedabd1e117fdb8aecc5ab21555428d + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -7570,6 +8530,18 @@ __metadata: languageName: node linkType: hard +"npmlog@npm:^7.0.0": + version: 7.0.1 + resolution: "npmlog@npm:7.0.1" + dependencies: + are-we-there-yet: "npm:^4.0.0" + console-control-strings: "npm:^1.1.0" + gauge: "npm:^5.0.0" + set-blocking: "npm:^2.0.0" + checksum: 10/37cc2796a4b47bb82b5fc5d111f812d5856b30f8dd29d3e9ecce30fe966bd4389926e818ec5e7f11e9fcc60220ef9c65d7e4c56dd5101ee19d8f5e60320e558b + languageName: node + linkType: hard + "nyc@npm:^15.1.0": version: 15.1.0 resolution: "nyc@npm:15.1.0" @@ -7614,6 +8586,44 @@ __metadata: languageName: node linkType: hard +"object-inspect@npm:^1.13.3": + version: 1.13.4 + resolution: "object-inspect@npm:1.13.4" + checksum: 10/aa13b1190ad3e366f6c83ad8a16ed37a19ed57d267385aa4bfdccda833d7b90465c057ff6c55d035a6b2e52c1a2295582b294217a0a3a1ae7abdd6877ef781fb + languageName: node + linkType: hard + +"object-is@npm:^1.1.5": + version: 1.1.6 + resolution: "object-is@npm:1.1.6" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + checksum: 10/4f6f544773a595da21c69a7531e0e1d6250670f4e09c55f47eb02c516035cfcb1b46ceb744edfd3ecb362309dbccb6d7f88e43bf42e4d4595ac10a329061053a + languageName: node + linkType: hard + +"object-keys@npm:^1.1.1": + version: 1.1.1 + resolution: "object-keys@npm:1.1.1" + checksum: 10/3d81d02674115973df0b7117628ea4110d56042e5326413e4b4313f0bcdf7dd78d4a3acef2c831463fa3796a66762c49daef306f4a0ea1af44877d7086d73bde + languageName: node + linkType: hard + +"object.assign@npm:^4.1.4": + version: 4.1.7 + resolution: "object.assign@npm:4.1.7" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + has-symbols: "npm:^1.1.0" + object-keys: "npm:^1.1.1" + checksum: 10/3fe28cdd779f2a728a9a66bd688679ba231a2b16646cd1e46b528fe7c947494387dda4bc189eff3417f3717ef4f0a8f2439347cf9a9aa3cef722fbfd9f615587 + languageName: node + linkType: hard + "objectorarray@npm:^1.0.5": version: 1.0.5 resolution: "objectorarray@npm:1.0.5" @@ -7648,7 +8658,7 @@ __metadata: languageName: node linkType: hard -"open@npm:^8.0.4": +"open@npm:^8.0.4, open@npm:^8.4.0": version: 8.4.2 resolution: "open@npm:8.4.2" dependencies: @@ -7684,7 +8694,7 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^3.1.0": +"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": version: 3.1.0 resolution: "p-limit@npm:3.1.0" dependencies: @@ -7702,6 +8712,15 @@ __metadata: languageName: node linkType: hard +"p-limit@npm:^6.2.0": + version: 6.2.0 + resolution: "p-limit@npm:6.2.0" + dependencies: + yocto-queue: "npm:^1.1.1" + checksum: 10/70e8df3e5f1c173c9bd9fa8390a3c5c2797505240ae42973536992b1f5f59a922153c2f35ff1bf36fb72a0f025b0f13fca062a4233e830adad446960d56b4d84 + languageName: node + linkType: hard + "p-locate@npm:^2.0.0": version: 2.0.0 resolution: "p-locate@npm:2.0.0" @@ -7720,6 +8739,15 @@ __metadata: languageName: node linkType: hard +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: "npm:^3.0.2" + checksum: 10/1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 + languageName: node + linkType: hard + "p-locate@npm:^6.0.0": version: 6.0.0 resolution: "p-locate@npm:6.0.0" @@ -7780,6 +8808,13 @@ __metadata: languageName: node linkType: hard +"package-manager-detector@npm:^1.1.0": + version: 1.3.0 + resolution: "package-manager-detector@npm:1.3.0" + checksum: 10/b21155d53a8ab96d5be3bfae43cc1d397bf363782b922d1f6967d220d2a9f08234ebb76035318bf92822ce761d10451959f01019faebc08fdb4d4a8bc3103da6 + languageName: node + linkType: hard + "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -7918,6 +8953,20 @@ __metadata: languageName: node linkType: hard +"path-type@npm:^6.0.0": + version: 6.0.0 + resolution: "path-type@npm:6.0.0" + checksum: 10/b9f6eaf7795c48d5c9bc4c6bc3ac61315b8d36975a73497ab2e02b764c0836b71fb267ea541863153f633a069a1c2ed3c247cb781633842fc571c655ac57c00e + languageName: node + linkType: hard + +"pathe@npm:^2.0.1": + version: 2.0.3 + resolution: "pathe@npm:2.0.3" + checksum: 10/01e9a69928f39087d96e1751ce7d6d50da8c39abf9a12e0ac2389c42c83bc76f78c45a475bd9026a02e6a6f79be63acc75667df855862fe567d99a00a540d23d + languageName: node + linkType: hard + "pathval@npm:^2.0.0": version: 2.0.0 resolution: "pathval@npm:2.0.0" @@ -7932,7 +8981,7 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.0, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 10/60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc @@ -7946,6 +8995,13 @@ __metadata: languageName: node linkType: hard +"picoquery@npm:^1.4.0": + version: 1.5.0 + resolution: "picoquery@npm:1.5.0" + checksum: 10/8b95fa069fe2e6e321010bd7cac6fd8c4601921e306a9da93efa7b2e5e8483733053ad8f2d8fd15ebef077f85775aab2aaddeff2cec7389e61a3b9041c151086 + languageName: node + linkType: hard + "pidtree@npm:0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" @@ -7970,9 +9026,9 @@ __metadata: linkType: hard "pirates@npm:^4.0.1, pirates@npm:^4.0.4": - version: 4.0.6 - resolution: "pirates@npm:4.0.6" - checksum: 10/d02dda76f4fec1cbdf395c36c11cf26f76a644f9f9a1bfa84d3167d0d3154d5289aacc72677aa20d599bb4a6937a471de1b65c995e2aea2d8687cbcd7e43ea5f + version: 4.0.7 + resolution: "pirates@npm:4.0.7" + checksum: 10/2427f371366081ae42feb58214f04805d6b41d6b84d74480ebcc9e0ddbd7105a139f7c653daeaf83ad8a1a77214cf07f64178e76de048128fec501eab3305a96 languageName: node linkType: hard @@ -8006,6 +9062,26 @@ __metadata: languageName: node linkType: hard +"pkg-dir@npm:^7.0.0": + version: 7.0.0 + resolution: "pkg-dir@npm:7.0.0" + dependencies: + find-up: "npm:^6.3.0" + checksum: 10/94298b20a446bfbbd66604474de8a0cdd3b8d251225170970f15d9646f633e056c80520dd5b4c1d1050c9fed8f6a9e5054b141c93806439452efe72e57562c03 + languageName: node + linkType: hard + +"pkg-types@npm:^1.3.0": + version: 1.3.1 + resolution: "pkg-types@npm:1.3.1" + dependencies: + confbox: "npm:^0.1.8" + mlly: "npm:^1.7.4" + pathe: "npm:^2.0.1" + checksum: 10/6d491f2244597b24fb59a50e3c258f27da3839555d2a4e112b31bcf536e9359fc4edc98639cd74d2cf16fcd4269e5a09d99fc05d89e2acc896a2f027c2f6ec44 + languageName: node + linkType: hard + "pkg-up@npm:^5.0.0": version: 5.0.0 resolution: "pkg-up@npm:5.0.0" @@ -8062,6 +9138,13 @@ __metadata: languageName: node linkType: hard +"possible-typed-array-names@npm:^1.0.0": + version: 1.1.0 + resolution: "possible-typed-array-names@npm:1.1.0" + checksum: 10/2f44137b8d3dd35f4a7ba7469eec1cd9cfbb46ec164b93a5bc1f4c3d68599c9910ee3b91da1d28b4560e9cc8414c3cd56fedc07259c67e52cc774476270d3302 + languageName: node + linkType: hard + "postcss-load-config@npm:^3.0.1": version: 3.1.4 resolution: "postcss-load-config@npm:3.1.4" @@ -8091,6 +9174,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:*": + version: 3.6.0 + resolution: "prettier@npm:3.6.0" + bin: + prettier: bin/prettier.cjs + checksum: 10/5c0db5a8e32d2ac9824d8bc652990dfd534bc7a7c6f26d99d50c9146a2d9befb3cd1cc86c4aee71caf6b264d421a4b4b5961e31a62dda3790b8fec2521a76eef + languageName: node + linkType: hard + "prettier@npm:^2.8.1": version: 2.8.8 resolution: "prettier@npm:2.8.8" @@ -8100,6 +9192,17 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^27.0.2": + version: 27.5.1 + resolution: "pretty-format@npm:27.5.1" + dependencies: + ansi-regex: "npm:^5.0.1" + ansi-styles: "npm:^5.0.0" + react-is: "npm:^17.0.1" + checksum: 10/248990cbef9e96fb36a3e1ae6b903c551ca4ddd733f8d0912b9cc5141d3d0b3f9f8dfb4d799fb1c6723382c9c2083ffbfa4ad43ff9a0e7535d32d41fd5f01da6 + languageName: node + linkType: hard + "pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": version: 29.7.0 resolution: "pretty-format@npm:29.7.0" @@ -8111,6 +9214,13 @@ __metadata: languageName: node linkType: hard +"pretty-hrtime@npm:^1.0.3": + version: 1.0.3 + resolution: "pretty-hrtime@npm:1.0.3" + checksum: 10/0a462e88a0a3fd3320288fd8307f488974326ae8e13eea8c27f590f8ee767ccb59cf35bcae1cadff241cd8b72f3e373fc76ff1be95243649899bf8c816874af9 + languageName: node + linkType: hard + "pretty-ms@npm:^7.0.0": version: 7.0.1 resolution: "pretty-ms@npm:7.0.1" @@ -8249,6 +9359,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^17.0.1": + version: 17.0.2 + resolution: "react-is@npm:17.0.2" + checksum: 10/73b36281e58eeb27c9cc6031301b6ae19ecdc9f18ae2d518bdb39b0ac564e65c5779405d623f1df9abf378a13858b79442480244bd579968afc1faf9a2ce5e05 + languageName: node + linkType: hard + "react-is@npm:^18.0.0": version: 18.2.0 resolution: "react-is@npm:18.2.0" @@ -8256,10 +9373,10 @@ __metadata: languageName: node linkType: hard -"react-refresh@npm:^0.14.0": - version: 0.14.0 - resolution: "react-refresh@npm:0.14.0" - checksum: 10/75941262ce3ed4fc79b52492943fd59692f29b84f30f3822713b7e920f28e85c62a4386f85cbfbaea95ed62d3e74209f0a0bb065904b7ab2f166a74ac3812e2a +"react-refresh@npm:^0.17.0": + version: 0.17.0 + resolution: "react-refresh@npm:0.17.0" + checksum: 10/5e94f07d43bb1cfdc9b0c6e0c8c73e754005489950dcff1edb53aa8451d1d69a47b740b195c7c80fb4eb511c56a3585dc55eddd83f0097fb5e015116a1460467 languageName: node linkType: hard @@ -8369,13 +9486,6 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.14.0": - version: 0.14.0 - resolution: "regenerator-runtime@npm:0.14.0" - checksum: 10/6c19495baefcf5fbb18a281b56a97f0197b5f219f42e571e80877f095320afac0bdb31dab8f8186858e6126950068c3f17a1226437881e3e70446ea66751897c - languageName: node - linkType: hard - "regenerator-transform@npm:^0.15.2": version: 0.15.2 resolution: "regenerator-transform@npm:0.15.2" @@ -8385,6 +9495,20 @@ __metadata: languageName: node linkType: hard +"regexp.prototype.flags@npm:^1.5.1": + version: 1.5.4 + resolution: "regexp.prototype.flags@npm:1.5.4" + dependencies: + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-errors: "npm:^1.3.0" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + set-function-name: "npm:^2.0.2" + checksum: 10/8ab897ca445968e0b96f6237641510f3243e59c180ee2ee8d83889c52ff735dd1bf3657fcd36db053e35e1d823dd53f2565d0b8021ea282c9fe62401c6c3bd6d + languageName: node + linkType: hard + "regexpu-core@npm:^6.1.1": version: 6.1.1 resolution: "regexpu-core@npm:6.1.1" @@ -8718,6 +9842,17 @@ __metadata: languageName: node linkType: hard +"safe-regex-test@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex-test@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + is-regex: "npm:^1.2.1" + checksum: 10/ebdb61f305bf4756a5b023ad86067df5a11b26898573afe9e52a548a63c3bd594825d9b0e2dde2eb3c94e57e0e04ac9929d4107c394f7b8e56a4613bed46c69a + languageName: node + linkType: hard + "safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" @@ -8787,6 +9922,32 @@ __metadata: languageName: node linkType: hard +"set-function-length@npm:^1.2.2": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + checksum: 10/505d62b8e088468917ca4e3f8f39d0e29f9a563b97dbebf92f4bd2c3172ccfb3c5b8e4566d5fcd00784a00433900e7cb8fbc404e2dbd8c3818ba05bb9d4a8a6d + languageName: node + linkType: hard + +"set-function-name@npm:^2.0.2": + version: 2.0.2 + resolution: "set-function-name@npm:2.0.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + functions-have-names: "npm:^1.2.3" + has-property-descriptors: "npm:^1.0.2" + checksum: 10/c7614154a53ebf8c0428a6c40a3b0b47dac30587c1a19703d1b75f003803f73cdfa6a93474a9ba678fa565ef5fbddc2fae79bca03b7d22ab5fd5163dbe571a74 + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -8810,6 +9971,54 @@ __metadata: languageName: node linkType: hard +"side-channel-list@npm:^1.0.0": + version: 1.0.0 + resolution: "side-channel-list@npm:1.0.0" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + checksum: 10/603b928997abd21c5a5f02ae6b9cc36b72e3176ad6827fab0417ead74580cc4fb4d5c7d0a8a2ff4ead34d0f9e35701ed7a41853dac8a6d1a664fcce1a044f86f + languageName: node + linkType: hard + +"side-channel-map@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-map@npm:1.0.1" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + checksum: 10/5771861f77feefe44f6195ed077a9e4f389acc188f895f570d56445e251b861754b547ea9ef73ecee4e01fdada6568bfe9020d2ec2dfc5571e9fa1bbc4a10615 + languageName: node + linkType: hard + +"side-channel-weakmap@npm:^1.0.2": + version: 1.0.2 + resolution: "side-channel-weakmap@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + side-channel-map: "npm:^1.0.1" + checksum: 10/a815c89bc78c5723c714ea1a77c938377ea710af20d4fb886d362b0d1f8ac73a17816a5f6640f354017d7e292a43da9c5e876c22145bac00b76cfb3468001736 + languageName: node + linkType: hard + +"side-channel@npm:^1.0.4, side-channel@npm:^1.1.0": + version: 1.1.0 + resolution: "side-channel@npm:1.1.0" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + side-channel-list: "npm:^1.0.0" + side-channel-map: "npm:^1.0.1" + side-channel-weakmap: "npm:^1.0.2" + checksum: 10/7d53b9db292c6262f326b6ff3bc1611db84ece36c2c7dc0e937954c13c73185b0406c56589e2bb8d071d6fee468e14c39fb5d203ee39be66b7b8174f179afaba + languageName: node + linkType: hard + "signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -8835,6 +10044,17 @@ __metadata: languageName: node linkType: hard +"sirv@npm:^2.0.4": + version: 2.0.4 + resolution: "sirv@npm:2.0.4" + dependencies: + "@polka/url": "npm:^1.0.0-next.24" + mrmime: "npm:^2.0.0" + totalist: "npm:^3.0.0" + checksum: 10/24f42cf06895017e589c9d16fc3f1c6c07fe8b0dbafce8a8b46322cfba67b7f2498610183954cb0e9d089c8cb60002a7ee7e8bca6a91a0d7042bfbc3473c95c3 + languageName: node + linkType: hard + "sisteransi@npm:^1.0.5": version: 1.0.5 resolution: "sisteransi@npm:1.0.5" @@ -8863,7 +10083,7 @@ __metadata: languageName: node linkType: hard -"slash@npm:^5.0.0": +"slash@npm:^5.0.0, slash@npm:^5.1.0": version: 5.1.0 resolution: "slash@npm:5.1.0" checksum: 10/2c41ec6fb1414cd9bba0fa6b1dd00e8be739e3fe85d079c69d4b09ca5f2f86eafd18d9ce611c0c0f686428638a36c272a6ac14799146a8295f259c10cc45cde4 @@ -9050,6 +10270,23 @@ __metadata: languageName: node linkType: hard +"stop-iteration-iterator@npm:^1.0.0": + version: 1.1.0 + resolution: "stop-iteration-iterator@npm:1.1.0" + dependencies: + es-errors: "npm:^1.3.0" + internal-slot: "npm:^1.1.0" + checksum: 10/ff36c4db171ee76c936ccfe9541946b77017f12703d4c446652017356816862d3aa029a64e7d4c4ceb484e00ed4a81789333896390d808458638f3a216aa1f41 + languageName: node + linkType: hard + +"storybook-src@git+https://github.com/storybookjs/storybook.git#jeppe/migrate-core-esm-only-4": + version: 0.0.0 + resolution: "storybook-src@https://github.com/storybookjs/storybook.git#commit=3ef90bee1e1261ad3ce24c5f72c831084ccac7af" + checksum: 10/22bf2256e283c96d6ee5e635864ab5d409a1a3d8dae70c9cd2636731900aeb7818b79e0c068c63ade8d9f8fd69496d0bee44366924deffdd92a11fbd0361bd22 + languageName: node + linkType: hard + "storybook@npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0": version: 9.1.0-alpha.6 resolution: "storybook@npm:9.1.0-alpha.6" @@ -9103,7 +10340,7 @@ __metadata: languageName: node linkType: hard -"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: @@ -9143,7 +10380,7 @@ __metadata: languageName: node linkType: hard -"strip-ansi@npm:^7.0.1": +"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": version: 7.1.0 resolution: "strip-ansi@npm:7.1.0" dependencies: @@ -9205,6 +10442,13 @@ __metadata: languageName: node linkType: hard +"strip-json-comments@npm:^5.0.1": + version: 5.0.2 + resolution: "strip-json-comments@npm:5.0.2" + checksum: 10/986064b73898edc77113cd6147b32f36e299869f3675ed81c3166492a6d8f02d918a492604d1982dab40ca727a86969cb91aa44d6632626f8d7c3c6ead1216bb + languageName: node + linkType: hard + "strip-json-comments@npm:~2.0.1": version: 2.0.1 resolution: "strip-json-comments@npm:2.0.1" @@ -9213,12 +10457,12 @@ __metadata: linkType: hard "sucrase@npm:^3.20.3": - version: 3.34.0 - resolution: "sucrase@npm:3.34.0" + version: 3.35.0 + resolution: "sucrase@npm:3.35.0" dependencies: "@jridgewell/gen-mapping": "npm:^0.3.2" commander: "npm:^4.0.0" - glob: "npm:7.1.6" + glob: "npm:^10.3.10" lines-and-columns: "npm:^1.1.6" mz: "npm:^2.7.0" pirates: "npm:^4.0.1" @@ -9226,7 +10470,7 @@ __metadata: bin: sucrase: bin/sucrase sucrase-node: bin/sucrase-node - checksum: 10/b64d154a7a7eaa4b39668c3124bd08cd505f683d36ac4fb94def6491fb3af155b24b6e41b55011e38582e7d59c440af79ffba8709f3da78aeedf2f07b6d51d84 + checksum: 10/bc601558a62826f1c32287d4fdfa4f2c09fe0fec4c4d39d0e257fd9116d7d6227a18309721d4185ec84c9dc1af0d5ec0e05a42a337fbb74fc293e068549aacbe languageName: node linkType: hard @@ -9307,6 +10551,13 @@ __metadata: languageName: node linkType: hard +"telejson@npm:8.0.0": + version: 8.0.0 + resolution: "telejson@npm:8.0.0" + checksum: 10/5051a841cf8d160dc529c4118148f38d21482991fbdad200cea0f457a392433f6e4dd1ec677bafd9790015d7369313d1939404d7973fddbc6337e480b3ac8b96 + languageName: node + linkType: hard + "temp-dir@npm:^2.0.0": version: 2.0.0 resolution: "temp-dir@npm:2.0.0" @@ -9366,7 +10617,7 @@ __metadata: languageName: node linkType: hard -"tiny-invariant@npm:^1.3.3": +"tiny-invariant@npm:^1.3.1, tiny-invariant@npm:^1.3.3": version: 1.3.3 resolution: "tiny-invariant@npm:1.3.3" checksum: 10/5e185c8cc2266967984ce3b352a4e57cb89dad5a8abb0dea21468a6ecaa67cd5bb47a3b7a85d08041008644af4f667fb8b6575ba38ba5fb00b3b5068306e59fe @@ -9420,6 +10671,13 @@ __metadata: languageName: node linkType: hard +"totalist@npm:^3.0.0": + version: 3.0.1 + resolution: "totalist@npm:3.0.1" + checksum: 10/5132d562cf88ff93fd710770a92f31dbe67cc19b5c6ccae2efc0da327f0954d211bbfd9456389655d726c624f284b4a23112f56d1da931ca7cfabbe1f45e778a + languageName: node + linkType: hard + "tr46@npm:^1.0.1": version: 1.0.1 resolution: "tr46@npm:1.0.1" @@ -9576,7 +10834,14 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2, tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.5.0": +"tslib@npm:^1.13.0": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: 10/7dbf34e6f55c6492637adb81b555af5e3b4f9cc6b998fb440dac82d3b42bdc91560a35a5fb75e20e24a076c651438234da6743d139e4feabf0783f3cdfe1dddb + languageName: node + linkType: hard + +"tslib@npm:^2, tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.5.0": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7 @@ -9654,7 +10919,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^1.0.2": +"type-fest@npm:^1.0.1, type-fest@npm:^1.0.2": version: 1.4.0 resolution: "type-fest@npm:1.4.0" checksum: 10/89875c247564601c2650bacad5ff80b859007fbdb6c9e43713ae3ffa3f584552eea60f33711dd762e16496a1ab4debd409822627be14097d9a17e39c49db591a @@ -9668,6 +10933,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^4.18.1": + version: 4.41.0 + resolution: "type-fest@npm:4.41.0" + checksum: 10/617ace794ac0893c2986912d28b3065ad1afb484cad59297835a0807dc63286c39e8675d65f7de08fafa339afcb8fe06a36e9a188b9857756ae1e92ee8bda212 + languageName: node + linkType: hard + "typedarray-to-buffer@npm:^3.1.5": version: 3.1.5 resolution: "typedarray-to-buffer@npm:3.1.5" @@ -9718,6 +10990,13 @@ __metadata: languageName: node linkType: hard +"ufo@npm:^1.5.4": + version: 1.6.1 + resolution: "ufo@npm:1.6.1" + checksum: 10/088a68133b93af183b093e5a8730a40fe7fd675d3dc0656ea7512f180af45c92300c294f14d4d46d4b2b553e3e52d3b13d4856b9885e620e7001edf85531234e + languageName: node + linkType: hard + "undici-types@npm:~6.21.0": version: 6.21.0 resolution: "undici-types@npm:6.21.0" @@ -9763,6 +11042,13 @@ __metadata: languageName: node linkType: hard +"unicorn-magic@npm:^0.3.0": + version: 0.3.0 + resolution: "unicorn-magic@npm:0.3.0" + checksum: 10/bdd7d7c522f9456f32a0b77af23f8854f9a7db846088c3868ec213f9550683ab6a2bdf3803577eacbafddb4e06900974385841ccb75338d17346ccef45f9cb01 + languageName: node + linkType: hard + "unique-filename@npm:^3.0.0": version: 3.0.0 resolution: "unique-filename@npm:3.0.0" @@ -9790,6 +11076,15 @@ __metadata: languageName: node linkType: hard +"unique-string@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-string@npm:3.0.0" + dependencies: + crypto-random-string: "npm:^4.0.0" + checksum: 10/1a1e2e7d02eab1bb10f720475da735e1990c8a5ff34edd1a3b6bc31590cb4210b7a1233d779360cc622ce11c211e43afa1628dd658f35d3e6a89964b622940df + languageName: node + linkType: hard + "universal-user-agent@npm:^6.0.0": version: 6.0.1 resolution: "universal-user-agent@npm:6.0.1" @@ -9809,6 +11104,13 @@ __metadata: languageName: node linkType: hard +"untildify@npm:^4.0.0": + version: 4.0.0 + resolution: "untildify@npm:4.0.0" + checksum: 10/39ced9c418a74f73f0a56e1ba4634b4d959422dff61f4c72a8e39f60b99380c1b45ed776fbaa0a4101b157e4310d873ad7d114e8534ca02609b4916bb4187fb9 + languageName: node + linkType: hard + "update-browserslist-db@npm:^1.1.1": version: 1.1.1 resolution: "update-browserslist-db@npm:1.1.1" @@ -9996,6 +11298,16 @@ __metadata: languageName: node linkType: hard +"watchpack@npm:^2.2.0": + version: 2.4.4 + resolution: "watchpack@npm:2.4.4" + dependencies: + glob-to-regexp: "npm:^0.4.1" + graceful-fs: "npm:^4.1.2" + checksum: 10/cfa3473fc12a1a1b88123056941e90c462a67aedc10b242229eeeccdd45ed0b763c3b591caaffb0f7d77295b539b5518bb1ad3bcd891ae6505dfeae4cf51fd15 + languageName: node + linkType: hard + "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" @@ -10045,6 +11357,31 @@ __metadata: languageName: node linkType: hard +"which-boxed-primitive@npm:^1.0.2": + version: 1.1.1 + resolution: "which-boxed-primitive@npm:1.1.1" + dependencies: + is-bigint: "npm:^1.1.0" + is-boolean-object: "npm:^1.2.1" + is-number-object: "npm:^1.1.1" + is-string: "npm:^1.1.1" + is-symbol: "npm:^1.1.1" + checksum: 10/a877c0667bc089518c83ad4d845cf8296b03efe3565c1de1940c646e00a2a1ae9ed8a185bcfa27cbf352de7906f0616d83b9d2f19ca500ee02a551fb5cf40740 + languageName: node + linkType: hard + +"which-collection@npm:^1.0.1": + version: 1.0.2 + resolution: "which-collection@npm:1.0.2" + dependencies: + is-map: "npm:^2.0.3" + is-set: "npm:^2.0.3" + is-weakmap: "npm:^2.0.2" + is-weakset: "npm:^2.0.3" + checksum: 10/674bf659b9bcfe4055f08634b48a8588e879161b9fefed57e9ec4ff5601e4d50a05ccd76cf10f698ef5873784e5df3223336d56c7ce88e13bcf52ebe582fc8d7 + languageName: node + linkType: hard + "which-module@npm:^2.0.0": version: 2.0.1 resolution: "which-module@npm:2.0.1" @@ -10052,6 +11389,21 @@ __metadata: languageName: node linkType: hard +"which-typed-array@npm:^1.1.13": + version: 1.1.19 + resolution: "which-typed-array@npm:1.1.19" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + for-each: "npm:^0.3.5" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + has-tostringtag: "npm:^1.0.2" + checksum: 10/12be30fb88567f9863186bee1777f11bea09dd59ed8b3ce4afa7dd5cade75e2f4cc56191a2da165113cc7cf79987ba021dac1e22b5b62aa7e5c56949f2469a68 + languageName: node + linkType: hard + "which@npm:^1.2.12": version: 1.3.1 resolution: "which@npm:1.3.1" @@ -10085,6 +11437,15 @@ __metadata: languageName: node linkType: hard +"wide-align@npm:^1.1.5": + version: 1.1.5 + resolution: "wide-align@npm:1.1.5" + dependencies: + string-width: "npm:^1.0.2 || 2 || 3 || 4" + checksum: 10/d5f8027b9a8255a493a94e4ec1b74a27bff6679d5ffe29316a3215e4712945c84ef73ca4045c7e20ae7d0c72f5f57f296e04a4928e773d4276a2f1222e4c2e99 + languageName: node + linkType: hard + "wordwrapjs@npm:^4.0.0": version: 4.0.1 resolution: "wordwrapjs@npm:4.0.1" @@ -10286,9 +11647,9 @@ __metadata: languageName: node linkType: hard -"yocto-queue@npm:^1.0.0": - version: 1.1.1 - resolution: "yocto-queue@npm:1.1.1" - checksum: 10/f2e05b767ed3141e6372a80af9caa4715d60969227f38b1a4370d60bffe153c9c5b33a862905609afc9b375ec57cd40999810d20e5e10229a204e8bde7ef255c +"yocto-queue@npm:^1.0.0, yocto-queue@npm:^1.1.1": + version: 1.2.1 + resolution: "yocto-queue@npm:1.2.1" + checksum: 10/0843d6c2c0558e5c06e98edf9c17942f25c769e21b519303a5c2adefd5b738c9b2054204dc856ac0cd9d134b1bc27d928ce84fd23c9e2423b7e013d5a6f50577 languageName: node linkType: hard From 020e626b4d23bf4b08b3ca583fc1aea4b884315e Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Tue, 24 Jun 2025 19:57:53 +0200 Subject: [PATCH 17/27] Remove TypeScript error suppression in transformCsf and update test cases in hooks.test.ts to cast page as 'any' for compatibility with Playwright. This enhances type safety and ensures proper function calls in the test suite. --- src/csf/transformCsf.ts | 1 - src/playwright/hooks.test.ts | 10 +++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/csf/transformCsf.ts b/src/csf/transformCsf.ts index 3879179d..53b06b1e 100644 --- a/src/csf/transformCsf.ts +++ b/src/csf/transformCsf.ts @@ -126,7 +126,6 @@ export const transformCsf = ( const annotations = csf._storyAnnotations[key]; acc[key] = {}; if (annotations?.play) { - // @ts-expect-error type mismatch – check later acc[key].play = annotations.play; } diff --git a/src/playwright/hooks.test.ts b/src/playwright/hooks.test.ts index 673f445e..126da6f1 100644 --- a/src/playwright/hooks.test.ts +++ b/src/playwright/hooks.test.ts @@ -37,7 +37,7 @@ describe('test-runner', () => { it('calls page.evaluate with the correct arguments', async () => { const context = { id: 'id', title: 'title', name: 'name' }; - await getStoryContext(page, context); + await getStoryContext(page as any, context); expect(page.evaluate).toHaveBeenCalledWith(expect.any(Function), { storyId: context.id }); }); @@ -45,7 +45,7 @@ describe('test-runner', () => { const context = { id: 'id', title: 'title', name: 'name' }; const storyContext = { kind: 'kind', name: 'name' }; page.evaluate.mockResolvedValueOnce(storyContext); - const result = await getStoryContext(page, context); + const result = await getStoryContext(page as any, context); expect(result).toBe(storyContext); }); @@ -62,7 +62,7 @@ describe('test-runner', () => { return storyContext; }); - await getStoryContext(page, context); + await getStoryContext(page as any, context); // Check that globalThis.__getContext was called with the correct storyId expect(globalThis.__getContext).toHaveBeenCalledWith(context.id); @@ -87,7 +87,7 @@ describe('test-runner', () => { }); it('waits for the page to be ready', async () => { - await waitForPageReady(page); + await waitForPageReady(page as any); expect(page.waitForLoadState).toHaveBeenCalledWith('domcontentloaded'); expect(page.waitForLoadState).toHaveBeenCalledWith('load'); expect(page.waitForLoadState).toHaveBeenCalledWith('networkidle'); @@ -106,7 +106,7 @@ describe('test-runner', () => { ready: 'ready', }, } as unknown as Document; - await waitForPageReady(page); + await waitForPageReady(page as any); expect(page.evaluate).toHaveBeenCalledWith(expect.any(Function)); const evaluateFn = page.evaluate.mock.calls[0][0]; From 86097666401ce9540207b4053a2a2b8f0c52327a Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 7 Jul 2025 18:12:31 +0200 Subject: [PATCH 18/27] Update storybook-src dependency in package.json and yarn.lock to point to the latest ESM-only branch for improved compatibility with modern module systems. --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 14512c2c..d3271f80 100644 --- a/package.json +++ b/package.json @@ -161,7 +161,7 @@ "sirv": "^2.0.4", "slash": "^3.0.0", "storybook": "^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0", - "storybook-src": "git+https://github.com/storybookjs/storybook.git#jeppe/migrate-core-esm-only-4", + "storybook-src": "git+https://github.com/storybookjs/storybook.git#sb10/esm-only", "strip-ansi": "^7.1.0", "strip-json-comments": "^5.0.1", "telejson": "8.0.0", diff --git a/yarn.lock b/yarn.lock index e112678c..9f89732c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3056,7 +3056,7 @@ __metadata: sirv: "npm:^2.0.4" slash: "npm:^3.0.0" storybook: "npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0" - storybook-src: "git+https://github.com/storybookjs/storybook.git#jeppe/migrate-core-esm-only-4" + storybook-src: "git+https://github.com/storybookjs/storybook.git#sb10/esm-only" strip-ansi: "npm:^7.1.0" strip-json-comments: "npm:^5.0.1" telejson: "npm:8.0.0" @@ -10280,10 +10280,10 @@ __metadata: languageName: node linkType: hard -"storybook-src@git+https://github.com/storybookjs/storybook.git#jeppe/migrate-core-esm-only-4": +"storybook-src@git+https://github.com/storybookjs/storybook.git#sb10/esm-only": version: 0.0.0 - resolution: "storybook-src@https://github.com/storybookjs/storybook.git#commit=3ef90bee1e1261ad3ce24c5f72c831084ccac7af" - checksum: 10/22bf2256e283c96d6ee5e635864ab5d409a1a3d8dae70c9cd2636731900aeb7818b79e0c068c63ade8d9f8fd69496d0bee44366924deffdd92a11fbd0361bd22 + resolution: "storybook-src@https://github.com/storybookjs/storybook.git#commit=08edd3886304c27ca049de5179bdbc527b2c9c1f" + checksum: 10/2d6b4c4c18ce3910aab9c992c540eb0dd5a77e86831b78faf3625f6354f72742b18f44dbc9f9c5d02804b2f93f77d858c56a59ccdf94935f9e542834ef5ef4a8 languageName: node linkType: hard From f3d18195d7852efbe849c1bfaef9c9f2404fb60e Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 9 Jul 2025 15:22:19 +0200 Subject: [PATCH 19/27] Update Jest configuration to support ES2022 syntax by modifying the SWC Jest transformer settings, enhancing compatibility with modern JavaScript features. --- src/config/jest-playwright.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config/jest-playwright.ts b/src/config/jest-playwright.ts index afb99856..10d48387 100644 --- a/src/config/jest-playwright.ts +++ b/src/config/jest-playwright.ts @@ -84,7 +84,7 @@ export const getJestConfig = (): Config.InitialOptions => { '^.+\\.(story|stories)\\.[jt]sx?$': require.resolve( `${TEST_RUNNER_PATH}/playwright/transform` ), - '^.+\\.[jt]sx?$': swcJestPath, + '^.+\\.[jt]sx?$': [swcJestPath, { jsc: { target: 'es2022' } }], }, snapshotSerializers: [jestSerializerHtmlPath], testEnvironmentOptions: { From 9fa10a3f6e023405fe5117ebc883999fe5d87650 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 9 Jul 2025 15:58:03 +0200 Subject: [PATCH 20/27] bump to new non-version-bundled --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d3271f80..0e1559f1 100644 --- a/package.json +++ b/package.json @@ -161,7 +161,7 @@ "sirv": "^2.0.4", "slash": "^3.0.0", "storybook": "^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0", - "storybook-src": "git+https://github.com/storybookjs/storybook.git#sb10/esm-only", + "storybook-src": "git+https://github.com/storybookjs/storybook.git#norbert/try-fixing-test-runner", "strip-ansi": "^7.1.0", "strip-json-comments": "^5.0.1", "telejson": "8.0.0", diff --git a/yarn.lock b/yarn.lock index 9f89732c..59b6c62c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3056,7 +3056,7 @@ __metadata: sirv: "npm:^2.0.4" slash: "npm:^3.0.0" storybook: "npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0" - storybook-src: "git+https://github.com/storybookjs/storybook.git#sb10/esm-only" + storybook-src: "git+https://github.com/storybookjs/storybook.git#norbert/try-fixing-test-runner" strip-ansi: "npm:^7.1.0" strip-json-comments: "npm:^5.0.1" telejson: "npm:8.0.0" @@ -10280,10 +10280,10 @@ __metadata: languageName: node linkType: hard -"storybook-src@git+https://github.com/storybookjs/storybook.git#sb10/esm-only": +"storybook-src@git+https://github.com/storybookjs/storybook.git#norbert/try-fixing-test-runner": version: 0.0.0 - resolution: "storybook-src@https://github.com/storybookjs/storybook.git#commit=08edd3886304c27ca049de5179bdbc527b2c9c1f" - checksum: 10/2d6b4c4c18ce3910aab9c992c540eb0dd5a77e86831b78faf3625f6354f72742b18f44dbc9f9c5d02804b2f93f77d858c56a59ccdf94935f9e542834ef5ef4a8 + resolution: "storybook-src@https://github.com/storybookjs/storybook.git#commit=591ea6910dd4ace04dc9e90b4d9f16f4b5066014" + checksum: 10/19a2b930d2d5a499816b1bdee7ca9f8f0245e672a8f801e972ee6da02eb5f79715d5811508e0687a25ff6e4ab8d27033b3ef2ac6d1531406229db352dff4d46c languageName: node linkType: hard From 7e6c71c0e9348cd83cd99428398c61527653a93c Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 9 Jul 2025 16:20:01 +0200 Subject: [PATCH 21/27] fix tests --- src/config/jest-playwright.test.ts | 6 ++++-- yarn.lock | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/config/jest-playwright.test.ts b/src/config/jest-playwright.test.ts index b382a6da..957fcb3f 100644 --- a/src/config/jest-playwright.test.ts +++ b/src/config/jest-playwright.test.ts @@ -13,7 +13,9 @@ describe('getJestConfig', () => { '^.+\\.(story|stories)\\.[jt]sx?$': `${path.dirname( require.resolve('@storybook/test-runner/playwright/transform') )}/transform.js`, - '^.+\\.[jt]sx?$': path.resolve('../test-runner/node_modules/@swc/jest'), + '^.+\\.[jt]sx?$': expect.arrayContaining([ + path.resolve('../test-runner/node_modules/@swc/jest'), + ]), }, snapshotSerializers: [path.resolve('../test-runner/node_modules/jest-serializer-html')], testEnvironmentOptions: { @@ -83,7 +85,7 @@ describe('getJestConfig', () => { '^.+\\.(story|stories)\\.[jt]sx?$': `${path.dirname( require.resolve('@storybook/test-runner/playwright/transform') )}/transform.js`, - '^.+\\.[jt]sx?$': path.dirname(require.resolve('@swc/jest')), + '^.+\\.[jt]sx?$': expect.arrayContaining([path.dirname(require.resolve('@swc/jest'))]), }, snapshotSerializers: [path.dirname(require.resolve('jest-serializer-html'))], testEnvironmentOptions: { diff --git a/yarn.lock b/yarn.lock index 59b6c62c..ce5e6f81 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10282,8 +10282,8 @@ __metadata: "storybook-src@git+https://github.com/storybookjs/storybook.git#norbert/try-fixing-test-runner": version: 0.0.0 - resolution: "storybook-src@https://github.com/storybookjs/storybook.git#commit=591ea6910dd4ace04dc9e90b4d9f16f4b5066014" - checksum: 10/19a2b930d2d5a499816b1bdee7ca9f8f0245e672a8f801e972ee6da02eb5f79715d5811508e0687a25ff6e4ab8d27033b3ef2ac6d1531406229db352dff4d46c + resolution: "storybook-src@https://github.com/storybookjs/storybook.git#commit=8f6a63a9f01a97029ae8ec7b07ace0e2a597e24e" + checksum: 10/117bf868712af9d667e655736c7e3d4efb1559d33fa2d945fc6acd0e841e10d1eee9148e37571825c500a43d9a1239055b497e7b707e89d9cab63e50d79a8fd1 languageName: node linkType: hard From db60cb3e41bb13efc01dd50e280014f98cfd98ef Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 9 Jul 2025 16:36:12 +0200 Subject: [PATCH 22/27] Update storybook-src dependency in yarn.lock to point to the latest commit for improved compatibility with modern module systems. --- yarn.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yarn.lock b/yarn.lock index ce5e6f81..7c564df3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10282,8 +10282,8 @@ __metadata: "storybook-src@git+https://github.com/storybookjs/storybook.git#norbert/try-fixing-test-runner": version: 0.0.0 - resolution: "storybook-src@https://github.com/storybookjs/storybook.git#commit=8f6a63a9f01a97029ae8ec7b07ace0e2a597e24e" - checksum: 10/117bf868712af9d667e655736c7e3d4efb1559d33fa2d945fc6acd0e841e10d1eee9148e37571825c500a43d9a1239055b497e7b707e89d9cab63e50d79a8fd1 + resolution: "storybook-src@https://github.com/storybookjs/storybook.git#commit=3095ad4932c56bb5c98be9d0e85c52ec1c9c2edc" + checksum: 10/35bab1db690d7c7b429f864e21c1974c679a93fabf4edaf63c5dbbfa932ec5a35e10322713948646b4f2f7f5004d2d806a73afa8c5dc28b3e18ff58b1d325c4e languageName: node linkType: hard From f437d4aa03bc8a7c770535163ed3f66042c88375 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 20 Aug 2025 14:29:26 +0200 Subject: [PATCH 23/27] Update storybook version in package.json and yarn.lock to support 10.0.0-beta.0, and add new dependencies for improved compatibility and functionality. --- package.json | 4 +- yarn.lock | 142 +++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 111 insertions(+), 35 deletions(-) diff --git a/package.json b/package.json index 0e1559f1..42dfb553 100644 --- a/package.json +++ b/package.json @@ -160,7 +160,7 @@ "read-pkg-up": "^7.0.1", "sirv": "^2.0.4", "slash": "^3.0.0", - "storybook": "^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0", + "storybook": "^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0 || ^10.0.0-0", "storybook-src": "git+https://github.com/storybookjs/storybook.git#norbert/try-fixing-test-runner", "strip-ansi": "^7.1.0", "strip-json-comments": "^5.0.1", @@ -180,7 +180,7 @@ "watchpack": "^2.2.0" }, "peerDependencies": { - "storybook": "^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0" + "storybook": "^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0 || ^10.0.0-0" }, "engines": { "node": ">=20.0.0" diff --git a/yarn.lock b/yarn.lock index 7c564df3..2b206e9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2311,6 +2311,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.5 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.5" + checksum: 10/5d9d207b462c11e322d71911e55e21a4e2772f71ffe8d6f1221b8eb5ae6774458c1d242f897fb0814e8714ca9a6b498abfa74dfe4f434493342902b1a48b33a5 + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:0.3.9": version: 0.3.9 resolution: "@jridgewell/trace-mapping@npm:0.3.9" @@ -3055,7 +3062,7 @@ __metadata: semver: "npm:^7.6.2" sirv: "npm:^2.0.4" slash: "npm:^3.0.0" - storybook: "npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0" + storybook: "npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0 || ^10.0.0-0" storybook-src: "git+https://github.com/storybookjs/storybook.git#norbert/try-fixing-test-runner" strip-ansi: "npm:^7.1.0" strip-json-comments: "npm:^5.0.1" @@ -3074,7 +3081,7 @@ __metadata: wait-on: "npm:^7.2.0" watchpack: "npm:^2.2.0" peerDependencies: - storybook: ^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0 + storybook: ^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0 || ^10.0.0-0 bin: test-storybook: ./dist/test-storybook.js languageName: unknown @@ -3370,6 +3377,15 @@ __metadata: languageName: node linkType: hard +"@types/chai@npm:^5.2.2": + version: 5.2.2 + resolution: "@types/chai@npm:5.2.2" + dependencies: + "@types/deep-eql": "npm:*" + checksum: 10/de425e7b02cc1233a93923866e019dffbafa892774813940b780ebb1ac9f8a8c57b7438c78686bf4e5db05cd3fc8a970fedf6b83638543995ecca88ef2060668 + languageName: node + linkType: hard + "@types/command-line-args@npm:^5.0.0": version: 5.2.3 resolution: "@types/command-line-args@npm:5.2.3" @@ -3393,6 +3409,13 @@ __metadata: languageName: node linkType: hard +"@types/deep-eql@npm:*": + version: 4.0.2 + resolution: "@types/deep-eql@npm:4.0.2" + checksum: 10/249a27b0bb22f6aa28461db56afa21ec044fa0e303221a62dff81831b20c8530502175f1a49060f7099e7be06181078548ac47c668de79ff9880241968d43d0c + languageName: node + linkType: hard + "@types/detect-port@npm:^1.3.0": version: 1.3.5 resolution: "@types/detect-port@npm:1.3.5" @@ -3661,44 +3684,64 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:3.0.9": - version: 3.0.9 - resolution: "@vitest/expect@npm:3.0.9" +"@vitest/expect@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/expect@npm:3.2.4" dependencies: - "@vitest/spy": "npm:3.0.9" - "@vitest/utils": "npm:3.0.9" + "@types/chai": "npm:^5.2.2" + "@vitest/spy": "npm:3.2.4" + "@vitest/utils": "npm:3.2.4" chai: "npm:^5.2.0" tinyrainbow: "npm:^2.0.0" - checksum: 10/09fc02ae3a639d5db23705a393ef571001f7f1006f7527529ec7807699b739788d5b54b71cb917c56379874b006f2de49933585694927b23c0d50787f96b9e94 + checksum: 10/dc69ce886c13714dfbbff78f2d2cb7eb536017e82301a73c42d573a9e9d2bf91005ac7abd9b977adf0a3bd431209f45a8ac2418029b68b0a377e092607c843ce languageName: node linkType: hard -"@vitest/pretty-format@npm:3.0.9": - version: 3.0.9 - resolution: "@vitest/pretty-format@npm:3.0.9" +"@vitest/mocker@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/mocker@npm:3.2.4" + dependencies: + "@vitest/spy": "npm:3.2.4" + estree-walker: "npm:^3.0.3" + magic-string: "npm:^0.30.17" + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + checksum: 10/5e92431b6ed9fc1679060e4caef3e4623f4750542a5d7cd944774f8217c4d231e273202e8aea00bab33260a5a9222ecb7005d80da0348c3c829bd37d123071a8 + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/pretty-format@npm:3.2.4" dependencies: tinyrainbow: "npm:^2.0.0" - checksum: 10/cfcdda2c72cf16a5e76ad2c9b014a4e36fea3988389613497cad5a2491ebc380ded4397afc95c32a2bd2734b0386996df76f6c5cbfc6be561262b8d112fb7a27 + checksum: 10/8dd30cbf956e01fbab042fe651fb5175d9f0cd00b7b569a46cd98df89c4fec47dab12916201ad6e09a4f25f2a2ec8927a4bfdc61118593097f759c90b18a51d4 languageName: node linkType: hard -"@vitest/spy@npm:3.0.9": - version: 3.0.9 - resolution: "@vitest/spy@npm:3.0.9" +"@vitest/spy@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/spy@npm:3.2.4" dependencies: - tinyspy: "npm:^3.0.2" - checksum: 10/967b403293c9325292be4843753bf8ae516ec158df2372a14bec98c9bfb233fa6bbf76cb319cf1a9ea1b5ab795e3abff68ca66fa7523045562d7449a95ed8bf9 + tinyspy: "npm:^4.0.3" + checksum: 10/7d38c299f42a8c7e5e41652b203af98ca54e63df69c3b072d0e401d5a57fbbba3e39d8538ac1b3022c26718a6388d0bcc222bc2f07faab75942543b9247c007d languageName: node linkType: hard -"@vitest/utils@npm:3.0.9": - version: 3.0.9 - resolution: "@vitest/utils@npm:3.0.9" +"@vitest/utils@npm:3.2.4": + version: 3.2.4 + resolution: "@vitest/utils@npm:3.2.4" dependencies: - "@vitest/pretty-format": "npm:3.0.9" - loupe: "npm:^3.1.3" + "@vitest/pretty-format": "npm:3.2.4" + loupe: "npm:^3.1.4" tinyrainbow: "npm:^2.0.0" - checksum: 10/c77e2a4a5c62dabc57c0d27536428e6b4f9a7998b59161deb82cf797e1d6cb61a7531bef19f079c4bdca7b48fd656b48e4d1bcfb4a5bdf3c177931670a287163 + checksum: 10/7f12ef63bd8ee13957744d1f336b0405f164ade4358bf9dfa531f75bbb58ffac02bf61aba65724311ddbc50b12ba54853a169e59c6b837c16086173b9a480710 languageName: node linkType: hard @@ -5494,7 +5537,7 @@ __metadata: languageName: node linkType: hard -"esbuild-register@npm:^3.5.0, esbuild-register@npm:^3.6.0": +"esbuild-register@npm:^3.6.0": version: 3.6.0 resolution: "esbuild-register@npm:3.6.0" dependencies: @@ -5724,6 +5767,15 @@ __metadata: languageName: node linkType: hard +"estree-walker@npm:^3.0.3": + version: 3.0.3 + resolution: "estree-walker@npm:3.0.3" + dependencies: + "@types/estree": "npm:^1.0.0" + checksum: 10/a65728d5727b71de172c5df323385755a16c0fdab8234dc756c3854cfee343261ddfbb72a809a5660fac8c75d960bb3e21aa898c2d7e9b19bb298482ca58a3af + languageName: node + linkType: hard + "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" @@ -8005,13 +8057,20 @@ __metadata: languageName: node linkType: hard -"loupe@npm:^3.1.0, loupe@npm:^3.1.3": +"loupe@npm:^3.1.0": version: 3.1.3 resolution: "loupe@npm:3.1.3" checksum: 10/9e98c34daf0eba48ccc603595e51f2ae002110982d84879cf78c51de2c632f0c571dfe82ce4210af60c32203d06b443465c269bda925076fe6d9b612cc65c321 languageName: node linkType: hard +"loupe@npm:^3.1.4": + version: 3.2.0 + resolution: "loupe@npm:3.2.0" + checksum: 10/80d48e35b014c2ba5886e25a02ee4cc9c1f659b0eca9c4fa8f07051cdc689e0507a763fbe05a63abbd3b7d4640774a722c905d4b1681b4b92c3ba8f87d96fea2 + languageName: node + linkType: hard + "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": version: 10.4.3 resolution: "lru-cache@npm:10.4.3" @@ -8046,6 +8105,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.17": + version: 0.30.17 + resolution: "magic-string@npm:0.30.17" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + checksum: 10/2f71af2b0afd78c2e9012a29b066d2c8ba45a9cd0c8070f7fd72de982fb1c403b4e3afdb1dae00691d56885ede66b772ef6bedf765e02e3a7066208fe2fec4aa + languageName: node + linkType: hard + "make-dir@npm:^2.1.0": version: 2.1.0 resolution: "make-dir@npm:2.1.0" @@ -10287,18 +10355,19 @@ __metadata: languageName: node linkType: hard -"storybook@npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0": - version: 9.1.0-alpha.6 - resolution: "storybook@npm:9.1.0-alpha.6" +"storybook@npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0 || ^10.0.0-0": + version: 10.0.0-beta.0 + resolution: "storybook@npm:10.0.0-beta.0" dependencies: "@storybook/global": "npm:^5.0.0" + "@storybook/icons": "npm:^1.4.0" "@testing-library/jest-dom": "npm:^6.6.3" "@testing-library/user-event": "npm:^14.6.1" - "@vitest/expect": "npm:3.0.9" - "@vitest/spy": "npm:3.0.9" + "@vitest/expect": "npm:3.2.4" + "@vitest/mocker": "npm:3.2.4" + "@vitest/spy": "npm:3.2.4" better-opn: "npm:^3.0.2" esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0" - esbuild-register: "npm:^3.5.0" recast: "npm:^0.23.5" semver: "npm:^7.6.2" ws: "npm:^8.18.0" @@ -10308,8 +10377,8 @@ __metadata: prettier: optional: true bin: - storybook: ./bin/index.cjs - checksum: 10/06b80378bbb385a128230d3c811a5cf4ea74866fa7fbda18fafe3b14b6d64490c806d9237a4f5c1c8d6a42cdf28161c54fadb4d7a24cb384d51799f2e386c157 + storybook: ./dist/bin/dispatcher.js + checksum: 10/192654aab822310596fc773532cfc4e362907cfe4ebf67e8e4967022ab0cdaf673931fa2d6ab8df84d76c045eb63ba439d1948ef23c8d78c0b80e26df434bf4c languageName: node linkType: hard @@ -10655,6 +10724,13 @@ __metadata: languageName: node linkType: hard +"tinyspy@npm:^4.0.3": + version: 4.0.3 + resolution: "tinyspy@npm:4.0.3" + checksum: 10/b6a3ed40dd76a2b3c020250cf1401506b456509d1fb9dba0c7b0e644d258dac722843b85c57ccc36c8687db1e7978cb6adcc43e3b71c475910c085b96d41cb53 + languageName: node + linkType: hard + "tmpl@npm:1.0.5": version: 1.0.5 resolution: "tmpl@npm:1.0.5" From dbc63e2e9a2564a254a9bfd9dbc03ca7ed3cd50d Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 20 Aug 2025 14:47:32 +0200 Subject: [PATCH 24/27] Update storybook and storybook-src dependencies in package.json and yarn.lock to point to the latest ESM branch, and change TypeScript module resolution to 'esnext' for improved compatibility with modern JavaScript features. --- package.json | 4 ++-- src/playwright/transformPlaywrightJson.ts | 2 +- tsconfig.json | 6 +++--- yarn.lock | 24 +++++++++++------------ 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 160df767..bff37649 100644 --- a/package.json +++ b/package.json @@ -160,8 +160,8 @@ "read-pkg-up": "^7.0.1", "sirv": "^2.0.4", "slash": "^3.0.0", - "storybook": "^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0 || ^10.0.0-0", - "storybook-src": "git+https://github.com/storybookjs/storybook.git#norbert/try-fixing-test-runner", + "storybook": "^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0", + "storybook-src": "git+https://github.com/storybookjs/storybook.git#next", "strip-ansi": "^7.1.0", "strip-json-comments": "^5.0.1", "telejson": "8.0.0", diff --git a/src/playwright/transformPlaywrightJson.ts b/src/playwright/transformPlaywrightJson.ts index 9a8b1238..b38077c3 100644 --- a/src/playwright/transformPlaywrightJson.ts +++ b/src/playwright/transformPlaywrightJson.ts @@ -18,7 +18,7 @@ const makeTest = ({ name: t.stringLiteral(entry.name), title: t.stringLiteral(entry.title), id: t.stringLiteral(entry.id), - // FIXME + //@ts-expect-error FIXME storyExport: t.identifier(entry.id), }); const stmt = (result as Array)[1]; diff --git a/tsconfig.json b/tsconfig.json index ba12020e..4c12a356 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,17 +9,17 @@ "isolatedModules": true, "jsx": "react", "lib": ["es2017", "dom"], - "module": "commonjs", + "module": "esnext", + "moduleResolution": "bundler", "noImplicitAny": true, "rootDir": "./src", "skipLibCheck": true, "target": "es2020", "types": ["jest", "node"], - "moduleResolution": "node", "strict": true, "noEmit": true, "noUnusedLocals": true, - "noUnusedParameters": true, + "noUnusedParameters": true }, "include": ["src/**/*.ts"] } diff --git a/yarn.lock b/yarn.lock index 21f4508a..32dccf08 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3142,8 +3142,8 @@ __metadata: semver: "npm:^7.6.2" sirv: "npm:^2.0.4" slash: "npm:^3.0.0" - storybook: "npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0 || ^10.0.0-0" - storybook-src: "git+https://github.com/storybookjs/storybook.git#norbert/try-fixing-test-runner" + storybook: "npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0" + storybook-src: "git+https://github.com/storybookjs/storybook.git#next" strip-ansi: "npm:^7.1.0" strip-json-comments: "npm:^5.0.1" telejson: "npm:8.0.0" @@ -5633,7 +5633,7 @@ __metadata: languageName: node linkType: hard -"esbuild-register@npm:^3.6.0": +"esbuild-register@npm:^3.5.0, esbuild-register@npm:^3.6.0": version: 3.6.0 resolution: "esbuild-register@npm:3.6.0" dependencies: @@ -10451,19 +10451,18 @@ __metadata: languageName: node linkType: hard -"storybook-src@git+https://github.com/storybookjs/storybook.git#norbert/try-fixing-test-runner": +"storybook-src@git+https://github.com/storybookjs/storybook.git#next": version: 0.0.0 - resolution: "storybook-src@https://github.com/storybookjs/storybook.git#commit=3095ad4932c56bb5c98be9d0e85c52ec1c9c2edc" - checksum: 10/35bab1db690d7c7b429f864e21c1974c679a93fabf4edaf63c5dbbfa932ec5a35e10322713948646b4f2f7f5004d2d806a73afa8c5dc28b3e18ff58b1d325c4e + resolution: "storybook-src@https://github.com/storybookjs/storybook.git#commit=4236d09d268c741a47e04886286c2ce68418a250" + checksum: 10/432381f2da64764559da84315df77ee2d2d25ac32779dfc9f6ee48525f7b3202ff67c25ee9dcbcfce13a8041419b8dcc0cc1e4abb4044326fbb4a21b692b4bcd languageName: node linkType: hard -"storybook@npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0 || ^10.0.0-0": - version: 10.0.0-beta.0 - resolution: "storybook@npm:10.0.0-beta.0" +"storybook@npm:^0.0.0-0 || ^8.2.0 || ^9.0.0 || ^9.1.0-0": + version: 9.1.2 + resolution: "storybook@npm:9.1.2" dependencies: "@storybook/global": "npm:^5.0.0" - "@storybook/icons": "npm:^1.4.0" "@testing-library/jest-dom": "npm:^6.6.3" "@testing-library/user-event": "npm:^14.6.1" "@vitest/expect": "npm:3.2.4" @@ -10471,6 +10470,7 @@ __metadata: "@vitest/spy": "npm:3.2.4" better-opn: "npm:^3.0.2" esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0" + esbuild-register: "npm:^3.5.0" recast: "npm:^0.23.5" semver: "npm:^7.6.2" ws: "npm:^8.18.0" @@ -10480,8 +10480,8 @@ __metadata: prettier: optional: true bin: - storybook: ./dist/bin/dispatcher.js - checksum: 10/192654aab822310596fc773532cfc4e362907cfe4ebf67e8e4967022ab0cdaf673931fa2d6ab8df84d76c045eb63ba439d1948ef23c8d78c0b80e26df434bf4c + storybook: ./bin/index.cjs + checksum: 10/0d3160b6794addc9a91a7c6581e2d85adf77a7ab09cf7bb039737f62fed9903e542198b86c40c90197e73caee8bd82d364aabd908af4eaa34e4735a554adf06e languageName: node linkType: hard From 29f1ef44dc7affeb8adaba3e00a718bc76fde192 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 20 Aug 2025 14:50:23 +0200 Subject: [PATCH 25/27] Discard changes to tsconfig.json --- tsconfig.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index 4c12a356..ba12020e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,17 +9,17 @@ "isolatedModules": true, "jsx": "react", "lib": ["es2017", "dom"], - "module": "esnext", - "moduleResolution": "bundler", + "module": "commonjs", "noImplicitAny": true, "rootDir": "./src", "skipLibCheck": true, "target": "es2020", "types": ["jest", "node"], + "moduleResolution": "node", "strict": true, "noEmit": true, "noUnusedLocals": true, - "noUnusedParameters": true + "noUnusedParameters": true, }, "include": ["src/**/*.ts"] } From d0c31753332094124bb8df9f893285ba623c79ef Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 20 Aug 2025 14:50:28 +0200 Subject: [PATCH 26/27] Discard changes to src/playwright/transformPlaywrightJson.ts --- src/playwright/transformPlaywrightJson.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/playwright/transformPlaywrightJson.ts b/src/playwright/transformPlaywrightJson.ts index b38077c3..9a8b1238 100644 --- a/src/playwright/transformPlaywrightJson.ts +++ b/src/playwright/transformPlaywrightJson.ts @@ -18,7 +18,7 @@ const makeTest = ({ name: t.stringLiteral(entry.name), title: t.stringLiteral(entry.title), id: t.stringLiteral(entry.id), - //@ts-expect-error FIXME + // FIXME storyExport: t.identifier(entry.id), }); const stmt = (result as Array)[1]; From 2c9779a763c45ceacee88cfa8b035adcc8b58e26 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Fri, 12 Sep 2025 09:54:20 +0200 Subject: [PATCH 27/27] Enable TypeScript declaration file generation in tsup.config.ts, update import statements to use 'node:' prefix in src/test-storybook.ts, and refactor prefixFunction declaration in transformCsf.ts. --- src/csf/transformCsf.ts | 2 +- src/test-storybook.ts | 6 +++--- tsup.config.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/csf/transformCsf.ts b/src/csf/transformCsf.ts index 53b06b1e..a0a331d6 100644 --- a/src/csf/transformCsf.ts +++ b/src/csf/transformCsf.ts @@ -27,7 +27,7 @@ export interface TransformOptions { skipTags?: string[]; } -export const prefixFunction = ({ +const prefixFunction = ({ key, testPrefixer, title, diff --git a/src/test-storybook.ts b/src/test-storybook.ts index dff5dfe6..99f2d4f1 100644 --- a/src/test-storybook.ts +++ b/src/test-storybook.ts @@ -1,11 +1,11 @@ #!/usr/bin/env node -import fs from 'fs'; -import { execSync } from 'child_process'; +import * as fs from 'node:fs'; +import { execSync } from 'node:child_process'; +import path, { join, resolve } from 'node:path'; import fetch from 'node-fetch'; import canBindToHost from 'can-bind-to-host'; import dedent from 'ts-dedent'; -import path, { join, resolve } from 'path'; import tempy from 'tempy'; import { readConfig } from 'storybook/internal/csf-tools'; import { telemetry } from 'storybook/internal/telemetry'; diff --git a/tsup.config.ts b/tsup.config.ts index 5086e9d5..27d294c7 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -20,7 +20,7 @@ export default defineConfig([ entry: ['./src/index.ts', './src/test-storybook.ts'], format: ['cjs'], splitting: true, - dts: false, + dts: true, minify: false, treeshake: true, bundle: true, @@ -48,7 +48,7 @@ export default defineConfig([ { entry: ['./src/setup-page-script.ts'], format: ['esm'], - dts: false, + dts: true, bundle: false, minify: false, treeshake: false,