From 2ab061ad7f1259459baefd7f6b5a27f05209d653 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Mon, 8 Apr 2024 00:51:10 +0800 Subject: [PATCH 001/135] Portable stories: Add telemetry --- code/lib/telemetry/package.json | 1 + .../src/__fixtures__/.storybook/a.js | 1 + code/lib/telemetry/src/__fixtures__/a.js | 1 + code/lib/telemetry/src/__fixtures__/b.js | 1 + code/lib/telemetry/src/__fixtures__/b.txt | 1 + code/lib/telemetry/src/__fixtures__/foo/a.js | 1 + .../src/get-portable-stories-usage.test.ts | 19 +++++++ .../src/get-portable-stories-usage.ts | 51 +++++++++++++++++++ code/lib/telemetry/src/storybook-metadata.ts | 3 ++ code/lib/telemetry/src/types.ts | 1 + code/yarn.lock | 1 + 11 files changed, 81 insertions(+) create mode 100644 code/lib/telemetry/src/__fixtures__/.storybook/a.js create mode 100644 code/lib/telemetry/src/__fixtures__/a.js create mode 100644 code/lib/telemetry/src/__fixtures__/b.js create mode 100644 code/lib/telemetry/src/__fixtures__/b.txt create mode 100644 code/lib/telemetry/src/__fixtures__/foo/a.js create mode 100644 code/lib/telemetry/src/get-portable-stories-usage.test.ts create mode 100644 code/lib/telemetry/src/get-portable-stories-usage.ts diff --git a/code/lib/telemetry/package.json b/code/lib/telemetry/package.json index 49ee940b1a3e..f39fdba366a7 100644 --- a/code/lib/telemetry/package.json +++ b/code/lib/telemetry/package.json @@ -51,6 +51,7 @@ "detect-package-manager": "^2.0.1", "fetch-retry": "^5.0.2", "fs-extra": "^11.1.0", + "glob": "^10.0.0", "read-pkg-up": "^7.0.1" }, "devDependencies": { diff --git a/code/lib/telemetry/src/__fixtures__/.storybook/a.js b/code/lib/telemetry/src/__fixtures__/.storybook/a.js new file mode 100644 index 000000000000..121caf9bf78f --- /dev/null +++ b/code/lib/telemetry/src/__fixtures__/.storybook/a.js @@ -0,0 +1 @@ +// composeStory; diff --git a/code/lib/telemetry/src/__fixtures__/a.js b/code/lib/telemetry/src/__fixtures__/a.js new file mode 100644 index 000000000000..121caf9bf78f --- /dev/null +++ b/code/lib/telemetry/src/__fixtures__/a.js @@ -0,0 +1 @@ +// composeStory; diff --git a/code/lib/telemetry/src/__fixtures__/b.js b/code/lib/telemetry/src/__fixtures__/b.js new file mode 100644 index 000000000000..71f6f1360f21 --- /dev/null +++ b/code/lib/telemetry/src/__fixtures__/b.js @@ -0,0 +1 @@ +// composeStories; diff --git a/code/lib/telemetry/src/__fixtures__/b.txt b/code/lib/telemetry/src/__fixtures__/b.txt new file mode 100644 index 000000000000..f4e2490eebe9 --- /dev/null +++ b/code/lib/telemetry/src/__fixtures__/b.txt @@ -0,0 +1 @@ +composeStory \ No newline at end of file diff --git a/code/lib/telemetry/src/__fixtures__/foo/a.js b/code/lib/telemetry/src/__fixtures__/foo/a.js new file mode 100644 index 000000000000..121caf9bf78f --- /dev/null +++ b/code/lib/telemetry/src/__fixtures__/foo/a.js @@ -0,0 +1 @@ +// composeStory; diff --git a/code/lib/telemetry/src/get-portable-stories-usage.test.ts b/code/lib/telemetry/src/get-portable-stories-usage.test.ts new file mode 100644 index 000000000000..d3bb1cffc8b5 --- /dev/null +++ b/code/lib/telemetry/src/get-portable-stories-usage.test.ts @@ -0,0 +1,19 @@ +import { describe, it, expect } from 'vitest'; +import { join } from 'path'; + +import { getPortableStoriesFiles } from './get-portable-stories-usage'; + +describe('getPortableStoriesFiles', () => { + it('should ignores node_modules, non-source files', async () => { + const base = join(__dirname, '__fixtures__'); + const usage = (await getPortableStoriesFiles(base)).map((f) => f.replace(base, '')); + expect(usage).toMatchInlineSnapshot(` + [ + "/b.js", + "/a.js", + "/foo/a.js", + "/.storybook/a.js", + ] + `); + }); +}); diff --git a/code/lib/telemetry/src/get-portable-stories-usage.ts b/code/lib/telemetry/src/get-portable-stories-usage.ts new file mode 100644 index 000000000000..8cacc9dcb336 --- /dev/null +++ b/code/lib/telemetry/src/get-portable-stories-usage.ts @@ -0,0 +1,51 @@ +import { readFile } from 'fs/promises'; +import { join } from 'path'; +import { glob } from 'glob'; + +import { createFileSystemCache, resolvePathInStorybookCache } from '@storybook/core-common'; + +const cache = createFileSystemCache({ + basePath: resolvePathInStorybookCache('portable-stories'), + ns: 'storybook', + ttl: 24 * 60 * 60 * 1000, +}); + +export const containsPortableStories = async (filename: string) => { + if (/sb\-preview\/runtime.m?js$/i.test(filename)) return null; + + const fileContent = await readFile(filename, 'utf-8'); + const contains = /composeStor[y|ies]/g.test(fileContent); + return contains ? filename : null; +}; + +export const getPortableStoriesFiles = async (base: string) => { + const files = await glob('**/*.{js,mjs,cjs,jsx,ts,mts,cts,tsx}', { + ignore: ['**/node_modules/**', '**/storybook-static/**', '**/dist/**'], + dot: true, + cwd: base, + }); + + const hits = []; + const chunkSize = 10; + for (let i = 0; i < files.length; i += chunkSize) { + const chunk = files.slice(i, i + chunkSize); + const results = ( + await Promise.all(chunk.map((f: string) => containsPortableStories(join(base, f)))) + ).filter(Boolean); + if (results.length > 0) { + hits.push(...results); + } + } + return hits as string[]; +}; + +const CACHE_KEY = 'portableStories'; +export const getPortableStoriesFileCount = async () => { + let cached = await cache.get(CACHE_KEY); + if (!cached) { + const files = await getPortableStoriesFiles(process.cwd()); + cached = { usage: files.length }; + await cache.set(CACHE_KEY, cached); + } + return cached.usage; +}; diff --git a/code/lib/telemetry/src/storybook-metadata.ts b/code/lib/telemetry/src/storybook-metadata.ts index e9ff8d844954..1d895b39a44c 100644 --- a/code/lib/telemetry/src/storybook-metadata.ts +++ b/code/lib/telemetry/src/storybook-metadata.ts @@ -15,6 +15,7 @@ import { getMonorepoType } from './get-monorepo-type'; import { cleanPaths } from './sanitize'; import { getFrameworkInfo } from './get-framework-info'; import { getChromaticVersionSpecifier } from './get-chromatic-version'; +import { getPortableStoriesFileCount } from './get-portable-stories-usage'; export const metaFrameworks = { next: 'Next', @@ -177,10 +178,12 @@ export const computeStorybookMetadata = async ({ } const storybookVersion = storybookPackages[storybookInfo.frameworkPackage]?.version; + const portableStoriesFileCount = await getPortableStoriesFileCount(); return { ...metadata, ...frameworkInfo, + portableStoriesFileCount, storybookVersion, storybookVersionSpecifier: storybookInfo.version, language, diff --git a/code/lib/telemetry/src/types.ts b/code/lib/telemetry/src/types.ts index 846e7adb9556..774aed918cce 100644 --- a/code/lib/telemetry/src/types.ts +++ b/code/lib/telemetry/src/types.ts @@ -60,6 +60,7 @@ export type StorybookMetadata = { preview?: { usesGlobals?: boolean; }; + portableStoriesFileCount?: number; }; export interface Payload { diff --git a/code/yarn.lock b/code/yarn.lock index 472dd503b241..0ba465a0a6c6 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6646,6 +6646,7 @@ __metadata: detect-package-manager: "npm:^2.0.1" fetch-retry: "npm:^5.0.2" fs-extra: "npm:^11.1.0" + glob: "npm:^10.0.0" nanoid: "npm:^4.0.2" node-fetch: "npm:^3.3.1" read-pkg-up: "npm:^7.0.1" From ffd7277c4848ec63af764b6718e7dd052320aff9 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Tue, 9 Jul 2024 10:40:03 +0800 Subject: [PATCH 002/135] Use git grep for efficiency --- .../telemetry/get-portable-stories-usage.ts | 51 +++++++------------ 1 file changed, 17 insertions(+), 34 deletions(-) diff --git a/code/core/src/telemetry/get-portable-stories-usage.ts b/code/core/src/telemetry/get-portable-stories-usage.ts index 9ef00aff39d3..bdf987bb0b3b 100644 --- a/code/core/src/telemetry/get-portable-stories-usage.ts +++ b/code/core/src/telemetry/get-portable-stories-usage.ts @@ -1,51 +1,34 @@ -import { readFile } from 'fs/promises'; -import { join } from 'path'; -import { glob } from 'glob'; +import { execaCommand } from 'execa'; import { createFileSystemCache, resolvePathInStorybookCache } from '../common'; const cache = createFileSystemCache({ basePath: resolvePathInStorybookCache('portable-stories'), ns: 'storybook', - ttl: 24 * 60 * 60 * 1000, + ttl: 24 * 60 * 60 * 1000, // 24h }); -export const containsPortableStories = async (filename: string) => { - if (/sb\-preview\/runtime.m?js$/i.test(filename)) return null; - - const fileContent = await readFile(filename, 'utf-8'); - const contains = /composeStor[y|ies]/g.test(fileContent); - return contains ? filename : null; -}; - -export const getPortableStoriesFiles = async (base: string) => { - const files = await glob('**/*.{js,mjs,cjs,jsx,ts,mts,cts,tsx}', { - ignore: ['**/node_modules/**', '**/storybook-static/**', '**/dist/**'], - dot: true, - cwd: base, +const getPortableStoriesFileCountUncached = async () => { + const { stdout } = await execaCommand(`git grep -m1 -c composeStor`, { + cwd: process.cwd(), + shell: true, }); - - const hits = []; - const chunkSize = 10; - for (let i = 0; i < files.length; i += chunkSize) { - const chunk = files.slice(i, i + chunkSize); - const results = ( - await Promise.all(chunk.map((f: string) => containsPortableStories(join(base, f)))) - ).filter(Boolean); - if (results.length > 0) { - hits.push(...results); - } - } - return hits as string[]; + return stdout.split('\n').filter(Boolean).length; }; const CACHE_KEY = 'portableStories'; export const getPortableStoriesFileCount = async () => { let cached = await cache.get(CACHE_KEY); if (!cached) { - const files = await getPortableStoriesFiles(process.cwd()); - cached = { usage: files.length }; - await cache.set(CACHE_KEY, cached); + try { + const count = await getPortableStoriesFileCountUncached(); + cached = { count }; + await cache.set(CACHE_KEY, cached); + } catch (err: any) { + // exit code 1 if no matches are found + const count = err.exitCode === 1 ? 0 : null; + cached = { count }; + } } - return cached.usage; + return cached.count; }; From 9170d4b80ad9104d65eff1b874e45df7a200db05 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Tue, 9 Jul 2024 10:52:47 +0800 Subject: [PATCH 003/135] Delete unused fixtures --- code/core/src/telemetry/__fixtures__/.storybook/a.js | 1 - code/core/src/telemetry/__fixtures__/a.js | 1 - code/core/src/telemetry/__fixtures__/b.js | 1 - code/core/src/telemetry/__fixtures__/b.txt | 1 - code/core/src/telemetry/__fixtures__/foo/a.js | 1 - 5 files changed, 5 deletions(-) delete mode 100644 code/core/src/telemetry/__fixtures__/.storybook/a.js delete mode 100644 code/core/src/telemetry/__fixtures__/a.js delete mode 100644 code/core/src/telemetry/__fixtures__/b.js delete mode 100644 code/core/src/telemetry/__fixtures__/b.txt delete mode 100644 code/core/src/telemetry/__fixtures__/foo/a.js diff --git a/code/core/src/telemetry/__fixtures__/.storybook/a.js b/code/core/src/telemetry/__fixtures__/.storybook/a.js deleted file mode 100644 index 121caf9bf78f..000000000000 --- a/code/core/src/telemetry/__fixtures__/.storybook/a.js +++ /dev/null @@ -1 +0,0 @@ -// composeStory; diff --git a/code/core/src/telemetry/__fixtures__/a.js b/code/core/src/telemetry/__fixtures__/a.js deleted file mode 100644 index 121caf9bf78f..000000000000 --- a/code/core/src/telemetry/__fixtures__/a.js +++ /dev/null @@ -1 +0,0 @@ -// composeStory; diff --git a/code/core/src/telemetry/__fixtures__/b.js b/code/core/src/telemetry/__fixtures__/b.js deleted file mode 100644 index 71f6f1360f21..000000000000 --- a/code/core/src/telemetry/__fixtures__/b.js +++ /dev/null @@ -1 +0,0 @@ -// composeStories; diff --git a/code/core/src/telemetry/__fixtures__/b.txt b/code/core/src/telemetry/__fixtures__/b.txt deleted file mode 100644 index f4e2490eebe9..000000000000 --- a/code/core/src/telemetry/__fixtures__/b.txt +++ /dev/null @@ -1 +0,0 @@ -composeStory \ No newline at end of file diff --git a/code/core/src/telemetry/__fixtures__/foo/a.js b/code/core/src/telemetry/__fixtures__/foo/a.js deleted file mode 100644 index 121caf9bf78f..000000000000 --- a/code/core/src/telemetry/__fixtures__/foo/a.js +++ /dev/null @@ -1 +0,0 @@ -// composeStory; From e9d28dba3070fb425b0dbb6b7cb84a1c9b7ebfc7 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Tue, 9 Jul 2024 10:54:04 +0800 Subject: [PATCH 004/135] Fix tests --- .../get-portable-stories-usage.test.ts | 18 +++++------------- .../telemetry/get-portable-stories-usage.ts | 2 +- docs/configure/telemetry.mdx | 1 + 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/code/core/src/telemetry/get-portable-stories-usage.test.ts b/code/core/src/telemetry/get-portable-stories-usage.test.ts index d3bb1cffc8b5..c91efd993d45 100644 --- a/code/core/src/telemetry/get-portable-stories-usage.test.ts +++ b/code/core/src/telemetry/get-portable-stories-usage.test.ts @@ -1,19 +1,11 @@ import { describe, it, expect } from 'vitest'; -import { join } from 'path'; -import { getPortableStoriesFiles } from './get-portable-stories-usage'; +import { getPortableStoriesFileCountUncached } from './get-portable-stories-usage'; -describe('getPortableStoriesFiles', () => { +describe('getPortableStoriesFileCountUncached', () => { it('should ignores node_modules, non-source files', async () => { - const base = join(__dirname, '__fixtures__'); - const usage = (await getPortableStoriesFiles(base)).map((f) => f.replace(base, '')); - expect(usage).toMatchInlineSnapshot(` - [ - "/b.js", - "/a.js", - "/foo/a.js", - "/.storybook/a.js", - ] - `); + const usage = await getPortableStoriesFileCountUncached(); + // verify git grep -m1 -c composeStor | wc -l + expect(usage).toMatchInlineSnapshot(`14`); }); }); diff --git a/code/core/src/telemetry/get-portable-stories-usage.ts b/code/core/src/telemetry/get-portable-stories-usage.ts index bdf987bb0b3b..81b3334bc179 100644 --- a/code/core/src/telemetry/get-portable-stories-usage.ts +++ b/code/core/src/telemetry/get-portable-stories-usage.ts @@ -8,7 +8,7 @@ const cache = createFileSystemCache({ ttl: 24 * 60 * 60 * 1000, // 24h }); -const getPortableStoriesFileCountUncached = async () => { +export const getPortableStoriesFileCountUncached = async () => { const { stdout } = await execaCommand(`git grep -m1 -c composeStor`, { cwd: process.cwd(), shell: true, diff --git a/docs/configure/telemetry.mdx b/docs/configure/telemetry.mdx index 6764db42fede..eec5fcd51e66 100644 --- a/docs/configure/telemetry.mdx +++ b/docs/configure/telemetry.mdx @@ -84,6 +84,7 @@ Will generate the following output: "hasStaticDirs": false, "hasStorybookEslint": false, "refCount": 0, + "portableStoriesFileCount": 0, "packageManager": { "type": "yarn", "version": "3.1.1" From 9dfaafeb23219eff7897acf66a2701c30102fa9b Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 15 Jul 2024 16:21:58 +0200 Subject: [PATCH 005/135] Hopefully fix this problem: https://github.com/storybookjs/storybook/pull/28607#issuecomment-2228541450 --- code/renderers/vue3/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/renderers/vue3/package.json b/code/renderers/vue3/package.json index ff2881aadbe2..e21cee0b9213 100644 --- a/code/renderers/vue3/package.json +++ b/code/renderers/vue3/package.json @@ -69,7 +69,6 @@ "@storybook/preview-api": "workspace:^", "@storybook/theming": "workspace:^", "@vue/compiler-core": "^3.0.0", - "lodash": "^4.17.21", "ts-dedent": "^2.0.0", "type-fest": "~2.19", "vue-component-type-helpers": "latest" @@ -79,6 +78,7 @@ "@testing-library/vue": "^8.0.0", "@types/prettier": "^3.0.0", "@vitejs/plugin-vue": "^4.4.0", + "lodash": "^4.17.21", "typescript": "^5.3.2", "vue": "^3.2.47", "vue-tsc": "latest" From 1103d7ffc27f662c6d6c4cfba76ff65bed061a89 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 15 Jul 2024 16:27:59 +0200 Subject: [PATCH 006/135] do the same for react --- code/renderers/react/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json index 19ade57fedf1..b313d7dc671e 100644 --- a/code/renderers/react/package.json +++ b/code/renderers/react/package.json @@ -78,7 +78,6 @@ "acorn-walk": "^7.2.0", "escodegen": "^2.1.0", "html-tags": "^3.1.0", - "lodash": "^4.17.21", "prop-types": "^15.7.2", "react-element-to-jsx-string": "^15.0.0", "semver": "^7.3.7", @@ -93,6 +92,7 @@ "@types/util-deprecate": "^1.0.0", "babel-plugin-react-docgen": "^4.2.1", "expect-type": "^0.15.0", + "lodash": "^4.17.21", "require-from-string": "^2.0.2" }, "peerDependencies": { From 1ce98b4bec3f45cb2a59821a10b19a75f0697d8d Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Tue, 16 Jul 2024 09:45:33 +0200 Subject: [PATCH 007/135] Update MIGRATION.md --- MIGRATION.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MIGRATION.md b/MIGRATION.md index 3dd1311dd620..72636022a206 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -444,7 +444,7 @@ Starting in 8.2 `preview.js` `globals` are deprecated and have been renamed to ` // .storybook/preview.js export default { - globals: [ a: 1, b: 2 ], -+ initiaGlobals: [ a: 1, b: 2 ], ++ initialGlobals: [ a: 1, b: 2 ], } ``` From acc974bad5771d23787789edb27f23866d5487ce Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Fri, 26 Jul 2024 12:49:02 +0200 Subject: [PATCH 008/135] changes to backgrounds addon in relation to the globals work --- ...addon-backgrounds-configure-backgrounds.md | 36 ++++++------- ...k-addon-backgrounds-disable-backgrounds.md | 12 ++--- ...n-backgrounds-override-background-color.md | 36 ++++++++++--- ...ook-preview-configure-background-colors.md | 30 +++-------- docs/api/main-config/main-config-features.mdx | 14 ++++++ docs/essentials/backgrounds.mdx | 50 +++++++++++++------ 6 files changed, 110 insertions(+), 68 deletions(-) diff --git a/docs/_snippets/storybook-addon-backgrounds-configure-backgrounds.md b/docs/_snippets/storybook-addon-backgrounds-configure-backgrounds.md index 890a6671d4b1..aa3f012a4ab1 100644 --- a/docs/_snippets/storybook-addon-backgrounds-configure-backgrounds.md +++ b/docs/_snippets/storybook-addon-backgrounds-configure-backgrounds.md @@ -8,11 +8,10 @@ const meta: Meta + ); +}; + +Button.propTypes = { + /** + * Is this the principal call to action on the page? + */ + primary: PropTypes.bool, + /** + * What background color to use + */ + backgroundColor: PropTypes.string, + /** + * How large should the button be? + */ + size: PropTypes.oneOf(['small', 'medium', 'large']), + /** + * Button contents + */ + label: PropTypes.string.isRequired, + /** + * Optional click handler + */ + onClick: PropTypes.func, +}; + +Button.defaultProps = { + backgroundColor: null, + primary: false, + size: 'medium', + onClick: undefined, +}; diff --git a/code/frameworks/nextjs-vite/template/cli/js/Button.stories.js b/code/frameworks/nextjs-vite/template/cli/js/Button.stories.js new file mode 100644 index 000000000000..97b9ec0ed85d --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/js/Button.stories.js @@ -0,0 +1,48 @@ +import { fn } from '@storybook/test'; +import { Button } from './Button'; + +// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export +export default { + title: 'Example/Button', + component: Button, + parameters: { + // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout + layout: 'centered', + }, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ['autodocs'], + // More on argTypes: https://storybook.js.org/docs/api/argtypes + argTypes: { + backgroundColor: { control: 'color' }, + }, + // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args + args: { onClick: fn() }, +}; + +// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args +export const Primary = { + args: { + primary: true, + label: 'Button', + }, +}; + +export const Secondary = { + args: { + label: 'Button', + }, +}; + +export const Large = { + args: { + size: 'large', + label: 'Button', + }, +}; + +export const Small = { + args: { + size: 'small', + label: 'Button', + }, +}; diff --git a/code/frameworks/nextjs-vite/template/cli/js/Configure.mdx b/code/frameworks/nextjs-vite/template/cli/js/Configure.mdx new file mode 100644 index 000000000000..cc3292373f73 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/js/Configure.mdx @@ -0,0 +1,446 @@ +import { Meta } from "@storybook/blocks"; +import Image from "next/image"; + +import Github from "./assets/github.svg"; +import Discord from "./assets/discord.svg"; +import Youtube from "./assets/youtube.svg"; +import Tutorials from "./assets/tutorials.svg"; +import Styling from "./assets/styling.png"; +import Context from "./assets/context.png"; +import Assets from "./assets/assets.png"; +import Docs from "./assets/docs.png"; +import Share from "./assets/share.png"; +import FigmaPlugin from "./assets/figma-plugin.png"; +import Testing from "./assets/testing.png"; +import Accessibility from "./assets/accessibility.png"; +import Theming from "./assets/theming.png"; +import AddonLibrary from "./assets/addon-library.png"; + +export const RightArrow = () => + + + + + +
+
+ # Configure your project + + Because Storybook works separately from your app, you'll need to configure it for your specific stack and setup. Below, explore guides for configuring Storybook with popular frameworks and tools. If you get stuck, learn how you can ask for help from our community. +
+
+
+ A wall of logos representing different styling technologies +

Add styling and CSS

+

Like with web applications, there are many ways to include CSS within Storybook. Learn more about setting up styling within Storybook.

+ Learn more +
+
+ An abstraction representing the composition of data for a component +

Provide context and mocking

+

Often when a story doesn't render, it's because your component is expecting a specific environment or context (like a theme provider) to be available.

+ Learn more +
+
+ A representation of typography and image assets +
+

Load assets and resources

+

To link static files (like fonts) to your projects and stories, use the + `staticDirs` configuration option to specify folders to load when + starting Storybook.

+ Learn more +
+
+
+
+
+
+ # Do more with Storybook + + Now that you know the basics, let's explore other parts of Storybook that will improve your experience. This list is just to get you started. You can customise Storybook in many ways to fit your needs. +
+ +
+
+
+ A screenshot showing the autodocs tag being set, pointing a docs page being generated +

Autodocs

+

Auto-generate living, + interactive reference documentation from your components and stories.

+ Learn more +
+
+ A browser window showing a Storybook being published to a chromatic.com URL +

Publish to Chromatic

+

Publish your Storybook to review and collaborate with your entire team.

+ Learn more +
+
+ Windows showing the Storybook plugin in Figma +

Figma Plugin

+

Embed your stories into Figma to cross-reference the design and live + implementation in one place.

+ Learn more +
+
+ Screenshot of tests passing and failing +

Testing

+

Use stories to test a component in all its variations, no matter how + complex.

+ Learn more +
+
+ Screenshot of accessibility tests passing and failing +

Accessibility

+

Automatically test your components for a11y issues as you develop.

+ Learn more +
+
+ Screenshot of Storybook in light and dark mode +

Theming

+

Theme Storybook's UI to personalize it to your project.

+ Learn more +
+
+
+
+
+
+

Addons

+

Integrate your tools with Storybook to connect workflows.

+ Discover all addons +
+
+ Integrate your tools with Storybook to connect workflows. +
+
+ +
+
+ Github logo + Join our contributors building the future of UI development. + + Star on GitHub +
+
+ Discord logo +
+ Get support and chat with frontend developers. + + Join Discord server +
+
+
+ Youtube logo +
+ Watch tutorials, feature previews and interviews. + + Watch on YouTube +
+
+
+ A book +

Follow guided walkthroughs on for key workflows.

+ + Discover tutorials +
+
+ + diff --git a/code/frameworks/nextjs-vite/template/cli/js/Header.jsx b/code/frameworks/nextjs-vite/template/cli/js/Header.jsx new file mode 100644 index 000000000000..39e5226cffc1 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/js/Header.jsx @@ -0,0 +1,59 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import { Button } from './Button'; +import './header.css'; + +export const Header = ({ user, onLogin, onLogout, onCreateAccount }) => ( +
+
+
+ + + + + + + +

Acme

+
+
+ {user ? ( + <> + + Welcome, {user.name}! + +
+
+
+); + +Header.propTypes = { + user: PropTypes.shape({ + name: PropTypes.string.isRequired, + }), + onLogin: PropTypes.func.isRequired, + onLogout: PropTypes.func.isRequired, + onCreateAccount: PropTypes.func.isRequired, +}; + +Header.defaultProps = { + user: null, +}; diff --git a/code/frameworks/nextjs-vite/template/cli/js/Header.stories.js b/code/frameworks/nextjs-vite/template/cli/js/Header.stories.js new file mode 100644 index 000000000000..982cd970fb5c --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/js/Header.stories.js @@ -0,0 +1,29 @@ +import { fn } from '@storybook/test'; +import { Header } from './Header'; + +export default { + title: 'Example/Header', + component: Header, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ['autodocs'], + parameters: { + // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout + layout: 'fullscreen', + }, + args: { + onLogin: fn(), + onLogout: fn(), + onCreateAccount: fn(), + }, +}; +export const LoggedIn = { + args: { + user: { + name: 'Jane Doe', + }, + }, +}; + +export const LoggedOut = { + args: {}, +}; diff --git a/code/frameworks/nextjs-vite/template/cli/js/Page.jsx b/code/frameworks/nextjs-vite/template/cli/js/Page.jsx new file mode 100644 index 000000000000..6db1e0ac3f36 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/js/Page.jsx @@ -0,0 +1,68 @@ +import React from 'react'; + +import { Header } from './Header'; +import './page.css'; + +export const Page = () => { + const [user, setUser] = React.useState(); + + return ( +
+
setUser({ name: 'Jane Doe' })} + onLogout={() => setUser(undefined)} + onCreateAccount={() => setUser({ name: 'Jane Doe' })} + /> +
+

Pages in Storybook

+

+ We recommend building UIs with a{' '} + + component-driven + {' '} + process starting with atomic components and ending with pages. +

+

+ Render pages with mock data. This makes it easy to build and review page states without + needing to navigate to them in your app. Here are some handy patterns for managing page + data in Storybook: +

+
    +
  • + Use a higher-level connected component. Storybook helps you compose such data from the + "args" of child component stories +
  • +
  • + Assemble data in the page component from your services. You can mock these services out + using Storybook. +
  • +
+

+ Get a guided tutorial on component-driven development at{' '} + + Storybook tutorials + + . Read more in the{' '} + + docs + + . +

+
+ Tip Adjust the width of the canvas with the{' '} + + + + + + Viewports addon in the toolbar +
+
+
+ ); +}; diff --git a/code/frameworks/nextjs-vite/template/cli/js/Page.stories.js b/code/frameworks/nextjs-vite/template/cli/js/Page.stories.js new file mode 100644 index 000000000000..53362f140e61 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/js/Page.stories.js @@ -0,0 +1,27 @@ +import { within, userEvent, expect } from '@storybook/test'; +import { Page } from './Page'; + +export default { + title: 'Example/Page', + component: Page, + parameters: { + // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout + layout: 'fullscreen', + }, +}; + +export const LoggedOut = {}; + +// More on interaction testing: https://storybook.js.org/docs/writing-tests/interaction-testing +export const LoggedIn = { + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + const loginButton = canvas.getByRole('button', { name: /Log in/i }); + await expect(loginButton).toBeInTheDocument(); + await userEvent.click(loginButton); + await expect(loginButton).not.toBeInTheDocument(); + + const logoutButton = canvas.getByRole('button', { name: /Log out/i }); + await expect(logoutButton).toBeInTheDocument(); + }, +}; diff --git a/code/frameworks/nextjs-vite/template/cli/ts-3-8/Button.stories.ts b/code/frameworks/nextjs-vite/template/cli/ts-3-8/Button.stories.ts new file mode 100644 index 000000000000..2054fc59231e --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/ts-3-8/Button.stories.ts @@ -0,0 +1,52 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import { fn } from '@storybook/test'; +import { Button } from './Button'; + +// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export +const meta: Meta = { + title: 'Example/Button', + component: Button, + parameters: { + // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout + layout: 'centered', + }, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ['autodocs'], + // More on argTypes: https://storybook.js.org/docs/api/argtypes + argTypes: { + backgroundColor: { control: 'color' }, + }, + // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args + args: { onClick: fn() }, +}; + +export default meta; +type Story = StoryObj; + +// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args +export const Primary: Story = { + args: { + primary: true, + label: 'Button', + }, +}; + +export const Secondary: Story = { + args: { + label: 'Button', + }, +}; + +export const Large: Story = { + args: { + size: 'large', + label: 'Button', + }, +}; + +export const Small: Story = { + args: { + size: 'small', + label: 'Button', + }, +}; diff --git a/code/frameworks/nextjs-vite/template/cli/ts-3-8/Button.tsx b/code/frameworks/nextjs-vite/template/cli/ts-3-8/Button.tsx new file mode 100644 index 000000000000..30a6bcb96e49 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/ts-3-8/Button.tsx @@ -0,0 +1,52 @@ +import React from 'react'; +import './button.css'; + +export interface ButtonProps { + /** + * Is this the principal call to action on the page? + */ + primary?: boolean; + /** + * What background color to use + */ + backgroundColor?: string; + /** + * How large should the button be? + */ + size?: 'small' | 'medium' | 'large'; + /** + * Button contents + */ + label: string; + /** + * Optional click handler + */ + onClick?: () => void; +} + +/** + * Primary UI component for user interaction + */ +export const Button = ({ + primary = false, + size = 'medium', + backgroundColor, + label, + ...props +}: ButtonProps) => { + const mode = primary ? 'storybook-button--primary' : 'storybook-button--secondary'; + return ( + + ); +}; diff --git a/code/frameworks/nextjs-vite/template/cli/ts-3-8/Configure.mdx b/code/frameworks/nextjs-vite/template/cli/ts-3-8/Configure.mdx new file mode 100644 index 000000000000..cc3292373f73 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/ts-3-8/Configure.mdx @@ -0,0 +1,446 @@ +import { Meta } from "@storybook/blocks"; +import Image from "next/image"; + +import Github from "./assets/github.svg"; +import Discord from "./assets/discord.svg"; +import Youtube from "./assets/youtube.svg"; +import Tutorials from "./assets/tutorials.svg"; +import Styling from "./assets/styling.png"; +import Context from "./assets/context.png"; +import Assets from "./assets/assets.png"; +import Docs from "./assets/docs.png"; +import Share from "./assets/share.png"; +import FigmaPlugin from "./assets/figma-plugin.png"; +import Testing from "./assets/testing.png"; +import Accessibility from "./assets/accessibility.png"; +import Theming from "./assets/theming.png"; +import AddonLibrary from "./assets/addon-library.png"; + +export const RightArrow = () => + + + + + +
+
+ # Configure your project + + Because Storybook works separately from your app, you'll need to configure it for your specific stack and setup. Below, explore guides for configuring Storybook with popular frameworks and tools. If you get stuck, learn how you can ask for help from our community. +
+
+
+ A wall of logos representing different styling technologies +

Add styling and CSS

+

Like with web applications, there are many ways to include CSS within Storybook. Learn more about setting up styling within Storybook.

+ Learn more +
+
+ An abstraction representing the composition of data for a component +

Provide context and mocking

+

Often when a story doesn't render, it's because your component is expecting a specific environment or context (like a theme provider) to be available.

+ Learn more +
+
+ A representation of typography and image assets +
+

Load assets and resources

+

To link static files (like fonts) to your projects and stories, use the + `staticDirs` configuration option to specify folders to load when + starting Storybook.

+ Learn more +
+
+
+
+
+
+ # Do more with Storybook + + Now that you know the basics, let's explore other parts of Storybook that will improve your experience. This list is just to get you started. You can customise Storybook in many ways to fit your needs. +
+ +
+
+
+ A screenshot showing the autodocs tag being set, pointing a docs page being generated +

Autodocs

+

Auto-generate living, + interactive reference documentation from your components and stories.

+ Learn more +
+
+ A browser window showing a Storybook being published to a chromatic.com URL +

Publish to Chromatic

+

Publish your Storybook to review and collaborate with your entire team.

+ Learn more +
+
+ Windows showing the Storybook plugin in Figma +

Figma Plugin

+

Embed your stories into Figma to cross-reference the design and live + implementation in one place.

+ Learn more +
+
+ Screenshot of tests passing and failing +

Testing

+

Use stories to test a component in all its variations, no matter how + complex.

+ Learn more +
+
+ Screenshot of accessibility tests passing and failing +

Accessibility

+

Automatically test your components for a11y issues as you develop.

+ Learn more +
+
+ Screenshot of Storybook in light and dark mode +

Theming

+

Theme Storybook's UI to personalize it to your project.

+ Learn more +
+
+
+
+
+
+

Addons

+

Integrate your tools with Storybook to connect workflows.

+ Discover all addons +
+
+ Integrate your tools with Storybook to connect workflows. +
+
+ +
+
+ Github logo + Join our contributors building the future of UI development. + + Star on GitHub +
+
+ Discord logo +
+ Get support and chat with frontend developers. + + Join Discord server +
+
+
+ Youtube logo +
+ Watch tutorials, feature previews and interviews. + + Watch on YouTube +
+
+
+ A book +

Follow guided walkthroughs on for key workflows.

+ + Discover tutorials +
+
+ + diff --git a/code/frameworks/nextjs-vite/template/cli/ts-3-8/Header.stories.ts b/code/frameworks/nextjs-vite/template/cli/ts-3-8/Header.stories.ts new file mode 100644 index 000000000000..feddeae98faf --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/ts-3-8/Header.stories.ts @@ -0,0 +1,33 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import { fn } from '@storybook/test'; + +import { Header } from './Header'; + +const meta: Meta = { + title: 'Example/Header', + component: Header, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ['autodocs'], + parameters: { + // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout + layout: 'fullscreen', + }, + args: { + onLogin: fn(), + onLogout: fn(), + onCreateAccount: fn(), + }, +}; + +export default meta; +type Story = StoryObj; + +export const LoggedIn: Story = { + args: { + user: { + name: 'Jane Doe', + }, + }, +}; + +export const LoggedOut: Story = {}; diff --git a/code/frameworks/nextjs-vite/template/cli/ts-3-8/Header.tsx b/code/frameworks/nextjs-vite/template/cli/ts-3-8/Header.tsx new file mode 100644 index 000000000000..1bf981a4251f --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/ts-3-8/Header.tsx @@ -0,0 +1,56 @@ +import React from 'react'; + +import { Button } from './Button'; +import './header.css'; + +type User = { + name: string; +}; + +export interface HeaderProps { + user?: User; + onLogin?: () => void; + onLogout?: () => void; + onCreateAccount?: () => void; +} + +export const Header = ({ user, onLogin, onLogout, onCreateAccount }: HeaderProps) => ( +
+
+
+ + + + + + + +

Acme

+
+
+ {user ? ( + <> + + Welcome, {user.name}! + +
+
+
+); diff --git a/code/frameworks/nextjs-vite/template/cli/ts-3-8/Page.stories.ts b/code/frameworks/nextjs-vite/template/cli/ts-3-8/Page.stories.ts new file mode 100644 index 000000000000..4bcf593cafa7 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/ts-3-8/Page.stories.ts @@ -0,0 +1,32 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import { within, userEvent, expect } from '@storybook/test'; + +import { Page } from './Page'; + +const meta: Meta = { + title: 'Example/Page', + component: Page, + parameters: { + // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout + layout: 'fullscreen', + }, +}; + +export default meta; +type Story = StoryObj; + +export const LoggedOut: Story = {}; + +// More on interaction testing: https://storybook.js.org/docs/writing-tests/interaction-testing +export const LoggedIn: Story = { + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + const loginButton = canvas.getByRole('button', { name: /Log in/i }); + await expect(loginButton).toBeInTheDocument(); + await userEvent.click(loginButton); + await expect(loginButton).not.toBeInTheDocument(); + + const logoutButton = canvas.getByRole('button', { name: /Log out/i }); + await expect(logoutButton).toBeInTheDocument(); + }, +}; diff --git a/code/frameworks/nextjs-vite/template/cli/ts-3-8/Page.tsx b/code/frameworks/nextjs-vite/template/cli/ts-3-8/Page.tsx new file mode 100644 index 000000000000..e11748301390 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/ts-3-8/Page.tsx @@ -0,0 +1,73 @@ +import React from 'react'; + +import { Header } from './Header'; +import './page.css'; + +type User = { + name: string; +}; + +export const Page: React.FC = () => { + const [user, setUser] = React.useState(); + + return ( +
+
setUser({ name: 'Jane Doe' })} + onLogout={() => setUser(undefined)} + onCreateAccount={() => setUser({ name: 'Jane Doe' })} + /> + +
+

Pages in Storybook

+

+ We recommend building UIs with a{' '} + + component-driven + {' '} + process starting with atomic components and ending with pages. +

+

+ Render pages with mock data. This makes it easy to build and review page states without + needing to navigate to them in your app. Here are some handy patterns for managing page + data in Storybook: +

+
    +
  • + Use a higher-level connected component. Storybook helps you compose such data from the + "args" of child component stories +
  • +
  • + Assemble data in the page component from your services. You can mock these services out + using Storybook. +
  • +
+

+ Get a guided tutorial on component-driven development at{' '} + + Storybook tutorials + + . Read more in the{' '} + + docs + + . +

+
+ Tip Adjust the width of the canvas with the{' '} + + + + + + Viewports addon in the toolbar +
+
+
+ ); +}; diff --git a/code/frameworks/nextjs-vite/template/cli/ts-4-9/Button.stories.ts b/code/frameworks/nextjs-vite/template/cli/ts-4-9/Button.stories.ts new file mode 100644 index 000000000000..455a9d8601c9 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/ts-4-9/Button.stories.ts @@ -0,0 +1,52 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import { fn } from '@storybook/test'; +import { Button } from './Button'; + +// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export +const meta = { + title: 'Example/Button', + component: Button, + parameters: { + // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout + layout: 'centered', + }, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ['autodocs'], + // More on argTypes: https://storybook.js.org/docs/api/argtypes + argTypes: { + backgroundColor: { control: 'color' }, + }, + // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args + args: { onClick: fn() }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args +export const Primary: Story = { + args: { + primary: true, + label: 'Button', + }, +}; + +export const Secondary: Story = { + args: { + label: 'Button', + }, +}; + +export const Large: Story = { + args: { + size: 'large', + label: 'Button', + }, +}; + +export const Small: Story = { + args: { + size: 'small', + label: 'Button', + }, +}; diff --git a/code/frameworks/nextjs-vite/template/cli/ts-4-9/Button.tsx b/code/frameworks/nextjs-vite/template/cli/ts-4-9/Button.tsx new file mode 100644 index 000000000000..30a6bcb96e49 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/ts-4-9/Button.tsx @@ -0,0 +1,52 @@ +import React from 'react'; +import './button.css'; + +export interface ButtonProps { + /** + * Is this the principal call to action on the page? + */ + primary?: boolean; + /** + * What background color to use + */ + backgroundColor?: string; + /** + * How large should the button be? + */ + size?: 'small' | 'medium' | 'large'; + /** + * Button contents + */ + label: string; + /** + * Optional click handler + */ + onClick?: () => void; +} + +/** + * Primary UI component for user interaction + */ +export const Button = ({ + primary = false, + size = 'medium', + backgroundColor, + label, + ...props +}: ButtonProps) => { + const mode = primary ? 'storybook-button--primary' : 'storybook-button--secondary'; + return ( + + ); +}; diff --git a/code/frameworks/nextjs-vite/template/cli/ts-4-9/Configure.mdx b/code/frameworks/nextjs-vite/template/cli/ts-4-9/Configure.mdx new file mode 100644 index 000000000000..cc3292373f73 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/ts-4-9/Configure.mdx @@ -0,0 +1,446 @@ +import { Meta } from "@storybook/blocks"; +import Image from "next/image"; + +import Github from "./assets/github.svg"; +import Discord from "./assets/discord.svg"; +import Youtube from "./assets/youtube.svg"; +import Tutorials from "./assets/tutorials.svg"; +import Styling from "./assets/styling.png"; +import Context from "./assets/context.png"; +import Assets from "./assets/assets.png"; +import Docs from "./assets/docs.png"; +import Share from "./assets/share.png"; +import FigmaPlugin from "./assets/figma-plugin.png"; +import Testing from "./assets/testing.png"; +import Accessibility from "./assets/accessibility.png"; +import Theming from "./assets/theming.png"; +import AddonLibrary from "./assets/addon-library.png"; + +export const RightArrow = () => + + + + + +
+
+ # Configure your project + + Because Storybook works separately from your app, you'll need to configure it for your specific stack and setup. Below, explore guides for configuring Storybook with popular frameworks and tools. If you get stuck, learn how you can ask for help from our community. +
+
+
+ A wall of logos representing different styling technologies +

Add styling and CSS

+

Like with web applications, there are many ways to include CSS within Storybook. Learn more about setting up styling within Storybook.

+ Learn more +
+
+ An abstraction representing the composition of data for a component +

Provide context and mocking

+

Often when a story doesn't render, it's because your component is expecting a specific environment or context (like a theme provider) to be available.

+ Learn more +
+
+ A representation of typography and image assets +
+

Load assets and resources

+

To link static files (like fonts) to your projects and stories, use the + `staticDirs` configuration option to specify folders to load when + starting Storybook.

+ Learn more +
+
+
+
+
+
+ # Do more with Storybook + + Now that you know the basics, let's explore other parts of Storybook that will improve your experience. This list is just to get you started. You can customise Storybook in many ways to fit your needs. +
+ +
+
+
+ A screenshot showing the autodocs tag being set, pointing a docs page being generated +

Autodocs

+

Auto-generate living, + interactive reference documentation from your components and stories.

+ Learn more +
+
+ A browser window showing a Storybook being published to a chromatic.com URL +

Publish to Chromatic

+

Publish your Storybook to review and collaborate with your entire team.

+ Learn more +
+
+ Windows showing the Storybook plugin in Figma +

Figma Plugin

+

Embed your stories into Figma to cross-reference the design and live + implementation in one place.

+ Learn more +
+
+ Screenshot of tests passing and failing +

Testing

+

Use stories to test a component in all its variations, no matter how + complex.

+ Learn more +
+
+ Screenshot of accessibility tests passing and failing +

Accessibility

+

Automatically test your components for a11y issues as you develop.

+ Learn more +
+
+ Screenshot of Storybook in light and dark mode +

Theming

+

Theme Storybook's UI to personalize it to your project.

+ Learn more +
+
+
+
+
+
+

Addons

+

Integrate your tools with Storybook to connect workflows.

+ Discover all addons +
+
+ Integrate your tools with Storybook to connect workflows. +
+
+ +
+
+ Github logo + Join our contributors building the future of UI development. + + Star on GitHub +
+
+ Discord logo +
+ Get support and chat with frontend developers. + + Join Discord server +
+
+
+ Youtube logo +
+ Watch tutorials, feature previews and interviews. + + Watch on YouTube +
+
+
+ A book +

Follow guided walkthroughs on for key workflows.

+ + Discover tutorials +
+
+ + diff --git a/code/frameworks/nextjs-vite/template/cli/ts-4-9/Header.stories.ts b/code/frameworks/nextjs-vite/template/cli/ts-4-9/Header.stories.ts new file mode 100644 index 000000000000..39d15874f4c1 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/ts-4-9/Header.stories.ts @@ -0,0 +1,32 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import { fn } from '@storybook/test'; +import { Header } from './Header'; + +const meta = { + title: 'Example/Header', + component: Header, + // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs + tags: ['autodocs'], + parameters: { + // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout + layout: 'fullscreen', + }, + args: { + onLogin: fn(), + onLogout: fn(), + onCreateAccount: fn(), + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const LoggedIn: Story = { + args: { + user: { + name: 'Jane Doe', + }, + }, +}; + +export const LoggedOut: Story = {}; diff --git a/code/frameworks/nextjs-vite/template/cli/ts-4-9/Header.tsx b/code/frameworks/nextjs-vite/template/cli/ts-4-9/Header.tsx new file mode 100644 index 000000000000..1bf981a4251f --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/ts-4-9/Header.tsx @@ -0,0 +1,56 @@ +import React from 'react'; + +import { Button } from './Button'; +import './header.css'; + +type User = { + name: string; +}; + +export interface HeaderProps { + user?: User; + onLogin?: () => void; + onLogout?: () => void; + onCreateAccount?: () => void; +} + +export const Header = ({ user, onLogin, onLogout, onCreateAccount }: HeaderProps) => ( +
+
+
+ + + + + + + +

Acme

+
+
+ {user ? ( + <> + + Welcome, {user.name}! + +
+
+
+); diff --git a/code/frameworks/nextjs-vite/template/cli/ts-4-9/Page.stories.ts b/code/frameworks/nextjs-vite/template/cli/ts-4-9/Page.stories.ts new file mode 100644 index 000000000000..f7a06817f85a --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/ts-4-9/Page.stories.ts @@ -0,0 +1,32 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import { within, userEvent, expect } from '@storybook/test'; + +import { Page } from './Page'; + +const meta = { + title: 'Example/Page', + component: Page, + parameters: { + // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout + layout: 'fullscreen', + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const LoggedOut: Story = {}; + +// More on interaction testing: https://storybook.js.org/docs/writing-tests/interaction-testing +export const LoggedIn: Story = { + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + const loginButton = canvas.getByRole('button', { name: /Log in/i }); + await expect(loginButton).toBeInTheDocument(); + await userEvent.click(loginButton); + await expect(loginButton).not.toBeInTheDocument(); + + const logoutButton = canvas.getByRole('button', { name: /Log out/i }); + await expect(logoutButton).toBeInTheDocument(); + }, +}; diff --git a/code/frameworks/nextjs-vite/template/cli/ts-4-9/Page.tsx b/code/frameworks/nextjs-vite/template/cli/ts-4-9/Page.tsx new file mode 100644 index 000000000000..e11748301390 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/cli/ts-4-9/Page.tsx @@ -0,0 +1,73 @@ +import React from 'react'; + +import { Header } from './Header'; +import './page.css'; + +type User = { + name: string; +}; + +export const Page: React.FC = () => { + const [user, setUser] = React.useState(); + + return ( +
+
setUser({ name: 'Jane Doe' })} + onLogout={() => setUser(undefined)} + onCreateAccount={() => setUser({ name: 'Jane Doe' })} + /> + +
+

Pages in Storybook

+

+ We recommend building UIs with a{' '} + + component-driven + {' '} + process starting with atomic components and ending with pages. +

+

+ Render pages with mock data. This makes it easy to build and review page states without + needing to navigate to them in your app. Here are some handy patterns for managing page + data in Storybook: +

+
    +
  • + Use a higher-level connected component. Storybook helps you compose such data from the + "args" of child component stories +
  • +
  • + Assemble data in the page component from your services. You can mock these services out + using Storybook. +
  • +
+

+ Get a guided tutorial on component-driven development at{' '} + + Storybook tutorials + + . Read more in the{' '} + + docs + + . +

+
+ Tip Adjust the width of the canvas with the{' '} + + + + + + Viewports addon in the toolbar +
+
+
+ ); +}; diff --git a/code/frameworks/nextjs-vite/template/next-env.d.ts b/code/frameworks/nextjs-vite/template/next-env.d.ts new file mode 100644 index 000000000000..77e567dab0a2 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/next-env.d.ts @@ -0,0 +1,7 @@ +// Reference necessary since Next.js 13.2.0, because types in `next/navigation` are not exported per default, but +// type references are dynamically created during Next.js start up. +// See https://github.com/vercel/next.js/commit/cdf1d52d9aed42d01a46539886a4bda14cb77a99 +// for more insights. + +/// +/// diff --git a/code/frameworks/nextjs-vite/template/stories/DynamicImport.stories.tsx b/code/frameworks/nextjs-vite/template/stories/DynamicImport.stories.tsx new file mode 100644 index 000000000000..47d1fd3e0af4 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/DynamicImport.stories.tsx @@ -0,0 +1,25 @@ +import dynamic from 'next/dynamic'; +import React, { Suspense } from 'react'; +import type { Meta, StoryObj } from '@storybook/react'; + +const DynamicComponent = dynamic(() => import('./DynamicImport'), { + ssr: false, +}); + +function Component() { + return ( + + + + ); +} + +const meta = { + component: Component, +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = {}; diff --git a/code/frameworks/nextjs-vite/template/stories/DynamicImport.tsx b/code/frameworks/nextjs-vite/template/stories/DynamicImport.tsx new file mode 100644 index 000000000000..4863633033f3 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/DynamicImport.tsx @@ -0,0 +1,5 @@ +import React from 'react'; + +export default function DynamicComponent() { + return
I am a dynamically loaded component
; +} diff --git a/code/frameworks/nextjs-vite/template/stories/Font.stories.tsx b/code/frameworks/nextjs-vite/template/stories/Font.stories.tsx new file mode 100644 index 000000000000..b91247b1392b --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/Font.stories.tsx @@ -0,0 +1,28 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import Font from './Font'; + +const meta = { + component: Font, +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +export const WithClassName: Story = { + args: { + variant: 'className', + }, +}; + +export const WithStyle: Story = { + args: { + variant: 'style', + }, +}; + +export const WithVariable: Story = { + args: { + variant: 'variable', + }, +}; diff --git a/code/frameworks/nextjs-vite/template/stories/Font.tsx b/code/frameworks/nextjs-vite/template/stories/Font.tsx new file mode 100644 index 000000000000..cdfde7def069 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/Font.tsx @@ -0,0 +1,67 @@ +import { Rubik_Puddles } from 'next/font/google'; +import localFont from 'next/font/local'; + +import React from 'react'; + +const rubik = Rubik_Puddles({ + subsets: ['latin'], + variable: '--font-latin-rubik', + weight: '400', +}); + +export const localRubikStorm = localFont({ + src: '/fonts/RubikStorm-Regular.ttf', + variable: '--font-rubik-storm', +}); + +type FontProps = { + variant: 'className' | 'style' | 'variable'; +}; + +export default function Font({ variant }: FontProps) { + switch (variant) { + case 'className': + return ( +
+

Google Rubik Puddles

+

Google Local Rubik Storm

+
+ ); + case 'style': + return ( +
+

Google Rubik Puddles

+

Google Local Rubik Storm

+
+ ); + case 'variable': + return ( +
+
+

+ Google Rubik Puddles +

+
+
+

+ Google Local Rubik Storm +

+
+
+ ); + default: + return null; + } +} diff --git a/code/frameworks/nextjs-vite/template/stories/GetImageProps.stories.tsx b/code/frameworks/nextjs-vite/template/stories/GetImageProps.stories.tsx new file mode 100644 index 000000000000..e955ed2e6b2b --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/GetImageProps.stories.tsx @@ -0,0 +1,38 @@ +import { type ImageProps, getImageProps } from 'next/image'; +import React from 'react'; +import type { Meta, StoryObj } from '@storybook/nextjs-vite'; + +import Accessibility from '../../assets/accessibility.svg'; +import Testing from '../../assets/testing.png'; + +// referenced from https://nextjs.org/docs/pages/api-reference/components/image#theme-detection-picture +const Component = (props: Omit) => { + const { + props: { srcSet: dark }, + } = getImageProps({ src: Accessibility, ...props }); + const { + // capture rest on one to spread to img as default; it doesn't matter which barring art direction + props: { srcSet: light, ...rest }, + } = getImageProps({ src: Testing, ...props }); + + return ( + + + + + + ); +}; + +const meta = { + component: Component, + args: { + alt: 'getImageProps Example', + }, +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = {}; diff --git a/code/frameworks/nextjs-vite/template/stories/Head.stories.tsx b/code/frameworks/nextjs-vite/template/stories/Head.stories.tsx new file mode 100644 index 000000000000..23ae3526055a --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/Head.stories.tsx @@ -0,0 +1,38 @@ +import Head from 'next/head'; +import React from 'react'; +import { waitFor, expect } from '@storybook/test'; +import type { Meta } from '@storybook/react'; +import type { StoryObj } from '@storybook/react'; + +function Component() { + return ( +
+ + Next.js Head Title + + + + + +

Hello world!

+
+ ); +} + +const meta = { + component: Component, +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + play: async () => { + await waitFor(() => expect(document.title).toEqual('Next.js Head Title')); + await expect(document.querySelectorAll('meta[property="og:title"]')).toHaveLength(1); + await expect(document.querySelector('meta[property="og:title"]').content).toEqual( + 'My new title' + ); + }, +}; diff --git a/code/frameworks/nextjs-vite/template/stories/Image.stories.tsx b/code/frameworks/nextjs-vite/template/stories/Image.stories.tsx new file mode 100644 index 000000000000..ad18f125b523 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/Image.stories.tsx @@ -0,0 +1,108 @@ +import React, { useRef, useState } from 'react'; +import Image from 'next/image'; + +import Accessibility from '../../assets/accessibility.svg'; +import AvifImage from '../../assets/avif-test-image.avif'; +import type { Meta, StoryObj } from '@storybook/react'; + +const meta = { + component: Image, + args: { + src: Accessibility, + alt: 'Accessibility', + }, +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = {}; + +export const Avif: Story = { + args: { + src: AvifImage, + alt: 'Avif Test Image', + }, +}; + +export const BlurredPlaceholder: Story = { + args: { + placeholder: 'blur', + }, +}; + +export const BlurredAbsolutePlaceholder: Story = { + args: { + src: 'https://storybook.js.org/images/placeholders/50x50.png', + width: 50, + height: 50, + blurDataURL: + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAABP5JREFUWEeNlwtz2zgMhEGKsv/k9XFp82xe11763yOJVGcXC4m2czM3GYa0E2s/LACSTi+vv1czM/7CvPpqxY/ejPeS3khmFiPHOiVLHKaZi4ux4j18GpMlS6cALupEQBCKQM4BdnGzjIcJgs//QBxAPQAem55f3yL4PWJIdyCyhlMfPdYZot0cwj3Ayg/5JwHA13paen7pADphxr/n5VI8JQsHCCGQ3gVGLLsxQ3h/LYSn5383B05rwNOws3Z576LOTOduvwfrOd5FtVat4akx0uPTrw8BNuUz23vLsY7hmg7i4ipqM2saiAdruNuirh4ff0bNdb3Qy3vkvfAQwrkHoDxTTZtDCOKrC1bMEkdnsQh/PLyetOGHkXeRAgQAQ84efQcBdUhvFofoulpdm9WGGTA+AJEe7l+i37a2c371tCFKs5zzJjxQNBMi1im7OCudP2aNghJuzZaGdSMEZjpwf/t0UgNdg9DOyLGLnY0BUHlzwVtNDkgEQhBeKkb1tUDgQrq7frwAiIJi5BKAeIFgHk5mOpPzvgltOfcoK0Rrs7lWHwsgqtXarK3N0u23h5Ne8+3Cqxn5RYSMfHCAMgDAx4CBWlA9RAGw0GA/ol0gvFB4WjAvBAFUa83SzdUdAbYMqp28uHpxCRefxwAYhksAFBlthxCiXig+zT4TYqkC+Hq7OdAfJv8lPpZiZShWBBIuRP+jspDb2lwcDkzz7OLzbO/zvAHAoXTz5eYMQL0t2yHAiCFcfPY1QDwNFylA5bPoFpsV9fsEiMl8dhcc4PP1CYD3drYcBYdIKQrx0cbRxd2JHSDcQ297/vvoZ5smRC+AyV2AQ+nm03evge08Tyy4jGqXzWWEoIvTgXHU38pWiNgH4ixB/ukAcy/xycXfp4kwdAAAt399W+OCgMjxILQacxvRQ3gEwHgKUIr/rz53CuDFNyP/Eob4+/vEWkBq6AAA/HIi62n/Lk67Q7wDYQ0UpQB7hc54T4E6gACLTYxeAwB0YKZL6U4ATEGIBwCs7qPfQJCCHkCnoK50noJKcXcAojsEAJZZKXhgCoziGKxqWV8IMNp4kP2aC+oB0TMFvhGxDQHQfIPhDrilwKOm/YCZASAHfgBABQjr3f7CyAkA0cPB03AQULRhKd4xAIjzHymo2Gp7gN0FAMAVOoA2fPz03a9ssh/RM7Iz8QKIzYF9HyB0XEZ1xJ4DzNoDOAfAslhDDTyjDfv8A2AcBeCiu/jBHQEgxnYW6Kp6BlCVAkQM8VnieF2Xyr0ivXy+XvsCzKOihwNHCCryw8HrQXVB8dgFeRfAVQiXjMbIIgXINQYB2H7Kf5wF/2Ar7h0AgKKGuAP4zOjhzlkLbpcRXKRZhNUjxG6HIQDOjN47gCn4+fWW3xVS9urPESEEwwHMo9IhAGxS2ISiA1iEnQOoA4hXRAwItp7WzL9Ow18ESJaw/ar4NgeOR49cAHCAnaH8swBhv+6CBGjeBSxEOUAI7HyKHkD4O9xKb3/feQouAI4uLBciHRRHmgbfA7h/xFc9AngNBADthvii1sMOiPwDAFeyt6s7FSFS4PmnA1v0vQvqDqQKAAPE/weAUuEgsj8c+H11Twdw/AKANXA82EDr5cJBEEzB3oI4Mb0AdR3nNw8vQnegWuvqAABwJFJEBwDgNdA7IOs3gL0LhuJdwBY8c4BfNnDdVgooHiOqn/b7JoSW/QODjTHXhU7hMQAAAABJRU5ErkJggg==', + placeholder: 'blur', + }, + parameters: { + // ignoring in Chromatic to avoid inconsistent snapshots + // given that the switch from blur to image is quite fast + chromatic: { disableSnapshot: true }, + }, +}; + +export const FilledParent: Story = { + args: { + fill: true, + }, + decorators: [ + (Story) =>
{Story()}
, + ], +}; + +export const Sized: Story = { + args: { + fill: true, + sizes: '(max-width: 600px) 100vw, 600px', + }, + decorators: [ + (Story) =>
{Story()}
, + ], +}; + +export const Lazy: Story = { + args: { + src: 'https://storybook.js.org/images/placeholders/50x50.png', + width: 50, + height: 50, + }, + decorators: [ + (Story) => ( + <> +
+ {Story()} + + ), + ], +}; + +export const Eager: Story = { + ...Lazy, + parameters: { + nextjs: { + image: { + loading: 'eager', + }, + }, + }, +}; + +export const WithRef: Story = { + render() { + const [ref, setRef] = useState(null); + + return ( +
+ Accessibility +

Alt attribute of image: {ref?.alt}

+
+ ); + }, +}; diff --git a/code/frameworks/nextjs-vite/template/stories/ImageLegacy.stories.tsx b/code/frameworks/nextjs-vite/template/stories/ImageLegacy.stories.tsx new file mode 100644 index 000000000000..b8a781499bd1 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/ImageLegacy.stories.tsx @@ -0,0 +1,36 @@ +import React from 'react'; +import Image from 'next/legacy/image'; + +import Accessibility from '../../assets/accessibility.svg'; + +export default { + component: Image, + args: { + src: Accessibility, + alt: 'Accessibility', + }, +}; + +export const Default = {}; + +export const BlurredPlaceholder = { + args: { + placeholder: 'blur', + }, +}; + +export const BlurredAbsolutePlaceholder = { + args: { + src: 'https://storybook.js.org/images/placeholders/50x50.png', + width: 50, + height: 50, + blurDataURL: + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAABP5JREFUWEeNlwtz2zgMhEGKsv/k9XFp82xe11763yOJVGcXC4m2czM3GYa0E2s/LACSTi+vv1czM/7CvPpqxY/ejPeS3khmFiPHOiVLHKaZi4ux4j18GpMlS6cALupEQBCKQM4BdnGzjIcJgs//QBxAPQAem55f3yL4PWJIdyCyhlMfPdYZot0cwj3Ayg/5JwHA13paen7pADphxr/n5VI8JQsHCCGQ3gVGLLsxQ3h/LYSn5383B05rwNOws3Z576LOTOduvwfrOd5FtVat4akx0uPTrw8BNuUz23vLsY7hmg7i4ipqM2saiAdruNuirh4ff0bNdb3Qy3vkvfAQwrkHoDxTTZtDCOKrC1bMEkdnsQh/PLyetOGHkXeRAgQAQ84efQcBdUhvFofoulpdm9WGGTA+AJEe7l+i37a2c371tCFKs5zzJjxQNBMi1im7OCudP2aNghJuzZaGdSMEZjpwf/t0UgNdg9DOyLGLnY0BUHlzwVtNDkgEQhBeKkb1tUDgQrq7frwAiIJi5BKAeIFgHk5mOpPzvgltOfcoK0Rrs7lWHwsgqtXarK3N0u23h5Ne8+3Cqxn5RYSMfHCAMgDAx4CBWlA9RAGw0GA/ol0gvFB4WjAvBAFUa83SzdUdAbYMqp28uHpxCRefxwAYhksAFBlthxCiXig+zT4TYqkC+Hq7OdAfJv8lPpZiZShWBBIuRP+jspDb2lwcDkzz7OLzbO/zvAHAoXTz5eYMQL0t2yHAiCFcfPY1QDwNFylA5bPoFpsV9fsEiMl8dhcc4PP1CYD3drYcBYdIKQrx0cbRxd2JHSDcQ297/vvoZ5smRC+AyV2AQ+nm03evge08Tyy4jGqXzWWEoIvTgXHU38pWiNgH4ixB/ukAcy/xycXfp4kwdAAAt399W+OCgMjxILQacxvRQ3gEwHgKUIr/rz53CuDFNyP/Eob4+/vEWkBq6AAA/HIi62n/Lk67Q7wDYQ0UpQB7hc54T4E6gACLTYxeAwB0YKZL6U4ATEGIBwCs7qPfQJCCHkCnoK50noJKcXcAojsEAJZZKXhgCoziGKxqWV8IMNp4kP2aC+oB0TMFvhGxDQHQfIPhDrilwKOm/YCZASAHfgBABQjr3f7CyAkA0cPB03AQULRhKd4xAIjzHymo2Gp7gN0FAMAVOoA2fPz03a9ssh/RM7Iz8QKIzYF9HyB0XEZ1xJ4DzNoDOAfAslhDDTyjDfv8A2AcBeCiu/jBHQEgxnYW6Kp6BlCVAkQM8VnieF2Xyr0ivXy+XvsCzKOihwNHCCryw8HrQXVB8dgFeRfAVQiXjMbIIgXINQYB2H7Kf5wF/2Ar7h0AgKKGuAP4zOjhzlkLbpcRXKRZhNUjxG6HIQDOjN47gCn4+fWW3xVS9urPESEEwwHMo9IhAGxS2ISiA1iEnQOoA4hXRAwItp7WzL9Ow18ESJaw/ar4NgeOR49cAHCAnaH8swBhv+6CBGjeBSxEOUAI7HyKHkD4O9xKb3/feQouAI4uLBciHRRHmgbfA7h/xFc9AngNBADthvii1sMOiPwDAFeyt6s7FSFS4PmnA1v0vQvqDqQKAAPE/weAUuEgsj8c+H11Twdw/AKANXA82EDr5cJBEEzB3oI4Mb0AdR3nNw8vQnegWuvqAABwJFJEBwDgNdA7IOs3gL0LhuJdwBY8c4BfNnDdVgooHiOqn/b7JoSW/QODjTHXhU7hMQAAAABJRU5ErkJggg==', + placeholder: 'blur', + }, + parameters: { + // ignoring in Chromatic to avoid inconsistent snapshots + // given that the switch from blur to image is quite fast + chromatic: { disableSnapshot: true }, + }, +}; diff --git a/code/frameworks/nextjs-vite/template/stories/Link.stories.module.css b/code/frameworks/nextjs-vite/template/stories/Link.stories.module.css new file mode 100644 index 000000000000..9edb616226d0 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/Link.stories.module.css @@ -0,0 +1,3 @@ +.link { + color: green; +} diff --git a/code/frameworks/nextjs-vite/template/stories/Link.stories.tsx b/code/frameworks/nextjs-vite/template/stories/Link.stories.tsx new file mode 100644 index 000000000000..1bc99d187e3d --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/Link.stories.tsx @@ -0,0 +1,85 @@ +import React from 'react'; +import Link from 'next/link'; +import type { Meta, StoryObj } from '@storybook/react'; + +import style from './Link.stories.module.css'; + +// `onClick`, `href`, and `ref` need to be passed to the DOM element +// for proper handling +const MyButton = React.forwardRef< + HTMLAnchorElement, + React.DetailedHTMLProps, HTMLAnchorElement> +>(function Button({ onClick, href, children }, ref) { + return ( + + {children} + + ); +}); + +const Component = () => ( +
    +
  • + Normal Link +
  • +
  • + + With URL Object + +
  • +
  • + + Replace the URL instead of push + +
  • +
  • + + Legacy behavior + +
  • +
  • + + child is a functional component + +
  • +
  • + + Disables scrolling to the top + +
  • +
  • + + No Prefetching + +
  • +
  • + + With style + +
  • +
  • + + With className + +
  • +
+); + +export default { + component: Component, +} as Meta; + +export const Default: StoryObj = {}; + +export const InAppDir: StoryObj = { + parameters: { + nextjs: { + appDirectory: true, + }, + }, +}; diff --git a/code/frameworks/nextjs-vite/template/stories/Navigation.stories.tsx b/code/frameworks/nextjs-vite/template/stories/Navigation.stories.tsx new file mode 100644 index 000000000000..ebedcf962a45 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/Navigation.stories.tsx @@ -0,0 +1,151 @@ +import { + useRouter, + usePathname, + useSearchParams, + useParams, + useSelectedLayoutSegment, + useSelectedLayoutSegments, +} from 'next/navigation'; +import React from 'react'; +import type { Meta, StoryObj } from '@storybook/react'; +import { expect, userEvent, within } from '@storybook/test'; +import { getRouter } from '@storybook/nextjs-vite/navigation.mock'; + +function Component() { + const router = useRouter(); + const pathname = usePathname(); + const searchParams = useSearchParams(); + const params = useParams(); + const segment = useSelectedLayoutSegment(); + const segments = useSelectedLayoutSegments(); + + const searchParamsList = searchParams ? Array.from(searchParams.entries()) : []; + + const routerActions = [ + { + cb: () => router.back(), + name: 'Go back', + }, + { + cb: () => router.forward(), + name: 'Go forward', + }, + { + cb: () => router.prefetch('/prefetched-html'), + name: 'Prefetch', + }, + { + // @ts-expect-error (old API) + cb: () => router.push('/push-html', { forceOptimisticNavigation: true }), + name: 'Push HTML', + }, + { + cb: () => router.refresh(), + name: 'Refresh', + }, + { + // @ts-expect-error (old API) + cb: () => router.replace('/replaced-html', { forceOptimisticNavigation: true }), + name: 'Replace', + }, + ]; + + return ( +
+
pathname: {pathname}
+
segment: {segment}
+
segments: {segments.join(',')}
+
+ searchparams:{' '} +
    + {searchParamsList.map(([key, value]) => ( +
  • + {key}: {value} +
  • + ))} +
+
+
+ params:{' '} +
    + {Object.entries(params).map(([key, value]) => ( +
  • + {key}: {value} +
  • + ))} +
+
+ {routerActions.map(({ cb, name }) => ( +
+ +
+ ))} +
+ ); +} + +type Story = StoryObj; + +export default { + component: Component, + parameters: { + nextjs: { + appDirectory: true, + navigation: { + pathname: '/hello', + query: { + foo: 'bar', + }, + prefetch: () => { + console.log('custom prefetch'); + }, + }, + }, + }, +} as Meta; + +export const Default: StoryObj = { + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + const routerMock = getRouter(); + + await step('Asserts whether forward hook is called', async () => { + const forwardBtn = await canvas.findByText('Go forward'); + await userEvent.click(forwardBtn); + await expect(routerMock.forward).toHaveBeenCalled(); + }); + + await step('Asserts whether custom prefetch hook is called', async () => { + const prefetchBtn = await canvas.findByText('Prefetch'); + await userEvent.click(prefetchBtn); + await expect(routerMock.prefetch).toHaveBeenCalledWith('/prefetched-html'); + }); + }, +}; + +export const WithSegmentDefined: Story = { + parameters: { + nextjs: { + appDirectory: true, + navigation: { + segments: ['dashboard', 'settings'], + }, + }, + }, +}; + +export const WithSegmentDefinedForParams: Story = { + parameters: { + nextjs: { + appDirectory: true, + navigation: { + segments: [ + ['slug', 'hello'], + ['framework', 'nextjs'], + ], + }, + }, + }, +}; diff --git a/code/frameworks/nextjs-vite/template/stories/NextHeader.stories.tsx b/code/frameworks/nextjs-vite/template/stories/NextHeader.stories.tsx new file mode 100644 index 000000000000..8fbecc3fffc5 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/NextHeader.stories.tsx @@ -0,0 +1,46 @@ +import NextHeader from './NextHeader'; +import type { Meta } from '@storybook/react'; +import type { StoryObj } from '@storybook/react'; +import { expect, userEvent, within } from '@storybook/test'; +import { cookies, headers } from '@storybook/nextjs-vite/headers.mock'; + +export default { + component: NextHeader, +} as Meta; + +type Story = StoryObj; + +export const Default: Story = { + loaders: async () => { + cookies().set('firstName', 'Jane'); + cookies().set({ + name: 'lastName', + value: 'Doe', + }); + headers().set('timezone', 'Central European Summer Time'); + }, + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + const headersMock = headers(); + const cookiesMock = cookies(); + await step('Cookie and header store apis are called upon rendering', async () => { + await expect(cookiesMock.getAll).toHaveBeenCalled(); + await expect(headersMock.entries).toHaveBeenCalled(); + }); + + await step('Upon clicking on submit, the user-id cookie is set', async () => { + const submitButton = await canvas.findByRole('button'); + await userEvent.click(submitButton); + + await expect(cookiesMock.set).toHaveBeenCalledWith('user-id', 'encrypted-id'); + }); + + await step('The user-id cookie is available in cookie and header stores', async () => { + await expect(headersMock.get('cookie')).toContain('user-id=encrypted-id'); + await expect(cookiesMock.get('user-id')).toEqual({ + name: 'user-id', + value: 'encrypted-id', + }); + }); + }, +}; diff --git a/code/frameworks/nextjs-vite/template/stories/NextHeader.tsx b/code/frameworks/nextjs-vite/template/stories/NextHeader.tsx new file mode 100644 index 000000000000..b93c9611c774 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/NextHeader.tsx @@ -0,0 +1,39 @@ +import React from 'react'; +import { cookies, headers } from 'next/headers'; + +export default async function Component() { + async function handleClick() { + 'use server'; + cookies().set('user-id', 'encrypted-id'); + } + + return ( + <> +

Cookies:

+ {cookies() + .getAll() + .map(({ name, value }) => { + return ( +

+ Name: {name} + Value: {value} +

+ ); + })} + +

Headers:

+ {Array.from(headers().entries()).map(([name, value]: [string, string]) => { + return ( +

+ Name: {name} + Value: {value} +

+ ); + })} + +
+ +
+ + ); +} diff --git a/code/frameworks/nextjs-vite/template/stories/RSC.jsx b/code/frameworks/nextjs-vite/template/stories/RSC.jsx new file mode 100644 index 000000000000..9c894710b439 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/RSC.jsx @@ -0,0 +1,6 @@ +import React from 'react'; +import 'server-only'; + +export const RSC = async ({ label }) => <>RSC {label}; + +export const Nested = async ({ children }) => <>Nested {children}; diff --git a/code/frameworks/nextjs-vite/template/stories/RSC.stories.jsx b/code/frameworks/nextjs-vite/template/stories/RSC.stories.jsx new file mode 100644 index 000000000000..505c6a3acab4 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/RSC.stories.jsx @@ -0,0 +1,35 @@ +import React from 'react'; +import { RSC, Nested } from './RSC'; + +export default { + component: RSC, + args: { label: 'label' }, +}; + +export const Default = {}; + +export const DisableRSC = { + tags: ['!test'], + parameters: { + chromatic: { disable: true }, + nextjs: { rsc: false }, + }, +}; + +export const Error = { + tags: ['!test'], + parameters: { + chromatic: { disable: true }, + }, + render: () => { + throw new Error('RSC Error'); + }, +}; + +export const NestedRSC = { + render: (args) => ( + + + + ), +}; diff --git a/code/frameworks/nextjs-vite/template/stories/Redirect.stories.tsx b/code/frameworks/nextjs-vite/template/stories/Redirect.stories.tsx new file mode 100644 index 000000000000..05f4d5a68eab --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/Redirect.stories.tsx @@ -0,0 +1,55 @@ +import React from 'react'; +import type { Meta, StoryObj } from '@storybook/react'; +import { userEvent, within } from '@storybook/test'; +import { redirect } from 'next/navigation'; + +let state = 'Bug! Not invalidated'; + +export default { + render() { + return ( +
+
{state}
+
{ + state = 'State is invalidated successfully.'; + redirect('/'); + }} + > + +
+
+ ); + }, + parameters: { + test: { + // This is needed until Next will update to the React 19 beta: https://github.com/vercel/next.js/pull/65058 + // In the React 19 beta ErrorBoundary errors (such as redirect) are only logged, and not thrown. + // We will also suspress console.error logs for re the console.error logs for redirect in the next framework. + // Using the onCaughtError react root option: + // react: { + // rootOptions: { + // onCaughtError(error: unknown) { + // if (isNextRouterError(error)) return; + // console.error(error); + // }, + // }, + // See: code/frameworks/nextjs/src/preview.tsx + dangerouslyIgnoreUnhandledErrors: true, + }, + nextjs: { + appDirectory: true, + navigation: { + pathname: '/', + }, + }, + }, + tags: ['!test'], +} as Meta; + +export const SingletonStateGetsInvalidatedAfterRedirecting: StoryObj = { + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + await userEvent.click(canvas.getByRole('button')); + }, +}; diff --git a/code/frameworks/nextjs-vite/template/stories/Router.stories.tsx b/code/frameworks/nextjs-vite/template/stories/Router.stories.tsx new file mode 100644 index 000000000000..cfdb761b2210 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/Router.stories.tsx @@ -0,0 +1,108 @@ +import React from 'react'; +import type { Meta, StoryObj } from '@storybook/react'; +import { expect, within, userEvent } from '@storybook/test'; +import { getRouter } from '@storybook/nextjs-vite/router.mock'; +import Router, { useRouter } from 'next/router'; + +function Component() { + const router = useRouter(); + const searchParams = router.query; + + const routerActions = [ + { + cb: () => router.back(), + name: 'Go back', + }, + { + cb: () => router.forward(), + name: 'Go forward', + }, + { + cb: () => router.prefetch('/prefetched-html'), + name: 'Prefetch', + }, + { + // @ts-expect-error (old API) + cb: () => router.push('/push-html', { forceOptimisticNavigation: true }), + name: 'Push HTML', + }, + { + // @ts-expect-error (old API) + cb: () => router.replace('/replaced-html', { forceOptimisticNavigation: true }), + name: 'Replace', + }, + ]; + + return ( +
+
Router pathname: {Router.pathname}
+
pathname: {router.pathname}
+
+ searchparams:{' '} +
    + {Object.entries(searchParams).map(([key, value]) => ( +
  • + {key}: {value} +
  • + ))} +
+
+ {routerActions.map(({ cb, name }) => ( +
+ +
+ ))} +
+ ); +} + +export default { + component: Component, + parameters: { + nextjs: { + router: { + pathname: '/hello', + query: { + foo: 'bar', + }, + prefetch: () => { + console.log('custom prefetch'); + }, + }, + }, + }, +} as Meta; + +export const Default: StoryObj = { + play: async ({ canvasElement, step }) => { + const canvas = within(canvasElement); + const routerMock = getRouter(); + + await step('Router property overrides should be available in useRouter fn', async () => { + await expect(Router.pathname).toBe('/hello'); + await expect(Router.query).toEqual({ foo: 'bar' }); + }); + + await step( + 'Router property overrides should be available in default export from next/router', + async () => { + await expect(Router.pathname).toBe('/hello'); + await expect(Router.query).toEqual({ foo: 'bar' }); + } + ); + + await step('Asserts whether forward hook is called', async () => { + const forwardBtn = await canvas.findByText('Go forward'); + await userEvent.click(forwardBtn); + await expect(routerMock.forward).toHaveBeenCalled(); + }); + + await step('Asserts whether custom prefetch hook is called', async () => { + const prefetchBtn = await canvas.findByText('Prefetch'); + await userEvent.click(prefetchBtn); + await expect(routerMock.prefetch).toHaveBeenCalledWith('/prefetched-html'); + }); + }, +}; diff --git a/code/frameworks/nextjs-vite/template/stories/ServerActions.stories.tsx b/code/frameworks/nextjs-vite/template/stories/ServerActions.stories.tsx new file mode 100644 index 000000000000..893a0e2009f4 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/ServerActions.stories.tsx @@ -0,0 +1,115 @@ +import React from 'react'; +import type { Meta, StoryObj } from '@storybook/react'; +import { expect, within, userEvent, waitFor } from '@storybook/test'; +import { cookies } from '@storybook/nextjs-vite/headers.mock'; +import { revalidatePath } from '@storybook/nextjs-vite/cache.mock'; +import { redirect, getRouter } from '@storybook/nextjs-vite/navigation.mock'; + +import { accessRoute, login, logout } from './ServerActions'; + +function Component() { + return ( +
+
+ +
+
+ +
+
+ +
+
+ ); +} + +export default { + component: Component, + tags: ['!test'], + parameters: { + nextjs: { + appDirectory: true, + navigation: { + pathname: '/', + }, + }, + test: { + // This is needed until Next will update to the React 19 beta: https://github.com/vercel/next.js/pull/65058 + // In the React 19 beta ErrorBoundary errors (such as redirect) are only logged, and not thrown. + // We will also suspress console.error logs for re the console.error logs for redirect in the next framework. + // Using the onCaughtError react root option: + // react: { + // rootOptions: { + // onCaughtError(error: unknown) { + // if (isNextRouterError(error)) return; + // console.error(error); + // }, + // }, + // See: code/frameworks/nextjs/src/preview.tsx + dangerouslyIgnoreUnhandledErrors: true, + }, + }, +} as Meta; + +export const ProtectedWhileLoggedOut: StoryObj = { + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await userEvent.click(canvas.getByText('Access protected route')); + + await expect(cookies().get).toHaveBeenCalledWith('user'); + await expect(redirect).toHaveBeenCalledWith('/'); + + await waitFor(() => expect(getRouter().push).toHaveBeenCalled()); + }, +}; + +export const ProtectedWhileLoggedIn: StoryObj = { + beforeEach() { + cookies().set('user', 'storybookjs'); + }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await userEvent.click(canvas.getByText('Access protected route')); + + await expect(cookies().get).toHaveBeenLastCalledWith('user'); + await expect(revalidatePath).toHaveBeenLastCalledWith('/'); + await expect(redirect).toHaveBeenLastCalledWith('/protected'); + + await waitFor(() => expect(getRouter().push).toHaveBeenCalled()); + }, +}; + +export const Logout: StoryObj = { + beforeEach() { + cookies().set('user', 'storybookjs'); + }, + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + + await userEvent.click(canvas.getByText('Logout')); + await expect(cookies().delete).toHaveBeenCalled(); + await expect(revalidatePath).toHaveBeenCalledWith('/'); + await expect(redirect).toHaveBeenCalledWith('/'); + + await waitFor(() => expect(getRouter().push).toHaveBeenCalled()); + }, +}; + +export const Login: StoryObj = { + play: async ({ canvasElement }) => { + const canvas = within(canvasElement); + await userEvent.click(canvas.getByText('Login')); + + await expect(cookies().set).toHaveBeenCalledWith('user', 'storybookjs'); + await expect(revalidatePath).toHaveBeenCalledWith('/'); + await expect(redirect).toHaveBeenCalledWith('/'); + + await waitFor(() => expect(getRouter().push).toHaveBeenCalled()); + }, +}; diff --git a/code/frameworks/nextjs-vite/template/stories/ServerActions.tsx b/code/frameworks/nextjs-vite/template/stories/ServerActions.tsx new file mode 100644 index 000000000000..ffeba72ab848 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/ServerActions.tsx @@ -0,0 +1,28 @@ +'use server'; + +import { cookies } from 'next/headers'; +import { revalidatePath } from 'next/cache'; +import { redirect } from 'next/navigation'; + +export async function accessRoute() { + const user = cookies().get('user'); + + if (!user) { + redirect('/'); + } + + revalidatePath('/'); + redirect(`/protected`); +} + +export async function logout() { + cookies().delete('user'); + revalidatePath('/'); + redirect('/'); +} + +export async function login() { + cookies().set('user', 'storybookjs'); + revalidatePath('/'); + redirect('/'); +} diff --git a/code/frameworks/nextjs-vite/template/stories/StyledJsx.stories.jsx b/code/frameworks/nextjs-vite/template/stories/StyledJsx.stories.jsx new file mode 100644 index 000000000000..5a0c586e232c --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/StyledJsx.stories.jsx @@ -0,0 +1,20 @@ +import React from 'react'; + +const Component = () => ( +
+ +
+

This is styled using Styled JSX

+
+
+); + +export default { + component: Component, +}; + +export const Default = {}; diff --git a/code/frameworks/nextjs-vite/template/stories/fonts/OFL.txt b/code/frameworks/nextjs-vite/template/stories/fonts/OFL.txt new file mode 100644 index 000000000000..36d2f6f3febb --- /dev/null +++ b/code/frameworks/nextjs-vite/template/stories/fonts/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 The Rubik Filtered Project Authors (https://https://github.com/NaN-xyz/Rubik-Filtered) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/code/frameworks/nextjs-vite/template/stories/fonts/RubikStorm-Regular.ttf b/code/frameworks/nextjs-vite/template/stories/fonts/RubikStorm-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2304ee84a07b741577f5ed3d9cd288c4c60f4936 GIT binary patch literal 795576 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 c= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + peerDependenciesMeta: + "@babel/core": + optional: true + babel-plugin-macros: + optional: true + checksum: 10c0/ace50e7ea5ae5ae6a3b65a50994c51fca6ae7df9c7ecfd0104c36be0b4b3a9c5c1a2374d16e2a11e256d0b20be6d47256d768ecb4f91ab390f60752a075780f5 + languageName: node + linkType: hard + "stylis@npm:4.2.0": version: 4.2.0 resolution: "stylis@npm:4.2.0" @@ -27742,6 +28147,27 @@ __metadata: languageName: node linkType: hard +"vite-plugin-storybook-nextjs@npm:^0.0.13": + version: 0.0.13 + resolution: "vite-plugin-storybook-nextjs@npm:0.0.13" + dependencies: + "@next/env": "npm:^14.2.5" + image-size: "npm:^1.1.1" + module-alias: "npm:^2.2.3" + sharp: "npm:^0.33.4" + ts-dedent: "npm:^2.2.0" + peerDependencies: + "@storybook/test": ^8.3.0-alpha.3 + next: ^14.2.5 + storybook: ^8.3.0-alpha.3 + vite: ^5.0.0 + dependenciesMeta: + sharp: + optional: true + checksum: 10c0/331e43c91f6c395e3ed87b6a2f372f1372fa7dfc00d0cb8e0a9daad129d779f6f56b5d01fb4b1ab6c231917c458189c02535ecbe2d9d447bc8bf4c3939cc42aa + languageName: node + linkType: hard + "vite@npm:5.1.5, vite@npm:^5.0.0": version: 5.1.5 resolution: "vite@npm:5.1.5" From c2d9ae3146899eec6d909db3e5e805302fce8e53 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Sun, 4 Aug 2024 00:48:06 +0200 Subject: [PATCH 025/135] Formatting --- code/frameworks/nextjs-vite/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/frameworks/nextjs-vite/package.json b/code/frameworks/nextjs-vite/package.json index 3818f5c40848..da82787bf001 100644 --- a/code/frameworks/nextjs-vite/package.json +++ b/code/frameworks/nextjs-vite/package.json @@ -136,7 +136,7 @@ ], "externals": [ "sb-original/image-context" - ], + ], "platform": "node" }, "gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae16" From ed2586d3a96941615341831b1c303084db09e2c3 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Sun, 4 Aug 2024 20:13:10 +0200 Subject: [PATCH 026/135] Add 'nextjs-vite' as a supported framework in helpers.ts --- code/lib/cli/src/helpers.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/code/lib/cli/src/helpers.ts b/code/lib/cli/src/helpers.ts index f2256e11c2b8..8f87539e5aa3 100644 --- a/code/lib/cli/src/helpers.ts +++ b/code/lib/cli/src/helpers.ts @@ -143,6 +143,7 @@ export const frameworkToDefaultBuilder: Record 'html-vite': CoreBuilder.Vite, 'html-webpack5': CoreBuilder.Webpack5, nextjs: CoreBuilder.Webpack5, + 'nextjs-vite': CoreBuilder.Vite, 'preact-vite': CoreBuilder.Vite, 'preact-webpack5': CoreBuilder.Webpack5, qwik: CoreBuilder.Vite, From b10f944ec9019f858fb00786c6d670b043590597 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Sun, 4 Aug 2024 20:22:35 +0200 Subject: [PATCH 027/135] Fix check step --- code/frameworks/nextjs-vite/src/preset.ts | 1 + .../template/stories/GetImageProps.stories.tsx | 2 +- .../nextjs-vite/template/stories/Head.stories.tsx | 2 +- code/frameworks/nextjs-vite/template/typings.d.ts | 9 +++++++++ code/frameworks/nextjs-vite/tsconfig.json | 4 ++-- scripts/prepare/check.ts | 5 ++++- 6 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 code/frameworks/nextjs-vite/template/typings.d.ts diff --git a/code/frameworks/nextjs-vite/src/preset.ts b/code/frameworks/nextjs-vite/src/preset.ts index 090970b664fd..d4b9ce4ba972 100644 --- a/code/frameworks/nextjs-vite/src/preset.ts +++ b/code/frameworks/nextjs-vite/src/preset.ts @@ -2,6 +2,7 @@ import type { StorybookConfigVite } from '@storybook/builder-vite'; import { dirname, join } from 'path'; import type { PresetProperty } from 'storybook/internal/types'; +// @ts-expect-error - tsconfig settings have to be moduleResolution=Bundler and module=Preserve import vitePluginStorybookNextjs from 'vite-plugin-storybook-nextjs'; import type { StorybookConfig } from './types'; diff --git a/code/frameworks/nextjs-vite/template/stories/GetImageProps.stories.tsx b/code/frameworks/nextjs-vite/template/stories/GetImageProps.stories.tsx index e955ed2e6b2b..cb8eefedc9f4 100644 --- a/code/frameworks/nextjs-vite/template/stories/GetImageProps.stories.tsx +++ b/code/frameworks/nextjs-vite/template/stories/GetImageProps.stories.tsx @@ -1,6 +1,6 @@ import { type ImageProps, getImageProps } from 'next/image'; import React from 'react'; -import type { Meta, StoryObj } from '@storybook/nextjs-vite'; +import type { Meta, StoryObj } from '@storybook/react'; import Accessibility from '../../assets/accessibility.svg'; import Testing from '../../assets/testing.png'; diff --git a/code/frameworks/nextjs-vite/template/stories/Head.stories.tsx b/code/frameworks/nextjs-vite/template/stories/Head.stories.tsx index 23ae3526055a..031e0860e50a 100644 --- a/code/frameworks/nextjs-vite/template/stories/Head.stories.tsx +++ b/code/frameworks/nextjs-vite/template/stories/Head.stories.tsx @@ -31,7 +31,7 @@ export const Default: Story = { play: async () => { await waitFor(() => expect(document.title).toEqual('Next.js Head Title')); await expect(document.querySelectorAll('meta[property="og:title"]')).toHaveLength(1); - await expect(document.querySelector('meta[property="og:title"]').content).toEqual( + await expect((document.querySelector('meta[property="og:title"]') as any).content).toEqual( 'My new title' ); }, diff --git a/code/frameworks/nextjs-vite/template/typings.d.ts b/code/frameworks/nextjs-vite/template/typings.d.ts new file mode 100644 index 000000000000..78a4a1ddc610 --- /dev/null +++ b/code/frameworks/nextjs-vite/template/typings.d.ts @@ -0,0 +1,9 @@ +declare module '*.svg' { + const content: string; + export default content; +} + +declare module '*.avif' { + const content: string; + export default content; +} diff --git a/code/frameworks/nextjs-vite/tsconfig.json b/code/frameworks/nextjs-vite/tsconfig.json index a444d30c7af1..dfc156d3c128 100644 --- a/code/frameworks/nextjs-vite/tsconfig.json +++ b/code/frameworks/nextjs-vite/tsconfig.json @@ -1,8 +1,8 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "module": "Preserve", - "moduleResolution": "Bundler" + // "module": "Preserve", + // "moduleResolution": "Bundler" }, "include": ["src/**/*", "template/**/*"] } diff --git a/scripts/prepare/check.ts b/scripts/prepare/check.ts index 1e10c1024afe..ca971da46910 100755 --- a/scripts/prepare/check.ts +++ b/scripts/prepare/check.ts @@ -39,7 +39,10 @@ run({ cwd: process.cwd() }).catch((err: unknown) => { function getTSDiagnostics(program: ts.Program, cwd: string, host: ts.CompilerHost): any { return ts.formatDiagnosticsWithColorAndContext( - ts.getPreEmitDiagnostics(program).filter((d) => d.file.fileName.startsWith(cwd)), + ts.getPreEmitDiagnostics(program).filter((d) => { + // console.log(d); + return d.file.fileName.startsWith(cwd); + }), host ); } From 33999ee73752c536f62c578e87fd6eb5f8ce62b4 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Mon, 5 Aug 2024 06:56:58 +0200 Subject: [PATCH 028/135] Cleanup --- code/frameworks/nextjs-vite/src/types.ts | 4 ++-- code/frameworks/nextjs-vite/template/typings.d.ts | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/code/frameworks/nextjs-vite/src/types.ts b/code/frameworks/nextjs-vite/src/types.ts index d33f91d1ccc2..98af894da463 100644 --- a/code/frameworks/nextjs-vite/src/types.ts +++ b/code/frameworks/nextjs-vite/src/types.ts @@ -31,7 +31,7 @@ type StorybookConfigFramework = { options: BuilderOptions; }; }; -} +}; /** * The interface for Storybook configuration in `main.ts` files. @@ -41,4 +41,4 @@ export type StorybookConfig = Omit< keyof StorybookConfigVite | keyof StorybookConfigFramework > & StorybookConfigVite & - StorybookConfigFramework & {} + StorybookConfigFramework & {}; diff --git a/code/frameworks/nextjs-vite/template/typings.d.ts b/code/frameworks/nextjs-vite/template/typings.d.ts index 78a4a1ddc610..b8b55169fef8 100644 --- a/code/frameworks/nextjs-vite/template/typings.d.ts +++ b/code/frameworks/nextjs-vite/template/typings.d.ts @@ -7,3 +7,8 @@ declare module '*.avif' { const content: string; export default content; } + +declare module '*.png' { + const content: string; + export default content; +} From 63740557b4c775f8b622bd5d2a47c62445827370 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Fri, 2 Aug 2024 15:47:26 +0200 Subject: [PATCH 029/135] Upgrade Vitest to v2 --- .vscode/settings.json | 19 +- code/addons/a11y/src/manager.test.tsx | 1 - code/package.json | 12 +- code/yarn.lock | 533 ++++++++++++++------------ scripts/package.json | 2 +- scripts/yarn.lock | 364 ++++++++---------- 6 files changed, 460 insertions(+), 471 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 64101684328f..7f078764150f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -24,14 +24,7 @@ "eslint.options": { "cache": true, "cacheLocation": ".cache/eslint", - "extensions": [ - ".js", - ".jsx", - ".mjs", - ".json", - ".ts", - ".tsx" - ] + "extensions": [".js", ".jsx", ".mjs", ".json", ".ts", ".tsx"] }, "eslint.useESLintClass": true, "eslint.validate": [ @@ -42,10 +35,7 @@ "typescript", "typescriptreact" ], - "eslint.workingDirectories": [ - "./code", - "./scripts" - ], + "eslint.workingDirectories": ["./code", "./scripts"], "files.associations": { "*.js": "javascriptreact" }, @@ -59,5 +49,6 @@ "typescript.preferences.preferTypeOnlyAutoImports": true, "typescript.preferences.quoteStyle": "single", "typescript.preferGoToSourceDefinition": true, - "typescript.tsdk": "./code/node_modules/typescript/lib" -} \ No newline at end of file + "typescript.tsdk": "./code/node_modules/typescript/lib", + "vitest.workspaceConfig": "./code/vitest.workspace.ts" +} diff --git a/code/addons/a11y/src/manager.test.tsx b/code/addons/a11y/src/manager.test.tsx index ccd232e44543..546551ff9467 100644 --- a/code/addons/a11y/src/manager.test.tsx +++ b/code/addons/a11y/src/manager.test.tsx @@ -56,7 +56,6 @@ describe('A11yManager', () => { > Accessibility -

`); diff --git a/code/package.json b/code/package.json index fc4a1c93c6ab..5e56b5719351 100644 --- a/code/package.json +++ b/code/package.json @@ -76,9 +76,7 @@ ], "resolutions": { "@playwright/test": "1.36.0", - "@testing-library/jest-dom/aria-query": "5.1.3", "@types/node": "^18.0.0", - "@vitest/expect": "patch:@vitest/expect@npm%3A1.6.0#~/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch", "esbuild": "^0.23.0", "playwright": "1.36.0", "playwright-core": "1.36.0", @@ -158,10 +156,10 @@ "@storybook/web-components": "workspace:*", "@storybook/web-components-vite": "workspace:*", "@storybook/web-components-webpack5": "workspace:*", - "@testing-library/dom": "^7.29.4", - "@testing-library/jest-dom": "6.4.5", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.4.3", + "@testing-library/dom": "^10.4.0", + "@testing-library/jest-dom": "^6.4.8", + "@testing-library/react": "^16.0.0", + "@testing-library/user-event": "^14.5.2", "@types/express": "^4.17.21", "@types/fs-extra": "^11.0.1", "@types/lodash": "^4.14.167", @@ -207,7 +205,7 @@ "typescript": "^5.4.3", "util": "^0.12.4", "vite": "^4.0.0", - "vitest": "^1.6.0", + "vitest": "^2.0.5", "wait-on": "^7.0.1" }, "dependenciesMeta": { diff --git a/code/yarn.lock b/code/yarn.lock index 2810b36b4760..c497d8e50dd8 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -19,7 +19,14 @@ __metadata: languageName: node linkType: hard -"@ampproject/remapping@npm:2.3.0, @ampproject/remapping@npm:^2.2.0, @ampproject/remapping@npm:^2.2.1": +"@adobe/css-tools@npm:^4.4.0": + version: 4.4.0 + resolution: "@adobe/css-tools@npm:4.4.0" + checksum: 10c0/d65ddc719389bf469097df80fb16a8af48a973dea4b57565789d70ac8e7ab4987e6dc0095da3ed5dc16c1b6f8960214a7590312eeda8abd543d91fd0f59e6c94 + languageName: node + linkType: hard + +"@ampproject/remapping@npm:2.3.0, @ampproject/remapping@npm:^2.2.0, @ampproject/remapping@npm:^2.2.1, @ampproject/remapping@npm:^2.3.0": version: 2.3.0 resolution: "@ampproject/remapping@npm:2.3.0" dependencies: @@ -2183,16 +2190,6 @@ __metadata: languageName: node linkType: hard -"@babel/runtime-corejs3@npm:^7.10.2": - version: 7.23.1 - resolution: "@babel/runtime-corejs3@npm:7.23.1" - dependencies: - core-js-pure: "npm:^3.30.2" - regenerator-runtime: "npm:^0.14.0" - checksum: 10c0/6e2c2b11779ff56c88b1f3a8742498640f7271ad4fcf9cfd24052bbb236a5e7c4c7c8d81cda751da3b4effa678736303deb78441c5752e63bfb90d6453fd870f - languageName: node - linkType: hard - "@babel/runtime@npm:7.12.18": version: 7.12.18 resolution: "@babel/runtime@npm:7.12.18" @@ -2220,7 +2217,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.22.15, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.24.4, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": +"@babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.22.15, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.24.4, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": version: 7.24.7 resolution: "@babel/runtime@npm:7.24.7" dependencies: @@ -3575,19 +3572,6 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:^26.6.2": - version: 26.6.2 - resolution: "@jest/types@npm:26.6.2" - dependencies: - "@types/istanbul-lib-coverage": "npm:^2.0.0" - "@types/istanbul-reports": "npm:^3.0.0" - "@types/node": "npm:*" - "@types/yargs": "npm:^15.0.0" - chalk: "npm:^4.0.0" - checksum: 10c0/5b9b957f38a002895eb04bbb8c3dda6fccce8e2551f3f44b02f1f43063a78e8bedce73cd4330b53ede00ae005de5cd805982fbb2ec6ab9feacf96344240d5db2 - languageName: node - linkType: hard - "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.1": version: 0.3.1 resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.1" @@ -3648,6 +3632,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:0.3.9": version: 0.3.9 resolution: "@jridgewell/trace-mapping@npm:0.3.9" @@ -6549,10 +6540,10 @@ __metadata: "@storybook/web-components": "workspace:*" "@storybook/web-components-vite": "workspace:*" "@storybook/web-components-webpack5": "workspace:*" - "@testing-library/dom": "npm:^7.29.4" - "@testing-library/jest-dom": "npm:6.4.5" - "@testing-library/react": "npm:^14.0.0" - "@testing-library/user-event": "npm:^14.4.3" + "@testing-library/dom": "npm:^10.4.0" + "@testing-library/jest-dom": "npm:^6.4.8" + "@testing-library/react": "npm:^16.0.0" + "@testing-library/user-event": "npm:^14.5.2" "@types/express": "npm:^4.17.21" "@types/fs-extra": "npm:^11.0.1" "@types/lodash": "npm:^4.14.167" @@ -6598,7 +6589,7 @@ __metadata: typescript: "npm:^5.4.3" util: "npm:^0.12.4" vite: "npm:^4.0.0" - vitest: "npm:^1.6.0" + vitest: "npm:^2.0.5" wait-on: "npm:^7.0.1" dependenciesMeta: ejs: @@ -7017,19 +7008,19 @@ __metadata: languageName: node linkType: hard -"@testing-library/dom@npm:^7.29.4": - version: 7.31.2 - resolution: "@testing-library/dom@npm:7.31.2" +"@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:^4.2.0" - aria-query: "npm:^4.2.2" + "@types/aria-query": "npm:^5.0.1" + aria-query: "npm:5.3.0" chalk: "npm:^4.1.0" - dom-accessibility-api: "npm:^0.5.6" - lz-string: "npm:^1.4.4" - pretty-format: "npm:^26.6.2" - checksum: 10c0/51498f6552b669a547202f4f508a1e91b5a0c25a64be987e49601ec00f3d0cc514c591400f0ad49d91b7d522e40e29b29a209aecd43f8611e2240b1ba3d4f93d + dom-accessibility-api: "npm:^0.5.9" + lz-string: "npm:^1.5.0" + pretty-format: "npm:^27.0.2" + checksum: 10c0/0352487720ecd433400671e773df0b84b8268fb3fe8e527cdfd7c11b1365b398b4e0eddba6e7e0c85e8d615f48257753283fccec41f6b986fd6c85f15eb5f84f languageName: node linkType: hard @@ -7082,6 +7073,22 @@ __metadata: languageName: node linkType: hard +"@testing-library/jest-dom@npm:^6.4.8": + version: 6.4.8 + resolution: "@testing-library/jest-dom@npm:6.4.8" + dependencies: + "@adobe/css-tools": "npm:^4.4.0" + "@babel/runtime": "npm:^7.9.2" + aria-query: "npm:^5.0.0" + chalk: "npm:^3.0.0" + css.escape: "npm:^1.5.1" + dom-accessibility-api: "npm:^0.6.3" + lodash: "npm:^4.17.21" + redent: "npm:^3.0.0" + checksum: 10c0/8eececcac1ec7728c038b9d9eabfc8b8dcf4dc1e997c959450bff16d946e3344275862b84bfe0e1d1beb3817368e782464816aca47ab5c94f0ebf66db71df55d + languageName: node + linkType: hard + "@testing-library/react@npm:^14.0.0": version: 14.1.2 resolution: "@testing-library/react@npm:14.1.2" @@ -7096,6 +7103,26 @@ __metadata: languageName: node linkType: hard +"@testing-library/react@npm:^16.0.0": + version: 16.0.0 + resolution: "@testing-library/react@npm:16.0.0" + dependencies: + "@babel/runtime": "npm:^7.12.5" + peerDependencies: + "@testing-library/dom": ^10.0.0 + "@types/react": ^18.0.0 + "@types/react-dom": ^18.0.0 + react: ^18.0.0 + react-dom: ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/297f97bf4722dad05f11d9cafd47d387dbdb096fea4b79b876c7466460f0f2e345b55b81b3e37fc81ed8185c528cb53dd8455ca1b6b019b229edf6c796f11c9f + languageName: node + linkType: hard + "@testing-library/svelte@npm:4.1.0": version: 4.1.0 resolution: "@testing-library/svelte@npm:4.1.0" @@ -7118,7 +7145,7 @@ __metadata: languageName: node linkType: hard -"@testing-library/user-event@npm:14.5.2, @testing-library/user-event@npm:^14.4.0, @testing-library/user-event@npm:^14.4.3": +"@testing-library/user-event@npm:14.5.2, @testing-library/user-event@npm:^14.4.0, @testing-library/user-event@npm:^14.5.2": version: 14.5.2 resolution: "@testing-library/user-event@npm:14.5.2" peerDependencies: @@ -7202,13 +7229,6 @@ __metadata: languageName: node linkType: hard -"@types/aria-query@npm:^4.2.0": - version: 4.2.2 - resolution: "@types/aria-query@npm:4.2.2" - checksum: 10c0/6dc0d94890c2c7c2e347148ea32215b73bf480e0f0888a9bbfb7b531285a3daf0b95e600db5be1c03d6e5f825d63cf8c2aabc5db93d8d1fd47ce3211f73e8d66 - languageName: node - linkType: hard - "@types/aria-query@npm:^5.0.1": version: 5.0.2 resolution: "@types/aria-query@npm:5.0.2" @@ -7618,31 +7638,13 @@ __metadata: languageName: node linkType: hard -"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": +"@types/istanbul-lib-coverage@npm:^2.0.1": version: 2.0.4 resolution: "@types/istanbul-lib-coverage@npm:2.0.4" checksum: 10c0/af5f6b64e788331ed3f7b2e2613cb6ca659c58b8500be94bbda8c995ad3da9216c006f1cfe6f66b321c39392b1bda18b16e63cef090a77d24a00b4bd5ba3b018 languageName: node linkType: hard -"@types/istanbul-lib-report@npm:*": - version: 3.0.1 - resolution: "@types/istanbul-lib-report@npm:3.0.1" - dependencies: - "@types/istanbul-lib-coverage": "npm:*" - checksum: 10c0/a2a002ee7ecd9079a2c06235d28d1bc77089c3d834eec7e6dac38986203634936f2a017812624acfbedabec4bddd933942f14ac93eba2dc57f581ad4f35bbf1d - languageName: node - linkType: hard - -"@types/istanbul-reports@npm:^3.0.0": - version: 3.0.2 - resolution: "@types/istanbul-reports@npm:3.0.2" - dependencies: - "@types/istanbul-lib-report": "npm:*" - checksum: 10c0/df6c9e6865006be06bae29f63d5240b96bc7041b18a8c6d66be5b5d92ef5c95675c7a605a603029065f4f8aece7dba7360349e9d0543f512417e64a707a3c4fa - languageName: node - linkType: hard - "@types/js-yaml@npm:^4.0.5": version: 4.0.9 resolution: "@types/js-yaml@npm:4.0.9" @@ -8145,22 +8147,6 @@ __metadata: languageName: node linkType: hard -"@types/yargs-parser@npm:*": - version: 21.0.1 - resolution: "@types/yargs-parser@npm:21.0.1" - checksum: 10c0/f1d723a4c4383a9c53b975820b7490186ca127237ca58eb2ee8f5eacdcdb195a81aeabd1d75560abdf22fc29f70e8bb103d7ab34c5ec49bc19196195a7bf3189 - languageName: node - linkType: hard - -"@types/yargs@npm:^15.0.0": - version: 15.0.16 - resolution: "@types/yargs@npm:15.0.16" - dependencies: - "@types/yargs-parser": "npm:*" - checksum: 10c0/07f0960062e66226ae602fccd62e351143291d778e1f4dd645c51111e62fbedafe2a976c223dcfa7ae052e989407b62e97a7472fc1d73536110cd05502c204a5 - languageName: node - linkType: hard - "@typescript-eslint/eslint-plugin@npm:^6.18.1": version: 6.21.0 resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" @@ -8479,36 +8465,45 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@patch:@vitest/expect@npm%3A1.6.0#~/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch": - version: 1.6.0 - resolution: "@vitest/expect@patch:@vitest/expect@npm%3A1.6.0#~/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch::version=1.6.0&hash=7cb178" +"@vitest/expect@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/expect@npm:2.0.5" dependencies: - "@vitest/spy": "npm:1.6.0" - "@vitest/utils": "npm:1.6.0" - chai: "npm:^4.3.10" - checksum: 10c0/073cfd09bfe6934408d0041be5a7251c2f80563a655f9387b8cd16a802752b47f1084de921ad6b5c45a48b5447773c52358c1cf68bb7e3b665b44c8cba19d8d3 + "@vitest/spy": "npm:2.0.5" + "@vitest/utils": "npm:2.0.5" + chai: "npm:^5.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/08cb1b0f106d16a5b60db733e3d436fa5eefc68571488eb570dfe4f599f214ab52e4342273b03dbe12331cc6c0cdc325ac6c94f651ad254cd62f3aa0e3d185aa languageName: node linkType: hard -"@vitest/runner@npm:1.6.0": - version: 1.6.0 - resolution: "@vitest/runner@npm:1.6.0" +"@vitest/pretty-format@npm:2.0.5, @vitest/pretty-format@npm:^2.0.5": + version: 2.0.5 + resolution: "@vitest/pretty-format@npm:2.0.5" dependencies: - "@vitest/utils": "npm:1.6.0" - p-limit: "npm:^5.0.0" - pathe: "npm:^1.1.1" - checksum: 10c0/27d67fa51f40effe0e41ee5f26563c12c0ef9a96161f806036f02ea5eb9980c5cdf305a70673942e7a1e3d472d4d7feb40093ae93024ef1ccc40637fc65b1d2f + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/236c0798c5170a0b5ad5d4bd06118533738e820b4dd30079d8fbcb15baee949d41c60f42a9f769906c4a5ce366d7ef11279546070646c0efc03128c220c31f37 languageName: node linkType: hard -"@vitest/snapshot@npm:1.6.0": - version: 1.6.0 - resolution: "@vitest/snapshot@npm:1.6.0" +"@vitest/runner@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/runner@npm:2.0.5" dependencies: - magic-string: "npm:^0.30.5" - pathe: "npm:^1.1.1" - pretty-format: "npm:^29.7.0" - checksum: 10c0/be027fd268d524589ff50c5fad7b4faa1ac5742b59ac6c1dc6f5a3930aad553560e6d8775e90ac4dfae4be746fc732a6f134ba95606a1519707ce70db3a772a5 + "@vitest/utils": "npm:2.0.5" + pathe: "npm:^1.1.2" + checksum: 10c0/d0ed3302a7e015bf44b7c0df9d8f7da163659e082d86f9406944b5a31a61ab9ddc1de530e06176d1f4ef0bde994b44bff4c7dab62aacdc235c8fc04b98e4a72a + languageName: node + linkType: hard + +"@vitest/snapshot@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/snapshot@npm:2.0.5" + dependencies: + "@vitest/pretty-format": "npm:2.0.5" + magic-string: "npm:^0.30.10" + pathe: "npm:^1.1.2" + checksum: 10c0/7bf38474248f5ae0aac6afad511785d2b7a023ac5158803c2868fd172b5b9c1a569fb1dd64a09a49e43fd342cab71ea485ada89b7f08d37b1622a5a0ac00271d languageName: node linkType: hard @@ -8521,6 +8516,15 @@ __metadata: languageName: node linkType: hard +"@vitest/spy@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/spy@npm:2.0.5" + dependencies: + tinyspy: "npm:^3.0.0" + checksum: 10c0/70634c21921eb271b54d2986c21d7ab6896a31c0f4f1d266940c9bafb8ac36237846d6736638cbf18b958bd98e5261b158a6944352742accfde50b7818ff655e + languageName: node + linkType: hard + "@vitest/utils@npm:1.6.0, @vitest/utils@npm:^1.3.1": version: 1.6.0 resolution: "@vitest/utils@npm:1.6.0" @@ -8533,6 +8537,18 @@ __metadata: languageName: node linkType: hard +"@vitest/utils@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/utils@npm:2.0.5" + dependencies: + "@vitest/pretty-format": "npm:2.0.5" + estree-walker: "npm:^3.0.3" + loupe: "npm:^3.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/0d1de748298f07a50281e1ba058b05dcd58da3280c14e6f016265e950bd79adab6b97822de8f0ea82d3070f585654801a9b1bcf26db4372e51cf7746bf86d73b + languageName: node + linkType: hard + "@volar/language-core@npm:1.10.1, @volar/language-core@npm:~1.10.0": version: 1.10.1 resolution: "@volar/language-core@npm:1.10.1" @@ -9241,7 +9257,7 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.1.1, acorn-walk@npm:^8.3.2": +"acorn-walk@npm:^8.1.1": version: 8.3.2 resolution: "acorn-walk@npm:8.3.2" checksum: 10c0/7e2a8dad5480df7f872569b9dccff2f3da7e65f5353686b1d6032ab9f4ddf6e3a2cb83a9b52cf50b1497fd522154dda92f0abf7153290cc79cd14721ff121e52 @@ -9438,7 +9454,7 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^5.0.0, ansi-regex@npm:^5.0.1": +"ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1" checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 @@ -9577,7 +9593,7 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:5.3.0, aria-query@npm:^5.3.0": +"aria-query@npm:5.3.0, aria-query@npm:^5.0.0, aria-query@npm:^5.3.0": version: 5.3.0 resolution: "aria-query@npm:5.3.0" dependencies: @@ -9586,16 +9602,6 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^4.2.2": - version: 4.2.2 - resolution: "aria-query@npm:4.2.2" - dependencies: - "@babel/runtime": "npm:^7.10.2" - "@babel/runtime-corejs3": "npm:^7.10.2" - checksum: 10c0/7e224fbbb4de8210c5d8cbaf0e1a22caa78f2068bf231f4c75302bd77eeba1c3e3b97912080535140be60174720d2ac817e5d6fec18592951b4b6488d4da7cdc - languageName: node - linkType: hard - "arr-diff@npm:^4.0.0": version: 4.0.0 resolution: "arr-diff@npm:4.0.0" @@ -9807,6 +9813,13 @@ __metadata: languageName: node linkType: hard +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8 + languageName: node + linkType: hard + "assign-symbols@npm:^1.0.0": version: 1.0.0 resolution: "assign-symbols@npm:1.0.0" @@ -11095,8 +11108,8 @@ __metadata: linkType: hard "chai@npm:^4.3.10, chai@npm:^4.4.1": - version: 4.4.1 - resolution: "chai@npm:4.4.1" + version: 4.5.0 + resolution: "chai@npm:4.5.0" dependencies: assertion-error: "npm:^1.1.0" check-error: "npm:^1.0.3" @@ -11104,8 +11117,21 @@ __metadata: get-func-name: "npm:^2.0.2" loupe: "npm:^2.3.6" pathval: "npm:^1.1.1" - type-detect: "npm:^4.0.8" - checksum: 10c0/91590a8fe18bd6235dece04ccb2d5b4ecec49984b50924499bdcd7a95c02cb1fd2a689407c19bb854497bde534ef57525cfad6c7fdd2507100fd802fbc2aefbd + type-detect: "npm:^4.1.0" + checksum: 10c0/b8cb596bd1aece1aec659e41a6e479290c7d9bee5b3ad63d2898ad230064e5b47889a3bc367b20100a0853b62e026e2dc514acf25a3c9385f936aa3614d4ab4d + languageName: node + linkType: hard + +"chai@npm:^5.1.1": + version: 5.1.1 + resolution: "chai@npm:5.1.1" + dependencies: + assertion-error: "npm:^2.0.1" + check-error: "npm:^2.1.1" + deep-eql: "npm:^5.0.1" + loupe: "npm:^3.1.0" + pathval: "npm:^2.0.0" + checksum: 10c0/e7f00e5881e3d5224f08fe63966ed6566bd9fdde175863c7c16dd5240416de9b34c4a0dd925f4fd64ad56256ca6507d32cf6131c49e1db65c62578eb31d4566c languageName: node linkType: hard @@ -11221,6 +11247,13 @@ __metadata: languageName: node linkType: hard +"check-error@npm:^2.1.1": + version: 2.1.1 + resolution: "check-error@npm:2.1.1" + checksum: 10c0/979f13eccab306cf1785fa10941a590b4e7ea9916ea2a4f8c87f0316fc3eab07eabefb6e587424ef0f88cbcd3805791f172ea739863ca3d7ce2afc54641c7f0e + languageName: node + linkType: hard + "checkup@npm:^1.3.0": version: 1.3.0 resolution: "checkup@npm:1.3.0" @@ -11938,7 +11971,7 @@ __metadata: languageName: node linkType: hard -"core-js-pure@npm:^3.23.3, core-js-pure@npm:^3.30.2": +"core-js-pure@npm:^3.23.3": version: 3.33.0 resolution: "core-js-pure@npm:3.33.0" checksum: 10c0/dbb683bf6c5d3671129e5029e0f8047a388818bb9720352c839f46ac5627b5fed763135b9a1df89452f2afee78e49639def6063e82fc6995c4e98c31f2892db5 @@ -12405,6 +12438,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:^4.3.5": + version: 4.3.6 + resolution: "debug@npm:4.3.6" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/3293416bff072389c101697d4611c402a6bacd1900ac20c0492f61a9cdd6b3b29750fc7f5e299f8058469ef60ff8fb79b86395a30374fbd2490113c1c7112285 + languageName: node + linkType: hard + "decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" @@ -12443,11 +12488,18 @@ __metadata: linkType: hard "deep-eql@npm:^4.1.3": - version: 4.1.3 - resolution: "deep-eql@npm:4.1.3" + version: 4.1.4 + resolution: "deep-eql@npm:4.1.4" dependencies: type-detect: "npm:^4.0.0" - checksum: 10c0/ff34e8605d8253e1bf9fe48056e02c6f347b81d9b5df1c6650a1b0f6f847b4a86453b16dc226b34f853ef14b626e85d04e081b022e20b00cd7d54f079ce9bbdd + checksum: 10c0/264e0613493b43552fc908f4ff87b8b445c0e6e075656649600e1b8a17a57ee03e960156fce7177646e4d2ddaf8e5ee616d76bd79929ff593e5c79e4e5e6c517 + languageName: node + linkType: hard + +"deep-eql@npm:^5.0.1": + version: 5.0.2 + resolution: "deep-eql@npm:5.0.2" + checksum: 10c0/7102cf3b7bb719c6b9c0db2e19bf0aa9318d141581befe8c7ce8ccd39af9eaa4346e5e05adef7f9bd7015da0f13a3a25dcfe306ef79dc8668aedbecb658dd247 languageName: node linkType: hard @@ -12804,7 +12856,7 @@ __metadata: languageName: node linkType: hard -"dom-accessibility-api@npm:^0.5.6, dom-accessibility-api@npm:^0.5.9": +"dom-accessibility-api@npm:^0.5.9": version: 0.5.16 resolution: "dom-accessibility-api@npm:0.5.16" checksum: 10c0/b2c2eda4fae568977cdac27a9f0c001edf4f95a6a6191dfa611e3721db2478d1badc01db5bb4fa8a848aeee13e442a6c2a4386d65ec65a1436f24715a2f8d053 @@ -17806,13 +17858,6 @@ __metadata: languageName: node linkType: hard -"js-tokens@npm:^9.0.0": - version: 9.0.0 - resolution: "js-tokens@npm:9.0.0" - checksum: 10c0/4ad1c12f47b8c8b2a3a99e29ef338c1385c7b7442198a425f3463f3537384dab6032012791bfc2f056ea5ecdb06b1ed4f70e11a3ab3f388d3dcebfe16a52b27d - languageName: node - linkType: hard - "js-yaml@npm:4.1.0, js-yaml@npm:^4.1.0": version: 4.1.0 resolution: "js-yaml@npm:4.1.0" @@ -18023,7 +18068,7 @@ __metadata: languageName: node linkType: hard -"jsonc-parser@npm:3.2.1, jsonc-parser@npm:^3.0.0, jsonc-parser@npm:^3.2.0": +"jsonc-parser@npm:3.2.1, jsonc-parser@npm:^3.0.0": version: 3.2.1 resolution: "jsonc-parser@npm:3.2.1" checksum: 10c0/ada66dec143d7f9cb0e2d0d29c69e9ce40d20f3a4cb96b0c6efb745025ac7f9ba647d7ac0990d0adfc37a2d2ae084a12009a9c833dbdbeadf648879a99b9df89 @@ -18508,16 +18553,6 @@ __metadata: languageName: node linkType: hard -"local-pkg@npm:^0.5.0": - version: 0.5.0 - resolution: "local-pkg@npm:0.5.0" - dependencies: - mlly: "npm:^1.4.2" - pkg-types: "npm:^1.0.3" - checksum: 10c0/f61cbd00d7689f275558b1a45c7ff2a3ddf8472654123ed880215677b9adfa729f1081e50c27ffb415cdb9fa706fb755fec5e23cdd965be375c8059e87ff1cc9 - languageName: node - linkType: hard - "locate-character@npm:^3.0.0": version: 3.0.0 resolution: "locate-character@npm:3.0.0" @@ -18755,6 +18790,15 @@ __metadata: languageName: node linkType: hard +"loupe@npm:^3.1.0, loupe@npm:^3.1.1": + version: 3.1.1 + resolution: "loupe@npm:3.1.1" + dependencies: + get-func-name: "npm:^2.0.1" + checksum: 10c0/99f88badc47e894016df0c403de846fedfea61154aadabbf776c8428dd59e8d8378007135d385d737de32ae47980af07d22ba7bec5ef7beebd721de9baa0a0af + languageName: node + linkType: hard + "lower-case@npm:^2.0.2": version: 2.0.2 resolution: "lower-case@npm:2.0.2" @@ -18813,7 +18857,7 @@ __metadata: languageName: node linkType: hard -"lz-string@npm:^1.4.4, lz-string@npm:^1.5.0": +"lz-string@npm:^1.5.0": version: 1.5.0 resolution: "lz-string@npm:1.5.0" bin: @@ -18856,6 +18900,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.10": + version: 0.30.11 + resolution: "magic-string@npm:0.30.11" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + checksum: 10c0/b9eb370773d0bd90ca11a848753409d8e5309b1ad56d2a1aa49d6649da710a6d2fe7237ad1a643c5a5d3800de2b9946ed9690acdfc00e6cc1aeafff3ab1752c4 + languageName: node + linkType: hard + "magicast@npm:^0.3.3": version: 0.3.3 resolution: "magicast@npm:0.3.3" @@ -20460,18 +20513,6 @@ __metadata: languageName: node linkType: hard -"mlly@npm:^1.2.0, mlly@npm:^1.4.2": - version: 1.4.2 - resolution: "mlly@npm:1.4.2" - dependencies: - acorn: "npm:^8.10.0" - pathe: "npm:^1.1.1" - pkg-types: "npm:^1.0.3" - ufo: "npm:^1.3.0" - checksum: 10c0/905e3a704c7d3bcaad55f31d6efe9f680eab5be053ab7f8b299b8dbc027041f741fa6a93db9a3c461be2552632f3831b6c43c50af530f5fb2e9cd6273bc9d642 - languageName: node - linkType: hard - "mock-fs@npm:^5.2.0": version: 5.2.0 resolution: "mock-fs@npm:5.2.0" @@ -21518,15 +21559,6 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^5.0.0": - version: 5.0.0 - resolution: "p-limit@npm:5.0.0" - dependencies: - yocto-queue: "npm:^1.0.0" - checksum: 10c0/574e93b8895a26e8485eb1df7c4b58a1a6e8d8ae41b1750cc2cc440922b3d306044fc6e9a7f74578a883d46802d9db72b30f2e612690fcef838c173261b1ed83 - languageName: node - linkType: hard - "p-locate@npm:^2.0.0": version: 2.0.0 resolution: "p-locate@npm:2.0.0" @@ -21970,13 +22002,20 @@ __metadata: languageName: node linkType: hard -"pathe@npm:^1.1.0, pathe@npm:^1.1.1": +"pathe@npm:^1.1.1": version: 1.1.1 resolution: "pathe@npm:1.1.1" checksum: 10c0/3ae5a0529c3415d91c3ac9133f52cffea54a0dd46892fe059f4b80faf36fd207957d4594bdc87043b65d0761b1e5728f81f46bafff3b5302da4e2e48889b8c0e languageName: node linkType: hard +"pathe@npm:^1.1.2": + version: 1.1.2 + resolution: "pathe@npm:1.1.2" + checksum: 10c0/64ee0a4e587fb0f208d9777a6c56e4f9050039268faaaaecd50e959ef01bf847b7872785c36483fa5cdcdbdfdb31fef2ff222684d4fc21c330ab60395c681897 + languageName: node + linkType: hard + "pathval@npm:^1.1.1": version: 1.1.1 resolution: "pathval@npm:1.1.1" @@ -21984,6 +22023,13 @@ __metadata: languageName: node linkType: hard +"pathval@npm:^2.0.0": + version: 2.0.0 + resolution: "pathval@npm:2.0.0" + checksum: 10c0/602e4ee347fba8a599115af2ccd8179836a63c925c23e04bd056d0674a64b39e3a081b643cc7bc0b84390517df2d800a46fcc5598d42c155fe4977095c2f77c5 + languageName: node + linkType: hard + "pbkdf2@npm:^3.0.3": version: 3.1.2 resolution: "pbkdf2@npm:3.1.2" @@ -22125,17 +22171,6 @@ __metadata: languageName: node linkType: hard -"pkg-types@npm:^1.0.3": - version: 1.0.3 - resolution: "pkg-types@npm:1.0.3" - dependencies: - jsonc-parser: "npm:^3.2.0" - mlly: "npm:^1.2.0" - pathe: "npm:^1.1.0" - checksum: 10c0/7f692ff2005f51b8721381caf9bdbc7f5461506ba19c34f8631660a215c8de5e6dca268f23a319dd180b8f7c47a0dc6efea14b376c485ff99e98d810b8f786c4 - languageName: node - linkType: hard - "pkg-up@npm:^2.0.0": version: 2.0.0 resolution: "pkg-up@npm:2.0.0" @@ -22469,18 +22504,6 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^26.6.2": - version: 26.6.2 - resolution: "pretty-format@npm:26.6.2" - dependencies: - "@jest/types": "npm:^26.6.2" - ansi-regex: "npm:^5.0.0" - ansi-styles: "npm:^4.0.0" - react-is: "npm:^17.0.1" - checksum: 10c0/b5ddf0e949b874b699d313fe9407f0eb65e67d00823b2dd95335905a73457260af7612f3bff6b48611fcca9ffcff003359e4c9faba4200d6209da433a859aef3 - languageName: node - linkType: hard - "pretty-format@npm:^27.0.2": version: 27.5.1 resolution: "pretty-format@npm:27.5.1" @@ -25499,6 +25522,13 @@ __metadata: languageName: node linkType: hard +"std-env@npm:^3.7.0": + version: 3.7.0 + resolution: "std-env@npm:3.7.0" + checksum: 10c0/60edf2d130a4feb7002974af3d5a5f3343558d1ccf8d9b9934d225c638606884db4a20d2fe6440a09605bca282af6b042ae8070a10490c0800d69e82e478f41e + languageName: node + linkType: hard + "stop-iteration-iterator@npm:^1.0.0": version: 1.0.0 resolution: "stop-iteration-iterator@npm:1.0.0" @@ -25812,15 +25842,6 @@ __metadata: languageName: node linkType: hard -"strip-literal@npm:^2.0.0": - version: 2.1.0 - resolution: "strip-literal@npm:2.1.0" - dependencies: - js-tokens: "npm:^9.0.0" - checksum: 10c0/bc8b8c8346125ae3c20fcdaf12e10a498ff85baf6f69597b4ab2b5fbf2e58cfd2827f1a44f83606b852da99a5f6c8279770046ddea974c510c17c98934c9cc24 - languageName: node - linkType: hard - "strong-log-transformer@npm:^2.1.0": version: 2.1.0 resolution: "strong-log-transformer@npm:2.1.0" @@ -26340,17 +26361,24 @@ __metadata: languageName: node linkType: hard -"tinybench@npm:^2.5.1": - version: 2.5.1 - resolution: "tinybench@npm:2.5.1" - checksum: 10c0/9c55ef25ce1689c3e2fdb89cacbf27dada4d04f846cac70023fe97fc35d2122816d8bbc5b20253e071d13688cf006355d59f0096d22958b818e1e2fe60e5165b +"tinybench@npm:^2.8.0": + version: 2.8.0 + resolution: "tinybench@npm:2.8.0" + checksum: 10c0/5a9a642351fa3e4955e0cbf38f5674be5f3ba6730fd872fd23a5c953ad6c914234d5aba6ea41ef88820180a81829ceece5bd8d3967c490c5171bca1141c2f24d languageName: node linkType: hard -"tinypool@npm:^0.8.3": - version: 0.8.4 - resolution: "tinypool@npm:0.8.4" - checksum: 10c0/779c790adcb0316a45359652f4b025958c1dff5a82460fe49f553c864309b12ad732c8288be52f852973bc76317f5e7b3598878aee0beb8a33322c0e72c4a66c +"tinypool@npm:^1.0.0": + version: 1.0.0 + resolution: "tinypool@npm:1.0.0" + checksum: 10c0/71b20b9c54366393831c286a0772380c20f8cad9546d724c484edb47aea3228f274c58e98cf51d28c40869b39f5273209ef3ea94a9d2a23f8b292f4731cd3e4e + languageName: node + linkType: hard + +"tinyrainbow@npm:^1.2.0": + version: 1.2.0 + resolution: "tinyrainbow@npm:1.2.0" + checksum: 10c0/7f78a4b997e5ba0f5ecb75e7ed786f30bab9063716e7dff24dd84013fb338802e43d176cb21ed12480561f5649a82184cf31efb296601a29d38145b1cdb4c192 languageName: node linkType: hard @@ -26361,6 +26389,13 @@ __metadata: languageName: node linkType: hard +"tinyspy@npm:^3.0.0": + version: 3.0.0 + resolution: "tinyspy@npm:3.0.0" + checksum: 10c0/eb0dec264aa5370efd3d29743825eb115ed7f1ef8a72a431e9a75d5c9e7d67e99d04b0d61d86b8cd70c79ec27863f241ad0317bc453f78762e0cbd76d2c332d0 + languageName: node + linkType: hard + "tmp@npm:0.0.28": version: 0.0.28 resolution: "tmp@npm:0.0.28" @@ -26727,10 +26762,10 @@ __metadata: languageName: node linkType: hard -"type-detect@npm:^4.0.0, type-detect@npm:^4.0.8": - version: 4.0.8 - resolution: "type-detect@npm:4.0.8" - checksum: 10c0/8fb9a51d3f365a7de84ab7f73b653534b61b622aa6800aecdb0f1095a4a646d3f5eb295322127b6573db7982afcd40ab492d038cf825a42093a58b1e1353e0bd +"type-detect@npm:^4.0.0, type-detect@npm:^4.1.0": + version: 4.1.0 + resolution: "type-detect@npm:4.1.0" + checksum: 10c0/df8157ca3f5d311edc22885abc134e18ff8ffbc93d6a9848af5b682730ca6a5a44499259750197250479c5331a8a75b5537529df5ec410622041650a7f293e2a languageName: node linkType: hard @@ -26886,13 +26921,6 @@ __metadata: languageName: node linkType: hard -"ufo@npm:^1.3.0": - version: 1.3.2 - resolution: "ufo@npm:1.3.2" - checksum: 10c0/180f3dfcdf319b54fe0272780841c93cb08a024fc2ee5f95e63285c2a3c42d8b671cd3641e9a53aafccf100cf8466aa8c040ddfa0efea1fc1968c9bfb250a661 - languageName: node - linkType: hard - "uglify-js@npm:^3.1.4": version: 3.17.4 resolution: "uglify-js@npm:3.17.4" @@ -27727,18 +27755,18 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:1.6.0": - version: 1.6.0 - resolution: "vite-node@npm:1.6.0" +"vite-node@npm:2.0.5": + version: 2.0.5 + resolution: "vite-node@npm:2.0.5" dependencies: cac: "npm:^6.7.14" - debug: "npm:^4.3.4" - pathe: "npm:^1.1.1" - picocolors: "npm:^1.0.0" + debug: "npm:^4.3.5" + pathe: "npm:^1.1.2" + tinyrainbow: "npm:^1.2.0" vite: "npm:^5.0.0" bin: vite-node: vite-node.mjs - checksum: 10c0/0807e6501ac7763e0efa2b4bd484ce99fb207e92c98624c9f8999d1f6727ac026e457994260fa7fdb7060d87546d197081e46a705d05b0136a38b6f03715cbc2 + checksum: 10c0/affcc58ae8d45bce3e8bc3b5767acd57c24441634e2cd967cf97f4e5ed2bcead1714b60150cdf7ee153ebad47659c5cd419883207e1a95b69790331e3243749f languageName: node linkType: hard @@ -27834,35 +27862,34 @@ __metadata: languageName: node linkType: hard -"vitest@npm:^1.6.0": - version: 1.6.0 - resolution: "vitest@npm:1.6.0" - dependencies: - "@vitest/expect": "npm:1.6.0" - "@vitest/runner": "npm:1.6.0" - "@vitest/snapshot": "npm:1.6.0" - "@vitest/spy": "npm:1.6.0" - "@vitest/utils": "npm:1.6.0" - acorn-walk: "npm:^8.3.2" - chai: "npm:^4.3.10" - debug: "npm:^4.3.4" +"vitest@npm:^2.0.5": + version: 2.0.5 + resolution: "vitest@npm:2.0.5" + dependencies: + "@ampproject/remapping": "npm:^2.3.0" + "@vitest/expect": "npm:2.0.5" + "@vitest/pretty-format": "npm:^2.0.5" + "@vitest/runner": "npm:2.0.5" + "@vitest/snapshot": "npm:2.0.5" + "@vitest/spy": "npm:2.0.5" + "@vitest/utils": "npm:2.0.5" + chai: "npm:^5.1.1" + debug: "npm:^4.3.5" execa: "npm:^8.0.1" - local-pkg: "npm:^0.5.0" - magic-string: "npm:^0.30.5" - pathe: "npm:^1.1.1" - picocolors: "npm:^1.0.0" - std-env: "npm:^3.5.0" - strip-literal: "npm:^2.0.0" - tinybench: "npm:^2.5.1" - tinypool: "npm:^0.8.3" + magic-string: "npm:^0.30.10" + pathe: "npm:^1.1.2" + std-env: "npm:^3.7.0" + tinybench: "npm:^2.8.0" + tinypool: "npm:^1.0.0" + tinyrainbow: "npm:^1.2.0" vite: "npm:^5.0.0" - vite-node: "npm:1.6.0" - why-is-node-running: "npm:^2.2.2" + vite-node: "npm:2.0.5" + why-is-node-running: "npm:^2.3.0" peerDependencies: "@edge-runtime/vm": "*" "@types/node": ^18.0.0 || >=20.0.0 - "@vitest/browser": 1.6.0 - "@vitest/ui": 1.6.0 + "@vitest/browser": 2.0.5 + "@vitest/ui": 2.0.5 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -27880,7 +27907,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 10c0/065da5b8ead51eb174d93dac0cd50042ca9539856dc25e340ea905d668c41961f7e00df3e388e6c76125b2c22091db2e8465f993d0f6944daf9598d549e562e7 + checksum: 10c0/b4e6cca00816bf967a8589111ded72faa12f92f94ccdd0dcd0698ffcfdfc52ec662753f66b387549c600ac699b993fd952efbd99dc57fcf4d1c69a2f1022b259 languageName: node linkType: hard @@ -28556,15 +28583,15 @@ __metadata: languageName: node linkType: hard -"why-is-node-running@npm:^2.2.2": - version: 2.2.2 - resolution: "why-is-node-running@npm:2.2.2" +"why-is-node-running@npm:^2.3.0": + version: 2.3.0 + resolution: "why-is-node-running@npm:2.3.0" dependencies: siginfo: "npm:^2.0.0" stackback: "npm:0.0.2" bin: why-is-node-running: cli.js - checksum: 10c0/805d57eb5d33f0fb4e36bae5dceda7fd8c6932c2aeb705e30003970488f1a2bc70029ee64be1a0e1531e2268b11e65606e88e5b71d667ea745e6dc48fc9014bd + checksum: 10c0/1cde0b01b827d2cf4cb11db962f3958b9175d5d9e7ac7361d1a7b0e2dc6069a263e69118bd974c4f6d0a890ef4eedfe34cf3d5167ec14203dbc9a18620537054 languageName: node linkType: hard diff --git a/scripts/package.json b/scripts/package.json index 1d1e1662a7b2..6f06a1dd3e57 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -177,7 +177,7 @@ "typescript": "^5.4.5", "util": "^0.12.5", "uuid": "^9.0.1", - "vitest": "^1.6.0", + "vitest": "^2.0.5", "wait-on": "^7.2.0", "window-size": "^1.1.1", "yaml": "^2.4.5", diff --git a/scripts/yarn.lock b/scripts/yarn.lock index b99cb1a3a3c0..9213436c7893 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -49,6 +49,16 @@ __metadata: languageName: node linkType: hard +"@ampproject/remapping@npm:^2.3.0": + version: 2.3.0 + resolution: "@ampproject/remapping@npm:2.3.0" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/81d63cca5443e0f0c72ae18b544cc28c7c0ec2cea46e7cb888bb0e0f411a1191d0d6b7af798d54e30777d8d1488b2ec0732aac2be342d3d7d3ffd271c6f489ed + languageName: node + linkType: hard + "@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.24.2": version: 7.24.7 resolution: "@babel/code-frame@npm:7.24.7" @@ -588,6 +598,17 @@ __metadata: languageName: node linkType: hard +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" + dependencies: + "@jridgewell/set-array": "npm:^1.2.1" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/1be4fd4a6b0f41337c4f5fdf4afc3bd19e39c3691924817108b82ffcb9c9e609c273f936932b9fba4b3a298ce2eb06d9bff4eb1cc3bd81c4f4ee1b4917e25feb + languageName: node + linkType: hard + "@jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.1 resolution: "@jridgewell/resolve-uri@npm:3.1.1" @@ -602,6 +623,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 10c0/2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4 + languageName: node + linkType: hard + "@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15": version: 1.4.15 resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" @@ -609,7 +637,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.9": +"@jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -1513,7 +1541,7 @@ __metadata: uuid: "npm:^9.0.1" verdaccio: "npm:^5.31.1" verdaccio-auth-memory: "npm:^10.2.2" - vitest: "npm:^1.6.0" + vitest: "npm:^2.0.5" wait-on: "npm:^7.2.0" window-size: "npm:^1.1.1" yaml: "npm:^2.4.5" @@ -2697,57 +2725,66 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:1.6.0": - version: 1.6.0 - resolution: "@vitest/expect@npm:1.6.0" +"@vitest/expect@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/expect@npm:2.0.5" dependencies: - "@vitest/spy": "npm:1.6.0" - "@vitest/utils": "npm:1.6.0" - chai: "npm:^4.3.10" - checksum: 10c0/a4351f912a70543e04960f5694f1f1ac95f71a856a46e87bba27d3eb72a08c5d11d35021cbdc6077452a152e7d93723fc804bba76c2cc53c8896b7789caadae3 + "@vitest/spy": "npm:2.0.5" + "@vitest/utils": "npm:2.0.5" + chai: "npm:^5.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/08cb1b0f106d16a5b60db733e3d436fa5eefc68571488eb570dfe4f599f214ab52e4342273b03dbe12331cc6c0cdc325ac6c94f651ad254cd62f3aa0e3d185aa languageName: node linkType: hard -"@vitest/runner@npm:1.6.0": - version: 1.6.0 - resolution: "@vitest/runner@npm:1.6.0" +"@vitest/pretty-format@npm:2.0.5, @vitest/pretty-format@npm:^2.0.5": + version: 2.0.5 + resolution: "@vitest/pretty-format@npm:2.0.5" dependencies: - "@vitest/utils": "npm:1.6.0" - p-limit: "npm:^5.0.0" - pathe: "npm:^1.1.1" - checksum: 10c0/27d67fa51f40effe0e41ee5f26563c12c0ef9a96161f806036f02ea5eb9980c5cdf305a70673942e7a1e3d472d4d7feb40093ae93024ef1ccc40637fc65b1d2f + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/236c0798c5170a0b5ad5d4bd06118533738e820b4dd30079d8fbcb15baee949d41c60f42a9f769906c4a5ce366d7ef11279546070646c0efc03128c220c31f37 languageName: node linkType: hard -"@vitest/snapshot@npm:1.6.0": - version: 1.6.0 - resolution: "@vitest/snapshot@npm:1.6.0" +"@vitest/runner@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/runner@npm:2.0.5" dependencies: - magic-string: "npm:^0.30.5" - pathe: "npm:^1.1.1" - pretty-format: "npm:^29.7.0" - checksum: 10c0/be027fd268d524589ff50c5fad7b4faa1ac5742b59ac6c1dc6f5a3930aad553560e6d8775e90ac4dfae4be746fc732a6f134ba95606a1519707ce70db3a772a5 + "@vitest/utils": "npm:2.0.5" + pathe: "npm:^1.1.2" + checksum: 10c0/d0ed3302a7e015bf44b7c0df9d8f7da163659e082d86f9406944b5a31a61ab9ddc1de530e06176d1f4ef0bde994b44bff4c7dab62aacdc235c8fc04b98e4a72a languageName: node linkType: hard -"@vitest/spy@npm:1.6.0": - version: 1.6.0 - resolution: "@vitest/spy@npm:1.6.0" +"@vitest/snapshot@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/snapshot@npm:2.0.5" dependencies: - tinyspy: "npm:^2.2.0" - checksum: 10c0/df66ea6632b44fb76ef6a65c1abbace13d883703aff37cd6d062add6dcd1b883f19ce733af8e0f7feb185b61600c6eb4042a518e4fb66323d0690ec357f9401c + "@vitest/pretty-format": "npm:2.0.5" + magic-string: "npm:^0.30.10" + pathe: "npm:^1.1.2" + checksum: 10c0/7bf38474248f5ae0aac6afad511785d2b7a023ac5158803c2868fd172b5b9c1a569fb1dd64a09a49e43fd342cab71ea485ada89b7f08d37b1622a5a0ac00271d languageName: node linkType: hard -"@vitest/utils@npm:1.6.0": - version: 1.6.0 - resolution: "@vitest/utils@npm:1.6.0" +"@vitest/spy@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/spy@npm:2.0.5" dependencies: - diff-sequences: "npm:^29.6.3" + tinyspy: "npm:^3.0.0" + checksum: 10c0/70634c21921eb271b54d2986c21d7ab6896a31c0f4f1d266940c9bafb8ac36237846d6736638cbf18b958bd98e5261b158a6944352742accfde50b7818ff655e + languageName: node + linkType: hard + +"@vitest/utils@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/utils@npm:2.0.5" + dependencies: + "@vitest/pretty-format": "npm:2.0.5" estree-walker: "npm:^3.0.3" - loupe: "npm:^2.3.7" - pretty-format: "npm:^29.7.0" - checksum: 10c0/8b0d19835866455eb0b02b31c5ca3d8ad45f41a24e4c7e1f064b480f6b2804dc895a70af332f14c11ed89581011b92b179718523f55f5b14787285a0321b1301 + loupe: "npm:^3.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/0d1de748298f07a50281e1ba058b05dcd58da3280c14e6f016265e950bd79adab6b97822de8f0ea82d3070f585654801a9b1bcf26db4372e51cf7746bf86d73b languageName: node linkType: hard @@ -2851,13 +2888,6 @@ __metadata: languageName: node linkType: hard -"acorn-walk@npm:^8.3.2": - version: 8.3.2 - resolution: "acorn-walk@npm:8.3.2" - checksum: 10c0/7e2a8dad5480df7f872569b9dccff2f3da7e65f5353686b1d6032ab9f4ddf6e3a2cb83a9b52cf50b1497fd522154dda92f0abf7153290cc79cd14721ff121e52 - languageName: node - linkType: hard - "acorn@npm:^7.0.0": version: 7.4.1 resolution: "acorn@npm:7.4.1" @@ -2867,7 +2897,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.10.0, acorn@npm:^8.9.0": +"acorn@npm:^8.9.0": version: 8.11.2 resolution: "acorn@npm:8.11.2" bin: @@ -3255,10 +3285,10 @@ __metadata: languageName: node linkType: hard -"assertion-error@npm:^1.1.0": - version: 1.1.0 - resolution: "assertion-error@npm:1.1.0" - checksum: 10c0/25456b2aa333250f01143968e02e4884a34588a8538fbbf65c91a637f1dbfb8069249133cd2f4e530f10f624d206a664e7df30207830b659e9f5298b00a4099b +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: 10c0/bbbcb117ac6480138f8c93cf7f535614282dea9dc828f540cdece85e3c665e8f78958b96afac52f29ff883c72638e6a87d469ecc9fe5bc902df03ed24a55dba8 languageName: node linkType: hard @@ -3742,18 +3772,16 @@ __metadata: languageName: node linkType: hard -"chai@npm:^4.3.10": - version: 4.3.10 - resolution: "chai@npm:4.3.10" +"chai@npm:^5.1.1": + version: 5.1.1 + resolution: "chai@npm:5.1.1" dependencies: - assertion-error: "npm:^1.1.0" - check-error: "npm:^1.0.3" - deep-eql: "npm:^4.1.3" - get-func-name: "npm:^2.0.2" - loupe: "npm:^2.3.6" - pathval: "npm:^1.1.1" - type-detect: "npm:^4.0.8" - checksum: 10c0/c887d24f67be6fb554c7ebbde3bb0568697a8833d475e4768296916891ba143f25fc079f6eb34146f3dd5a3279d34c1f387c32c9a6ab288e579f948d9ccf53fe + assertion-error: "npm:^2.0.1" + check-error: "npm:^2.1.1" + deep-eql: "npm:^5.0.1" + loupe: "npm:^3.1.0" + pathval: "npm:^2.0.0" + checksum: 10c0/e7f00e5881e3d5224f08fe63966ed6566bd9fdde175863c7c16dd5240416de9b34c4a0dd925f4fd64ad56256ca6507d32cf6131c49e1db65c62578eb31d4566c languageName: node linkType: hard @@ -3802,12 +3830,10 @@ __metadata: languageName: node linkType: hard -"check-error@npm:^1.0.3": - version: 1.0.3 - resolution: "check-error@npm:1.0.3" - dependencies: - get-func-name: "npm:^2.0.2" - checksum: 10c0/94aa37a7315c0e8a83d0112b5bfb5a8624f7f0f81057c73e4707729cdd8077166c6aefb3d8e2b92c63ee130d4a2ff94bad46d547e12f3238cc1d78342a973841 +"check-error@npm:^2.1.1": + version: 2.1.1 + resolution: "check-error@npm:2.1.1" + checksum: 10c0/979f13eccab306cf1785fa10941a590b4e7ea9916ea2a4f8c87f0316fc3eab07eabefb6e587424ef0f88cbcd3805791f172ea739863ca3d7ce2afc54641c7f0e languageName: node linkType: hard @@ -4512,12 +4538,10 @@ __metadata: languageName: node linkType: hard -"deep-eql@npm:^4.1.3": - version: 4.1.3 - resolution: "deep-eql@npm:4.1.3" - dependencies: - type-detect: "npm:^4.0.0" - checksum: 10c0/ff34e8605d8253e1bf9fe48056e02c6f347b81d9b5df1c6650a1b0f6f847b4a86453b16dc226b34f853ef14b626e85d04e081b022e20b00cd7d54f079ce9bbdd +"deep-eql@npm:^5.0.1": + version: 5.0.2 + resolution: "deep-eql@npm:5.0.2" + checksum: 10c0/7102cf3b7bb719c6b9c0db2e19bf0aa9318d141581befe8c7ce8ccd39af9eaa4346e5e05adef7f9bd7015da0f13a3a25dcfe306ef79dc8668aedbecb658dd247 languageName: node linkType: hard @@ -6441,7 +6465,7 @@ __metadata: languageName: node linkType: hard -"get-func-name@npm:^2.0.1, get-func-name@npm:^2.0.2": +"get-func-name@npm:^2.0.1": version: 2.0.2 resolution: "get-func-name@npm:2.0.2" checksum: 10c0/89830fd07623fa73429a711b9daecdb304386d237c71268007f788f113505ef1d4cc2d0b9680e072c5082490aec9df5d7758bf5ac6f1c37062855e8e3dc0b9df @@ -8112,7 +8136,7 @@ __metadata: languageName: node linkType: hard -"jsonc-parser@npm:3.2.0, jsonc-parser@npm:^3.0.0, jsonc-parser@npm:^3.2.0": +"jsonc-parser@npm:3.2.0, jsonc-parser@npm:^3.0.0": version: 3.2.0 resolution: "jsonc-parser@npm:3.2.0" checksum: 10c0/5a12d4d04dad381852476872a29dcee03a57439574e4181d91dca71904fcdcc5e8e4706c0a68a2c61ad9810e1e1c5806b5100d52d3e727b78f5cdc595401045b @@ -8383,16 +8407,6 @@ __metadata: languageName: node linkType: hard -"local-pkg@npm:^0.5.0": - version: 0.5.0 - resolution: "local-pkg@npm:0.5.0" - dependencies: - mlly: "npm:^1.4.2" - pkg-types: "npm:^1.0.3" - checksum: 10c0/f61cbd00d7689f275558b1a45c7ff2a3ddf8472654123ed880215677b9adfa729f1081e50c27ffb415cdb9fa706fb755fec5e23cdd965be375c8059e87ff1cc9 - languageName: node - linkType: hard - "locate-path@npm:^5.0.0": version: 5.0.0 resolution: "locate-path@npm:5.0.0" @@ -8573,12 +8587,12 @@ __metadata: languageName: node linkType: hard -"loupe@npm:^2.3.6, loupe@npm:^2.3.7": - version: 2.3.7 - resolution: "loupe@npm:2.3.7" +"loupe@npm:^3.1.0, loupe@npm:^3.1.1": + version: 3.1.1 + resolution: "loupe@npm:3.1.1" dependencies: get-func-name: "npm:^2.0.1" - checksum: 10c0/71a781c8fc21527b99ed1062043f1f2bb30bdaf54fa4cf92463427e1718bc6567af2988300bc243c1f276e4f0876f29e3cbf7b58106fdc186915687456ce5bf4 + checksum: 10c0/99f88badc47e894016df0c403de846fedfea61154aadabbf776c8428dd59e8d8378007135d385d737de32ae47980af07d22ba7bec5ef7beebd721de9baa0a0af languageName: node linkType: hard @@ -9650,18 +9664,6 @@ __metadata: languageName: node linkType: hard -"mlly@npm:^1.2.0, mlly@npm:^1.4.2": - version: 1.4.2 - resolution: "mlly@npm:1.4.2" - dependencies: - acorn: "npm:^8.10.0" - pathe: "npm:^1.1.1" - pkg-types: "npm:^1.0.3" - ufo: "npm:^1.3.0" - checksum: 10c0/905e3a704c7d3bcaad55f31d6efe9f680eab5be053ab7f8b299b8dbc027041f741fa6a93db9a3c461be2552632f3831b6c43c50af530f5fb2e9cd6273bc9d642 - languageName: node - linkType: hard - "mount-point@npm:^3.0.0": version: 3.0.0 resolution: "mount-point@npm:3.0.0" @@ -10344,15 +10346,6 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^5.0.0": - version: 5.0.0 - resolution: "p-limit@npm:5.0.0" - dependencies: - yocto-queue: "npm:^1.0.0" - checksum: 10c0/574e93b8895a26e8485eb1df7c4b58a1a6e8d8ae41b1750cc2cc440922b3d306044fc6e9a7f74578a883d46802d9db72b30f2e612690fcef838c173261b1ed83 - languageName: node - linkType: hard - "p-locate@npm:^4.1.0": version: 4.1.0 resolution: "p-locate@npm:4.1.0" @@ -10577,17 +10570,17 @@ __metadata: languageName: node linkType: hard -"pathe@npm:^1.1.0, pathe@npm:^1.1.1": - version: 1.1.1 - resolution: "pathe@npm:1.1.1" - checksum: 10c0/3ae5a0529c3415d91c3ac9133f52cffea54a0dd46892fe059f4b80faf36fd207957d4594bdc87043b65d0761b1e5728f81f46bafff3b5302da4e2e48889b8c0e +"pathe@npm:^1.1.2": + version: 1.1.2 + resolution: "pathe@npm:1.1.2" + checksum: 10c0/64ee0a4e587fb0f208d9777a6c56e4f9050039268faaaaecd50e959ef01bf847b7872785c36483fa5cdcdbdfdb31fef2ff222684d4fc21c330ab60395c681897 languageName: node linkType: hard -"pathval@npm:^1.1.1": - version: 1.1.1 - resolution: "pathval@npm:1.1.1" - checksum: 10c0/f63e1bc1b33593cdf094ed6ff5c49c1c0dc5dc20a646ca9725cc7fe7cd9995002d51d5685b9b2ec6814342935748b711bafa840f84c0bb04e38ff40a335c94dc +"pathval@npm:^2.0.0": + version: 2.0.0 + resolution: "pathval@npm:2.0.0" + checksum: 10c0/602e4ee347fba8a599115af2ccd8179836a63c925c23e04bd056d0674a64b39e3a081b643cc7bc0b84390517df2d800a46fcc5598d42c155fe4977095c2f77c5 languageName: node linkType: hard @@ -10768,17 +10761,6 @@ __metadata: languageName: node linkType: hard -"pkg-types@npm:^1.0.3": - version: 1.0.3 - resolution: "pkg-types@npm:1.0.3" - dependencies: - jsonc-parser: "npm:^3.2.0" - mlly: "npm:^1.2.0" - pathe: "npm:^1.1.0" - checksum: 10c0/7f692ff2005f51b8721381caf9bdbc7f5461506ba19c34f8631660a215c8de5e6dca268f23a319dd180b8f7c47a0dc6efea14b376c485ff99e98d810b8f786c4 - languageName: node - linkType: hard - "pkginfo@npm:0.4.1": version: 0.4.1 resolution: "pkginfo@npm:0.4.1" @@ -12596,6 +12578,13 @@ __metadata: languageName: node linkType: hard +"std-env@npm:^3.7.0": + version: 3.7.0 + resolution: "std-env@npm:3.7.0" + checksum: 10c0/60edf2d130a4feb7002974af3d5a5f3343558d1ccf8d9b9934d225c638606884db4a20d2fe6440a09605bca282af6b042ae8070a10490c0800d69e82e478f41e + languageName: node + linkType: hard + "steno@npm:^0.4.1": version: 0.4.4 resolution: "steno@npm:0.4.4" @@ -13132,24 +13121,31 @@ __metadata: languageName: node linkType: hard -"tinybench@npm:^2.5.1": - version: 2.5.1 - resolution: "tinybench@npm:2.5.1" - checksum: 10c0/9c55ef25ce1689c3e2fdb89cacbf27dada4d04f846cac70023fe97fc35d2122816d8bbc5b20253e071d13688cf006355d59f0096d22958b818e1e2fe60e5165b +"tinybench@npm:^2.8.0": + version: 2.8.0 + resolution: "tinybench@npm:2.8.0" + checksum: 10c0/5a9a642351fa3e4955e0cbf38f5674be5f3ba6730fd872fd23a5c953ad6c914234d5aba6ea41ef88820180a81829ceece5bd8d3967c490c5171bca1141c2f24d languageName: node linkType: hard -"tinypool@npm:^0.8.3": - version: 0.8.4 - resolution: "tinypool@npm:0.8.4" - checksum: 10c0/779c790adcb0316a45359652f4b025958c1dff5a82460fe49f553c864309b12ad732c8288be52f852973bc76317f5e7b3598878aee0beb8a33322c0e72c4a66c +"tinypool@npm:^1.0.0": + version: 1.0.0 + resolution: "tinypool@npm:1.0.0" + checksum: 10c0/71b20b9c54366393831c286a0772380c20f8cad9546d724c484edb47aea3228f274c58e98cf51d28c40869b39f5273209ef3ea94a9d2a23f8b292f4731cd3e4e languageName: node linkType: hard -"tinyspy@npm:^2.2.0": - version: 2.2.0 - resolution: "tinyspy@npm:2.2.0" - checksum: 10c0/8c7b70748dd8590e85d52741db79243746c15bc03c92d75c23160a762142db577e7f53e360ba7300e321b12bca5c42dd2522a8dbeec6ba3830302573dd8516bc +"tinyrainbow@npm:^1.2.0": + version: 1.2.0 + resolution: "tinyrainbow@npm:1.2.0" + checksum: 10c0/7f78a4b997e5ba0f5ecb75e7ed786f30bab9063716e7dff24dd84013fb338802e43d176cb21ed12480561f5649a82184cf31efb296601a29d38145b1cdb4c192 + languageName: node + linkType: hard + +"tinyspy@npm:^3.0.0": + version: 3.0.0 + resolution: "tinyspy@npm:3.0.0" + checksum: 10c0/eb0dec264aa5370efd3d29743825eb115ed7f1ef8a72a431e9a75d5c9e7d67e99d04b0d61d86b8cd70c79ec27863f241ad0317bc453f78762e0cbd76d2c332d0 languageName: node linkType: hard @@ -13412,13 +13408,6 @@ __metadata: languageName: node linkType: hard -"type-detect@npm:^4.0.0, type-detect@npm:^4.0.8": - version: 4.0.8 - resolution: "type-detect@npm:4.0.8" - checksum: 10c0/8fb9a51d3f365a7de84ab7f73b653534b61b622aa6800aecdb0f1095a4a646d3f5eb295322127b6573db7982afcd40ab492d038cf825a42093a58b1e1353e0bd - languageName: node - linkType: hard - "type-fest@npm:~2.19": version: 2.19.0 resolution: "type-fest@npm:2.19.0" @@ -13515,13 +13504,6 @@ __metadata: languageName: node linkType: hard -"ufo@npm:^1.3.0": - version: 1.3.1 - resolution: "ufo@npm:1.3.1" - checksum: 10c0/9348ff03f76820116c4735625ee894912bc92b6d49dc63474a89a35d2752265421a405f0033b961bb0b885d460c915e7860adb6dc854422faf3483882f14ba86 - languageName: node - linkType: hard - "uglify-js@npm:^3.1.4": version: 3.17.4 resolution: "uglify-js@npm:3.17.4" @@ -14211,18 +14193,18 @@ __metadata: languageName: node linkType: hard -"vite-node@npm:1.6.0": - version: 1.6.0 - resolution: "vite-node@npm:1.6.0" +"vite-node@npm:2.0.5": + version: 2.0.5 + resolution: "vite-node@npm:2.0.5" dependencies: cac: "npm:^6.7.14" - debug: "npm:^4.3.4" - pathe: "npm:^1.1.1" - picocolors: "npm:^1.0.0" + debug: "npm:^4.3.5" + pathe: "npm:^1.1.2" + tinyrainbow: "npm:^1.2.0" vite: "npm:^5.0.0" bin: vite-node: vite-node.mjs - checksum: 10c0/0807e6501ac7763e0efa2b4bd484ce99fb207e92c98624c9f8999d1f6727ac026e457994260fa7fdb7060d87546d197081e46a705d05b0136a38b6f03715cbc2 + checksum: 10c0/affcc58ae8d45bce3e8bc3b5767acd57c24441634e2cd967cf97f4e5ed2bcead1714b60150cdf7ee153ebad47659c5cd419883207e1a95b69790331e3243749f languageName: node linkType: hard @@ -14266,35 +14248,34 @@ __metadata: languageName: node linkType: hard -"vitest@npm:^1.6.0": - version: 1.6.0 - resolution: "vitest@npm:1.6.0" - dependencies: - "@vitest/expect": "npm:1.6.0" - "@vitest/runner": "npm:1.6.0" - "@vitest/snapshot": "npm:1.6.0" - "@vitest/spy": "npm:1.6.0" - "@vitest/utils": "npm:1.6.0" - acorn-walk: "npm:^8.3.2" - chai: "npm:^4.3.10" - debug: "npm:^4.3.4" +"vitest@npm:^2.0.5": + version: 2.0.5 + resolution: "vitest@npm:2.0.5" + dependencies: + "@ampproject/remapping": "npm:^2.3.0" + "@vitest/expect": "npm:2.0.5" + "@vitest/pretty-format": "npm:^2.0.5" + "@vitest/runner": "npm:2.0.5" + "@vitest/snapshot": "npm:2.0.5" + "@vitest/spy": "npm:2.0.5" + "@vitest/utils": "npm:2.0.5" + chai: "npm:^5.1.1" + debug: "npm:^4.3.5" execa: "npm:^8.0.1" - local-pkg: "npm:^0.5.0" - magic-string: "npm:^0.30.5" - pathe: "npm:^1.1.1" - picocolors: "npm:^1.0.0" - std-env: "npm:^3.5.0" - strip-literal: "npm:^2.0.0" - tinybench: "npm:^2.5.1" - tinypool: "npm:^0.8.3" + magic-string: "npm:^0.30.10" + pathe: "npm:^1.1.2" + std-env: "npm:^3.7.0" + tinybench: "npm:^2.8.0" + tinypool: "npm:^1.0.0" + tinyrainbow: "npm:^1.2.0" vite: "npm:^5.0.0" - vite-node: "npm:1.6.0" - why-is-node-running: "npm:^2.2.2" + vite-node: "npm:2.0.5" + why-is-node-running: "npm:^2.3.0" peerDependencies: "@edge-runtime/vm": "*" "@types/node": ^18.0.0 || >=20.0.0 - "@vitest/browser": 1.6.0 - "@vitest/ui": 1.6.0 + "@vitest/browser": 2.0.5 + "@vitest/ui": 2.0.5 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -14312,7 +14293,7 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 10c0/065da5b8ead51eb174d93dac0cd50042ca9539856dc25e340ea905d668c41961f7e00df3e388e6c76125b2c22091db2e8465f993d0f6944daf9598d549e562e7 + checksum: 10c0/b4e6cca00816bf967a8589111ded72faa12f92f94ccdd0dcd0698ffcfdfc52ec662753f66b387549c600ac699b993fd952efbd99dc57fcf4d1c69a2f1022b259 languageName: node linkType: hard @@ -14530,15 +14511,15 @@ __metadata: languageName: node linkType: hard -"why-is-node-running@npm:^2.2.2": - version: 2.2.2 - resolution: "why-is-node-running@npm:2.2.2" +"why-is-node-running@npm:^2.3.0": + version: 2.3.0 + resolution: "why-is-node-running@npm:2.3.0" dependencies: siginfo: "npm:^2.0.0" stackback: "npm:0.0.2" bin: why-is-node-running: cli.js - checksum: 10c0/805d57eb5d33f0fb4e36bae5dceda7fd8c6932c2aeb705e30003970488f1a2bc70029ee64be1a0e1531e2268b11e65606e88e5b71d667ea745e6dc48fc9014bd + checksum: 10c0/1cde0b01b827d2cf4cb11db962f3958b9175d5d9e7ac7361d1a7b0e2dc6069a263e69118bd974c4f6d0a890ef4eedfe34cf3d5167ec14203dbc9a18620537054 languageName: node linkType: hard @@ -14728,13 +14709,6 @@ __metadata: languageName: node linkType: hard -"yocto-queue@npm:^1.0.0": - version: 1.0.0 - resolution: "yocto-queue@npm:1.0.0" - checksum: 10c0/856117aa15cf5103d2a2fb173f0ab4acb12b4b4d0ed3ab249fdbbf612e55d1cadfd27a6110940e24746fb0a78cf640b522cc8bca76f30a3b00b66e90cf82abe0 - languageName: node - linkType: hard - "yup@npm:0.32.11": version: 0.32.11 resolution: "yup@npm:0.32.11" From 375d2e13b5cf0b2285b71975a448421cf3b93c14 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Mon, 5 Aug 2024 09:36:03 +0200 Subject: [PATCH 030/135] fix tests, update patches --- .../@vitest-expect-npm-2.0.5-8933466cce.patch | 44 +++++++++++++++++++ code/lib/cli/src/upgrade.test.ts | 3 +- code/lib/test/package.json | 2 +- code/package.json | 1 + code/yarn.lock | 25 ++++++++++- 5 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 code/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch diff --git a/code/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch b/code/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch new file mode 100644 index 000000000000..6122aeb51b63 --- /dev/null +++ b/code/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch @@ -0,0 +1,44 @@ +diff --git a/dist/index.js b/dist/index.js +index ea14a7a52838ff2fb3010996a47f82507315019f..d5248b4daac4333ecdf250952cec3fbd39b89c19 100644 +--- a/dist/index.js ++++ b/dist/index.js +@@ -6,7 +6,9 @@ import { processError } from '@vitest/utils/error'; + import { use, util } from 'chai'; + + const MATCHERS_OBJECT = Symbol.for("matchers-object"); +-const JEST_MATCHERS_OBJECT = Symbol.for("$$jest-matchers-object"); ++// Patched this symbol for storybook, so that @storybook/test can be used in a jest environment as well. ++// Otherwise, vitest will override global jest matchers, and crash. ++const JEST_MATCHERS_OBJECT = Symbol.for("$$jest-matchers-object-storybook"); + const GLOBAL_EXPECT = Symbol.for("expect-global"); + const ASYMMETRIC_MATCHERS_OBJECT = Symbol.for( + "asymmetric-matchers-object" +@@ -14,20 +16,24 @@ const ASYMMETRIC_MATCHERS_OBJECT = Symbol.for( + + if (!Object.prototype.hasOwnProperty.call(globalThis, MATCHERS_OBJECT)) { + const globalState = /* @__PURE__ */ new WeakMap(); +- const matchers = /* @__PURE__ */ Object.create(null); +- const customEqualityTesters = []; +- const assymetricMatchers = /* @__PURE__ */ Object.create(null); + Object.defineProperty(globalThis, MATCHERS_OBJECT, { + get: () => globalState + }); ++} ++if (!Object.prototype.hasOwnProperty.call(globalThis, JEST_MATCHERS_OBJECT)) { ++ const matchers = /* @__PURE__ */ Object.create(null); ++ const customEqualityTesters = []; + Object.defineProperty(globalThis, JEST_MATCHERS_OBJECT, { + configurable: true, + get: () => ({ +- state: globalState.get(globalThis[GLOBAL_EXPECT]), ++ state: globalThis[MATCHERS_OBJECT].get(globalThis[GLOBAL_EXPECT]), + matchers, + customEqualityTesters + }) + }); ++} ++if (!Object.prototype.hasOwnProperty.call(globalThis, ASYMMETRIC_MATCHERS_OBJECT)) { ++ const assymetricMatchers = /* @__PURE__ */ Object.create(null); + Object.defineProperty(globalThis, ASYMMETRIC_MATCHERS_OBJECT, { + get: () => assymetricMatchers + }); diff --git a/code/lib/cli/src/upgrade.test.ts b/code/lib/cli/src/upgrade.test.ts index 7c64dc748393..5e6daef39148 100644 --- a/code/lib/cli/src/upgrade.test.ts +++ b/code/lib/cli/src/upgrade.test.ts @@ -4,7 +4,8 @@ import { UpgradeStorybookToLowerVersionError } from 'storybook/internal/server-e import { doUpgrade, getStorybookVersion } from './upgrade'; import { logger } from '@storybook/core/node-logger'; -const findInstallationsMock = vi.fn>(); +const findInstallationsMock = + vi.fn<(arg: string[]) => Promise>(); vi.mock('@storybook/core/telemetry'); vi.mock('@storybook/core/common', async (importOriginal) => { diff --git a/code/lib/test/package.json b/code/lib/test/package.json index 418ec733c626..bae799489a80 100644 --- a/code/lib/test/package.json +++ b/code/lib/test/package.json @@ -49,7 +49,7 @@ "@testing-library/dom": "10.1.0", "@testing-library/jest-dom": "6.4.5", "@testing-library/user-event": "14.5.2", - "@vitest/expect": "1.6.0", + "@vitest/expect": "patch:@vitest/expect@npm%3A1.6.0#~/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch", "@vitest/spy": "1.6.0", "util": "^0.12.4" }, diff --git a/code/package.json b/code/package.json index 5e56b5719351..560bf6ff0e3f 100644 --- a/code/package.json +++ b/code/package.json @@ -77,6 +77,7 @@ "resolutions": { "@playwright/test": "1.36.0", "@types/node": "^18.0.0", + "@vitest/expect@npm:2.0.5": "patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch", "esbuild": "^0.23.0", "playwright": "1.36.0", "playwright-core": "1.36.0", diff --git a/code/yarn.lock b/code/yarn.lock index c497d8e50dd8..ba9aeb928ccc 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6767,7 +6767,7 @@ __metadata: "@testing-library/dom": "npm:10.1.0" "@testing-library/jest-dom": "npm:6.4.5" "@testing-library/user-event": "npm:14.5.2" - "@vitest/expect": "npm:1.6.0" + "@vitest/expect": "patch:@vitest/expect@npm%3A1.6.0#~/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch" "@vitest/spy": "npm:1.6.0" chai: "npm:^4.4.1" tinyspy: "npm:^2.2.0" @@ -8477,6 +8477,29 @@ __metadata: languageName: node linkType: hard +"@vitest/expect@patch:@vitest/expect@npm%3A1.6.0#~/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch": + version: 1.6.0 + resolution: "@vitest/expect@patch:@vitest/expect@npm%3A1.6.0#~/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch::version=1.6.0&hash=7cb178" + dependencies: + "@vitest/spy": "npm:1.6.0" + "@vitest/utils": "npm:1.6.0" + chai: "npm:^4.3.10" + checksum: 10c0/073cfd09bfe6934408d0041be5a7251c2f80563a655f9387b8cd16a802752b47f1084de921ad6b5c45a48b5447773c52358c1cf68bb7e3b665b44c8cba19d8d3 + languageName: node + linkType: hard + +"@vitest/expect@patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch": + version: 2.0.5 + resolution: "@vitest/expect@patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch::version=2.0.5&hash=368591" + dependencies: + "@vitest/spy": "npm:2.0.5" + "@vitest/utils": "npm:2.0.5" + chai: "npm:^5.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/0834adbe2c7094277adf3a45aa20fece84ca3b381fb3fe118fa424d2d490f20d0365c57dcaf845b413e583e36118f2815afa34bd175e305d6169c947e29576c3 + languageName: node + linkType: hard + "@vitest/pretty-format@npm:2.0.5, @vitest/pretty-format@npm:^2.0.5": version: 2.0.5 resolution: "@vitest/pretty-format@npm:2.0.5" From 93b2e3c3891347a598294e69bef0013e27bbce82 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Mon, 5 Aug 2024 09:41:54 +0200 Subject: [PATCH 031/135] Upgrade vite-plugin-storybook-nextjs --- code/frameworks/nextjs-vite/package.json | 4 ++-- code/yarn.lock | 29 +++++++++++++++++++----- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/code/frameworks/nextjs-vite/package.json b/code/frameworks/nextjs-vite/package.json index da82787bf001..2be69a522ffb 100644 --- a/code/frameworks/nextjs-vite/package.json +++ b/code/frameworks/nextjs-vite/package.json @@ -99,7 +99,7 @@ "@types/node": "^18.0.0", "next": "^14.2.5", "typescript": "^5.3.2", - "vite-plugin-storybook-nextjs": "^0.0.13" + "vite-plugin-storybook-nextjs": "^1.0.0" }, "peerDependencies": { "next": "^14.2.5", @@ -107,7 +107,7 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", "storybook": "workspace:^", "vite": "^5.0.0", - "vite-plugin-storybook-nextjs": "^0.0.13" + "vite-plugin-storybook-nextjs": "^1.0.0" }, "peerDependenciesMeta": { "typescript": { diff --git a/code/yarn.lock b/code/yarn.lock index 78f36e3a9493..b7d68f237ad4 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -3776,6 +3776,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:0.3.9": version: 0.3.9 resolution: "@jridgewell/trace-mapping@npm:0.3.9" @@ -6294,14 +6301,14 @@ __metadata: sharp: "npm:^0.33.3" styled-jsx: "npm:5.1.6" typescript: "npm:^5.3.2" - vite-plugin-storybook-nextjs: "npm:^0.0.13" + vite-plugin-storybook-nextjs: "npm:^1.0.0" peerDependencies: next: ^14.2.5 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta storybook: "workspace:^" vite: ^5.0.0 - vite-plugin-storybook-nextjs: ^0.0.13 + vite-plugin-storybook-nextjs: ^1.0.0 dependenciesMeta: sharp: optional: true @@ -19111,6 +19118,15 @@ __metadata: languageName: node linkType: hard +"magic-string@npm:^0.30.11": + version: 0.30.11 + resolution: "magic-string@npm:0.30.11" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + checksum: 10c0/b9eb370773d0bd90ca11a848753409d8e5309b1ad56d2a1aa49d6649da710a6d2fe7237ad1a643c5a5d3800de2b9946ed9690acdfc00e6cc1aeafff3ab1752c4 + languageName: node + linkType: hard + "magicast@npm:^0.3.3": version: 0.3.3 resolution: "magicast@npm:0.3.3" @@ -28147,12 +28163,13 @@ __metadata: languageName: node linkType: hard -"vite-plugin-storybook-nextjs@npm:^0.0.13": - version: 0.0.13 - resolution: "vite-plugin-storybook-nextjs@npm:0.0.13" +"vite-plugin-storybook-nextjs@npm:^1.0.0": + version: 1.0.0 + resolution: "vite-plugin-storybook-nextjs@npm:1.0.0" dependencies: "@next/env": "npm:^14.2.5" image-size: "npm:^1.1.1" + magic-string: "npm:^0.30.11" module-alias: "npm:^2.2.3" sharp: "npm:^0.33.4" ts-dedent: "npm:^2.2.0" @@ -28164,7 +28181,7 @@ __metadata: dependenciesMeta: sharp: optional: true - checksum: 10c0/331e43c91f6c395e3ed87b6a2f372f1372fa7dfc00d0cb8e0a9daad129d779f6f56b5d01fb4b1ab6c231917c458189c02535ecbe2d9d447bc8bf4c3939cc42aa + checksum: 10c0/6ca17326e0387044d7bfa4373e6ccb64e8bb5bec1f19898ba9b8338c7817d8bea0fb01169adfb623f652fded5e6f59170129f7c8c4d4c3c54ca3764727e5a195 languageName: node linkType: hard From 9398495cca8a080cf7ad5f6ee3bc4083f6c194f3 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Mon, 5 Aug 2024 09:48:11 +0200 Subject: [PATCH 032/135] Documentation: Update Next.js portable stories instructions for Vitest --- docs/_snippets/portable-stories-vitest-compose-stories.md | 1 + docs/api/portable-stories/portable-stories-vitest.mdx | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/_snippets/portable-stories-vitest-compose-stories.md b/docs/_snippets/portable-stories-vitest-compose-stories.md index 8ee390c4824f..3ac894b23af5 100644 --- a/docs/_snippets/portable-stories-vitest-compose-stories.md +++ b/docs/_snippets/portable-stories-vitest-compose-stories.md @@ -1,6 +1,7 @@ ```tsx filename="Button.test.tsx" renderer="react" language="ts" import { test, expect } from 'vitest'; import { screen } from '@testing-library/react'; +// πŸ‘‰ Using Next.js? Import from @storybook/nextjs instead import { composeStories } from '@storybook/react'; // Import all stories and the component annotations from the stories file diff --git a/docs/api/portable-stories/portable-stories-vitest.mdx b/docs/api/portable-stories/portable-stories-vitest.mdx index f44d173dffc1..e53b4f684096 100644 --- a/docs/api/portable-stories/portable-stories-vitest.mdx +++ b/docs/api/portable-stories/portable-stories-vitest.mdx @@ -28,7 +28,7 @@ sidebar: - **Using `Next.js`?** Next.js requires specific configuration that is only available in [Jest](./portable-stories-jest.mdx). The portable stories API is not supported in Next.js with Vitest. + **Using `Next.js`?** Next.js support for Vitest is now possible by using the [vite-plugin-storybook-nextjs](https://github.com/storybookjs/vite-plugin-storybook-nextjs) Plugin. Please make sure that the plugin is installed and set up. From 7bd22d4deafdb17e0fdb24592f397590331dd4d7 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Mon, 5 Aug 2024 10:40:35 +0200 Subject: [PATCH 033/135] Edit Next.js documentation --- docs/_snippets/nextjs-vite-add-framework.md | 19 ++++++++++ docs/_snippets/nextjs-vite-install.md | 11 ++++++ docs/_snippets/nextjs-vite-remove-addons.md | 27 ++++++++++++++ docs/get-started/frameworks/nextjs.mdx | 39 ++++++++++++++++++++- 4 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 docs/_snippets/nextjs-vite-add-framework.md create mode 100644 docs/_snippets/nextjs-vite-install.md create mode 100644 docs/_snippets/nextjs-vite-remove-addons.md diff --git a/docs/_snippets/nextjs-vite-add-framework.md b/docs/_snippets/nextjs-vite-add-framework.md new file mode 100644 index 000000000000..8ee1e090f4b7 --- /dev/null +++ b/docs/_snippets/nextjs-vite-add-framework.md @@ -0,0 +1,19 @@ +```js filename=".storybook/main.js" renderer="react" language="js" +export default { + // ... + // framework: '@storybook/react-webpack5', πŸ‘ˆ Remove this + framework: '@storybook/nextjs-vite', // πŸ‘ˆ Add this +}; +``` + +```ts filename=".storybook/main.ts" renderer="react" language="ts" +import { StorybookConfig } from '@storybook/nextjs-vite'; + +const config: StorybookConfig = { + // ... + // framework: '@storybook/react-webpack5', πŸ‘ˆ Remove this + framework: '@storybook/nextjs-vite', // πŸ‘ˆ Add this +}; + +export default config; +``` diff --git a/docs/_snippets/nextjs-vite-install.md b/docs/_snippets/nextjs-vite-install.md new file mode 100644 index 000000000000..8b81c9d3b13e --- /dev/null +++ b/docs/_snippets/nextjs-vite-install.md @@ -0,0 +1,11 @@ +```shell renderer="react" language="js" packageManager="npm" +npm install --save-dev @storybook/nextjs-vite +``` + +```shell renderer="react" language="js" packageManager="pnpm" +pnpm add --save-dev @storybook/nextjs-vite +``` + +```shell renderer="react" language="js" packageManager="yarn" +yarn add --dev @storybook/nextjs-vite +``` diff --git a/docs/_snippets/nextjs-vite-remove-addons.md b/docs/_snippets/nextjs-vite-remove-addons.md new file mode 100644 index 000000000000..fecfa0240fa0 --- /dev/null +++ b/docs/_snippets/nextjs-vite-remove-addons.md @@ -0,0 +1,27 @@ +```js filename=".storybook/main.js" renderer="react" language="js" +export default { + // ... + addons: [ + // ... + // πŸ‘‡ These can both be removed + // 'storybook-addon-next', + // 'storybook-addon-next-router', + ], +}; +``` + +```ts filename=".storybook/main.ts" renderer="react" language="ts" +import { StorybookConfig } from '@storybook/nextjs-vite'; + +const config: StorybookConfig = { + // ... + addons: [ + // ... + // πŸ‘‡ These can both be removed + // 'storybook-addon-next', + // 'storybook-addon-next-router', + ], +}; + +export default config; +``` diff --git a/docs/get-started/frameworks/nextjs.mdx b/docs/get-started/frameworks/nextjs.mdx index e6322452d6a2..f220194ae44e 100644 --- a/docs/get-started/frameworks/nextjs.mdx +++ b/docs/get-started/frameworks/nextjs.mdx @@ -82,6 +82,32 @@ Storybook for Next.js is a [framework](../../contribute/framework.mdx) that make {/* prettier-ignore-end */} + #### @storybook/nextjs-vite - Experimental Vite support + + You can use our freshly baked experimental `@storybook/nextjs-vite` framework, which is based on Vite and removes the bloat of Webpack and Babel. + + {/* prettier-ignore-start */} + + + + {/* prettier-ignore-end */} + + Then, update your `.storybook/main.js|ts` to change the framework property: + + {/* prettier-ignore-start */} + + + + {/* prettier-ignore-end */} + + Finally, if you were using Storybook plugins to integrate with Next.js, those are no longer necessary when using this framework and can be removed: + + {/* prettier-ignore-start */} + + + + {/* prettier-ignore-end */} + ## Run the Setup Wizard If all goes well, you should see a setup wizard that will help you get started with Storybook introducing you to the main concepts and features, including how the UI is organized, how to write your first story, and how to test your components' response to various inputs utilizing [controls](../../essentials/controls.mdx). @@ -162,6 +188,12 @@ Storybook for Next.js is a [framework](../../contribute/framework.mdx) that make const localRubikStorm = localFont({ src: './fonts/RubikStorm-Regular.ttf' }); ``` + #### `staticDir` mapping + + + You can safely skip this section if you are using `@storybook/nextjs-vite` instead of `@storybook/nextjs`. The vite-based framework takes care of the mapping automatically. + + You have to tell Storybook where the `fonts` directory is located, via the [`staticDirs` configuration](../../api/main-config/main-config-static-dirs.mdx#with-configuration-objects). The `from` value is relative to the `.storybook` directory. The `to` value is relative to the execution context of Storybook. Very likely it is the root of your project. {/* prettier-ignore-start */} @@ -714,6 +746,11 @@ Storybook for Next.js is a [framework](../../contribute/framework.mdx) that make ## Custom Webpack config + + You can safely skip this section if you are using `@storybook/nextjs-vite` instead of `@storybook/nextjs`. + The Vite-based Next.js framework does not support Webpack settings. + + Next.js comes with a lot of things for free out of the box like Sass support, but sometimes you add [custom Webpack config modifications to Next.js](https://nextjs.org/docs/pages/api-reference/next-config-js/webpack). This framework takes care of most of the Webpack modifications you would want to add. If Next.js supports a feature out of the box, then that feature will work out of the box in Storybook. If Next.js doesn't support something out of the box, but makes it easy to configure, then this framework will do the same for that thing for Storybook. Any Webpack modifications desired for Storybook should be made in [`.storybook/main.js|ts`](../../builders/webpack.mdx#extending-storybooks-webpack-config). @@ -860,7 +897,7 @@ Storybook for Next.js is a [framework](../../contribute/framework.mdx) that make ### What if I'm using the Vite builder? - The `@storybook/nextjs` package abstracts the Webpack 5 builder and provides all the necessary Webpack configuration needed (and used internally) by Next.js. Webpack is currently the official builder in Next.js, and Next.js does not support Vite, therefore it is not possible to use Vite with `@storybook/nextjs`. You can use `@storybook/react-vite` framework instead, but at the cost of having a degraded experience, and we won't be able to provide you official support. + We have introduced experimental Vite builder support. Just install the experimental framework package `@storybook/nextjs-vite` and replace all instances of `@storybook/nextjs` with `@storybook/nextjs-vite`. ### Error: You are importing avif images, but you don't have sharp installed. You have to install sharp in order to use image optimization features in Next.js. From a25f79a6825be25ff3c78e8d28ebb86ca9fd4d8d Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Mon, 5 Aug 2024 11:44:43 +0200 Subject: [PATCH 034/135] Cleanup --- code/frameworks/nextjs-vite/tsconfig.json | 5 +---- scripts/prepare/check.ts | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/code/frameworks/nextjs-vite/tsconfig.json b/code/frameworks/nextjs-vite/tsconfig.json index dfc156d3c128..3b01f80f2c32 100644 --- a/code/frameworks/nextjs-vite/tsconfig.json +++ b/code/frameworks/nextjs-vite/tsconfig.json @@ -1,8 +1,5 @@ { "extends": "../../tsconfig.json", - "compilerOptions": { - // "module": "Preserve", - // "moduleResolution": "Bundler" - }, + "compilerOptions": {}, "include": ["src/**/*", "template/**/*"] } diff --git a/scripts/prepare/check.ts b/scripts/prepare/check.ts index ca971da46910..1e10c1024afe 100755 --- a/scripts/prepare/check.ts +++ b/scripts/prepare/check.ts @@ -39,10 +39,7 @@ run({ cwd: process.cwd() }).catch((err: unknown) => { function getTSDiagnostics(program: ts.Program, cwd: string, host: ts.CompilerHost): any { return ts.formatDiagnosticsWithColorAndContext( - ts.getPreEmitDiagnostics(program).filter((d) => { - // console.log(d); - return d.file.fileName.startsWith(cwd); - }), + ts.getPreEmitDiagnostics(program).filter((d) => d.file.fileName.startsWith(cwd)), host ); } From 2224dadabfe2c3c416b8eca69361e3bedf2480b4 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Mon, 5 Aug 2024 12:52:09 +0200 Subject: [PATCH 035/135] Upgrade to vitest 2.0 --- .../@vitest-expect-npm-2.0.5-8933466cce.patch | 4 +- code/lib/test/package.json | 8 +-- code/lib/test/src/index.ts | 2 +- code/lib/test/src/spy.ts | 25 +++++-- code/package.json | 4 +- .../src/__test__/portable-stories.test.tsx | 1 - code/yarn.lock | 65 +++++-------------- 7 files changed, 47 insertions(+), 62 deletions(-) diff --git a/code/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch b/code/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch index 6122aeb51b63..ffb0cd3ba2c4 100644 --- a/code/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch +++ b/code/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch @@ -4,7 +4,7 @@ index ea14a7a52838ff2fb3010996a47f82507315019f..d5248b4daac4333ecdf250952cec3fbd +++ b/dist/index.js @@ -6,7 +6,9 @@ import { processError } from '@vitest/utils/error'; import { use, util } from 'chai'; - + const MATCHERS_OBJECT = Symbol.for("matchers-object"); -const JEST_MATCHERS_OBJECT = Symbol.for("$$jest-matchers-object"); +// Patched this symbol for storybook, so that @storybook/test can be used in a jest environment as well. @@ -14,7 +14,7 @@ index ea14a7a52838ff2fb3010996a47f82507315019f..d5248b4daac4333ecdf250952cec3fbd const ASYMMETRIC_MATCHERS_OBJECT = Symbol.for( "asymmetric-matchers-object" @@ -14,20 +16,24 @@ const ASYMMETRIC_MATCHERS_OBJECT = Symbol.for( - + if (!Object.prototype.hasOwnProperty.call(globalThis, MATCHERS_OBJECT)) { const globalState = /* @__PURE__ */ new WeakMap(); - const matchers = /* @__PURE__ */ Object.create(null); diff --git a/code/lib/test/package.json b/code/lib/test/package.json index bae799489a80..51c12ef2feb3 100644 --- a/code/lib/test/package.json +++ b/code/lib/test/package.json @@ -49,13 +49,13 @@ "@testing-library/dom": "10.1.0", "@testing-library/jest-dom": "6.4.5", "@testing-library/user-event": "14.5.2", - "@vitest/expect": "patch:@vitest/expect@npm%3A1.6.0#~/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch", - "@vitest/spy": "1.6.0", + "@vitest/expect": "patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch", + "@vitest/spy": "2.0.5", "util": "^0.12.4" }, "devDependencies": { - "chai": "^4.4.1", - "tinyspy": "^2.2.0", + "chai": "^5.1.1", + "tinyspy": "^3.0.0", "ts-dedent": "^2.2.0", "type-fest": "~2.19", "typescript": "^5.3.2" diff --git a/code/lib/test/src/index.ts b/code/lib/test/src/index.ts index aea46596a53a..96c340971e5d 100644 --- a/code/lib/test/src/index.ts +++ b/code/lib/test/src/index.ts @@ -1,6 +1,6 @@ import { instrument } from '@storybook/instrumenter'; import type { LoaderFunction } from '@storybook/csf'; -import chai from 'chai'; +import * as chai from 'chai'; import { global } from '@storybook/global'; import { expect as rawExpect } from './expect'; import { diff --git a/code/lib/test/src/spy.ts b/code/lib/test/src/spy.ts index 53c95c99d9c4..dd1313d09e3d 100644 --- a/code/lib/test/src/spy.ts +++ b/code/lib/test/src/spy.ts @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-shadow */ -import type { MockInstance } from '@vitest/spy'; +import type { Mock as MockV2, MockInstance } from '@vitest/spy'; import { spyOn as vitestSpyOn, isMockFunction, @@ -31,11 +31,28 @@ export const spyOn: typeof vitestSpyOn = (...args) => { return reactiveMock(mock); }; -// @ts-expect-error Make sure we export the exact same type as @vitest/spy -export const fn: typeof vitestFn = (implementation) => { +type Procedure = (...args: any[]) => any; + +export type Mock = T extends Procedure + ? MockV2 + : T extends any[] + ? MockV2<(...args: T) => R> + : never; + +// V2 +export function fn(implementation?: T): Mock; +// V1 +export function fn(): Mock<(...args: TArgs) => R>; +export function fn( + implementation: (...args: TArgs) => R +): Mock<(...args: TArgs) => R>; +export function fn( + implementation?: (...args: TArgs) => R +): Mock<(...args: TArgs) => R>; +export function fn(implementation?: Procedure) { const mock = implementation ? vitestFn(implementation) : vitestFn(); return reactiveMock(mock); -}; +} function reactiveMock(mock: MockInstance) { const reactive = listenWhenCalled(mock); diff --git a/code/package.json b/code/package.json index 560bf6ff0e3f..f723068e51d5 100644 --- a/code/package.json +++ b/code/package.json @@ -77,12 +77,12 @@ "resolutions": { "@playwright/test": "1.36.0", "@types/node": "^18.0.0", - "@vitest/expect@npm:2.0.5": "patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch", "esbuild": "^0.23.0", "playwright": "1.36.0", "playwright-core": "1.36.0", "serialize-javascript": "^3.1.0", - "type-fest": "~2.19" + "type-fest": "~2.19", + "@vitest/expect@npm:2.0.5": "patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch" }, "dependencies": { "@chromatic-com/storybook": "^1.6.1", diff --git a/code/renderers/react/src/__test__/portable-stories.test.tsx b/code/renderers/react/src/__test__/portable-stories.test.tsx index 8e17288243d7..aab09b59a94a 100644 --- a/code/renderers/react/src/__test__/portable-stories.test.tsx +++ b/code/renderers/react/src/__test__/portable-stories.test.tsx @@ -135,7 +135,6 @@ describe('CSF3', () => { const CSF3InputFieldFilled = composeStory(stories.CSF3InputFieldFilled, stories.default); const div = document.createElement('div'); - console.log(div.tagName); document.body.appendChild(div); await CSF3InputFieldFilled.run({ canvasElement: div }); diff --git a/code/yarn.lock b/code/yarn.lock index ba9aeb928ccc..13234d33df73 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6767,10 +6767,10 @@ __metadata: "@testing-library/dom": "npm:10.1.0" "@testing-library/jest-dom": "npm:6.4.5" "@testing-library/user-event": "npm:14.5.2" - "@vitest/expect": "patch:@vitest/expect@npm%3A1.6.0#~/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch" - "@vitest/spy": "npm:1.6.0" - chai: "npm:^4.4.1" - tinyspy: "npm:^2.2.0" + "@vitest/expect": "patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch" + "@vitest/spy": "npm:2.0.5" + chai: "npm:^5.1.1" + tinyspy: "npm:^3.0.0" ts-dedent: "npm:^2.2.0" type-fest: "npm:~2.19" typescript: "npm:^5.3.2" @@ -8454,17 +8454,6 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:1.6.0": - version: 1.6.0 - resolution: "@vitest/expect@npm:1.6.0" - dependencies: - "@vitest/spy": "npm:1.6.0" - "@vitest/utils": "npm:1.6.0" - chai: "npm:^4.3.10" - checksum: 10c0/a4351f912a70543e04960f5694f1f1ac95f71a856a46e87bba27d3eb72a08c5d11d35021cbdc6077452a152e7d93723fc804bba76c2cc53c8896b7789caadae3 - languageName: node - linkType: hard - "@vitest/expect@npm:2.0.5": version: 2.0.5 resolution: "@vitest/expect@npm:2.0.5" @@ -8477,17 +8466,6 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@patch:@vitest/expect@npm%3A1.6.0#~/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch": - version: 1.6.0 - resolution: "@vitest/expect@patch:@vitest/expect@npm%3A1.6.0#~/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch::version=1.6.0&hash=7cb178" - dependencies: - "@vitest/spy": "npm:1.6.0" - "@vitest/utils": "npm:1.6.0" - chai: "npm:^4.3.10" - checksum: 10c0/073cfd09bfe6934408d0041be5a7251c2f80563a655f9387b8cd16a802752b47f1084de921ad6b5c45a48b5447773c52358c1cf68bb7e3b665b44c8cba19d8d3 - languageName: node - linkType: hard - "@vitest/expect@patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch": version: 2.0.5 resolution: "@vitest/expect@patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch::version=2.0.5&hash=368591" @@ -8530,15 +8508,6 @@ __metadata: languageName: node linkType: hard -"@vitest/spy@npm:1.6.0": - version: 1.6.0 - resolution: "@vitest/spy@npm:1.6.0" - dependencies: - tinyspy: "npm:^2.2.0" - checksum: 10c0/df66ea6632b44fb76ef6a65c1abbace13d883703aff37cd6d062add6dcd1b883f19ce733af8e0f7feb185b61600c6eb4042a518e4fb66323d0690ec357f9401c - languageName: node - linkType: hard - "@vitest/spy@npm:2.0.5": version: 2.0.5 resolution: "@vitest/spy@npm:2.0.5" @@ -8548,18 +8517,6 @@ __metadata: languageName: node linkType: hard -"@vitest/utils@npm:1.6.0, @vitest/utils@npm:^1.3.1": - version: 1.6.0 - resolution: "@vitest/utils@npm:1.6.0" - dependencies: - diff-sequences: "npm:^29.6.3" - estree-walker: "npm:^3.0.3" - loupe: "npm:^2.3.7" - pretty-format: "npm:^29.7.0" - checksum: 10c0/8b0d19835866455eb0b02b31c5ca3d8ad45f41a24e4c7e1f064b480f6b2804dc895a70af332f14c11ed89581011b92b179718523f55f5b14787285a0321b1301 - languageName: node - linkType: hard - "@vitest/utils@npm:2.0.5": version: 2.0.5 resolution: "@vitest/utils@npm:2.0.5" @@ -8572,6 +8529,18 @@ __metadata: languageName: node linkType: hard +"@vitest/utils@npm:^1.3.1": + version: 1.6.0 + resolution: "@vitest/utils@npm:1.6.0" + dependencies: + diff-sequences: "npm:^29.6.3" + estree-walker: "npm:^3.0.3" + loupe: "npm:^2.3.7" + pretty-format: "npm:^29.7.0" + checksum: 10c0/8b0d19835866455eb0b02b31c5ca3d8ad45f41a24e4c7e1f064b480f6b2804dc895a70af332f14c11ed89581011b92b179718523f55f5b14787285a0321b1301 + languageName: node + linkType: hard + "@volar/language-core@npm:1.10.1, @volar/language-core@npm:~1.10.0": version: 1.10.1 resolution: "@volar/language-core@npm:1.10.1" @@ -11130,7 +11099,7 @@ __metadata: languageName: node linkType: hard -"chai@npm:^4.3.10, chai@npm:^4.4.1": +"chai@npm:^4.4.1": version: 4.5.0 resolution: "chai@npm:4.5.0" dependencies: From 6a4e7b7b7684478b451ec65d117f3128e2375889 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Mon, 5 Aug 2024 12:54:20 +0200 Subject: [PATCH 036/135] Add todos --- code/lib/test/src/spy.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/lib/test/src/spy.ts b/code/lib/test/src/spy.ts index dd1313d09e3d..c0c0ca29018f 100644 --- a/code/lib/test/src/spy.ts +++ b/code/lib/test/src/spy.ts @@ -33,6 +33,7 @@ export const spyOn: typeof vitestSpyOn = (...args) => { type Procedure = (...args: any[]) => any; +// TODO: Remove in 9.0 export type Mock = T extends Procedure ? MockV2 : T extends any[] @@ -41,6 +42,7 @@ export type Mock = T extends Procedure // V2 export function fn(implementation?: T): Mock; +// TODO: Remove in 9.0 // V1 export function fn(): Mock<(...args: TArgs) => R>; export function fn( From d990987b19c3030386620677196b940a90c7065a Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Mon, 5 Aug 2024 13:20:54 +0200 Subject: [PATCH 037/135] Ignore tsup errors that can not analyze ExpectStatic properly anymore --- code/lib/test/src/expect.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/lib/test/src/expect.ts b/code/lib/test/src/expect.ts index aa898bd7e36a..20b9f762c1f9 100644 --- a/code/lib/test/src/expect.ts +++ b/code/lib/test/src/expect.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/ban-ts-comment */ import * as chai from 'chai'; import type { AsymmetricMatchersContaining, @@ -65,7 +66,9 @@ export function createExpect() { // @ts-expect-error chai.extend is not typed expect.extend = (expects: MatchersObject) => chai.expect.extend(expect, expects); + // @ts-ignore tsup borks here for some reason expect.soft = (...args) => { + // @ts-ignore tsup borks here for some reason const assert = expect(...args); expect.setState({ soft: true, @@ -73,6 +76,7 @@ export function createExpect() { return assert; }; + // @ts-ignore tsup borks here for some reason expect.unreachable = (message?: string): never => { chai.assert.fail(`expected${message ? ` "${message}" ` : ' '}not to be reached`); }; @@ -123,7 +127,7 @@ export function createExpect() { return expect as unknown as Expect; } -const expect = createExpect(); +const expect: Expect = createExpect(); // @vitest/expect expects this to be set Object.defineProperty(globalThis, GLOBAL_EXPECT, { From 64a82b9fc60eb57ac5d2379c0d778bbcecb95b31 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Mon, 5 Aug 2024 13:24:45 +0200 Subject: [PATCH 038/135] Make default generic backwards compatible --- code/lib/test/src/spy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/lib/test/src/spy.ts b/code/lib/test/src/spy.ts index c0c0ca29018f..a6b70f57188e 100644 --- a/code/lib/test/src/spy.ts +++ b/code/lib/test/src/spy.ts @@ -34,7 +34,7 @@ export const spyOn: typeof vitestSpyOn = (...args) => { type Procedure = (...args: any[]) => any; // TODO: Remove in 9.0 -export type Mock = T extends Procedure +export type Mock = T extends Procedure ? MockV2 : T extends any[] ? MockV2<(...args: T) => R> From f4dea49a2c0081f7211ac7d206f8cd657ebc4bba Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Mon, 5 Aug 2024 13:35:48 +0200 Subject: [PATCH 039/135] Only patch in code directory --- code/lib/test/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/lib/test/package.json b/code/lib/test/package.json index 51c12ef2feb3..637c0b18a3bb 100644 --- a/code/lib/test/package.json +++ b/code/lib/test/package.json @@ -49,7 +49,7 @@ "@testing-library/dom": "10.1.0", "@testing-library/jest-dom": "6.4.5", "@testing-library/user-event": "14.5.2", - "@vitest/expect": "patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch", + "@vitest/expect": "2.0.5", "@vitest/spy": "2.0.5", "util": "^0.12.4" }, From 2e0c8755a3e55aa6563181343b766d55581fce32 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Mon, 5 Aug 2024 13:38:09 +0200 Subject: [PATCH 040/135] Only patch in code directory --- code/yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/yarn.lock b/code/yarn.lock index 13234d33df73..ac241ea7a2a4 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6767,7 +6767,7 @@ __metadata: "@testing-library/dom": "npm:10.1.0" "@testing-library/jest-dom": "npm:6.4.5" "@testing-library/user-event": "npm:14.5.2" - "@vitest/expect": "patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch" + "@vitest/expect": "npm:2.0.5" "@vitest/spy": "npm:2.0.5" chai: "npm:^5.1.1" tinyspy: "npm:^3.0.0" From 9b474a3958d420d4f6fe81985e6b03cdb0b94d67 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Mon, 5 Aug 2024 13:39:55 +0200 Subject: [PATCH 041/135] Update testing-library also in @storybook/test --- code/lib/test/package.json | 4 +-- code/yarn.lock | 56 ++++++++++++++------------------------ 2 files changed, 22 insertions(+), 38 deletions(-) diff --git a/code/lib/test/package.json b/code/lib/test/package.json index 637c0b18a3bb..e85260623324 100644 --- a/code/lib/test/package.json +++ b/code/lib/test/package.json @@ -46,8 +46,8 @@ "dependencies": { "@storybook/csf": "^0.1.11", "@storybook/instrumenter": "workspace:*", - "@testing-library/dom": "10.1.0", - "@testing-library/jest-dom": "6.4.5", + "@testing-library/dom": "10.4.0", + "@testing-library/jest-dom": "6.4.8", "@testing-library/user-event": "14.5.2", "@vitest/expect": "2.0.5", "@vitest/spy": "2.0.5", diff --git a/code/yarn.lock b/code/yarn.lock index ac241ea7a2a4..fb93a6098dfc 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6764,8 +6764,8 @@ __metadata: dependencies: "@storybook/csf": "npm:^0.1.11" "@storybook/instrumenter": "workspace:*" - "@testing-library/dom": "npm:10.1.0" - "@testing-library/jest-dom": "npm:6.4.5" + "@testing-library/dom": "npm:10.4.0" + "@testing-library/jest-dom": "npm:6.4.8" "@testing-library/user-event": "npm:14.5.2" "@vitest/expect": "npm:2.0.5" "@vitest/spy": "npm:2.0.5" @@ -6992,23 +6992,7 @@ __metadata: languageName: node linkType: hard -"@testing-library/dom@npm:10.1.0": - version: 10.1.0 - resolution: "@testing-library/dom@npm:10.1.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: 10c0/81f0e0a510d24e458c3af17777960ed678fb4fe464903ef8ec9ed816c9794fc69a673ea94f87b9e054b181383c51814605451dbf4fd9df93d0d8f24b4859990d - languageName: node - linkType: hard - -"@testing-library/dom@npm:^10.4.0": +"@testing-library/dom@npm:10.4.0, @testing-library/dom@npm:^10.4.0": version: 10.4.0 resolution: "@testing-library/dom@npm:10.4.0" dependencies: @@ -7040,7 +7024,23 @@ __metadata: languageName: node linkType: hard -"@testing-library/jest-dom@npm:6.4.5, @testing-library/jest-dom@npm:^6.4.1": +"@testing-library/jest-dom@npm:6.4.8, @testing-library/jest-dom@npm:^6.4.8": + version: 6.4.8 + resolution: "@testing-library/jest-dom@npm:6.4.8" + dependencies: + "@adobe/css-tools": "npm:^4.4.0" + "@babel/runtime": "npm:^7.9.2" + aria-query: "npm:^5.0.0" + chalk: "npm:^3.0.0" + css.escape: "npm:^1.5.1" + dom-accessibility-api: "npm:^0.6.3" + lodash: "npm:^4.17.21" + redent: "npm:^3.0.0" + checksum: 10c0/8eececcac1ec7728c038b9d9eabfc8b8dcf4dc1e997c959450bff16d946e3344275862b84bfe0e1d1beb3817368e782464816aca47ab5c94f0ebf66db71df55d + languageName: node + linkType: hard + +"@testing-library/jest-dom@npm:^6.4.1": version: 6.4.5 resolution: "@testing-library/jest-dom@npm:6.4.5" dependencies: @@ -7073,22 +7073,6 @@ __metadata: languageName: node linkType: hard -"@testing-library/jest-dom@npm:^6.4.8": - version: 6.4.8 - resolution: "@testing-library/jest-dom@npm:6.4.8" - dependencies: - "@adobe/css-tools": "npm:^4.4.0" - "@babel/runtime": "npm:^7.9.2" - aria-query: "npm:^5.0.0" - chalk: "npm:^3.0.0" - css.escape: "npm:^1.5.1" - dom-accessibility-api: "npm:^0.6.3" - lodash: "npm:^4.17.21" - redent: "npm:^3.0.0" - checksum: 10c0/8eececcac1ec7728c038b9d9eabfc8b8dcf4dc1e997c959450bff16d946e3344275862b84bfe0e1d1beb3817368e782464816aca47ab5c94f0ebf66db71df55d - languageName: node - linkType: hard - "@testing-library/react@npm:^14.0.0": version: 14.1.2 resolution: "@testing-library/react@npm:14.1.2" From 2eea1bf13c077e787751b5458e051b5219b7fcd6 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Mon, 5 Aug 2024 13:42:51 +0200 Subject: [PATCH 042/135] Update all testing-library packagages in the monorepo --- scripts/package.json | 9 +-- scripts/yarn.lock | 176 +++++++++++++------------------------------ 2 files changed, 58 insertions(+), 127 deletions(-) diff --git a/scripts/package.json b/scripts/package.json index 6f06a1dd3e57..f4dd23af0d75 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -53,7 +53,6 @@ ] }, "resolutions": { - "@testing-library/jest-dom": "^5.11.9", "esbuild": "^0.23.0", "serialize-javascript": "^3.1.0", "type-fest": "~2.19" @@ -67,10 +66,10 @@ "@octokit/request": "^8.1.2", "@storybook/eslint-config-storybook": "^4.0.0", "@storybook/linter-config": "^4.0.0", - "@testing-library/dom": "^9.3.0", - "@testing-library/jest-dom": "^5.11.9", - "@testing-library/react": "^14.0.0", - "@testing-library/user-event": "^14.4.3", + "@testing-library/dom": "^10.4.0", + "@testing-library/jest-dom": "^6.4.8", + "@testing-library/react": "^16.0.0", + "@testing-library/user-event": "^14.5.2", "@types/bun": "^1.1.6", "@types/cross-spawn": "^6.0.6", "@types/detect-port": "^1.3.5", diff --git a/scripts/yarn.lock b/scripts/yarn.lock index 9213436c7893..4c3aa14cafea 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -32,10 +32,10 @@ __metadata: languageName: node linkType: hard -"@adobe/css-tools@npm:^4.0.1": - version: 4.3.1 - resolution: "@adobe/css-tools@npm:4.3.1" - checksum: 10c0/05672719b544cc0c21ae3ed0eb6349bf458e9d09457578eeeb07cf0f696469ac6417e9c9be1b129e5d6a18098a061c1db55b2275591760ef30a79822436fcbfa +"@adobe/css-tools@npm:^4.4.0": + version: 4.4.0 + resolution: "@adobe/css-tools@npm:4.4.0" + checksum: 10c0/d65ddc719389bf469097df80fb16a8af48a973dea4b57565789d70ac8e7ab4987e6dc0095da3ed5dc16c1b6f8960214a7590312eeda8abd543d91fd0f59e6c94 languageName: node linkType: hard @@ -1428,10 +1428,10 @@ __metadata: "@octokit/request": "npm:^8.1.2" "@storybook/eslint-config-storybook": "npm:^4.0.0" "@storybook/linter-config": "npm:^4.0.0" - "@testing-library/dom": "npm:^9.3.0" - "@testing-library/jest-dom": "npm:^5.11.9" - "@testing-library/react": "npm:^14.0.0" - "@testing-library/user-event": "npm:^14.4.3" + "@testing-library/dom": "npm:^10.4.0" + "@testing-library/jest-dom": "npm:^6.4.8" + "@testing-library/react": "npm:^16.0.0" + "@testing-library/user-event": "npm:^14.5.2" "@types/bun": "npm:^1.1.6" "@types/cross-spawn": "npm:^6.0.6" "@types/detect-port": "npm:^1.3.5" @@ -1563,59 +1563,64 @@ __metadata: languageName: node linkType: hard -"@testing-library/dom@npm:^9.0.0, @testing-library/dom@npm:^9.3.0": - version: 9.3.3 - resolution: "@testing-library/dom@npm:9.3.3" +"@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.1.3" + 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: 10c0/c3bbd67503634fd955233dc172531640656701fe35ecb9a83f85e5965874b786452f5e7c26b4f8b3b4fc4379f3a80193c74425b57843ba191f4845e22b0ac483 + checksum: 10c0/0352487720ecd433400671e773df0b84b8268fb3fe8e527cdfd7c11b1365b398b4e0eddba6e7e0c85e8d615f48257753283fccec41f6b986fd6c85f15eb5f84f languageName: node linkType: hard -"@testing-library/jest-dom@npm:^5.11.9": - version: 5.17.0 - resolution: "@testing-library/jest-dom@npm:5.17.0" +"@testing-library/jest-dom@npm:^6.4.8": + version: 6.4.8 + resolution: "@testing-library/jest-dom@npm:6.4.8" dependencies: - "@adobe/css-tools": "npm:^4.0.1" + "@adobe/css-tools": "npm:^4.4.0" "@babel/runtime": "npm:^7.9.2" - "@types/testing-library__jest-dom": "npm:^5.9.1" aria-query: "npm:^5.0.0" chalk: "npm:^3.0.0" css.escape: "npm:^1.5.1" - dom-accessibility-api: "npm:^0.5.6" - lodash: "npm:^4.17.15" + dom-accessibility-api: "npm:^0.6.3" + lodash: "npm:^4.17.21" redent: "npm:^3.0.0" - checksum: 10c0/24e09c5779ea44644945ec26f2e4e5f48aecfe57d469decf2317a3253a5db28d865c55ad0ea4818d8d1df7572a6486c45daa06fa09644a833a7dd84563881939 + checksum: 10c0/8eececcac1ec7728c038b9d9eabfc8b8dcf4dc1e997c959450bff16d946e3344275862b84bfe0e1d1beb3817368e782464816aca47ab5c94f0ebf66db71df55d languageName: node linkType: hard -"@testing-library/react@npm:^14.0.0": - version: 14.0.0 - resolution: "@testing-library/react@npm:14.0.0" +"@testing-library/react@npm:^16.0.0": + version: 16.0.0 + resolution: "@testing-library/react@npm:16.0.0" dependencies: "@babel/runtime": "npm:^7.12.5" - "@testing-library/dom": "npm:^9.0.0" - "@types/react-dom": "npm:^18.0.0" peerDependencies: + "@testing-library/dom": ^10.0.0 + "@types/react": ^18.0.0 + "@types/react-dom": ^18.0.0 react: ^18.0.0 react-dom: ^18.0.0 - checksum: 10c0/81035913024faf18ba7e163418af517b2c3b85aef496fbd6334bda38f6f6dd4072678c6b76c41148b46b7fc846764f875e1156cbfc7643ffa1b62ee069d78951 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 10c0/297f97bf4722dad05f11d9cafd47d387dbdb096fea4b79b876c7466460f0f2e345b55b81b3e37fc81ed8185c528cb53dd8455ca1b6b019b229edf6c796f11c9f languageName: node linkType: hard -"@testing-library/user-event@npm:^14.4.3": - version: 14.5.1 - resolution: "@testing-library/user-event@npm:14.5.1" +"@testing-library/user-event@npm:^14.5.2": + version: 14.5.2 + resolution: "@testing-library/user-event@npm:14.5.2" peerDependencies: "@testing-library/dom": ">=7.21.4" - checksum: 10c0/1e00d6ead23377885b906db6e46e259161a0efb4138f7527481d7435f3c8f65cb7e3eab2900e2ac1886fa6dd03416e773a3a60dea87a9a2086a7127dee315f6f + checksum: 10c0/68a0c2aa28a3c8e6eb05cafee29705438d7d8a9427423ce5064d44f19c29e89b5636de46dd2f28620fb10abba75c67130185bbc3aa23ac1163a227a5f36641e1 languageName: node linkType: hard @@ -1833,7 +1838,7 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:*, @types/jest@npm:^29.5.12": +"@types/jest@npm:^29.5.12": version: 29.5.12 resolution: "@types/jest@npm:29.5.12" dependencies: @@ -1991,7 +1996,7 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.3.0": +"@types/react-dom@npm:^18.3.0": version: 18.3.0 resolution: "@types/react-dom@npm:18.3.0" dependencies: @@ -2059,15 +2064,6 @@ __metadata: languageName: node linkType: hard -"@types/testing-library__jest-dom@npm:^5.9.1": - version: 5.14.9 - resolution: "@types/testing-library__jest-dom@npm:5.14.9" - dependencies: - "@types/jest": "npm:*" - checksum: 10c0/91f7b15e8813b515912c54da44464fb60ecf21162b7cae2272fcb3918074f4e1387dc2beca1f5041667e77b76b34253c39675ea4e0b3f28f102d8cc87fdba9fa - languageName: node - linkType: hard - "@types/text-table@npm:^0.2.0": version: 0.2.4 resolution: "@types/text-table@npm:0.2.4" @@ -3098,16 +3094,7 @@ __metadata: 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: 10c0/edcbc8044c4663d6f88f785e983e6784f98cb62b4ba1e9dd8d61b725d0203e4cfca38d676aee984c31f354103461102a3d583aa4fbe4fd0a89b679744f4e5faf - languageName: node - linkType: hard - -"aria-query@npm:^5.0.0, aria-query@npm:^5.3.0": +"aria-query@npm:5.3.0, aria-query@npm:^5.0.0, aria-query@npm:^5.3.0": version: 5.3.0 resolution: "aria-query@npm:5.3.0" dependencies: @@ -3116,7 +3103,7 @@ __metadata: languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1": +"array-buffer-byte-length@npm:^1.0.1": version: 1.0.1 resolution: "array-buffer-byte-length@npm:1.0.1" dependencies: @@ -4545,32 +4532,6 @@ __metadata: languageName: node linkType: hard -"deep-equal@npm:^2.0.5": - version: 2.2.2 - resolution: "deep-equal@npm:2.2.2" - dependencies: - array-buffer-byte-length: "npm:^1.0.0" - call-bind: "npm:^1.0.2" - es-get-iterator: "npm:^1.1.3" - get-intrinsic: "npm:^1.2.1" - 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.0" - 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.9" - checksum: 10c0/07b46a9a848efdab223abc7e3ba612ef9168d88970c3400df185d5840a30ca384749c996ae5d7af844d6b27c42587fb73a4445c63e38aac77c2d0ed9a63faa87 - languageName: node - linkType: hard - "deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" @@ -4767,13 +4728,20 @@ __metadata: languageName: node linkType: hard -"dom-accessibility-api@npm:^0.5.6, dom-accessibility-api@npm:^0.5.9": +"dom-accessibility-api@npm:^0.5.9": version: 0.5.16 resolution: "dom-accessibility-api@npm:0.5.16" checksum: 10c0/b2c2eda4fae568977cdac27a9f0c001edf4f95a6a6191dfa611e3721db2478d1badc01db5bb4fa8a848aeee13e442a6c2a4386d65ec65a1436f24715a2f8d053 languageName: node linkType: hard +"dom-accessibility-api@npm:^0.6.3": + version: 0.6.3 + resolution: "dom-accessibility-api@npm:0.6.3" + checksum: 10c0/10bee5aa514b2a9a37c87cd81268db607a2e933a050074abc2f6fa3da9080ebed206a320cbc123567f2c3087d22292853bdfdceaffdd4334ffe2af9510b29360 + languageName: node + linkType: hard + "dom-serializer@npm:^1.0.1": version: 1.4.1 resolution: "dom-serializer@npm:1.4.1" @@ -5153,23 +5121,6 @@ __metadata: 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: 10c0/ebd11effa79851ea75d7f079405f9d0dc185559fd65d986c6afea59a0ff2d46c2ed8675f19f03dce7429d7f6c14ff9aede8d121fbab78d75cfda6a263030bac0 - languageName: node - linkType: hard - "es-iterator-helpers@npm:^1.0.15, es-iterator-helpers@npm:^1.0.19": version: 1.0.19 resolution: "es-iterator-helpers@npm:1.0.19" @@ -7320,7 +7271,7 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.7": +"internal-slot@npm:^1.0.7": version: 1.0.7 resolution: "internal-slot@npm:1.0.7" dependencies: @@ -7354,7 +7305,7 @@ __metadata: languageName: node linkType: hard -"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": +"is-arguments@npm:^1.0.4": version: 1.1.1 resolution: "is-arguments@npm:1.1.1" dependencies: @@ -7364,7 +7315,7 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4": +"is-array-buffer@npm:^3.0.4": version: 3.0.4 resolution: "is-array-buffer@npm:3.0.4" dependencies: @@ -7593,7 +7544,7 @@ __metadata: languageName: node linkType: hard -"is-map@npm:^2.0.1, is-map@npm:^2.0.2": +"is-map@npm:^2.0.1": version: 2.0.2 resolution: "is-map@npm:2.0.2" checksum: 10c0/119ff9137a37fd131a72fab3f4ab8c9d6a24b0a1ee26b4eff14dc625900d8675a97785eea5f4174265e2006ed076cc24e89f6e57ebd080a48338d914ec9168a5 @@ -7684,7 +7635,7 @@ __metadata: languageName: node linkType: hard -"is-set@npm:^2.0.1, is-set@npm:^2.0.2": +"is-set@npm:^2.0.1": version: 2.0.2 resolution: "is-set@npm:2.0.2" checksum: 10c0/5f8bd1880df8c0004ce694e315e6e1e47a3452014be792880bb274a3b2cdb952fdb60789636ca6e084c7947ca8b7ae03ccaf54c93a7fcfed228af810559e5432 @@ -10071,16 +10022,6 @@ __metadata: languageName: node linkType: hard -"object-is@npm:^1.1.5": - version: 1.1.5 - resolution: "object-is@npm:1.1.5" - dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.1.3" - checksum: 10c0/8c263fb03fc28f1ffb54b44b9147235c5e233dc1ca23768e7d2569740b5d860154d7cc29a30220fe28ed6d8008e2422aefdebfe987c103e1c5d190cf02d9d886 - languageName: node - linkType: hard - "object-keys@npm:^1.1.1": version: 1.1.1 resolution: "object-keys@npm:1.1.1" @@ -11361,7 +11302,7 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.0, regexp.prototype.flags@npm:^1.5.2": +"regexp.prototype.flags@npm:^1.5.2": version: 1.5.2 resolution: "regexp.prototype.flags@npm:1.5.2" dependencies: @@ -12594,15 +12535,6 @@ __metadata: languageName: node linkType: hard -"stop-iteration-iterator@npm:^1.0.0": - version: 1.0.0 - resolution: "stop-iteration-iterator@npm:1.0.0" - dependencies: - internal-slot: "npm:^1.0.4" - checksum: 10c0/c4158d6188aac510d9e92925b58709207bd94699e9c31186a040c80932a687f84a51356b5895e6dc72710aad83addb9411c22171832c9ae0e6e11b7d61b0dfb9 - languageName: node - linkType: hard - "stream-events@npm:^1.0.5": version: 1.0.5 resolution: "stream-events@npm:1.0.5" From 1876101cf5f2135fa1af9974b047b1407e3e091e Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Mon, 5 Aug 2024 14:06:45 +0200 Subject: [PATCH 043/135] remove unecessary patch --- .../@vitest-expect-npm-1.6.0-0e382f8212.patch | 42 ------------------- 1 file changed, 42 deletions(-) delete mode 100644 code/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch diff --git a/code/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch b/code/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch deleted file mode 100644 index 04c3bd5cfd7a..000000000000 --- a/code/.yarn/patches/@vitest-expect-npm-1.6.0-0e382f8212.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git a/dist/index.js b/dist/index.js -index 13af149aa3c44f52dd5c5a80db3bf5689dfe15ea..1d111032c3fdc104723e19dea49db62be8b79b94 100644 ---- a/dist/index.js -+++ b/dist/index.js -@@ -6,26 +6,32 @@ import { processError } from '@vitest/utils/error'; - import { util } from 'chai'; - - const MATCHERS_OBJECT = Symbol.for("matchers-object"); --const JEST_MATCHERS_OBJECT = Symbol.for("$$jest-matchers-object"); -+// Patched this symbol for storybook, so that @storybook/test can be used in a jest environment as well. -+// Otherwise, vitest will override global jest matchers, and crash. -+const JEST_MATCHERS_OBJECT = Symbol.for("$$jest-matchers-object-storybook"); - const GLOBAL_EXPECT = Symbol.for("expect-global"); - const ASYMMETRIC_MATCHERS_OBJECT = Symbol.for("asymmetric-matchers-object"); - - if (!Object.prototype.hasOwnProperty.call(globalThis, MATCHERS_OBJECT)) { - const globalState = /* @__PURE__ */ new WeakMap(); -- const matchers = /* @__PURE__ */ Object.create(null); -- const customEqualityTesters = []; -- const assymetricMatchers = /* @__PURE__ */ Object.create(null); - Object.defineProperty(globalThis, MATCHERS_OBJECT, { - get: () => globalState - }); -+} -+if (!Object.prototype.hasOwnProperty.call(globalThis, JEST_MATCHERS_OBJECT)) { -+ const matchers = /* @__PURE__ */ Object.create(null); -+ const customEqualityTesters = []; - Object.defineProperty(globalThis, JEST_MATCHERS_OBJECT, { - configurable: true, - get: () => ({ -- state: globalState.get(globalThis[GLOBAL_EXPECT]), -+ state: globalThis[MATCHERS_OBJECT].get(globalThis[GLOBAL_EXPECT]), - matchers, - customEqualityTesters - }) - }); -+} -+if (!Object.prototype.hasOwnProperty.call(globalThis, ASYMMETRIC_MATCHERS_OBJECT)) { -+ const assymetricMatchers = /* @__PURE__ */ Object.create(null); - Object.defineProperty(globalThis, ASYMMETRIC_MATCHERS_OBJECT, { - get: () => assymetricMatchers - }); From 259873081885619a090bb04a6f583a1fd33a7627 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Mon, 5 Aug 2024 14:32:39 +0200 Subject: [PATCH 044/135] Fix dep issues --- code/yarn.lock | 93 +--------- scripts/package.json | 2 +- scripts/yarn.lock | 172 +++++++----------- .../nextjs/package.json | 4 +- 4 files changed, 74 insertions(+), 197 deletions(-) diff --git a/code/yarn.lock b/code/yarn.lock index fb93a6098dfc..9e69e11f5201 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -12,13 +12,6 @@ __metadata: languageName: node linkType: hard -"@adobe/css-tools@npm:^4.3.2": - version: 4.3.3 - resolution: "@adobe/css-tools@npm:4.3.3" - checksum: 10c0/e76e712df713964b87cdf2aca1f0477f19bebd845484d5fcba726d3ec7782366e2f26ec8cb2dcfaf47081a5c891987d8a9f5c3f30d11e1eb3c1848adc27fcb24 - languageName: node - linkType: hard - "@adobe/css-tools@npm:^4.4.0": version: 4.4.0 resolution: "@adobe/css-tools@npm:4.4.0" @@ -3625,14 +3618,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15": - version: 1.4.15 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" - checksum: 10c0/0c6b5ae663087558039052a626d2d7ed5208da36cfd707dcc5cea4a07cfc918248403dcb5989a8f7afaf245ce0573b7cc6fd94c4a30453bd10e44d9363940ba5 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.5.0": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15, @jridgewell/sourcemap-codec@npm:^1.5.0": version: 1.5.0 resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 @@ -7024,7 +7010,7 @@ __metadata: languageName: node linkType: hard -"@testing-library/jest-dom@npm:6.4.8, @testing-library/jest-dom@npm:^6.4.8": +"@testing-library/jest-dom@npm:6.4.8, @testing-library/jest-dom@npm:^6.4.1, @testing-library/jest-dom@npm:^6.4.8": version: 6.4.8 resolution: "@testing-library/jest-dom@npm:6.4.8" dependencies: @@ -7040,39 +7026,6 @@ __metadata: languageName: node linkType: hard -"@testing-library/jest-dom@npm:^6.4.1": - version: 6.4.5 - resolution: "@testing-library/jest-dom@npm:6.4.5" - dependencies: - "@adobe/css-tools": "npm:^4.3.2" - "@babel/runtime": "npm:^7.9.2" - aria-query: "npm:^5.0.0" - chalk: "npm:^3.0.0" - css.escape: "npm:^1.5.1" - dom-accessibility-api: "npm:^0.6.3" - lodash: "npm:^4.17.21" - redent: "npm:^3.0.0" - peerDependencies: - "@jest/globals": ">= 28" - "@types/bun": "*" - "@types/jest": ">= 28" - jest: ">= 28" - vitest: ">= 0.32" - peerDependenciesMeta: - "@jest/globals": - optional: true - "@types/bun": - optional: true - "@types/jest": - optional: true - jest: - optional: true - vitest: - optional: true - checksum: 10c0/4cfdd44e2abab2b9d399c47cbfe686729bb65160d7df0f9e2329aaaea7702f6e852a9eefb29b468f00c1e5a5274b684f8cac76959d33299dfa909ba007ea191d - languageName: node - linkType: hard - "@testing-library/react@npm:^14.0.0": version: 14.1.2 resolution: "@testing-library/react@npm:14.1.2" @@ -12381,15 +12334,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": - version: 4.3.5 - resolution: "debug@npm:4.3.5" +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.3.5": + version: 4.3.6 + resolution: "debug@npm:4.3.6" dependencies: ms: "npm:2.1.2" peerDependenciesMeta: supports-color: optional: true - checksum: 10c0/082c375a2bdc4f4469c99f325ff458adad62a3fc2c482d59923c260cb08152f34e2659f72b3767db8bb2f21ca81a60a42d1019605a412132d7b9f59363a005cc + checksum: 10c0/3293416bff072389c101697d4611c402a6bacd1900ac20c0492f61a9cdd6b3b29750fc7f5e299f8058469ef60ff8fb79b86395a30374fbd2490113c1c7112285 languageName: node linkType: hard @@ -12414,18 +12367,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.3.5": - version: 4.3.6 - resolution: "debug@npm:4.3.6" - dependencies: - ms: "npm:2.1.2" - peerDependenciesMeta: - supports-color: - optional: true - checksum: 10c0/3293416bff072389c101697d4611c402a6bacd1900ac20c0492f61a9cdd6b3b29750fc7f5e299f8058469ef60ff8fb79b86395a30374fbd2490113c1c7112285 - languageName: node - linkType: hard - "decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" @@ -18849,7 +18790,7 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:0.30.8, magic-string@npm:^0.30.0, magic-string@npm:^0.30.4, magic-string@npm:^0.30.5": +"magic-string@npm:0.30.8": version: 0.30.8 resolution: "magic-string@npm:0.30.8" dependencies: @@ -18876,7 +18817,7 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.10": +"magic-string@npm:^0.30.0, magic-string@npm:^0.30.10, magic-string@npm:^0.30.4, magic-string@npm:^0.30.5": version: 0.30.11 resolution: "magic-string@npm:0.30.11" dependencies: @@ -21978,14 +21919,7 @@ __metadata: languageName: node linkType: hard -"pathe@npm:^1.1.1": - version: 1.1.1 - resolution: "pathe@npm:1.1.1" - checksum: 10c0/3ae5a0529c3415d91c3ac9133f52cffea54a0dd46892fe059f4b80faf36fd207957d4594bdc87043b65d0761b1e5728f81f46bafff3b5302da4e2e48889b8c0e - languageName: node - linkType: hard - -"pathe@npm:^1.1.2": +"pathe@npm:^1.1.1, pathe@npm:^1.1.2": version: 1.1.2 resolution: "pathe@npm:1.1.2" checksum: 10c0/64ee0a4e587fb0f208d9777a6c56e4f9050039268faaaaecd50e959ef01bf847b7872785c36483fa5cdcdbdfdb31fef2ff222684d4fc21c330ab60395c681897 @@ -25491,14 +25425,7 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^3.5.0": - version: 3.6.0 - resolution: "std-env@npm:3.6.0" - checksum: 10c0/a540b8cb011bef4bf5905e1e28f24ce37124f9d001c69224ee0025d3600144e6847bac62cd38fbd98148ab4d26ab0682b9b4d42bc863cd1cca0b9807f18aadba - languageName: node - linkType: hard - -"std-env@npm:^3.7.0": +"std-env@npm:^3.5.0, std-env@npm:^3.7.0": version: 3.7.0 resolution: "std-env@npm:3.7.0" checksum: 10c0/60edf2d130a4feb7002974af3d5a5f3343558d1ccf8d9b9934d225c638606884db4a20d2fe6440a09605bca282af6b042ae8070a10490c0800d69e82e478f41e diff --git a/scripts/package.json b/scripts/package.json index f4dd23af0d75..b190c98fba56 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -94,7 +94,7 @@ "@typescript-eslint/eslint-plugin": "^7.16.0", "@typescript-eslint/experimental-utils": "^5.62.0", "@typescript-eslint/parser": "^7.16.0", - "@vitest/coverage-v8": "^1.6.0", + "@vitest/coverage-v8": "^2.0.5", "ansi-regex": "^6.0.1", "browser-assert": "^1.2.1", "chalk": "^4.1.0", diff --git a/scripts/yarn.lock b/scripts/yarn.lock index 4c3aa14cafea..385d2e1ca4f5 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -39,16 +39,6 @@ __metadata: languageName: node linkType: hard -"@ampproject/remapping@npm:^2.2.1": - version: 2.2.1 - resolution: "@ampproject/remapping@npm:2.2.1" - dependencies: - "@jridgewell/gen-mapping": "npm:^0.3.0" - "@jridgewell/trace-mapping": "npm:^0.3.9" - checksum: 10c0/92ce5915f8901d8c7cd4f4e6e2fe7b9fd335a29955b400caa52e0e5b12ca3796ada7c2f10e78c9c5b0f9c2539dff0ffea7b19850a56e1487aa083531e1e46d43 - languageName: node - linkType: hard - "@ampproject/remapping@npm:^2.3.0": version: 2.3.0 resolution: "@ampproject/remapping@npm:2.3.0" @@ -69,14 +59,14 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/helper-string-parser@npm:7.23.4" - checksum: 10c0/f348d5637ad70b6b54b026d6544bd9040f78d24e7ec245a0fc42293968181f6ae9879c22d89744730d246ce8ec53588f716f102addd4df8bbc79b73ea10004ac +"@babel/helper-string-parser@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-string-parser@npm:7.24.8" + checksum: 10c0/6361f72076c17fabf305e252bf6d580106429014b3ab3c1f5c4eb3e6d465536ea6b670cc0e9a637a77a9ad40454d3e41361a2909e70e305116a23d68ce094c08 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.20, @babel/helper-validator-identifier@npm:^7.24.7": +"@babel/helper-validator-identifier@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-validator-identifier@npm:7.24.7" checksum: 10c0/87ad608694c9477814093ed5b5c080c2e06d44cb1924ae8320474a74415241223cc2a725eea2640dd783ff1e3390e5f95eede978bc540e870053152e58f1d651 @@ -95,12 +85,14 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.23.6": - version: 7.23.9 - resolution: "@babel/parser@npm:7.23.9" +"@babel/parser@npm:^7.24.4": + version: 7.25.3 + resolution: "@babel/parser@npm:7.25.3" + dependencies: + "@babel/types": "npm:^7.25.2" bin: parser: ./bin/babel-parser.js - checksum: 10c0/7df97386431366d4810538db4b9ec538f4377096f720c0591c7587a16f6810e62747e9fbbfa1ff99257fd4330035e4fb1b5b77c7bd3b97ce0d2e3780a6618975 + checksum: 10c0/874b01349aedb805d6694f867a752fdc7469778fad76aca4548d2cc6ce96087c3ba5fb917a6f8d05d2d1a74aae309b5f50f1a4dba035f5a2c9fcfe6e106d2c4e languageName: node linkType: hard @@ -113,14 +105,14 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.23.6, @babel/types@npm:^7.8.3": - version: 7.23.9 - resolution: "@babel/types@npm:7.23.9" +"@babel/types@npm:^7.24.0, @babel/types@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/types@npm:7.25.2" dependencies: - "@babel/helper-string-parser": "npm:^7.23.4" - "@babel/helper-validator-identifier": "npm:^7.22.20" + "@babel/helper-string-parser": "npm:^7.24.8" + "@babel/helper-validator-identifier": "npm:^7.24.7" to-fast-properties: "npm:^2.0.0" - checksum: 10c0/edc7bb180ce7e4d2aea10c6972fb10474341ac39ba8fdc4a27ffb328368dfdfbf40fca18e441bbe7c483774500d5c05e222cec276c242e952853dcaf4eb884f7 + checksum: 10c0/e489435856be239f8cc1120c90a197e4c2865385121908e5edb7223cfdff3768cba18f489adfe0c26955d9e7bbb1fb10625bc2517505908ceb0af848989bd864 languageName: node linkType: hard @@ -587,18 +579,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": - version: 0.3.3 - resolution: "@jridgewell/gen-mapping@npm:0.3.3" - dependencies: - "@jridgewell/set-array": "npm:^1.0.1" - "@jridgewell/sourcemap-codec": "npm:^1.4.10" - "@jridgewell/trace-mapping": "npm:^0.3.9" - checksum: 10c0/376fc11cf5a967318ba3ddd9d8e91be528eab6af66810a713c49b0c3f8dc67e9949452c51c38ab1b19aa618fb5e8594da5a249977e26b1e7fea1ee5a1fcacc74 - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.5": +"@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" dependencies: @@ -616,13 +597,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/set-array@npm:^1.0.1": - version: 1.1.2 - resolution: "@jridgewell/set-array@npm:1.1.2" - checksum: 10c0/bc7ab4c4c00470de4e7562ecac3c0c84f53e7ee8a711e546d67c47da7febe7c45cd67d4d84ee3c9b2c05ae8e872656cdded8a707a283d30bd54fbc65aef821ab - languageName: node - linkType: hard - "@jridgewell/set-array@npm:^1.2.1": version: 1.2.1 resolution: "@jridgewell/set-array@npm:1.2.1" @@ -637,7 +611,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.9": +"@jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -1457,7 +1431,7 @@ __metadata: "@typescript-eslint/experimental-utils": "npm:^5.62.0" "@typescript-eslint/parser": "npm:^7.16.0" "@verdaccio/types": "npm:^10.8.0" - "@vitest/coverage-v8": "npm:^1.6.0" + "@vitest/coverage-v8": "npm:^2.0.5" ansi-regex: "npm:^6.0.1" browser-assert: "npm:^1.2.1" chalk: "npm:^4.1.0" @@ -2698,26 +2672,25 @@ __metadata: languageName: node linkType: hard -"@vitest/coverage-v8@npm:^1.6.0": - version: 1.6.0 - resolution: "@vitest/coverage-v8@npm:1.6.0" +"@vitest/coverage-v8@npm:^2.0.5": + version: 2.0.5 + resolution: "@vitest/coverage-v8@npm:2.0.5" dependencies: - "@ampproject/remapping": "npm:^2.2.1" + "@ampproject/remapping": "npm:^2.3.0" "@bcoe/v8-coverage": "npm:^0.2.3" - debug: "npm:^4.3.4" + debug: "npm:^4.3.5" istanbul-lib-coverage: "npm:^3.2.2" istanbul-lib-report: "npm:^3.0.1" - istanbul-lib-source-maps: "npm:^5.0.4" - istanbul-reports: "npm:^3.1.6" - magic-string: "npm:^0.30.5" - magicast: "npm:^0.3.3" - picocolors: "npm:^1.0.0" - std-env: "npm:^3.5.0" - strip-literal: "npm:^2.0.0" - test-exclude: "npm:^6.0.0" + istanbul-lib-source-maps: "npm:^5.0.6" + istanbul-reports: "npm:^3.1.7" + magic-string: "npm:^0.30.10" + magicast: "npm:^0.3.4" + std-env: "npm:^3.7.0" + test-exclude: "npm:^7.0.1" + tinyrainbow: "npm:^1.2.0" peerDependencies: - vitest: 1.6.0 - checksum: 10c0/a7beaf2a88b628a9dc16ddca7589f2b2e4681598e6788d68423dffbb06c608edc52b2dd421ada069eb3cfd83f8f592ddd6e8b8db2d037bf13965a56c5e5835ac + vitest: 2.0.5 + checksum: 10c0/a95eef744d2a541f5d9d0287243cbcb596802c04e0250404947e36a669c477abe86607afb8d8ddb3d31bf12633b3ffa3d9a313e489e4ab7998b3c1620ad60e00 languageName: node linkType: hard @@ -6581,7 +6554,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.4.5": +"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.4.1, glob@npm:^10.4.5": version: 10.4.5 resolution: "glob@npm:10.4.5" dependencies: @@ -7808,24 +7781,24 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-source-maps@npm:^5.0.4": - version: 5.0.4 - resolution: "istanbul-lib-source-maps@npm:5.0.4" +"istanbul-lib-source-maps@npm:^5.0.6": + version: 5.0.6 + resolution: "istanbul-lib-source-maps@npm:5.0.6" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.23" debug: "npm:^4.1.1" istanbul-lib-coverage: "npm:^3.0.0" - checksum: 10c0/48b48294590675005ba439888a53157fc71a99d78321428f3ce5f64e28cdfb6bc6eb45871333f448437118ef56a0ef371f4958163e2c2d066d3a703415a71b2e + checksum: 10c0/ffe75d70b303a3621ee4671554f306e0831b16f39ab7f4ab52e54d356a5d33e534d97563e318f1333a6aae1d42f91ec49c76b6cd3f3fb378addcb5c81da0255f languageName: node linkType: hard -"istanbul-reports@npm:^3.1.6": - version: 3.1.6 - resolution: "istanbul-reports@npm:3.1.6" +"istanbul-reports@npm:^3.1.7": + version: 3.1.7 + resolution: "istanbul-reports@npm:3.1.7" dependencies: html-escaper: "npm:^2.0.0" istanbul-lib-report: "npm:^3.0.0" - checksum: 10c0/ec3f1bdbc51b3e0b325a5b9f4ad31a247697f31001df4e81075f7980413f14da1b5adfec574fd156efd3b0464023f61320f6718efc66ee72b32d89611cef99dd + checksum: 10c0/a379fadf9cf8dc5dfe25568115721d4a7eb82fbd50b005a6672aff9c6989b20cc9312d7865814e0859cd8df58cbf664482e1d3604be0afde1f7fc3ccc1394a51 languageName: node linkType: hard @@ -7965,13 +7938,6 @@ __metadata: languageName: node linkType: hard -"js-tokens@npm:^9.0.0": - version: 9.0.0 - resolution: "js-tokens@npm:9.0.0" - checksum: 10c0/4ad1c12f47b8c8b2a3a99e29ef338c1385c7b7442198a425f3463f3537384dab6032012791bfc2f056ea5ecdb06b1ed4f70e11a3ab3f388d3dcebfe16a52b27d - languageName: node - linkType: hard - "js-yaml@npm:3.14.1, js-yaml@npm:^3.10.0": version: 3.14.1 resolution: "js-yaml@npm:3.14.1" @@ -8599,7 +8565,7 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.10, magic-string@npm:^0.30.5": +"magic-string@npm:^0.30.10": version: 0.30.10 resolution: "magic-string@npm:0.30.10" dependencies: @@ -8608,14 +8574,14 @@ __metadata: languageName: node linkType: hard -"magicast@npm:^0.3.3": - version: 0.3.3 - resolution: "magicast@npm:0.3.3" +"magicast@npm:^0.3.4": + version: 0.3.4 + resolution: "magicast@npm:0.3.4" dependencies: - "@babel/parser": "npm:^7.23.6" - "@babel/types": "npm:^7.23.6" - source-map-js: "npm:^1.0.2" - checksum: 10c0/2eeba19545ac4328433be817bd81fcfa8a517ec67599260541e13ce5ce18b27ff8830f1b87d54a1392d408d1b96e44938bf026920f0110edbdfecc96980919b3 + "@babel/parser": "npm:^7.24.4" + "@babel/types": "npm:^7.24.0" + source-map-js: "npm:^1.2.0" + checksum: 10c0/7ebaaac397b13c31ca05e6d9649296751d76749b945d10a0800107872119fbdf267acdb604571d25e38ec6fd7ab3568a951b6e76eaef1caba9eaa11778fd9783 languageName: node linkType: hard @@ -12379,10 +12345,10 @@ __metadata: languageName: node linkType: hard -"source-map-js@npm:^1.0.2": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: 10c0/32f2dfd1e9b7168f9a9715eb1b4e21905850f3b50cf02cf476e47e4eebe8e6b762b63a64357896aa29b37e24922b4282df0f492e0d2ace572b43d15525976ff8 +"source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.0": + version: 1.2.0 + resolution: "source-map-js@npm:1.2.0" + checksum: 10c0/7e5f896ac10a3a50fe2898e5009c58ff0dc102dcb056ed27a354623a0ece8954d4b2649e1a1b2b52ef2e161d26f8859c7710350930751640e71e374fe2d321a4 languageName: node linkType: hard @@ -12512,13 +12478,6 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^3.5.0": - version: 3.6.0 - resolution: "std-env@npm:3.6.0" - checksum: 10c0/a540b8cb011bef4bf5905e1e28f24ce37124f9d001c69224ee0025d3600144e6847bac62cd38fbd98148ab4d26ab0682b9b4d42bc863cd1cca0b9807f18aadba - languageName: node - linkType: hard - "std-env@npm:^3.7.0": version: 3.7.0 resolution: "std-env@npm:3.7.0" @@ -12760,15 +12719,6 @@ __metadata: languageName: node linkType: hard -"strip-literal@npm:^2.0.0": - version: 2.1.0 - resolution: "strip-literal@npm:2.1.0" - dependencies: - js-tokens: "npm:^9.0.0" - checksum: 10c0/bc8b8c8346125ae3c20fcdaf12e10a498ff85baf6f69597b4ab2b5fbf2e58cfd2827f1a44f83606b852da99a5f6c8279770046ddea974c510c17c98934c9cc24 - languageName: node - linkType: hard - "strong-log-transformer@npm:^2.1.0": version: 2.1.0 resolution: "strong-log-transformer@npm:2.1.0" @@ -12966,14 +12916,14 @@ __metadata: languageName: node linkType: hard -"test-exclude@npm:^6.0.0": - version: 6.0.0 - resolution: "test-exclude@npm:6.0.0" +"test-exclude@npm:^7.0.1": + version: 7.0.1 + resolution: "test-exclude@npm:7.0.1" dependencies: "@istanbuljs/schema": "npm:^0.1.2" - glob: "npm:^7.1.4" - minimatch: "npm:^3.0.4" - checksum: 10c0/019d33d81adff3f9f1bfcff18125fb2d3c65564f437d9be539270ee74b994986abb8260c7c2ce90e8f30162178b09dbbce33c6389273afac4f36069c48521f57 + glob: "npm:^10.4.1" + minimatch: "npm:^9.0.4" + checksum: 10c0/6d67b9af4336a2e12b26a68c83308c7863534c65f27ed4ff7068a56f5a58f7ac703e8fc80f698a19bb154fd8f705cdf7ec347d9512b2c522c737269507e7b263 languageName: node linkType: hard diff --git a/test-storybooks/portable-stories-kitchen-sink/nextjs/package.json b/test-storybooks/portable-stories-kitchen-sink/nextjs/package.json index a920943542af..5db2c361fc4b 100644 --- a/test-storybooks/portable-stories-kitchen-sink/nextjs/package.json +++ b/test-storybooks/portable-stories-kitchen-sink/nextjs/package.json @@ -92,8 +92,8 @@ "@storybook/nextjs": "^8.0.0", "@storybook/react": "^8.0.0", "@storybook/test": "^8.0.0", - "@testing-library/jest-dom": "6.4.5", - "@testing-library/react": "^14.2.1", + "@testing-library/jest-dom": "6.4.8", + "@testing-library/react": "^16.0.0", "@types/react": "^18.2.55", "@types/react-dom": "^18.2.19", "@typescript-eslint/eslint-plugin": "^6.21.0", From ea9321efb38abd2d0ddd1c4cf87b3a56ce90e386 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Mon, 5 Aug 2024 14:37:13 +0200 Subject: [PATCH 045/135] Fix dep issues --- .../react/package.json | 4 +- .../react/yarn.lock | 11339 ++++++++++++++++ 2 files changed, 11341 insertions(+), 2 deletions(-) diff --git a/test-storybooks/portable-stories-kitchen-sink/react/package.json b/test-storybooks/portable-stories-kitchen-sink/react/package.json index 7050a8a23e8a..a66af5c74106 100644 --- a/test-storybooks/portable-stories-kitchen-sink/react/package.json +++ b/test-storybooks/portable-stories-kitchen-sink/react/package.json @@ -95,7 +95,7 @@ "@storybook/test": "^8.0.0", "@swc/core": "^1.4.2", "@swc/jest": "^0.2.36", - "@testing-library/jest-dom": "6.4.5", + "@testing-library/jest-dom": "^6.4.0", "@testing-library/react": "^14.2.1", "@types/identity-obj-proxy": "^3", "@types/react": "^18.2.55", @@ -115,4 +115,4 @@ "typescript": "^5.2.2", "vite": "^5.1.1" } -} \ No newline at end of file +} diff --git a/test-storybooks/portable-stories-kitchen-sink/react/yarn.lock b/test-storybooks/portable-stories-kitchen-sink/react/yarn.lock index e69de29bb2d1..e9c164d0414d 100644 --- a/test-storybooks/portable-stories-kitchen-sink/react/yarn.lock +++ b/test-storybooks/portable-stories-kitchen-sink/react/yarn.lock @@ -0,0 +1,11339 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10 + +"@adobe/css-tools@npm:^4.4.0": + version: 4.4.0 + resolution: "@adobe/css-tools@npm:4.4.0" + checksum: 10/9c6315fe9efa5075d6ddb6ded7a1424bc9c41a01f2314b6bdcc368723985fe161008d03ddcc2b27b2da50cb9c14190fbce965d15cefe5f9a31bdd43f35b52115 + languageName: node + linkType: hard + +"@ampproject/remapping@npm:^2.2.0": + version: 2.3.0 + resolution: "@ampproject/remapping@npm:2.3.0" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10/f3451525379c68a73eb0a1e65247fbf28c0cccd126d93af21c75fceff77773d43c0d4a2d51978fb131aff25b5f2cb41a9fe48cc296e61ae65e679c4f6918b0ab + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/code-frame@npm:7.24.7" + dependencies: + "@babel/highlight": "npm:^7.24.7" + picocolors: "npm:^1.0.0" + checksum: 10/4812e94885ba7e3213d49583a155fdffb05292330f0a9b2c41b49288da70cf3c746a3fda0bf1074041a6d741c33f8d7be24be5e96f41ef77395eeddc5c9ff624 + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/compat-data@npm:7.25.2" + checksum: 10/fd61de9303db3177fc98173571f81f3f551eac5c9f839c05ad02818b11fe77a74daa632abebf7f423fbb4a29976ae9141e0d2bd7517746a0ff3d74cb659ad33a + 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.23.0, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.4, @babel/core@npm:^7.24.5": + version: 7.25.2 + resolution: "@babel/core@npm:7.25.2" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.24.7" + "@babel/generator": "npm:^7.25.0" + "@babel/helper-compilation-targets": "npm:^7.25.2" + "@babel/helper-module-transforms": "npm:^7.25.2" + "@babel/helpers": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.0" + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.2" + "@babel/types": "npm:^7.25.2" + 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/0d6ec10ff430df66f654c089d6f7ef1d9bed0c318ac257ad5f0dfa0caa45666011828ae75f998bcdb279763e892b091b2925d0bc483299e61649d2c7a2245e33 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.7.2": + version: 7.25.0 + resolution: "@babel/generator@npm:7.25.0" + dependencies: + "@babel/types": "npm:^7.25.0" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^2.5.1" + checksum: 10/de3ce2ae7aa0c9585260556ca5a81ce2ce6b8269e3260d7bb4e47a74661af715184ca6343e9906c22e4dd3eed5ce39977dfaf6cded4d2d8968fa096c7cf66697 + languageName: node + linkType: hard + +"@babel/helper-annotate-as-pure@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" + dependencies: + "@babel/types": "npm:^7.24.7" + checksum: 10/a9017bfc1c4e9f2225b967fbf818004703de7cf29686468b54002ffe8d6b56e0808afa20d636819fcf3a34b89ba72f52c11bdf1d69f303928ee10d92752cad95 + languageName: node + linkType: hard + +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.7" + dependencies: + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10/3ddff45d1e086c9c6dcef53ef46521a0c11ddb09fe3ab42dca5af6bb1b1703895a9f4f8056f49fdf53c2dbf6e5cf1ddb4baf17d7e3766c63f051ab8d60a919ee + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.7, @babel/helper-compilation-targets@npm:^7.24.8, @babel/helper-compilation-targets@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/helper-compilation-targets@npm:7.25.2" + dependencies: + "@babel/compat-data": "npm:^7.25.2" + "@babel/helper-validator-option": "npm:^7.24.8" + browserslist: "npm:^4.23.1" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10/eccb2d75923d2d4d596f9ff64716e8664047c4192f1b44c7d5c07701d4a3498ac2587a72ddae1046e65a501bc630eb7df4557958b08ec2dcf5b4a264a052f111 + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.24.7, @babel/helper-create-class-features-plugin@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.0" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + "@babel/helper-member-expression-to-functions": "npm:^7.24.8" + "@babel/helper-optimise-call-expression": "npm:^7.24.7" + "@babel/helper-replace-supers": "npm:^7.25.0" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + "@babel/traverse": "npm:^7.25.0" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/d0f6b63bd3f6da5204200ab7bb43ccc04fe75256aacf53e5dd60d5f56f5cb1bc7c8b315ecbbc4edca53aa71021ac9322376d7a4b2ee57166b8660488766d2784 + languageName: node + linkType: hard + +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.7, @babel/helper-create-regexp-features-plugin@npm:^7.25.0": + version: 7.25.2 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.2" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + regexpu-core: "npm:^5.3.1" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/33dd627eef9e4229aba66789efd8fb7342fc2667b821d4b7947c7294f6d472cf025ff2db9b358a1e03de98376de44e839f0611a456a57127fd6e4b4dbfc96c51 + languageName: node + linkType: hard + +"@babel/helper-define-polyfill-provider@npm:^0.6.2": + version: 0.6.2 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.22.6" + "@babel/helper-plugin-utils": "npm:^7.22.5" + debug: "npm:^4.1.1" + lodash.debounce: "npm:^4.0.8" + resolve: "npm:^1.14.2" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10/bb32ec12024d3f16e70641bc125d2534a97edbfdabbc9f69001ec9c4ce46f877c7a224c566aa6c8c510c3b0def2e43dc4433bf6a40896ba5ce0cef4ea5ccbcff + languageName: node + linkType: hard + +"@babel/helper-member-expression-to-functions@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-member-expression-to-functions@npm:7.24.8" + dependencies: + "@babel/traverse": "npm:^7.24.8" + "@babel/types": "npm:^7.24.8" + checksum: 10/ac878761cfd0a46c081cda0da75cc186f922cf16e8ecdd0c4fb6dca4330d9fe4871b41a9976224cf9669c9e7fe0421b5c27349f2e99c125fa0be871b327fa770 + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-module-imports@npm:7.24.7" + dependencies: + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10/df8bfb2bb18413aa151ecd63b7d5deb0eec102f924f9de6bc08022ced7ed8ca7fed914562d2f6fa5b59b74a5d6e255dc35612b2bc3b8abf361e13f61b3704770 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.24.7, @babel/helper-module-transforms@npm:^7.24.8, @babel/helper-module-transforms@npm:^7.25.0, @babel/helper-module-transforms@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/helper-module-transforms@npm:7.25.2" + dependencies: + "@babel/helper-module-imports": "npm:^7.24.7" + "@babel/helper-simple-access": "npm:^7.24.7" + "@babel/helper-validator-identifier": "npm:^7.24.7" + "@babel/traverse": "npm:^7.25.2" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/a3bcf7815f3e9d8b205e0af4a8d92603d685868e45d119b621357e274996bf916216bb95ab5c6a60fde3775b91941555bf129d608e3d025b04f8aac84589f300 + languageName: node + linkType: hard + +"@babel/helper-optimise-call-expression@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" + dependencies: + "@babel/types": "npm:^7.24.7" + checksum: 10/da7a7f2d1bb1be4cffd5fa820bd605bc075c7dd014e0458f608bb6f34f450fe9412c8cea93e788227ab396e0e02c162d7b1db3fbcb755a6360e354c485d61df0 + 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.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": + version: 7.24.8 + resolution: "@babel/helper-plugin-utils@npm:7.24.8" + checksum: 10/adbc9fc1142800a35a5eb0793296924ee8057fe35c61657774208670468a9fbfbb216f2d0bc46c680c5fefa785e5ff917cc1674b10bd75cdf9a6aa3444780630 + languageName: node + linkType: hard + +"@babel/helper-remap-async-to-generator@npm:^7.24.7, @babel/helper-remap-async-to-generator@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.0" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + "@babel/helper-wrap-function": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/6b1ab73a067008c92e2fe5b7a9f39aab32e7f5a8c5eaf0a864436c21791f708ad8619d4a509febdfe934aeb373af4baa7c7d9f41181b385e09f39eaf11ca108e + languageName: node + linkType: hard + +"@babel/helper-replace-supers@npm:^7.24.7, @babel/helper-replace-supers@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-replace-supers@npm:7.25.0" + dependencies: + "@babel/helper-member-expression-to-functions": "npm:^7.24.8" + "@babel/helper-optimise-call-expression": "npm:^7.24.7" + "@babel/traverse": "npm:^7.25.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/97c6c17780cb9692132f7243f5a21fb6420104cb8ff8752dc03cfc9a1912a243994c0290c77ff096637ab6f2a7363b63811cfc68c2bad44e6b39460ac2f6a63f + languageName: node + linkType: hard + +"@babel/helper-simple-access@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-simple-access@npm:7.24.7" + dependencies: + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10/5083e190186028e48fc358a192e4b93ab320bd016103caffcfda81302a13300ccce46c9cd255ae520c25d2a6a9b47671f93e5fe5678954a2329dc0a685465c49 + languageName: node + linkType: hard + +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7" + dependencies: + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10/784a6fdd251a9a7e42ccd04aca087ecdab83eddc60fda76a2950e00eb239cc937d3c914266f0cc476298b52ac3f44ffd04c358e808bd17552a7e008d75494a77 + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-string-parser@npm:7.24.8" + checksum: 10/6d1bf8f27dd725ce02bdc6dffca3c95fb9ab8a06adc2edbd9c1c9d68500274230d1a609025833ed81981eff560045b6b38f7b4c6fb1ab19fc90e5004e3932535 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-validator-identifier@npm:7.24.7" + checksum: 10/86875063f57361471b531dbc2ea10bbf5406e12b06d249b03827d361db4cad2388c6f00936bcd9dc86479f7e2c69ea21412c2228d4b3672588b754b70a449d4b + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.24.7, @babel/helper-validator-option@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-validator-option@npm:7.24.8" + checksum: 10/a52442dfa74be6719c0608fee3225bd0493c4057459f3014681ea1a4643cd38b68ff477fe867c4b356da7330d085f247f0724d300582fa4ab9a02efaf34d107c + languageName: node + linkType: hard + +"@babel/helper-wrap-function@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-wrap-function@npm:7.25.0" + dependencies: + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10/08724128b9c540c02a59f02f9c1c9940fe5363d85d0f30ec826a4f926afdb26fa4ec33ca2b88b4aa745fe3dbe1f44be2969b8a03af259af7945d8cd3262168d3 + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helpers@npm:7.25.0" + dependencies: + "@babel/template": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10/4fcb8167eba9853e30b8b235b81b923ef7b707396b0e23d7a4fa3e811729506755576cb9ec736e8b92cf19e5a1ec61e83d182904d8e6a0953803c6bebc2e1592 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/highlight@npm:7.24.7" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.24.7" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10/69b73f38cdd4f881b09b939a711e76646da34f4834f4ce141d7a49a6bb1926eab1c594148970a8aa9360398dff800f63aade4e81fafdd7c8d8a8489ea93bfec1 + 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.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.3": + version: 7.25.3 + resolution: "@babel/parser@npm:7.25.3" + dependencies: + "@babel/types": "npm:^7.25.2" + bin: + parser: ./bin/babel-parser.js + checksum: 10/7bd57e89110bdc9cffe0ef2f2286f1cfb9bbb3aa1d9208c287e0bf6a1eb4cfe6ab33958876ebc59aafcbe3e2381c4449240fc7cc2ff32b79bc9db89cd52fc779 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.3": + version: 7.25.3 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/traverse": "npm:^7.25.3" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/9743feb0152f2ac686aaee6dfd41e8ea211989a459d4c2b10b531442f6865057cd1a502515634c25462b155bc58f0710267afed72396780e9b72be25370dd577 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/5e504bba884a4500e71224d344efb1e70ebbeabd621e07a58f2d3c0d14a71a49c97b4989259a288cdbbfacebfea224397acf1217d26c77aebf9aa35bdd988249 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/f574beb1d4f723bb9b913ce379259a55b50a308364585ccb83e00d933465c26c04cbbc85a06e6d4c829279eb1021b3236133d486b3ff11cfd90ad815c8b478d2 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.13.0 + checksum: 10/887f1b8bd0ef61206ece47919fda78a32eef35da31c0d95ab8d7adc8b4722534dc5177c86c8d6d81bcf4343f3c08c6adab2b46cfd2bea8e33c6c04e51306f9cc + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/traverse": "npm:^7.25.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/de04a9342e9a0db1673683112c83cdc52173f489f45aeed864ceba72dfba8c8588e565171e64cb2a408a09269e5fb35c6ab4ef50e3e649c4f8c0c787feb5c048 + languageName: node + linkType: hard + +"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": + version: 7.21.0-placeholder-for-preset-env.2 + resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/fab70f399aa869275690ec6c7cedb4ef361d4e8b6f55c3d7b04bfee61d52fb93c87cec2c65d73cddbaca89fb8ef5ec0921fce675c9169d9d51f18305ab34e78a + languageName: node + linkType: hard + +"@babel/plugin-syntax-async-generators@npm:^7.8.4": + version: 7.8.4 + resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 + languageName: node + linkType: hard + +"@babel/plugin-syntax-bigint@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": + version: 7.12.13 + resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.12.13" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-static-block@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 + languageName: node + linkType: hard + +"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd + languageName: node + linkType: hard + +"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a + languageName: node + linkType: hard + +"@babel/plugin-syntax-flow@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-flow@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/0a83bde6736110d68f3b20eda44ca020a6d34c336a342f84369207f5514e17779b9c3d3ebc2f1c94b595c13819f46bf7af367c4b1382bda182e1764655fd6a5a + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-assertions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/bd065cd73ae3dbe69e6f9167aa605da3df77d69bbad2ede95e4aa9e7af7744d5bc1838b928c77338ca62df7691a7adf6e608279be50c18e4b3c70cf77e3013d7 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/22fc50bd85a491bb8d22065f330a41f60d66f2f2d7a1deb73e80c8a4b5d7a42a092a03f8da18800650eca0fc14585167cc4e5c9fab351f0d390d1592347162ae + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b + languageName: node + linkType: hard + +"@babel/plugin-syntax-json-strings@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a + languageName: node + linkType: hard + +"@babel/plugin-syntax-jsx@npm:^7.24.7, @babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.24.7 + resolution: "@babel/plugin-syntax-jsx@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/a93516ae5b34868ab892a95315027d4e5e38e8bd1cfca6158f2974b0901cbb32bbe64ea10ad5b25f919ddc40c6d8113c4823372909c9c9922170c12b0b1acecb + languageName: node + linkType: hard + +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 + languageName: node + linkType: hard + +"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4, @babel/plugin-syntax-numeric-separator@npm:^7.8.3": + version: 7.10.4 + resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 + languageName: node + linkType: hard + +"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda + languageName: node + linkType: hard + +"@babel/plugin-syntax-top-level-await@npm:^7.14.5, @babel/plugin-syntax-top-level-await@npm:^7.8.3": + version: 7.14.5 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e + languageName: node + linkType: hard + +"@babel/plugin-syntax-typescript@npm:^7.24.7, @babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.24.7 + resolution: "@babel/plugin-syntax-typescript@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/2518cc06323f5673c93142935879c112fea0ee836dfa9a9ec744fc972fdeaf22a06fe631c23817562aaaddadf64626a4fbba98c300b3e2c828f48f0f1cca0ce0 + languageName: node + linkType: hard + +"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.18.6" + "@babel/helper-plugin-utils": "npm:^7.18.6" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c + languageName: node + linkType: hard + +"@babel/plugin-transform-arrow-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/6720173645826046878015c579c2ca9d93cdba79a2832f0180f5cf147d9817c85bf9c8338b16d6bdaa71f87809b7a194a6902e6c82ec00b6354aca6b40abe5e6 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-remap-async-to-generator": "npm:^7.25.0" + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/traverse": "npm:^7.25.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/c65757490005234719a9614dbaf5004ca815612eff251edf95d4149fb74f42ebf91ff079f6b3594b6aa93eec6f4b6d2cda9f2c924f6217bb0422896be58ed0fe + languageName: node + linkType: hard + +"@babel/plugin-transform-async-to-generator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.7" + dependencies: + "@babel/helper-module-imports": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-remap-async-to-generator": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/b2041d9d50b09afef983c4f1dece63fdfc5a8e4646e42591db398bc4322958434d60b3cb0f5d0f9f9dbdad8577e8a1a33ba9859aacc3004bf6d25d094d20193f + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoped-functions@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/33e2fb9f24c11889b2bacbe9c3625f738edafc2136c8206598e0422664267ec5ca9422cb4563cc42039ccfc333fb42ce5f8513382e56c5b02f934005d0d6e8ff + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoping@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/981e565a8ff1e1f8d539b5ff067328517233142b131329d11e6c60405204e2a4a993828c367f7dc729a9608aabebdada869616563816e5f8f1385e91ac0fa4d6 + languageName: node + linkType: hard + +"@babel/plugin-transform-class-properties@npm:^7.22.5, @babel/plugin-transform-class-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-class-properties@npm:7.24.7" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/1c6f645dd3889257028f27bfbb04526ac7676763a923fc8203aa79aa5232820e0201cb858c73b684b1922327af10304121ac013c7b756876d54560a9c1a7bc79 + languageName: node + linkType: hard + +"@babel/plugin-transform-class-static-block@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.12.0 + checksum: 10/00b4d35788bcfefb56b6a1d3506ca23f11dd55d4bb5a34eb70397c06283dc7f596cd9d40995c4a6cb897b45ad220de211f854e7a030a05e26a307c8f56b6ba4b + languageName: node + linkType: hard + +"@babel/plugin-transform-classes@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-classes@npm:7.25.0" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + "@babel/helper-compilation-targets": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-replace-supers": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.0" + globals: "npm:^11.1.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/59aeb33b91e462a9b01cc9691c6a27e6601c5b76d83e3e4f95fef4086c6561e3557597847fe5243006542723fe4288d8fa6824544b1d94bb3104438f4fd96ebc + languageName: node + linkType: hard + +"@babel/plugin-transform-computed-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/template": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/fecf3c770b2dd8e70be6da12d4dd0273de9d8ef4d0f46be98d56fddb3a451932cdc9bb81de3057c9acb903e05ece657886cc31886d5762afa7b0a256db0f791e + languageName: node + linkType: hard + +"@babel/plugin-transform-destructuring@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-destructuring@npm:7.24.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/e3bba0bb050592615fbf062ea07ae94f99e9cf22add006eaa66ed672d67ff7051b578a5ea68a7d79f9184fb3c27c65333d86b0b8ea04f9810bcccbeea2ffbe76 + languageName: node + linkType: hard + +"@babel/plugin-transform-dotall-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/51b75638748f6e5adab95b711d3365b8d7757f881c178946618a43b15063ec1160b07f4aa3b116bf3f1e097a88226a01db4cae2c5c4aad4c71fe5568828a03f5 + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-keys@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/4284d8fe058c838f80d594bace1380ce02995fa9a271decbece59c40815bc2f7e715807dcbe4d5da8b444716e6d05cc6d79771f500fb044cd0dd00ce4324b619 + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.0" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.0" + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/869c08def8eb80e3619c77e7af962dd82323a8447697298f461624077593c7b7082fc2238989880a0c0ba94bc6442300fd23e33255ac225760bc8bb755268941 + languageName: node + linkType: hard + +"@babel/plugin-transform-dynamic-import@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/e949c02aa57098d916eb6edcbef0f3f7d62640f37e1a061b0692523964e081f8182f2c4292173b4dbea4edb8d146e65d6a20ce4b6b5f8c33be34bd846ae114ea + languageName: node + linkType: hard + +"@babel/plugin-transform-exponentiation-operator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.7" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/014b211f73a524ee98441541ddc4f6b067eefcf94d509e99074a45ea8c3f3ad0e36cab6f5f96666ac05b747a21fa6fda949aa25153656bb2821545a4b302e0d4 + languageName: node + linkType: hard + +"@babel/plugin-transform-export-namespace-from@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/d59d21945d2fd1ead914bb21f909f75b70ebe0e7627c2b1326ce500babca4c8e4a2513af6899d92e06e87186c61ee5087209345f5102fb4ff5a0e47e7b159a2c + languageName: node + linkType: hard + +"@babel/plugin-transform-flow-strip-types@npm:^7.24.7": + version: 7.25.2 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.25.2" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/plugin-syntax-flow": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/b5a54395a5c6d7f94de78855f449398c9b850acc299e7d872774f695fdde6006a87bcc9e70ffe33d935883761e9a4e82328c9cff6e2afaf568f04fb646886706 + languageName: node + linkType: hard + +"@babel/plugin-transform-for-of@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-for-of@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/ea471ad1345f1153f7f72f1f084e74f48dc349272ca1b2d8710b841b015c9861d673e12c3c98d42ab3c640cb6ab88bb9a8da1f4ca9c57a8f71f00815fa23ecef + languageName: node + linkType: hard + +"@babel/plugin-transform-function-name@npm:^7.25.1": + version: 7.25.1 + resolution: "@babel/plugin-transform-function-name@npm:7.25.1" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/traverse": "npm:^7.25.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/1b4cd214c8523f7fa024fcda540ffe5503eda0e0be08b7c21405c96a870b5fe8bb1bda9e23a43a31467bf3dfc3a08edca250cf7f55f09dc40759a1ca6c6d6a4a + languageName: node + linkType: hard + +"@babel/plugin-transform-json-strings@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-json-strings@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/5549dc97fc2d429a089d14ccfd51d8b3ba23c39b79edfe6d754e804fb1d50e6a4c070e73550be514a919c4db1553d8e6f7406178d68756b5959afe025a602cb2 + languageName: node + linkType: hard + +"@babel/plugin-transform-literals@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/plugin-transform-literals@npm:7.25.2" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/d9728625a6d55305610dd37057fe1a3473df4f3789fef693c900516caf8958dfb341394ecf69ce9b60c82c422ad2954491a7e4d4533432fd5df812827443d6e9 + languageName: node + linkType: hard + +"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/e39581cf1f9a43330b8340177c618fdb3232deb03faab1937819ef39327660a1fe94fd0ec2f66d1f5b5f98acba68871a77a9931588011c13dded3d7094ecc9de + languageName: node + linkType: hard + +"@babel/plugin-transform-member-expression-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/837b60ea42fc69a430c8f7fb124247ba009ff6d93187a521fe9f83556fe124715bd46533b1684a3e139f272849a14d1d4faf3397bde13714f99ce0938526ea6f + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-amd@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-amd@npm:7.24.7" + dependencies: + "@babel/helper-module-transforms": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/66465ffba49af7a7b7a62995eb58f591ecd23ab42b0c67f8a70020177b3789d2a379bd6cbb68cbd09a69fd75c38a91f5a09ea70f5c8347bf4c6ea81caa0f6c6b + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-commonjs@npm:^7.23.0, @babel/plugin-transform-modules-commonjs@npm:^7.24.7, @babel/plugin-transform-modules-commonjs@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.8" + dependencies: + "@babel/helper-module-transforms": "npm:^7.24.8" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-simple-access": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/18e5d229767c7b5b6ff0cbf1a8d2d555965b90201839d0ac2dc043b56857624ea344e59f733f028142a8c1d54923b82e2a0185694ef36f988d797bfbaf59819c + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-systemjs@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.0" + dependencies: + "@babel/helper-module-transforms": "npm:^7.25.0" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-validator-identifier": "npm:^7.24.7" + "@babel/traverse": "npm:^7.25.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/2c38efdbaf6faf730cdcb0c5e42d2d15bb114eecf184db078319de496b5e3ce68d499e531265a0e13e29f0dcaa001f240773db5c4c078eac7f4456d6c8bddd88 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-umd@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-umd@npm:7.24.7" + dependencies: + "@babel/helper-module-transforms": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/cef9c8917b3c35c3b6cb424dc2e6f74016122f1d25c196e2c7e51eb080d95e96c5d34966c0d5b9d4e17b8e60d455a97ed271317ed104e0e70bff159830a59678 + languageName: node + linkType: hard + +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/b0ecb1afd22946b21fb8f34e826cfbfea4b5337f7592a5ff8af7937eddec4440149c59d2d134b4f21b2ed91b57611f39b19827729e19d99b7c11eaf614435f83 + languageName: node + linkType: hard + +"@babel/plugin-transform-new-target@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-new-target@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/91b6a7439b7622f80dc755ddfb9ab083355bedc0b2af18e7c7a948faed14467599609331c8d59cfab4273640e3fc36e4cd02ad5b6dcb4a428f5a8baefc507acc + languageName: node + linkType: hard + +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/113cd24b6ce4d0a8e54ad9324428244942ce752a3fd38f8b615c3a786641ec18a00a01b662fe4cbebf369358f5904a975bbde0a977b839f2438b16f0d7d1dd36 + languageName: node + linkType: hard + +"@babel/plugin-transform-numeric-separator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/dc5bb0534889d207b1da125635471c42da61a4a4e9e68855f24b1cd04ccdcf8325b2c29112e719913c2097242e7e62d660e0fea2a46f3a9a983c9d02a0ec7a04 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-rest-spread@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" + "@babel/plugin-transform-parameters": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/d586995dc3396bbf8fb75b84f0a3548d923e4c3500bb414641a7fe30762a4ffd82987887fece6381f600d8de2da1e3310fc9a725271724d35f9020fcd5d4b2a3 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-super@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-object-super@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-replace-supers": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/382739a017972d7126416b958ea81b4b950b6275414908a54bfef6aeed9b9fcc6c8d247db3a1134b09a3b355a60039670ce41ee41c626f8acec70f49c3c8d2a6 + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/605ae3764354e83f73c1e6430bac29e308806abcce8d1369cf69e4921771ff3592e8f60ba60c15990070d79b8d8740f0841069d64b466b3ce8a8c43e9743da7e + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-chaining@npm:^7.23.0, @babel/plugin-transform-optional-chaining@npm:^7.24.7, @babel/plugin-transform-optional-chaining@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/1f873fb9d86c280b64dfe5ebc59244b459b717ed72a7682da2386db3d9e11fc9d831cfc2e11d37262b4325a7a0e3ccbccfb8cd0b944caf199d3c9e03fff7b0af + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-parameters@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/41ff6bda926fabfb2e5d90b70621f279330691bed92009297340a8e776cfe9c3f2dda6afbc31dd3cbdccdfa9a5c57f2046e3ccc84f963c3797356df003d1703a + languageName: node + linkType: hard + +"@babel/plugin-transform-private-methods@npm:^7.22.5, @babel/plugin-transform-private-methods@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-private-methods@npm:7.24.7" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/5338df2aae53c43e6a7ea0c44f20a1100709778769c7e42d4901a61945c3200ba0e7fca83832f48932423a68528219fbea233cb5b8741a2501fdecbacdc08292 + languageName: node + linkType: hard + +"@babel/plugin-transform-private-property-in-object@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.7" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + "@babel/helper-create-class-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/a23ee18340818e292abfcb98b1086a188c81d640b1045e6809e9a3e8add78f9cb26607774de4ed653cbecd4277965dc4f4f1affc3504682209bb2a65fd4251f8 + languageName: node + linkType: hard + +"@babel/plugin-transform-property-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-property-literals@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/71708890fe007d45ad7a130150a2ba1fea0205f575b925ca2e1bb65018730636a68e65c634a474e5b658378d72871c337c953560009c081a645e088769bf168a + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-self@npm:^7.24.5": + version: 7.24.7 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/56115b4a6c006ce82846f1ab21e5ba713ee8f57a166c96c94fc632cdfbc8b9cebbf20b7cd9b8076439dabecdbf0f8ca4c2cb1bed1bf0b15cb44505a429f6a92f + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-source@npm:^7.24.1": + version: 7.24.7 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/682e2ae15d788453d8ab34cf0dcc29c093faf7c7cf1d60110c43f33e6477f916cf301456b314fc496fadc07123f7978225f41ac286ed0bfbad9c8e76392fdb6d + languageName: node + linkType: hard + +"@babel/plugin-transform-regenerator@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-regenerator@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + regenerator-transform: "npm:^0.15.2" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/70fa2bb36d3e2ce69a25c7227da8ad92307ab7b50cb6dfcc4dc5ce8f1cc79b0fcf997292a1cb3b4ae7cb136f515d1b2c3fb78c927bdba8d719794430403eb0c6 + languageName: node + linkType: hard + +"@babel/plugin-transform-reserved-words@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/64a2669671bb97c3dee3830a82c3e932fe6e02d56a4053c6ee4453d317b5f436d3d44907fbb0f4fbd8a56ebee34f6aee250e49743b7243d14d00c069215f3113 + languageName: node + linkType: hard + +"@babel/plugin-transform-shorthand-properties@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/c68c2be965007e0cb6667daa209bc0af877cab4b327ef2e21b2114c38554243c3f7fdcc5b03679b20f72a26d966aa646af771f3165c882067e85a3887647f028 + languageName: node + linkType: hard + +"@babel/plugin-transform-spread@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-spread@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/76e2c8544129d727d5a698e2a67d74e438bc35df843adb5f769316ec432c5e1bbb4128123a95b2fe8ef0aec7b26d87efe81d64326291c77ad757ff184d38448a + languageName: node + linkType: hard + +"@babel/plugin-transform-sticky-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/3b9a99ae043ef363c81bfb097fa7a553fcf7c7d9fddc13dd2b47b3b2e45cf2741a9ca78cfe55f463983b043b365f0f8452f2d5eaadbdea20e6d6de50c16bed25 + languageName: node + linkType: hard + +"@babel/plugin-transform-template-literals@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-template-literals@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/ecf05a8511176d5570cb0d481577a407a4e8a9a430f86522d809e0ac2c823913e854ef9e2a1c83c0bd7c12489d82e1b48fabb52e697e80d6a6962125197593ca + languageName: node + linkType: hard + +"@babel/plugin-transform-typeof-symbol@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.8" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.8" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/5f113fed94b694ec4a40a27b8628ce736cfa172b69fcffa2833c9a41895032127f3daeea552e94fdb4a3ce4e8cd51de67a670ab87a1f447a0cf55c9cb2d7ed11 + languageName: node + linkType: hard + +"@babel/plugin-transform-typescript@npm:^7.24.7": + version: 7.25.2 + resolution: "@babel/plugin-transform-typescript@npm:7.25.2" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + "@babel/helper-create-class-features-plugin": "npm:^7.25.0" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + "@babel/plugin-syntax-typescript": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/50e017ffd131c08661daa22b6c759999bb7a6cdfbf683291ee4bcbea4ae839440b553d2f8896bcf049aca1d267b39f3b09e8336059e919e83149b5ad859671f6 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-escapes@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/6b8bca3495acedc89e880942de7b83c263fb5b4c9599594dcf3923e2128ae25f1f4725a295fe101027f75d8ef081ef28319296adf274b5022e57039e42836103 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-property-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/c0c284bbbdead7e17e059d72e1b288f86b0baacc410398ef6c6c703fe4326b069e68515ccb84359601315cd8e888f9226731d00624b7c6959b1c0853f072b61f + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/b545310d0d592d75566b9cd158f4b8951e34d07d839656789d179b39b3fd92b32bd387cdfaf33a93e636609f3bfb9bb03d41f3e43be598116c9c6c80cc3418c4 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.7" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/183b72d5987dc93f9971667ce3f26d28b0e1058e71b129733dd9d5282aecba4c062b67c9567526780d2defd2bfbf950ca58d8306dc90b2761fd1e960d867ddb7 + languageName: node + linkType: hard + +"@babel/preset-env@npm:^7.24.4": + version: 7.25.3 + resolution: "@babel/preset-env@npm:7.25.3" + dependencies: + "@babel/compat-data": "npm:^7.25.2" + "@babel/helper-compilation-targets": "npm:^7.25.2" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-validator-option": "npm:^7.24.8" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.3" + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.0" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.0" + "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/plugin-syntax-class-properties": "npm:^7.12.13" + "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" + "@babel/plugin-syntax-import-assertions": "npm:^7.24.7" + "@babel/plugin-syntax-import-attributes": "npm:^7.24.7" + "@babel/plugin-syntax-import-meta": "npm:^7.10.4" + "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" + "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" + "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" + "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" + "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.0" + "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.7" + "@babel/plugin-transform-block-scoping": "npm:^7.25.0" + "@babel/plugin-transform-class-properties": "npm:^7.24.7" + "@babel/plugin-transform-class-static-block": "npm:^7.24.7" + "@babel/plugin-transform-classes": "npm:^7.25.0" + "@babel/plugin-transform-computed-properties": "npm:^7.24.7" + "@babel/plugin-transform-destructuring": "npm:^7.24.8" + "@babel/plugin-transform-dotall-regex": "npm:^7.24.7" + "@babel/plugin-transform-duplicate-keys": "npm:^7.24.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.0" + "@babel/plugin-transform-dynamic-import": "npm:^7.24.7" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.7" + "@babel/plugin-transform-export-namespace-from": "npm:^7.24.7" + "@babel/plugin-transform-for-of": "npm:^7.24.7" + "@babel/plugin-transform-function-name": "npm:^7.25.1" + "@babel/plugin-transform-json-strings": "npm:^7.24.7" + "@babel/plugin-transform-literals": "npm:^7.25.2" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" + "@babel/plugin-transform-member-expression-literals": "npm:^7.24.7" + "@babel/plugin-transform-modules-amd": "npm:^7.24.7" + "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" + "@babel/plugin-transform-modules-systemjs": "npm:^7.25.0" + "@babel/plugin-transform-modules-umd": "npm:^7.24.7" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" + "@babel/plugin-transform-new-target": "npm:^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" + "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" + "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" + "@babel/plugin-transform-object-super": "npm:^7.24.7" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.24.8" + "@babel/plugin-transform-parameters": "npm:^7.24.7" + "@babel/plugin-transform-private-methods": "npm:^7.24.7" + "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" + "@babel/plugin-transform-property-literals": "npm:^7.24.7" + "@babel/plugin-transform-regenerator": "npm:^7.24.7" + "@babel/plugin-transform-reserved-words": "npm:^7.24.7" + "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" + "@babel/plugin-transform-spread": "npm:^7.24.7" + "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" + "@babel/plugin-transform-template-literals": "npm:^7.24.7" + "@babel/plugin-transform-typeof-symbol": "npm:^7.24.8" + "@babel/plugin-transform-unicode-escapes": "npm:^7.24.7" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.7" + "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.24.7" + "@babel/preset-modules": "npm:0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2: "npm:^0.4.10" + babel-plugin-polyfill-corejs3: "npm:^0.10.4" + babel-plugin-polyfill-regenerator: "npm:^0.6.1" + core-js-compat: "npm:^3.37.1" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/293c32dee33f138d22cea0c0e163b6d79ef3860ac269921a438edb4adbfa53976ce2cd3f7a79408c8e52c852b5feda45abdbc986a54e9d9aa0b6680d7a371a58 + languageName: node + linkType: hard + +"@babel/preset-flow@npm:^7.22.15": + version: 7.24.7 + resolution: "@babel/preset-flow@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-validator-option": "npm:^7.24.7" + "@babel/plugin-transform-flow-strip-types": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/20fe02b5bc3a9d5b353d164d5ef89841032605434ae351d14309a041d6dc5bd0df3417d0510a6468813392d54793825ba6b04d8c5a5377eee31fc2b55503bf26 + languageName: node + linkType: hard + +"@babel/preset-modules@npm:0.1.6-no-external-plugins": + version: 0.1.6-no-external-plugins + resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.0.0" + "@babel/types": "npm:^7.4.4" + esutils: "npm:^2.0.2" + peerDependencies: + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + checksum: 10/039aba98a697b920d6440c622aaa6104bb6076d65356b29dad4b3e6627ec0354da44f9621bafbeefd052cd4ac4d7f88c9a2ab094efcb50963cb352781d0c6428 + languageName: node + linkType: hard + +"@babel/preset-typescript@npm:^7.23.0": + version: 7.24.7 + resolution: "@babel/preset-typescript@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-validator-option": "npm:^7.24.7" + "@babel/plugin-syntax-jsx": "npm:^7.24.7" + "@babel/plugin-transform-modules-commonjs": "npm:^7.24.7" + "@babel/plugin-transform-typescript": "npm:^7.24.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/995e9783f8e474581e7533d6b10ec1fbea69528cc939ad8582b5937e13548e5215d25a8e2c845e7b351fdaa13139896b5e42ab3bde83918ea4e41773f10861ac + languageName: node + linkType: hard + +"@babel/register@npm:^7.22.15": + version: 7.24.6 + resolution: "@babel/register@npm:7.24.6" + dependencies: + clone-deep: "npm:^4.0.1" + find-cache-dir: "npm:^2.0.0" + make-dir: "npm:^2.1.0" + pirates: "npm:^4.0.6" + source-map-support: "npm:^0.5.16" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/94580678ee541218475d605720ea1c3b4a647c504c8a08124373efad24a523f219dd7441de92f09c692c22362ea4422c5f3c51a3b3048b7a64deb1f6daea96b6 + languageName: node + linkType: hard + +"@babel/regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "@babel/regjsgen@npm:0.8.0" + checksum: 10/c57fb730b17332b7572574b74364a77d70faa302a281a62819476fa3b09822974fd75af77aea603ad77378395be64e81f89f0e800bf86cbbf21652d49ce12ee8 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": + version: 7.25.0 + resolution: "@babel/runtime@npm:7.25.0" + dependencies: + regenerator-runtime: "npm:^0.14.0" + checksum: 10/6870e9e0e9125075b3aeba49a266f442b10820bfc693019eb6c1785c5a0edbe927e98b8238662cdcdba17842107c040386c3b69f39a0a3b217f9d00ffe685b27 + languageName: node + linkType: hard + +"@babel/template@npm:^7.24.7, @babel/template@npm:^7.25.0, @babel/template@npm:^7.3.3": + version: 7.25.0 + resolution: "@babel/template@npm:7.25.0" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/parser": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10/07ebecf6db8b28244b7397628e09c99e7a317b959b926d90455c7253c88df3677a5a32d1501d9749fe292a263ff51a4b6b5385bcabd5dadd3a48036f4d4949e0 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8, @babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.25.1, @babel/traverse@npm:^7.25.2, @babel/traverse@npm:^7.25.3": + version: 7.25.3 + resolution: "@babel/traverse@npm:7.25.3" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/generator": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.3" + "@babel/template": "npm:^7.25.0" + "@babel/types": "npm:^7.25.2" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10/fba34f323e17fa83372fc290bc12413a50e2f780a86c7d8b1875c594b6be2857867804de5d52ab10a78a9cae29e1b09ea15d85ad63671ce97d79c40650282bb9 + 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.24.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": + version: 7.25.2 + resolution: "@babel/types@npm:7.25.2" + dependencies: + "@babel/helper-string-parser": "npm:^7.24.8" + "@babel/helper-validator-identifier": "npm:^7.24.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10/ccf5399db1dcd6dd87b84a6f7bc8dd241e04a326f4f038c973c26ccb69cd360c8f2276603f584c58fd94da95229313060b27baceb0d9b18a435742d3f616afd1 + languageName: node + linkType: hard + +"@base2/pretty-print-object@npm:1.0.1": + version: 1.0.1 + resolution: "@base2/pretty-print-object@npm:1.0.1" + checksum: 10/c1b78a521ac712baa076589f3bc81318d07c34a5747e9177b6af37043592252587d98f9b7b59ec174968c6bea31a99fe4d7884121173a449b75fe602b7eb2839 + languageName: node + linkType: hard + +"@bcoe/v8-coverage@npm:^0.2.3": + version: 0.2.3 + resolution: "@bcoe/v8-coverage@npm:0.2.3" + checksum: 10/1a1f0e356a3bb30b5f1ced6f79c413e6ebacf130421f15fac5fcd8be5ddf98aedb4404d7f5624e3285b700e041f9ef938321f3ca4d359d5b716f96afa120d88d + languageName: node + linkType: hard + +"@colors/colors@npm:1.5.0": + version: 1.5.0 + resolution: "@colors/colors@npm:1.5.0" + checksum: 10/9d226461c1e91e95f067be2bdc5e6f99cfe55a721f45afb44122e23e4b8602eeac4ff7325af6b5a369f36396ee1514d3809af3f57769066d80d83790d8e53339 + languageName: node + linkType: hard + +"@cypress/request@npm:^3.0.1": + version: 3.0.1 + resolution: "@cypress/request@npm:3.0.1" + dependencies: + aws-sign2: "npm:~0.7.0" + aws4: "npm:^1.8.0" + caseless: "npm:~0.12.0" + combined-stream: "npm:~1.0.6" + extend: "npm:~3.0.2" + forever-agent: "npm:~0.6.1" + form-data: "npm:~2.3.2" + http-signature: "npm:~1.3.6" + is-typedarray: "npm:~1.0.0" + isstream: "npm:~0.1.2" + json-stringify-safe: "npm:~5.0.1" + mime-types: "npm:~2.1.19" + performance-now: "npm:^2.1.0" + qs: "npm:6.10.4" + safe-buffer: "npm:^5.1.2" + tough-cookie: "npm:^4.1.3" + tunnel-agent: "npm:^0.6.0" + uuid: "npm:^8.3.2" + checksum: 10/bf48bed6d6e493c05493902fb08b1d0646e7ec4300cf834816c2616f781db1a7fc447bd6f81de7c3076d738e8a6d75354e21d332f8f7ef8d9101d9b2f8e15b3a + languageName: node + linkType: hard + +"@cypress/xvfb@npm:^1.2.4": + version: 1.2.4 + resolution: "@cypress/xvfb@npm:1.2.4" + dependencies: + debug: "npm:^3.1.0" + lodash.once: "npm:^4.1.1" + checksum: 10/cb995b069f8c4f1e7857049bda0bd73a58e0048ccaf276ef0e66d1e1c03ba6fa099b5d765ad12ea37a7e5b7685f7413a2b9a99b27891407565b915f4a2f919a7 + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/aix-ppc64@npm:0.21.5" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/aix-ppc64@npm:0.23.0" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm64@npm:0.21.5" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/android-arm64@npm:0.23.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-arm@npm:0.21.5" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/android-arm@npm:0.23.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/android-x64@npm:0.21.5" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/android-x64@npm:0.23.0" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-arm64@npm:0.21.5" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/darwin-arm64@npm:0.23.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/darwin-x64@npm:0.21.5" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/darwin-x64@npm:0.23.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-arm64@npm:0.21.5" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/freebsd-arm64@npm:0.23.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/freebsd-x64@npm:0.21.5" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/freebsd-x64@npm:0.23.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm64@npm:0.21.5" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-arm64@npm:0.23.0" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-arm@npm:0.21.5" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-arm@npm:0.23.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ia32@npm:0.21.5" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-ia32@npm:0.23.0" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-loong64@npm:0.21.5" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-loong64@npm:0.23.0" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-mips64el@npm:0.21.5" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-mips64el@npm:0.23.0" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-ppc64@npm:0.21.5" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-ppc64@npm:0.23.0" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-riscv64@npm:0.21.5" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-riscv64@npm:0.23.0" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-s390x@npm:0.21.5" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-s390x@npm:0.23.0" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/linux-x64@npm:0.21.5" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-x64@npm:0.23.0" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/netbsd-x64@npm:0.21.5" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/netbsd-x64@npm:0.23.0" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/openbsd-arm64@npm:0.23.0" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/openbsd-x64@npm:0.21.5" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/openbsd-x64@npm:0.23.0" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/sunos-x64@npm:0.21.5" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/sunos-x64@npm:0.23.0" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-arm64@npm:0.21.5" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/win32-arm64@npm:0.23.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-ia32@npm:0.21.5" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/win32-ia32@npm:0.23.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.21.5": + version: 0.21.5 + resolution: "@esbuild/win32-x64@npm:0.21.5" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/win32-x64@npm:0.23.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: "npm:^3.3.0" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: 10/8d70bcdcd8cd279049183aca747d6c2ed7092a5cf0cf5916faac1ef37ffa74f0c245c2a3a3d3b9979d9dfdd4ca59257b4c5621db699d637b847a2c5e02f491c2 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": + version: 4.11.0 + resolution: "@eslint-community/regexpp@npm:4.11.0" + checksum: 10/f053f371c281ba173fe6ee16dbc4fe544c84870d58035ccca08dba7f6ce1830d895ce3237a0db89ba37616524775dca82f1c502066b58e2d5712d7f87f5ba17c + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" + dependencies: + ajv: "npm:^6.12.4" + debug: "npm:^4.3.2" + espree: "npm:^9.6.0" + globals: "npm:^13.19.0" + ignore: "npm:^5.2.0" + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.0" + minimatch: "npm:^3.1.2" + strip-json-comments: "npm:^3.1.1" + checksum: 10/7a3b14f4b40fc1a22624c3f84d9f467a3d9ea1ca6e9a372116cb92507e485260359465b58e25bcb6c9981b155416b98c9973ad9b796053fd7b3f776a6946bce8 + languageName: node + linkType: hard + +"@eslint/js@npm:8.57.0": + version: 8.57.0 + resolution: "@eslint/js@npm:8.57.0" + checksum: 10/3c501ce8a997cf6cbbaf4ed358af5492875e3550c19b9621413b82caa9ae5382c584b0efa79835639e6e0ddaa568caf3499318e5bdab68643ef4199dce5eb0a0 + languageName: node + linkType: hard + +"@humanwhocodes/config-array@npm:^0.11.14": + version: 0.11.14 + resolution: "@humanwhocodes/config-array@npm:0.11.14" + dependencies: + "@humanwhocodes/object-schema": "npm:^2.0.2" + debug: "npm:^4.3.1" + minimatch: "npm:^3.0.5" + checksum: 10/3ffb24ecdfab64014a230e127118d50a1a04d11080cbb748bc21629393d100850496456bbcb4e8c438957fe0934430d731042f1264d6a167b62d32fc2863580a + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 10/e993950e346331e5a32eefb27948ecdee2a2c4ab3f072b8f566cd213ef485dd50a3ca497050608db91006f5479e43f91a439aef68d2a313bd3ded06909c7c5b3 + languageName: node + linkType: hard + +"@humanwhocodes/object-schema@npm:^2.0.2": + version: 2.0.3 + resolution: "@humanwhocodes/object-schema@npm:2.0.3" + checksum: 10/05bb99ed06c16408a45a833f03a732f59bf6184795d4efadd33238ff8699190a8c871ad1121241bb6501589a9598dc83bf25b99dcbcf41e155cdf36e35e937a3 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: "npm:^5.1.2" + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: "npm:^7.0.1" + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: "npm:^8.1.0" + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 10/e9ed5fd27c3aec1095e3a16e0c0cf148d1fee55a38665c35f7b3f86a9b5d00d042ddaabc98e8a1cb7463b9378c15f22a94eb35e99469c201453eb8375191f243 + languageName: node + linkType: hard + +"@istanbuljs/load-nyc-config@npm:^1.0.0": + version: 1.1.0 + resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" + dependencies: + camelcase: "npm:^5.3.1" + find-up: "npm:^4.1.0" + get-package-type: "npm:^0.1.0" + js-yaml: "npm:^3.13.1" + resolve-from: "npm:^5.0.0" + checksum: 10/b000a5acd8d4fe6e34e25c399c8bdbb5d3a202b4e10416e17bfc25e12bab90bb56d33db6089ae30569b52686f4b35ff28ef26e88e21e69821d2b85884bd055b8 + languageName: node + linkType: hard + +"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": + version: 0.1.3 + resolution: "@istanbuljs/schema@npm:0.1.3" + checksum: 10/a9b1e49acdf5efc2f5b2359f2df7f90c5c725f2656f16099e8b2cd3a000619ecca9fc48cf693ba789cf0fd989f6e0df6a22bc05574be4223ecdbb7997d04384b + languageName: node + linkType: hard + +"@jest/console@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/console@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + slash: "npm:^3.0.0" + checksum: 10/4a80c750e8a31f344233cb9951dee9b77bf6b89377cb131f8b3cde07ff218f504370133a5963f6a786af4d2ce7f85642db206ff7a15f99fe58df4c38ac04899e + languageName: node + linkType: hard + +"@jest/core@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/core@npm:29.7.0" + dependencies: + "@jest/console": "npm:^29.7.0" + "@jest/reporters": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + ansi-escapes: "npm:^4.2.1" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + exit: "npm:^0.1.2" + graceful-fs: "npm:^4.2.9" + jest-changed-files: "npm:^29.7.0" + jest-config: "npm:^29.7.0" + jest-haste-map: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-resolve-dependencies: "npm:^29.7.0" + jest-runner: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + jest-watcher: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + pretty-format: "npm:^29.7.0" + slash: "npm:^3.0.0" + strip-ansi: "npm:^6.0.0" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 10/ab6ac2e562d083faac7d8152ec1cc4eccc80f62e9579b69ed40aedf7211a6b2d57024a6cd53c4e35fd051c39a236e86257d1d99ebdb122291969a0a04563b51e + languageName: node + linkType: hard + +"@jest/create-cache-key-function@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/create-cache-key-function@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + checksum: 10/061ef63b13ec8c8e5d08e4456f03b5cf8c7f9c1cab4fed8402e1479153cafce6eea80420e308ef62027abb7e29b825fcfa06551856bd021d98e92e381bf91723 + languageName: node + linkType: hard + +"@jest/environment@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/environment@npm:29.7.0" + dependencies: + "@jest/fake-timers": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + jest-mock: "npm:^29.7.0" + checksum: 10/90b5844a9a9d8097f2cf107b1b5e57007c552f64315da8c1f51217eeb0a9664889d3f145cdf8acf23a84f4d8309a6675e27d5b059659a004db0ea9546d1c81a8 + languageName: node + linkType: hard + +"@jest/expect-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect-utils@npm:29.7.0" + dependencies: + jest-get-type: "npm:^29.6.3" + checksum: 10/ef8d379778ef574a17bde2801a6f4469f8022a46a5f9e385191dc73bb1fc318996beaed4513fbd7055c2847227a1bed2469977821866534593a6e52a281499ee + languageName: node + linkType: hard + +"@jest/expect@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect@npm:29.7.0" + dependencies: + expect: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + checksum: 10/fea6c3317a8da5c840429d90bfe49d928e89c9e89fceee2149b93a11b7e9c73d2f6e4d7cdf647163da938fc4e2169e4490be6bae64952902bc7a701033fd4880 + languageName: node + linkType: hard + +"@jest/fake-timers@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/fake-timers@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@sinonjs/fake-timers": "npm:^10.0.2" + "@types/node": "npm:*" + jest-message-util: "npm:^29.7.0" + jest-mock: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10/9b394e04ffc46f91725ecfdff34c4e043eb7a16e1d78964094c9db3fde0b1c8803e45943a980e8c740d0a3d45661906de1416ca5891a538b0660481a3a828c27 + languageName: node + linkType: hard + +"@jest/globals@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/globals@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/expect": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + jest-mock: "npm:^29.7.0" + checksum: 10/97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123 + languageName: node + linkType: hard + +"@jest/reporters@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/reporters@npm:29.7.0" + dependencies: + "@bcoe/v8-coverage": "npm:^0.2.3" + "@jest/console": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@jridgewell/trace-mapping": "npm:^0.3.18" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + collect-v8-coverage: "npm:^1.0.0" + exit: "npm:^0.1.2" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + istanbul-lib-coverage: "npm:^3.0.0" + istanbul-lib-instrument: "npm:^6.0.0" + istanbul-lib-report: "npm:^3.0.0" + istanbul-lib-source-maps: "npm:^4.0.0" + istanbul-reports: "npm:^3.1.3" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" + slash: "npm:^3.0.0" + string-length: "npm:^4.0.1" + strip-ansi: "npm:^6.0.0" + v8-to-istanbul: "npm:^9.0.1" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 10/a17d1644b26dea14445cedd45567f4ba7834f980be2ef74447204e14238f121b50d8b858fde648083d2cd8f305f81ba434ba49e37a5f4237a6f2a61180cc73dc + languageName: node + linkType: hard + +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" + dependencies: + "@sinclair/typebox": "npm:^0.27.8" + checksum: 10/910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 + languageName: node + linkType: hard + +"@jest/source-map@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/source-map@npm:29.6.3" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.18" + callsites: "npm:^3.0.0" + graceful-fs: "npm:^4.2.9" + checksum: 10/bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb + languageName: node + linkType: hard + +"@jest/test-result@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-result@npm:29.7.0" + dependencies: + "@jest/console": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/istanbul-lib-coverage": "npm:^2.0.0" + collect-v8-coverage: "npm:^1.0.0" + checksum: 10/c073ab7dfe3c562bff2b8fee6cc724ccc20aa96bcd8ab48ccb2aa309b4c0c1923a9e703cea386bd6ae9b71133e92810475bb9c7c22328fc63f797ad3324ed189 + languageName: node + linkType: hard + +"@jest/test-sequencer@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-sequencer@npm:29.7.0" + dependencies: + "@jest/test-result": "npm:^29.7.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + slash: "npm:^3.0.0" + checksum: 10/4420c26a0baa7035c5419b0892ff8ffe9a41b1583ec54a10db3037cd46a7e29dd3d7202f8aa9d376e9e53be5f8b1bc0d16e1de6880a6d319b033b01dc4c8f639 + languageName: node + linkType: hard + +"@jest/transform@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/transform@npm:29.7.0" + dependencies: + "@babel/core": "npm:^7.11.6" + "@jest/types": "npm:^29.6.3" + "@jridgewell/trace-mapping": "npm:^0.3.18" + babel-plugin-istanbul: "npm:^6.1.1" + chalk: "npm:^4.0.0" + convert-source-map: "npm:^2.0.0" + fast-json-stable-stringify: "npm:^2.1.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + pirates: "npm:^4.0.4" + slash: "npm:^3.0.0" + write-file-atomic: "npm:^4.0.2" + checksum: 10/30f42293545ab037d5799c81d3e12515790bb58513d37f788ce32d53326d0d72ebf5b40f989e6896739aa50a5f77be44686e510966370d58511d5ad2637c68c1 + languageName: node + linkType: hard + +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" + dependencies: + "@jest/schemas": "npm:^29.6.3" + "@types/istanbul-lib-coverage": "npm:^2.0.0" + "@types/istanbul-reports": "npm:^3.0.0" + "@types/node": "npm:*" + "@types/yargs": "npm:^17.0.8" + chalk: "npm:^4.0.0" + checksum: 10/f74bf512fd09bbe2433a2ad460b04668b7075235eea9a0c77d6a42222c10a79b9747dc2b2a623f140ed40d6865a2ed8f538f3cbb75169120ea863f29a7ed76cd + languageName: node + linkType: hard + +"@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.1": + version: 0.3.1 + resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.1" + dependencies: + glob: "npm:^7.2.0" + glob-promise: "npm:^4.2.0" + magic-string: "npm:^0.27.0" + react-docgen-typescript: "npm:^2.2.2" + peerDependencies: + typescript: ">= 4.3.x" + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/ec5052f9cb50e7388ebd2f49f974fd0d67dcd429571047bfeb75304bc6b128b5779d05be5f2143d3d22cd1ee3d4f0e9a4c66168999d861e2e60a2ba6787d11a4 + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" + 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 + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 10/97106439d750a409c22c8bff822d648f6a71f3aa9bc8e5129efdc36343cd3096ddc4eeb1c62d2fe48e9bdd4db37b05d4646a17114ecebd3bbcacfa2de51c3c1d + languageName: node + linkType: hard + +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 10/832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 10/4ed6123217569a1484419ac53f6ea0d9f3b57e5b57ab30d7c267bdb27792a27eb0e4b08e84a2680aa55cc2f2b411ffd6ec3db01c44fdc6dc43aca4b55f8374fd + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10/dced32160a44b49d531b80a4a2159dceab6b3ddf0c8e95a0deae4b0e894b172defa63d5ac52a19c2068e1fe7d31ea4ba931fbeec103233ecb4208953967120fc + languageName: node + linkType: hard + +"@mdx-js/react@npm:^3.0.0": + version: 3.0.1 + resolution: "@mdx-js/react@npm:3.0.1" + dependencies: + "@types/mdx": "npm:^2.0.0" + peerDependencies: + "@types/react": ">=16" + react: ">=16" + checksum: 10/d566407af11e76f498f8133fbfa8a9d8a2ad80dc7a66ca109d29fcb92e953a2d2d7aaedc0c28571d126f1967faeb126dd2e4ab4ea474c994bf5c76fa204c5997 + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": "npm:2.0.5" + run-parallel: "npm:^1.1.9" + checksum: 10/6ab2a9b8a1d67b067922c36f259e3b3dfd6b97b219c540877a4944549a4d49ea5ceba5663905ab5289682f1f3c15ff441d02f0447f620a42e1cb5e1937174d4b + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 10/012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": "npm:2.1.5" + fastq: "npm:^1.6.0" + checksum: 10/40033e33e96e97d77fba5a238e4bba4487b8284678906a9f616b5579ddaf868a18874c0054a75402c9fbaaa033a25ceae093af58c9c30278e35c23c9479e79b0 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^2.0.0": + version: 2.2.2 + resolution: "@npmcli/agent@npm:2.2.2" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^10.0.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 10/96fc0036b101bae5032dc2a4cd832efb815ce9b33f9ee2f29909ee49d96a0026b3565f73c507a69eb8603f5cb32e0ae45a70cab1e2655990a4e06ae99f7f572a + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.1 + resolution: "@npmcli/fs@npm:3.1.1" + dependencies: + semver: "npm:^7.3.5" + checksum: 10/1e0e04087049b24b38bc0b30d87a9388ee3ca1d3fdfc347c2f77d84fcfe6a51f250bc57ba2c1f614d7e4285c6c62bf8c769bc19aa0949ea39e5b043ee023b0bd + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 10/115e8ceeec6bc69dff2048b35c0ab4f8bbee12d8bb6c1f4af758604586d802b6e669dcb02dda61d078de42c2b4ddce41b3d9e726d7daa6b4b850f4adbf7333ff + languageName: node + linkType: hard + +"@playwright/experimental-ct-core@npm:1.42.1": + version: 1.42.1 + resolution: "@playwright/experimental-ct-core@npm:1.42.1" + dependencies: + playwright: "npm:1.42.1" + playwright-core: "npm:1.42.1" + vite: "npm:^5.0.12" + bin: + playwright: cli.js + checksum: 10/ec62a3f0b8c82720101741884f2c5125f1daaba01fc6c9d3eee627b28ce5f9a40f2abc44bd2f40dd1a6a1856d1540468d13b7c05e301cf576d0c8d2984ca722d + languageName: node + linkType: hard + +"@playwright/experimental-ct-react@npm:1.42.1": + version: 1.42.1 + resolution: "@playwright/experimental-ct-react@npm:1.42.1" + dependencies: + "@playwright/experimental-ct-core": "npm:1.42.1" + "@vitejs/plugin-react": "npm:^4.2.1" + bin: + playwright: cli.js + checksum: 10/ab9a6475c9466df397c57a65b44343b73caf115b21db2cadd1ab6057c9fef98f024b3caa459543a6686ea11cae3888f56eb40683744df237f5b30abf31d7cc35 + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^5.0.2": + version: 5.1.0 + resolution: "@rollup/pluginutils@npm:5.1.0" + dependencies: + "@types/estree": "npm:^1.0.0" + estree-walker: "npm:^2.0.2" + picomatch: "npm:^2.3.1" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/abb15eaec5b36f159ec351b48578401bedcefdfa371d24a914cfdbb1e27d0ebfbf895299ec18ccc343d247e71f2502cba21202bc1362d7ef27d5ded699e5c2b2 + languageName: node + linkType: hard + +"@rollup/rollup-android-arm-eabi@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.20.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-android-arm64@npm:4.20.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.20.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.20.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.20.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.20.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.20.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.20.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.20.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.20.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.20.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.20.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.20.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.20.0": + version: 4.20.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.20.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 10/297f95ff77c82c54de8c9907f186076e715ff2621c5222ba50b8d40a170661c0c5242c763cba2a4791f0f91cb1d8ffa53ea1d7294570cf8cd4694c0e383e484d + 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.1 + resolution: "@sinonjs/commons@npm:3.0.1" + dependencies: + type-detect: "npm:4.0.8" + checksum: 10/a0af217ba7044426c78df52c23cedede6daf377586f3ac58857c565769358ab1f44ebf95ba04bbe38814fba6e316ca6f02870a009328294fc2c555d0f85a7117 + languageName: node + linkType: hard + +"@sinonjs/fake-timers@npm:^10.0.2": + version: 10.3.0 + resolution: "@sinonjs/fake-timers@npm:10.3.0" + dependencies: + "@sinonjs/commons": "npm:^3.0.0" + checksum: 10/78155c7bd866a85df85e22028e046b8d46cf3e840f72260954f5e3ed5bd97d66c595524305a6841ffb3f681a08f6e5cef572a2cce5442a8a232dc29fb409b83e + languageName: node + linkType: hard + +"@storybook/addon-actions@portal:../../../code/addons/actions::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/addon-actions@portal:../../../code/addons/actions::locator=portable-stories-react%40workspace%3A." + dependencies: + "@storybook/global": "npm:^5.0.0" + "@types/uuid": "npm:^9.0.1" + dequal: "npm:^2.0.2" + polished: "npm:^4.2.2" + uuid: "npm:^9.0.0" + peerDependencies: + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/addon-backgrounds@portal:../../../code/addons/backgrounds::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/addon-backgrounds@portal:../../../code/addons/backgrounds::locator=portable-stories-react%40workspace%3A." + dependencies: + "@storybook/global": "npm:^5.0.0" + memoizerific: "npm:^1.11.3" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/addon-controls@portal:../../../code/addons/controls::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/addon-controls@portal:../../../code/addons/controls::locator=portable-stories-react%40workspace%3A." + dependencies: + dequal: "npm:^2.0.2" + lodash: "npm:^4.17.21" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/addon-docs@portal:../../../code/addons/docs::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/addon-docs@portal:../../../code/addons/docs::locator=portable-stories-react%40workspace%3A." + dependencies: + "@babel/core": "npm:^7.24.4" + "@mdx-js/react": "npm:^3.0.0" + "@storybook/blocks": "workspace:*" + "@storybook/csf-plugin": "workspace:*" + "@storybook/global": "npm:^5.0.0" + "@storybook/react-dom-shim": "workspace:*" + "@types/react": "npm:^16.8.0 || ^17.0.0 || ^18.0.0" + fs-extra: "npm:^11.1.0" + react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" + react-dom: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" + rehype-external-links: "npm:^3.0.0" + rehype-slug: "npm:^6.0.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/addon-essentials@portal:../../../code/addons/essentials::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/addon-essentials@portal:../../../code/addons/essentials::locator=portable-stories-react%40workspace%3A." + dependencies: + "@storybook/addon-actions": "workspace:*" + "@storybook/addon-backgrounds": "workspace:*" + "@storybook/addon-controls": "workspace:*" + "@storybook/addon-docs": "workspace:*" + "@storybook/addon-highlight": "workspace:*" + "@storybook/addon-measure": "workspace:*" + "@storybook/addon-outline": "workspace:*" + "@storybook/addon-toolbars": "workspace:*" + "@storybook/addon-viewport": "workspace:*" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/addon-highlight@portal:../../../code/addons/highlight::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/addon-highlight@portal:../../../code/addons/highlight::locator=portable-stories-react%40workspace%3A." + dependencies: + "@storybook/global": "npm:^5.0.0" + peerDependencies: + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/addon-interactions@portal:../../../code/addons/interactions::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/addon-interactions@portal:../../../code/addons/interactions::locator=portable-stories-react%40workspace%3A." + dependencies: + "@storybook/global": "npm:^5.0.0" + "@storybook/instrumenter": "workspace:*" + "@storybook/test": "workspace:*" + polished: "npm:^4.2.2" + ts-dedent: "npm:^2.2.0" + peerDependencies: + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/addon-measure@portal:../../../code/addons/measure::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/addon-measure@portal:../../../code/addons/measure::locator=portable-stories-react%40workspace%3A." + dependencies: + "@storybook/global": "npm:^5.0.0" + tiny-invariant: "npm:^1.3.1" + peerDependencies: + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/addon-outline@portal:../../../code/addons/outline::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/addon-outline@portal:../../../code/addons/outline::locator=portable-stories-react%40workspace%3A." + dependencies: + "@storybook/global": "npm:^5.0.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/addon-toolbars@portal:../../../code/addons/toolbars::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/addon-toolbars@portal:../../../code/addons/toolbars::locator=portable-stories-react%40workspace%3A." + peerDependencies: + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/addon-viewport@portal:../../../code/addons/viewport::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/addon-viewport@portal:../../../code/addons/viewport::locator=portable-stories-react%40workspace%3A." + dependencies: + memoizerific: "npm:^1.11.3" + peerDependencies: + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/blocks@portal:../../../code/lib/blocks::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/blocks@portal:../../../code/lib/blocks::locator=portable-stories-react%40workspace%3A." + dependencies: + "@storybook/csf": "npm:^0.1.11" + "@storybook/global": "npm:^5.0.0" + "@storybook/icons": "npm:^1.2.5" + "@types/lodash": "npm:^4.14.167" + color-convert: "npm:^2.0.1" + dequal: "npm:^2.0.2" + lodash: "npm:^4.17.21" + markdown-to-jsx: "npm:^7.4.5" + memoizerific: "npm:^1.11.3" + polished: "npm:^4.2.2" + react-colorful: "npm:^5.1.2" + telejson: "npm:^7.2.0" + ts-dedent: "npm:^2.0.0" + util-deprecate: "npm:^1.0.2" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: "workspace:^" + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + languageName: node + linkType: soft + +"@storybook/builder-vite@portal:../../../code/builders/builder-vite::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/builder-vite@portal:../../../code/builders/builder-vite::locator=portable-stories-react%40workspace%3A." + dependencies: + "@storybook/csf-plugin": "workspace:*" + "@types/find-cache-dir": "npm:^3.2.1" + browser-assert: "npm:^1.2.1" + es-module-lexer: "npm:^1.5.0" + express: "npm:^4.19.2" + find-cache-dir: "npm:^3.0.0" + fs-extra: "npm:^11.1.0" + magic-string: "npm:^0.30.0" + ts-dedent: "npm:^2.0.0" + peerDependencies: + "@preact/preset-vite": "*" + storybook: "workspace:^" + typescript: ">= 4.3.x" + vite: ^4.0.0 || ^5.0.0 + vite-plugin-glimmerx: "*" + peerDependenciesMeta: + "@preact/preset-vite": + optional: true + typescript: + optional: true + vite-plugin-glimmerx: + optional: true + languageName: node + linkType: soft + +"@storybook/codemod@portal:../../../code/lib/codemod::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/codemod@portal:../../../code/lib/codemod::locator=portable-stories-react%40workspace%3A." + dependencies: + "@babel/core": "npm:^7.24.4" + "@babel/preset-env": "npm:^7.24.4" + "@babel/types": "npm:^7.24.0" + "@storybook/core": "workspace:*" + "@storybook/csf": "npm:^0.1.11" + "@types/cross-spawn": "npm:^6.0.2" + cross-spawn: "npm:^7.0.3" + globby: "npm:^14.0.1" + jscodeshift: "npm:^0.15.1" + lodash: "npm:^4.17.21" + prettier: "npm:^3.1.1" + recast: "npm:^0.23.5" + tiny-invariant: "npm:^1.3.1" + languageName: node + linkType: soft + +"@storybook/components@file:../../../code/deprecated/components::locator=portable-stories-react%40workspace%3A.": + version: 8.3.0-alpha.3 + resolution: "@storybook/components@file:../../../code/deprecated/components#../../../code/deprecated/components::hash=2b6336&locator=portable-stories-react%40workspace%3A." + peerDependencies: + storybook: "workspace:^" + checksum: 10/b375b80a14f12a379af2a418025514576ce6eaf0d4ee428a23931aa23bede403ac138cae12b48eaf698d26d7bbac864a8b6ff9177da241c1156bd4a645230ca6 + languageName: node + linkType: hard + +"@storybook/core@portal:../../../code/core::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/core@portal:../../../code/core::locator=portable-stories-react%40workspace%3A." + dependencies: + "@storybook/csf": "npm:^0.1.11" + "@types/express": "npm:^4.17.21" + "@types/node": "npm:^18.0.0" + browser-assert: "npm:^1.2.1" + esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0" + esbuild-register: "npm:^3.5.0" + express: "npm:^4.19.2" + process: "npm:^0.11.10" + recast: "npm:^0.23.5" + util: "npm:^0.12.4" + ws: "npm:^8.2.3" + languageName: node + linkType: soft + +"@storybook/csf-plugin@portal:../../../code/lib/csf-plugin::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/csf-plugin@portal:../../../code/lib/csf-plugin::locator=portable-stories-react%40workspace%3A." + dependencies: + unplugin: "npm:^1.3.1" + peerDependencies: + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/csf@npm:^0.0.1": + version: 0.0.1 + resolution: "@storybook/csf@npm:0.0.1" + dependencies: + lodash: "npm:^4.17.15" + checksum: 10/f6bb019bccd8abc14e45a85258158b7bd8cc525887ac8dc9151ed8c4908be3b5f5523da8a7a9b96ff11b13b6c1744e1a0e070560d63d836b950f595f9a5719d4 + languageName: node + linkType: hard + +"@storybook/csf@npm:^0.1.11": + version: 0.1.11 + resolution: "@storybook/csf@npm:0.1.11" + dependencies: + type-fest: "npm:^2.19.0" + checksum: 10/f6eeefe3b92ab206676587da9e22a775da026c055999681580d2ca23c98185736f965adc79039a0ae97ea625f0fbc7915cd4559e5db24229a4805784d0b78584 + languageName: node + linkType: hard + +"@storybook/global@npm:^5.0.0": + version: 5.0.0 + resolution: "@storybook/global@npm:5.0.0" + checksum: 10/0e7b495f4fe7f36447e793926f1c0460ec07fd66f0da68e3150da5878f6043c9eeb9b41614a45c5ec0d48d5d383c59ca8f88b6dc7882a2a784ac9b20375d8edb + languageName: node + linkType: hard + +"@storybook/icons@npm:^1.2.5": + version: 1.2.10 + resolution: "@storybook/icons@npm:1.2.10" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 10/fad929a7e3c7a1a0fbf6b924b0be73f557b1bba9519faa15422482f89513ceb4b649444c224ee3d1dfbdce3616e684063cff23da08f6b1dd96f1aff4381388a6 + languageName: node + linkType: hard + +"@storybook/instrumenter@portal:../../../code/lib/instrumenter::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/instrumenter@portal:../../../code/lib/instrumenter::locator=portable-stories-react%40workspace%3A." + dependencies: + "@storybook/global": "npm:^5.0.0" + "@vitest/utils": "npm:^1.3.1" + util: "npm:^0.12.4" + peerDependencies: + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/manager-api@file:../../../code/deprecated/manager-api::locator=portable-stories-react%40workspace%3A.": + version: 8.3.0-alpha.3 + resolution: "@storybook/manager-api@file:../../../code/deprecated/manager-api#../../../code/deprecated/manager-api::hash=ccd085&locator=portable-stories-react%40workspace%3A." + peerDependencies: + storybook: "workspace:^" + checksum: 10/4d3116408fabb59809edc23372f61f52f9b3f63dad23bd9eefba31792ec5810f4451ca2a7b8af1d206899a5e6f79536da8fa4ecdfe467778ab35dca8a1ffb36d + languageName: node + linkType: hard + +"@storybook/preview-api@file:../../../code/deprecated/preview-api::locator=portable-stories-react%40workspace%3A.": + version: 8.3.0-alpha.3 + resolution: "@storybook/preview-api@file:../../../code/deprecated/preview-api#../../../code/deprecated/preview-api::hash=1e5fab&locator=portable-stories-react%40workspace%3A." + peerDependencies: + storybook: "workspace:^" + checksum: 10/da2c3df027e10020f4be29a8ff3fd86e498cca06d0e2d8cb5aec51e06575cc0d325e83980b4b6be80eb83922fcd088d9a8608dcef728264eb866a7ffbfbdce34 + languageName: node + linkType: hard + +"@storybook/react-dom-shim@portal:../../../code/lib/react-dom-shim::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/react-dom-shim@portal:../../../code/lib/react-dom-shim::locator=portable-stories-react%40workspace%3A." + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/react-vite@portal:../../../code/frameworks/react-vite::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/react-vite@portal:../../../code/frameworks/react-vite::locator=portable-stories-react%40workspace%3A." + dependencies: + "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.3.1" + "@rollup/pluginutils": "npm:^5.0.2" + "@storybook/builder-vite": "workspace:*" + "@storybook/react": "workspace:*" + find-up: "npm:^5.0.0" + magic-string: "npm:^0.30.0" + react-docgen: "npm:^7.0.0" + resolve: "npm:^1.22.8" + tsconfig-paths: "npm:^4.2.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: "workspace:^" + vite: ^4.0.0 || ^5.0.0 + languageName: node + linkType: soft + +"@storybook/react@portal:../../../code/renderers/react::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/react@portal:../../../code/renderers/react::locator=portable-stories-react%40workspace%3A." + dependencies: + "@storybook/components": "workspace:^" + "@storybook/global": "npm:^5.0.0" + "@storybook/manager-api": "workspace:^" + "@storybook/preview-api": "workspace:^" + "@storybook/react-dom-shim": "workspace:*" + "@storybook/theming": "workspace:^" + "@types/escodegen": "npm:^0.0.6" + "@types/estree": "npm:^0.0.51" + "@types/node": "npm:^18.0.0" + acorn: "npm:^7.4.1" + acorn-jsx: "npm:^5.3.1" + acorn-walk: "npm:^7.2.0" + escodegen: "npm:^2.1.0" + html-tags: "npm:^3.1.0" + lodash: "npm:^4.17.21" + prop-types: "npm:^15.7.2" + react-element-to-jsx-string: "npm:^15.0.0" + semver: "npm:^7.3.7" + ts-dedent: "npm:^2.0.0" + type-fest: "npm:~2.19" + util-deprecate: "npm:^1.0.2" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: "workspace:^" + typescript: ">= 4.2.x" + peerDependenciesMeta: + typescript: + optional: true + languageName: node + linkType: soft + +"@storybook/test@portal:../../../code/lib/test::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "@storybook/test@portal:../../../code/lib/test::locator=portable-stories-react%40workspace%3A." + dependencies: + "@storybook/csf": "npm:^0.1.11" + "@storybook/instrumenter": "workspace:*" + "@testing-library/dom": "npm:10.4.0" + "@testing-library/jest-dom": "npm:6.4.8" + "@testing-library/user-event": "npm:14.5.2" + "@vitest/expect": "npm:2.0.5" + "@vitest/spy": "npm:2.0.5" + util: "npm:^0.12.4" + peerDependencies: + storybook: "workspace:^" + languageName: node + linkType: soft + +"@storybook/theming@file:../../../code/deprecated/theming::locator=portable-stories-react%40workspace%3A.": + version: 8.3.0-alpha.3 + resolution: "@storybook/theming@file:../../../code/deprecated/theming#../../../code/deprecated/theming::hash=3d046c&locator=portable-stories-react%40workspace%3A." + peerDependencies: + storybook: "workspace:^" + checksum: 10/88fa1ab2e7618127d30fbdbc62df5a299476ea7424a7eca9cc7459564ec80d59ea5d53ad6df04cb7716e0ae63a6a279ec3560c26c5ae24bb8ab812e800c546c5 + languageName: node + linkType: hard + +"@swc/core-darwin-arm64@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-darwin-arm64@npm:1.7.6" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-darwin-x64@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-darwin-x64@npm:1.7.6" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@swc/core-linux-arm-gnueabihf@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.6" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@swc/core-linux-arm64-gnu@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-linux-arm64-gnu@npm:1.7.6" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-arm64-musl@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-linux-arm64-musl@npm:1.7.6" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-linux-x64-gnu@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-linux-x64-gnu@npm:1.7.6" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@swc/core-linux-x64-musl@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-linux-x64-musl@npm:1.7.6" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@swc/core-win32-arm64-msvc@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-win32-arm64-msvc@npm:1.7.6" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@swc/core-win32-ia32-msvc@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-win32-ia32-msvc@npm:1.7.6" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@swc/core-win32-x64-msvc@npm:1.7.6": + version: 1.7.6 + resolution: "@swc/core-win32-x64-msvc@npm:1.7.6" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@swc/core@npm:^1.4.2": + version: 1.7.6 + resolution: "@swc/core@npm:1.7.6" + dependencies: + "@swc/core-darwin-arm64": "npm:1.7.6" + "@swc/core-darwin-x64": "npm:1.7.6" + "@swc/core-linux-arm-gnueabihf": "npm:1.7.6" + "@swc/core-linux-arm64-gnu": "npm:1.7.6" + "@swc/core-linux-arm64-musl": "npm:1.7.6" + "@swc/core-linux-x64-gnu": "npm:1.7.6" + "@swc/core-linux-x64-musl": "npm:1.7.6" + "@swc/core-win32-arm64-msvc": "npm:1.7.6" + "@swc/core-win32-ia32-msvc": "npm:1.7.6" + "@swc/core-win32-x64-msvc": "npm:1.7.6" + "@swc/counter": "npm:^0.1.3" + "@swc/types": "npm:^0.1.12" + peerDependencies: + "@swc/helpers": "*" + dependenciesMeta: + "@swc/core-darwin-arm64": + optional: true + "@swc/core-darwin-x64": + optional: true + "@swc/core-linux-arm-gnueabihf": + optional: true + "@swc/core-linux-arm64-gnu": + optional: true + "@swc/core-linux-arm64-musl": + optional: true + "@swc/core-linux-x64-gnu": + optional: true + "@swc/core-linux-x64-musl": + optional: true + "@swc/core-win32-arm64-msvc": + optional: true + "@swc/core-win32-ia32-msvc": + optional: true + "@swc/core-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc/helpers": + optional: true + checksum: 10/09a089e3d9db118a6d6c4ead90364ae2ce8581a893e4c4c95db135431abf74c1d8d58558c27e557d2d7822bb3c25a114f4ed5cdd8465465d84733416a2c49d87 + languageName: node + linkType: hard + +"@swc/counter@npm:^0.1.3": + version: 0.1.3 + resolution: "@swc/counter@npm:0.1.3" + checksum: 10/df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 + languageName: node + linkType: hard + +"@swc/jest@npm:^0.2.36": + version: 0.2.36 + resolution: "@swc/jest@npm:0.2.36" + dependencies: + "@jest/create-cache-key-function": "npm:^29.7.0" + "@swc/counter": "npm:^0.1.3" + jsonc-parser: "npm:^3.2.0" + peerDependencies: + "@swc/core": "*" + checksum: 10/39c5699646f0e90400af106156e5604069e8a7d8216f2421e171837b086839176c16f69925ce6a5c4c48182005eed649bdf9664023708e169aa48814feecc0d8 + languageName: node + linkType: hard + +"@swc/types@npm:^0.1.12": + version: 0.1.12 + resolution: "@swc/types@npm:0.1.12" + dependencies: + "@swc/counter": "npm:^0.1.3" + checksum: 10/92dbbc70cd068ea30fb6fbdc1ae8599d6c058a5d09b2923d6e4e24fab5ad7c86a19dd01f349a8e03e300a9321e06911a24df18303b40e307fbd4109372cef2ef + 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.4.8, @testing-library/jest-dom@npm:^6.4.0": + version: 6.4.8 + resolution: "@testing-library/jest-dom@npm:6.4.8" + dependencies: + "@adobe/css-tools": "npm:^4.4.0" + "@babel/runtime": "npm:^7.9.2" + aria-query: "npm:^5.0.0" + chalk: "npm:^3.0.0" + css.escape: "npm:^1.5.1" + dom-accessibility-api: "npm:^0.6.3" + lodash: "npm:^4.17.21" + redent: "npm:^3.0.0" + checksum: 10/011e5a309e2cfc0c5cee6454427030d9a5d690df212bedcc78c15ee8d23218c3e51be32617ca879f060445ba0ba38e1b8d224b5ab11444ee076c37ed8c1c123a + languageName: node + linkType: hard + +"@testing-library/react@npm:^14.2.1": + 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.5.2": + version: 14.5.2 + resolution: "@testing-library/user-event@npm:14.5.2" + peerDependencies: + "@testing-library/dom": ">=7.21.4" + checksum: 10/49821459d81c6bc435d97128d6386ca24f1e4b3ba8e46cb5a96fe3643efa6e002d88c1b02b7f2ec58da593e805c59b78d7fdf0db565c1f02ba782f63ee984040 + languageName: node + linkType: hard + +"@tootallnate/once@npm:2": + version: 2.0.0 + resolution: "@tootallnate/once@npm:2.0.0" + checksum: 10/ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 + languageName: node + linkType: hard + +"@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: + "@babel/parser": "npm:^7.20.7" + "@babel/types": "npm:^7.20.7" + "@types/babel__generator": "npm:*" + "@types/babel__template": "npm:*" + "@types/babel__traverse": "npm:*" + checksum: 10/c32838d280b5ab59d62557f9e331d3831f8e547ee10b4f85cb78753d97d521270cebfc73ce501e9fb27fe71884d1ba75e18658692c2f4117543f0fc4e3e118b3 + languageName: node + linkType: hard + +"@types/babel__generator@npm:*": + version: 7.6.8 + resolution: "@types/babel__generator@npm:7.6.8" + dependencies: + "@babel/types": "npm:^7.0.0" + checksum: 10/b53c215e9074c69d212402990b0ca8fa57595d09e10d94bda3130aa22b55d796e50449199867879e4ea0ee968f3a2099e009cfb21a726a53324483abbf25cd30 + languageName: node + linkType: hard + +"@types/babel__template@npm:*": + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" + dependencies: + "@babel/parser": "npm:^7.1.0" + "@babel/types": "npm:^7.0.0" + checksum: 10/d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 + languageName: node + linkType: hard + +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6, @types/babel__traverse@npm:^7.18.0": + version: 7.20.6 + resolution: "@types/babel__traverse@npm:7.20.6" + dependencies: + "@babel/types": "npm:^7.20.7" + checksum: 10/63d13a3789aa1e783b87a8b03d9fb2c2c90078de7782422feff1631b8c2a25db626e63a63ac5a1465d47359201c73069dacb4b52149d17c568187625da3064ae + languageName: node + linkType: hard + +"@types/body-parser@npm:*": + version: 1.19.5 + resolution: "@types/body-parser@npm:1.19.5" + dependencies: + "@types/connect": "npm:*" + "@types/node": "npm:*" + checksum: 10/1e251118c4b2f61029cc43b0dc028495f2d1957fe8ee49a707fb940f86a9bd2f9754230805598278fe99958b49e9b7e66eec8ef6a50ab5c1f6b93e1ba2aaba82 + languageName: node + linkType: hard + +"@types/connect@npm:*": + version: 3.4.38 + resolution: "@types/connect@npm:3.4.38" + dependencies: + "@types/node": "npm:*" + checksum: 10/7eb1bc5342a9604facd57598a6c62621e244822442976c443efb84ff745246b10d06e8b309b6e80130026a396f19bf6793b7cecd7380169f369dac3bfc46fb99 + languageName: node + linkType: hard + +"@types/cross-spawn@npm:^6.0.2": + version: 6.0.6 + resolution: "@types/cross-spawn@npm:6.0.6" + dependencies: + "@types/node": "npm:*" + checksum: 10/b4172927cd1387cf037c3ade785ef46c87537b7bc2803d7f6663b4904d0c5d6f726415d1adb2fee4fecb21746738f11336076449265d46be4ce110cc3a8c8436 + languageName: node + linkType: hard + +"@types/doctrine@npm:^0.0.9": + version: 0.0.9 + resolution: "@types/doctrine@npm:0.0.9" + checksum: 10/64ef06e6eea2f4f9684d259fedbcb8bf21c954630b96ea2e04875ca42763552b0ba3b01b3dd27ec0f9ea6f8b3b0dba4965d31d5a925cd4c6225fd13a93ae9354 + languageName: node + linkType: hard + +"@types/emscripten@npm:^1.39.6": + version: 1.39.13 + resolution: "@types/emscripten@npm:1.39.13" + checksum: 10/02c0446150f9cc2c74dc3a551f86ce13df266c33d8b98d11d9f17263e2d98a6a6b4d36bdd15066c4e1547ae1ed2d52eed9420116b4935d119009e0f53ddbb041 + languageName: node + linkType: hard + +"@types/escodegen@npm:^0.0.6": + version: 0.0.6 + resolution: "@types/escodegen@npm:0.0.6" + checksum: 10/2e91554a47eb98076a3ba6e3548640e50b28a0f5b69134f99dd1e0ce5223c0a1726f23d25aafd40e4c7961d7c3c519782949aa606d58d0e7431c7fb1ec011c4c + languageName: node + linkType: hard + +"@types/estree@npm:1.0.5, @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/estree@npm:^0.0.51": + version: 0.0.51 + resolution: "@types/estree@npm:0.0.51" + checksum: 10/b566c7a3fc8a81ca3d9e00a717e90b8f5d567e2476b4f6d76a20ec6da33ec28165b8f989ed8dd0c9df41405199777ec36a4f85f32a347fbc6c3f696a3128b6e7 + languageName: node + linkType: hard + +"@types/express-serve-static-core@npm:^4.17.33": + version: 4.19.5 + resolution: "@types/express-serve-static-core@npm:4.19.5" + dependencies: + "@types/node": "npm:*" + "@types/qs": "npm:*" + "@types/range-parser": "npm:*" + "@types/send": "npm:*" + checksum: 10/49350c6315eeb7d640e13e6138ba6005121b3b610b1e25746fccd5b86b559be810a4ba384b9bd7eee288975b5bd8cf67c1772c646254b812beaa488774eb5513 + languageName: node + linkType: hard + +"@types/express@npm:^4.17.21": + version: 4.17.21 + resolution: "@types/express@npm:4.17.21" + dependencies: + "@types/body-parser": "npm:*" + "@types/express-serve-static-core": "npm:^4.17.33" + "@types/qs": "npm:*" + "@types/serve-static": "npm:*" + checksum: 10/7a6d26cf6f43d3151caf4fec66ea11c9d23166e4f3102edfe45a94170654a54ea08cf3103d26b3928d7ebcc24162c90488e33986b7e3a5f8941225edd5eb18c7 + languageName: node + linkType: hard + +"@types/find-cache-dir@npm:^3.2.1": + version: 3.2.1 + resolution: "@types/find-cache-dir@npm:3.2.1" + checksum: 10/bf5c4e96da40247cd9e6327f54dfccda961a0fb2d70e3c71bd05def94de4c2e6fb310fe8ecb0f04ecf5dbc52214e184b55a2337b0f87250d4ae1e2e7d58321e4 + languageName: node + linkType: hard + +"@types/glob@npm:^7.1.3": + version: 7.2.0 + resolution: "@types/glob@npm:7.2.0" + dependencies: + "@types/minimatch": "npm:*" + "@types/node": "npm:*" + checksum: 10/6ae717fedfdfdad25f3d5a568323926c64f52ef35897bcac8aca8e19bc50c0bd84630bbd063e5d52078b2137d8e7d3c26eabebd1a2f03ff350fff8a91e79fc19 + languageName: node + linkType: hard + +"@types/graceful-fs@npm:^4.1.3": + version: 4.1.9 + resolution: "@types/graceful-fs@npm:4.1.9" + dependencies: + "@types/node": "npm:*" + checksum: 10/79d746a8f053954bba36bd3d94a90c78de995d126289d656fb3271dd9f1229d33f678da04d10bce6be440494a5a73438e2e363e92802d16b8315b051036c5256 + languageName: node + linkType: hard + +"@types/hast@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/hast@npm:3.0.4" + dependencies: + "@types/unist": "npm:*" + checksum: 10/732920d81bb7605895776841b7658b4d8cc74a43a8fa176017cc0fb0ecc1a4c82a2b75a4fe6b71aa262b649d3fb62858c6789efa3793ea1d40269953af96ecb5 + languageName: node + linkType: hard + +"@types/http-errors@npm:*": + version: 2.0.4 + resolution: "@types/http-errors@npm:2.0.4" + checksum: 10/1f3d7c3b32c7524811a45690881736b3ef741bf9849ae03d32ad1ab7062608454b150a4e7f1351f83d26a418b2d65af9bdc06198f1c079d75578282884c4e8e3 + languageName: node + linkType: hard + +"@types/identity-obj-proxy@npm:^3": + version: 3.0.2 + resolution: "@types/identity-obj-proxy@npm:3.0.2" + checksum: 10/77387ee587657ab24f12a1dee5c0e1386358d5c38cda5cac78bc5049340cb358e009f6254de3bbdee6a08e46f13b1552cd47a0bbd3e7a53ff469bf58a04ec6e9 + languageName: node + linkType: hard + +"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": + version: 2.0.6 + resolution: "@types/istanbul-lib-coverage@npm:2.0.6" + checksum: 10/3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778 + languageName: node + linkType: hard + +"@types/istanbul-lib-report@npm:*": + version: 3.0.3 + resolution: "@types/istanbul-lib-report@npm:3.0.3" + dependencies: + "@types/istanbul-lib-coverage": "npm:*" + checksum: 10/b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4 + languageName: node + linkType: hard + +"@types/istanbul-reports@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/istanbul-reports@npm:3.0.4" + dependencies: + "@types/istanbul-lib-report": "npm:*" + checksum: 10/93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95 + languageName: node + linkType: hard + +"@types/jsdom@npm:^20.0.0": + version: 20.0.1 + resolution: "@types/jsdom@npm:20.0.1" + dependencies: + "@types/node": "npm:*" + "@types/tough-cookie": "npm:*" + parse5: "npm:^7.0.0" + checksum: 10/15fbb9a0bfb4a5845cf6e795f2fd12400aacfca53b8c7e5bca4a3e5e8fa8629f676327964d64258aefb127d2d8a2be86dad46359efbfca0e8c9c2b790e7f8a88 + languageName: node + linkType: hard + +"@types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.9": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 10/1a3c3e06236e4c4aab89499c428d585527ce50c24fe8259e8b3926d3df4cfbbbcf306cfc73ddfb66cbafc973116efd15967020b0f738f63e09e64c7d260519e7 + languageName: node + linkType: hard + +"@types/lodash@npm:^4.14.167": + version: 4.17.7 + resolution: "@types/lodash@npm:4.17.7" + checksum: 10/b8177f19cf962414a66989837481b13f546afc2e98e8d465bec59e6ac03a59c584eb7053ce511cde3a09c5f3096d22a5ae22cfb56b23f3b0da75b0743b6b1a44 + languageName: node + linkType: hard + +"@types/mdx@npm:^2.0.0": + version: 2.0.13 + resolution: "@types/mdx@npm:2.0.13" + checksum: 10/b73ed5f08114879b9590dc6a9ee8b648643c57c708583cd24b2bc3cc8961361fc63139ac7e9291e7b3b6e6b45707749d01d6f9727ddec5533df75dc3b90871a4 + languageName: node + linkType: hard + +"@types/mime@npm:^1": + version: 1.3.5 + resolution: "@types/mime@npm:1.3.5" + checksum: 10/e29a5f9c4776f5229d84e525b7cd7dd960b51c30a0fb9a028c0821790b82fca9f672dab56561e2acd9e8eed51d431bde52eafdfef30f643586c4162f1aecfc78 + languageName: node + linkType: hard + +"@types/minimatch@npm:*": + version: 5.1.2 + resolution: "@types/minimatch@npm:5.1.2" + checksum: 10/94db5060d20df2b80d77b74dd384df3115f01889b5b6c40fa2dfa27cfc03a68fb0ff7c1f2a0366070263eb2e9d6bfd8c87111d4bc3ae93c3f291297c1bf56c85 + languageName: node + linkType: hard + +"@types/node@npm:*": + version: 22.1.0 + resolution: "@types/node@npm:22.1.0" + dependencies: + undici-types: "npm:~6.13.0" + checksum: 10/c2ac1340509646b6c673b27fae2a46e501a97e540e7221be4dd2e0be7a0f61efefb5bf3be8bedf2dbce245fa49cfc49bba77bce73fa3c4296d0d19521ced3222 + languageName: node + linkType: hard + +"@types/node@npm:^18.0.0": + version: 18.19.43 + resolution: "@types/node@npm:18.19.43" + dependencies: + undici-types: "npm:~5.26.4" + checksum: 10/b8ee19ecf9864f0afef8edc92d65e7f57d7b6ac5b756f0a2b49063899a82ecd6ba05f1eeca854644451e7777b9c1894f3049608e468991d44f2ea0c09d3b3184 + languageName: node + linkType: hard + +"@types/prop-types@npm:*": + version: 15.7.12 + resolution: "@types/prop-types@npm:15.7.12" + checksum: 10/ac16cc3d0a84431ffa5cfdf89579ad1e2269549f32ce0c769321fdd078f84db4fbe1b461ed5a1a496caf09e637c0e367d600c541435716a55b1d9713f5035dfe + languageName: node + linkType: hard + +"@types/qs@npm:*": + version: 6.9.15 + resolution: "@types/qs@npm:6.9.15" + checksum: 10/97d8208c2b82013b618e7a9fc14df6bd40a73e1385ac479b6896bafc7949a46201c15f42afd06e86a05e914f146f495f606b6fb65610cc60cf2e0ff743ec38a2 + languageName: node + linkType: hard + +"@types/range-parser@npm:*": + version: 1.2.7 + resolution: "@types/range-parser@npm:1.2.7" + checksum: 10/95640233b689dfbd85b8c6ee268812a732cf36d5affead89e806fe30da9a430767af8ef2cd661024fd97e19d61f3dec75af2df5e80ec3bea000019ab7028629a + languageName: node + linkType: hard + +"@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.19": + version: 18.3.0 + resolution: "@types/react-dom@npm:18.3.0" + dependencies: + "@types/react": "npm:*" + checksum: 10/6ff53f5a7b7fba952a68e114d3b542ebdc1e87a794234785ebab0bcd9bde7fb4885f21ebaf93d26dc0a1b5b93287f42cad68b78ae04dddf6b20da7aceff0beaf + languageName: node + linkType: hard + +"@types/react@npm:*, @types/react@npm:^16.8.0 || ^17.0.0 || ^18.0.0, @types/react@npm:^18.2.55": + version: 18.3.3 + resolution: "@types/react@npm:18.3.3" + dependencies: + "@types/prop-types": "npm:*" + csstype: "npm:^3.0.2" + checksum: 10/68e203b7f1f91d6cf21f33fc7af9d6d228035a26c83f514981e54aa3da695d0ec6af10c277c6336de1dd76c4adbe9563f3a21f80c4462000f41e5f370b46e96c + languageName: node + linkType: hard + +"@types/resolve@npm:^1.20.2": + version: 1.20.6 + resolution: "@types/resolve@npm:1.20.6" + checksum: 10/dc35f5517606b6687cd971c0281ac58bdee2c50c051b030f04647d3991688be2259c304ee97e5b5d4b9936072c36767eb5933b54611a407d6557972bb6fea4f6 + languageName: node + linkType: hard + +"@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.4, @types/semver@npm:^7.5.0": + version: 7.5.8 + resolution: "@types/semver@npm:7.5.8" + checksum: 10/3496808818ddb36deabfe4974fd343a78101fa242c4690044ccdc3b95dcf8785b494f5d628f2f47f38a702f8db9c53c67f47d7818f2be1b79f2efb09692e1178 + languageName: node + linkType: hard + +"@types/send@npm:*": + version: 0.17.4 + resolution: "@types/send@npm:0.17.4" + dependencies: + "@types/mime": "npm:^1" + "@types/node": "npm:*" + checksum: 10/28320a2aa1eb704f7d96a65272a07c0bf3ae7ed5509c2c96ea5e33238980f71deeed51d3631927a77d5250e4091b3e66bce53b42d770873282c6a20bb8b0280d + languageName: node + linkType: hard + +"@types/serve-static@npm:*": + version: 1.15.7 + resolution: "@types/serve-static@npm:1.15.7" + dependencies: + "@types/http-errors": "npm:*" + "@types/node": "npm:*" + "@types/send": "npm:*" + checksum: 10/c5a7171d5647f9fbd096ed1a26105759f3153ccf683824d99fee4c7eb9cde2953509621c56a070dd9fb1159e799e86d300cbe4e42245ebc5b0c1767e8ca94a67 + languageName: node + linkType: hard + +"@types/sinonjs__fake-timers@npm:8.1.1": + version: 8.1.1 + resolution: "@types/sinonjs__fake-timers@npm:8.1.1" + checksum: 10/567e01159b07eb19a56aa9a619bda963a3e2c1261b197b83fc664867228ce679e189450f0ae38483a08857155f94d9ae5d88e72c0f44f269103f63c2946a73ed + languageName: node + linkType: hard + +"@types/sizzle@npm:^2.3.2": + version: 2.3.8 + resolution: "@types/sizzle@npm:2.3.8" + checksum: 10/2ac62443dc917f5f903cbd9afc51c7d6cc1c6569b4e1a15faf04aea5b13b486e7f208650014c3dc4fed34653eded3e00fe5abffe0e6300cbf0e8a01beebf11a6 + languageName: node + linkType: hard + +"@types/stack-utils@npm:^2.0.0": + version: 2.0.3 + resolution: "@types/stack-utils@npm:2.0.3" + checksum: 10/72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5 + languageName: node + linkType: hard + +"@types/tough-cookie@npm:*": + version: 4.0.5 + resolution: "@types/tough-cookie@npm:4.0.5" + checksum: 10/01fd82efc8202670865928629697b62fe9bf0c0dcbc5b1c115831caeb073a2c0abb871ff393d7df1ae94ea41e256cb87d2a5a91fd03cdb1b0b4384e08d4ee482 + languageName: node + linkType: hard + +"@types/unist@npm:*, @types/unist@npm:^3.0.0": + version: 3.0.2 + resolution: "@types/unist@npm:3.0.2" + checksum: 10/3d04d0be69316e5f14599a0d993a208606c12818cf631fd399243d1dc7a9bd8a3917d6066baa6abc290814afbd744621484756803c80cba892c39cd4b4a85616 + languageName: node + linkType: hard + +"@types/uuid@npm:^9.0.1": + version: 9.0.8 + resolution: "@types/uuid@npm:9.0.8" + checksum: 10/b8c60b7ba8250356b5088302583d1704a4e1a13558d143c549c408bf8920535602ffc12394ede77f8a8083511b023704bc66d1345792714002bfa261b17c5275 + languageName: node + linkType: hard + +"@types/yargs-parser@npm:*": + version: 21.0.3 + resolution: "@types/yargs-parser@npm:21.0.3" + checksum: 10/a794eb750e8ebc6273a51b12a0002de41343ffe46befef460bdbb57262d187fdf608bc6615b7b11c462c63c3ceb70abe2564c8dd8ee0f7628f38a314f74a9b9b + languageName: node + linkType: hard + +"@types/yargs@npm:^17.0.8": + version: 17.0.32 + resolution: "@types/yargs@npm:17.0.32" + dependencies: + "@types/yargs-parser": "npm:*" + checksum: 10/1e2b2673847011ce43607df690d392f137d95a2d6ea85aa319403eadda2ef4277365efd4982354d8843f2611ef3846c88599660aaeb537fa9ccddae83c2a89de + languageName: node + linkType: hard + +"@types/yauzl@npm:^2.9.1": + version: 2.10.3 + resolution: "@types/yauzl@npm:2.10.3" + dependencies: + "@types/node": "npm:*" + checksum: 10/5ee966ea7bd6b2802f31ad4281c92c4c0b6dfa593c378a2582c58541fa113bec3d70eb0696b34ad95e8e6861a884cba6c3e351285816693ed176222f840a8c08 + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:^6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" + dependencies: + "@eslint-community/regexpp": "npm:^4.5.1" + "@typescript-eslint/scope-manager": "npm:6.21.0" + "@typescript-eslint/type-utils": "npm:6.21.0" + "@typescript-eslint/utils": "npm:6.21.0" + "@typescript-eslint/visitor-keys": "npm:6.21.0" + debug: "npm:^4.3.4" + graphemer: "npm:^1.4.0" + ignore: "npm:^5.2.4" + natural-compare: "npm:^1.4.0" + semver: "npm:^7.5.4" + ts-api-utils: "npm:^1.0.1" + peerDependencies: + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/a57de0f630789330204cc1531f86cfc68b391cafb1ba67c8992133f1baa2a09d629df66e71260b040de4c9a3ff1252952037093c4128b0d56c4dbb37720b4c1d + languageName: node + linkType: hard + +"@typescript-eslint/parser@npm:^6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/parser@npm:6.21.0" + dependencies: + "@typescript-eslint/scope-manager": "npm:6.21.0" + "@typescript-eslint/types": "npm:6.21.0" + "@typescript-eslint/typescript-estree": "npm:6.21.0" + "@typescript-eslint/visitor-keys": "npm:6.21.0" + debug: "npm:^4.3.4" + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/4d51cdbc170e72275efc5ef5fce48a81ec431e4edde8374f4d0213d8d370a06823e1a61ae31d502a5f1b0d1f48fc4d29a1b1b5c2dcf809d66d3872ccf6e46ac7 + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/scope-manager@npm:5.62.0" + dependencies: + "@typescript-eslint/types": "npm:5.62.0" + "@typescript-eslint/visitor-keys": "npm:5.62.0" + checksum: 10/e827770baa202223bc0387e2fd24f630690809e460435b7dc9af336c77322290a770d62bd5284260fa881c86074d6a9fd6c97b07382520b115f6786b8ed499da + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/scope-manager@npm:6.21.0" + dependencies: + "@typescript-eslint/types": "npm:6.21.0" + "@typescript-eslint/visitor-keys": "npm:6.21.0" + checksum: 10/fe91ac52ca8e09356a71dc1a2f2c326480f3cccfec6b2b6d9154c1a90651ab8ea270b07c67df5678956c3bbf0bbe7113ab68f68f21b20912ea528b1214197395 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/type-utils@npm:6.21.0" + dependencies: + "@typescript-eslint/typescript-estree": "npm:6.21.0" + "@typescript-eslint/utils": "npm:6.21.0" + debug: "npm:^4.3.4" + ts-api-utils: "npm:^1.0.1" + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/d03fb3ee1caa71f3ce053505f1866268d7ed79ffb7fed18623f4a1253f5b8f2ffc92636d6fd08fcbaf5bd265a6de77bf192c53105131e4724643dfc910d705fc + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/types@npm:5.62.0" + checksum: 10/24e8443177be84823242d6729d56af2c4b47bfc664dd411a1d730506abf2150d6c31bdefbbc6d97c8f91043e3a50e0c698239dcb145b79bb6b0c34469aaf6c45 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/types@npm:6.21.0" + checksum: 10/e26da86d6f36ca5b6ef6322619f8ec55aabcd7d43c840c977ae13ae2c964c3091fc92eb33730d8be08927c9de38466c5323e78bfb270a9ff1d3611fe821046c5 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" + dependencies: + "@typescript-eslint/types": "npm:5.62.0" + "@typescript-eslint/visitor-keys": "npm:5.62.0" + debug: "npm:^4.3.4" + globby: "npm:^11.1.0" + is-glob: "npm:^4.0.3" + semver: "npm:^7.3.7" + tsutils: "npm:^3.21.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/06c975eb5f44b43bd19fadc2e1023c50cf87038fe4c0dd989d4331c67b3ff509b17fa60a3251896668ab4d7322bdc56162a9926971218d2e1a1874d2bef9a52e + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.21.0" + dependencies: + "@typescript-eslint/types": "npm:6.21.0" + "@typescript-eslint/visitor-keys": "npm:6.21.0" + debug: "npm:^4.3.4" + globby: "npm:^11.1.0" + is-glob: "npm:^4.0.3" + minimatch: "npm:9.0.3" + semver: "npm:^7.5.4" + ts-api-utils: "npm:^1.0.1" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/b32fa35fca2a229e0f5f06793e5359ff9269f63e9705e858df95d55ca2cd7fdb5b3e75b284095a992c48c5fc46a1431a1a4b6747ede2dd08929dc1cbacc589b8 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/utils@npm:6.21.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + "@types/json-schema": "npm:^7.0.12" + "@types/semver": "npm:^7.5.0" + "@typescript-eslint/scope-manager": "npm:6.21.0" + "@typescript-eslint/types": "npm:6.21.0" + "@typescript-eslint/typescript-estree": "npm:6.21.0" + semver: "npm:^7.5.4" + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + checksum: 10/b404a2c55a425a79d054346ae123087d30c7ecf7ed7abcf680c47bf70c1de4fabadc63434f3f460b2fa63df76bc9e4a0b9fa2383bb8a9fcd62733fb5c4e4f3e3 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:^5.45.0": + version: 5.62.0 + resolution: "@typescript-eslint/utils@npm:5.62.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.2.0" + "@types/json-schema": "npm:^7.0.9" + "@types/semver": "npm:^7.3.12" + "@typescript-eslint/scope-manager": "npm:5.62.0" + "@typescript-eslint/types": "npm:5.62.0" + "@typescript-eslint/typescript-estree": "npm:5.62.0" + eslint-scope: "npm:^5.1.1" + semver: "npm:^7.3.7" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10/15ef13e43998a082b15f85db979f8d3ceb1f9ce4467b8016c267b1738d5e7cdb12aa90faf4b4e6dd6486c236cf9d33c463200465cf25ff997dbc0f12358550a1 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" + dependencies: + "@typescript-eslint/types": "npm:5.62.0" + eslint-visitor-keys: "npm:^3.3.0" + checksum: 10/dc613ab7569df9bbe0b2ca677635eb91839dfb2ca2c6fa47870a5da4f160db0b436f7ec0764362e756d4164e9445d49d5eb1ff0b87f4c058946ae9d8c92eb388 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.21.0" + dependencies: + "@typescript-eslint/types": "npm:6.21.0" + eslint-visitor-keys: "npm:^3.4.1" + checksum: 10/30422cdc1e2ffad203df40351a031254b272f9c6f2b7e02e9bfa39e3fc2c7b1c6130333b0057412968deda17a3a68a578a78929a8139c6acef44d9d841dc72e1 + languageName: node + linkType: hard + +"@ungap/structured-clone@npm:^1.0.0, @ungap/structured-clone@npm:^1.2.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 10/c6fe89a505e513a7592e1438280db1c075764793a2397877ff1351721fe8792a966a5359769e30242b3cd023f2efb9e63ca2ca88019d73b564488cc20e3eab12 + languageName: node + linkType: hard + +"@vitejs/plugin-react@npm:^4.2.1": + version: 4.3.1 + resolution: "@vitejs/plugin-react@npm:4.3.1" + dependencies: + "@babel/core": "npm:^7.24.5" + "@babel/plugin-transform-react-jsx-self": "npm:^7.24.5" + "@babel/plugin-transform-react-jsx-source": "npm:^7.24.1" + "@types/babel__core": "npm:^7.20.5" + react-refresh: "npm:^0.14.2" + peerDependencies: + vite: ^4.2.0 || ^5.0.0 + checksum: 10/a9d1eb30c968bf719a3277067211493746579aee14a7af8c0edb2cde38e8e5bbd461e62a41c3590e2c6eb04a047114eb3e97dcd591967625fbbc7aead8dfaf90 + languageName: node + linkType: hard + +"@vitest/expect@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/expect@npm:2.0.5" + dependencies: + "@vitest/spy": "npm:2.0.5" + "@vitest/utils": "npm:2.0.5" + chai: "npm:^5.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10/ca9a218f50254b2259fd16166b2d8c9ccc8ee2cc068905e6b3d6281da10967b1590cc7d34b5fa9d429297f97e740450233745583b4cc12272ff11705faf70a37 + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/pretty-format@npm:2.0.5" + dependencies: + tinyrainbow: "npm:^1.2.0" + checksum: 10/70bf452dd0b8525e658795125b3f11110bd6baadfaa38c5bb91ca763bded35ec6dc80e27964ad4e91b91be6544d35e18ea7748c1997693988f975a7283c3e9a0 + languageName: node + linkType: hard + +"@vitest/spy@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/spy@npm:2.0.5" + dependencies: + tinyspy: "npm:^3.0.0" + checksum: 10/ed19f4c3bb4d3853241e8070979615138e24403ce4c137fa48c903b3af2c8b3ada2cc26aca9c1aa323bb314a457a8130a29acbb18dafd4e42737deefb2abf1ca + languageName: node + linkType: hard + +"@vitest/utils@npm:2.0.5": + version: 2.0.5 + resolution: "@vitest/utils@npm:2.0.5" + dependencies: + "@vitest/pretty-format": "npm:2.0.5" + estree-walker: "npm:^3.0.3" + loupe: "npm:^3.1.1" + tinyrainbow: "npm:^1.2.0" + checksum: 10/d631d56d29c33bc8de631166b2b6691c470187a345469dfef7048befe6027e1c6ff9552f2ee11c8a247522c325c4a64bfcc73f8f0f0c525da39cb9f190f119f8 + languageName: node + linkType: hard + +"@vitest/utils@npm:^1.3.1": + version: 1.6.0 + resolution: "@vitest/utils@npm:1.6.0" + dependencies: + diff-sequences: "npm:^29.6.3" + estree-walker: "npm:^3.0.3" + loupe: "npm:^2.3.7" + pretty-format: "npm:^29.7.0" + checksum: 10/5c5d7295ac13fcea1da039232bcc7c3fc6f070070fe12ba2ad152456af6e216e48a3ae169016cfcd5055706a00dc567b8f62e4a9b1914f069f52b8f0a3c25e60 + 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 + +"abab@npm:^2.0.6": + version: 2.0.6 + resolution: "abab@npm:2.0.6" + checksum: 10/ebe95d7278999e605823fc515a3b05d689bc72e7f825536e73c95ebf621636874c6de1b749b3c4bf866b96ccd4b3a2802efa313d0e45ad51a413c8c73247db20 + languageName: node + linkType: hard + +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 10/ca0a54e35bea4ece0ecb68a47b312e1a9a6f772408d5bcb9051230aaa94b0460671c5b5c9cb3240eb5b7bc94c52476550eb221f65a0bbd0145bdc9f3113a6707 + languageName: node + linkType: hard + +"accepts@npm:~1.3.8": + version: 1.3.8 + resolution: "accepts@npm:1.3.8" + dependencies: + mime-types: "npm:~2.1.34" + negotiator: "npm:0.6.3" + checksum: 10/67eaaa90e2917c58418e7a9b89392002d2b1ccd69bcca4799135d0c632f3b082f23f4ae4ddeedbced5aa59bcc7bdf4699c69ebed4593696c922462b7bc5744d6 + languageName: node + linkType: hard + +"acorn-globals@npm:^7.0.0": + version: 7.0.1 + resolution: "acorn-globals@npm:7.0.1" + dependencies: + acorn: "npm:^8.1.0" + acorn-walk: "npm:^8.0.2" + checksum: 10/2a2998a547af6d0db5f0cdb90acaa7c3cbca6709010e02121fb8b8617c0fbd8bab0b869579903fde358ac78454356a14fadcc1a672ecb97b04b1c2ccba955ce8 + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.3.1, acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10/d4371eaef7995530b5b5ca4183ff6f062ca17901a6d3f673c9ac011b01ede37e7a1f7f61f8f5cfe709e88054757bb8f3277dc4061087cdf4f2a1f90ccbcdb977 + languageName: node + linkType: hard + +"acorn-walk@npm:^7.2.0": + version: 7.2.0 + resolution: "acorn-walk@npm:7.2.0" + checksum: 10/4d3e186f729474aed3bc3d0df44692f2010c726582655b20a23347bef650867655521c48ada444cb4fda241ee713dcb792da363ec74c6282fa884fb7144171bb + languageName: node + linkType: hard + +"acorn-walk@npm:^8.0.2": + version: 8.3.3 + resolution: "acorn-walk@npm:8.3.3" + dependencies: + acorn: "npm:^8.11.0" + checksum: 10/59701dcb7070679622ba8e9c7f37577b4935565747ca0fd7c1c3ad30b3f1b1b008276282664e323b5495eb49f77fa12d3816fd06dc68e18f90fbebe759f71450 + languageName: node + linkType: hard + +"acorn@npm:^7.4.1": + version: 7.4.1 + resolution: "acorn@npm:7.4.1" + bin: + acorn: bin/acorn + checksum: 10/8be2a40714756d713dfb62544128adce3b7102c6eb94bc312af196c2cc4af76e5b93079bd66b05e9ca31b35a9b0ce12171d16bc55f366cafdb794fdab9d753ec + languageName: node + linkType: hard + +"acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.11.3, acorn@npm:^8.12.1, acorn@npm:^8.8.1, acorn@npm:^8.9.0": + version: 8.12.1 + resolution: "acorn@npm:8.12.1" + bin: + acorn: bin/acorn + checksum: 10/d08c2d122bba32d0861e0aa840b2ee25946c286d5dc5990abca991baf8cdbfbe199b05aacb221b979411a2fea36f83e26b5ac4f6b4e0ce49038c62316c1848f0 + languageName: node + linkType: hard + +"agent-base@npm:6": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: "npm:4" + checksum: 10/21fb903e0917e5cb16591b4d0ef6a028a54b83ac30cd1fca58dece3d4e0990512a8723f9f83130d88a41e2af8b1f7be1386fda3ea2d181bb1a62155e75e95e23 + languageName: node + linkType: hard + +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": + version: 7.1.1 + resolution: "agent-base@npm:7.1.1" + dependencies: + debug: "npm:^4.3.4" + checksum: 10/c478fec8f79953f118704d007a38f2a185458853f5c45579b9669372bd0e12602e88dc2ad0233077831504f7cd6fcc8251c383375bba5eaaf563b102938bda26 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: "npm:^2.0.0" + indent-string: "npm:^4.0.0" + checksum: 10/1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + languageName: node + linkType: hard + +"ajv@npm:^6.12.4": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + dependencies: + fast-deep-equal: "npm:^3.1.1" + fast-json-stable-stringify: "npm:^2.0.0" + json-schema-traverse: "npm:^0.4.1" + uri-js: "npm:^4.2.2" + checksum: 10/48d6ad21138d12eb4d16d878d630079a2bda25a04e745c07846a4ad768319533031e28872a9b3c5790fa1ec41aabdf2abed30a56e5a03ebc2cf92184b8ee306c + languageName: node + linkType: hard + +"ansi-colors@npm:^4.1.1": + version: 4.1.3 + resolution: "ansi-colors@npm:4.1.3" + checksum: 10/43d6e2fc7b1c6e4dc373de708ee76311ec2e0433e7e8bd3194e7ff123ea6a747428fc61afdcf5969da5be3a5f0fd054602bec56fc0ebe249ce2fcde6e649e3c2 + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: "npm:^0.21.3" + checksum: 10/8661034456193ffeda0c15c8c564a9636b0c04094b7f78bd01517929c17c504090a60f7a75f949f5af91289c264d3e1001d91492c1bd58efc8e100500ce04de2 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10/2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.0.1 + resolution: "ansi-regex@npm:6.0.1" + checksum: 10/1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: "npm:^1.9.0" + checksum: 10/d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: "npm:^2.0.1" + checksum: 10/b4494dfbfc7e4591b4711a396bd27e540f8153914123dccb4cdbbcb514015ada63a3809f362b9d8d4f6b17a706f1d7bea3c6f974b15fa5ae76b5b502070889ff + languageName: node + linkType: hard + +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: 10/d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: 10/70fdf883b704d17a5dfc9cde206e698c16bcd74e7f196ab821511651aee4f9f76c9514bdfa6ca3a27b5e49138b89cb222a28caf3afe4567570139577f991df32 + languageName: node + linkType: hard + +"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: "npm:^3.0.0" + picomatch: "npm:^2.0.4" + checksum: 10/3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 + languageName: node + linkType: hard + +"arch@npm:^2.2.0": + version: 2.2.0 + resolution: "arch@npm:2.2.0" + checksum: 10/e35dbc6d362297000ab90930069576ba165fe63cd52383efcce14bd66c1b16a91ce849e1fd239964ed029d5e0bdfc32f68e9c7331b7df6c84ddebebfdbf242f7 + languageName: node + linkType: hard + +"argparse@npm:^1.0.7": + version: 1.0.10 + resolution: "argparse@npm:1.0.10" + dependencies: + sprintf-js: "npm:~1.0.2" + checksum: 10/c6a621343a553ff3779390bb5ee9c2263d6643ebcd7843227bdde6cc7adbed796eb5540ca98db19e3fd7b4714e1faa51551f8849b268bb62df27ddb15cbcd91e + languageName: node + linkType: hard + +"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: + dequal: "npm:^2.0.3" + checksum: 10/c3e1ed127cc6886fea4732e97dd6d3c3938e64180803acfb9df8955517c4943760746ffaf4020ce8f7ffaa7556a3b5f85c3769a1f5ca74a1288e02d042f9ae4e + languageName: node + linkType: hard + +"array-buffer-byte-length@npm:^1.0.0": + version: 1.0.1 + resolution: "array-buffer-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.5" + is-array-buffer: "npm:^3.0.4" + checksum: 10/53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e + languageName: node + linkType: hard + +"array-flatten@npm:1.1.1": + version: 1.1.1 + resolution: "array-flatten@npm:1.1.1" + checksum: 10/e13c9d247241be82f8b4ec71d035ed7204baa82fae820d4db6948d30d3c4a9f2b3905eb2eec2b937d4aa3565200bd3a1c500480114cff649fa748747d2a50feb + languageName: node + linkType: hard + +"array-union@npm:^2.1.0": + version: 2.1.0 + resolution: "array-union@npm:2.1.0" + checksum: 10/5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d + languageName: node + linkType: hard + +"asn1@npm:~0.2.3": + version: 0.2.6 + resolution: "asn1@npm:0.2.6" + dependencies: + safer-buffer: "npm:~2.1.0" + checksum: 10/cf629291fee6c1a6f530549939433ebf32200d7849f38b810ff26ee74235e845c0c12b2ed0f1607ac17383d19b219b69cefa009b920dab57924c5c544e495078 + languageName: node + linkType: hard + +"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": + version: 1.0.0 + resolution: "assert-plus@npm:1.0.0" + checksum: 10/f4f991ae2df849cc678b1afba52d512a7cbf0d09613ba111e72255409ff9158550c775162a47b12d015d1b82b3c273e8e25df0e4783d3ddb008a293486d00a07 + languageName: node + linkType: hard + +"assertion-error@npm:^2.0.1": + version: 2.0.1 + resolution: "assertion-error@npm:2.0.1" + checksum: 10/a0789dd882211b87116e81e2648ccb7f60340b34f19877dd020b39ebb4714e475eb943e14ba3e22201c221ef6645b7bfe10297e76b6ac95b48a9898c1211ce66 + languageName: node + linkType: hard + +"ast-types@npm:^0.16.1": + version: 0.16.1 + resolution: "ast-types@npm:0.16.1" + dependencies: + tslib: "npm:^2.0.1" + checksum: 10/f569b475eb1c8cb93888cb6e7b7e36dc43fa19a77e4eb132cbff6e3eb1598ca60f850db6e60b070e5a0ee8c1559fca921dac0916e576f2f104e198793b0bdd8d + languageName: node + linkType: hard + +"astral-regex@npm:^2.0.0": + version: 2.0.0 + resolution: "astral-regex@npm:2.0.0" + checksum: 10/876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 + languageName: node + linkType: hard + +"async@npm:^3.2.0": + version: 3.2.5 + resolution: "async@npm:3.2.5" + checksum: 10/323c3615c3f0ab1ac25a6f953296bc0ac3213d5e0f1c0debdb12964e55963af288d570293c11e44f7967af58c06d2a88d0ea588c86ec0fbf62fa98037f604a0f + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 10/3ce727cbc78f69d6a4722517a58ee926c8c21083633b1d3fdf66fd688f6c127a53a592141bd4866f9b63240a86e9d8e974b13919450bd17fa33c2d22c4558ad8 + languageName: node + linkType: hard + +"at-least-node@npm:^1.0.0": + version: 1.0.0 + resolution: "at-least-node@npm:1.0.0" + checksum: 10/463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e + 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 + +"aws-sign2@npm:~0.7.0": + version: 0.7.0 + resolution: "aws-sign2@npm:0.7.0" + checksum: 10/2ac497d739f71be3264cf096a33ab256a1fea7fe80b87dc51ec29374505bd5a661279ef1c22989d68528ea61ed634021ca63b31cf1d3c2a3682ffc106f7d0e96 + languageName: node + linkType: hard + +"aws4@npm:^1.8.0": + version: 1.13.0 + resolution: "aws4@npm:1.13.0" + checksum: 10/a73a43f88c5d915e564d102a6b181a62afd7991f25e661b440540fdef102cbccce7cfa7da8b82ea1c34645e672ac617aecbd9f4f1e91e3f9e99de4d1d7a2cef9 + languageName: node + linkType: hard + +"babel-core@npm:^7.0.0-bridge.0": + version: 7.0.0-bridge.0 + resolution: "babel-core@npm:7.0.0-bridge.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10/2a1cb879019dffb08d17bec36e13c3a6d74c94773f41c1fd8b14de13f149cc34b705b0a1e07b42fcf35917b49d78db6ff0c5c3b00b202a5235013d517b5c6bbb + languageName: node + linkType: hard + +"babel-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "babel-jest@npm:29.7.0" + dependencies: + "@jest/transform": "npm:^29.7.0" + "@types/babel__core": "npm:^7.1.14" + babel-plugin-istanbul: "npm:^6.1.1" + babel-preset-jest: "npm:^29.6.3" + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + slash: "npm:^3.0.0" + peerDependencies: + "@babel/core": ^7.8.0 + checksum: 10/8a0953bd813b3a8926008f7351611055548869e9a53dd36d6e7e96679001f71e65fd7dbfe253265c3ba6a4e630dc7c845cf3e78b17d758ef1880313ce8fba258 + languageName: node + linkType: hard + +"babel-plugin-istanbul@npm:^6.1.1": + version: 6.1.1 + resolution: "babel-plugin-istanbul@npm:6.1.1" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.0.0" + "@istanbuljs/load-nyc-config": "npm:^1.0.0" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-instrument: "npm:^5.0.4" + test-exclude: "npm:^6.0.0" + checksum: 10/ffd436bb2a77bbe1942a33245d770506ab2262d9c1b3c1f1da7f0592f78ee7445a95bc2efafe619dd9c1b6ee52c10033d6c7d29ddefe6f5383568e60f31dfe8d + languageName: node + linkType: hard + +"babel-plugin-jest-hoist@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-plugin-jest-hoist@npm:29.6.3" + dependencies: + "@babel/template": "npm:^7.3.3" + "@babel/types": "npm:^7.3.3" + "@types/babel__core": "npm:^7.1.14" + "@types/babel__traverse": "npm:^7.0.6" + checksum: 10/9bfa86ec4170bd805ab8ca5001ae50d8afcb30554d236ba4a7ffc156c1a92452e220e4acbd98daefc12bf0216fccd092d0a2efed49e7e384ec59e0597a926d65 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs2@npm:^0.4.10": + version: 0.4.11 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.11" + dependencies: + "@babel/compat-data": "npm:^7.22.6" + "@babel/helper-define-polyfill-provider": "npm:^0.6.2" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10/9c79908bed61b9f52190f254e22d3dca6ce25769738642579ba8d23832f3f9414567a90d8367a31831fa45d9b9607ac43d8d07ed31167d8ca8cda22871f4c7a1 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs3@npm:^0.10.4": + version: 0.10.6 + resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.6.2" + core-js-compat: "npm:^3.38.0" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10/360ac9054a57a18c540059dc627ad5d84d15f79790cb3d84d19a02eec7188c67d08a07db789c3822d6f5df22d918e296d1f27c4055fec2e287d328f09ea8a78a + languageName: node + linkType: hard + +"babel-plugin-polyfill-regenerator@npm:^0.6.1": + version: 0.6.2 + resolution: "babel-plugin-polyfill-regenerator@npm:0.6.2" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.6.2" + peerDependencies: + "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 + checksum: 10/150233571072b6b3dfe946242da39cba8587b7f908d1c006f7545fc88b0e3c3018d445739beb61e7a75835f0c2751dbe884a94ff9b245ec42369d9267e0e1b3f + languageName: node + linkType: hard + +"babel-preset-current-node-syntax@npm:^1.0.0": + version: 1.0.1 + resolution: "babel-preset-current-node-syntax@npm:1.0.1" + dependencies: + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/plugin-syntax-bigint": "npm:^7.8.3" + "@babel/plugin-syntax-class-properties": "npm:^7.8.3" + "@babel/plugin-syntax-import-meta": "npm:^7.8.3" + "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/plugin-syntax-numeric-separator": "npm:^7.8.3" + "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" + "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/plugin-syntax-top-level-await": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/94561959cb12bfa80867c9eeeace7c3d48d61707d33e55b4c3fdbe82fc745913eb2dbfafca62aef297421b38aadcb58550e5943f50fbcebbeefd70ce2bed4b74 + languageName: node + linkType: hard + +"babel-preset-jest@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-preset-jest@npm:29.6.3" + dependencies: + babel-plugin-jest-hoist: "npm:^29.6.3" + babel-preset-current-node-syntax: "npm:^1.0.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10/aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10/9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 10/669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + languageName: node + linkType: hard + +"bcrypt-pbkdf@npm:^1.0.0": + version: 1.0.2 + resolution: "bcrypt-pbkdf@npm:1.0.2" + dependencies: + tweetnacl: "npm:^0.14.3" + checksum: 10/13a4cde058250dbf1fa77a4f1b9a07d32ae2e3b9e28e88a0c7a1827835bc3482f3e478c4a0cfd4da6ff0c46dae07da1061123a995372b32cc563d9975f975404 + languageName: node + linkType: hard + +"binary-extensions@npm:^2.0.0": + version: 2.3.0 + resolution: "binary-extensions@npm:2.3.0" + checksum: 10/bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98 + languageName: node + linkType: hard + +"bl@npm:^4.1.0": + version: 4.1.0 + resolution: "bl@npm:4.1.0" + dependencies: + buffer: "npm:^5.5.0" + inherits: "npm:^2.0.4" + readable-stream: "npm:^3.4.0" + checksum: 10/b7904e66ed0bdfc813c06ea6c3e35eafecb104369dbf5356d0f416af90c1546de3b74e5b63506f0629acf5e16a6f87c3798f16233dcff086e9129383aa02ab55 + languageName: node + linkType: hard + +"blob-util@npm:^2.0.2": + version: 2.0.2 + resolution: "blob-util@npm:2.0.2" + checksum: 10/b2c5a20c677f2a6c3821cf13c5522d64af96e666bc40cce6b43f87d16e89a55e2eab2f6264ec3f36d7f810eba848aa7e2bc611e47c14eb6395136c0b0a8b29ea + languageName: node + linkType: hard + +"bluebird@npm:^3.7.2": + version: 3.7.2 + resolution: "bluebird@npm:3.7.2" + checksum: 10/007c7bad22c5d799c8dd49c85b47d012a1fe3045be57447721e6afbd1d5be43237af1db62e26cb9b0d9ba812d2e4ca3bac82f6d7e016b6b88de06ee25ceb96e7 + languageName: node + linkType: hard + +"body-parser@npm:1.20.2": + version: 1.20.2 + resolution: "body-parser@npm:1.20.2" + dependencies: + bytes: "npm:3.1.2" + content-type: "npm:~1.0.5" + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + http-errors: "npm:2.0.0" + iconv-lite: "npm:0.4.24" + on-finished: "npm:2.4.1" + qs: "npm:6.11.0" + raw-body: "npm:2.5.2" + type-is: "npm:~1.6.18" + unpipe: "npm:1.0.0" + checksum: 10/3cf171b82190cf91495c262b073e425fc0d9e25cc2bf4540d43f7e7bbca27d6a9eae65ca367b6ef3993eea261159d9d2ab37ce444e8979323952e12eb3df319a + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: "npm:^1.0.0" + concat-map: "npm:0.0.1" + checksum: 10/faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: "npm:^1.0.0" + checksum: 10/a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + languageName: node + linkType: hard + +"braces@npm:^3.0.3, braces@npm:~3.0.2": + version: 3.0.3 + resolution: "braces@npm:3.0.3" + dependencies: + fill-range: "npm:^7.1.1" + checksum: 10/fad11a0d4697a27162840b02b1fad249c1683cbc510cd5bf1a471f2f8085c046d41094308c577a50a03a579dd99d5a6b3724c4b5e8b14df2c4443844cfcda2c6 + languageName: node + linkType: hard + +"browser-assert@npm:^1.2.1": + version: 1.2.1 + resolution: "browser-assert@npm:1.2.1" + checksum: 10/8b2407cd04c1ed592cf892dec35942b7d72635829221e0788c9a16c4d2afa8b7156bc9705b1c4b32c30d88136c576fda3cbcb8f494d6f865264c706ea8798d92 + languageName: node + linkType: hard + +"browserslist@npm:^4.23.1, browserslist@npm:^4.23.3": + version: 4.23.3 + resolution: "browserslist@npm:4.23.3" + dependencies: + caniuse-lite: "npm:^1.0.30001646" + electron-to-chromium: "npm:^1.5.4" + node-releases: "npm:^2.0.18" + update-browserslist-db: "npm:^1.1.0" + bin: + browserslist: cli.js + checksum: 10/e266d18c6c6c5becf9a1a7aa264477677b9796387972e8fce34854bb33dc1666194dc28389780e5dc6566e68a95e87ece2ce222e1c4ca93c2b75b61dfebd5f1c + languageName: node + linkType: hard + +"bser@npm:2.1.1": + version: 2.1.1 + resolution: "bser@npm:2.1.1" + dependencies: + node-int64: "npm:^0.4.0" + checksum: 10/edba1b65bae682450be4117b695997972bd9a3c4dfee029cab5bcb72ae5393a79a8f909b8bc77957eb0deec1c7168670f18f4d5c556f46cdd3bca5f3b3a8d020 + languageName: node + linkType: hard + +"buffer-crc32@npm:~0.2.3": + version: 0.2.13 + resolution: "buffer-crc32@npm:0.2.13" + checksum: 10/06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c + languageName: node + linkType: hard + +"buffer-from@npm:^1.0.0": + version: 1.1.2 + resolution: "buffer-from@npm:1.1.2" + checksum: 10/0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb + languageName: node + linkType: hard + +"buffer@npm:^5.5.0, buffer@npm:^5.7.1": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.1.13" + checksum: 10/997434d3c6e3b39e0be479a80288875f71cd1c07d75a3855e6f08ef848a3c966023f79534e22e415ff3a5112708ce06127277ab20e527146d55c84566405c7c6 + languageName: node + linkType: hard + +"bytes@npm:3.1.2": + version: 3.1.2 + resolution: "bytes@npm:3.1.2" + checksum: 10/a10abf2ba70c784471d6b4f58778c0beeb2b5d405148e66affa91f23a9f13d07603d0a0354667310ae1d6dc141474ffd44e2a074be0f6e2254edb8fc21445388 + languageName: node + linkType: hard + +"cacache@npm:^18.0.0": + version: 18.0.4 + resolution: "cacache@npm:18.0.4" + dependencies: + "@npmcli/fs": "npm:^3.1.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^4.0.0" + ssri: "npm:^10.0.0" + tar: "npm:^6.1.11" + unique-filename: "npm:^3.0.0" + checksum: 10/ca2f7b2d3003f84d362da9580b5561058ccaecd46cba661cbcff0375c90734b610520d46b472a339fd032d91597ad6ed12dde8af81571197f3c9772b5d35b104 + languageName: node + linkType: hard + +"cachedir@npm:^2.3.0": + version: 2.4.0 + resolution: "cachedir@npm:2.4.0" + checksum: 10/43198514eaa61f65b5535ed29ad651f22836fba3868ed58a6a87731f05462f317d39098fa3ac778801c25455483c9b7f32a2fcad1f690a978947431f12a0f4d0 + languageName: node + linkType: hard + +"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": + version: 1.0.7 + resolution: "call-bind@npm:1.0.7" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + set-function-length: "npm:^1.2.1" + checksum: 10/cd6fe658e007af80985da5185bff7b55e12ef4c2b6f41829a26ed1eef254b1f1c12e3dfd5b2b068c6ba8b86aba62390842d81752e67dcbaec4f6f76e7113b6b7 + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 10/072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 + languageName: node + linkType: hard + +"camelcase@npm:^5.3.1": + version: 5.3.1 + resolution: "camelcase@npm:5.3.1" + checksum: 10/e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b + languageName: node + linkType: hard + +"camelcase@npm:^6.2.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 10/8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001646": + version: 1.0.30001649 + resolution: "caniuse-lite@npm:1.0.30001649" + checksum: 10/a528438a40124d9eb70b0ebacd14e331f925a73e26bf68ac15658c031e6b750b8c1f9c86047b7b9936406e419c87cbe61c9d7e5632db3aa4ca754b1496d21324 + languageName: node + linkType: hard + +"caseless@npm:~0.12.0": + version: 0.12.0 + resolution: "caseless@npm:0.12.0" + checksum: 10/ea1efdf430975fdbac3505cdd21007f7ac5aa29b6d4d1c091f965853cd1bf87e4b08ea07b31a6d688b038872b7cdf0589d9262d59c699d199585daad052aeb20 + languageName: node + linkType: hard + +"chai@npm:^5.1.1": + version: 5.1.1 + resolution: "chai@npm:5.1.1" + dependencies: + assertion-error: "npm:^2.0.1" + check-error: "npm:^2.1.1" + deep-eql: "npm:^5.0.1" + loupe: "npm:^3.1.0" + pathval: "npm:^2.0.0" + checksum: 10/ee67279a5613bd36dc1dc13660042429ae2f1dc5a9030a6abcf381345866dfb5bce7bc10b9d74c8de86b6f656489f654bbbef3f3361e06925591e6a00c72afff + languageName: node + linkType: hard + +"chalk@npm:^2.4.2": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: "npm:^3.2.1" + escape-string-regexp: "npm:^1.0.5" + supports-color: "npm:^5.3.0" + checksum: 10/3d1d103433166f6bfe82ac75724951b33769675252d8417317363ef9d54699b7c3b2d46671b772b893a8e50c3ece70c4b933c73c01e81bc60ea4df9b55afa303 + languageName: node + linkType: hard + +"chalk@npm:^3.0.0": + version: 3.0.0 + resolution: "chalk@npm:3.0.0" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10/37f90b31fd655fb49c2bd8e2a68aebefddd64522655d001ef417e6f955def0ed9110a867ffc878a533f2dafea5f2032433a37c8a7614969baa7f8a1cd424ddfc + languageName: node + linkType: hard + +"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10/cb3f3e594913d63b1814d7ca7c9bafbf895f75fbf93b92991980610dfd7b48500af4e3a5d4e3a8f337990a96b168d7eb84ee55efdce965e2ee8efc20f8c8f139 + languageName: node + linkType: hard + +"char-regex@npm:^1.0.2": + version: 1.0.2 + resolution: "char-regex@npm:1.0.2" + checksum: 10/1ec5c2906adb9f84e7f6732a40baef05d7c85401b82ffcbc44b85fbd0f7a2b0c2a96f2eb9cf55cae3235dc12d4023003b88f09bcae8be9ae894f52ed746f4d48 + languageName: node + linkType: hard + +"check-error@npm:^2.1.1": + version: 2.1.1 + resolution: "check-error@npm:2.1.1" + checksum: 10/d785ed17b1d4a4796b6e75c765a9a290098cf52ff9728ce0756e8ffd4293d2e419dd30c67200aee34202463b474306913f2fcfaf1890641026d9fc6966fea27a + languageName: node + linkType: hard + +"check-more-types@npm:^2.24.0": + version: 2.24.0 + resolution: "check-more-types@npm:2.24.0" + checksum: 10/67c5288443bd73a81638e1185f8c5410d0edf6458c086149ef1cda95c07535b5dd5c11c426dc3ee8f0de0f3244aa2d4f2ba1937aaa8a94995589cdcce0bbccb9 + languageName: node + linkType: hard + +"chokidar@npm:^3.6.0": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" + dependencies: + anymatch: "npm:~3.1.2" + braces: "npm:~3.0.2" + fsevents: "npm:~2.3.2" + glob-parent: "npm:~5.1.2" + is-binary-path: "npm:~2.1.0" + is-glob: "npm:~4.0.1" + normalize-path: "npm:~3.0.0" + readdirp: "npm:~3.6.0" + dependenciesMeta: + fsevents: + optional: true + checksum: 10/c327fb07704443f8d15f7b4a7ce93b2f0bc0e6cea07ec28a7570aa22cd51fcf0379df589403976ea956c369f25aa82d84561947e227cd925902e1751371658df + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: 10/c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + languageName: node + linkType: hard + +"ci-info@npm:^3.2.0": + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 10/75bc67902b4d1c7b435497adeb91598f6d52a3389398e44294f6601b20cfef32cf2176f7be0eb961d9e085bb333a8a5cae121cb22f81cf238ae7f58eb80e9397 + languageName: node + linkType: hard + +"citty@npm:^0.1.6": + version: 0.1.6 + resolution: "citty@npm:0.1.6" + dependencies: + consola: "npm:^3.2.3" + checksum: 10/3208947e73abb699a12578ee2bfee254bf8dd1ce0d5698e8a298411cabf16bd3620d63433aef5bd88cdb2b9da71aef18adefa3b4ffd18273bb62dd1d28c344f5 + languageName: node + linkType: hard + +"cjs-module-lexer@npm:^1.0.0": + version: 1.3.1 + resolution: "cjs-module-lexer@npm:1.3.1" + checksum: 10/6629188d5ce74b57e5dce2222db851b5496a8d65b533a05957fb24089a3cec8d769378013c375a954c5a0f7522cde6a36d5a65bfd88f5575cb2de3176046fa8e + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 10/2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + languageName: node + linkType: hard + +"cli-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "cli-cursor@npm:3.1.0" + dependencies: + restore-cursor: "npm:^3.1.0" + checksum: 10/2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 + languageName: node + linkType: hard + +"cli-spinners@npm:^2.5.0": + version: 2.9.2 + resolution: "cli-spinners@npm:2.9.2" + checksum: 10/a0a863f442df35ed7294424f5491fa1756bd8d2e4ff0c8736531d886cec0ece4d85e8663b77a5afaf1d296e3cbbebff92e2e99f52bbea89b667cbe789b994794 + languageName: node + linkType: hard + +"cli-table3@npm:~0.6.1": + version: 0.6.5 + resolution: "cli-table3@npm:0.6.5" + dependencies: + "@colors/colors": "npm:1.5.0" + string-width: "npm:^4.2.0" + dependenciesMeta: + "@colors/colors": + optional: true + checksum: 10/8dca71256f6f1367bab84c33add3f957367c7c43750a9828a4212ebd31b8df76bd7419d386e3391ac7419698a8540c25f1a474584028f35b170841cde2e055c5 + languageName: node + linkType: hard + +"cli-truncate@npm:^2.1.0": + version: 2.1.0 + resolution: "cli-truncate@npm:2.1.0" + dependencies: + slice-ansi: "npm:^3.0.0" + string-width: "npm:^4.2.0" + checksum: 10/976f1887de067a8cd6ec830a7a8508336aebe6cec79b521d98ed13f67ef073b637f7305675b6247dd22f9e9cf045ec55fe746c7bdb288fbe8db0dfdc9fd52e55 + languageName: node + linkType: hard + +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: "npm:^4.2.0" + strip-ansi: "npm:^6.0.1" + wrap-ansi: "npm:^7.0.0" + checksum: 10/eaa5561aeb3135c2cddf7a3b3f562fc4238ff3b3fc666869ef2adf264be0f372136702f16add9299087fb1907c2e4ec5dbfe83bd24bce815c70a80c6c1a2e950 + languageName: node + linkType: hard + +"clone-deep@npm:^4.0.1": + version: 4.0.1 + resolution: "clone-deep@npm:4.0.1" + dependencies: + is-plain-object: "npm:^2.0.4" + kind-of: "npm:^6.0.2" + shallow-clone: "npm:^3.0.0" + checksum: 10/770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2 + languageName: node + linkType: hard + +"clone@npm:^1.0.2": + version: 1.0.4 + resolution: "clone@npm:1.0.4" + checksum: 10/d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd + languageName: node + linkType: hard + +"co@npm:^4.6.0": + version: 4.6.0 + resolution: "co@npm:4.6.0" + checksum: 10/a5d9f37091c70398a269e625cedff5622f200ed0aa0cff22ee7b55ed74a123834b58711776eb0f1dc58eb6ebbc1185aa7567b57bd5979a948c6e4f85073e2c05 + languageName: node + linkType: hard + +"collect-v8-coverage@npm:^1.0.0": + version: 1.0.2 + resolution: "collect-v8-coverage@npm:1.0.2" + checksum: 10/30ea7d5c9ee51f2fdba4901d4186c5b7114a088ef98fd53eda3979da77eed96758a2cae81cc6d97e239aaea6065868cf908b24980663f7b7e96aa291b3e12fa4 + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: "npm:1.1.3" + checksum: 10/ffa319025045f2973919d155f25e7c00d08836b6b33ea2d205418c59bd63a665d713c52d9737a9e0fe467fb194b40fbef1d849bae80d674568ee220a31ef3d10 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: "npm:~1.1.4" + checksum: 10/fa00c91b4332b294de06b443923246bccebe9fab1b253f7fe1772d37b06a2269b4039a85e309abe1fe11b267b11c08d1d0473fda3badd6167f57313af2887a64 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 10/09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: 10/b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"colorette@npm:^2.0.16": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 10/0b8de48bfa5d10afc160b8eaa2b9938f34a892530b2f7d7897e0458d9535a066e3998b49da9d21161c78225b272df19ae3a64d6df28b4c9734c0e55bbd02406f + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: "npm:~1.0.0" + checksum: 10/2e969e637d05d09fa50b02d74c83a1186f6914aae89e6653b62595cc75a221464f884f55f231b8f4df7a49537fba60bdc0427acd2bf324c09a1dbb84837e36e4 + languageName: node + linkType: hard + +"commander@npm:^6.2.1": + version: 6.2.1 + resolution: "commander@npm:6.2.1" + checksum: 10/25b88c2efd0380c84f7844b39cf18510da7bfc5013692d68cdc65f764a1c34e6c8a36ea6d72b6620e3710a930cf8fab2695bdec2bf7107a0f4fa30a3ef3b7d0e + languageName: node + linkType: hard + +"common-tags@npm:^1.8.0": + version: 1.8.2 + resolution: "common-tags@npm:1.8.2" + checksum: 10/c665d0f463ee79dda801471ad8da6cb33ff7332ba45609916a508ad3d77ba07ca9deeb452e83f81f24c2b081e2c1315347f23d239210e63d1c5e1a0c7c019fe2 + languageName: node + linkType: hard + +"commondir@npm:^1.0.1": + version: 1.0.1 + resolution: "commondir@npm:1.0.1" + checksum: 10/4620bc4936a4ef12ce7dfcd272bb23a99f2ad68889a4e4ad766c9f8ad21af982511934d6f7050d4a8bde90011b1c15d56e61a1b4576d9913efbf697a20172d6c + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 10/9680699c8e2b3af0ae22592cb764acaf973f292a7b71b8a06720233011853a58e256c89216a10cbe889727532fd77f8bcd49a760cedfde271b8e006c20e079f2 + languageName: node + linkType: hard + +"confbox@npm:^0.1.7": + version: 0.1.7 + resolution: "confbox@npm:0.1.7" + checksum: 10/3086687b9a2a70d44d4b40a2d376536fe7e1baec4a2a34261b21b8a836026b419cbf89ded6054216631823e7d63c415dad4b4d53591d6edbb202bb9820dfa6fa + languageName: node + linkType: hard + +"consola@npm:^3.2.3": + version: 3.2.3 + resolution: "consola@npm:3.2.3" + checksum: 10/02972dcb048c337357a3628438e5976b8e45bcec22fdcfbe9cd17622992953c4d695d5152f141464a02deac769b1d23028e8ac87f56483838df7a6bbf8e0f5a2 + languageName: node + linkType: hard + +"content-disposition@npm:0.5.4": + version: 0.5.4 + resolution: "content-disposition@npm:0.5.4" + dependencies: + safe-buffer: "npm:5.2.1" + checksum: 10/b7f4ce176e324f19324be69b05bf6f6e411160ac94bc523b782248129eb1ef3be006f6cff431aaea5e337fe5d176ce8830b8c2a1b721626ead8933f0cbe78720 + languageName: node + linkType: hard + +"content-type@npm:~1.0.4, content-type@npm:~1.0.5": + version: 1.0.5 + resolution: "content-type@npm:1.0.5" + checksum: 10/585847d98dc7fb8035c02ae2cb76c7a9bd7b25f84c447e5ed55c45c2175e83617c8813871b4ee22f368126af6b2b167df655829007b21aa10302873ea9c62662 + languageName: node + linkType: hard + +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 10/c987be3ec061348cdb3c2bfb924bec86dea1eacad10550a85ca23edb0fe3556c3a61c7399114f3331ccb3499d7fd0285ab24566e5745929412983494c3926e15 + languageName: node + linkType: hard + +"cookie-signature@npm:1.0.6": + version: 1.0.6 + resolution: "cookie-signature@npm:1.0.6" + checksum: 10/f4e1b0a98a27a0e6e66fd7ea4e4e9d8e038f624058371bf4499cfcd8f3980be9a121486995202ba3fca74fbed93a407d6d54d43a43f96fd28d0bd7a06761591a + languageName: node + linkType: hard + +"cookie@npm:0.6.0": + version: 0.6.0 + resolution: "cookie@npm:0.6.0" + checksum: 10/c1f8f2ea7d443b9331680598b0ae4e6af18a618c37606d1bbdc75bec8361cce09fe93e727059a673f2ba24467131a9fb5a4eec76bb1b149c1b3e1ccb268dc583 + languageName: node + linkType: hard + +"core-js-compat@npm:^3.37.1, core-js-compat@npm:^3.38.0": + version: 3.38.0 + resolution: "core-js-compat@npm:3.38.0" + dependencies: + browserslist: "npm:^4.23.3" + checksum: 10/7ebdca6b305c9c470980e1f7e7a3d759add7cb754bff62926242907ee4d1d4e8bb13f70eb9a7d7769e0f63aec3f4cca83abf60f502286853b45d4b63a01c25ed + languageName: node + linkType: hard + +"core-util-is@npm:1.0.2": + version: 1.0.2 + resolution: "core-util-is@npm:1.0.2" + checksum: 10/d0f7587346b44a1fe6c269267e037dd34b4787191e473c3e685f507229d88561c40eb18872fabfff02977301815d474300b7bfbd15396c13c5377393f7e87ec3 + languageName: node + linkType: hard + +"create-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "create-jest@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + exit: "npm:^0.1.2" + graceful-fs: "npm:^4.2.9" + jest-config: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + prompts: "npm:^2.0.1" + bin: + create-jest: bin/create-jest.js + checksum: 10/847b4764451672b4174be4d5c6d7d63442ec3aa5f3de52af924e4d996d87d7801c18e125504f25232fc75840f6625b3ac85860fac6ce799b5efae7bdcaf4a2b7 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10/e1a13869d2f57d974de0d9ef7acbf69dc6937db20b918525a01dacb5032129bd552d290d886d981e99f1b624cb03657084cc87bd40f115c07ecf376821c729ce + 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" + checksum: 10/f6d38088d870a961794a2580b2b2af1027731bb43261cfdce14f19238a88664b351cc8978abc20f06cc6bbde725699dec8deb6fe9816b139fc3f2af28719e774 + languageName: node + linkType: hard + +"cssom@npm:^0.5.0": + version: 0.5.0 + resolution: "cssom@npm:0.5.0" + checksum: 10/b502a315b1ce020a692036cc38cb36afa44157219b80deadfa040ab800aa9321fcfbecf02fd2e6ec87db169715e27978b4ab3701f916461e9cf7808899f23b54 + languageName: node + linkType: hard + +"cssom@npm:~0.3.6": + version: 0.3.8 + resolution: "cssom@npm:0.3.8" + checksum: 10/49eacc88077555e419646c0ea84ddc73c97e3a346ad7cb95e22f9413a9722d8964b91d781ce21d378bd5ae058af9a745402383fa4e35e9cdfd19654b63f892a9 + languageName: node + linkType: hard + +"cssstyle@npm:^2.3.0": + version: 2.3.0 + resolution: "cssstyle@npm:2.3.0" + dependencies: + cssom: "npm:~0.3.6" + checksum: 10/46f7f05a153446c4018b0454ee1464b50f606cb1803c90d203524834b7438eb52f3b173ba0891c618f380ced34ee12020675dc0052a7f1be755fe4ebc27ee977 + languageName: node + linkType: hard + +"csstype@npm:^3.0.2": + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 10/f593cce41ff5ade23f44e77521e3a1bcc2c64107041e1bf6c3c32adc5187d0d60983292fda326154d20b01079e24931aa5b08e4467cc488b60bb1e7f6d478ade + languageName: node + linkType: hard + +"cypress@npm:^13.6.4": + version: 13.13.2 + resolution: "cypress@npm:13.13.2" + dependencies: + "@cypress/request": "npm:^3.0.1" + "@cypress/xvfb": "npm:^1.2.4" + "@types/sinonjs__fake-timers": "npm:8.1.1" + "@types/sizzle": "npm:^2.3.2" + arch: "npm:^2.2.0" + blob-util: "npm:^2.0.2" + bluebird: "npm:^3.7.2" + buffer: "npm:^5.7.1" + cachedir: "npm:^2.3.0" + chalk: "npm:^4.1.0" + check-more-types: "npm:^2.24.0" + cli-cursor: "npm:^3.1.0" + cli-table3: "npm:~0.6.1" + commander: "npm:^6.2.1" + common-tags: "npm:^1.8.0" + dayjs: "npm:^1.10.4" + debug: "npm:^4.3.4" + enquirer: "npm:^2.3.6" + eventemitter2: "npm:6.4.7" + execa: "npm:4.1.0" + executable: "npm:^4.1.1" + extract-zip: "npm:2.0.1" + figures: "npm:^3.2.0" + fs-extra: "npm:^9.1.0" + getos: "npm:^3.2.1" + is-ci: "npm:^3.0.1" + is-installed-globally: "npm:~0.4.0" + lazy-ass: "npm:^1.6.0" + listr2: "npm:^3.8.3" + lodash: "npm:^4.17.21" + log-symbols: "npm:^4.0.0" + minimist: "npm:^1.2.8" + ospath: "npm:^1.2.2" + pretty-bytes: "npm:^5.6.0" + process: "npm:^0.11.10" + proxy-from-env: "npm:1.0.0" + request-progress: "npm:^3.0.0" + semver: "npm:^7.5.3" + supports-color: "npm:^8.1.1" + tmp: "npm:~0.2.3" + untildify: "npm:^4.0.0" + yauzl: "npm:^2.10.0" + bin: + cypress: bin/cypress + checksum: 10/ac33d787ecf29c6d1b028fba8db5cb0904aaa343f1e969cef91e0f0ca43987315ef4ef4287583d9c6f09098164e89016891d6183a088c53a2f1db6c42c7f736a + languageName: node + linkType: hard + +"dashdash@npm:^1.12.0": + version: 1.14.1 + resolution: "dashdash@npm:1.14.1" + dependencies: + assert-plus: "npm:^1.0.0" + checksum: 10/137b287fa021201ce100cef772c8eeeaaafdd2aa7282864022acf3b873021e54cb809e9c060fa164840bf54ff72d00d6e2d8da1ee5a86d7200eeefa1123a8f7f + languageName: node + linkType: hard + +"data-urls@npm:^3.0.2": + version: 3.0.2 + resolution: "data-urls@npm:3.0.2" + dependencies: + abab: "npm:^2.0.6" + whatwg-mimetype: "npm:^3.0.0" + whatwg-url: "npm:^11.0.0" + checksum: 10/033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76 + languageName: node + linkType: hard + +"dayjs@npm:^1.10.4": + version: 1.11.12 + resolution: "dayjs@npm:1.11.12" + checksum: 10/8ee7c1e14961fd08d40b788d0c0e930dc6288b3d32911bb911b2fb31bb703c262788164fbe678ee9e50e2a35268d667b8c8ba43fd1806771c1f404c300a2b428 + languageName: node + linkType: hard + +"debug@npm:2.6.9": + version: 2.6.9 + resolution: "debug@npm:2.6.9" + dependencies: + ms: "npm:2.0.0" + checksum: 10/e07005f2b40e04f1bd14a3dd20520e9c4f25f60224cb006ce9d6781732c917964e9ec029fc7f1a151083cd929025ad5133814d4dc624a9aaf020effe4914ed14 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": + version: 4.3.6 + resolution: "debug@npm:4.3.6" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10/d3adb9af7d57a9e809a68f404490cf776122acca16e6359a2702c0f462e510e91f9765c07f707b8ab0d91e03bad57328f3256f5082631cefb5393d0394d50fb7 + languageName: node + linkType: hard + +"debug@npm:^3.1.0": + version: 3.2.7 + resolution: "debug@npm:3.2.7" + dependencies: + ms: "npm:^2.1.1" + checksum: 10/d86fd7be2b85462297ea16f1934dc219335e802f629ca9a69b63ed8ed041dda492389bb2ee039217c02e5b54792b1c51aa96ae954cf28634d363a2360c7a1639 + languageName: node + linkType: hard + +"decimal.js@npm:^10.4.2": + version: 10.4.3 + resolution: "decimal.js@npm:10.4.3" + checksum: 10/de663a7bc4d368e3877db95fcd5c87b965569b58d16cdc4258c063d231ca7118748738df17cd638f7e9dd0be8e34cec08d7234b20f1f2a756a52fc5a38b188d0 + languageName: node + linkType: hard + +"dedent@npm:^1.0.0": + version: 1.5.3 + resolution: "dedent@npm:1.5.3" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: 10/e5277f6268f288649503125b781a7b7a2c9b22d011139688c0b3619fe40121e600eb1f077c891938d4b2428bdb6326cc3c77a763e4b1cc681bd9666ab1bad2a1 + languageName: node + linkType: hard + +"deep-eql@npm:^5.0.1": + version: 5.0.2 + resolution: "deep-eql@npm:5.0.2" + checksum: 10/a529b81e2ef8821621d20a36959a0328873a3e49d393ad11f8efe8559f31239494c2eb889b80342808674c475802ba95b9d6c4c27641b9a029405104c1b59fcf + 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-is@npm:^0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: 10/ec12d074aef5ae5e81fa470b9317c313142c9e8e2afe3f8efa124db309720db96d1d222b82b84c834e5f87e7a614b44a4684b6683583118b87c833b3be40d4d8 + languageName: node + linkType: hard + +"deepmerge@npm:^4.2.2": + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 10/058d9e1b0ff1a154468bf3837aea436abcfea1ba1d165ddaaf48ca93765fdd01a30d33c36173da8fbbed951dd0a267602bc782fe288b0fc4b7e1e7091afc4529 + languageName: node + linkType: hard + +"defaults@npm:^1.0.3": + version: 1.0.4 + resolution: "defaults@npm:1.0.4" + dependencies: + clone: "npm:^1.0.2" + checksum: 10/3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a + 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-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 + +"defu@npm:^6.1.4": + version: 6.1.4 + resolution: "defu@npm:6.1.4" + checksum: 10/aeffdb47300f45b4fdef1c5bd3880ac18ea7a1fd5b8a8faf8df29350ff03bf16dd34f9800205cab513d476e4c0a3783aa0cff0a433aff0ac84a67ddc4c8a2d64 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 10/46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 + languageName: node + linkType: hard + +"depd@npm:2.0.0": + version: 2.0.0 + resolution: "depd@npm:2.0.0" + checksum: 10/c0c8ff36079ce5ada64f46cc9d6fd47ebcf38241105b6e0c98f412e8ad91f084bcf906ff644cc3a4bd876ca27a62accb8b0fff72ea6ed1a414b89d8506f4a5ca + languageName: node + linkType: hard + +"dequal@npm:^2.0.2, dequal@npm:^2.0.3": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 10/6ff05a7561f33603df87c45e389c9ac0a95e3c056be3da1a0c4702149e3a7f6fe5ffbb294478687ba51a9e95f3a60e8b6b9005993acd79c292c7d15f71964b6b + languageName: node + linkType: hard + +"destroy@npm:1.2.0": + version: 1.2.0 + resolution: "destroy@npm:1.2.0" + checksum: 10/0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 + languageName: node + linkType: hard + +"detect-indent@npm:^6.1.0": + version: 6.1.0 + resolution: "detect-indent@npm:6.1.0" + checksum: 10/ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d + languageName: node + linkType: hard + +"detect-newline@npm:^3.0.0": + version: 3.1.0 + resolution: "detect-newline@npm:3.1.0" + checksum: 10/ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 + languageName: node + linkType: hard + +"diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: 10/179daf9d2f9af5c57ad66d97cb902a538bcf8ed64963fa7aa0c329b3de3665ce2eb6ffdc2f69f29d445fa4af2517e5e55e5b6e00c00a9ae4f43645f97f7078cb + languageName: node + linkType: hard + +"dir-glob@npm:^3.0.1": + version: 3.0.1 + resolution: "dir-glob@npm:3.0.1" + dependencies: + path-type: "npm:^4.0.0" + checksum: 10/fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 + languageName: node + linkType: hard + +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: "npm:^2.0.2" + checksum: 10/b4b28f1df5c563f7d876e7461254a4597b8cabe915abe94d7c5d1633fed263fcf9a85e8d3836591fc2d040108e822b0d32758e5ec1fe31c590dc7e08086e3e48 + 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" + checksum: 10/83d3371f8226487fbad36e160d44f1d9017fb26d46faba6a06fcad15f34633fc827b8c3e99d49f71d5f3253d866e2131826866fd0a3c86626f8eccfc361881ff + languageName: node + linkType: hard + +"domexception@npm:^4.0.0": + version: 4.0.0 + resolution: "domexception@npm:4.0.0" + dependencies: + webidl-conversions: "npm:^7.0.0" + checksum: 10/4ed443227d2871d76c58d852b2e93c68e0443815b2741348f20881bedee8c1ad4f9bfc5d30c7dec433cd026b57da63407c010260b1682fef4c8847e7181ea43f + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 10/9b1d3e1baefeaf7d70799db8774149cef33b97183a6addceeba0cf6b85ba23ee2686f302f14482006df32df75d32b17c509c143a3689627929e4a8efaf483952 + languageName: node + linkType: hard + +"ecc-jsbn@npm:~0.1.1": + version: 0.1.2 + resolution: "ecc-jsbn@npm:0.1.2" + dependencies: + jsbn: "npm:~0.1.0" + safer-buffer: "npm:^2.1.0" + checksum: 10/d43591f2396196266e186e6d6928038cc11c76c3699a912cb9c13757060f7bbc7f17f47c4cb16168cdeacffc7965aef021142577e646fb3cb88810c15173eb57 + languageName: node + linkType: hard + +"ee-first@npm:1.1.1": + version: 1.1.1 + resolution: "ee-first@npm:1.1.1" + checksum: 10/1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.5.4": + version: 1.5.4 + resolution: "electron-to-chromium@npm:1.5.4" + checksum: 10/ce64db25c399d33830e74e58bbc5ab7c06948669e204b6508e98c278ddaead1da1cbb356d15b55eb659f89d4d7bcf00944f08f96e886f1d3d065ba11744c5633 + languageName: node + linkType: hard + +"emittery@npm:^0.13.1": + version: 0.13.1 + resolution: "emittery@npm:0.13.1" + checksum: 10/fbe214171d878b924eedf1757badf58a5dce071cd1fa7f620fa841a0901a80d6da47ff05929d53163105e621ce11a71b9d8acb1148ffe1745e045145f6e69521 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10/c72d67a6821be15ec11997877c437491c313d924306b8da5d87d2a2bcc2cec9903cb5b04ee1a088460501d8e5b44f10df82fdc93c444101a7610b80c8b6938e1 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 10/915acf859cea7131dac1b2b5c9c8e35c4849e325a1d114c30adb8cd615970f6dca0e27f64f3a4949d7d6ed86ecd79a1c5c63f02e697513cddd7b5835c90948b8 + languageName: node + linkType: hard + +"encodeurl@npm:~1.0.2": + version: 1.0.2 + resolution: "encodeurl@npm:1.0.2" + checksum: 10/e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: "npm:^0.6.2" + checksum: 10/bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + languageName: node + linkType: hard + +"end-of-stream@npm:^1.1.0": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: "npm:^1.4.0" + checksum: 10/530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b + languageName: node + linkType: hard + +"enquirer@npm:^2.3.6": + version: 2.4.1 + resolution: "enquirer@npm:2.4.1" + dependencies: + ansi-colors: "npm:^4.1.1" + strip-ansi: "npm:^6.0.1" + checksum: 10/b3726486cd98f0d458a851a03326a2a5dd4d84f37ff94ff2a2960c915e0fc865865da3b78f0877dc36ac5c1189069eca603e82ec63d5bc6b0dd9985bf6426d7a + languageName: node + linkType: hard + +"entities@npm:^4.4.0": + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 10/ede2a35c9bce1aeccd055a1b445d41c75a14a2bb1cd22e242f20cf04d236cdcd7f9c859eb83f76885327bfae0c25bf03303665ee1ce3d47c5927b98b0e3e3d48 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10/65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + languageName: node + linkType: hard + +"envinfo@npm:^7.7.3": + version: 7.13.0 + resolution: "envinfo@npm:7.13.0" + bin: + envinfo: dist/cli.js + checksum: 10/450c962053880f46852119cf89f4412cabd6d465ff5b74cf64e74e9da3a27ebd9e901944a5c4b0bf62950ad25025552282cbde6c00a5a9af0980dd001720fcbb + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 10/1d20d825cdcce8d811bfbe86340f4755c02655a7feb2f13f8c880566d9d72a3f6c92c192a6867632e490d6da67b678271f46e01044996a6443e870331100dfdd + languageName: node + linkType: hard + +"error-ex@npm:^1.3.1": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: "npm:^0.2.1" + checksum: 10/d547740aa29c34e753fb6fed2c5de81802438529c12b3673bd37b6bb1fe49b9b7abdc3c11e6062fe625d8a296b3cf769a80f878865e25e685f787763eede3ffb + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "es-define-property@npm:1.0.0" + dependencies: + get-intrinsic: "npm:^1.2.4" + checksum: 10/f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 + 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-module-lexer@npm:^1.5.0": + version: 1.5.4 + resolution: "es-module-lexer@npm:1.5.4" + checksum: 10/f29c7c97a58eb17640dcbd71bd6ef754ad4f58f95c3073894573d29dae2cad43ecd2060d97ed5b866dfb7804d5590fb7de1d2c5339a5fceae8bd60b580387fc5 + languageName: node + linkType: hard + +"esbuild-register@npm:^3.5.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/4ae1a016e3dad5b53c3d68cf07e31d8c1cec1a0b584038ece726097ac80bd33ab48fb224c766c9b341c04793837e652461eaca9327a116e7564f553b61ccca71 + languageName: node + linkType: hard + +"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0": + version: 0.23.0 + resolution: "esbuild@npm:0.23.0" + dependencies: + "@esbuild/aix-ppc64": "npm:0.23.0" + "@esbuild/android-arm": "npm:0.23.0" + "@esbuild/android-arm64": "npm:0.23.0" + "@esbuild/android-x64": "npm:0.23.0" + "@esbuild/darwin-arm64": "npm:0.23.0" + "@esbuild/darwin-x64": "npm:0.23.0" + "@esbuild/freebsd-arm64": "npm:0.23.0" + "@esbuild/freebsd-x64": "npm:0.23.0" + "@esbuild/linux-arm": "npm:0.23.0" + "@esbuild/linux-arm64": "npm:0.23.0" + "@esbuild/linux-ia32": "npm:0.23.0" + "@esbuild/linux-loong64": "npm:0.23.0" + "@esbuild/linux-mips64el": "npm:0.23.0" + "@esbuild/linux-ppc64": "npm:0.23.0" + "@esbuild/linux-riscv64": "npm:0.23.0" + "@esbuild/linux-s390x": "npm:0.23.0" + "@esbuild/linux-x64": "npm:0.23.0" + "@esbuild/netbsd-x64": "npm:0.23.0" + "@esbuild/openbsd-arm64": "npm:0.23.0" + "@esbuild/openbsd-x64": "npm:0.23.0" + "@esbuild/sunos-x64": "npm:0.23.0" + "@esbuild/win32-arm64": "npm:0.23.0" + "@esbuild/win32-ia32": "npm:0.23.0" + "@esbuild/win32-x64": "npm:0.23.0" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10/d3d91bf9ca73ba33966fc54cabb321eca770a5e2ff5b34d67e4235c94560cfd881803e39fcaa31d842579d10600da5201c5f597f8438679f6db856f75ded7124 + languageName: node + linkType: hard + +"esbuild@npm:^0.21.3": + version: 0.21.5 + resolution: "esbuild@npm:0.21.5" + dependencies: + "@esbuild/aix-ppc64": "npm:0.21.5" + "@esbuild/android-arm": "npm:0.21.5" + "@esbuild/android-arm64": "npm:0.21.5" + "@esbuild/android-x64": "npm:0.21.5" + "@esbuild/darwin-arm64": "npm:0.21.5" + "@esbuild/darwin-x64": "npm:0.21.5" + "@esbuild/freebsd-arm64": "npm:0.21.5" + "@esbuild/freebsd-x64": "npm:0.21.5" + "@esbuild/linux-arm": "npm:0.21.5" + "@esbuild/linux-arm64": "npm:0.21.5" + "@esbuild/linux-ia32": "npm:0.21.5" + "@esbuild/linux-loong64": "npm:0.21.5" + "@esbuild/linux-mips64el": "npm:0.21.5" + "@esbuild/linux-ppc64": "npm:0.21.5" + "@esbuild/linux-riscv64": "npm:0.21.5" + "@esbuild/linux-s390x": "npm:0.21.5" + "@esbuild/linux-x64": "npm:0.21.5" + "@esbuild/netbsd-x64": "npm:0.21.5" + "@esbuild/openbsd-x64": "npm:0.21.5" + "@esbuild/sunos-x64": "npm:0.21.5" + "@esbuild/win32-arm64": "npm:0.21.5" + "@esbuild/win32-ia32": "npm:0.21.5" + "@esbuild/win32-x64": "npm:0.21.5" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10/d2ff2ca84d30cce8e871517374d6c2290835380dc7cd413b2d49189ed170d45e407be14de2cb4794cf76f75cf89955c4714726ebd3de7444b3046f5cab23ab6b + languageName: node + linkType: hard + +"escalade@npm:^3.1.1, escalade@npm:^3.1.2": + version: 3.1.2 + resolution: "escalade@npm:3.1.2" + checksum: 10/a1e07fea2f15663c30e40b9193d658397846ffe28ce0a3e4da0d8e485fedfeca228ab846aee101a05015829adf39f9934ff45b2a3fca47bed37a29646bd05cd3 + languageName: node + linkType: hard + +"escape-html@npm:~1.0.3": + version: 1.0.3 + resolution: "escape-html@npm:1.0.3" + checksum: 10/6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 10/6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^2.0.0": + version: 2.0.0 + resolution: "escape-string-regexp@npm:2.0.0" + checksum: 10/9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 10/98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 + languageName: node + linkType: hard + +"escodegen@npm:^2.0.0, escodegen@npm:^2.1.0": + version: 2.1.0 + resolution: "escodegen@npm:2.1.0" + dependencies: + esprima: "npm:^4.0.1" + estraverse: "npm:^5.2.0" + esutils: "npm:^2.0.2" + source-map: "npm:~0.6.1" + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 10/47719a65b2888b4586e3fa93769068b275961c13089e90d5d01a96a6e8e95871b1c3893576814c8fbf08a4a31a496f37e7b2c937cf231270f4d81de012832c7c + languageName: node + linkType: hard + +"eslint-plugin-react-hooks@npm:^4.6.0": + version: 4.6.2 + resolution: "eslint-plugin-react-hooks@npm:4.6.2" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + checksum: 10/5a0680941f34e70cf505bcb6082df31a3e445d193ee95a88ff3483041eb944f4cefdaf7e81b0eb1feb4eeceee8c7c6ddb8a2a6e8c4c0388514a42e16ac7b7a69 + languageName: node + linkType: hard + +"eslint-plugin-react-refresh@npm:^0.4.5": + version: 0.4.9 + resolution: "eslint-plugin-react-refresh@npm:0.4.9" + peerDependencies: + eslint: ">=7" + checksum: 10/4a8fad22270ff2bba86bc34973228334194739b3b64dab0a13e35f1a55f8e0a66ab8861520c86f3acc3ecb3701c5bb68eca9f1f8f8a6144c17ef511ab07e02bc + languageName: node + linkType: hard + +"eslint-plugin-storybook@npm:^0.6.15": + version: 0.6.15 + resolution: "eslint-plugin-storybook@npm:0.6.15" + dependencies: + "@storybook/csf": "npm:^0.0.1" + "@typescript-eslint/utils": "npm:^5.45.0" + requireindex: "npm:^1.1.0" + ts-dedent: "npm:^2.2.0" + peerDependencies: + eslint: ">=6" + checksum: 10/0c278594c8474ce2f176ffc6610240ae9d6c8f9dafbff02be61e6ae05f15081ce858c5b16e64d8995a3a3777c9d1725953fcde4312efab9118aa544a75b27c46 + languageName: node + linkType: hard + +"eslint-scope@npm:^5.1.1": + version: 5.1.1 + resolution: "eslint-scope@npm:5.1.1" + dependencies: + esrecurse: "npm:^4.3.0" + estraverse: "npm:^4.1.1" + checksum: 10/c541ef384c92eb5c999b7d3443d80195fcafb3da335500946f6db76539b87d5826c8f2e1d23bf6afc3154ba8cd7c8e566f8dc00f1eea25fdf3afc8fb9c87b238 + languageName: node + linkType: hard + +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" + dependencies: + esrecurse: "npm:^4.3.0" + estraverse: "npm:^5.2.0" + checksum: 10/5c660fb905d5883ad018a6fea2b49f3cb5b1cbf2cd4bd08e98646e9864f9bc2c74c0839bed2d292e90a4a328833accc197c8f0baed89cbe8d605d6f918465491 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 10/3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b + languageName: node + linkType: hard + +"eslint@npm:^8.56.0": + version: 8.57.0 + resolution: "eslint@npm:8.57.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.2.0" + "@eslint-community/regexpp": "npm:^4.6.1" + "@eslint/eslintrc": "npm:^2.1.4" + "@eslint/js": "npm:8.57.0" + "@humanwhocodes/config-array": "npm:^0.11.14" + "@humanwhocodes/module-importer": "npm:^1.0.1" + "@nodelib/fs.walk": "npm:^1.2.8" + "@ungap/structured-clone": "npm:^1.2.0" + ajv: "npm:^6.12.4" + chalk: "npm:^4.0.0" + cross-spawn: "npm:^7.0.2" + debug: "npm:^4.3.2" + doctrine: "npm:^3.0.0" + escape-string-regexp: "npm:^4.0.0" + eslint-scope: "npm:^7.2.2" + eslint-visitor-keys: "npm:^3.4.3" + espree: "npm:^9.6.1" + esquery: "npm:^1.4.2" + esutils: "npm:^2.0.2" + fast-deep-equal: "npm:^3.1.3" + file-entry-cache: "npm:^6.0.1" + find-up: "npm:^5.0.0" + glob-parent: "npm:^6.0.2" + globals: "npm:^13.19.0" + graphemer: "npm:^1.4.0" + ignore: "npm:^5.2.0" + imurmurhash: "npm:^0.1.4" + is-glob: "npm:^4.0.0" + is-path-inside: "npm:^3.0.3" + js-yaml: "npm:^4.1.0" + json-stable-stringify-without-jsonify: "npm:^1.0.1" + levn: "npm:^0.4.1" + lodash.merge: "npm:^4.6.2" + minimatch: "npm:^3.1.2" + natural-compare: "npm:^1.4.0" + optionator: "npm:^0.9.3" + strip-ansi: "npm:^6.0.1" + text-table: "npm:^0.2.0" + bin: + eslint: bin/eslint.js + checksum: 10/00496e218b23747a7a9817bf58b522276d0dc1f2e546dceb4eea49f9871574088f72f1f069a6b560ef537efa3a75261b8ef70e51ef19033da1cc4c86a755ef15 + languageName: node + linkType: hard + +"espree@npm:^9.6.0, espree@npm:^9.6.1": + version: 9.6.1 + resolution: "espree@npm:9.6.1" + dependencies: + acorn: "npm:^8.9.0" + acorn-jsx: "npm:^5.3.2" + eslint-visitor-keys: "npm:^3.4.1" + checksum: 10/255ab260f0d711a54096bdeda93adff0eadf02a6f9b92f02b323e83a2b7fc258797919437ad331efec3930475feb0142c5ecaaf3cdab4befebd336d47d3f3134 + languageName: node + linkType: hard + +"esprima@npm:^4.0.0, esprima@npm:^4.0.1, esprima@npm:~4.0.0": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: 10/f1d3c622ad992421362294f7acf866aa9409fbad4eb2e8fa230bd33944ce371d32279667b242d8b8907ec2b6ad7353a717f3c0e60e748873a34a7905174bc0eb + languageName: node + linkType: hard + +"esquery@npm:^1.4.2": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" + dependencies: + estraverse: "npm:^5.1.0" + checksum: 10/c587fb8ec9ed83f2b1bc97cf2f6854cc30bf784a79d62ba08c6e358bf22280d69aee12827521cf38e69ae9761d23fb7fde593ce315610f85655c139d99b05e5a + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: "npm:^5.2.0" + checksum: 10/44ffcd89e714ea6b30143e7f119b104fc4d75e77ee913f34d59076b40ef2d21967f84e019f84e1fd0465b42cdbf725db449f232b5e47f29df29ed76194db8e16 + languageName: node + linkType: hard + +"estraverse@npm:^4.1.1": + version: 4.3.0 + resolution: "estraverse@npm:4.3.0" + checksum: 10/3f67ad02b6dbfaddd9ea459cf2b6ef4ecff9a6082a7af9d22e445b9abc082ad9ca47e1825557b293fcdae477f4714e561123e30bb6a5b2f184fb2bad4a9497eb + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 10/37cbe6e9a68014d34dbdc039f90d0baf72436809d02edffcc06ba3c2a12eb298048f877511353b130153e532aac8d68ba78430c0dd2f44806ebc7c014b01585e + languageName: node + linkType: hard + +"estree-walker@npm:^2.0.2": + version: 2.0.2 + resolution: "estree-walker@npm:2.0.2" + checksum: 10/b02109c5d46bc2ed47de4990eef770f7457b1159a229f0999a09224d2b85ffeed2d7679cffcff90aeb4448e94b0168feb5265b209cdec29aad50a3d6e93d21e2 + 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" + checksum: 10/b23acd24791db11d8f65be5ea58fd9a6ce2df5120ae2da65c16cfc5331ff59d5ac4ef50af66cd4bde238881503ec839928a0135b99a036a9cdfa22d17fd56cdb + languageName: node + linkType: hard + +"etag@npm:~1.8.1": + version: 1.8.1 + resolution: "etag@npm:1.8.1" + checksum: 10/571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff + languageName: node + linkType: hard + +"eventemitter2@npm:6.4.7": + version: 6.4.7 + resolution: "eventemitter2@npm:6.4.7" + checksum: 10/df2a733ee3a7ac6e7f6988cebbaac5b14b46bf82f700f1ec86f9e3f3d095dba20f9aa5c29d9d62a6f50fd943f798f7f2a38c4e1b45148f6f7cec7586a8ac6881 + languageName: node + linkType: hard + +"execa@npm:4.1.0": + version: 4.1.0 + resolution: "execa@npm:4.1.0" + dependencies: + cross-spawn: "npm:^7.0.0" + get-stream: "npm:^5.0.0" + human-signals: "npm:^1.1.1" + is-stream: "npm:^2.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^4.0.0" + onetime: "npm:^5.1.0" + signal-exit: "npm:^3.0.2" + strip-final-newline: "npm:^2.0.0" + checksum: 10/ed58e41fe424797f3d837c8fb622548eeb72fa03324f2676af95f806568904eb55f196127a097f87d4517cab524c169ece13e6c9e201867de57b089584864b8f + languageName: node + linkType: hard + +"execa@npm:^5.0.0": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^6.0.0" + human-signals: "npm:^2.1.0" + is-stream: "npm:^2.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^4.0.1" + onetime: "npm:^5.1.2" + signal-exit: "npm:^3.0.3" + strip-final-newline: "npm:^2.0.0" + checksum: 10/8ada91f2d70f7dff702c861c2c64f21dfdc1525628f3c0454fd6f02fce65f7b958616cbd2b99ca7fa4d474e461a3d363824e91b3eb881705231abbf387470597 + languageName: node + linkType: hard + +"execa@npm:^8.0.1": + version: 8.0.1 + resolution: "execa@npm:8.0.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^8.0.1" + human-signals: "npm:^5.0.0" + is-stream: "npm:^3.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^5.1.0" + onetime: "npm:^6.0.0" + signal-exit: "npm:^4.1.0" + strip-final-newline: "npm:^3.0.0" + checksum: 10/d2ab5fe1e2bb92b9788864d0713f1fce9a07c4594e272c0c97bc18c90569897ab262e4ea58d27a694d288227a2e24f16f5e2575b44224ad9983b799dc7f1098d + languageName: node + linkType: hard + +"executable@npm:^4.1.1": + version: 4.1.1 + resolution: "executable@npm:4.1.1" + dependencies: + pify: "npm:^2.2.0" + checksum: 10/f01927ce59bccec804e171bf859a26e362c1f50aa9ebc69f7cafdcce3859d29d4b6267fd47237c18b0a1830614bd3f0ee14b7380d9bad18a4e7af9b5f0b6984f + languageName: node + linkType: hard + +"exit@npm:^0.1.2": + version: 0.1.2 + resolution: "exit@npm:0.1.2" + checksum: 10/387555050c5b3c10e7a9e8df5f43194e95d7737c74532c409910e585d5554eaff34960c166643f5e23d042196529daad059c292dcf1fb61b8ca878d3677f4b87 + languageName: node + linkType: hard + +"expect@npm:^29.7.0": + version: 29.7.0 + resolution: "expect@npm:29.7.0" + dependencies: + "@jest/expect-utils": "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10/63f97bc51f56a491950fb525f9ad94f1916e8a014947f8d8445d3847a665b5471b768522d659f5e865db20b6c2033d2ac10f35fcbd881a4d26407a4f6f18451a + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 10/2d9bbb6473de7051f96790d5f9a678f32e60ed0aa70741dc7fdc96fec8d631124ec3374ac144387604f05afff9500f31a1d45bd9eee4cdc2e4f9ad2d9b9d5dbd + languageName: node + linkType: hard + +"express@npm:^4.19.2": + version: 4.19.2 + resolution: "express@npm:4.19.2" + dependencies: + accepts: "npm:~1.3.8" + array-flatten: "npm:1.1.1" + body-parser: "npm:1.20.2" + content-disposition: "npm:0.5.4" + content-type: "npm:~1.0.4" + cookie: "npm:0.6.0" + cookie-signature: "npm:1.0.6" + debug: "npm:2.6.9" + depd: "npm:2.0.0" + encodeurl: "npm:~1.0.2" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + finalhandler: "npm:1.2.0" + fresh: "npm:0.5.2" + http-errors: "npm:2.0.0" + merge-descriptors: "npm:1.0.1" + methods: "npm:~1.1.2" + on-finished: "npm:2.4.1" + parseurl: "npm:~1.3.3" + path-to-regexp: "npm:0.1.7" + proxy-addr: "npm:~2.0.7" + qs: "npm:6.11.0" + range-parser: "npm:~1.2.1" + safe-buffer: "npm:5.2.1" + send: "npm:0.18.0" + serve-static: "npm:1.15.0" + setprototypeof: "npm:1.2.0" + statuses: "npm:2.0.1" + type-is: "npm:~1.6.18" + utils-merge: "npm:1.0.1" + vary: "npm:~1.1.2" + checksum: 10/3fcd792536f802c059789ef48db3851b87e78fba103423e524144d79af37da7952a2b8d4e1a007f423329c7377d686d9476ac42e7d9ea413b80345d495e30a3a + languageName: node + linkType: hard + +"extend@npm:~3.0.2": + version: 3.0.2 + resolution: "extend@npm:3.0.2" + checksum: 10/59e89e2dc798ec0f54b36d82f32a27d5f6472c53974f61ca098db5d4648430b725387b53449a34df38fd0392045434426b012f302b3cc049a6500ccf82877e4e + languageName: node + linkType: hard + +"extract-zip@npm:2.0.1": + version: 2.0.1 + resolution: "extract-zip@npm:2.0.1" + dependencies: + "@types/yauzl": "npm:^2.9.1" + debug: "npm:^4.1.1" + get-stream: "npm:^5.1.0" + yauzl: "npm:^2.10.0" + dependenciesMeta: + "@types/yauzl": + optional: true + bin: + extract-zip: cli.js + checksum: 10/8cbda9debdd6d6980819cc69734d874ddd71051c9fe5bde1ef307ebcedfe949ba57b004894b585f758b7c9eeeea0e3d87f2dda89b7d25320459c2c9643ebb635 + languageName: node + linkType: hard + +"extsprintf@npm:1.3.0": + version: 1.3.0 + resolution: "extsprintf@npm:1.3.0" + checksum: 10/26967d6c7ecbfb5bc5b7a6c43503dc5fafd9454802037e9fa1665e41f615da4ff5918bd6cb871a3beabed01a31eca1ccd0bdfb41231f50ad50d405a430f78377 + languageName: node + linkType: hard + +"extsprintf@npm:^1.2.0": + version: 1.4.1 + resolution: "extsprintf@npm:1.4.1" + checksum: 10/bfd6d55f3c0c04d826fe0213264b383c03f32825af6b1ff777f3f2dc49467e599361993568d75b7b19a8ea1bb08c8e7cd8c3d87d179ced91bb0dcf81ca6938e0 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: 10/e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d + languageName: node + linkType: hard + +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" + 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 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: 10/2c20055c1fa43c922428f16ca8bb29f2807de63e5c851f665f7ac9790176c01c3b40335257736b299764a8d383388dabc73c8083b8e1bc3d99f0a941444ec60e + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 10/eb7e220ecf2bab5159d157350b81d01f75726a4382f5a9266f42b9150c4523b9795f7f5d9fbbbeaeac09a441b2369f05ee02db48ea938584205530fe5693cfe1 + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.17.1 + resolution: "fastq@npm:1.17.1" + dependencies: + reusify: "npm:^1.0.4" + checksum: 10/a443180068b527dd7b3a63dc7f2a47ceca2f3e97b9c00a1efe5538757e6cc4056a3526df94308075d7727561baf09ebaa5b67da8dcbddb913a021c5ae69d1f69 + languageName: node + linkType: hard + +"fb-watchman@npm:^2.0.0": + version: 2.0.2 + resolution: "fb-watchman@npm:2.0.2" + dependencies: + bser: "npm:2.1.1" + checksum: 10/4f95d336fb805786759e383fd7fff342ceb7680f53efcc0ef82f502eb479ce35b98e8b207b6dfdfeea0eba845862107dc73813775fc6b56b3098c6e90a2dad77 + languageName: node + linkType: hard + +"fd-package-json@npm:^1.2.0": + version: 1.2.0 + resolution: "fd-package-json@npm:1.2.0" + dependencies: + walk-up-path: "npm:^3.0.1" + checksum: 10/043a9b5bbec41d2e452b6c81943b235f0f89358acb1f0fbcfa7ecba80df53434f8e1d663d964c919447fbd0c6f8f8e7dc477fd31a1dd1d7217bfaeeae14fcbb0 + languageName: node + linkType: hard + +"fd-slicer@npm:~1.1.0": + version: 1.1.0 + resolution: "fd-slicer@npm:1.1.0" + dependencies: + pend: "npm:~1.2.0" + checksum: 10/db3e34fa483b5873b73f248e818f8a8b59a6427fd8b1436cd439c195fdf11e8659419404826059a642b57d18075c856d06d6a50a1413b714f12f833a9341ead3 + languageName: node + linkType: hard + +"figures@npm:^3.2.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" + dependencies: + escape-string-regexp: "npm:^1.0.5" + checksum: 10/a3bf94e001be51d3770500789157f067218d4bc681a65e1f69d482de15120bcac822dceb1a7b3803f32e4e3a61a46df44f7f2c8ba95d6375e7491502e0dd3d97 + languageName: node + linkType: hard + +"file-entry-cache@npm:^6.0.1": + version: 6.0.1 + resolution: "file-entry-cache@npm:6.0.1" + dependencies: + flat-cache: "npm:^3.0.4" + checksum: 10/099bb9d4ab332cb93c48b14807a6918a1da87c45dce91d4b61fd40e6505d56d0697da060cb901c729c90487067d93c9243f5da3dc9c41f0358483bfdebca736b + languageName: node + linkType: hard + +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" + dependencies: + to-regex-range: "npm:^5.0.1" + checksum: 10/a7095cb39e5bc32fada2aa7c7249d3f6b01bd1ce461a61b0adabacccabd9198500c6fb1f68a7c851a657e273fce2233ba869638897f3d7ed2e87a2d89b4436ea + languageName: node + linkType: hard + +"finalhandler@npm:1.2.0": + version: 1.2.0 + resolution: "finalhandler@npm:1.2.0" + dependencies: + debug: "npm:2.6.9" + encodeurl: "npm:~1.0.2" + escape-html: "npm:~1.0.3" + on-finished: "npm:2.4.1" + parseurl: "npm:~1.3.3" + statuses: "npm:2.0.1" + unpipe: "npm:~1.0.0" + checksum: 10/635718cb203c6d18e6b48dfbb6c54ccb08ea470e4f474ddcef38c47edcf3227feec316f886dd701235997d8af35240cae49856721ce18f539ad038665ebbf163 + languageName: node + linkType: hard + +"find-cache-dir@npm:^2.0.0": + version: 2.1.0 + resolution: "find-cache-dir@npm:2.1.0" + dependencies: + commondir: "npm:^1.0.1" + make-dir: "npm:^2.0.0" + pkg-dir: "npm:^3.0.0" + checksum: 10/60ad475a6da9f257df4e81900f78986ab367d4f65d33cf802c5b91e969c28a8762f098693d7a571b6e4dd4c15166c2da32ae2d18b6766a18e2071079448fdce4 + languageName: node + linkType: hard + +"find-cache-dir@npm:^3.0.0": + version: 3.3.2 + resolution: "find-cache-dir@npm:3.3.2" + dependencies: + commondir: "npm:^1.0.1" + make-dir: "npm:^3.0.2" + pkg-dir: "npm:^4.1.0" + checksum: 10/3907c2e0b15132704ed67083686cd3e68ab7d9ecc22e50ae9da20678245d488b01fa22c0e34c0544dc6edc4354c766f016c8c186a787be7c17f7cde8c5281e85 + languageName: node + linkType: hard + +"find-up@npm:^3.0.0": + version: 3.0.0 + resolution: "find-up@npm:3.0.0" + dependencies: + locate-path: "npm:^3.0.0" + checksum: 10/38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9 + languageName: node + linkType: hard + +"find-up@npm:^4.0.0, find-up@npm:^4.1.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" + dependencies: + locate-path: "npm:^5.0.0" + path-exists: "npm:^4.0.0" + checksum: 10/4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 + languageName: node + linkType: hard + +"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 + +"flat-cache@npm:^3.0.4": + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" + dependencies: + flatted: "npm:^3.2.9" + keyv: "npm:^4.5.3" + rimraf: "npm:^3.0.2" + checksum: 10/02381c6ece5e9fa5b826c9bbea481d7fd77645d96e4b0b1395238124d581d10e56f17f723d897b6d133970f7a57f0fab9148cbbb67237a0a0ffe794ba60c0c70 + languageName: node + linkType: hard + +"flatted@npm:^3.2.9": + version: 3.3.1 + resolution: "flatted@npm:3.3.1" + checksum: 10/7b8376061d5be6e0d3658bbab8bde587647f68797cf6bfeae9dea0e5137d9f27547ab92aaff3512dd9d1299086a6d61be98e9d48a56d17531b634f77faadbc49 + languageName: node + linkType: hard + +"flow-parser@npm:0.*": + version: 0.242.1 + resolution: "flow-parser@npm:0.242.1" + checksum: 10/579713b596a93e1f4fc9df0ed6379fb60841d4df3fa4ccefa6545d3d954c510a293996e6df33525f599bd370c0bf76a29992bbf206ba68157e8a1ae52a101269 + languageName: node + linkType: hard + +"for-each@npm:^0.3.3": + version: 0.3.3 + resolution: "for-each@npm:0.3.3" + dependencies: + is-callable: "npm:^1.1.3" + checksum: 10/fdac0cde1be35610bd635ae958422e8ce0cc1313e8d32ea6d34cfda7b60850940c1fd07c36456ad76bd9c24aef6ff5e03b02beb58c83af5ef6c968a64eada676 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.2.1 + resolution: "foreground-child@npm:3.2.1" + dependencies: + cross-spawn: "npm:^7.0.0" + signal-exit: "npm:^4.0.1" + checksum: 10/77b33b3c438a499201727ca84de39a66350ccd54a8805df712773e963cefb5c4632dbc4386109e97a0df8fb1585aee95fa35acb07587e3e04cfacabfc0ae15dc + languageName: node + linkType: hard + +"forever-agent@npm:~0.6.1": + version: 0.6.1 + resolution: "forever-agent@npm:0.6.1" + checksum: 10/c1e1644d5e074ac063ecbc3fb8582013ef91fff0e3fa41e76db23d2f62bc6d9677aac86db950917deed4fe1fdd772df780cfaa352075f23deec9c015313afb97 + languageName: node + linkType: hard + +"form-data@npm:^4.0.0": + version: 4.0.0 + resolution: "form-data@npm:4.0.0" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + mime-types: "npm:^2.1.12" + checksum: 10/7264aa760a8cf09482816d8300f1b6e2423de1b02bba612a136857413fdc96d7178298ced106817655facc6b89036c6e12ae31c9eb5bdc16aabf502ae8a5d805 + languageName: node + linkType: hard + +"form-data@npm:~2.3.2": + version: 2.3.3 + resolution: "form-data@npm:2.3.3" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.6" + mime-types: "npm:^2.1.12" + checksum: 10/1b6f3ccbf4540e535887b42218a2431a3f6cfdea320119c2affa2a7a374ad8fdd1e60166fc865181f45d49b1684c3e90e7b2190d3fe016692957afb9cf0d0d02 + languageName: node + linkType: hard + +"forwarded@npm:0.2.0": + version: 0.2.0 + resolution: "forwarded@npm:0.2.0" + checksum: 10/29ba9fd347117144e97cbb8852baae5e8b2acb7d1b591ef85695ed96f5b933b1804a7fac4a15dd09ca7ac7d0cdc104410e8102aae2dd3faa570a797ba07adb81 + languageName: node + linkType: hard + +"fresh@npm:0.5.2": + version: 0.5.2 + resolution: "fresh@npm:0.5.2" + checksum: 10/64c88e489b5d08e2f29664eb3c79c705ff9a8eb15d3e597198ef76546d4ade295897a44abb0abd2700e7ef784b2e3cbf1161e4fbf16f59129193fd1030d16da1 + languageName: node + linkType: hard + +"fs-extra@npm:^11.1.0": + version: 11.2.0 + resolution: "fs-extra@npm:11.2.0" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10/0579bf6726a4cd054d4aa308f10b483f52478bb16284f32cf60b4ce0542063d551fca1a08a2af365e35db21a3fa5a06cf2a6ed614004b4368982bc754cb816b3 + languageName: node + linkType: hard + +"fs-extra@npm:^9.1.0": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" + dependencies: + at-least-node: "npm:^1.0.0" + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10/08600da1b49552ed23dfac598c8fc909c66776dd130fea54fbcad22e330f7fcc13488bb995f6bc9ce5651aa35b65702faf616fe76370ee56f1aade55da982dca + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10/03191781e94bc9a54bd376d3146f90fe8e082627c502185dbf7b9b3032f66b0b142c1115f3b2cc5936575fc1b44845ce903dd4c21bec2a8d69f3bd56f9cee9ec + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10/af143246cf6884fe26fa281621d45cfe111d34b30535a475bfa38dafe343dadb466c047a924ffc7d6b7b18265df4110224ce3803806dbb07173bf2087b648d7f + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 10/e703107c28e362d8d7b910bbcbfd371e640a3bb45ae157a362b5952c0030c0b6d4981140ec319b347bce7adc025dd7813da1ff908a945ac214d64f5402a51b96 + languageName: node + linkType: hard + +"fsevents@npm:2.3.2": + version: 2.3.2 + resolution: "fsevents@npm:2.3.2" + dependencies: + node-gyp: "npm:latest" + checksum: 10/6b5b6f5692372446ff81cf9501c76e3e0459a4852b3b5f1fc72c103198c125a6b8c72f5f166bdd76ffb2fca261e7f6ee5565daf80dca6e571e55bcc589cc1256 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: "npm:latest" + checksum: 10/4c1ade961ded57cdbfbb5cac5106ec17bc8bccd62e16343c569a0ceeca83b9dfef87550b4dc5cbb89642da412b20c5071f304c8c464b80415446e8e155a038c0 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin": + version: 2.3.2 + resolution: "fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 10/185e20d20f10c8d661d59aac0f3b63b31132d492e1b11fcc2a93cb2c47257ebaee7407c38513efd2b35cafdf972d9beb2ea4593c1e0f3bf8f2744836928d7454 + 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 + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: 10/17d8333460204fbf1f9160d067e1e77f908a5447febb49424b8ab043026049835c9ef3974445c57dbd39161f4d2b04356d7de12b2eecaa27a7a7ea7d871cbedd + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: 10/b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 + languageName: node + linkType: hard + +"get-func-name@npm:^2.0.1": + version: 2.0.2 + resolution: "get-func-name@npm:2.0.2" + checksum: 10/3f62f4c23647de9d46e6f76d2b3eafe58933a9b3830c60669e4180d6c601ce1b4aa310ba8366143f55e52b139f992087a9f0647274e8745621fa2af7e0acf13b + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.4": + version: 1.2.4 + resolution: "get-intrinsic@npm:1.2.4" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + has-proto: "npm:^1.0.1" + has-symbols: "npm:^1.0.3" + hasown: "npm:^2.0.0" + checksum: 10/85bbf4b234c3940edf8a41f4ecbd4e25ce78e5e6ad4e24ca2f77037d983b9ef943fd72f00f3ee97a49ec622a506b67db49c36246150377efcda1c9eb03e5f06d + languageName: node + linkType: hard + +"get-package-type@npm:^0.1.0": + version: 0.1.0 + resolution: "get-package-type@npm:0.1.0" + checksum: 10/bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 + languageName: node + linkType: hard + +"get-stream@npm:^5.0.0, get-stream@npm:^5.1.0": + version: 5.2.0 + resolution: "get-stream@npm:5.2.0" + dependencies: + pump: "npm:^3.0.0" + checksum: 10/13a73148dca795e41421013da6e3ebff8ccb7fba4d2f023fd0c6da2c166ec4e789bec9774a73a7b49c08daf2cae552f8a3e914042ac23b5f59dd278cc8f9cbfb + languageName: node + linkType: hard + +"get-stream@npm:^6.0.0": + version: 6.0.1 + resolution: "get-stream@npm:6.0.1" + checksum: 10/781266d29725f35c59f1d214aedc92b0ae855800a980800e2923b3fbc4e56b3cb6e462c42e09a1cf1a00c64e056a78fa407cbe06c7c92b7e5cd49b4b85c2a497 + languageName: node + linkType: hard + +"get-stream@npm:^8.0.1": + version: 8.0.1 + resolution: "get-stream@npm:8.0.1" + checksum: 10/dde5511e2e65a48e9af80fea64aff11b4921b14b6e874c6f8294c50975095af08f41bfb0b680c887f28b566dd6ec2cb2f960f9d36a323359be324ce98b766e9e + languageName: node + linkType: hard + +"getos@npm:^3.2.1": + version: 3.2.1 + resolution: "getos@npm:3.2.1" + dependencies: + async: "npm:^3.2.0" + checksum: 10/228bede057f5cbed93dc6a66ce459a0364059faa2869682547663302f612e6295f13d3ad2a54ebbed573a9eb7f8124508b24409df6bcda6e15906c357526d11f + languageName: node + linkType: hard + +"getpass@npm:^0.1.1": + version: 0.1.7 + resolution: "getpass@npm:0.1.7" + dependencies: + assert-plus: "npm:^1.0.0" + checksum: 10/ab18d55661db264e3eac6012c2d3daeafaab7a501c035ae0ccb193c3c23e9849c6e29b6ac762b9c2adae460266f925d55a3a2a3a3c8b94be2f222df94d70c046 + languageName: node + linkType: hard + +"giget@npm:^1.0.0": + version: 1.2.3 + resolution: "giget@npm:1.2.3" + dependencies: + citty: "npm:^0.1.6" + consola: "npm:^3.2.3" + defu: "npm:^6.1.4" + node-fetch-native: "npm:^1.6.3" + nypm: "npm:^0.3.8" + ohash: "npm:^1.1.3" + pathe: "npm:^1.1.2" + tar: "npm:^6.2.0" + bin: + giget: dist/cli.mjs + checksum: 10/85bdcf380566fc9c4299f029acbe78a706f1825912c6cea39b675d08064399988f5de30d17238246f725183ac7504e7b9d3000c417f1df7ebb52ab26c7d3ab8c + languageName: node + linkType: hard + +"github-slugger@npm:^2.0.0": + version: 2.0.0 + resolution: "github-slugger@npm:2.0.0" + checksum: 10/2fb15d78262eeba1e68671f048c62d05ed21e51281cccc7b1c9e8e089e8510b3037fb648b8ba27290e60534df2cb251312a1e7e813204495df621220192fd600 + languageName: node + linkType: hard + +"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: "npm:^4.0.1" + checksum: 10/32cd106ce8c0d83731966d31517adb766d02c3812de49c30cfe0675c7c0ae6630c11214c54a5ae67aca882cf738d27fd7768f21aa19118b9245950554be07247 + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: "npm:^4.0.3" + checksum: 10/c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 + languageName: node + linkType: hard + +"glob-promise@npm:^4.2.0": + version: 4.2.2 + resolution: "glob-promise@npm:4.2.2" + dependencies: + "@types/glob": "npm:^7.1.3" + peerDependencies: + glob: ^7.1.6 + checksum: 10/c1a3d95f7c8393e4151d4899ec4e42bb2e8237160f840ad1eccbe9247407da8b6c13e28f463022e011708bc40862db87b9b77236d35afa3feb8aa86d518f2dfe + languageName: node + linkType: hard + +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10/698dfe11828b7efd0514cd11e573eaed26b2dff611f0400907281ce3eab0c1e56143ef9b35adc7c77ecc71fba74717b510c7c223d34ca8a98ec81777b293d4ac + languageName: node + linkType: hard + +"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^3.1.1" + once: "npm:^1.3.0" + path-is-absolute: "npm:^1.0.0" + checksum: 10/59452a9202c81d4508a43b8af7082ca5c76452b9fcc4a9ab17655822e6ce9b21d4f8fbadabe4fe3faef448294cec249af305e2cd824b7e9aaf689240e5e96a7b + languageName: node + linkType: hard + +"global-dirs@npm:^3.0.0": + version: 3.0.1 + resolution: "global-dirs@npm:3.0.1" + dependencies: + ini: "npm:2.0.0" + checksum: 10/70147b80261601fd40ac02a104581432325c1c47329706acd773f3a6ce99bb36d1d996038c85ccacd482ad22258ec233c586b6a91535b1a116b89663d49d6438 + languageName: node + linkType: hard + +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 10/9f054fa38ff8de8fa356502eb9d2dae0c928217b8b5c8de1f09f5c9b6c8a96d8b9bd3afc49acbcd384a98a81fea713c859e1b09e214c60509517bb8fc2bc13c2 + languageName: node + linkType: hard + +"globals@npm:^13.19.0": + version: 13.24.0 + resolution: "globals@npm:13.24.0" + dependencies: + type-fest: "npm:^0.20.2" + checksum: 10/62c5b1997d06674fc7191d3e01e324d3eda4d65ac9cc4e78329fa3b5c4fd42a0e1c8722822497a6964eee075255ce21ccf1eec2d83f92ef3f06653af4d0ee28e + languageName: node + linkType: hard + +"globby@npm:^11.1.0": + version: 11.1.0 + resolution: "globby@npm:11.1.0" + dependencies: + array-union: "npm:^2.1.0" + dir-glob: "npm:^3.0.1" + fast-glob: "npm:^3.2.9" + ignore: "npm:^5.2.0" + merge2: "npm:^1.4.1" + slash: "npm:^3.0.0" + checksum: 10/288e95e310227bbe037076ea81b7c2598ccbc3122d87abc6dab39e1eec309aa14f0e366a98cdc45237ffcfcbad3db597778c0068217dcb1950fef6249104e1b1 + languageName: node + linkType: hard + +"globby@npm:^14.0.1": + version: 14.0.2 + resolution: "globby@npm:14.0.2" + dependencies: + "@sindresorhus/merge-streams": "npm:^2.1.0" + fast-glob: "npm:^3.3.2" + ignore: "npm:^5.2.4" + path-type: "npm:^5.0.0" + slash: "npm:^5.1.0" + unicorn-magic: "npm:^0.1.0" + checksum: 10/67660da70fc1223f7170c1a62ba6c373385e9e39765d952b6518606dec15ed8c7958e9dae6ba5752a31dbc1e9126f146938b830ad680fe794141734ffc3fbb75 + languageName: node + linkType: hard + +"gopd@npm:^1.0.1": + version: 1.0.1 + resolution: "gopd@npm:1.0.1" + dependencies: + get-intrinsic: "npm:^1.1.3" + checksum: 10/5fbc7ad57b368ae4cd2f41214bd947b045c1a4be2f194a7be1778d71f8af9dbf4004221f3b6f23e30820eb0d052b4f819fe6ebe8221e2a3c6f0ee4ef173421ca + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, 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" + checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2 + languageName: node + linkType: hard + +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: 10/6dd60dba97007b21e3a829fab3f771803cc1292977fe610e240ea72afd67e5690ac9eeaafc4a99710e78962e5936ab5a460787c2a1180f1cb0ccfac37d29f897 + languageName: node + linkType: hard + +"harmony-reflect@npm:^1.4.6": + version: 1.6.2 + resolution: "harmony-reflect@npm:1.6.2" + checksum: 10/69d30ebfb5dbd6ff0553725c7922404cf1dfe5390db1618298eed27fe6c9bd2f3f677727e9da969d21648f4a6a39041e2f46e99976be4385f9e34bac23058cd4 + languageName: node + linkType: hard + +"has-bigints@npm:^1.0.1": + version: 1.0.2 + resolution: "has-bigints@npm:1.0.2" + checksum: 10/4e0426c900af034d12db14abfece02ce7dbf53f2022d28af1a97913ff4c07adb8799476d57dc44fbca0e07d1dbda2a042c2928b1f33d3f09c15de0640a7fb81b + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 10/4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 10/261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad + 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-proto@npm:^1.0.1": + version: 1.0.3 + resolution: "has-proto@npm:1.0.3" + checksum: 10/0b67c2c94e3bea37db3e412e3c41f79d59259875e636ba471e94c009cdfb1fa82bf045deeffafc7dbb9c148e36cae6b467055aaa5d9fad4316e11b41e3ba551a + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": + version: 1.0.3 + resolution: "has-symbols@npm:1.0.3" + checksum: 10/464f97a8202a7690dadd026e6d73b1ceeddd60fe6acfd06151106f050303eaa75855aaa94969df8015c11ff7c505f196114d22f7386b4a471038da5874cf5e9b + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.0, 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 + +"hasown@npm:^2.0.0, hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10/7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a + languageName: node + linkType: hard + +"hast-util-heading-rank@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-heading-rank@npm:3.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + checksum: 10/e5ce4ec9e8017b24ab72702fa0dd401ec6eaf32574120d71c2aa4e8e0f43829dba2e291f49d305a47e8d65b82a9c5adad7985385dc5bc8370f8cec7c8f9313d3 + languageName: node + linkType: hard + +"hast-util-is-element@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-is-element@npm:3.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + checksum: 10/b4e6d84c763ffdc44198ba0c4a5a7430794a7b2c1eec699d37776ea9832eef79f129726c175982103eb3b21f531a6bfd2fa43ce26e1ed6d8f6a87c102ba212c8 + languageName: node + linkType: hard + +"hast-util-to-string@npm:^3.0.0": + version: 3.0.0 + resolution: "hast-util-to-string@npm:3.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + checksum: 10/b0d51e2cf228edcbed0494755a7f095c5c2b7a0e7564f3ad7b83b89abbabf098b62b3c884e1bb4d3394c0c84486ba39800d78f2ccdbdaa38122be62330dd2357 + languageName: node + linkType: hard + +"html-encoding-sniffer@npm:^3.0.0": + version: 3.0.0 + resolution: "html-encoding-sniffer@npm:3.0.0" + dependencies: + whatwg-encoding: "npm:^2.0.0" + checksum: 10/707a812ec2acaf8bb5614c8618dc81e2fb6b4399d03e95ff18b65679989a072f4e919b9bef472039301a1bbfba64063ba4c79ea6e851c653ac9db80dbefe8fe5 + languageName: node + linkType: hard + +"html-escaper@npm:^2.0.0": + version: 2.0.2 + resolution: "html-escaper@npm:2.0.2" + checksum: 10/034d74029dcca544a34fb6135e98d427acd73019796ffc17383eaa3ec2fe1c0471dcbbc8f8ed39e46e86d43ccd753a160631615e4048285e313569609b66d5b7 + languageName: node + linkType: hard + +"html-tags@npm:^3.1.0": + version: 3.3.1 + resolution: "html-tags@npm:3.3.1" + checksum: 10/d0e808544b92d8b999cbcc86d539577255a2f0f2f4f73110d10749d1d36e6fe6ad706a0355a8477afb6e000ecdc93d8455b3602951f9a2b694ac9e28f1b52878 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 10/362d5ed66b12ceb9c0a328fb31200b590ab1b02f4a254a697dc796850cc4385603e75f53ec59f768b2dad3bfa1464bd229f7de278d2899a0e3beffc634b6683f + languageName: node + linkType: hard + +"http-errors@npm:2.0.0": + version: 2.0.0 + resolution: "http-errors@npm:2.0.0" + dependencies: + depd: "npm:2.0.0" + inherits: "npm:2.0.4" + setprototypeof: "npm:1.2.0" + statuses: "npm:2.0.1" + toidentifier: "npm:1.0.1" + checksum: 10/0e7f76ee8ff8a33e58a3281a469815b893c41357378f408be8f6d4aa7d1efafb0da064625518e7078381b6a92325949b119dc38fcb30bdbc4e3a35f78c44c439 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^5.0.0": + version: 5.0.0 + resolution: "http-proxy-agent@npm:5.0.0" + dependencies: + "@tootallnate/once": "npm:2" + agent-base: "npm:6" + debug: "npm:4" + checksum: 10/5ee19423bc3e0fd5f23ce991b0755699ad2a46a440ce9cec99e8126bb98448ad3479d2c0ea54be5519db5b19a4ffaa69616bac01540db18506dd4dac3dc418f0 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 10/d062acfa0cb82beeb558f1043c6ba770ea892b5fb7b28654dbc70ea2aeea55226dd34c02a294f6c1ca179a5aa483c4ea641846821b182edbd9cc5d89b54c6848 + languageName: node + linkType: hard + +"http-signature@npm:~1.3.6": + version: 1.3.6 + resolution: "http-signature@npm:1.3.6" + dependencies: + assert-plus: "npm:^1.0.0" + jsprim: "npm:^2.0.2" + sshpk: "npm:^1.14.1" + checksum: 10/5f08e0c82174999da97114facb0d0d47e268d60b6fc10f92cb87b99d5ccccd36f79b9508c29dda0b4f4e3a1b2f7bcaf847e68ecd5da2f1fc465fcd1d054b7884 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^5.0.1": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" + dependencies: + agent-base: "npm:6" + debug: "npm:4" + checksum: 10/f0dce7bdcac5e8eaa0be3c7368bb8836ed010fb5b6349ffb412b172a203efe8f807d9a6681319105ea1b6901e1972c7b5ea899672a7b9aad58309f766dcbe0df + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1": + version: 7.0.5 + resolution: "https-proxy-agent@npm:7.0.5" + dependencies: + agent-base: "npm:^7.0.2" + debug: "npm:4" + checksum: 10/6679d46159ab3f9a5509ee80c3a3fc83fba3a920a5e18d32176c3327852c3c00ad640c0c4210a8fd70ea3c4a6d3a1b375bf01942516e7df80e2646bdc77658ab + languageName: node + linkType: hard + +"human-signals@npm:^1.1.1": + version: 1.1.1 + resolution: "human-signals@npm:1.1.1" + checksum: 10/6a58224dffcef5588910b1028bda8623c9a7053460a1fe3367e61921a6b5f6b93aba30f323868a958f968d7de3f5f78421f11d4d9f7e9563b1bd2b00ed9a4deb + languageName: node + linkType: hard + +"human-signals@npm:^2.1.0": + version: 2.1.0 + resolution: "human-signals@npm:2.1.0" + checksum: 10/df59be9e0af479036798a881d1f136c4a29e0b518d4abb863afbd11bf30efa3eeb1d0425fc65942dcc05ab3bf40205ea436b0ff389f2cd20b75b8643d539bf86 + languageName: node + linkType: hard + +"human-signals@npm:^5.0.0": + version: 5.0.0 + resolution: "human-signals@npm:5.0.0" + checksum: 10/30f8870d831cdcd2d6ec0486a7d35d49384996742052cee792854273fa9dd9e7d5db06bb7985d4953e337e10714e994e0302e90dc6848069171b05ec836d65b0 + languageName: node + linkType: hard + +"iconv-lite@npm:0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3" + checksum: 10/6d3a2dac6e5d1fb126d25645c25c3a1209f70cceecc68b8ef51ae0da3cdc078c151fade7524a30b12a3094926336831fca09c666ef55b37e2c69638b5d6bd2e3 + languageName: node + linkType: hard + +"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10/24e3292dd3dadaa81d065c6f8c41b274a47098150d444b96e5f53b4638a9a71482921ea6a91a1f59bb71d9796de25e04afd05919fa64c360347ba65d3766f10f + languageName: node + linkType: hard + +"identity-obj-proxy@npm:^3.0.0": + version: 3.0.0 + resolution: "identity-obj-proxy@npm:3.0.0" + dependencies: + harmony-reflect: "npm:^1.4.6" + checksum: 10/66fe4d2ffc67655174f6abe100ab3b36d2f5e4de5b28a7c3121e5f51bd4e7c8c1bee4f9a41ce0586ace57fb63bfedbfc39508b7cb43b9e3ed6dc42f762158b4e + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 10/d9f2557a59036f16c282aaeb107832dc957a93d73397d89bbad4eb1130560560eb695060145e8e6b3b498b15ab95510226649a0b8f52ae06583575419fe10fc4 + languageName: node + linkType: hard + +"ignore@npm:^5.2.0, ignore@npm:^5.2.4": + version: 5.3.1 + resolution: "ignore@npm:5.3.1" + checksum: 10/0a884c2fbc8c316f0b9f92beaf84464253b73230a4d4d286697be45fca081199191ca33e1c2e82d9e5f851f5e9a48a78e25a35c951e7eb41e59f150db3530065 + languageName: node + linkType: hard + +"import-fresh@npm:^3.2.1": + version: 3.3.0 + resolution: "import-fresh@npm:3.3.0" + dependencies: + parent-module: "npm:^1.0.0" + resolve-from: "npm:^4.0.0" + checksum: 10/2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa + languageName: node + linkType: hard + +"import-local@npm:^3.0.2": + version: 3.2.0 + resolution: "import-local@npm:3.2.0" + dependencies: + pkg-dir: "npm:^4.2.0" + resolve-cwd: "npm:^3.0.0" + bin: + import-local-fixture: fixtures/cli.js + checksum: 10/0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004 + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 10/2d30b157a91fe1c1d7c6f653cbf263f039be6c5bfa959245a16d4ee191fc0f2af86c08545b6e6beeb041c56b574d2d5b9f95343d378ab49c0f37394d541e7fc8 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 10/cd3f5cbc9ca2d624c6a1f53f12e6b341659aba0e2d3254ae2b4464aaea8b4294cdb09616abbc59458f980531f2429784ed6a420d48d245bcad0811980c9efae9 + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: "npm:^1.3.0" + wrappy: "npm:1" + checksum: 10/d2ebd65441a38c8336c223d1b80b921b9fa737e37ea466fd7e253cb000c64ae1f17fa59e68130ef5bda92cfd8d36b83d37dab0eb0a4558bcfec8e8cdfd2dcb67 + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.3, inherits@npm:^2.0.4": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10/cd45e923bee15186c07fa4c89db0aace24824c482fb887b528304694b2aa6ff8a898da8657046a5dcf3e46cd6db6c61629551f9215f208d7c3f157cf9b290521 + languageName: node + linkType: hard + +"ini@npm:2.0.0": + version: 2.0.0 + resolution: "ini@npm:2.0.0" + checksum: 10/04e24ba05c4f6947e15560824e153b4610bceea2f5a3ab68651d221a4aab3c77d4e3e90a917ebc8bf5ad71a30a8575de56c39d6b4c4b1375a28016b9f3625f9d + languageName: node + linkType: hard + +"internal-slot@npm:^1.0.4": + version: 1.0.7 + resolution: "internal-slot@npm:1.0.7" + dependencies: + es-errors: "npm:^1.3.0" + hasown: "npm:^2.0.0" + side-channel: "npm:^1.0.4" + checksum: 10/3e66720508831153ecf37d13def9f6856f9f2960989ec8a0a0476c98f887fca9eff0163127466485cb825c900c2d6fc601aa9117b7783b90ffce23a71ea5d053 + languageName: node + linkType: hard + +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: "npm:1.1.0" + sprintf-js: "npm:^1.1.3" + checksum: 10/1ed81e06721af012306329b31f532b5e24e00cb537be18ddc905a84f19fe8f83a09a1699862bf3a1ec4b9dea93c55a3fa5faf8b5ea380431469df540f38b092c + languageName: node + linkType: hard + +"ipaddr.js@npm:1.9.1": + version: 1.9.1 + resolution: "ipaddr.js@npm:1.9.1" + checksum: 10/864d0cced0c0832700e9621913a6429ccdc67f37c1bd78fb8c6789fff35c9d167cb329134acad2290497a53336813ab4798d2794fd675d5eb33b5fdf0982b9ca + languageName: node + linkType: hard + +"is-absolute-url@npm:^4.0.0": + version: 4.0.1 + resolution: "is-absolute-url@npm:4.0.1" + checksum: 10/de172a718439982a54477fdae55f21be69ec0e6a4b205db5484975d2f4ee749851fd46c28f3790dfc51a274c2ed1d0f8457b6d1fff02ab829069fd9cc761e48c + languageName: node + linkType: hard + +"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": + version: 1.1.1 + resolution: "is-arguments@npm:1.1.1" + dependencies: + call-bind: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.0" + checksum: 10/a170c7e26082e10de9be6e96d32ae3db4d5906194051b792e85fae3393b53cf2cb5b3557863e5c8ccbab55e2fd8f2f75aa643d437613f72052cf0356615c34be + languageName: node + linkType: hard + +"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4": + version: 3.0.4 + resolution: "is-array-buffer@npm:3.0.4" + dependencies: + call-bind: "npm:^1.0.2" + get-intrinsic: "npm:^1.2.1" + checksum: 10/34a26213d981d58b30724ef37a1e0682f4040d580fa9ff58fdfdd3cefcb2287921718c63971c1c404951e7b747c50fdc7caf6e867e951353fa71b369c04c969b + languageName: node + linkType: hard + +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: 10/73ced84fa35e59e2c57da2d01e12cd01479f381d7f122ce41dcbb713f09dbfc651315832cd2bf8accba7681a69e4d6f1e03941d94dd10040d415086360e7005e + languageName: node + linkType: hard + +"is-bigint@npm:^1.0.1": + version: 1.0.4 + resolution: "is-bigint@npm:1.0.4" + dependencies: + has-bigints: "npm:^1.0.1" + checksum: 10/cc981cf0564c503aaccc1e5f39e994ae16ae2d1a8fcd14721f14ad431809071f39ec568cfceef901cff408045f1a6d6bac90d1b43eeb0b8e3bc34c8eb1bdb4c4 + languageName: node + linkType: hard + +"is-binary-path@npm:~2.1.0": + version: 2.1.0 + resolution: "is-binary-path@npm:2.1.0" + dependencies: + binary-extensions: "npm:^2.0.0" + checksum: 10/078e51b4f956c2c5fd2b26bb2672c3ccf7e1faff38e0ebdba45612265f4e3d9fc3127a1fa8370bbf09eab61339203c3d3b7af5662cbf8be4030f8fac37745b0e + languageName: node + linkType: hard + +"is-boolean-object@npm:^1.1.0": + version: 1.1.2 + resolution: "is-boolean-object@npm:1.1.2" + dependencies: + call-bind: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.0" + checksum: 10/ba794223b56a49a9f185e945eeeb6b7833b8ea52a335cec087d08196cf27b538940001615d3bb976511287cefe94e5907d55f00bb49580533f9ca9b4515fcc2e + languageName: node + linkType: hard + +"is-callable@npm:^1.1.3": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 10/48a9297fb92c99e9df48706241a189da362bff3003354aea4048bd5f7b2eb0d823cd16d0a383cece3d76166ba16d85d9659165ac6fcce1ac12e6c649d66dbdb9 + languageName: node + linkType: hard + +"is-ci@npm:^3.0.1": + version: 3.0.1 + resolution: "is-ci@npm:3.0.1" + dependencies: + ci-info: "npm:^3.2.0" + bin: + is-ci: bin.js + checksum: 10/192c66dc7826d58f803ecae624860dccf1899fc1f3ac5505284c0a5cf5f889046ffeb958fa651e5725d5705c5bcb14f055b79150ea5fcad7456a9569de60260e + languageName: node + linkType: hard + +"is-core-module@npm:^2.13.0": + version: 2.15.0 + resolution: "is-core-module@npm:2.15.0" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10/70e962543e5d3a97c07cb29144a86792d545a21f28e67da5401d85878a0193d46fbab8d97bc3ca680e2778705dca66e7b6ca840c493497a27ca0e8c5f3ac3d1d + languageName: node + linkType: hard + +"is-date-object@npm:^1.0.5": + version: 1.0.5 + resolution: "is-date-object@npm:1.0.5" + dependencies: + has-tostringtag: "npm:^1.0.0" + checksum: 10/cc80b3a4b42238fa0d358b9a6230dae40548b349e64a477cb7c5eff9b176ba194c11f8321daaf6dd157e44073e9b7fd01f87db1f14952a88d5657acdcd3a56e2 + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: 10/df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10/44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + languageName: node + linkType: hard + +"is-generator-fn@npm:^2.0.0": + version: 2.1.0 + resolution: "is-generator-fn@npm:2.1.0" + checksum: 10/a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 + languageName: node + linkType: hard + +"is-generator-function@npm:^1.0.7": + version: 1.0.10 + resolution: "is-generator-function@npm:1.0.10" + dependencies: + has-tostringtag: "npm:^1.0.0" + checksum: 10/499a3ce6361064c3bd27fbff5c8000212d48506ebe1977842bbd7b3e708832d0deb1f4cc69186ece3640770e8c4f1287b24d99588a0b8058b2dbdd344bc1f47f + languageName: node + linkType: hard + +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: "npm:^2.1.1" + checksum: 10/3ed74f2b0cdf4f401f38edb0442ddfde3092d79d7d35c9919c86641efdbcbb32e45aa3c0f70ce5eecc946896cd5a0f26e4188b9f2b881876f7cb6c505b82da11 + languageName: node + linkType: hard + +"is-installed-globally@npm:~0.4.0": + version: 0.4.0 + resolution: "is-installed-globally@npm:0.4.0" + dependencies: + global-dirs: "npm:^3.0.0" + is-path-inside: "npm:^3.0.2" + checksum: 10/5294d21c82cb9beedd693ce1dfb12117c4db36d6e35edc9dc6bf06cb300d23c96520d1bfb063386b054268ae3d7255c3f09393b52218cc26ace99b217bf37c93 + languageName: node + linkType: hard + +"is-interactive@npm:^1.0.0": + version: 1.0.0 + resolution: "is-interactive@npm:1.0.0" + checksum: 10/824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9 + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 10/93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 + 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.0.4": + version: 1.0.7 + resolution: "is-number-object@npm:1.0.7" + dependencies: + has-tostringtag: "npm:^1.0.0" + checksum: 10/8700dcf7f602e0a9625830541345b8615d04953655acbf5c6d379c58eb1af1465e71227e95d501343346e1d49b6f2d53cbc166b1fc686a7ec19151272df582f9 + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 10/6a6c3383f68afa1e05b286af866017c78f1226d43ac8cb064e115ff9ed85eb33f5c4f7216c96a71e4dfea289ef52c5da3aef5bbfade8ffe47a0465d70c0c8e86 + languageName: node + linkType: hard + +"is-path-inside@npm:^3.0.2, is-path-inside@npm:^3.0.3": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: 10/abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 + languageName: node + linkType: hard + +"is-plain-object@npm:5.0.0": + version: 5.0.0 + resolution: "is-plain-object@npm:5.0.0" + checksum: 10/e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c + languageName: node + linkType: hard + +"is-plain-object@npm:^2.0.4": + version: 2.0.4 + resolution: "is-plain-object@npm:2.0.4" + dependencies: + isobject: "npm:^3.0.1" + checksum: 10/2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca + languageName: node + linkType: hard + +"is-potential-custom-element-name@npm:^1.0.1": + version: 1.0.1 + resolution: "is-potential-custom-element-name@npm:1.0.1" + checksum: 10/ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab + languageName: node + linkType: hard + +"is-regex@npm:^1.1.4": + version: 1.1.4 + resolution: "is-regex@npm:1.1.4" + dependencies: + call-bind: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.0" + checksum: 10/36d9174d16d520b489a5e9001d7d8d8624103b387be300c50f860d9414556d0485d74a612fdafc6ebbd5c89213d947dcc6b6bff6b2312093f71ea03cbb19e564 + 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.3 + resolution: "is-shared-array-buffer@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.7" + checksum: 10/bc5402900dc62b96ebb2548bf5b0a0bcfacc2db122236fe3ab3b3e3c884293a0d5eb777e73f059bcbf8dc8563bb65eae972fee0fb97e38a9ae27c8678f62bcfe + languageName: node + linkType: hard + +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: 10/b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 + languageName: node + linkType: hard + +"is-stream@npm:^3.0.0": + version: 3.0.0 + resolution: "is-stream@npm:3.0.0" + checksum: 10/172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 + languageName: node + linkType: hard + +"is-string@npm:^1.0.5, is-string@npm:^1.0.7": + version: 1.0.7 + resolution: "is-string@npm:1.0.7" + dependencies: + has-tostringtag: "npm:^1.0.0" + checksum: 10/2bc292fe927493fb6dfc3338c099c3efdc41f635727c6ebccf704aeb2a27bca7acb9ce6fd34d103db78692b10b22111a8891de26e12bfa1c5e11e263c99d1fef + languageName: node + linkType: hard + +"is-symbol@npm:^1.0.3": + version: 1.0.4 + resolution: "is-symbol@npm:1.0.4" + dependencies: + has-symbols: "npm:^1.0.2" + checksum: 10/a47dd899a84322528b71318a89db25c7ecdec73197182dad291df15ffea501e17e3c92c8de0bfb50e63402747399981a687b31c519971b1fa1a27413612be929 + languageName: node + linkType: hard + +"is-typed-array@npm:^1.1.3": + version: 1.1.13 + resolution: "is-typed-array@npm:1.1.13" + dependencies: + which-typed-array: "npm:^1.1.14" + checksum: 10/f850ba08286358b9a11aee6d93d371a45e3c59b5953549ee1c1a9a55ba5c1dd1bd9952488ae194ad8f32a9cf5e79c8fa5f0cc4d78c00720aa0bbcf238b38062d + languageName: node + linkType: hard + +"is-typedarray@npm:~1.0.0": + version: 1.0.0 + resolution: "is-typedarray@npm:1.0.0" + checksum: 10/4b433bfb0f9026f079f4eb3fbaa4ed2de17c9995c3a0b5c800bec40799b4b2a8b4e051b1ada77749deb9ded4ae52fe2096973f3a93ff83df1a5a7184a669478c + languageName: node + linkType: hard + +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: 10/a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 + 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.3 + resolution: "is-weakset@npm:2.0.3" + dependencies: + call-bind: "npm:^1.0.7" + get-intrinsic: "npm:^1.2.4" + checksum: 10/40159582ff1b44fc40085f631baf19f56479b05af2faede65b4e6a0b6acab745c13fd070e35b475aafd8a1ee50879ba5a3f1265125b46bebdb446b6be1f62165 + 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" + checksum: 10/7c9f715c03aff08f35e98b1fadae1b9267b38f0615d501824f9743f3aab99ef10e303ce7db3f186763a0b70a19de5791ebfc854ff884d5a8c4d92211f642ec92 + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 10/7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e + languageName: node + linkType: hard + +"isobject@npm:^3.0.1": + version: 3.0.1 + resolution: "isobject@npm:3.0.1" + checksum: 10/db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 + languageName: node + linkType: hard + +"isstream@npm:~0.1.2": + version: 0.1.2 + resolution: "isstream@npm:0.1.2" + checksum: 10/22d9c181015226d4534a227539256897bbbcb7edd1066ca4fc4d3a06dbd976325dfdd16b3983c7d236a89f256805c1a685a772e0364e98873d3819b064ad35a1 + languageName: node + linkType: hard + +"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": + version: 3.2.2 + resolution: "istanbul-lib-coverage@npm:3.2.2" + checksum: 10/40bbdd1e937dfd8c830fa286d0f665e81b7a78bdabcd4565f6d5667c99828bda3db7fb7ac6b96a3e2e8a2461ddbc5452d9f8bc7d00cb00075fa6a3e99f5b6a81 + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^5.0.4": + version: 5.2.1 + resolution: "istanbul-lib-instrument@npm:5.2.1" + dependencies: + "@babel/core": "npm:^7.12.3" + "@babel/parser": "npm:^7.14.7" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-coverage: "npm:^3.2.0" + semver: "npm:^6.3.0" + checksum: 10/bbc4496c2f304d799f8ec22202ab38c010ac265c441947f075c0f7d46bd440b45c00e46017cf9053453d42182d768b1d6ed0e70a142c95ab00df9843aa5ab80e + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^6.0.0": + version: 6.0.3 + resolution: "istanbul-lib-instrument@npm:6.0.3" + dependencies: + "@babel/core": "npm:^7.23.9" + "@babel/parser": "npm:^7.23.9" + "@istanbuljs/schema": "npm:^0.1.3" + istanbul-lib-coverage: "npm:^3.2.0" + semver: "npm:^7.5.4" + checksum: 10/aa5271c0008dfa71b6ecc9ba1e801bf77b49dc05524e8c30d58aaf5b9505e0cd12f25f93165464d4266a518c5c75284ecb598fbd89fec081ae77d2c9d3327695 + languageName: node + linkType: hard + +"istanbul-lib-report@npm:^3.0.0": + version: 3.0.1 + resolution: "istanbul-lib-report@npm:3.0.1" + dependencies: + istanbul-lib-coverage: "npm:^3.0.0" + make-dir: "npm:^4.0.0" + supports-color: "npm:^7.1.0" + checksum: 10/86a83421ca1cf2109a9f6d193c06c31ef04a45e72a74579b11060b1e7bb9b6337a4e6f04abfb8857e2d569c271273c65e855ee429376a0d7c91ad91db42accd1 + languageName: node + linkType: hard + +"istanbul-lib-source-maps@npm:^4.0.0": + version: 4.0.1 + resolution: "istanbul-lib-source-maps@npm:4.0.1" + dependencies: + debug: "npm:^4.1.1" + istanbul-lib-coverage: "npm:^3.0.0" + source-map: "npm:^0.6.1" + checksum: 10/5526983462799aced011d776af166e350191b816821ea7bcf71cab3e5272657b062c47dc30697a22a43656e3ced78893a42de677f9ccf276a28c913190953b82 + languageName: node + linkType: hard + +"istanbul-reports@npm:^3.1.3": + version: 3.1.7 + resolution: "istanbul-reports@npm:3.1.7" + dependencies: + html-escaper: "npm:^2.0.0" + istanbul-lib-report: "npm:^3.0.0" + checksum: 10/f1faaa4684efaf57d64087776018d7426312a59aa6eeb4e0e3a777347d23cd286ad18f427e98f0e3dee666103d7404c9d7abc5f240406a912fa16bd6695437fa + languageName: node + linkType: hard + +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 10/96f8786eaab98e4bf5b2a5d6d9588ea46c4d06bbc4f2eb861fdd7b6b182b16f71d8a70e79820f335d52653b16d4843b29dd9cdcf38ae80406756db9199497cf3 + languageName: node + linkType: hard + +"jest-changed-files@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-changed-files@npm:29.7.0" + dependencies: + execa: "npm:^5.0.0" + jest-util: "npm:^29.7.0" + p-limit: "npm:^3.1.0" + checksum: 10/3d93742e56b1a73a145d55b66e96711fbf87ef89b96c2fab7cfdfba8ec06612591a982111ca2b712bb853dbc16831ec8b43585a2a96b83862d6767de59cbf83d + languageName: node + linkType: hard + +"jest-circus@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-circus@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/expect": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + co: "npm:^4.6.0" + dedent: "npm:^1.0.0" + is-generator-fn: "npm:^2.0.0" + jest-each: "npm:^29.7.0" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + p-limit: "npm:^3.1.0" + pretty-format: "npm:^29.7.0" + pure-rand: "npm:^6.0.0" + slash: "npm:^3.0.0" + stack-utils: "npm:^2.0.3" + checksum: 10/716a8e3f40572fd0213bcfc1da90274bf30d856e5133af58089a6ce45089b63f4d679bd44e6be9d320e8390483ebc3ae9921981993986d21639d9019b523123d + languageName: node + linkType: hard + +"jest-cli@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-cli@npm:29.7.0" + dependencies: + "@jest/core": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + create-jest: "npm:^29.7.0" + exit: "npm:^0.1.2" + import-local: "npm:^3.0.2" + jest-config: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + yargs: "npm:^17.3.1" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 10/6cc62b34d002c034203065a31e5e9a19e7c76d9e8ef447a6f70f759c0714cb212c6245f75e270ba458620f9c7b26063cd8cf6cd1f7e3afd659a7cc08add17307 + languageName: node + linkType: hard + +"jest-config@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-config@npm:29.7.0" + dependencies: + "@babel/core": "npm:^7.11.6" + "@jest/test-sequencer": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + babel-jest: "npm:^29.7.0" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + deepmerge: "npm:^4.2.2" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + jest-circus: "npm:^29.7.0" + jest-environment-node: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-runner: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + parse-json: "npm:^5.2.0" + pretty-format: "npm:^29.7.0" + slash: "npm:^3.0.0" + strip-json-comments: "npm:^3.1.1" + peerDependencies: + "@types/node": "*" + ts-node: ">=9.0.0" + peerDependenciesMeta: + "@types/node": + optional: true + ts-node: + optional: true + checksum: 10/6bdf570e9592e7d7dd5124fc0e21f5fe92bd15033513632431b211797e3ab57eaa312f83cc6481b3094b72324e369e876f163579d60016677c117ec4853cf02b + languageName: node + linkType: hard + +"jest-diff@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-diff@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + diff-sequences: "npm:^29.6.3" + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 10/6f3a7eb9cd9de5ea9e5aa94aed535631fa6f80221832952839b3cb59dd419b91c20b73887deb0b62230d06d02d6b6cf34ebb810b88d904bb4fe1e2e4f0905c98 + languageName: node + linkType: hard + +"jest-docblock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-docblock@npm:29.7.0" + dependencies: + detect-newline: "npm:^3.0.0" + checksum: 10/8d48818055bc96c9e4ec2e217a5a375623c0d0bfae8d22c26e011074940c202aa2534a3362294c81d981046885c05d304376afba9f2874143025981148f3e96d + languageName: node + linkType: hard + +"jest-each@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-each@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + jest-get-type: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + pretty-format: "npm:^29.7.0" + checksum: 10/bd1a077654bdaa013b590deb5f7e7ade68f2e3289180a8c8f53bc8a49f3b40740c0ec2d3a3c1aee906f682775be2bebbac37491d80b634d15276b0aa0f2e3fda + languageName: node + linkType: hard + +"jest-environment-jsdom@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-jsdom@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/jsdom": "npm:^20.0.0" + "@types/node": "npm:*" + jest-mock: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jsdom: "npm:^20.0.0" + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 10/23bbfc9bca914baef4b654f7983175a4d49b0f515a5094ebcb8f819f28ec186f53c0ba06af1855eac04bab1457f4ea79dae05f70052cf899863e8096daa6e0f5 + languageName: node + linkType: hard + +"jest-environment-node@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-node@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + jest-mock: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10/9cf7045adf2307cc93aed2f8488942e39388bff47ec1df149a997c6f714bfc66b2056768973770d3f8b1bf47396c19aa564877eb10ec978b952c6018ed1bd637 + languageName: node + linkType: hard + +"jest-get-type@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-get-type@npm:29.6.3" + checksum: 10/88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205 + languageName: node + linkType: hard + +"jest-haste-map@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-haste-map@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/graceful-fs": "npm:^4.1.3" + "@types/node": "npm:*" + anymatch: "npm:^3.0.3" + fb-watchman: "npm:^2.0.0" + fsevents: "npm:^2.3.2" + graceful-fs: "npm:^4.2.9" + jest-regex-util: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + walker: "npm:^1.0.8" + dependenciesMeta: + fsevents: + optional: true + checksum: 10/8531b42003581cb18a69a2774e68c456fb5a5c3280b1b9b77475af9e346b6a457250f9d756bfeeae2fe6cbc9ef28434c205edab9390ee970a919baddfa08bb85 + languageName: node + linkType: hard + +"jest-leak-detector@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-leak-detector@npm:29.7.0" + dependencies: + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 10/e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605 + languageName: node + linkType: hard + +"jest-matcher-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-matcher-utils@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + jest-diff: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 10/981904a494299cf1e3baed352f8a3bd8b50a8c13a662c509b6a53c31461f94ea3bfeffa9d5efcfeb248e384e318c87de7e3baa6af0f79674e987482aa189af40 + languageName: node + linkType: hard + +"jest-message-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-message-util@npm:29.7.0" + dependencies: + "@babel/code-frame": "npm:^7.12.13" + "@jest/types": "npm:^29.6.3" + "@types/stack-utils": "npm:^2.0.0" + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + micromatch: "npm:^4.0.4" + pretty-format: "npm:^29.7.0" + slash: "npm:^3.0.0" + stack-utils: "npm:^2.0.3" + checksum: 10/31d53c6ed22095d86bab9d14c0fa70c4a92c749ea6ceece82cf30c22c9c0e26407acdfbdb0231435dc85a98d6d65ca0d9cbcd25cd1abb377fe945e843fb770b9 + languageName: node + linkType: hard + +"jest-mock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-mock@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + jest-util: "npm:^29.7.0" + checksum: 10/ae51d1b4f898724be5e0e52b2268a68fcd876d9b20633c864a6dd6b1994cbc48d62402b0f40f3a1b669b30ebd648821f086c26c08ffde192ced951ff4670d51c + languageName: node + linkType: hard + +"jest-pnp-resolver@npm:^1.2.2": + version: 1.2.3 + resolution: "jest-pnp-resolver@npm:1.2.3" + peerDependencies: + jest-resolve: "*" + peerDependenciesMeta: + jest-resolve: + optional: true + checksum: 10/db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 + languageName: node + linkType: hard + +"jest-regex-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-regex-util@npm:29.6.3" + checksum: 10/0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a + languageName: node + linkType: hard + +"jest-resolve-dependencies@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve-dependencies@npm:29.7.0" + dependencies: + jest-regex-util: "npm:^29.6.3" + jest-snapshot: "npm:^29.7.0" + checksum: 10/1e206f94a660d81e977bcfb1baae6450cb4a81c92e06fad376cc5ea16b8e8c6ea78c383f39e95591a9eb7f925b6a1021086c38941aa7c1b8a6a813c2f6e93675 + languageName: node + linkType: hard + +"jest-resolve@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + jest-pnp-resolver: "npm:^1.2.2" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + resolve: "npm:^1.20.0" + resolve.exports: "npm:^2.0.0" + slash: "npm:^3.0.0" + checksum: 10/faa466fd9bc69ea6c37a545a7c6e808e073c66f46ab7d3d8a6ef084f8708f201b85d5fe1799789578b8b47fa1de47b9ee47b414d1863bc117a49e032ba77b7c7 + languageName: node + linkType: hard + +"jest-runner@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runner@npm:29.7.0" + dependencies: + "@jest/console": "npm:^29.7.0" + "@jest/environment": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + emittery: "npm:^0.13.1" + graceful-fs: "npm:^4.2.9" + jest-docblock: "npm:^29.7.0" + jest-environment-node: "npm:^29.7.0" + jest-haste-map: "npm:^29.7.0" + jest-leak-detector: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-resolve: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-watcher: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" + p-limit: "npm:^3.1.0" + source-map-support: "npm:0.5.13" + checksum: 10/9d8748a494bd90f5c82acea99be9e99f21358263ce6feae44d3f1b0cd90991b5df5d18d607e73c07be95861ee86d1cbab2a3fc6ca4b21805f07ac29d47c1da1e + languageName: node + linkType: hard + +"jest-runtime@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runtime@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/globals": "npm:^29.7.0" + "@jest/source-map": "npm:^29.6.3" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + cjs-module-lexer: "npm:^1.0.0" + collect-v8-coverage: "npm:^1.0.0" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-mock: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + slash: "npm:^3.0.0" + strip-bom: "npm:^4.0.0" + checksum: 10/59eb58eb7e150e0834a2d0c0d94f2a0b963ae7182cfa6c63f2b49b9c6ef794e5193ef1634e01db41420c36a94cefc512cdd67a055cd3e6fa2f41eaf0f82f5a20 + languageName: node + linkType: hard + +"jest-snapshot@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-snapshot@npm:29.7.0" + dependencies: + "@babel/core": "npm:^7.11.6" + "@babel/generator": "npm:^7.7.2" + "@babel/plugin-syntax-jsx": "npm:^7.7.2" + "@babel/plugin-syntax-typescript": "npm:^7.7.2" + "@babel/types": "npm:^7.3.3" + "@jest/expect-utils": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + babel-preset-current-node-syntax: "npm:^1.0.0" + chalk: "npm:^4.0.0" + expect: "npm:^29.7.0" + graceful-fs: "npm:^4.2.9" + jest-diff: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + natural-compare: "npm:^1.4.0" + pretty-format: "npm:^29.7.0" + semver: "npm:^7.5.3" + checksum: 10/cb19a3948256de5f922d52f251821f99657339969bf86843bd26cf3332eae94883e8260e3d2fba46129a27c3971c1aa522490e460e16c7fad516e82d10bbf9f8 + languageName: node + linkType: hard + +"jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + graceful-fs: "npm:^4.2.9" + picomatch: "npm:^2.2.3" + checksum: 10/30d58af6967e7d42bd903ccc098f3b4d3859ed46238fbc88d4add6a3f10bea00c226b93660285f058bc7a65f6f9529cf4eb80f8d4707f79f9e3a23686b4ab8f3 + languageName: node + linkType: hard + +"jest-validate@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-validate@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + camelcase: "npm:^6.2.0" + chalk: "npm:^4.0.0" + jest-get-type: "npm:^29.6.3" + leven: "npm:^3.1.0" + pretty-format: "npm:^29.7.0" + checksum: 10/8ee1163666d8eaa16d90a989edba2b4a3c8ab0ffaa95ad91b08ca42b015bfb70e164b247a5b17f9de32d096987cada63ed8491ab82761bfb9a28bc34b27ae161 + languageName: node + linkType: hard + +"jest-watcher@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-watcher@npm:29.7.0" + dependencies: + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + ansi-escapes: "npm:^4.2.1" + chalk: "npm:^4.0.0" + emittery: "npm:^0.13.1" + jest-util: "npm:^29.7.0" + string-length: "npm:^4.0.1" + checksum: 10/4f616e0345676631a7034b1d94971aaa719f0cd4a6041be2aa299be437ea047afd4fe05c48873b7963f5687a2f6c7cbf51244be8b14e313b97bfe32b1e127e55 + languageName: node + linkType: hard + +"jest-worker@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" + dependencies: + "@types/node": "npm:*" + jest-util: "npm:^29.7.0" + merge-stream: "npm:^2.0.0" + supports-color: "npm:^8.0.0" + checksum: 10/364cbaef00d8a2729fc760227ad34b5e60829e0869bd84976bdfbd8c0d0f9c2f22677b3e6dd8afa76ed174765351cd12bae3d4530c62eefb3791055127ca9745 + languageName: node + linkType: hard + +"jest@npm:^29.7.0": + version: 29.7.0 + resolution: "jest@npm:29.7.0" + dependencies: + "@jest/core": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + import-local: "npm:^3.0.2" + jest-cli: "npm:^29.7.0" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 10/97023d78446098c586faaa467fbf2c6b07ff06e2c85a19e3926adb5b0effe9ac60c4913ae03e2719f9c01ae8ffd8d92f6b262cedb9555ceeb5d19263d8c6362a + languageName: node + linkType: hard + +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 10/af37d0d913fb56aec6dc0074c163cc71cd23c0b8aad5c2350747b6721d37ba118af35abdd8b33c47ec2800de07dedb16a527ca9c530ee004093e04958bd0cbf2 + languageName: node + linkType: hard + +"js-yaml@npm:^3.13.1": + version: 3.14.1 + resolution: "js-yaml@npm:3.14.1" + dependencies: + argparse: "npm:^1.0.7" + esprima: "npm:^4.0.0" + bin: + js-yaml: bin/js-yaml.js + checksum: 10/9e22d80b4d0105b9899135365f746d47466ed53ef4223c529b3c0f7a39907743fdbd3c4379f94f1106f02755b5e90b2faaf84801a891135544e1ea475d1a1379 + 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 + +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 10/bebe7ae829bbd586ce8cbe83501dd8cb8c282c8902a8aeeed0a073a89dc37e8103b1244f3c6acd60278bcbfe12d93a3f83c9ac396868a3b3bbc3c5e5e3b648ef + languageName: node + linkType: hard + +"jsbn@npm:~0.1.0": + version: 0.1.1 + resolution: "jsbn@npm:0.1.1" + checksum: 10/5450133242845100e694f0ef9175f44c012691a9b770b2571e677314e6f70600abb10777cdfc9a0c6a9f2ac6d134577403633de73e2fcd0f97875a67744e2d14 + languageName: node + linkType: hard + +"jscodeshift@npm:^0.15.1": + version: 0.15.2 + resolution: "jscodeshift@npm:0.15.2" + dependencies: + "@babel/core": "npm:^7.23.0" + "@babel/parser": "npm:^7.23.0" + "@babel/plugin-transform-class-properties": "npm:^7.22.5" + "@babel/plugin-transform-modules-commonjs": "npm:^7.23.0" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.22.11" + "@babel/plugin-transform-optional-chaining": "npm:^7.23.0" + "@babel/plugin-transform-private-methods": "npm:^7.22.5" + "@babel/preset-flow": "npm:^7.22.15" + "@babel/preset-typescript": "npm:^7.23.0" + "@babel/register": "npm:^7.22.15" + babel-core: "npm:^7.0.0-bridge.0" + chalk: "npm:^4.1.2" + flow-parser: "npm:0.*" + graceful-fs: "npm:^4.2.4" + micromatch: "npm:^4.0.4" + neo-async: "npm:^2.5.0" + node-dir: "npm:^0.1.17" + recast: "npm:^0.23.3" + temp: "npm:^0.8.4" + write-file-atomic: "npm:^2.3.0" + peerDependencies: + "@babel/preset-env": ^7.1.6 + peerDependenciesMeta: + "@babel/preset-env": + optional: true + bin: + jscodeshift: bin/jscodeshift.js + checksum: 10/5f4354d80a95de4dba5dd402e97e5bba8c6b31261f426719cb184099ac83c57c47e4160923b7c035a5da4113e56c39eb68233e3b55a910372013d66d3b1f1c64 + languageName: node + linkType: hard + +"jsdom@npm:^20.0.0": + version: 20.0.3 + resolution: "jsdom@npm:20.0.3" + dependencies: + abab: "npm:^2.0.6" + acorn: "npm:^8.8.1" + acorn-globals: "npm:^7.0.0" + cssom: "npm:^0.5.0" + cssstyle: "npm:^2.3.0" + data-urls: "npm:^3.0.2" + decimal.js: "npm:^10.4.2" + domexception: "npm:^4.0.0" + escodegen: "npm:^2.0.0" + form-data: "npm:^4.0.0" + html-encoding-sniffer: "npm:^3.0.0" + http-proxy-agent: "npm:^5.0.0" + https-proxy-agent: "npm:^5.0.1" + is-potential-custom-element-name: "npm:^1.0.1" + nwsapi: "npm:^2.2.2" + parse5: "npm:^7.1.1" + saxes: "npm:^6.0.0" + symbol-tree: "npm:^3.2.4" + tough-cookie: "npm:^4.1.2" + w3c-xmlserializer: "npm:^4.0.0" + webidl-conversions: "npm:^7.0.0" + whatwg-encoding: "npm:^2.0.0" + whatwg-mimetype: "npm:^3.0.0" + whatwg-url: "npm:^11.0.0" + ws: "npm:^8.11.0" + xml-name-validator: "npm:^4.0.0" + peerDependencies: + canvas: ^2.5.0 + peerDependenciesMeta: + canvas: + optional: true + checksum: 10/a4cdcff5b07eed87da90b146b82936321533b5efe8124492acf7160ebd5b9cf2b3c2435683592bf1cffb479615245756efb6c173effc1906f845a86ed22af985 + languageName: node + linkType: hard + +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" + bin: + jsesc: bin/jsesc + checksum: 10/d2096abdcdec56969764b40ffc91d4a23408aa2f351b4d1c13f736f25476643238c43fdbaf38a191c26b1b78fd856d965f5d4d0dde7b89459cd94025190cdf13 + languageName: node + linkType: hard + +"jsesc@npm:~0.5.0": + version: 0.5.0 + resolution: "jsesc@npm:0.5.0" + bin: + jsesc: bin/jsesc + checksum: 10/fab949f585c71e169c5cbe00f049f20de74f067081bbd64a55443bad1c71e1b5a5b448f2359bf2fe06f5ed7c07e2e4a9101843b01c823c30b6afc11f5bfaf724 + languageName: node + linkType: hard + +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 10/82876154521b7b68ba71c4f969b91572d1beabadd87bd3a6b236f85fbc7dc4695089191ed60bb59f9340993c51b33d479f45b6ba9f3548beb519705281c32c3c + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^2.3.0": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 10/5f3a99009ed5f2a5a67d06e2f298cc97bc86d462034173308156f15b43a6e850be8511dc204b9b94566305da2947f7d90289657237d210351a39059ff9d666cf + languageName: node + linkType: hard + +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 10/7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b + languageName: node + linkType: hard + +"json-schema@npm:0.4.0": + version: 0.4.0 + resolution: "json-schema@npm:0.4.0" + checksum: 10/8b3b64eff4a807dc2a3045b104ed1b9335cd8d57aa74c58718f07f0f48b8baa3293b00af4dcfbdc9144c3aafea1e97982cc27cc8e150fc5d93c540649507a458 + languageName: node + linkType: hard + +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: 10/12786c2e2f22c27439e6db0532ba321f1d0617c27ad8cb1c352a0e9249a50182fd1ba8b52a18899291604b0c32eafa8afd09e51203f19109a0537f68db2b652d + languageName: node + linkType: hard + +"json-stringify-safe@npm:~5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 10/59169a081e4eeb6f9559ae1f938f656191c000e0512aa6df9f3c8b2437a4ab1823819c6b9fd1818a4e39593ccfd72e9a051fdd3e2d1e340ed913679e888ded8c + languageName: node + linkType: hard + +"json5@npm:^2.2.2, json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 10/1db67b853ff0de3534085d630691d3247de53a2ed1390ba0ddff681ea43e9b3e30ecbdb65c5e9aab49435e44059c23dbd6fee8ee619419ba37465bb0dd7135da + languageName: node + linkType: hard + +"jsonc-parser@npm:^3.2.0": + version: 3.3.1 + resolution: "jsonc-parser@npm:3.3.1" + checksum: 10/9b0dc391f20b47378f843ef1e877e73ec652a5bdc3c5fa1f36af0f119a55091d147a86c1ee86a232296f55c929bba174538c2bf0312610e0817a22de131cc3f4 + languageName: node + linkType: hard + +"jsonfile@npm:^6.0.1": + version: 6.1.0 + resolution: "jsonfile@npm:6.1.0" + dependencies: + graceful-fs: "npm:^4.1.6" + universalify: "npm:^2.0.0" + dependenciesMeta: + graceful-fs: + optional: true + checksum: 10/03014769e7dc77d4cf05fa0b534907270b60890085dd5e4d60a382ff09328580651da0b8b4cdf44d91e4c8ae64d91791d965f05707beff000ed494a38b6fec85 + languageName: node + linkType: hard + +"jsprim@npm:^2.0.2": + version: 2.0.2 + resolution: "jsprim@npm:2.0.2" + dependencies: + assert-plus: "npm:1.0.0" + extsprintf: "npm:1.3.0" + json-schema: "npm:0.4.0" + verror: "npm:1.10.0" + checksum: 10/fcfca5b55f83e1b8be5f932c71754bd37afd2611f81685abd05689e8ce718a91155ff7bd5b94c65ce483a787b5c43c6d0c18c1d2259fca5bb61a3f8ea2e29c0a + languageName: node + linkType: hard + +"keyv@npm:^4.5.3": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: "npm:3.0.1" + checksum: 10/167eb6ef64cc84b6fa0780ee50c9de456b422a1e18802209234f7c2cf7eae648c7741f32e50d7e24ccb22b24c13154070b01563d642755b156c357431a191e75 + languageName: node + linkType: hard + +"kind-of@npm:^6.0.2": + version: 6.0.3 + resolution: "kind-of@npm:6.0.3" + checksum: 10/5873d303fb36aad875b7538798867da2ae5c9e328d67194b0162a3659a627d22f742fc9c4ae95cd1704132a24b00cae5041fc00c0f6ef937dc17080dc4dbb962 + languageName: node + linkType: hard + +"kleur@npm:^3.0.3": + version: 3.0.3 + resolution: "kleur@npm:3.0.3" + checksum: 10/0c0ecaf00a5c6173d25059c7db2113850b5457016dfa1d0e3ef26da4704fbb186b4938d7611246d86f0ddf1bccf26828daa5877b1f232a65e7373d0122a83e7f + languageName: node + linkType: hard + +"lazy-ass@npm:^1.6.0": + version: 1.6.0 + resolution: "lazy-ass@npm:1.6.0" + checksum: 10/3969ebef060b6f665fc78310ec769f7d2945db2d5af2b6663eda1bc9ec45c845deba9c4a3f75f124ce2c76fedf56514a063ee5c2affc8bc94963fbbddb442a88 + languageName: node + linkType: hard + +"leven@npm:^3.1.0": + version: 3.1.0 + resolution: "leven@npm:3.1.0" + checksum: 10/638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 + languageName: node + linkType: hard + +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: "npm:^1.2.1" + type-check: "npm:~0.4.0" + checksum: 10/2e4720ff79f21ae08d42374b0a5c2f664c5be8b6c8f565bb4e1315c96ed3a8acaa9de788ffed82d7f2378cf36958573de07ef92336cb5255ed74d08b8318c9ee + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 10/0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 + languageName: node + linkType: hard + +"listr2@npm:^3.8.3": + version: 3.14.0 + resolution: "listr2@npm:3.14.0" + dependencies: + cli-truncate: "npm:^2.1.0" + colorette: "npm:^2.0.16" + log-update: "npm:^4.0.0" + p-map: "npm:^4.0.0" + rfdc: "npm:^1.3.0" + rxjs: "npm:^7.5.1" + through: "npm:^2.3.8" + wrap-ansi: "npm:^7.0.0" + peerDependencies: + enquirer: ">= 2.3.0 < 3" + peerDependenciesMeta: + enquirer: + optional: true + checksum: 10/cebbd692330279ea82f05468cbb0a16f5b40015a6163e0a2fb04ef168da8e2d6c54e129148e90112d92e7f9ecb85a56e6b88d867a58a8ebdf36e0c98df49ae5c + languageName: node + linkType: hard + +"locate-path@npm:^3.0.0": + version: 3.0.0 + resolution: "locate-path@npm:3.0.0" + dependencies: + p-locate: "npm:^3.0.0" + path-exists: "npm:^3.0.0" + checksum: 10/53db3996672f21f8b0bf2a2c645ae2c13ffdae1eeecfcd399a583bce8516c0b88dcb4222ca6efbbbeb6949df7e46860895be2c02e8d3219abd373ace3bfb4e11 + languageName: node + linkType: hard + +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" + dependencies: + p-locate: "npm:^4.1.0" + checksum: 10/83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 + 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 + +"lodash.debounce@npm:^4.0.8": + version: 4.0.8 + resolution: "lodash.debounce@npm:4.0.8" + checksum: 10/cd0b2819786e6e80cb9f5cda26b1a8fc073daaf04e48d4cb462fa4663ec9adb3a5387aa22d7129e48eed1afa05b482e2a6b79bfc99b86886364449500cbb00fd + languageName: node + linkType: hard + +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: 10/d0ea2dd0097e6201be083865d50c3fb54fbfbdb247d9cc5950e086c991f448b7ab0cdab0d57eacccb43473d3f2acd21e134db39f22dac2d6c9ba6bf26978e3d6 + languageName: node + linkType: hard + +"lodash.once@npm:^4.1.1": + version: 4.1.1 + resolution: "lodash.once@npm:4.1.1" + checksum: 10/202f2c8c3d45e401b148a96de228e50ea6951ee5a9315ca5e15733d5a07a6b1a02d9da1e7fdf6950679e17e8ca8f7190ec33cae47beb249b0c50019d753f38f3 + languageName: node + linkType: hard + +"lodash@npm:^4.17.15, lodash@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: 10/c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532 + languageName: node + linkType: hard + +"log-symbols@npm:^4.0.0, log-symbols@npm:^4.1.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" + dependencies: + chalk: "npm:^4.1.0" + is-unicode-supported: "npm:^0.1.0" + checksum: 10/fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 + languageName: node + linkType: hard + +"log-update@npm:^4.0.0": + version: 4.0.0 + resolution: "log-update@npm:4.0.0" + dependencies: + ansi-escapes: "npm:^4.3.0" + cli-cursor: "npm:^3.1.0" + slice-ansi: "npm:^4.0.0" + wrap-ansi: "npm:^6.2.0" + checksum: 10/ae2f85bbabc1906034154fb7d4c4477c79b3e703d22d78adee8b3862fa913942772e7fa11713e3d96fb46de4e3cabefbf5d0a544344f03b58d3c4bff52aa9eb2 + languageName: node + linkType: hard + +"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: "npm:^3.0.0 || ^4.0.0" + bin: + loose-envify: cli.js + checksum: 10/6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + +"loupe@npm:^2.3.7": + version: 2.3.7 + resolution: "loupe@npm:2.3.7" + dependencies: + get-func-name: "npm:^2.0.1" + checksum: 10/635c8f0914c2ce7ecfe4e239fbaf0ce1d2c00e4246fafcc4ed000bfdb1b8f89d05db1a220054175cca631ebf3894872a26fffba0124477fcb562f78762848fb1 + languageName: node + linkType: hard + +"loupe@npm:^3.1.0, loupe@npm:^3.1.1": + version: 3.1.1 + resolution: "loupe@npm:3.1.1" + dependencies: + get-func-name: "npm:^2.0.1" + checksum: 10/56d71d64c5af109aaf2b5343668ea5952eed468ed2ff837373810e417bf8331f14491c6e4d38e08ff84a29cb18906e06e58ba660c53bd00f2989e1873fa2f54c + 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" + checksum: 10/e6e90267360476720fa8e83cc168aa2bf0311f3f2eea20a6ba78b90a885ae72071d9db132f40fda4129c803e7dcec3a6b6a6fbb44ca90b081630b810b5d6a41a + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: "npm:^3.0.2" + checksum: 10/951d2673dcc64a7fb888bf3d13bc2fdf923faca97d89cdb405ba3dfff77e2b26e5798d405e78fcd7094c9e7b8b4dab2ddc5a4f8a11928af24a207b7c738ca3f8 + 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.27.0": + version: 0.27.0 + resolution: "magic-string@npm:0.27.0" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.4.13" + checksum: 10/10a18a48d22fb14467d6cb4204aba58d6790ae7ba023835dc7a65e310cf216f042a17fab1155ba43e47117310a9b7c3fd3bb79f40be40f5124d6b1af9e96399b + languageName: node + linkType: hard + +"magic-string@npm:^0.30.0": + version: 0.30.11 + resolution: "magic-string@npm:0.30.11" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + checksum: 10/b784d2240252f5b1e755d487354ada4c672cbca16f045144f7185a75b059210e5fcca7be7be03ef1bac2ca754c4428b21d36ae64a9057ba429916f06b8c54eb2 + languageName: node + linkType: hard + +"make-dir@npm:^2.0.0, make-dir@npm:^2.1.0": + version: 2.1.0 + resolution: "make-dir@npm:2.1.0" + dependencies: + pify: "npm:^4.0.1" + semver: "npm:^5.6.0" + checksum: 10/043548886bfaf1820323c6a2997e6d2fa51ccc2586ac14e6f14634f7458b4db2daf15f8c310e2a0abd3e0cddc64df1890d8fc7263033602c47bb12cbfcf86aab + languageName: node + linkType: hard + +"make-dir@npm:^3.0.2": + version: 3.1.0 + resolution: "make-dir@npm:3.1.0" + dependencies: + semver: "npm:^6.0.0" + checksum: 10/484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 + languageName: node + linkType: hard + +"make-dir@npm:^4.0.0": + version: 4.0.0 + resolution: "make-dir@npm:4.0.0" + dependencies: + semver: "npm:^7.5.3" + checksum: 10/bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a + languageName: node + linkType: hard + +"make-fetch-happen@npm:^13.0.0": + version: 13.0.1 + resolution: "make-fetch-happen@npm:13.0.1" + dependencies: + "@npmcli/agent": "npm:^2.0.0" + cacache: "npm:^18.0.0" + http-cache-semantics: "npm:^4.1.1" + is-lambda: "npm:^1.0.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^3.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^0.6.3" + proc-log: "npm:^4.2.0" + promise-retry: "npm:^2.0.1" + ssri: "npm:^10.0.0" + checksum: 10/11bae5ad6ac59b654dbd854f30782f9de052186c429dfce308eda42374528185a100ee40ac9ffdc36a2b6c821ecaba43913e4730a12f06f15e895ea9cb23fa59 + languageName: node + linkType: hard + +"makeerror@npm:1.0.12": + version: 1.0.12 + resolution: "makeerror@npm:1.0.12" + dependencies: + tmpl: "npm:1.0.5" + checksum: 10/4c66ddfc654537333da952c084f507fa4c30c707b1635344eb35be894d797ba44c901a9cebe914aa29a7f61357543ba09b09dddbd7f65b4aee756b450f169f40 + languageName: node + linkType: hard + +"map-or-similar@npm:^1.5.0": + version: 1.5.0 + resolution: "map-or-similar@npm:1.5.0" + checksum: 10/3cf43bcd0e7af41d7bade5f8b5be6bb9d021cc47e6008ad545d071cf3a709ba782884002f9eec6ccd51f572fc17841e07bf74628e0bc3694c33f4622b03e4b4c + languageName: node + linkType: hard + +"markdown-to-jsx@npm:^7.4.5": + version: 7.4.7 + resolution: "markdown-to-jsx@npm:7.4.7" + peerDependencies: + react: ">= 0.14.0" + checksum: 10/d421f561a57256164564f4b4ac1c3439493f7b88d46ca8d1ed429e481a199a8756591e180d401654c0826ccabe9e76ce4fb97286a0b3c43a7a6346c735778b2b + languageName: node + linkType: hard + +"media-typer@npm:0.3.0": + version: 0.3.0 + resolution: "media-typer@npm:0.3.0" + checksum: 10/38e0984db39139604756903a01397e29e17dcb04207bb3e081412ce725ab17338ecc47220c1b186b6bbe79a658aad1b0d41142884f5a481f36290cdefbe6aa46 + languageName: node + linkType: hard + +"memoizerific@npm:^1.11.3": + version: 1.11.3 + resolution: "memoizerific@npm:1.11.3" + dependencies: + map-or-similar: "npm:^1.5.0" + checksum: 10/72b6b80699777d000f03db6e15fdabcd4afe77feb45be51fe195cb230c64a368fcfcfbb976375eac3283bd8193d6b1a67ac3081cae07f64fca73f1aa568d59e3 + languageName: node + linkType: hard + +"merge-descriptors@npm:1.0.1": + version: 1.0.1 + resolution: "merge-descriptors@npm:1.0.1" + checksum: 10/5abc259d2ae25bb06d19ce2b94a21632583c74e2a9109ee1ba7fd147aa7362b380d971e0251069f8b3eb7d48c21ac839e21fa177b335e82c76ec172e30c31a26 + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 10/6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 + languageName: node + linkType: hard + +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 10/7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 + languageName: node + linkType: hard + +"methods@npm:~1.1.2": + version: 1.1.2 + resolution: "methods@npm:1.1.2" + checksum: 10/a385dd974faa34b5dd021b2bbf78c722881bf6f003bfe6d391d7da3ea1ed625d1ff10ddd13c57531f628b3e785be38d3eed10ad03cebd90b76932413df9a1820 + languageName: node + linkType: hard + +"micromatch@npm:^4.0.4": + version: 4.0.7 + resolution: "micromatch@npm:4.0.7" + dependencies: + braces: "npm:^3.0.3" + picomatch: "npm:^2.3.1" + checksum: 10/a11ed1cb67dcbbe9a5fc02c4062cf8bb0157d73bf86956003af8dcfdf9b287f9e15ec0f6d6925ff6b8b5b496202335e497b01de4d95ef6cf06411bc5e5c474a0 + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10/54bb60bf39e6f8689f6622784e668a3d7f8bed6b0d886f5c3c446cb3284be28b30bf707ed05d0fe44a036f8469976b2629bbea182684977b084de9da274694d7 + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10/89aa9651b67644035de2784a6e665fc685d79aba61857e02b9c8758da874a754aed4a9aced9265f5ed1171fd934331e5516b84a7f0218031b6fa0270eca1e51a + languageName: node + linkType: hard + +"mime@npm:1.6.0": + version: 1.6.0 + resolution: "mime@npm:1.6.0" + bin: + mime: cli.js + checksum: 10/b7d98bb1e006c0e63e2c91b590fe1163b872abf8f7ef224d53dd31499c2197278a6d3d0864c45239b1a93d22feaf6f9477e9fc847eef945838150b8c02d03170 + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: 10/d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a + languageName: node + linkType: hard + +"mimic-fn@npm:^4.0.0": + version: 4.0.0 + resolution: "mimic-fn@npm:4.0.0" + checksum: 10/995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 + languageName: node + linkType: hard + +"min-indent@npm:^1.0.0, min-indent@npm:^1.0.1": + version: 1.0.1 + resolution: "min-indent@npm:1.0.1" + checksum: 10/bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 + languageName: node + linkType: hard + +"minimatch@npm:9.0.3": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10/c81b47d28153e77521877649f4bab48348d10938df9e8147a58111fe00ef89559a2938de9f6632910c4f7bf7bb5cd81191a546167e58d357f0cfb1e18cecc1c5 + languageName: node + linkType: hard + +"minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 10/e0b25b04cd4ec6732830344e5739b13f8690f8a012d73445a4a19fbc623f5dd481ef7a5827fde25954cd6026fede7574cc54dc4643c99d6c6b653d6203f94634 + languageName: node + linkType: hard + +"minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10/dd6a8927b063aca6d910b119e1f2df6d2ce7d36eab91de83167dd136bb85e1ebff97b0d3de1cb08bd1f7e018ca170b4962479fefab5b2a69e2ae12cb2edc8348 + languageName: node + linkType: hard + +"minimist@npm:^1.2.6, minimist@npm:^1.2.8": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 10/908491b6cc15a6c440ba5b22780a0ba89b9810e1aea684e253e43c4e3b8d56ec1dcdd7ea96dde119c29df59c936cde16062159eae4225c691e19c70b432b6e6f + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10/b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.5 + resolution: "minipass-fetch@npm:3.0.5" + dependencies: + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^2.1.2" + dependenciesMeta: + encoding: + optional: true + checksum: 10/c669948bec1373313aaa8f104b962a3ced9f45c49b26366a4b0ae27ccdfa9c5740d72c8a84d3f8623d7a61c5fc7afdfda44789008c078f61a62441142efc4a97 + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10/56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10/b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10/40982d8d836a52b0f37049a0a7e5d0f089637298e6d9b45df9c115d4f0520682a78258905e5c8b180fb41b593b0a82cc1361d2c74b45f7ada66334f84d1ecfdd + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10/a5c6ef069f70d9a524d3428af39f2b117ff8cd84172e19b754e7264a33df460873e6eb3d6e55758531580970de50ae950c496256bb4ad3691a2974cddff189f0 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 10/61682162d29f45d3152b78b08bab7fb32ca10899bc5991ffe98afc18c9e9543bd1e3be94f8b8373ba6262497db63607079dc242ea62e43e7b2270837b7347c93 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: "npm:^3.0.0" + yallist: "npm:^4.0.0" + checksum: 10/ae0f45436fb51344dcb87938446a32fbebb540d0e191d63b35e1c773d47512e17307bf54aa88326cc6d176594d00e4423563a091f7266c2f9a6872cdc1e234d1 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: 10/d71b8dcd4b5af2fe13ecf3bd24070263489404fe216488c5ba7e38ece1f54daf219e72a833a3a2dc404331e870e9f44963a33399589490956bff003a3404d3b2 + languageName: node + linkType: hard + +"mlly@npm:^1.7.1": + version: 1.7.1 + resolution: "mlly@npm:1.7.1" + dependencies: + acorn: "npm:^8.11.3" + pathe: "npm:^1.1.2" + pkg-types: "npm:^1.1.1" + ufo: "npm:^1.5.3" + checksum: 10/c1ef3989e95fb6c6c27a238330897b01f46507020501f45a681f2cae453f982e38dcb0e45aa65f672ea7280945d4a729d266f17a8acb187956f312b0cafddf61 + languageName: node + linkType: hard + +"ms@npm:2.0.0": + version: 2.0.0 + resolution: "ms@npm:2.0.0" + checksum: 10/0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 10/673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f + languageName: node + linkType: hard + +"ms@npm:2.1.3, ms@npm:^2.1.1": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10/aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d + languageName: node + linkType: hard + +"nanoid@npm:^3.3.7": + version: 3.3.7 + resolution: "nanoid@npm:3.3.7" + bin: + nanoid: bin/nanoid.cjs + checksum: 10/ac1eb60f615b272bccb0e2b9cd933720dad30bf9708424f691b8113826bb91aca7e9d14ef5d9415a6ba15c266b37817256f58d8ce980c82b0ba3185352565679 + languageName: node + linkType: hard + +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 10/23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d + languageName: node + linkType: hard + +"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: 10/2723fb822a17ad55c93a588a4bc44d53b22855bf4be5499916ca0cab1e7165409d0b288ba2577d7b029f10ce18cf2ed8e703e5af31c984e1e2304277ef979837 + languageName: node + linkType: hard + +"neo-async@npm:^2.5.0": + version: 2.6.2 + resolution: "neo-async@npm:2.6.2" + checksum: 10/1a7948fea86f2b33ec766bc899c88796a51ba76a4afc9026764aedc6e7cde692a09067031e4a1bf6db4f978ccd99e7f5b6c03fe47ad9865c3d4f99050d67e002 + languageName: node + linkType: hard + +"node-dir@npm:^0.1.17": + version: 0.1.17 + resolution: "node-dir@npm:0.1.17" + dependencies: + minimatch: "npm:^3.0.2" + checksum: 10/281fdea12d9c080a7250e5b5afefa3ab39426d40753ec8126a2d1e67f189b8824723abfed74f5d8549c5d78352d8c489fe08d0b067d7684c87c07283d38374a5 + languageName: node + linkType: hard + +"node-fetch-native@npm:^1.6.3": + version: 1.6.4 + resolution: "node-fetch-native@npm:1.6.4" + checksum: 10/39c4c6d0c2a4bed1444943e1647ad0d79eb6638cf159bc37dffeafd22cffcf6a998e006aa1f3dd1d9d2258db7d78dee96b44bee4ba0bbaf0440ed348794f2543 + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 10.2.0 + resolution: "node-gyp@npm:10.2.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + glob: "npm:^10.3.10" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^13.0.0" + nopt: "npm:^7.0.0" + proc-log: "npm:^4.1.0" + semver: "npm:^7.3.5" + tar: "npm:^6.2.1" + which: "npm:^4.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10/41773093b1275751dec942b985982fd4e7a69b88cae719b868babcef3880ee6168aaec8dcaa8cd0b9fa7c84873e36cc549c6cac6a124ee65ba4ce1f1cc108cfe + languageName: node + linkType: hard + +"node-int64@npm:^0.4.0": + version: 0.4.0 + resolution: "node-int64@npm:0.4.0" + checksum: 10/b7afc2b65e56f7035b1a2eec57ae0fbdee7d742b1cdcd0f4387562b6527a011ab1cbe9f64cc8b3cca61e3297c9637c8bf61cec2e6b8d3a711d4b5267dfafbe02 + languageName: node + linkType: hard + +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: 10/241e5fa9556f1c12bafb83c6c3e94f8cf3d8f2f8f904906ecef6e10bcaa1d59aa61212d4651bec70052015fc54bd3fdcdbe7fc0f638a17e6685aa586c076ec4e + languageName: node + linkType: hard + +"nopt@npm:^7.0.0": + version: 7.2.1 + resolution: "nopt@npm:7.2.1" + dependencies: + abbrev: "npm:^2.0.0" + bin: + nopt: bin/nopt.js + checksum: 10/95a1f6dec8a81cd18cdc2fed93e6f0b4e02cf6bdb4501c848752c6e34f9883d9942f036a5e3b21a699047d8a448562d891e67492df68ec9c373e6198133337ae + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 10/88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 + languageName: node + linkType: hard + +"npm-run-path@npm:^4.0.0, npm-run-path@npm:^4.0.1": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: "npm:^3.0.0" + checksum: 10/5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 + languageName: node + linkType: hard + +"npm-run-path@npm:^5.1.0": + version: 5.3.0 + resolution: "npm-run-path@npm:5.3.0" + dependencies: + path-key: "npm:^4.0.0" + checksum: 10/ae8e7a89da9594fb9c308f6555c73f618152340dcaae423e5fb3620026fefbec463618a8b761920382d666fa7a2d8d240b6fe320e8a6cdd54dc3687e2b659d25 + languageName: node + linkType: hard + +"nwsapi@npm:^2.2.2": + version: 2.2.12 + resolution: "nwsapi@npm:2.2.12" + checksum: 10/172119e9ef492467ebfb337f9b5fd12a94d2b519377cde3f6ec2f74a86f6d5c00ef3873539bed7142f908ffca4e35383179be2319d04a563071d146bfa3f1673 + languageName: node + linkType: hard + +"nypm@npm:^0.3.8": + version: 0.3.9 + resolution: "nypm@npm:0.3.9" + dependencies: + citty: "npm:^0.1.6" + consola: "npm:^3.2.3" + execa: "npm:^8.0.1" + pathe: "npm:^1.1.2" + pkg-types: "npm:^1.1.1" + ufo: "npm:^1.5.3" + bin: + nypm: dist/cli.mjs + checksum: 10/fd884f4465f51c57fe584a11299320a5678934b14eed0ecc56003dd26f5638db4e858d97f2ab580937fa17a4a1c4ef73e32b82c7ef0bc06d820b3f32b932a45a + languageName: node + linkType: hard + +"object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10/fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + languageName: node + linkType: hard + +"object-inspect@npm:^1.13.1": + version: 1.13.2 + resolution: "object-inspect@npm:1.13.2" + checksum: 10/7ef65583b6397570a17c56f0c1841e0920e83900f2c94638927abb7b81ac08a19c7aae135bd9dcca96208cac0c7332b4650fb927f027b0cf92d71df2990d0561 + 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.5 + resolution: "object.assign@npm:4.1.5" + dependencies: + call-bind: "npm:^1.0.5" + define-properties: "npm:^1.2.1" + has-symbols: "npm:^1.0.3" + object-keys: "npm:^1.1.1" + checksum: 10/dbb22da4cda82e1658349ea62b80815f587b47131b3dd7a4ab7f84190ab31d206bbd8fe7e26ae3220c55b65725ac4529825f6142154211220302aa6b1518045d + languageName: node + linkType: hard + +"ohash@npm:^1.1.3": + version: 1.1.3 + resolution: "ohash@npm:1.1.3" + checksum: 10/80a3528285f61588600c8c4f091a67f55fbc141f4eec4b3c30182468053042eef5a9684780e963f98a71ec068f3de56d42920c6417bf8f79ab14aeb75ac0bb39 + languageName: node + linkType: hard + +"on-finished@npm:2.4.1": + version: 2.4.1 + resolution: "on-finished@npm:2.4.1" + dependencies: + ee-first: "npm:1.1.1" + checksum: 10/8e81472c5028125c8c39044ac4ab8ba51a7cdc19a9fbd4710f5d524a74c6d8c9ded4dd0eed83f28d3d33ac1d7a6a439ba948ccb765ac6ce87f30450a26bfe2ea + languageName: node + linkType: hard + +"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: "npm:1" + checksum: 10/cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +"onetime@npm:^5.1.0, onetime@npm:^5.1.2": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: "npm:^2.1.0" + checksum: 10/e9fd0695a01cf226652f0385bf16b7a24153dbbb2039f764c8ba6d2306a8506b0e4ce570de6ad99c7a6eb49520743afdb66edd95ee979c1a342554ed49a9aadd + languageName: node + linkType: hard + +"onetime@npm:^6.0.0": + version: 6.0.0 + resolution: "onetime@npm:6.0.0" + dependencies: + mimic-fn: "npm:^4.0.0" + checksum: 10/0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 + languageName: node + linkType: hard + +"optionator@npm:^0.9.3": + version: 0.9.4 + resolution: "optionator@npm:0.9.4" + dependencies: + deep-is: "npm:^0.1.3" + fast-levenshtein: "npm:^2.0.6" + levn: "npm:^0.4.1" + prelude-ls: "npm:^1.2.1" + type-check: "npm:^0.4.0" + word-wrap: "npm:^1.2.5" + checksum: 10/a8398559c60aef88d7f353a4f98dcdff6090a4e70f874c827302bf1213d9106a1c4d5fcb68dacb1feb3c30a04c4102f41047aa55d4c576b863d6fc876e001af6 + languageName: node + linkType: hard + +"ora@npm:^5.4.1": + version: 5.4.1 + resolution: "ora@npm:5.4.1" + dependencies: + bl: "npm:^4.1.0" + chalk: "npm:^4.1.0" + cli-cursor: "npm:^3.1.0" + cli-spinners: "npm:^2.5.0" + is-interactive: "npm:^1.0.0" + is-unicode-supported: "npm:^0.1.0" + log-symbols: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + wcwidth: "npm:^1.0.1" + checksum: 10/8d071828f40090a8e1c6e8f350c6eb065808e9ab2b3e57fa37e0d5ae78cb46dac00117c8f12c3c8b8da2923454afbd8265e08c10b69881170c5b269f451e7fef + languageName: node + linkType: hard + +"ospath@npm:^1.2.2": + version: 1.2.2 + resolution: "ospath@npm:1.2.2" + checksum: 10/505f48a4f4f1c557d6c656ec985707726e3714721680139be037613e903aa8c8fa4ddd8d1342006f9b2dc0065e6e20f8b7bea2ee05354f31257044790367b347 + languageName: node + linkType: hard + +"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: "npm:^2.0.0" + checksum: 10/84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 + languageName: node + linkType: hard + +"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: "npm:^0.1.0" + checksum: 10/7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + languageName: node + linkType: hard + +"p-locate@npm:^3.0.0": + version: 3.0.0 + resolution: "p-locate@npm:3.0.0" + dependencies: + p-limit: "npm:^2.0.0" + checksum: 10/83991734a9854a05fe9dbb29f707ea8a0599391f52daac32b86f08e21415e857ffa60f0e120bfe7ce0cc4faf9274a50239c7895fc0d0579d08411e513b83a4ae + languageName: node + linkType: hard + +"p-locate@npm:^4.1.0": + version: 4.1.0 + resolution: "p-locate@npm:4.1.0" + dependencies: + p-limit: "npm:^2.2.0" + checksum: 10/513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 + 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-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: "npm:^3.0.0" + checksum: 10/7ba4a2b1e24c05e1fc14bbaea0fc6d85cf005ae7e9c9425d4575550f37e2e584b1af97bcde78eacd7559208f20995988d52881334db16cf77bc1bcf68e48ed7c + languageName: node + linkType: hard + +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: 10/f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae + languageName: node + linkType: hard + +"package-json-from-dist@npm:^1.0.0": + version: 1.0.0 + resolution: "package-json-from-dist@npm:1.0.0" + checksum: 10/ac706ec856a5a03f5261e4e48fa974f24feb044d51f84f8332e2af0af04fbdbdd5bbbfb9cbbe354190409bc8307c83a9e38c6672c3c8855f709afb0006a009ea + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: "npm:^3.0.0" + checksum: 10/6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff + languageName: node + linkType: hard + +"parse-json@npm:^5.2.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + dependencies: + "@babel/code-frame": "npm:^7.0.0" + error-ex: "npm:^1.3.1" + json-parse-even-better-errors: "npm:^2.3.0" + lines-and-columns: "npm:^1.1.6" + checksum: 10/62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 + languageName: node + linkType: hard + +"parse5@npm:^7.0.0, parse5@npm:^7.1.1": + version: 7.1.2 + resolution: "parse5@npm:7.1.2" + dependencies: + entities: "npm:^4.4.0" + checksum: 10/3c86806bb0fb1e9a999ff3a4c883b1ca243d99f45a619a0898dbf021a95a0189ed955c31b07fe49d342b54e814f33f2c9d7489198e8630dacd5477d413ec5782 + languageName: node + linkType: hard + +"parseurl@npm:~1.3.3": + version: 1.3.3 + resolution: "parseurl@npm:1.3.3" + checksum: 10/407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 + languageName: node + linkType: hard + +"path-exists@npm:^3.0.0": + version: 3.0.0 + resolution: "path-exists@npm:3.0.0" + checksum: 10/96e92643aa34b4b28d0de1cd2eba52a1c5313a90c6542d03f62750d82480e20bfa62bc865d5cfc6165f5fcd5aeb0851043c40a39be5989646f223300021bae0a + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 10/505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 10/060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + languageName: node + linkType: hard + +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10/55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + languageName: node + linkType: hard + +"path-key@npm:^4.0.0": + version: 4.0.0 + resolution: "path-key@npm:4.0.0" + checksum: 10/8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 10/49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a + languageName: node + linkType: hard + +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: "npm:^10.2.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10/5e8845c159261adda6f09814d7725683257fcc85a18f329880ab4d7cc1d12830967eae5d5894e453f341710d5484b8fdbbd4d75181b4d6e1eb2f4dc7aeadc434 + languageName: node + linkType: hard + +"path-to-regexp@npm:0.1.7": + version: 0.1.7 + resolution: "path-to-regexp@npm:0.1.7" + checksum: 10/701c99e1f08e3400bea4d701cf6f03517474bb1b608da71c78b1eb261415b645c5670dfae49808c89e12cea2dccd113b069f040a80de012da0400191c6dbd1c8 + languageName: node + linkType: hard + +"path-type@npm:^4.0.0": + version: 4.0.0 + resolution: "path-type@npm:4.0.0" + checksum: 10/5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 + languageName: node + linkType: hard + +"path-type@npm:^5.0.0": + version: 5.0.0 + resolution: "path-type@npm:5.0.0" + checksum: 10/15ec24050e8932c2c98d085b72cfa0d6b4eeb4cbde151a0a05726d8afae85784fc5544f733d8dfc68536587d5143d29c0bd793623fad03d7e61cc00067291cd5 + languageName: node + linkType: hard + +"pathe@npm:^1.1.2": + version: 1.1.2 + resolution: "pathe@npm:1.1.2" + checksum: 10/f201d796351bf7433d147b92c20eb154a4e0ea83512017bf4ec4e492a5d6e738fb45798be4259a61aa81270179fce11026f6ff0d3fa04173041de044defe9d80 + languageName: node + linkType: hard + +"pathval@npm:^2.0.0": + version: 2.0.0 + resolution: "pathval@npm:2.0.0" + checksum: 10/b91575bf9cdf01757afd7b5e521eb8a0b874a49bc972d08e0047cfea0cd3c019f5614521d4bc83d2855e3fcc331db6817dfd533dd8f3d90b16bc76fad2450fc1 + languageName: node + linkType: hard + +"pend@npm:~1.2.0": + version: 1.2.0 + resolution: "pend@npm:1.2.0" + checksum: 10/6c72f5243303d9c60bd98e6446ba7d30ae29e3d56fdb6fae8767e8ba6386f33ee284c97efe3230a0d0217e2b1723b8ab490b1bbf34fcbb2180dbc8a9de47850d + languageName: node + linkType: hard + +"performance-now@npm:^2.1.0": + version: 2.1.0 + resolution: "performance-now@npm:2.1.0" + checksum: 10/534e641aa8f7cba160f0afec0599b6cecefbb516a2e837b512be0adbe6c1da5550e89c78059c7fabc5c9ffdf6627edabe23eb7c518c4500067a898fa65c2b550 + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": + version: 1.0.1 + resolution: "picocolors@npm:1.0.1" + checksum: 10/fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 10/60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc + languageName: node + linkType: hard + +"pify@npm:^2.2.0": + version: 2.3.0 + resolution: "pify@npm:2.3.0" + checksum: 10/9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba + languageName: node + linkType: hard + +"pify@npm:^4.0.1": + version: 4.0.1 + resolution: "pify@npm:4.0.1" + checksum: 10/8b97cbf9dc6d4c1320cc238a2db0fc67547f9dc77011729ff353faf34f1936ea1a4d7f3c63b2f4980b253be77bcc72ea1e9e76ee3fd53cce2aafb6a8854d07ec + languageName: node + linkType: hard + +"pirates@npm:^4.0.4, pirates@npm:^4.0.6": + version: 4.0.6 + resolution: "pirates@npm:4.0.6" + checksum: 10/d02dda76f4fec1cbdf395c36c11cf26f76a644f9f9a1bfa84d3167d0d3154d5289aacc72677aa20d599bb4a6937a471de1b65c995e2aea2d8687cbcd7e43ea5f + languageName: node + linkType: hard + +"pkg-dir@npm:^3.0.0": + version: 3.0.0 + resolution: "pkg-dir@npm:3.0.0" + dependencies: + find-up: "npm:^3.0.0" + checksum: 10/70c9476ffefc77552cc6b1880176b71ad70bfac4f367604b2b04efd19337309a4eec985e94823271c7c0e83946fa5aeb18cd360d15d10a5d7533e19344bfa808 + languageName: node + linkType: hard + +"pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0": + version: 4.2.0 + resolution: "pkg-dir@npm:4.2.0" + dependencies: + find-up: "npm:^4.0.0" + checksum: 10/9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 + languageName: node + linkType: hard + +"pkg-types@npm:^1.1.1": + version: 1.1.3 + resolution: "pkg-types@npm:1.1.3" + dependencies: + confbox: "npm:^0.1.7" + mlly: "npm:^1.7.1" + pathe: "npm:^1.1.2" + checksum: 10/06c03ca679ea8e3a1ea7cb74e92af1a486a6081401aac35f6aa51fb6f0855cd86bbfc713f9bfdaaa730815b5ae147b4d6a838710b550c1c4b3f54a6653ff04a3 + languageName: node + linkType: hard + +"playwright-core@npm:1.42.1": + version: 1.42.1 + resolution: "playwright-core@npm:1.42.1" + bin: + playwright-core: cli.js + checksum: 10/6a71d2e2aa5b054d6e83836f09e139a0ff4de3aa9b6aebe0e03de3ab828c735d23a20a60fafcee91c1658da490cc390f05af463325ac842beaff58a173f7ad9e + languageName: node + linkType: hard + +"playwright@npm:1.42.1": + version: 1.42.1 + resolution: "playwright@npm:1.42.1" + dependencies: + fsevents: "npm:2.3.2" + playwright-core: "npm:1.42.1" + dependenciesMeta: + fsevents: + optional: true + bin: + playwright: cli.js + checksum: 10/1f866a6820e19feaaeb12cd87bfa93299d6d72e1287413098c5ae0349c7e7953eb0a303bdfbb99c12173a3493e6fdb642f89a166cfcfd8295254a520abf6eb7f + languageName: node + linkType: hard + +"polished@npm:^4.2.2": + version: 4.3.1 + resolution: "polished@npm:4.3.1" + dependencies: + "@babel/runtime": "npm:^7.17.8" + checksum: 10/0902fe2eb16aecde1587a00efee7db8081b1331ac7bcfb6e61214d266388723a84858d732ad9395028e0aecd2bb8d0c39cc03d14b4c24c22329a0e40c38141eb + languageName: node + linkType: hard + +"portable-stories-react@workspace:.": + version: 0.0.0-use.local + resolution: "portable-stories-react@workspace:." + dependencies: + "@playwright/experimental-ct-react": "npm:1.42.1" + "@storybook/addon-actions": "npm:^8.0.0" + "@storybook/addon-essentials": "npm:^8.0.0" + "@storybook/addon-interactions": "npm:^8.0.0" + "@storybook/react": "npm:^8.0.0" + "@storybook/react-vite": "npm:^8.0.0" + "@storybook/test": "npm:^8.0.0" + "@swc/core": "npm:^1.4.2" + "@swc/jest": "npm:^0.2.36" + "@testing-library/jest-dom": "npm:^6.4.0" + "@testing-library/react": "npm:^14.2.1" + "@types/identity-obj-proxy": "npm:^3" + "@types/react": "npm:^18.2.55" + "@types/react-dom": "npm:^18.2.19" + "@typescript-eslint/eslint-plugin": "npm:^6.21.0" + "@typescript-eslint/parser": "npm:^6.21.0" + "@vitejs/plugin-react": "npm:^4.2.1" + cypress: "npm:^13.6.4" + eslint: "npm:^8.56.0" + eslint-plugin-react-hooks: "npm:^4.6.0" + eslint-plugin-react-refresh: "npm:^0.4.5" + eslint-plugin-storybook: "npm:^0.6.15" + identity-obj-proxy: "npm:^3.0.0" + jest: "npm:^29.7.0" + jest-environment-jsdom: "npm:^29.7.0" + react: "npm:^18.2.0" + react-dom: "npm:^18.2.0" + storybook: "npm:^8.0.0" + typescript: "npm:^5.2.2" + vite: "npm:^5.1.1" + languageName: unknown + linkType: soft + +"possible-typed-array-names@npm:^1.0.0": + version: 1.0.0 + resolution: "possible-typed-array-names@npm:1.0.0" + checksum: 10/8ed3e96dfeea1c5880c1f4c9cb707e5fb26e8be22f14f82ef92df20fd2004e635c62ba47fbe8f2bb63bfd80dac1474be2fb39798da8c2feba2815435d1f749af + languageName: node + linkType: hard + +"postcss@npm:^8.4.39": + version: 8.4.40 + resolution: "postcss@npm:8.4.40" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.0.1" + source-map-js: "npm:^1.2.0" + checksum: 10/bdd01b55152e4be7b4a82b03dd22876e33ff6a038680d1b80a50405a5eccc10aff0f466a0e5e574bc476943b0ba120fbd5de7cde9f219bbf8efc011898f5f631 + languageName: node + linkType: hard + +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: 10/0b9d2c76801ca652a7f64892dd37b7e3fab149a37d2424920099bf894acccc62abb4424af2155ab36dea8744843060a2d8ddc983518d0b1e22265a22324b72ed + languageName: node + linkType: hard + +"prettier@npm:^3.1.1": + version: 3.3.3 + resolution: "prettier@npm:3.3.3" + bin: + prettier: bin/prettier.cjs + checksum: 10/5beac1f30b5b40162532b8e2f7c3a4eb650910a2695e9c8512a62ffdc09dae93190c29db9107fa7f26d1b6c71aad3628ecb9b5de1ecb0911191099be109434d7 + languageName: node + linkType: hard + +"pretty-bytes@npm:^5.6.0": + version: 5.6.0 + resolution: "pretty-bytes@npm:5.6.0" + checksum: 10/9c082500d1e93434b5b291bd651662936b8bd6204ec9fa17d563116a192d6d86b98f6d328526b4e8d783c07d5499e2614a807520249692da9ec81564b2f439cd + 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.7.0": + version: 29.7.0 + resolution: "pretty-format@npm:29.7.0" + dependencies: + "@jest/schemas": "npm:^29.6.3" + ansi-styles: "npm:^5.0.0" + react-is: "npm:^18.0.0" + checksum: 10/dea96bc83c83cd91b2bfc55757b6b2747edcaac45b568e46de29deee80742f17bc76fe8898135a70d904f4928eafd8bb693cd1da4896e8bdd3c5e82cadf1d2bb + languageName: node + linkType: hard + +"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": + version: 4.2.0 + resolution: "proc-log@npm:4.2.0" + checksum: 10/4e1394491b717f6c1ade15c570ecd4c2b681698474d3ae2d303c1e4b6ab9455bd5a81566211e82890d5a5ae9859718cc6954d5150bb18b09b72ecb297beae90a + languageName: node + linkType: hard + +"process@npm:^0.11.10": + version: 0.11.10 + resolution: "process@npm:0.11.10" + checksum: 10/dbaa7e8d1d5cf375c36963ff43116772a989ef2bb47c9bdee20f38fd8fc061119cf38140631cf90c781aca4d3f0f0d2c834711952b728953f04fd7d238f59f5b + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: "npm:^2.0.2" + retry: "npm:^0.12.0" + checksum: 10/96e1a82453c6c96eef53a37a1d6134c9f2482f94068f98a59145d0986ca4e497bf110a410adf73857e588165eab3899f0ebcf7b3890c1b3ce802abc0d65967d4 + languageName: node + linkType: hard + +"prompts@npm:^2.0.1, prompts@npm:^2.4.0": + version: 2.4.2 + resolution: "prompts@npm:2.4.2" + dependencies: + kleur: "npm:^3.0.3" + sisteransi: "npm:^1.0.5" + checksum: 10/c52536521a4d21eff4f2f2aa4572446cad227464066365a7167e52ccf8d9839c099f9afec1aba0eed3d5a2514b3e79e0b3e7a1dc326b9acde6b75d27ed74b1a9 + languageName: node + linkType: hard + +"prop-types@npm:^15.7.2": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: "npm:^1.4.0" + object-assign: "npm:^4.1.1" + react-is: "npm:^16.13.1" + checksum: 10/7d959caec002bc964c86cdc461ec93108b27337dabe6192fb97d69e16a0c799a03462713868b40749bfc1caf5f57ef80ac3e4ffad3effa636ee667582a75e2c0 + languageName: node + linkType: hard + +"proxy-addr@npm:~2.0.7": + version: 2.0.7 + resolution: "proxy-addr@npm:2.0.7" + dependencies: + forwarded: "npm:0.2.0" + ipaddr.js: "npm:1.9.1" + checksum: 10/f24a0c80af0e75d31e3451398670d73406ec642914da11a2965b80b1898ca6f66a0e3e091a11a4327079b2b268795f6fa06691923fef91887215c3d0e8ea3f68 + languageName: node + linkType: hard + +"proxy-from-env@npm:1.0.0": + version: 1.0.0 + resolution: "proxy-from-env@npm:1.0.0" + checksum: 10/f26b59c0f21dd118c23a0eb1f5250848a23b5029ec5c9f2b4011b6439b19fa83da50858d84e9261da94aa4e67778c1bac5483afce884b7770a96895a4e6b9a19 + languageName: node + linkType: hard + +"psl@npm:^1.1.33": + version: 1.9.0 + resolution: "psl@npm:1.9.0" + checksum: 10/d07879d4bfd0ac74796306a8e5a36a93cfb9c4f4e8ee8e63fbb909066c192fe1008cd8f12abd8ba2f62ca28247949a20c8fb32e1d18831d9e71285a1569720f9 + languageName: node + linkType: hard + +"pump@npm:^3.0.0": + version: 3.0.0 + resolution: "pump@npm:3.0.0" + dependencies: + end-of-stream: "npm:^1.1.0" + once: "npm:^1.3.1" + checksum: 10/e42e9229fba14732593a718b04cb5e1cfef8254544870997e0ecd9732b189a48e1256e4e5478148ecb47c8511dca2b09eae56b4d0aad8009e6fac8072923cfc9 + languageName: node + linkType: hard + +"punycode@npm:^2.1.0, punycode@npm:^2.1.1": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: 10/febdc4362bead22f9e2608ff0171713230b57aff9dddc1c273aa2a651fbd366f94b7d6a71d78342a7c0819906750351ca7f2edd26ea41b626d87d6a13d1bd059 + languageName: node + linkType: hard + +"pure-rand@npm:^6.0.0": + version: 6.1.0 + resolution: "pure-rand@npm:6.1.0" + checksum: 10/256aa4bcaf9297256f552914e03cbdb0039c8fe1db11fa1e6d3f80790e16e563eb0a859a1e61082a95e224fc0c608661839439f8ecc6a3db4e48d46d99216ee4 + languageName: node + linkType: hard + +"qs@npm:6.10.4": + version: 6.10.4 + resolution: "qs@npm:6.10.4" + dependencies: + side-channel: "npm:^1.0.4" + checksum: 10/8887a53f63180e0e0291deafef581e550bc3656f2453adc8d3ca34b49c04354d31079962f7faf90ab8f5fd6e3d70ee6645042b27814a757a3a5d5708ae3f58e0 + languageName: node + linkType: hard + +"qs@npm:6.11.0": + version: 6.11.0 + resolution: "qs@npm:6.11.0" + dependencies: + side-channel: "npm:^1.0.4" + checksum: 10/5a3bfea3e2f359ede1bfa5d2f0dbe54001aa55e40e27dc3e60fab814362d83a9b30758db057c2011b6f53a2d4e4e5150194b5bac45372652aecb3e3c0d4b256e + languageName: node + linkType: hard + +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 10/46ab16f252fd892fc29d6af60966d338cdfeea68a231e9457631ffd22d67cec1e00141e0a5236a2eb16c0d7d74175d9ec1d6f963660c6f2b1c2fc85b194c5680 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: 10/72900df0616e473e824202113c3df6abae59150dfb73ed13273503127235320e9c8ca4aaaaccfd58cf417c6ca92a6e68ee9a5c3182886ae949a768639b388a7b + languageName: node + linkType: hard + +"range-parser@npm:~1.2.1": + version: 1.2.1 + resolution: "range-parser@npm:1.2.1" + checksum: 10/ce21ef2a2dd40506893157970dc76e835c78cf56437e26e19189c48d5291e7279314477b06ac38abd6a401b661a6840f7b03bd0b1249da9b691deeaa15872c26 + languageName: node + linkType: hard + +"raw-body@npm:2.5.2": + version: 2.5.2 + resolution: "raw-body@npm:2.5.2" + dependencies: + bytes: "npm:3.1.2" + http-errors: "npm:2.0.0" + iconv-lite: "npm:0.4.24" + unpipe: "npm:1.0.0" + checksum: 10/863b5171e140546a4d99f349b720abac4410338e23df5e409cfcc3752538c9caf947ce382c89129ba976f71894bd38b5806c774edac35ebf168d02aa1ac11a95 + languageName: node + linkType: hard + +"react-colorful@npm:^5.1.2": + version: 5.6.1 + resolution: "react-colorful@npm:5.6.1" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 10/3e02ba013454818d0c323949bd961fb2c19ac18130dfc67a4032aa5b03787c5ffe7ff159c4b97dc3475072d576828ca0c4b8e8ce85b55eaf484180596cdf0403 + languageName: node + linkType: hard + +"react-docgen-typescript@npm:^2.2.2": + version: 2.2.2 + resolution: "react-docgen-typescript@npm:2.2.2" + peerDependencies: + typescript: ">= 4.3.x" + checksum: 10/081fc3a876f53b9eeffcff357e5b6c190db799d50edcf11b187857d8cb8cce28000ed777ed16dd52a1c955f332612ef6b1f02cf8adcbcb084b8da9ff1ae5fd13 + languageName: node + linkType: hard + +"react-docgen@npm:^7.0.0": + version: 7.0.3 + resolution: "react-docgen@npm:7.0.3" + dependencies: + "@babel/core": "npm:^7.18.9" + "@babel/traverse": "npm:^7.18.9" + "@babel/types": "npm:^7.18.9" + "@types/babel__core": "npm:^7.18.0" + "@types/babel__traverse": "npm:^7.18.0" + "@types/doctrine": "npm:^0.0.9" + "@types/resolve": "npm:^1.20.2" + doctrine: "npm:^3.0.0" + resolve: "npm:^1.22.1" + strip-indent: "npm:^4.0.0" + checksum: 10/53eaed76cceb55606584c6ab603f04ec78c066cfb9ed983e1f7b388a75bfb8c2fc9c6b7ab299bac311b3daeca95adb8076b58ca96b41907b33c518299268831f + languageName: node + linkType: hard + +"react-dom@npm:^16.8.0 || ^17.0.0 || ^18.0.0, react-dom@npm:^18.2.0": + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" + dependencies: + loose-envify: "npm:^1.1.0" + scheduler: "npm:^0.23.2" + peerDependencies: + react: ^18.3.1 + checksum: 10/3f4b73a3aa083091173b29812b10394dd06f4ac06aff410b74702cfb3aa29d7b0ced208aab92d5272919b612e5cda21aeb1d54191848cf6e46e9e354f3541f81 + languageName: node + linkType: hard + +"react-element-to-jsx-string@npm:^15.0.0": + version: 15.0.0 + resolution: "react-element-to-jsx-string@npm:15.0.0" + dependencies: + "@base2/pretty-print-object": "npm:1.0.1" + is-plain-object: "npm:5.0.0" + react-is: "npm:18.1.0" + peerDependencies: + react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 + react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 + checksum: 10/9a874b2f16b4624a72c4b766b096d693a382b9dc7f2264f802395852ae3435ccde8e9e47bbe45cf5f30eba70f8126af6aca832190e285b0096af3ecade994df1 + languageName: node + linkType: hard + +"react-is@npm:18.1.0": + version: 18.1.0 + resolution: "react-is@npm:18.1.0" + checksum: 10/fe09c86d5e12a8531bf3e748660f3dffbe900a6da0b488c7efaf0a866e16b74ecc1b0011b0960b13594f8719f39f87a987c0c85edff0b2d3e2f14b87e7230ad2 + languageName: node + linkType: hard + +"react-is@npm:^16.13.1": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: 10/5aa564a1cde7d391ac980bedee21202fc90bdea3b399952117f54fb71a932af1e5902020144fb354b4690b2414a0c7aafe798eb617b76a3d441d956db7726fdf + 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.3.1 + resolution: "react-is@npm:18.3.1" + checksum: 10/d5f60c87d285af24b1e1e7eaeb123ec256c3c8bdea7061ab3932e3e14685708221bf234ec50b21e10dd07f008f1b966a2730a0ce4ff67905b3872ff2042aec22 + languageName: node + linkType: hard + +"react-refresh@npm:^0.14.2": + version: 0.14.2 + resolution: "react-refresh@npm:0.14.2" + checksum: 10/512abf97271ab8623486061be04b608c39d932e3709f9af1720b41573415fa4993d0009fa5138b6705b60a98f4102f744d4e26c952b14f41a0e455521c6be4cc + languageName: node + linkType: hard + +"react@npm:^16.8.0 || ^17.0.0 || ^18.0.0, react@npm:^18.2.0": + version: 18.3.1 + resolution: "react@npm:18.3.1" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10/261137d3f3993eaa2368a83110466fc0e558bc2c7f7ae7ca52d94f03aac945f45146bd85e5f481044db1758a1dbb57879e2fcdd33924e2dde1bdc550ce73f7bf + languageName: node + linkType: hard + +"readable-stream@npm:^3.4.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: "npm:^2.0.3" + string_decoder: "npm:^1.1.1" + util-deprecate: "npm:^1.0.1" + checksum: 10/d9e3e53193adcdb79d8f10f2a1f6989bd4389f5936c6f8b870e77570853561c362bee69feca2bbb7b32368ce96a85504aa4cedf7cf80f36e6a9de30d64244048 + languageName: node + linkType: hard + +"readdirp@npm:~3.6.0": + version: 3.6.0 + resolution: "readdirp@npm:3.6.0" + dependencies: + picomatch: "npm:^2.2.1" + checksum: 10/196b30ef6ccf9b6e18c4e1724b7334f72a093d011a99f3b5920470f0b3406a51770867b3e1ae9711f227ef7a7065982f6ee2ce316746b2cb42c88efe44297fe7 + languageName: node + linkType: hard + +"recast@npm:^0.23.3, recast@npm:^0.23.5": + version: 0.23.9 + resolution: "recast@npm:0.23.9" + dependencies: + ast-types: "npm:^0.16.1" + esprima: "npm:~4.0.0" + source-map: "npm:~0.6.1" + tiny-invariant: "npm:^1.3.3" + tslib: "npm:^2.0.1" + checksum: 10/d60584be179d81a82fbe58b5bbe009aa42831ee114a21a3e3a22bda91334e0b8a1a4610dca8ecb7f9ea1426da4febc08134d3003085ad6ecee478d1808eb8796 + languageName: node + linkType: hard + +"redent@npm:^3.0.0": + version: 3.0.0 + resolution: "redent@npm:3.0.0" + dependencies: + indent-string: "npm:^4.0.0" + strip-indent: "npm:^3.0.0" + checksum: 10/fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b + languageName: node + linkType: hard + +"regenerate-unicode-properties@npm:^10.1.0": + version: 10.1.1 + resolution: "regenerate-unicode-properties@npm:10.1.1" + dependencies: + regenerate: "npm:^1.4.2" + checksum: 10/b855152efdcca0ecc37ceb0cb6647a544344555fc293af3b57191b918e1bc9c95ee404a9a64a1d692bf66d45850942c29d93f2740c0d1980d3a8ea2ca63b184e + languageName: node + linkType: hard + +"regenerate@npm:^1.4.2": + version: 1.4.2 + resolution: "regenerate@npm:1.4.2" + checksum: 10/dc6c95ae4b3ba6adbd7687cafac260eee4640318c7a95239d5ce847d9b9263979758389e862fe9c93d633b5792ea4ada5708df75885dc5aa05a309fa18140a87 + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.14.0": + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 10/5db3161abb311eef8c45bcf6565f4f378f785900ed3945acf740a9888c792f75b98ecb77f0775f3bf95502ff423529d23e94f41d80c8256e8fa05ed4b07cf471 + languageName: node + linkType: hard + +"regenerator-transform@npm:^0.15.2": + version: 0.15.2 + resolution: "regenerator-transform@npm:0.15.2" + dependencies: + "@babel/runtime": "npm:^7.8.4" + checksum: 10/c4fdcb46d11bbe32605b4b9ed76b21b8d3f241a45153e9dc6f5542fed4c7744fed459f42701f650d5d5956786bf7de57547329d1c05a9df2ed9e367b9d903302 + languageName: node + linkType: hard + +"regexp.prototype.flags@npm:^1.5.1": + version: 1.5.2 + resolution: "regexp.prototype.flags@npm:1.5.2" + dependencies: + call-bind: "npm:^1.0.6" + define-properties: "npm:^1.2.1" + es-errors: "npm:^1.3.0" + set-function-name: "npm:^2.0.1" + checksum: 10/9fffc01da9c4e12670ff95bc5204364615fcc12d86fc30642765af908675678ebb0780883c874b2dbd184505fb52fa603d80073ecf69f461ce7f56b15d10be9c + languageName: node + linkType: hard + +"regexpu-core@npm:^5.3.1": + version: 5.3.2 + resolution: "regexpu-core@npm:5.3.2" + dependencies: + "@babel/regjsgen": "npm:^0.8.0" + regenerate: "npm:^1.4.2" + regenerate-unicode-properties: "npm:^10.1.0" + regjsparser: "npm:^0.9.1" + unicode-match-property-ecmascript: "npm:^2.0.0" + unicode-match-property-value-ecmascript: "npm:^2.1.0" + checksum: 10/ed0d7c66d84c633fbe8db4939d084c780190eca11f6920807dfb8ebac59e2676952cd8f2008d9c86ae8cf0463ea5fd12c5cff09ef2ce7d51ee6b420a5eb4d177 + languageName: node + linkType: hard + +"regjsparser@npm:^0.9.1": + version: 0.9.1 + resolution: "regjsparser@npm:0.9.1" + dependencies: + jsesc: "npm:~0.5.0" + bin: + regjsparser: bin/parser + checksum: 10/be7757ef76e1db10bf6996001d1021048b5fb12f5cb470a99b8cf7f3ff943f0f0e2291c0dcdbb418b458ddc4ac10e48680a822b69ef487a0284c8b6b77beddc3 + languageName: node + linkType: hard + +"rehype-external-links@npm:^3.0.0": + version: 3.0.0 + resolution: "rehype-external-links@npm:3.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + "@ungap/structured-clone": "npm:^1.0.0" + hast-util-is-element: "npm:^3.0.0" + is-absolute-url: "npm:^4.0.0" + space-separated-tokens: "npm:^2.0.0" + unist-util-visit: "npm:^5.0.0" + checksum: 10/b9b2e4e5974a7d1e4030dc42bfad980d4700af35b6b20b36fc7ff0521897a8f20d3fe5e170255c428148fdd5a0653a73683da783124038d17b24f26dd59d20e8 + languageName: node + linkType: hard + +"rehype-slug@npm:^6.0.0": + version: 6.0.0 + resolution: "rehype-slug@npm:6.0.0" + dependencies: + "@types/hast": "npm:^3.0.0" + github-slugger: "npm:^2.0.0" + hast-util-heading-rank: "npm:^3.0.0" + hast-util-to-string: "npm:^3.0.0" + unist-util-visit: "npm:^5.0.0" + checksum: 10/292074643f8462c70f498bc8bf18a8c959073b96efc249f61e69fa9e36eb81d9b91d62199a90217c604e1c3904e8ff0a75df70d67e41bead56de93afb725c2d0 + languageName: node + linkType: hard + +"request-progress@npm:^3.0.0": + version: 3.0.0 + resolution: "request-progress@npm:3.0.0" + dependencies: + throttleit: "npm:^1.0.0" + checksum: 10/c25b1c75fb0a0c3b38874abd7ebd58e320c55bc17a48e76772b26828d9e0f688741e144d31b678af9cf447cba32ae153efad05f8a2db225eb07135a613d3162b + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: 10/a72468e2589270d91f06c7d36ec97a88db53ae5d6fe3787fadc943f0b0276b10347f89b363b2a82285f650bdcc135ad4a257c61bdd4d00d6df1fa24875b0ddaf + languageName: node + linkType: hard + +"requireindex@npm:^1.1.0": + version: 1.2.0 + resolution: "requireindex@npm:1.2.0" + checksum: 10/266d1cb31f6cbc4b6cf2e898f5bbc45581f7919bcf61bba5c45d0adb69b722b9ff5a13727be3350cde4520d7cd37f39df45d58a29854baaa4552cd6b05ae4a1a + languageName: node + linkType: hard + +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: 10/878880ee78ccdce372784f62f52a272048e2d0827c29ae31e7f99da18b62a2b9463ea03a75f277352f4697c100183debb0532371ad515a2d49d4bfe596dd4c20 + languageName: node + linkType: hard + +"resolve-cwd@npm:^3.0.0": + version: 3.0.0 + resolution: "resolve-cwd@npm:3.0.0" + dependencies: + resolve-from: "npm:^5.0.0" + checksum: 10/546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81 + languageName: node + linkType: hard + +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: 10/91eb76ce83621eea7bbdd9b55121a5c1c4a39e54a9ce04a9ad4517f102f8b5131c2cf07622c738a6683991bf54f2ce178f5a42803ecbd527ddc5105f362cc9e3 + languageName: node + linkType: hard + +"resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 10/be18a5e4d76dd711778664829841cde690971d02b6cbae277735a09c1c28f407b99ef6ef3cd585a1e6546d4097b28df40ed32c4a287b9699dcf6d7f208495e23 + languageName: node + linkType: hard + +"resolve.exports@npm:^2.0.0": + version: 2.0.2 + resolution: "resolve.exports@npm:2.0.2" + checksum: 10/f1cc0b6680f9a7e0345d783e0547f2a5110d8336b3c2a4227231dd007271ffd331fd722df934f017af90bae0373920ca0d4005da6f76cb3176c8ae426370f893 + languageName: node + linkType: hard + +"resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.8": + version: 1.22.8 + resolution: "resolve@npm:1.22.8" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/c473506ee01eb45cbcfefb68652ae5759e092e6b0fb64547feadf9736a6394f258fbc6f88e00c5ca36d5477fbb65388b272432a3600fa223062e54333c156753 + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin": + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/f345cd37f56a2c0275e3fe062517c650bb673815d885e7507566df589375d165bbbf4bdb6aa95600a9bc55f4744b81f452b5a63f95b9f10a72787dba3c90890a + languageName: node + linkType: hard + +"restore-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "restore-cursor@npm:3.1.0" + dependencies: + onetime: "npm:^5.1.0" + signal-exit: "npm:^3.0.2" + checksum: 10/f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 10/1f914879f97e7ee931ad05fe3afa629bd55270fc6cf1c1e589b6a99fab96d15daad0fa1a52a00c729ec0078045fe3e399bd4fd0c93bcc906957bdc17f89cb8e6 + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: 10/14222c9e1d3f9ae01480c50d96057228a8524706db79cdeb5a2ce5bb7070dd9f409a6f84a02cbef8cdc80d39aef86f2dd03d155188a1300c599b05437dcd2ffb + languageName: node + linkType: hard + +"rfdc@npm:^1.3.0": + version: 1.4.1 + resolution: "rfdc@npm:1.4.1" + checksum: 10/2f3d11d3d8929b4bfeefc9acb03aae90f971401de0add5ae6c5e38fec14f0405e6a4aad8fdb76344bfdd20c5193110e3750cbbd28ba86d73729d222b6cf4a729 + languageName: node + linkType: hard + +"rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: "npm:^7.1.3" + bin: + rimraf: bin.js + checksum: 10/063ffaccaaaca2cfd0ef3beafb12d6a03dd7ff1260d752d62a6077b5dfff6ae81bea571f655bb6b589d366930ec1bdd285d40d560c0dae9b12f125e54eb743d5 + languageName: node + linkType: hard + +"rimraf@npm:~2.6.2": + version: 2.6.3 + resolution: "rimraf@npm:2.6.3" + dependencies: + glob: "npm:^7.1.3" + bin: + rimraf: ./bin.js + checksum: 10/756419f2fa99aa119c46a9fc03e09d84ecf5421a80a72d1944c5088c9e4671e77128527a900a313ed9d3fdbdd37e2ae05486cd7e9116d5812d8c31f2399d7c86 + languageName: node + linkType: hard + +"rollup@npm:^4.13.0": + version: 4.20.0 + resolution: "rollup@npm:4.20.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.20.0" + "@rollup/rollup-android-arm64": "npm:4.20.0" + "@rollup/rollup-darwin-arm64": "npm:4.20.0" + "@rollup/rollup-darwin-x64": "npm:4.20.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.20.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.20.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.20.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.20.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.20.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.20.0" + "@rollup/rollup-linux-x64-musl": "npm:4.20.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.20.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.20.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.20.0" + "@types/estree": "npm:1.0.5" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10/448bd835715aa0f78c6888314e31fb92f1b83325ef0ff861a5a322c2bc87d200b2b6c4acb9223fb669c27ae0c4b071003b6877eec1d3411174615a4057db8946 + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: "npm:^1.2.2" + checksum: 10/cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d + languageName: node + linkType: hard + +"rxjs@npm:^7.5.1": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10/b10cac1a5258f885e9dd1b70d23c34daeb21b61222ee735d2ec40a8685bdca40429000703a44f0e638c27a684ac139e1c37e835d2a0dc16f6fc061a138ae3abb + languageName: node + linkType: hard + +"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 10/32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10/7eaf7a0cf37cc27b42fb3ef6a9b1df6e93a1c6d98c6c6702b02fe262d5fcbd89db63320793b99b21cb5348097d0a53de81bd5f4e8b86e20cc9412e3f1cfb4e83 + languageName: node + linkType: hard + +"saxes@npm:^6.0.0": + version: 6.0.0 + resolution: "saxes@npm:6.0.0" + dependencies: + xmlchars: "npm:^2.2.0" + checksum: 10/97b50daf6ca3a153e89842efa18a862e446248296622b7473c169c84c823ee8a16e4a43bac2f73f11fc8cb9168c73fbb0d73340f26552bac17970e9052367aa9 + languageName: node + linkType: hard + +"scheduler@npm:^0.23.2": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10/e8d68b89d18d5b028223edf090092846868a765a591944760942b77ea1f69b17235f7e956696efbb62c8130ab90af7e0949bfb8eba7896335507317236966bc9 + languageName: node + linkType: hard + +"semver@npm:^5.6.0": + version: 5.7.2 + resolution: "semver@npm:5.7.2" + bin: + semver: bin/semver + checksum: 10/fca14418a174d4b4ef1fecb32c5941e3412d52a4d3d85165924ce3a47fbc7073372c26faf7484ceb4bbc2bde25880c6b97e492473dc7e9708fdfb1c6a02d546e + languageName: node + linkType: hard + +"semver@npm:^6.0.0, semver@npm:^6.3.0, semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: 10/1ef3a85bd02a760c6ef76a45b8c1ce18226de40831e02a00bad78485390b98b6ccaa31046245fc63bba4a47a6a592b6c7eedc65cc47126e60489f9cc1ce3ed7e + languageName: node + linkType: hard + +"semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4": + version: 7.6.3 + resolution: "semver@npm:7.6.3" + bin: + semver: bin/semver.js + checksum: 10/36b1fbe1a2b6f873559cd57b238f1094a053dbfd997ceeb8757d79d1d2089c56d1321b9f1069ce263dc64cfa922fa1d2ad566b39426fe1ac6c723c1487589e10 + languageName: node + linkType: hard + +"send@npm:0.18.0": + version: 0.18.0 + resolution: "send@npm:0.18.0" + dependencies: + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + encodeurl: "npm:~1.0.2" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + fresh: "npm:0.5.2" + http-errors: "npm:2.0.0" + mime: "npm:1.6.0" + ms: "npm:2.1.3" + on-finished: "npm:2.4.1" + range-parser: "npm:~1.2.1" + statuses: "npm:2.0.1" + checksum: 10/ec66c0ad109680ad8141d507677cfd8b4e40b9559de23191871803ed241718e99026faa46c398dcfb9250676076573bd6bfe5d0ec347f88f4b7b8533d1d391cb + languageName: node + linkType: hard + +"serve-static@npm:1.15.0": + version: 1.15.0 + resolution: "serve-static@npm:1.15.0" + dependencies: + encodeurl: "npm:~1.0.2" + escape-html: "npm:~1.0.3" + parseurl: "npm:~1.3.3" + send: "npm:0.18.0" + checksum: 10/699b2d4c29807a51d9b5e0f24955346911437aebb0178b3c4833ad30d3eca93385ff9927254f5c16da345903cad39d9cd4a532198c95a5129cc4ed43911b15a4 + languageName: node + linkType: hard + +"set-function-length@npm:^1.2.1": + 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.1": + 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 + +"setprototypeof@npm:1.2.0": + version: 1.2.0 + resolution: "setprototypeof@npm:1.2.0" + checksum: 10/fde1630422502fbbc19e6844346778f99d449986b2f9cdcceb8326730d2f3d9964dbcb03c02aaadaefffecd0f2c063315ebea8b3ad895914bf1afc1747fc172e + languageName: node + linkType: hard + +"shallow-clone@npm:^3.0.0": + version: 3.0.1 + resolution: "shallow-clone@npm:3.0.1" + dependencies: + kind-of: "npm:^6.0.2" + checksum: 10/e066bd540cfec5e1b0f78134853e0d892d1c8945fb9a926a579946052e7cb0c70ca4fc34f875a8083aa7910d751805d36ae64af250a6de6f3d28f9fa7be6c21b + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: "npm:^3.0.0" + checksum: 10/6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10/1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + languageName: node + linkType: hard + +"side-channel@npm:^1.0.4": + version: 1.0.6 + resolution: "side-channel@npm:1.0.6" + dependencies: + call-bind: "npm:^1.0.7" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.4" + object-inspect: "npm:^1.13.1" + checksum: 10/eb10944f38cebad8ad643dd02657592fa41273ce15b8bfa928d3291aff2d30c20ff777cfe908f76ccc4551ace2d1245822fdc576657cce40e9066c638ca8fa4d + 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" + checksum: 10/a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 10/c9fa63bbbd7431066174a48ba2dd9986dfd930c3a8b59de9c29d7b6854ec1c12a80d15310869ea5166d413b99f041bfa3dd80a7947bcd44ea8e6eb3ffeabfa1f + languageName: node + linkType: hard + +"sisteransi@npm:^1.0.5": + version: 1.0.5 + resolution: "sisteransi@npm:1.0.5" + checksum: 10/aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 + languageName: node + linkType: hard + +"slash@npm:^3.0.0": + version: 3.0.0 + resolution: "slash@npm:3.0.0" + checksum: 10/94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c + languageName: node + linkType: hard + +"slash@npm:^5.1.0": + version: 5.1.0 + resolution: "slash@npm:5.1.0" + checksum: 10/2c41ec6fb1414cd9bba0fa6b1dd00e8be739e3fe85d079c69d4b09ca5f2f86eafd18d9ce611c0c0f686428638a36c272a6ac14799146a8295f259c10cc45cde4 + languageName: node + linkType: hard + +"slice-ansi@npm:^3.0.0": + version: 3.0.0 + resolution: "slice-ansi@npm:3.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + astral-regex: "npm:^2.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + checksum: 10/5ec6d022d12e016347e9e3e98a7eb2a592213a43a65f1b61b74d2c78288da0aded781f665807a9f3876b9daa9ad94f64f77d7633a0458876c3a4fdc4eb223f24 + languageName: node + linkType: hard + +"slice-ansi@npm:^4.0.0": + version: 4.0.0 + resolution: "slice-ansi@npm:4.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + astral-regex: "npm:^2.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + checksum: 10/4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756 + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: 10/927484aa0b1640fd9473cee3e0a0bcad6fce93fd7bbc18bac9ad0c33686f5d2e2c422fba24b5899c184524af01e11dd2bd051c2bf2b07e47aff8ca72cbfc60d2 + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.4 + resolution: "socks-proxy-agent@npm:8.0.4" + dependencies: + agent-base: "npm:^7.1.1" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 10/c8e7c2b398338b49a0a0f4d2bae5c0602aeeca6b478b99415927b6c5db349ca258448f2c87c6958ebf83eea17d42cbc5d1af0bfecb276cac10b9658b0f07f7d7 + languageName: node + linkType: hard + +"socks@npm:^2.8.3": + version: 2.8.3 + resolution: "socks@npm:2.8.3" + dependencies: + ip-address: "npm:^9.0.5" + smart-buffer: "npm:^4.2.0" + checksum: 10/ffcb622c22481dfcd7589aae71fbfd71ca34334064d181df64bf8b7feaeee19706aba4cffd1de35cc7bbaeeaa0af96be2d7f40fcbc7bc0ab69533a7ae9ffc4fb + languageName: node + linkType: hard + +"source-map-js@npm:^1.2.0": + version: 1.2.0 + resolution: "source-map-js@npm:1.2.0" + checksum: 10/74f331cfd2d121c50790c8dd6d3c9de6be21926de80583b23b37029b0f37aefc3e019fa91f9a10a5e120c08135297e1ecf312d561459c45908cb1e0e365f49e5 + languageName: node + linkType: hard + +"source-map-support@npm:0.5.13": + version: 0.5.13 + resolution: "source-map-support@npm:0.5.13" + dependencies: + buffer-from: "npm:^1.0.0" + source-map: "npm:^0.6.0" + checksum: 10/d1514a922ac9c7e4786037eeff6c3322f461cd25da34bb9fefb15387b3490531774e6e31d95ab6d5b84a3e139af9c3a570ccaee6b47bd7ea262691ed3a8bc34e + languageName: node + linkType: hard + +"source-map-support@npm:^0.5.16": + version: 0.5.21 + resolution: "source-map-support@npm:0.5.21" + dependencies: + buffer-from: "npm:^1.0.0" + source-map: "npm:^0.6.0" + checksum: 10/8317e12d84019b31e34b86d483dd41d6f832f389f7417faf8fc5c75a66a12d9686e47f589a0554a868b8482f037e23df9d040d29387eb16fa14cb85f091ba207 + languageName: node + linkType: hard + +"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 10/59ef7462f1c29d502b3057e822cdbdae0b0e565302c4dd1a95e11e793d8d9d62006cdc10e0fd99163ca33ff2071360cf50ee13f90440806e7ed57d81cba2f7ff + languageName: node + linkType: hard + +"space-separated-tokens@npm:^2.0.0": + version: 2.0.2 + resolution: "space-separated-tokens@npm:2.0.2" + checksum: 10/202e97d7ca1ba0758a0aa4fe226ff98142073bcceeff2da3aad037968878552c3bbce3b3231970025375bbba5aee00c5b8206eda408da837ab2dc9c0f26be990 + languageName: node + linkType: hard + +"sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: 10/e7587128c423f7e43cc625fe2f87e6affdf5ca51c1cc468e910d8aaca46bb44a7fbcfa552f787b1d3987f7043aeb4527d1b99559e6621e01b42b3f45e5a24cbb + languageName: node + linkType: hard + +"sprintf-js@npm:~1.0.2": + version: 1.0.3 + resolution: "sprintf-js@npm:1.0.3" + checksum: 10/c34828732ab8509c2741e5fd1af6b767c3daf2c642f267788f933a65b1614943c282e74c4284f4fa749c264b18ee016a0d37a3e5b73aee446da46277d3a85daa + languageName: node + linkType: hard + +"sshpk@npm:^1.14.1": + version: 1.18.0 + resolution: "sshpk@npm:1.18.0" + dependencies: + asn1: "npm:~0.2.3" + assert-plus: "npm:^1.0.0" + bcrypt-pbkdf: "npm:^1.0.0" + dashdash: "npm:^1.12.0" + ecc-jsbn: "npm:~0.1.1" + getpass: "npm:^0.1.1" + jsbn: "npm:~0.1.0" + safer-buffer: "npm:^2.0.2" + tweetnacl: "npm:~0.14.0" + bin: + sshpk-conv: bin/sshpk-conv + sshpk-sign: bin/sshpk-sign + sshpk-verify: bin/sshpk-verify + checksum: 10/858339d43e3c6b6a848772a66f69442ce74f1a37655d9f35ba9d1f85329499ff0000af9f8ab83dbb39ad24c0c370edabe0be1e39863f70c6cded9924b8458c34 + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.6 + resolution: "ssri@npm:10.0.6" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10/f92c1b3cc9bfd0a925417412d07d999935917bc87049f43ebec41074661d64cf720315661844106a77da9f8204b6d55ae29f9514e673083cae39464343af2a8b + languageName: node + linkType: hard + +"stack-utils@npm:^2.0.3": + version: 2.0.6 + resolution: "stack-utils@npm:2.0.6" + dependencies: + escape-string-regexp: "npm:^2.0.0" + checksum: 10/cdc988acbc99075b4b036ac6014e5f1e9afa7e564482b687da6384eee6a1909d7eaffde85b0a17ffbe186c5247faf6c2b7544e802109f63b72c7be69b13151bb + languageName: node + linkType: hard + +"statuses@npm:2.0.1": + version: 2.0.1 + resolution: "statuses@npm:2.0.1" + checksum: 10/18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb + languageName: node + linkType: hard + +"stop-iteration-iterator@npm:^1.0.0": + version: 1.0.0 + resolution: "stop-iteration-iterator@npm:1.0.0" + dependencies: + internal-slot: "npm:^1.0.4" + checksum: 10/2a23a36f4f6bfa63f46ae2d53a3f80fe8276110b95a55345d8ed3d92125413494033bc8697eb774e8f7aeb5725f70e3d69753caa2ecacdac6258c16fa8aa8b0f + languageName: node + linkType: hard + +"storybook@portal:../../../code/lib/cli::locator=portable-stories-react%40workspace%3A.": + version: 0.0.0-use.local + resolution: "storybook@portal:../../../code/lib/cli::locator=portable-stories-react%40workspace%3A." + dependencies: + "@babel/core": "npm:^7.24.4" + "@babel/types": "npm:^7.24.0" + "@storybook/codemod": "workspace:*" + "@storybook/core": "workspace:*" + "@types/semver": "npm:^7.3.4" + "@yarnpkg/fslib": "npm:2.10.3" + "@yarnpkg/libzip": "npm:2.3.0" + chalk: "npm:^4.1.0" + commander: "npm:^6.2.1" + cross-spawn: "npm:^7.0.3" + detect-indent: "npm:^6.1.0" + envinfo: "npm:^7.7.3" + execa: "npm:^5.0.0" + fd-package-json: "npm:^1.2.0" + find-up: "npm:^5.0.0" + fs-extra: "npm:^11.1.0" + giget: "npm:^1.0.0" + globby: "npm:^14.0.1" + jscodeshift: "npm:^0.15.1" + leven: "npm:^3.1.0" + ora: "npm:^5.4.1" + prettier: "npm:^3.1.1" + prompts: "npm:^2.4.0" + semver: "npm:^7.3.7" + strip-json-comments: "npm:^3.0.1" + tempy: "npm:^3.1.0" + tiny-invariant: "npm:^1.3.1" + ts-dedent: "npm:^2.0.0" + bin: + getstorybook: ./bin/index.cjs + sb: ./bin/index.cjs + storybook: ./bin/index.cjs + languageName: node + linkType: soft + +"string-length@npm:^4.0.1": + version: 4.0.2 + resolution: "string-length@npm:4.0.2" + dependencies: + char-regex: "npm:^1.0.2" + strip-ansi: "npm:^6.0.0" + checksum: 10/ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505 + 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": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10/e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: 10/7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: "npm:~5.2.0" + checksum: 10/54d23f4a6acae0e93f999a585e673be9e561b65cd4cca37714af1e893ab8cd8dfa52a9e4f58f48f87b4a44918d3a9254326cb80ed194bf2e4c226e2b21767e56 + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10/ae3b5436d34fadeb6096367626ce987057713c566e1e7768818797e00ac5d62023d0f198c4e681eae9e20701721980b26a64a8f5b91238869592a9c6800719a2 + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: "npm:^6.0.1" + checksum: 10/475f53e9c44375d6e72807284024ac5d668ee1d06010740dec0b9744f2ddf47de8d7151f80e5f6190fc8f384e802fdf9504b76a7e9020c9faee7103623338be2 + languageName: node + linkType: hard + +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 10/8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b + languageName: node + linkType: hard + +"strip-bom@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-bom@npm:4.0.0" + checksum: 10/9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 + languageName: node + linkType: hard + +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 10/69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 + languageName: node + linkType: hard + +"strip-final-newline@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-final-newline@npm:3.0.0" + checksum: 10/23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 + languageName: node + linkType: hard + +"strip-indent@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-indent@npm:3.0.0" + dependencies: + min-indent: "npm:^1.0.0" + checksum: 10/18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530 + languageName: node + linkType: hard + +"strip-indent@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-indent@npm:4.0.0" + dependencies: + min-indent: "npm:^1.0.1" + checksum: 10/06cbcd93da721c46bc13caeb1c00af93a9b18146a1c95927672d2decab6a25ad83662772417cea9317a2507fb143253ecc23c4415b64f5828cef9b638a744598 + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.0.1, strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 10/492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: "npm:^3.0.0" + checksum: 10/5f505c6fa3c6e05873b43af096ddeb22159831597649881aeb8572d6fe3b81e798cc10840d0c9735e0026b250368851b7f77b65e84f4e4daa820a4f69947f55b + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10/c8bb7afd564e3b26b50ca6ee47572c217526a1389fe018d00345856d4a9b08ffbd61fadaf283a87368d94c3dcdb8f5ffe2650a5a65863e21ad2730ca0f05210a + languageName: node + linkType: hard + +"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10/157b534df88e39c5518c5e78c35580c1eca848d7dbaf31bbe06cdfc048e22c7ff1a9d046ae17b25691128f631a51d9ec373c1b740c12ae4f0de6e292037e4282 + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 10/a9dc19ae2220c952bd2231d08ddeecb1b0328b61e72071ff4000c8384e145cc07c1c0bdb3b5a1cb06e186a7b2790f1dee793418b332f6ddf320de25d9125be7e + languageName: node + linkType: hard + +"symbol-tree@npm:^3.2.4": + version: 3.2.4 + resolution: "symbol-tree@npm:3.2.4" + checksum: 10/c09a00aadf279d47d0c5c46ca3b6b2fbaeb45f0a184976d599637d412d3a70bbdc043ff33effe1206dea0e36e0ad226cb957112e7ce9a4bf2daedf7fa4f85c53 + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.2.0, tar@npm:^6.2.1": + version: 6.2.1 + resolution: "tar@npm:6.2.1" + dependencies: + chownr: "npm:^2.0.0" + fs-minipass: "npm:^2.0.0" + minipass: "npm:^5.0.0" + minizlib: "npm:^2.1.1" + mkdirp: "npm:^1.0.3" + yallist: "npm:^4.0.0" + checksum: 10/bfbfbb2861888077fc1130b84029cdc2721efb93d1d1fb80f22a7ac3a98ec6f8972f29e564103bbebf5e97be67ebc356d37fa48dbc4960600a1eb7230fbd1ea0 + languageName: node + linkType: hard + +"telejson@npm:^7.2.0": + version: 7.2.0 + resolution: "telejson@npm:7.2.0" + dependencies: + memoizerific: "npm:^1.11.3" + checksum: 10/6e89b3d3c45b5a2aced9132f6a968fcdf758c00be4c3acb115d7d81e95c9e04083a7a4a9b43057fcf48b101156c1607a38f5491615956acb28d4d1f78a4bda20 + languageName: node + linkType: hard + +"temp-dir@npm:^3.0.0": + version: 3.0.0 + resolution: "temp-dir@npm:3.0.0" + checksum: 10/577211e995d1d584dd60f1469351d45e8a5b4524e4a9e42d3bdd12cfde1d0bb8f5898311bef24e02aaafb69514c1feb58c7b4c33dcec7129da3b0861a4ca935b + languageName: node + linkType: hard + +"temp@npm:^0.8.4": + version: 0.8.4 + resolution: "temp@npm:0.8.4" + dependencies: + rimraf: "npm:~2.6.2" + checksum: 10/0a7f76b49637415bc391c3f6e69377cc4c38afac95132b4158fa711e77b70b082fe56fd886f9d11ffab9d148df181a105a93c8b618fb72266eeaa5e5ddbfe37f + languageName: node + linkType: hard + +"tempy@npm:^3.1.0": + version: 3.1.0 + resolution: "tempy@npm:3.1.0" + dependencies: + is-stream: "npm:^3.0.0" + temp-dir: "npm:^3.0.0" + type-fest: "npm:^2.12.2" + unique-string: "npm:^3.0.0" + checksum: 10/f5540bc24dcd9d41ab0b31e9eed73c3ef825080f1c8b1e854e4b73059155c889f72f5f7c15e8cd462d59aa10c9726e423c81d6a365d614b538c6cc78a1209cc6 + languageName: node + linkType: hard + +"test-exclude@npm:^6.0.0": + version: 6.0.0 + resolution: "test-exclude@npm:6.0.0" + dependencies: + "@istanbuljs/schema": "npm:^0.1.2" + glob: "npm:^7.1.4" + minimatch: "npm:^3.0.4" + checksum: 10/8fccb2cb6c8fcb6bb4115394feb833f8b6cf4b9503ec2485c2c90febf435cac62abe882a0c5c51a37b9bbe70640cdd05acf5f45e486ac4583389f4b0855f69e5 + languageName: node + linkType: hard + +"text-table@npm:^0.2.0": + version: 0.2.0 + resolution: "text-table@npm:0.2.0" + checksum: 10/4383b5baaeffa9bb4cda2ac33a4aa2e6d1f8aaf811848bf73513a9b88fd76372dc461f6fd6d2e9cb5100f48b473be32c6f95bd983509b7d92bb4d92c10747452 + languageName: node + linkType: hard + +"throttleit@npm:^1.0.0": + version: 1.0.1 + resolution: "throttleit@npm:1.0.1" + checksum: 10/17f1aba82192d8b4f5be5f7e7955acd2db0b60557a2e041900bcb685c03fc0a42e44fae955741c2994ec314918c6c1c2c179bfe17b1fbb4a011c506e9ea7cc33 + languageName: node + linkType: hard + +"through@npm:^2.3.8": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: 10/5da78346f70139a7d213b65a0106f3c398d6bc5301f9248b5275f420abc2c4b1e77c2abc72d218dedc28c41efb2e7c312cb76a7730d04f9c2d37d247da3f4198 + languageName: node + linkType: hard + +"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 + languageName: node + linkType: hard + +"tinyrainbow@npm:^1.2.0": + version: 1.2.0 + resolution: "tinyrainbow@npm:1.2.0" + checksum: 10/2924444db6804355e5ba2b6e586c7f77329d93abdd7257a069a0f4530dff9f16de484e80479094e3f39273462541b003a65ee3a6afc2d12555aa745132deba5d + languageName: node + linkType: hard + +"tinyspy@npm:^3.0.0": + version: 3.0.0 + resolution: "tinyspy@npm:3.0.0" + checksum: 10/b5b686acff2b88de60ff8ecf89a2042320406aaeee2fba1828a7ea8a925fad3ed9f5e4d7a068154a9134473c472aa03da8ca92ee994bc57a741c5ede5fa7de4d + languageName: node + linkType: hard + +"tmp@npm:~0.2.3": + version: 0.2.3 + resolution: "tmp@npm:0.2.3" + checksum: 10/7b13696787f159c9754793a83aa79a24f1522d47b87462ddb57c18ee93ff26c74cbb2b8d9138f571d2e0e765c728fb2739863a672b280528512c6d83d511c6fa + languageName: node + linkType: hard + +"tmpl@npm:1.0.5": + version: 1.0.5 + resolution: "tmpl@npm:1.0.5" + checksum: 10/cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873 + languageName: node + linkType: hard + +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: 10/be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: "npm:^7.0.0" + checksum: 10/10dda13571e1f5ad37546827e9b6d4252d2e0bc176c24a101252153ef435d83696e2557fe128c4678e4e78f5f01e83711c703eef9814eb12dab028580d45980a + languageName: node + linkType: hard + +"toidentifier@npm:1.0.1": + version: 1.0.1 + resolution: "toidentifier@npm:1.0.1" + checksum: 10/952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 + languageName: node + linkType: hard + +"tough-cookie@npm:^4.1.2, tough-cookie@npm:^4.1.3": + version: 4.1.4 + resolution: "tough-cookie@npm:4.1.4" + dependencies: + psl: "npm:^1.1.33" + punycode: "npm:^2.1.1" + universalify: "npm:^0.2.0" + url-parse: "npm:^1.5.3" + checksum: 10/75663f4e2cd085f16af0b217e4218772adf0617fb3227171102618a54ce0187a164e505d61f773ed7d65988f8ff8a8f935d381f87da981752c1171b076b4afac + languageName: node + linkType: hard + +"tr46@npm:^3.0.0": + version: 3.0.0 + resolution: "tr46@npm:3.0.0" + dependencies: + punycode: "npm:^2.1.1" + checksum: 10/b09a15886cbfaee419a3469081223489051ce9dca3374dd9500d2378adedbee84a3c73f83bfdd6bb13d53657753fc0d4e20a46bfcd3f1b9057ef528426ad7ce4 + languageName: node + linkType: hard + +"ts-api-utils@npm:^1.0.1": + version: 1.3.0 + resolution: "ts-api-utils@npm:1.3.0" + peerDependencies: + typescript: ">=4.2.0" + checksum: 10/3ee44faa24410cd649b5c864e068d438aa437ef64e9e4a66a41646a6d3024d3097a695eeb3fb26ee364705d3cb9653a65756d009e6a53badb6066a5f447bf7ed + languageName: node + linkType: hard + +"ts-dedent@npm:^2.0.0, ts-dedent@npm:^2.2.0": + version: 2.2.0 + resolution: "ts-dedent@npm:2.2.0" + checksum: 10/93ed8f7878b6d5ed3c08d99b740010eede6bccfe64bce61c5a4da06a2c17d6ddbb80a8c49c2d15251de7594a4f93ffa21dd10e7be75ef66a4dc9951b4a94e2af + languageName: node + linkType: hard + +"tsconfig-paths@npm:^4.2.0": + version: 4.2.0 + resolution: "tsconfig-paths@npm:4.2.0" + dependencies: + json5: "npm:^2.2.2" + minimist: "npm:^1.2.6" + strip-bom: "npm:^3.0.0" + checksum: 10/5e55cc2fb6b800eb72011522e10edefccb45b1f9af055681a51354c9b597d1390c6fa9cc356b8c7529f195ac8a90a78190d563159f3a1eed10e01bbd4d01a8ab + languageName: node + linkType: hard + +"tslib@npm:^1.13.0, tslib@npm:^1.8.1": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: 10/7dbf34e6f55c6492637adb81b555af5e3b4f9cc6b998fb440dac82d3b42bdc91560a35a5fb75e20e24a076c651438234da6743d139e4feabf0783f3cdfe1dddb + languageName: node + linkType: hard + +"tslib@npm:^2.0.1, tslib@npm:^2.1.0": + version: 2.6.3 + resolution: "tslib@npm:2.6.3" + checksum: 10/52109bb681f8133a2e58142f11a50e05476de4f075ca906d13b596ae5f7f12d30c482feb0bff167ae01cfc84c5803e575a307d47938999246f5a49d174fc558c + languageName: node + linkType: hard + +"tsutils@npm:^3.21.0": + version: 3.21.0 + resolution: "tsutils@npm:3.21.0" + dependencies: + tslib: "npm:^1.8.1" + peerDependencies: + typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + checksum: 10/ea036bec1dd024e309939ffd49fda7a351c0e87a1b8eb049570dd119d447250e2c56e0e6c00554e8205760e7417793fdebff752a46e573fbe07d4f375502a5b2 + languageName: node + linkType: hard + +"tunnel-agent@npm:^0.6.0": + version: 0.6.0 + resolution: "tunnel-agent@npm:0.6.0" + dependencies: + safe-buffer: "npm:^5.0.1" + checksum: 10/7f0d9ed5c22404072b2ae8edc45c071772affd2ed14a74f03b4e71b4dd1a14c3714d85aed64abcaaee5fec2efc79002ba81155c708f4df65821b444abb0cfade + languageName: node + linkType: hard + +"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0": + version: 0.14.5 + resolution: "tweetnacl@npm:0.14.5" + checksum: 10/04ee27901cde46c1c0a64b9584e04c96c5fe45b38c0d74930710751ea991408b405747d01dfae72f80fc158137018aea94f9c38c651cb9c318f0861a310c3679 + languageName: node + linkType: hard + +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" + dependencies: + prelude-ls: "npm:^1.2.1" + checksum: 10/14687776479d048e3c1dbfe58a2409e00367810d6960c0f619b33793271ff2a27f81b52461f14a162f1f89a9b1d8da1b237fc7c99b0e1fdcec28ec63a86b1fec + languageName: node + linkType: hard + +"type-detect@npm:4.0.8": + version: 4.0.8 + resolution: "type-detect@npm:4.0.8" + checksum: 10/5179e3b8ebc51fce1b13efb75fdea4595484433f9683bbc2dca6d99789dba4e602ab7922d2656f2ce8383987467f7770131d4a7f06a26287db0615d2f4c4ce7d + languageName: node + linkType: hard + +"type-fest@npm:^0.20.2": + version: 0.20.2 + resolution: "type-fest@npm:0.20.2" + checksum: 10/8907e16284b2d6cfa4f4817e93520121941baba36b39219ea36acfe64c86b9dbc10c9941af450bd60832c8f43464974d51c0957f9858bc66b952b66b6914cbb9 + languageName: node + linkType: hard + +"type-fest@npm:^0.21.3": + version: 0.21.3 + resolution: "type-fest@npm:0.21.3" + checksum: 10/f4254070d9c3d83a6e573bcb95173008d73474ceadbbf620dd32d273940ca18734dff39c2b2480282df9afe5d1675ebed5499a00d791758748ea81f61a38961f + languageName: node + linkType: hard + +"type-fest@npm:^1.0.1": + version: 1.4.0 + resolution: "type-fest@npm:1.4.0" + checksum: 10/89875c247564601c2650bacad5ff80b859007fbdb6c9e43713ae3ffa3f584552eea60f33711dd762e16496a1ab4debd409822627be14097d9a17e39c49db591a + languageName: node + linkType: hard + +"type-fest@npm:^2.12.2, type-fest@npm:^2.19.0, type-fest@npm:~2.19": + version: 2.19.0 + resolution: "type-fest@npm:2.19.0" + checksum: 10/7bf9e8fdf34f92c8bb364c0af14ca875fac7e0183f2985498b77be129dc1b3b1ad0a6b3281580f19e48c6105c037fb966ad9934520c69c6434d17fd0af4eed78 + languageName: node + linkType: hard + +"type-is@npm:~1.6.18": + version: 1.6.18 + resolution: "type-is@npm:1.6.18" + dependencies: + media-typer: "npm:0.3.0" + mime-types: "npm:~2.1.24" + checksum: 10/0bd9eeae5efd27d98fd63519f999908c009e148039d8e7179a074f105362d4fcc214c38b24f6cda79c87e563cbd12083a4691381ed28559220d4a10c2047bed4 + languageName: node + linkType: hard + +"typescript@npm:^5.2.2": + version: 5.5.4 + resolution: "typescript@npm:5.5.4" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/1689ccafef894825481fc3d856b4834ba3cc185a9c2878f3c76a9a1ef81af04194849840f3c69e7961e2312771471bb3b460ca92561e1d87599b26c37d0ffb6f + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A^5.2.2#optional!builtin": + version: 5.5.4 + resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin::version=5.5.4&hash=b45daf" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/2c065f0ef81855eac25c9b658a3c9da65ffc005260c12854c2286f40f3667e1b1ecf8bdbdd37b59aa0397920378ce7900bff8cb32e0f1c7af6fd86efc676718c + languageName: node + linkType: hard + +"ufo@npm:^1.5.3": + version: 1.5.4 + resolution: "ufo@npm:1.5.4" + checksum: 10/a885ed421e656aea6ca64e9727b8118a9488715460b6f1a0f0427118adfe2f2830fe7c1d5bd9c5c754a332e6807516551cd663ea67ce9ed6a4e3edc739916335 + 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.13.0": + version: 6.13.0 + resolution: "undici-types@npm:6.13.0" + checksum: 10/da52e37cbc6da3a75da86fa08dd795ca8924430deb91005eb884b840e46e19013ccd4c1c289f70018e8cf0c338add24a500e7c3acfcd49b1ffb27ff9f91e38b9 + 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" + checksum: 10/39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45 + languageName: node + linkType: hard + +"unicode-match-property-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-match-property-ecmascript@npm:2.0.0" + dependencies: + unicode-canonical-property-names-ecmascript: "npm:^2.0.0" + unicode-property-aliases-ecmascript: "npm:^2.0.0" + checksum: 10/1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a + languageName: node + linkType: hard + +"unicode-match-property-value-ecmascript@npm:^2.1.0": + version: 2.1.0 + resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" + checksum: 10/06661bc8aba2a60c7733a7044f3e13085808939ad17924ffd4f5222a650f88009eb7c09481dc9c15cfc593d4ad99bd1cde8d54042733b335672591a81c52601c + languageName: node + linkType: hard + +"unicode-property-aliases-ecmascript@npm:^2.0.0": + version: 2.1.0 + resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" + checksum: 10/243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b + languageName: node + linkType: hard + +"unicorn-magic@npm:^0.1.0": + version: 0.1.0 + resolution: "unicorn-magic@npm:0.1.0" + checksum: 10/9b4d0e9809807823dc91d0920a4a4c0cff2de3ebc54ee87ac1ee9bc75eafd609b09d1f14495e0173aef26e01118706196b6ab06a75fe0841028b3983a8af313f + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: "npm:^4.0.0" + checksum: 10/8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10/40912a8963fc02fb8b600cf50197df4a275c602c60de4cac4f75879d3c48558cfac48de08a25cc10df8112161f7180b3bbb4d662aadb711568602f9eddee54f0 + 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 + +"unist-util-is@npm:^6.0.0": + version: 6.0.0 + resolution: "unist-util-is@npm:6.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + checksum: 10/edd6a93fb2255addf4b9eeb304c1da63c62179aef793169dd64ab955cf2f6814885fe25f95f8105893e3562dead348af535718d7a84333826e0491c04bf42511 + languageName: node + linkType: hard + +"unist-util-visit-parents@npm:^6.0.0": + version: 6.0.1 + resolution: "unist-util-visit-parents@npm:6.0.1" + dependencies: + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + checksum: 10/645b3cbc5e923bc692b1eb1a9ca17bffc5aabc25e6090ff3f1489bff8effd1890b28f7a09dc853cb6a7fa0da8581bfebc9b670a68b53c4c086cb9610dfd37701 + languageName: node + linkType: hard + +"unist-util-visit@npm:^5.0.0": + version: 5.0.0 + resolution: "unist-util-visit@npm:5.0.0" + dependencies: + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + unist-util-visit-parents: "npm:^6.0.0" + checksum: 10/f2bbde23641e9ade7640358c06ddeec0f38342322eb8e7819d9ee380b0f859d25d084dde22bf63db0280b3b2f36575f15aa1d6c23acf276c91c2493cf799e3b0 + languageName: node + linkType: hard + +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: 10/e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 + languageName: node + linkType: hard + +"universalify@npm:^2.0.0": + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: 10/ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 + languageName: node + linkType: hard + +"unpipe@npm:1.0.0, unpipe@npm:~1.0.0": + version: 1.0.0 + resolution: "unpipe@npm:1.0.0" + checksum: 10/4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 + languageName: node + linkType: hard + +"unplugin@npm:^1.3.1": + version: 1.12.0 + resolution: "unplugin@npm:1.12.0" + dependencies: + acorn: "npm:^8.12.1" + chokidar: "npm:^3.6.0" + webpack-sources: "npm:^3.2.3" + webpack-virtual-modules: "npm:^0.6.2" + checksum: 10/abbc3eeb714e767d51b932ea8007ad6ff3760c5236f3d8c727c30805d6b3f5a09b370ab9ebd5f13f6f95e4b3c990413bebc64d3b163bdd842421c54cc8d1c6f1 + 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.0": + version: 1.1.0 + resolution: "update-browserslist-db@npm:1.1.0" + dependencies: + escalade: "npm:^3.1.2" + picocolors: "npm:^1.0.1" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10/d70b9efeaf4601aadb1a4f6456a7a5d9118e0063d995866b8e0c5e0cf559482671dab6ce7b079f9536b06758a344fbd83f974b965211e1c6e8d1958540b0c24c + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: "npm:^2.1.0" + checksum: 10/b271ca7e3d46b7160222e3afa3e531505161c9a4e097febae9664e4b59912f4cbe94861361a4175edac3a03fee99d91e44b6a58c17a634bc5a664b19fc76fbcb + languageName: node + linkType: hard + +"url-parse@npm:^1.5.3": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: "npm:^2.1.1" + requires-port: "npm:^1.0.0" + checksum: 10/c9e96bc8c5b34e9f05ddfeffc12f6aadecbb0d971b3cc26015b58d5b44676a99f50d5aeb1e5c9e61fa4d49961ae3ab1ae997369ed44da51b2f5ac010d188e6ad + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 10/474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + languageName: node + linkType: hard + +"util@npm:^0.12.4": + version: 0.12.5 + resolution: "util@npm:0.12.5" + dependencies: + inherits: "npm:^2.0.3" + is-arguments: "npm:^1.0.4" + is-generator-function: "npm:^1.0.7" + is-typed-array: "npm:^1.1.3" + which-typed-array: "npm:^1.1.2" + checksum: 10/61a10de7753353dd4d744c917f74cdd7d21b8b46379c1e48e1c4fd8e83f8190e6bd9978fc4e5102ab6a10ebda6019d1b36572fa4a325e175ec8b789a121f6147 + languageName: node + linkType: hard + +"utils-merge@npm:1.0.1": + version: 1.0.1 + resolution: "utils-merge@npm:1.0.1" + checksum: 10/5d6949693d58cb2e636a84f3ee1c6e7b2f9c16cb1d42d0ecb386d8c025c69e327205aa1c69e2868cc06a01e5e20681fbba55a4e0ed0cce913d60334024eae798 + languageName: node + linkType: hard + +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 10/9a5f7aa1d6f56dd1e8d5f2478f855f25c645e64e26e347a98e98d95781d5ed20062d6cca2eecb58ba7c84bc3910be95c0451ef4161906abaab44f9cb68ffbdd1 + languageName: node + linkType: hard + +"uuid@npm:^9.0.0": + version: 9.0.1 + resolution: "uuid@npm:9.0.1" + bin: + uuid: dist/bin/uuid + checksum: 10/9d0b6adb72b736e36f2b1b53da0d559125ba3e39d913b6072f6f033e0c87835b414f0836b45bcfaf2bdf698f92297fea1c3cc19b0b258bc182c9c43cc0fab9f2 + languageName: node + linkType: hard + +"v8-to-istanbul@npm:^9.0.1": + version: 9.3.0 + resolution: "v8-to-istanbul@npm:9.3.0" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.12" + "@types/istanbul-lib-coverage": "npm:^2.0.1" + convert-source-map: "npm:^2.0.0" + checksum: 10/fb1d70f1176cb9dc46cabbb3fd5c52c8f3e8738b61877b6e7266029aed0870b04140e3f9f4550ac32aebcfe1d0f38b0bac57e1e8fb97d68fec82f2b416148166 + languageName: node + linkType: hard + +"vary@npm:~1.1.2": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: 10/31389debef15a480849b8331b220782230b9815a8e0dbb7b9a8369559aed2e9a7800cd904d4371ea74f4c3527db456dc8e7ac5befce5f0d289014dbdf47b2242 + languageName: node + linkType: hard + +"verror@npm:1.10.0": + version: 1.10.0 + resolution: "verror@npm:1.10.0" + dependencies: + assert-plus: "npm:^1.0.0" + core-util-is: "npm:1.0.2" + extsprintf: "npm:^1.2.0" + checksum: 10/da548149dd9c130a8a2587c9ee71ea30128d1526925707e2d01ed9c5c45c9e9f86733c66a328247cdd5f7c1516fb25b0f959ba754bfbe15072aa99ff96468a29 + languageName: node + linkType: hard + +"vite@npm:^5.0.12, vite@npm:^5.1.1": + version: 5.3.5 + resolution: "vite@npm:5.3.5" + dependencies: + esbuild: "npm:^0.21.3" + fsevents: "npm:~2.3.3" + postcss: "npm:^8.4.39" + rollup: "npm:^4.13.0" + peerDependencies: + "@types/node": ^18.0.0 || >=20.0.0 + less: "*" + lightningcss: ^1.21.0 + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 10/5672dde4a969349d9cf90a9e43029c8489dfff60fb04d6a10717d6224553cf12283a8cace633fa80b006df6037f72d08a459a38bf8ea66cb19075d60fe159482 + languageName: node + linkType: hard + +"w3c-xmlserializer@npm:^4.0.0": + version: 4.0.0 + resolution: "w3c-xmlserializer@npm:4.0.0" + dependencies: + xml-name-validator: "npm:^4.0.0" + checksum: 10/9a00c412b5496f4f040842c9520bc0aaec6e0c015d06412a91a723cd7d84ea605ab903965f546b4ecdb3eae267f5145ba08565222b1d6cb443ee488cda9a0aee + languageName: node + linkType: hard + +"walk-up-path@npm:^3.0.1": + version: 3.0.1 + resolution: "walk-up-path@npm:3.0.1" + checksum: 10/9ffca02fe30fb65f6db531260582988c5e766f4c739cf86a6109380a7f791236b5d0b92b1dce37a6f73e22dca6bc9d93bf3700413e16251b2bd6bbd1ca2be316 + languageName: node + linkType: hard + +"walker@npm:^1.0.8": + version: 1.0.8 + resolution: "walker@npm:1.0.8" + dependencies: + makeerror: "npm:1.0.12" + checksum: 10/ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c + languageName: node + linkType: hard + +"wcwidth@npm:^1.0.1": + version: 1.0.1 + resolution: "wcwidth@npm:1.0.1" + dependencies: + defaults: "npm:^1.0.3" + checksum: 10/182ebac8ca0b96845fae6ef44afd4619df6987fe5cf552fdee8396d3daa1fb9b8ec5c6c69855acb7b3c1231571393bd1f0a4cdc4028d421575348f64bb0a8817 + languageName: node + linkType: hard + +"webidl-conversions@npm:^7.0.0": + version: 7.0.0 + resolution: "webidl-conversions@npm:7.0.0" + checksum: 10/4c4f65472c010eddbe648c11b977d048dd96956a625f7f8b9d64e1b30c3c1f23ea1acfd654648426ce5c743c2108a5a757c0592f02902cf7367adb7d14e67721 + languageName: node + linkType: hard + +"webpack-sources@npm:^3.2.3": + version: 3.2.3 + resolution: "webpack-sources@npm:3.2.3" + checksum: 10/a661f41795d678b7526ae8a88cd1b3d8ce71a7d19b6503da8149b2e667fc7a12f9b899041c1665d39e38245ed3a59ab68de648ea31040c3829aa695a5a45211d + languageName: node + linkType: hard + +"webpack-virtual-modules@npm:^0.6.2": + version: 0.6.2 + resolution: "webpack-virtual-modules@npm:0.6.2" + checksum: 10/d9a0d035f7ec0c7f1055aaf88bfe48b7f96458043916a1b2926d9012fd61de3810a6b768e31a8cd4b3c84a9b6d55824361a9dd20aaf9f5ccfb6f017af216a178 + languageName: node + linkType: hard + +"whatwg-encoding@npm:^2.0.0": + version: 2.0.0 + resolution: "whatwg-encoding@npm:2.0.0" + dependencies: + iconv-lite: "npm:0.6.3" + checksum: 10/162d712d88fd134a4fe587e53302da812eb4215a1baa4c394dfd86eff31d0a079ff932c05233857997de07481093358d6e7587997358f49b8a580a777be22089 + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^3.0.0": + version: 3.0.0 + resolution: "whatwg-mimetype@npm:3.0.0" + checksum: 10/96f9f628c663c2ae05412c185ca81b3df54bcb921ab52fe9ebc0081c1720f25d770665401eb2338ab7f48c71568133845638e18a81ed52ab5d4dcef7d22b40ef + languageName: node + linkType: hard + +"whatwg-url@npm:^11.0.0": + version: 11.0.0 + resolution: "whatwg-url@npm:11.0.0" + dependencies: + tr46: "npm:^3.0.0" + webidl-conversions: "npm:^7.0.0" + checksum: 10/dfcd51c6f4bfb54685528fb10927f3fd3d7c809b5671beef4a8cdd7b1408a7abf3343a35bc71dab83a1424f1c1e92cc2700d7930d95d231df0fac361de0c7648 + languageName: node + linkType: hard + +"which-boxed-primitive@npm:^1.0.2": + version: 1.0.2 + resolution: "which-boxed-primitive@npm:1.0.2" + dependencies: + is-bigint: "npm:^1.0.1" + is-boolean-object: "npm:^1.1.0" + is-number-object: "npm:^1.0.4" + is-string: "npm:^1.0.5" + is-symbol: "npm:^1.0.3" + checksum: 10/9c7ca7855255f25ac47f4ce8b59c4cc33629e713fd7a165c9d77a2bb47bf3d9655a5664660c70337a3221cf96742f3589fae15a3a33639908d33e29aa2941efb + 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-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.2": + version: 1.1.15 + resolution: "which-typed-array@npm:1.1.15" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.2" + checksum: 10/c3b6a99beadc971baa53c3ee5b749f2b9bdfa3b3b9a70650dd8511a48b61d877288b498d424712e9991d16019633086bd8b5923369460d93463c5825fa36c448 + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10/4782f8a1d6b8fc12c65e968fea49f59752bf6302dc43036c3bf87da718a80710f61a062516e9764c70008b487929a73546125570acea95c5b5dcc8ac3052c70f + languageName: node + linkType: hard + +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: 10/f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 + languageName: node + linkType: hard + +"word-wrap@npm:^1.2.5": + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: 10/1ec6f6089f205f83037be10d0c4b34c9183b0b63fca0834a5b3cee55dd321429d73d40bb44c8fc8471b5203d6e8f8275717f49a8ff4b2b0ab41d7e1b563e0854 + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10/cebdaeca3a6880da410f75209e68cd05428580de5ad24535f22696d7d9cab134d1f8498599f344c3cf0fb37c1715807a183778d8c648d6cc0cb5ff2bb4236540 + languageName: node + linkType: hard + +"wrap-ansi@npm:^6.2.0": + version: 6.2.0 + resolution: "wrap-ansi@npm:6.2.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10/0d64f2d438e0b555e693b95aee7b2689a12c3be5ac458192a1ce28f542a6e9e59ddfecc37520910c2c88eb1f82a5411260566dba5064e8f9895e76e169e76187 + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 10/7b1e4b35e9bb2312d2ee9ee7dc95b8cb5f8b4b5a89f7dde5543fe66c1e3715663094defa50d75454ac900bd210f702d575f15f3f17fa9ec0291806d2578d1ddf + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 10/159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard + +"write-file-atomic@npm:^2.3.0": + version: 2.4.3 + resolution: "write-file-atomic@npm:2.4.3" + dependencies: + graceful-fs: "npm:^4.1.11" + imurmurhash: "npm:^0.1.4" + signal-exit: "npm:^3.0.2" + checksum: 10/15ce863dce07075d0decedd7c9094f4461e46139d28a758c53162f24c0791c16cd2e7a76baa5b47b1a851fbb51e16f2fab739afb156929b22628f3225437135c + languageName: node + linkType: hard + +"write-file-atomic@npm:^4.0.2": + version: 4.0.2 + resolution: "write-file-atomic@npm:4.0.2" + dependencies: + imurmurhash: "npm:^0.1.4" + signal-exit: "npm:^3.0.7" + checksum: 10/3be1f5508a46c190619d5386b1ac8f3af3dbe951ed0f7b0b4a0961eed6fc626bd84b50cf4be768dabc0a05b672f5d0c5ee7f42daa557b14415d18c3a13c7d246 + languageName: node + linkType: hard + +"ws@npm:^8.11.0, ws@npm:^8.2.3": + version: 8.18.0 + resolution: "ws@npm:8.18.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10/70dfe53f23ff4368d46e4c0b1d4ca734db2c4149c6f68bc62cb16fc21f753c47b35fcc6e582f3bdfba0eaeb1c488cddab3c2255755a5c3eecb251431e42b3ff6 + languageName: node + linkType: hard + +"xml-name-validator@npm:^4.0.0": + version: 4.0.0 + resolution: "xml-name-validator@npm:4.0.0" + checksum: 10/f9582a3f281f790344a471c207516e29e293c6041b2c20d84dd6e58832cd7c19796c47e108fd4fd4b164a5e72ad94f2268f8ace8231cde4a2c6428d6aa220f92 + languageName: node + linkType: hard + +"xmlchars@npm:^2.2.0": + version: 2.2.0 + resolution: "xmlchars@npm:2.2.0" + checksum: 10/4ad5924974efd004a47cce6acf5c0269aee0e62f9a805a426db3337af7bcbd331099df174b024ace4fb18971b8a56de386d2e73a1c4b020e3abd63a4a9b917f1 + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 10/5f1b5f95e3775de4514edbb142398a2c37849ccfaf04a015be5d75521e9629d3be29bd4432d23c57f37e5b61ade592fb0197022e9993f81a06a5afbdcda9346d + languageName: node + linkType: hard + +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 10/9af0a4329c3c6b779ac4736c69fae4190ac03029fa27c1aef4e6bcc92119b73dea6fe5db5fe881fb0ce2a0e9539a42cdf60c7c21eda04d1a0b8c082e38509efb + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 10/4cb02b42b8a93b5cf50caf5d8e9beb409400a8a4d85e83bb0685c1457e9ac0b7a00819e9f5991ac25ffabb56a78e2f017c1acc010b3a1babfe6de690ba531abd + languageName: node + linkType: hard + +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: 10/9dc2c217ea3bf8d858041252d43e074f7166b53f3d010a8c711275e09cd3d62a002969a39858b92bbda2a6a63a585c7127014534a560b9c69ed2d923d113406e + languageName: node + linkType: hard + +"yargs@npm:^17.3.1": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" + dependencies: + cliui: "npm:^8.0.1" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.3" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^21.1.1" + checksum: 10/abb3e37678d6e38ea85485ed86ebe0d1e3464c640d7d9069805ea0da12f69d5a32df8e5625e370f9c96dd1c2dc088ab2d0a4dd32af18222ef3c4224a19471576 + languageName: node + linkType: hard + +"yauzl@npm:^2.10.0": + version: 2.10.0 + resolution: "yauzl@npm:2.10.0" + dependencies: + buffer-crc32: "npm:~0.2.3" + fd-slicer: "npm:~1.1.0" + checksum: 10/1e4c311050dc0cf2ee3dbe8854fe0a6cde50e420b3e561a8d97042526b4cf7a0718d6c8d89e9e526a152f4a9cec55bcea9c3617264115f48bd6704cf12a04445 + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: 10/f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 + languageName: node + linkType: hard From 4c66a702151542fe7f827f00e6a3560a182e1bd3 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Mon, 5 Aug 2024 14:52:57 +0200 Subject: [PATCH 046/135] Fix dep issues --- code/core/package.json | 1 - code/lib/instrumenter/package.json | 2 +- code/package.json | 2 +- code/yarn.lock | 172 +++++++++++++++++++++-------- 4 files changed, 126 insertions(+), 51 deletions(-) diff --git a/code/core/package.json b/code/core/package.json index 0f84c7d2e674..ea7b349a65f9 100644 --- a/code/core/package.json +++ b/code/core/package.json @@ -309,7 +309,6 @@ "@types/react-transition-group": "^4", "@types/semver": "^7.3.4", "@types/ws": "^8", - "@vitest/utils": "^1.3.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", "@yarnpkg/fslib": "2.10.3", "@yarnpkg/libzip": "2.3.0", diff --git a/code/lib/instrumenter/package.json b/code/lib/instrumenter/package.json index 1cf6a12e37b8..0d073434ca7f 100644 --- a/code/lib/instrumenter/package.json +++ b/code/lib/instrumenter/package.json @@ -45,7 +45,7 @@ }, "dependencies": { "@storybook/global": "^5.0.0", - "@vitest/utils": "^1.3.1", + "@vitest/utils": "^2.0.5", "util": "^0.12.4" }, "devDependencies": { diff --git a/code/package.json b/code/package.json index f723068e51d5..a73103de28db 100644 --- a/code/package.json +++ b/code/package.json @@ -173,7 +173,7 @@ "@typescript-eslint/experimental-utils": "^5.62.0", "@typescript-eslint/parser": "^6.18.1", "@vitejs/plugin-react": "^3.0.1", - "@vitest/coverage-v8": "^1.2.2", + "@vitest/coverage-v8": "^2.0.5", "cross-env": "^7.0.3", "danger": "^12.3.3", "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0", diff --git a/code/yarn.lock b/code/yarn.lock index 9e69e11f5201..aca8504c518c 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -3635,7 +3635,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9": +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -5766,7 +5766,6 @@ __metadata: "@types/react-transition-group": "npm:^4" "@types/semver": "npm:^7.3.4" "@types/ws": "npm:^8" - "@vitest/utils": "npm:^1.3.1" "@yarnpkg/esbuild-plugin-pnp": "npm:^3.0.0-rc.10" "@yarnpkg/fslib": "npm:2.10.3" "@yarnpkg/libzip": "npm:2.3.0" @@ -6010,7 +6009,7 @@ __metadata: resolution: "@storybook/instrumenter@workspace:lib/instrumenter" dependencies: "@storybook/global": "npm:^5.0.0" - "@vitest/utils": "npm:^1.3.1" + "@vitest/utils": "npm:^2.0.5" typescript: "npm:^5.3.2" util: "npm:^0.12.4" peerDependencies: @@ -6542,7 +6541,7 @@ __metadata: "@typescript-eslint/experimental-utils": "npm:^5.62.0" "@typescript-eslint/parser": "npm:^6.18.1" "@vitejs/plugin-react": "npm:^3.0.1" - "@vitest/coverage-v8": "npm:^1.2.2" + "@vitest/coverage-v8": "npm:^2.0.5" cross-env: "npm:^7.0.3" danger: "npm:^12.3.3" esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0" @@ -8368,26 +8367,25 @@ __metadata: languageName: node linkType: hard -"@vitest/coverage-v8@npm:^1.2.2": - version: 1.2.2 - resolution: "@vitest/coverage-v8@npm:1.2.2" +"@vitest/coverage-v8@npm:^2.0.5": + version: 2.0.5 + resolution: "@vitest/coverage-v8@npm:2.0.5" dependencies: - "@ampproject/remapping": "npm:^2.2.1" + "@ampproject/remapping": "npm:^2.3.0" "@bcoe/v8-coverage": "npm:^0.2.3" - debug: "npm:^4.3.4" + debug: "npm:^4.3.5" istanbul-lib-coverage: "npm:^3.2.2" istanbul-lib-report: "npm:^3.0.1" - istanbul-lib-source-maps: "npm:^4.0.1" - istanbul-reports: "npm:^3.1.6" - magic-string: "npm:^0.30.5" - magicast: "npm:^0.3.3" - picocolors: "npm:^1.0.0" - std-env: "npm:^3.5.0" - test-exclude: "npm:^6.0.0" - v8-to-istanbul: "npm:^9.2.0" + istanbul-lib-source-maps: "npm:^5.0.6" + istanbul-reports: "npm:^3.1.7" + magic-string: "npm:^0.30.10" + magicast: "npm:^0.3.4" + std-env: "npm:^3.7.0" + test-exclude: "npm:^7.0.1" + tinyrainbow: "npm:^1.2.0" peerDependencies: - vitest: ^1.0.0 - checksum: 10c0/90e3cfdc7d36df86f95b4bc372851dbf0a9e78ca9d80177674ebb30cf5dff1e786660016aa7e369bd30ac7d1d3edc18d7ab0f6ccfdc9cdfe04ada0e0b5d5911a + vitest: 2.0.5 + checksum: 10c0/a95eef744d2a541f5d9d0287243cbcb596802c04e0250404947e36a669c477abe86607afb8d8ddb3d31bf12633b3ffa3d9a313e489e4ab7998b3c1620ad60e00 languageName: node linkType: hard @@ -8454,7 +8452,7 @@ __metadata: languageName: node linkType: hard -"@vitest/utils@npm:2.0.5": +"@vitest/utils@npm:2.0.5, @vitest/utils@npm:^2.0.5": version: 2.0.5 resolution: "@vitest/utils@npm:2.0.5" dependencies: @@ -8466,18 +8464,6 @@ __metadata: languageName: node linkType: hard -"@vitest/utils@npm:^1.3.1": - version: 1.6.0 - resolution: "@vitest/utils@npm:1.6.0" - dependencies: - diff-sequences: "npm:^29.6.3" - estree-walker: "npm:^3.0.3" - loupe: "npm:^2.3.7" - pretty-format: "npm:^29.7.0" - checksum: 10c0/8b0d19835866455eb0b02b31c5ca3d8ad45f41a24e4c7e1f064b480f6b2804dc895a70af332f14c11ed89581011b92b179718523f55f5b14787285a0321b1301 - languageName: node - linkType: hard - "@volar/language-core@npm:1.10.1, @volar/language-core@npm:~1.10.0": version: 1.10.1 resolution: "@volar/language-core@npm:1.10.1" @@ -15694,6 +15680,22 @@ __metadata: languageName: node linkType: hard +"glob@npm:^10.4.1": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e + languageName: node + linkType: hard + "glob@npm:^5.0.10": version: 5.0.15 resolution: "glob@npm:5.0.15" @@ -17600,18 +17602,18 @@ __metadata: languageName: node linkType: hard -"istanbul-lib-source-maps@npm:^4.0.1": - version: 4.0.1 - resolution: "istanbul-lib-source-maps@npm:4.0.1" +"istanbul-lib-source-maps@npm:^5.0.6": + version: 5.0.6 + resolution: "istanbul-lib-source-maps@npm:5.0.6" dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.23" debug: "npm:^4.1.1" istanbul-lib-coverage: "npm:^3.0.0" - source-map: "npm:^0.6.1" - checksum: 10c0/19e4cc405016f2c906dff271a76715b3e881fa9faeb3f09a86cb99b8512b3a5ed19cadfe0b54c17ca0e54c1142c9c6de9330d65506e35873994e06634eebeb66 + checksum: 10c0/ffe75d70b303a3621ee4671554f306e0831b16f39ab7f4ab52e54d356a5d33e534d97563e318f1333a6aae1d42f91ec49c76b6cd3f3fb378addcb5c81da0255f languageName: node linkType: hard -"istanbul-reports@npm:^3.1.4, istanbul-reports@npm:^3.1.6": +"istanbul-reports@npm:^3.1.4": version: 3.1.6 resolution: "istanbul-reports@npm:3.1.6" dependencies: @@ -17621,6 +17623,16 @@ __metadata: languageName: node linkType: hard +"istanbul-reports@npm:^3.1.7": + version: 3.1.7 + resolution: "istanbul-reports@npm:3.1.7" + dependencies: + html-escaper: "npm:^2.0.0" + istanbul-lib-report: "npm:^3.0.0" + checksum: 10c0/a379fadf9cf8dc5dfe25568115721d4a7eb82fbd50b005a6672aff9c6989b20cc9312d7865814e0859cd8df58cbf664482e1d3604be0afde1f7fc3ccc1394a51 + languageName: node + linkType: hard + "istextorbinary@npm:2.1.0": version: 2.1.0 resolution: "istextorbinary@npm:2.1.0" @@ -17658,6 +17670,19 @@ __metadata: languageName: node linkType: hard +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 10c0/6acc10d139eaefdbe04d2f679e6191b3abf073f111edf10b1de5302c97ec93fffeb2fdd8681ed17f16268aa9dd4f8c588ed9d1d3bffbbfa6e8bf897cbb3149b9 + languageName: node + linkType: hard + "jake@npm:^10.8.5": version: 10.8.7 resolution: "jake@npm:10.8.7" @@ -18698,7 +18723,7 @@ __metadata: languageName: node linkType: hard -"loupe@npm:^2.3.6, loupe@npm:^2.3.7": +"loupe@npm:^2.3.6": version: 2.3.7 resolution: "loupe@npm:2.3.7" dependencies: @@ -18742,6 +18767,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb + languageName: node + linkType: hard + "lru-cache@npm:^5.1.1": version: 5.1.1 resolution: "lru-cache@npm:5.1.1" @@ -18826,14 +18858,14 @@ __metadata: languageName: node linkType: hard -"magicast@npm:^0.3.3": - version: 0.3.3 - resolution: "magicast@npm:0.3.3" +"magicast@npm:^0.3.4": + version: 0.3.4 + resolution: "magicast@npm:0.3.4" dependencies: - "@babel/parser": "npm:^7.23.6" - "@babel/types": "npm:^7.23.6" - source-map-js: "npm:^1.0.2" - checksum: 10c0/2eeba19545ac4328433be817bd81fcfa8a517ec67599260541e13ce5ce18b27ff8830f1b87d54a1392d408d1b96e44938bf026920f0110edbdfecc96980919b3 + "@babel/parser": "npm:^7.24.4" + "@babel/types": "npm:^7.24.0" + source-map-js: "npm:^1.2.0" + checksum: 10c0/7ebaaac397b13c31ca05e6d9649296751d76749b945d10a0800107872119fbdf267acdb604571d25e38ec6fd7ab3568a951b6e76eaef1caba9eaa11778fd9783 languageName: node linkType: hard @@ -20261,6 +20293,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed + languageName: node + linkType: hard + "minimist@npm:^1.0.0, minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.8": version: 1.2.8 resolution: "minimist@npm:1.2.8" @@ -20376,6 +20417,13 @@ __metadata: languageName: node linkType: hard +"minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 + languageName: node + linkType: hard + "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": version: 2.1.2 resolution: "minizlib@npm:2.1.2" @@ -21563,6 +21611,13 @@ __metadata: languageName: node linkType: hard +"package-json-from-dist@npm:^1.0.0": + version: 1.0.0 + resolution: "package-json-from-dist@npm:1.0.0" + checksum: 10c0/e3ffaf6ac1040ab6082a658230c041ad14e72fabe99076a2081bb1d5d41210f11872403fc09082daf4387fc0baa6577f96c9c0e94c90c394fd57794b66aa4033 + languageName: node + linkType: hard + "pacote@npm:17.0.6": version: 17.0.6 resolution: "pacote@npm:17.0.6" @@ -21898,6 +21953,16 @@ __metadata: languageName: node linkType: hard +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" + dependencies: + lru-cache: "npm:^10.2.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10c0/32a13711a2a505616ae1cc1b5076801e453e7aae6ac40ab55b388bb91b9d0547a52f5aaceff710ea400205f18691120d4431e520afbe4266b836fadede15872d + languageName: node + linkType: hard + "path-to-regexp@npm:0.1.7": version: 0.1.7 resolution: "path-to-regexp@npm:0.1.7" @@ -25425,7 +25490,7 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^3.5.0, std-env@npm:^3.7.0": +"std-env@npm:^3.7.0": version: 3.7.0 resolution: "std-env@npm:3.7.0" checksum: 10c0/60edf2d130a4feb7002974af3d5a5f3343558d1ccf8d9b9934d225c638606884db4a20d2fe6440a09605bca282af6b042ae8070a10490c0800d69e82e478f41e @@ -26203,6 +26268,17 @@ __metadata: languageName: node linkType: hard +"test-exclude@npm:^7.0.1": + version: 7.0.1 + resolution: "test-exclude@npm:7.0.1" + dependencies: + "@istanbuljs/schema": "npm:^0.1.2" + glob: "npm:^10.4.1" + minimatch: "npm:^9.0.4" + checksum: 10c0/6d67b9af4336a2e12b26a68c83308c7863534c65f27ed4ff7068a56f5a58f7ac703e8fc80f698a19bb154fd8f705cdf7ec347d9512b2c522c737269507e7b263 + languageName: node + linkType: hard + "text-table@npm:^0.2.0": version: 0.2.0 resolution: "text-table@npm:0.2.0" @@ -27532,7 +27608,7 @@ __metadata: languageName: node linkType: hard -"v8-to-istanbul@npm:^9.0.0, v8-to-istanbul@npm:^9.2.0": +"v8-to-istanbul@npm:^9.0.0": version: 9.2.0 resolution: "v8-to-istanbul@npm:9.2.0" dependencies: From 49d2b494a9def7f78ca62f87e76fb061303d35c4 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Mon, 5 Aug 2024 16:27:47 +0200 Subject: [PATCH 047/135] Set coverage.all false for now --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index bd2d13b2af33..e0b1cc9abd6c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -238,7 +238,7 @@ jobs: name: Run tests command: | cd scripts - yarn test --coverage + yarn test --coverage --coverage.all=false - store_test_results: path: scripts/junit.xml - report-workflow-on-failure @@ -256,7 +256,7 @@ jobs: name: Test command: | cd code - yarn test --coverage + yarn test --coverage --coverage.all=false - store_test_results: path: code/junit.xml - persist_to_workspace: From d70a3ee643a9d2b1877155971f04953d44b91a69 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Mon, 5 Aug 2024 17:05:36 +0200 Subject: [PATCH 048/135] Try less threads --- code/vitest.workspace.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/vitest.workspace.ts b/code/vitest.workspace.ts index ce15cacce016..d32199b0932d 100644 --- a/code/vitest.workspace.ts +++ b/code/vitest.workspace.ts @@ -20,7 +20,7 @@ export default defineWorkspace([ * @see https://circleci.com/docs/configuration-reference/#x86 * @see .circleci/config.yml#L214 */ -const threadCount = process.env.CI ? 8 : undefined; +const threadCount = process.env.CI ? 4 : undefined; export const vitestCommonConfig = defineConfig({ test: { From 81e00c13b90f8f0c88069f0e75dc6db239519ca4 Mon Sep 17 00:00:00 2001 From: Kyle Gach Date: Mon, 5 Aug 2024 11:30:46 -0600 Subject: [PATCH 049/135] Prose tweak --- docs/api/portable-stories/portable-stories-vitest.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api/portable-stories/portable-stories-vitest.mdx b/docs/api/portable-stories/portable-stories-vitest.mdx index e53b4f684096..3093fea2b4d4 100644 --- a/docs/api/portable-stories/portable-stories-vitest.mdx +++ b/docs/api/portable-stories/portable-stories-vitest.mdx @@ -28,7 +28,7 @@ sidebar: - **Using `Next.js`?** Next.js support for Vitest is now possible by using the [vite-plugin-storybook-nextjs](https://github.com/storybookjs/vite-plugin-storybook-nextjs) Plugin. Please make sure that the plugin is installed and set up. + **Using `Next.js`?** You can test your Next.js stories with Vitest by installing and setting up the [`vite-plugin-storybook-nextjs`](https://github.com/storybookjs/vite-plugin-storybook-nextjs) package. From a983514588275b852affb0bb2e20a2be54c3dab5 Mon Sep 17 00:00:00 2001 From: Kyle Gach Date: Mon, 5 Aug 2024 14:46:58 -0600 Subject: [PATCH 050/135] Docs updates - Use a more stable heading - "Experimental" is temporary - Update package names --- docs/_snippets/nextjs-vite-add-framework.md | 6 +++--- docs/_snippets/nextjs-vite-install.md | 6 +++--- docs/_snippets/nextjs-vite-remove-addons.md | 2 +- docs/get-started/frameworks/nextjs.mdx | 8 +++++--- 4 files changed, 12 insertions(+), 10 deletions(-) diff --git a/docs/_snippets/nextjs-vite-add-framework.md b/docs/_snippets/nextjs-vite-add-framework.md index 8ee1e090f4b7..ac874f278550 100644 --- a/docs/_snippets/nextjs-vite-add-framework.md +++ b/docs/_snippets/nextjs-vite-add-framework.md @@ -2,17 +2,17 @@ export default { // ... // framework: '@storybook/react-webpack5', πŸ‘ˆ Remove this - framework: '@storybook/nextjs-vite', // πŸ‘ˆ Add this + framework: '@storybook/experimental-nextjs-vite', // πŸ‘ˆ Add this }; ``` ```ts filename=".storybook/main.ts" renderer="react" language="ts" -import { StorybookConfig } from '@storybook/nextjs-vite'; +import { StorybookConfig } from '@storybook/experimental-nextjs-vite'; const config: StorybookConfig = { // ... // framework: '@storybook/react-webpack5', πŸ‘ˆ Remove this - framework: '@storybook/nextjs-vite', // πŸ‘ˆ Add this + framework: '@storybook/experimental-nextjs-vite', // πŸ‘ˆ Add this }; export default config; diff --git a/docs/_snippets/nextjs-vite-install.md b/docs/_snippets/nextjs-vite-install.md index 8b81c9d3b13e..83568e30cfa4 100644 --- a/docs/_snippets/nextjs-vite-install.md +++ b/docs/_snippets/nextjs-vite-install.md @@ -1,11 +1,11 @@ ```shell renderer="react" language="js" packageManager="npm" -npm install --save-dev @storybook/nextjs-vite +npm install --save-dev @storybook/experimental-nextjs-vite ``` ```shell renderer="react" language="js" packageManager="pnpm" -pnpm add --save-dev @storybook/nextjs-vite +pnpm add --save-dev @storybook/experimental-nextjs-vite ``` ```shell renderer="react" language="js" packageManager="yarn" -yarn add --dev @storybook/nextjs-vite +yarn add --dev @storybook/experimental-nextjs-vite ``` diff --git a/docs/_snippets/nextjs-vite-remove-addons.md b/docs/_snippets/nextjs-vite-remove-addons.md index fecfa0240fa0..85a01de7df21 100644 --- a/docs/_snippets/nextjs-vite-remove-addons.md +++ b/docs/_snippets/nextjs-vite-remove-addons.md @@ -11,7 +11,7 @@ export default { ``` ```ts filename=".storybook/main.ts" renderer="react" language="ts" -import { StorybookConfig } from '@storybook/nextjs-vite'; +import { StorybookConfig } from '@storybook/experimental-nextjs-vite'; const config: StorybookConfig = { // ... diff --git a/docs/get-started/frameworks/nextjs.mdx b/docs/get-started/frameworks/nextjs.mdx index f220194ae44e..fce453548bad 100644 --- a/docs/get-started/frameworks/nextjs.mdx +++ b/docs/get-started/frameworks/nextjs.mdx @@ -82,9 +82,11 @@ Storybook for Next.js is a [framework](../../contribute/framework.mdx) that make {/* prettier-ignore-end */} - #### @storybook/nextjs-vite - Experimental Vite support + #### With Vite - You can use our freshly baked experimental `@storybook/nextjs-vite` framework, which is based on Vite and removes the bloat of Webpack and Babel. + (⚠️ **Experimental**) + + You can use our freshly baked, experimental `@storybook/experimental-nextjs-vite` framework, which is based on Vite and removes the need for Webpack and Babel. It supports all of the features documented here. {/* prettier-ignore-start */} @@ -191,7 +193,7 @@ Storybook for Next.js is a [framework](../../contribute/framework.mdx) that make #### `staticDir` mapping - You can safely skip this section if you are using `@storybook/nextjs-vite` instead of `@storybook/nextjs`. The vite-based framework takes care of the mapping automatically. + You can safely skip this section if you are using [`@storybook/experimental-nextjs-vite`](#with-vite) instead of `@storybook/nextjs`. The Vite-based framework takes care of the mapping automatically. You have to tell Storybook where the `fonts` directory is located, via the [`staticDirs` configuration](../../api/main-config/main-config-static-dirs.mdx#with-configuration-objects). The `from` value is relative to the `.storybook` directory. The `to` value is relative to the execution context of Storybook. Very likely it is the root of your project. From d57bba5be0092bb2c542856438150c1c2c5f59b6 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Tue, 6 Aug 2024 09:22:08 +0200 Subject: [PATCH 051/135] Rename nextjs-vite to experimental-nextjs-vite --- .../src/common/utils/framework-to-renderer.ts | 2 +- code/core/src/common/versions.ts | 2 +- code/core/src/types/modules/frameworks.ts | 2 +- .../.eslintrc.json | 0 .../README.md | 0 .../package.json | 4 +- .../preset.js | 0 .../project.json | 2 +- .../src/config/preview.ts | 0 .../src/export-mocks/cache/index.ts | 0 .../src/export-mocks/headers/cookies.ts | 0 .../src/export-mocks/headers/headers.ts | 0 .../src/export-mocks/headers/index.ts | 0 .../src/export-mocks/navigation/index.ts | 0 .../src/export-mocks/router/index.ts | 0 .../src/head-manager/decorator.tsx | 0 .../head-manager/head-manager-provider.tsx | 0 .../src/images/decorator.tsx | 0 .../src/index.ts | 0 .../src/portable-stories.ts | 0 .../src/preset.ts | 2 +- .../src/preview.tsx | 4 +- .../src/routing/app-router-provider.tsx | 2 +- .../src/routing/decorator.tsx | 0 .../src/routing/page-router-provider.tsx | 2 +- .../src/routing/types.tsx | 0 .../src/styledJsx/decorator.tsx | 0 .../src/types.ts | 2 +- .../src/typings.d.ts | 0 .../template/cli/.eslintrc.json | 0 .../template/cli/js/Button.jsx | 0 .../template/cli/js/Button.stories.js | 0 .../template/cli/js/Configure.mdx | 0 .../template/cli/js/Header.jsx | 0 .../template/cli/js/Header.stories.js | 0 .../template/cli/js/Page.jsx | 0 .../template/cli/js/Page.stories.js | 0 .../template/cli/ts-3-8/Button.stories.ts | 0 .../template/cli/ts-3-8/Button.tsx | 0 .../template/cli/ts-3-8/Configure.mdx | 0 .../template/cli/ts-3-8/Header.stories.ts | 0 .../template/cli/ts-3-8/Header.tsx | 0 .../template/cli/ts-3-8/Page.stories.ts | 0 .../template/cli/ts-3-8/Page.tsx | 0 .../template/cli/ts-4-9/Button.stories.ts | 0 .../template/cli/ts-4-9/Button.tsx | 0 .../template/cli/ts-4-9/Configure.mdx | 0 .../template/cli/ts-4-9/Header.stories.ts | 0 .../template/cli/ts-4-9/Header.tsx | 0 .../template/cli/ts-4-9/Page.stories.ts | 0 .../template/cli/ts-4-9/Page.tsx | 0 .../template/next-env.d.ts | 0 .../stories/DynamicImport.stories.tsx | 0 .../template/stories/DynamicImport.tsx | 0 .../template/stories/Font.stories.tsx | 0 .../template/stories/Font.tsx | 0 .../stories/GetImageProps.stories.tsx | 0 .../template/stories/Head.stories.tsx | 0 .../template/stories/Image.stories.tsx | 0 .../template/stories/ImageLegacy.stories.tsx | 0 .../template/stories/Link.stories.module.css | 0 .../template/stories/Link.stories.tsx | 0 .../template/stories/Navigation.stories.tsx | 2 +- .../template/stories/NextHeader.stories.tsx | 2 +- .../template/stories/NextHeader.tsx | 0 .../template/stories/RSC.jsx | 0 .../template/stories/RSC.stories.jsx | 0 .../template/stories/Redirect.stories.tsx | 0 .../template/stories/Router.stories.tsx | 2 +- .../stories/ServerActions.stories.tsx | 6 +- .../template/stories/ServerActions.tsx | 0 .../template/stories/StyledJsx.stories.jsx | 0 .../template/stories/fonts/OFL.txt | 0 .../stories/fonts/RubikStorm-Regular.ttf | Bin .../template/typings.d.ts | 0 .../tsconfig.json | 0 .../vitest.config.ts | 0 code/lib/cli/src/helpers.ts | 2 +- code/lib/cli/src/sandbox-templates.ts | 8 +-- code/yarn.lock | 58 +++++++++--------- docs/get-started/frameworks/nextjs.mdx | 4 +- 81 files changed, 54 insertions(+), 54 deletions(-) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/.eslintrc.json (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/README.md (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/package.json (97%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/preset.js (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/project.json (77%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/config/preview.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/export-mocks/cache/index.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/export-mocks/headers/cookies.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/export-mocks/headers/headers.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/export-mocks/headers/index.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/export-mocks/navigation/index.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/export-mocks/router/index.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/head-manager/decorator.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/head-manager/head-manager-provider.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/images/decorator.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/index.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/portable-stories.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/preset.ts (94%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/preview.tsx (93%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/routing/app-router-provider.tsx (97%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/routing/decorator.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/routing/page-router-provider.tsx (90%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/routing/types.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/styledJsx/decorator.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/types.ts (92%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/src/typings.d.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/.eslintrc.json (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/js/Button.jsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/js/Button.stories.js (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/js/Configure.mdx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/js/Header.jsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/js/Header.stories.js (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/js/Page.jsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/js/Page.stories.js (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/ts-3-8/Button.stories.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/ts-3-8/Button.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/ts-3-8/Configure.mdx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/ts-3-8/Header.stories.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/ts-3-8/Header.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/ts-3-8/Page.stories.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/ts-3-8/Page.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/ts-4-9/Button.stories.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/ts-4-9/Button.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/ts-4-9/Configure.mdx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/ts-4-9/Header.stories.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/ts-4-9/Header.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/ts-4-9/Page.stories.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/cli/ts-4-9/Page.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/next-env.d.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/DynamicImport.stories.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/DynamicImport.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/Font.stories.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/Font.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/GetImageProps.stories.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/Head.stories.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/Image.stories.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/ImageLegacy.stories.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/Link.stories.module.css (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/Link.stories.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/Navigation.stories.tsx (97%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/NextHeader.stories.tsx (94%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/NextHeader.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/RSC.jsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/RSC.stories.jsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/Redirect.stories.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/Router.stories.tsx (97%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/ServerActions.stories.tsx (93%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/ServerActions.tsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/StyledJsx.stories.jsx (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/fonts/OFL.txt (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/stories/fonts/RubikStorm-Regular.ttf (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/template/typings.d.ts (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/tsconfig.json (100%) rename code/frameworks/{nextjs-vite => experimental-nextjs-vite}/vitest.config.ts (100%) diff --git a/code/core/src/common/utils/framework-to-renderer.ts b/code/core/src/common/utils/framework-to-renderer.ts index 6169237b12cd..63107ad8313b 100644 --- a/code/core/src/common/utils/framework-to-renderer.ts +++ b/code/core/src/common/utils/framework-to-renderer.ts @@ -11,7 +11,7 @@ export const frameworkToRenderer: Record< 'html-vite': 'html', 'html-webpack5': 'html', nextjs: 'react', - 'nextjs-vite': 'react', + 'experimental-nextjs-vite': 'react', 'preact-vite': 'preact', 'preact-webpack5': 'preact', qwik: 'qwik', diff --git a/code/core/src/common/versions.ts b/code/core/src/common/versions.ts index c312baaa8b57..e5138fca48ca 100644 --- a/code/core/src/common/versions.ts +++ b/code/core/src/common/versions.ts @@ -41,10 +41,10 @@ export default { '@storybook/types': '8.3.0-alpha.3', '@storybook/angular': '8.3.0-alpha.3', '@storybook/ember': '8.3.0-alpha.3', + '@storybook/experimental-nextjs-vite': '8.3.0-alpha.3', '@storybook/html-vite': '8.3.0-alpha.3', '@storybook/html-webpack5': '8.3.0-alpha.3', '@storybook/nextjs': '8.3.0-alpha.3', - '@storybook/nextjs-vite': '8.3.0-alpha.3', '@storybook/preact-vite': '8.3.0-alpha.3', '@storybook/preact-webpack5': '8.3.0-alpha.3', '@storybook/react-vite': '8.3.0-alpha.3', diff --git a/code/core/src/types/modules/frameworks.ts b/code/core/src/types/modules/frameworks.ts index a8487124c6d6..246cea20ff9a 100644 --- a/code/core/src/types/modules/frameworks.ts +++ b/code/core/src/types/modules/frameworks.ts @@ -2,10 +2,10 @@ export type SupportedFrameworks = | 'angular' | 'ember' + | 'experimental-nextjs-vite' | 'html-vite' | 'html-webpack5' | 'nextjs' - | 'nextjs-vite' | 'preact-vite' | 'preact-webpack5' | 'react-vite' diff --git a/code/frameworks/nextjs-vite/.eslintrc.json b/code/frameworks/experimental-nextjs-vite/.eslintrc.json similarity index 100% rename from code/frameworks/nextjs-vite/.eslintrc.json rename to code/frameworks/experimental-nextjs-vite/.eslintrc.json diff --git a/code/frameworks/nextjs-vite/README.md b/code/frameworks/experimental-nextjs-vite/README.md similarity index 100% rename from code/frameworks/nextjs-vite/README.md rename to code/frameworks/experimental-nextjs-vite/README.md diff --git a/code/frameworks/nextjs-vite/package.json b/code/frameworks/experimental-nextjs-vite/package.json similarity index 97% rename from code/frameworks/nextjs-vite/package.json rename to code/frameworks/experimental-nextjs-vite/package.json index 2be69a522ffb..07485c47af1a 100644 --- a/code/frameworks/nextjs-vite/package.json +++ b/code/frameworks/experimental-nextjs-vite/package.json @@ -1,5 +1,5 @@ { - "name": "@storybook/nextjs-vite", + "name": "@storybook/experimental-nextjs-vite", "version": "8.3.0-alpha.3", "description": "Storybook for Next.js and Vite", "keywords": [ @@ -7,7 +7,7 @@ "nextjs", "vite" ], - "homepage": "https://github.com/storybookjs/storybook/tree/next/code/frameworks/nextjs-vite", + "homepage": "https://github.com/storybookjs/storybook/tree/next/code/frameworks/experimental-nextjs-vite", "bugs": { "url": "https://github.com/storybookjs/storybook/issues" }, diff --git a/code/frameworks/nextjs-vite/preset.js b/code/frameworks/experimental-nextjs-vite/preset.js similarity index 100% rename from code/frameworks/nextjs-vite/preset.js rename to code/frameworks/experimental-nextjs-vite/preset.js diff --git a/code/frameworks/nextjs-vite/project.json b/code/frameworks/experimental-nextjs-vite/project.json similarity index 77% rename from code/frameworks/nextjs-vite/project.json rename to code/frameworks/experimental-nextjs-vite/project.json index 049a16e3417f..f10ef7bdacfb 100644 --- a/code/frameworks/nextjs-vite/project.json +++ b/code/frameworks/experimental-nextjs-vite/project.json @@ -1,5 +1,5 @@ { - "name": "nextjs-vite", + "name": "experimental-nextjs-vite", "$schema": "../../node_modules/nx/schemas/project-schema.json", "projectType": "library", "targets": { diff --git a/code/frameworks/nextjs-vite/src/config/preview.ts b/code/frameworks/experimental-nextjs-vite/src/config/preview.ts similarity index 100% rename from code/frameworks/nextjs-vite/src/config/preview.ts rename to code/frameworks/experimental-nextjs-vite/src/config/preview.ts diff --git a/code/frameworks/nextjs-vite/src/export-mocks/cache/index.ts b/code/frameworks/experimental-nextjs-vite/src/export-mocks/cache/index.ts similarity index 100% rename from code/frameworks/nextjs-vite/src/export-mocks/cache/index.ts rename to code/frameworks/experimental-nextjs-vite/src/export-mocks/cache/index.ts diff --git a/code/frameworks/nextjs-vite/src/export-mocks/headers/cookies.ts b/code/frameworks/experimental-nextjs-vite/src/export-mocks/headers/cookies.ts similarity index 100% rename from code/frameworks/nextjs-vite/src/export-mocks/headers/cookies.ts rename to code/frameworks/experimental-nextjs-vite/src/export-mocks/headers/cookies.ts diff --git a/code/frameworks/nextjs-vite/src/export-mocks/headers/headers.ts b/code/frameworks/experimental-nextjs-vite/src/export-mocks/headers/headers.ts similarity index 100% rename from code/frameworks/nextjs-vite/src/export-mocks/headers/headers.ts rename to code/frameworks/experimental-nextjs-vite/src/export-mocks/headers/headers.ts diff --git a/code/frameworks/nextjs-vite/src/export-mocks/headers/index.ts b/code/frameworks/experimental-nextjs-vite/src/export-mocks/headers/index.ts similarity index 100% rename from code/frameworks/nextjs-vite/src/export-mocks/headers/index.ts rename to code/frameworks/experimental-nextjs-vite/src/export-mocks/headers/index.ts diff --git a/code/frameworks/nextjs-vite/src/export-mocks/navigation/index.ts b/code/frameworks/experimental-nextjs-vite/src/export-mocks/navigation/index.ts similarity index 100% rename from code/frameworks/nextjs-vite/src/export-mocks/navigation/index.ts rename to code/frameworks/experimental-nextjs-vite/src/export-mocks/navigation/index.ts diff --git a/code/frameworks/nextjs-vite/src/export-mocks/router/index.ts b/code/frameworks/experimental-nextjs-vite/src/export-mocks/router/index.ts similarity index 100% rename from code/frameworks/nextjs-vite/src/export-mocks/router/index.ts rename to code/frameworks/experimental-nextjs-vite/src/export-mocks/router/index.ts diff --git a/code/frameworks/nextjs-vite/src/head-manager/decorator.tsx b/code/frameworks/experimental-nextjs-vite/src/head-manager/decorator.tsx similarity index 100% rename from code/frameworks/nextjs-vite/src/head-manager/decorator.tsx rename to code/frameworks/experimental-nextjs-vite/src/head-manager/decorator.tsx diff --git a/code/frameworks/nextjs-vite/src/head-manager/head-manager-provider.tsx b/code/frameworks/experimental-nextjs-vite/src/head-manager/head-manager-provider.tsx similarity index 100% rename from code/frameworks/nextjs-vite/src/head-manager/head-manager-provider.tsx rename to code/frameworks/experimental-nextjs-vite/src/head-manager/head-manager-provider.tsx diff --git a/code/frameworks/nextjs-vite/src/images/decorator.tsx b/code/frameworks/experimental-nextjs-vite/src/images/decorator.tsx similarity index 100% rename from code/frameworks/nextjs-vite/src/images/decorator.tsx rename to code/frameworks/experimental-nextjs-vite/src/images/decorator.tsx diff --git a/code/frameworks/nextjs-vite/src/index.ts b/code/frameworks/experimental-nextjs-vite/src/index.ts similarity index 100% rename from code/frameworks/nextjs-vite/src/index.ts rename to code/frameworks/experimental-nextjs-vite/src/index.ts diff --git a/code/frameworks/nextjs-vite/src/portable-stories.ts b/code/frameworks/experimental-nextjs-vite/src/portable-stories.ts similarity index 100% rename from code/frameworks/nextjs-vite/src/portable-stories.ts rename to code/frameworks/experimental-nextjs-vite/src/portable-stories.ts diff --git a/code/frameworks/nextjs-vite/src/preset.ts b/code/frameworks/experimental-nextjs-vite/src/preset.ts similarity index 94% rename from code/frameworks/nextjs-vite/src/preset.ts rename to code/frameworks/experimental-nextjs-vite/src/preset.ts index d4b9ce4ba972..95fa81009575 100644 --- a/code/frameworks/nextjs-vite/src/preset.ts +++ b/code/frameworks/experimental-nextjs-vite/src/preset.ts @@ -24,7 +24,7 @@ export const core: PresetProperty<'core'> = async (config, options) => { }; export const previewAnnotations: PresetProperty<'previewAnnotations'> = (entry = []) => { - const nextDir = dirname(require.resolve('@storybook/nextjs-vite/package.json')); + const nextDir = dirname(require.resolve('@storybook/experimental-nextjs-vite/package.json')); const result = [...entry, join(nextDir, 'dist/preview.mjs')]; return result; }; diff --git a/code/frameworks/nextjs-vite/src/preview.tsx b/code/frameworks/experimental-nextjs-vite/src/preview.tsx similarity index 93% rename from code/frameworks/nextjs-vite/src/preview.tsx rename to code/frameworks/experimental-nextjs-vite/src/preview.tsx index 9b1207330728..9248514b0ccd 100644 --- a/code/frameworks/nextjs-vite/src/preview.tsx +++ b/code/frameworks/experimental-nextjs-vite/src/preview.tsx @@ -7,10 +7,10 @@ import { HeadManagerDecorator } from './head-manager/decorator'; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore we must ignore types here as during compilation they are not generated yet -import { createRouter } from '@storybook/nextjs-vite/router.mock'; +import { createRouter } from '@storybook/experimental-nextjs-vite/router.mock'; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore we must ignore types here as during compilation they are not generated yet -import { createNavigation } from '@storybook/nextjs-vite/navigation.mock'; +import { createNavigation } from '@storybook/experimental-nextjs-vite/navigation.mock'; import { isNextRouterError } from 'next/dist/client/components/is-next-router-error'; function addNextHeadCount() { diff --git a/code/frameworks/nextjs-vite/src/routing/app-router-provider.tsx b/code/frameworks/experimental-nextjs-vite/src/routing/app-router-provider.tsx similarity index 97% rename from code/frameworks/nextjs-vite/src/routing/app-router-provider.tsx rename to code/frameworks/experimental-nextjs-vite/src/routing/app-router-provider.tsx index 8528bdbbf82c..ea1c44a860fa 100644 --- a/code/frameworks/nextjs-vite/src/routing/app-router-provider.tsx +++ b/code/frameworks/experimental-nextjs-vite/src/routing/app-router-provider.tsx @@ -18,7 +18,7 @@ import type { RouteParams } from './types'; // is the only way to achieve it actually being a singleton // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore we must ignore types here as during compilation they are not generated yet -import { getRouter } from '@storybook/nextjs-vite/navigation.mock'; +import { getRouter } from '@storybook/experimental-nextjs-vite/navigation.mock'; type AppRouterProviderProps = { routeParams: RouteParams; diff --git a/code/frameworks/nextjs-vite/src/routing/decorator.tsx b/code/frameworks/experimental-nextjs-vite/src/routing/decorator.tsx similarity index 100% rename from code/frameworks/nextjs-vite/src/routing/decorator.tsx rename to code/frameworks/experimental-nextjs-vite/src/routing/decorator.tsx diff --git a/code/frameworks/nextjs-vite/src/routing/page-router-provider.tsx b/code/frameworks/experimental-nextjs-vite/src/routing/page-router-provider.tsx similarity index 90% rename from code/frameworks/nextjs-vite/src/routing/page-router-provider.tsx rename to code/frameworks/experimental-nextjs-vite/src/routing/page-router-provider.tsx index 91fa47cfc199..e8f8b56b8c99 100644 --- a/code/frameworks/nextjs-vite/src/routing/page-router-provider.tsx +++ b/code/frameworks/experimental-nextjs-vite/src/routing/page-router-provider.tsx @@ -6,7 +6,7 @@ import React from 'react'; // is the only way to achieve it actually being a singleton // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore we must ignore types here as during compilation they are not generated yet -import { getRouter } from '@storybook/nextjs-vite/router.mock'; +import { getRouter } from '@storybook/experimental-nextjs-vite/router.mock'; export const PageRouterProvider: React.FC = ({ children }) => ( {children} diff --git a/code/frameworks/nextjs-vite/src/routing/types.tsx b/code/frameworks/experimental-nextjs-vite/src/routing/types.tsx similarity index 100% rename from code/frameworks/nextjs-vite/src/routing/types.tsx rename to code/frameworks/experimental-nextjs-vite/src/routing/types.tsx diff --git a/code/frameworks/nextjs-vite/src/styledJsx/decorator.tsx b/code/frameworks/experimental-nextjs-vite/src/styledJsx/decorator.tsx similarity index 100% rename from code/frameworks/nextjs-vite/src/styledJsx/decorator.tsx rename to code/frameworks/experimental-nextjs-vite/src/styledJsx/decorator.tsx diff --git a/code/frameworks/nextjs-vite/src/types.ts b/code/frameworks/experimental-nextjs-vite/src/types.ts similarity index 92% rename from code/frameworks/nextjs-vite/src/types.ts rename to code/frameworks/experimental-nextjs-vite/src/types.ts index 98af894da463..00eb5a895129 100644 --- a/code/frameworks/nextjs-vite/src/types.ts +++ b/code/frameworks/experimental-nextjs-vite/src/types.ts @@ -4,7 +4,7 @@ import type { } from 'storybook/internal/types'; import type { StorybookConfigVite, BuilderOptions } from '@storybook/builder-vite'; -type FrameworkName = CompatibleString<'@storybook/nextjs-vite'>; +type FrameworkName = CompatibleString<'@storybook/experimental-nextjs-vite'>; type BuilderName = CompatibleString<'@storybook/builder-vite'>; export type FrameworkOptions = { diff --git a/code/frameworks/nextjs-vite/src/typings.d.ts b/code/frameworks/experimental-nextjs-vite/src/typings.d.ts similarity index 100% rename from code/frameworks/nextjs-vite/src/typings.d.ts rename to code/frameworks/experimental-nextjs-vite/src/typings.d.ts diff --git a/code/frameworks/nextjs-vite/template/cli/.eslintrc.json b/code/frameworks/experimental-nextjs-vite/template/cli/.eslintrc.json similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/.eslintrc.json rename to code/frameworks/experimental-nextjs-vite/template/cli/.eslintrc.json diff --git a/code/frameworks/nextjs-vite/template/cli/js/Button.jsx b/code/frameworks/experimental-nextjs-vite/template/cli/js/Button.jsx similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/js/Button.jsx rename to code/frameworks/experimental-nextjs-vite/template/cli/js/Button.jsx diff --git a/code/frameworks/nextjs-vite/template/cli/js/Button.stories.js b/code/frameworks/experimental-nextjs-vite/template/cli/js/Button.stories.js similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/js/Button.stories.js rename to code/frameworks/experimental-nextjs-vite/template/cli/js/Button.stories.js diff --git a/code/frameworks/nextjs-vite/template/cli/js/Configure.mdx b/code/frameworks/experimental-nextjs-vite/template/cli/js/Configure.mdx similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/js/Configure.mdx rename to code/frameworks/experimental-nextjs-vite/template/cli/js/Configure.mdx diff --git a/code/frameworks/nextjs-vite/template/cli/js/Header.jsx b/code/frameworks/experimental-nextjs-vite/template/cli/js/Header.jsx similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/js/Header.jsx rename to code/frameworks/experimental-nextjs-vite/template/cli/js/Header.jsx diff --git a/code/frameworks/nextjs-vite/template/cli/js/Header.stories.js b/code/frameworks/experimental-nextjs-vite/template/cli/js/Header.stories.js similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/js/Header.stories.js rename to code/frameworks/experimental-nextjs-vite/template/cli/js/Header.stories.js diff --git a/code/frameworks/nextjs-vite/template/cli/js/Page.jsx b/code/frameworks/experimental-nextjs-vite/template/cli/js/Page.jsx similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/js/Page.jsx rename to code/frameworks/experimental-nextjs-vite/template/cli/js/Page.jsx diff --git a/code/frameworks/nextjs-vite/template/cli/js/Page.stories.js b/code/frameworks/experimental-nextjs-vite/template/cli/js/Page.stories.js similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/js/Page.stories.js rename to code/frameworks/experimental-nextjs-vite/template/cli/js/Page.stories.js diff --git a/code/frameworks/nextjs-vite/template/cli/ts-3-8/Button.stories.ts b/code/frameworks/experimental-nextjs-vite/template/cli/ts-3-8/Button.stories.ts similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/ts-3-8/Button.stories.ts rename to code/frameworks/experimental-nextjs-vite/template/cli/ts-3-8/Button.stories.ts diff --git a/code/frameworks/nextjs-vite/template/cli/ts-3-8/Button.tsx b/code/frameworks/experimental-nextjs-vite/template/cli/ts-3-8/Button.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/ts-3-8/Button.tsx rename to code/frameworks/experimental-nextjs-vite/template/cli/ts-3-8/Button.tsx diff --git a/code/frameworks/nextjs-vite/template/cli/ts-3-8/Configure.mdx b/code/frameworks/experimental-nextjs-vite/template/cli/ts-3-8/Configure.mdx similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/ts-3-8/Configure.mdx rename to code/frameworks/experimental-nextjs-vite/template/cli/ts-3-8/Configure.mdx diff --git a/code/frameworks/nextjs-vite/template/cli/ts-3-8/Header.stories.ts b/code/frameworks/experimental-nextjs-vite/template/cli/ts-3-8/Header.stories.ts similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/ts-3-8/Header.stories.ts rename to code/frameworks/experimental-nextjs-vite/template/cli/ts-3-8/Header.stories.ts diff --git a/code/frameworks/nextjs-vite/template/cli/ts-3-8/Header.tsx b/code/frameworks/experimental-nextjs-vite/template/cli/ts-3-8/Header.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/ts-3-8/Header.tsx rename to code/frameworks/experimental-nextjs-vite/template/cli/ts-3-8/Header.tsx diff --git a/code/frameworks/nextjs-vite/template/cli/ts-3-8/Page.stories.ts b/code/frameworks/experimental-nextjs-vite/template/cli/ts-3-8/Page.stories.ts similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/ts-3-8/Page.stories.ts rename to code/frameworks/experimental-nextjs-vite/template/cli/ts-3-8/Page.stories.ts diff --git a/code/frameworks/nextjs-vite/template/cli/ts-3-8/Page.tsx b/code/frameworks/experimental-nextjs-vite/template/cli/ts-3-8/Page.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/ts-3-8/Page.tsx rename to code/frameworks/experimental-nextjs-vite/template/cli/ts-3-8/Page.tsx diff --git a/code/frameworks/nextjs-vite/template/cli/ts-4-9/Button.stories.ts b/code/frameworks/experimental-nextjs-vite/template/cli/ts-4-9/Button.stories.ts similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/ts-4-9/Button.stories.ts rename to code/frameworks/experimental-nextjs-vite/template/cli/ts-4-9/Button.stories.ts diff --git a/code/frameworks/nextjs-vite/template/cli/ts-4-9/Button.tsx b/code/frameworks/experimental-nextjs-vite/template/cli/ts-4-9/Button.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/ts-4-9/Button.tsx rename to code/frameworks/experimental-nextjs-vite/template/cli/ts-4-9/Button.tsx diff --git a/code/frameworks/nextjs-vite/template/cli/ts-4-9/Configure.mdx b/code/frameworks/experimental-nextjs-vite/template/cli/ts-4-9/Configure.mdx similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/ts-4-9/Configure.mdx rename to code/frameworks/experimental-nextjs-vite/template/cli/ts-4-9/Configure.mdx diff --git a/code/frameworks/nextjs-vite/template/cli/ts-4-9/Header.stories.ts b/code/frameworks/experimental-nextjs-vite/template/cli/ts-4-9/Header.stories.ts similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/ts-4-9/Header.stories.ts rename to code/frameworks/experimental-nextjs-vite/template/cli/ts-4-9/Header.stories.ts diff --git a/code/frameworks/nextjs-vite/template/cli/ts-4-9/Header.tsx b/code/frameworks/experimental-nextjs-vite/template/cli/ts-4-9/Header.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/ts-4-9/Header.tsx rename to code/frameworks/experimental-nextjs-vite/template/cli/ts-4-9/Header.tsx diff --git a/code/frameworks/nextjs-vite/template/cli/ts-4-9/Page.stories.ts b/code/frameworks/experimental-nextjs-vite/template/cli/ts-4-9/Page.stories.ts similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/ts-4-9/Page.stories.ts rename to code/frameworks/experimental-nextjs-vite/template/cli/ts-4-9/Page.stories.ts diff --git a/code/frameworks/nextjs-vite/template/cli/ts-4-9/Page.tsx b/code/frameworks/experimental-nextjs-vite/template/cli/ts-4-9/Page.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/cli/ts-4-9/Page.tsx rename to code/frameworks/experimental-nextjs-vite/template/cli/ts-4-9/Page.tsx diff --git a/code/frameworks/nextjs-vite/template/next-env.d.ts b/code/frameworks/experimental-nextjs-vite/template/next-env.d.ts similarity index 100% rename from code/frameworks/nextjs-vite/template/next-env.d.ts rename to code/frameworks/experimental-nextjs-vite/template/next-env.d.ts diff --git a/code/frameworks/nextjs-vite/template/stories/DynamicImport.stories.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/DynamicImport.stories.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/DynamicImport.stories.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/DynamicImport.stories.tsx diff --git a/code/frameworks/nextjs-vite/template/stories/DynamicImport.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/DynamicImport.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/DynamicImport.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/DynamicImport.tsx diff --git a/code/frameworks/nextjs-vite/template/stories/Font.stories.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/Font.stories.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/Font.stories.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/Font.stories.tsx diff --git a/code/frameworks/nextjs-vite/template/stories/Font.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/Font.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/Font.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/Font.tsx diff --git a/code/frameworks/nextjs-vite/template/stories/GetImageProps.stories.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/GetImageProps.stories.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/GetImageProps.stories.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/GetImageProps.stories.tsx diff --git a/code/frameworks/nextjs-vite/template/stories/Head.stories.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/Head.stories.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/Head.stories.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/Head.stories.tsx diff --git a/code/frameworks/nextjs-vite/template/stories/Image.stories.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/Image.stories.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/Image.stories.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/Image.stories.tsx diff --git a/code/frameworks/nextjs-vite/template/stories/ImageLegacy.stories.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/ImageLegacy.stories.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/ImageLegacy.stories.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/ImageLegacy.stories.tsx diff --git a/code/frameworks/nextjs-vite/template/stories/Link.stories.module.css b/code/frameworks/experimental-nextjs-vite/template/stories/Link.stories.module.css similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/Link.stories.module.css rename to code/frameworks/experimental-nextjs-vite/template/stories/Link.stories.module.css diff --git a/code/frameworks/nextjs-vite/template/stories/Link.stories.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/Link.stories.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/Link.stories.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/Link.stories.tsx diff --git a/code/frameworks/nextjs-vite/template/stories/Navigation.stories.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/Navigation.stories.tsx similarity index 97% rename from code/frameworks/nextjs-vite/template/stories/Navigation.stories.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/Navigation.stories.tsx index ebedcf962a45..fc107015517b 100644 --- a/code/frameworks/nextjs-vite/template/stories/Navigation.stories.tsx +++ b/code/frameworks/experimental-nextjs-vite/template/stories/Navigation.stories.tsx @@ -9,7 +9,7 @@ import { import React from 'react'; import type { Meta, StoryObj } from '@storybook/react'; import { expect, userEvent, within } from '@storybook/test'; -import { getRouter } from '@storybook/nextjs-vite/navigation.mock'; +import { getRouter } from '@storybook/experimental-nextjs-vite/navigation.mock'; function Component() { const router = useRouter(); diff --git a/code/frameworks/nextjs-vite/template/stories/NextHeader.stories.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/NextHeader.stories.tsx similarity index 94% rename from code/frameworks/nextjs-vite/template/stories/NextHeader.stories.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/NextHeader.stories.tsx index 8fbecc3fffc5..cd79a14ad750 100644 --- a/code/frameworks/nextjs-vite/template/stories/NextHeader.stories.tsx +++ b/code/frameworks/experimental-nextjs-vite/template/stories/NextHeader.stories.tsx @@ -2,7 +2,7 @@ import NextHeader from './NextHeader'; import type { Meta } from '@storybook/react'; import type { StoryObj } from '@storybook/react'; import { expect, userEvent, within } from '@storybook/test'; -import { cookies, headers } from '@storybook/nextjs-vite/headers.mock'; +import { cookies, headers } from '@storybook/experimental-nextjs-vite/headers.mock'; export default { component: NextHeader, diff --git a/code/frameworks/nextjs-vite/template/stories/NextHeader.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/NextHeader.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/NextHeader.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/NextHeader.tsx diff --git a/code/frameworks/nextjs-vite/template/stories/RSC.jsx b/code/frameworks/experimental-nextjs-vite/template/stories/RSC.jsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/RSC.jsx rename to code/frameworks/experimental-nextjs-vite/template/stories/RSC.jsx diff --git a/code/frameworks/nextjs-vite/template/stories/RSC.stories.jsx b/code/frameworks/experimental-nextjs-vite/template/stories/RSC.stories.jsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/RSC.stories.jsx rename to code/frameworks/experimental-nextjs-vite/template/stories/RSC.stories.jsx diff --git a/code/frameworks/nextjs-vite/template/stories/Redirect.stories.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/Redirect.stories.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/Redirect.stories.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/Redirect.stories.tsx diff --git a/code/frameworks/nextjs-vite/template/stories/Router.stories.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/Router.stories.tsx similarity index 97% rename from code/frameworks/nextjs-vite/template/stories/Router.stories.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/Router.stories.tsx index cfdb761b2210..e64221ea8a48 100644 --- a/code/frameworks/nextjs-vite/template/stories/Router.stories.tsx +++ b/code/frameworks/experimental-nextjs-vite/template/stories/Router.stories.tsx @@ -1,7 +1,7 @@ import React from 'react'; import type { Meta, StoryObj } from '@storybook/react'; import { expect, within, userEvent } from '@storybook/test'; -import { getRouter } from '@storybook/nextjs-vite/router.mock'; +import { getRouter } from '@storybook/experimental-nextjs-vite/router.mock'; import Router, { useRouter } from 'next/router'; function Component() { diff --git a/code/frameworks/nextjs-vite/template/stories/ServerActions.stories.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/ServerActions.stories.tsx similarity index 93% rename from code/frameworks/nextjs-vite/template/stories/ServerActions.stories.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/ServerActions.stories.tsx index 893a0e2009f4..941ffb2d3166 100644 --- a/code/frameworks/nextjs-vite/template/stories/ServerActions.stories.tsx +++ b/code/frameworks/experimental-nextjs-vite/template/stories/ServerActions.stories.tsx @@ -1,9 +1,9 @@ import React from 'react'; import type { Meta, StoryObj } from '@storybook/react'; import { expect, within, userEvent, waitFor } from '@storybook/test'; -import { cookies } from '@storybook/nextjs-vite/headers.mock'; -import { revalidatePath } from '@storybook/nextjs-vite/cache.mock'; -import { redirect, getRouter } from '@storybook/nextjs-vite/navigation.mock'; +import { cookies } from '@storybook/experimental-nextjs-vite/headers.mock'; +import { revalidatePath } from '@storybook/experimental-nextjs-vite/cache.mock'; +import { redirect, getRouter } from '@storybook/experimental-nextjs-vite/navigation.mock'; import { accessRoute, login, logout } from './ServerActions'; diff --git a/code/frameworks/nextjs-vite/template/stories/ServerActions.tsx b/code/frameworks/experimental-nextjs-vite/template/stories/ServerActions.tsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/ServerActions.tsx rename to code/frameworks/experimental-nextjs-vite/template/stories/ServerActions.tsx diff --git a/code/frameworks/nextjs-vite/template/stories/StyledJsx.stories.jsx b/code/frameworks/experimental-nextjs-vite/template/stories/StyledJsx.stories.jsx similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/StyledJsx.stories.jsx rename to code/frameworks/experimental-nextjs-vite/template/stories/StyledJsx.stories.jsx diff --git a/code/frameworks/nextjs-vite/template/stories/fonts/OFL.txt b/code/frameworks/experimental-nextjs-vite/template/stories/fonts/OFL.txt similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/fonts/OFL.txt rename to code/frameworks/experimental-nextjs-vite/template/stories/fonts/OFL.txt diff --git a/code/frameworks/nextjs-vite/template/stories/fonts/RubikStorm-Regular.ttf b/code/frameworks/experimental-nextjs-vite/template/stories/fonts/RubikStorm-Regular.ttf similarity index 100% rename from code/frameworks/nextjs-vite/template/stories/fonts/RubikStorm-Regular.ttf rename to code/frameworks/experimental-nextjs-vite/template/stories/fonts/RubikStorm-Regular.ttf diff --git a/code/frameworks/nextjs-vite/template/typings.d.ts b/code/frameworks/experimental-nextjs-vite/template/typings.d.ts similarity index 100% rename from code/frameworks/nextjs-vite/template/typings.d.ts rename to code/frameworks/experimental-nextjs-vite/template/typings.d.ts diff --git a/code/frameworks/nextjs-vite/tsconfig.json b/code/frameworks/experimental-nextjs-vite/tsconfig.json similarity index 100% rename from code/frameworks/nextjs-vite/tsconfig.json rename to code/frameworks/experimental-nextjs-vite/tsconfig.json diff --git a/code/frameworks/nextjs-vite/vitest.config.ts b/code/frameworks/experimental-nextjs-vite/vitest.config.ts similarity index 100% rename from code/frameworks/nextjs-vite/vitest.config.ts rename to code/frameworks/experimental-nextjs-vite/vitest.config.ts diff --git a/code/lib/cli/src/helpers.ts b/code/lib/cli/src/helpers.ts index 8f87539e5aa3..29a2453ea8b5 100644 --- a/code/lib/cli/src/helpers.ts +++ b/code/lib/cli/src/helpers.ts @@ -143,7 +143,7 @@ export const frameworkToDefaultBuilder: Record 'html-vite': CoreBuilder.Vite, 'html-webpack5': CoreBuilder.Webpack5, nextjs: CoreBuilder.Webpack5, - 'nextjs-vite': CoreBuilder.Vite, + 'experimental-nextjs-vite': CoreBuilder.Vite, 'preact-vite': CoreBuilder.Vite, 'preact-webpack5': CoreBuilder.Webpack5, qwik: CoreBuilder.Vite, diff --git a/code/lib/cli/src/sandbox-templates.ts b/code/lib/cli/src/sandbox-templates.ts index b93d859736e8..d9348c3b192b 100644 --- a/code/lib/cli/src/sandbox-templates.ts +++ b/code/lib/cli/src/sandbox-templates.ts @@ -201,26 +201,26 @@ const baseTemplates = { }, skipTasks: ['e2e-tests-dev', 'bench'], }, - 'nextjs-vite/default-ts': { + 'experimental-nextjs-vite/default-ts': { name: 'Next.js Latest (Vite | TypeScript)', script: 'yarn create next-app {{beforeDir}} --typescript --eslint --tailwind --app --import-alias="@/*" --src-dir', inDevelopment: true, expected: { - framework: '@storybook/nextjs-vite', + framework: '@storybook/experimental-nextjs-vite', renderer: '@storybook/react', builder: '@storybook/builder-vite', }, modifications: { mainConfig: { - framework: '@storybook/nextjs-vite', + framework: '@storybook/experimental-nextjs-vite', features: { experimentalRSC: true }, }, extraDependencies: [ 'server-only', 'vite-plugin-storybook-nextjs', - '@storybook/nextjs-vite', + '@storybook/experimental-nextjs-vite', 'vite', ], }, diff --git a/code/yarn.lock b/code/yarn.lock index b7d68f237ad4..c890992ba541 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6171,6 +6171,35 @@ __metadata: languageName: node linkType: hard +"@storybook/experimental-nextjs-vite@workspace:frameworks/experimental-nextjs-vite": + version: 0.0.0-use.local + resolution: "@storybook/experimental-nextjs-vite@workspace:frameworks/experimental-nextjs-vite" + dependencies: + "@storybook/builder-vite": "workspace:*" + "@storybook/react": "workspace:*" + "@storybook/test": "workspace:*" + "@types/node": "npm:^18.0.0" + next: "npm:^14.2.5" + sharp: "npm:^0.33.3" + styled-jsx: "npm:5.1.6" + typescript: "npm:^5.3.2" + vite-plugin-storybook-nextjs: "npm:^1.0.0" + peerDependencies: + next: ^14.2.5 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta + storybook: "workspace:^" + vite: ^5.0.0 + vite-plugin-storybook-nextjs: ^1.0.0 + dependenciesMeta: + sharp: + optional: true + peerDependenciesMeta: + typescript: + optional: true + languageName: unknown + linkType: soft + "@storybook/global@npm:^5.0.0": version: 5.0.0 resolution: "@storybook/global@npm:5.0.0" @@ -6289,35 +6318,6 @@ __metadata: languageName: unknown linkType: soft -"@storybook/nextjs-vite@workspace:frameworks/nextjs-vite": - version: 0.0.0-use.local - resolution: "@storybook/nextjs-vite@workspace:frameworks/nextjs-vite" - dependencies: - "@storybook/builder-vite": "workspace:*" - "@storybook/react": "workspace:*" - "@storybook/test": "workspace:*" - "@types/node": "npm:^18.0.0" - next: "npm:^14.2.5" - sharp: "npm:^0.33.3" - styled-jsx: "npm:5.1.6" - typescript: "npm:^5.3.2" - vite-plugin-storybook-nextjs: "npm:^1.0.0" - peerDependencies: - next: ^14.2.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: "workspace:^" - vite: ^5.0.0 - vite-plugin-storybook-nextjs: ^1.0.0 - dependenciesMeta: - sharp: - optional: true - peerDependenciesMeta: - typescript: - optional: true - languageName: unknown - linkType: soft - "@storybook/nextjs@workspace:*, @storybook/nextjs@workspace:frameworks/nextjs": version: 0.0.0-use.local resolution: "@storybook/nextjs@workspace:frameworks/nextjs" diff --git a/docs/get-started/frameworks/nextjs.mdx b/docs/get-started/frameworks/nextjs.mdx index fce453548bad..ec286414e285 100644 --- a/docs/get-started/frameworks/nextjs.mdx +++ b/docs/get-started/frameworks/nextjs.mdx @@ -749,7 +749,7 @@ Storybook for Next.js is a [framework](../../contribute/framework.mdx) that make ## Custom Webpack config - You can safely skip this section if you are using `@storybook/nextjs-vite` instead of `@storybook/nextjs`. + You can safely skip this section if you are using `@storybook/experimental-nextjs-vite` instead of `@storybook/nextjs`. The Vite-based Next.js framework does not support Webpack settings. @@ -899,7 +899,7 @@ Storybook for Next.js is a [framework](../../contribute/framework.mdx) that make ### What if I'm using the Vite builder? - We have introduced experimental Vite builder support. Just install the experimental framework package `@storybook/nextjs-vite` and replace all instances of `@storybook/nextjs` with `@storybook/nextjs-vite`. + We have introduced experimental Vite builder support. Just install the experimental framework package `@storybook/experimental-nextjs-vite` and replace all instances of `@storybook/nextjs` with `@storybook/experimental-nextjs-vite`. ### Error: You are importing avif images, but you don't have sharp installed. You have to install sharp in order to use image optimization features in Next.js. From 3eed3afac042917d812476d8f2e4410d3f48593e Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 6 Aug 2024 10:19:16 +0200 Subject: [PATCH 052/135] Remove coverage --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e0b1cc9abd6c..e2f4ef1417db 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -256,7 +256,7 @@ jobs: name: Test command: | cd code - yarn test --coverage --coverage.all=false + yarn test - store_test_results: path: code/junit.xml - persist_to_workspace: From 42964757060d46dddb717b9943d1d4f7658a3ffe Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 6 Aug 2024 11:08:35 +0200 Subject: [PATCH 053/135] Use threads --- .circleci/config.yml | 2 +- code/vitest.workspace.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index e2f4ef1417db..e0b1cc9abd6c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -256,7 +256,7 @@ jobs: name: Test command: | cd code - yarn test + yarn test --coverage --coverage.all=false - store_test_results: path: code/junit.xml - persist_to_workspace: diff --git a/code/vitest.workspace.ts b/code/vitest.workspace.ts index d32199b0932d..e3e074d8e5ec 100644 --- a/code/vitest.workspace.ts +++ b/code/vitest.workspace.ts @@ -30,6 +30,7 @@ export const vitestCommonConfig = defineConfig({ globals: true, testTimeout: 10000, environment: 'node', + pool: 'threads', poolOptions: { threads: { minThreads: threadCount, From 4ca175232c1a7f9b18b55f1f8a7077e0a47d6d77 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Tue, 6 Aug 2024 11:41:00 +0200 Subject: [PATCH 054/135] CLI: Parse more Yarn Berry errors --- .../js-package-manager/Yarn2Proxy.test.ts | 9 +++ .../common/js-package-manager/Yarn2Proxy.ts | 59 ++++++++----------- 2 files changed, 32 insertions(+), 36 deletions(-) diff --git a/code/core/src/common/js-package-manager/Yarn2Proxy.test.ts b/code/core/src/common/js-package-manager/Yarn2Proxy.test.ts index 4e4441aedb4d..c7265e12f18b 100644 --- a/code/core/src/common/js-package-manager/Yarn2Proxy.test.ts +++ b/code/core/src/common/js-package-manager/Yarn2Proxy.test.ts @@ -309,6 +309,15 @@ describe('Yarn 2 Proxy', () => { expect(yarn2Proxy.parseErrorFromLogs(YARN2_ERROR_SAMPLE)).toMatchInlineSnapshot( ` "YARN2 error + YN0002: MISSING_PEER_DEPENDENCY + -> before-storybook@workspace:. doesn't provide @testing-library/dom (p1ac37), requested by @testing-library/user-event. + + YN0002: MISSING_PEER_DEPENDENCY + -> before-storybook@workspace:. doesn't provide eslint (p1f657), requested by eslint-plugin-storybook. + + YN0086: EXPLAIN_PEER_DEPENDENCIES_CTA + -> Some peer dependencies are incorrectly met; run yarn explain peer-requirements for details, where is the six-letter p-prefixed code. + YN0014: YARN_IMPORT_FAILED -> Failed to import certain dependencies diff --git a/code/core/src/common/js-package-manager/Yarn2Proxy.ts b/code/core/src/common/js-package-manager/Yarn2Proxy.ts index 05156d146130..5036afed4345 100644 --- a/code/core/src/common/js-package-manager/Yarn2Proxy.ts +++ b/code/core/src/common/js-package-manager/Yarn2Proxy.ts @@ -12,36 +12,9 @@ import type { PackageJson } from './PackageJson'; import type { InstallationMetadata, PackageMetadata } from './types'; import { parsePackageData } from './util'; +// more info at https://yarnpkg.com/advanced/error-codes const CRITICAL_YARN2_ERROR_CODES = { YN0001: 'EXCEPTION', - YN0009: 'BUILD_FAILED', - YN0010: 'RESOLVER_NOT_FOUND', - YN0011: 'FETCHER_NOT_FOUND', - YN0012: 'LINKER_NOT_FOUND', - YN0014: 'YARN_IMPORT_FAILED', - YN0015: 'REMOTE_INVALID', - YN0016: 'REMOTE_NOT_FOUND', - YN0020: 'MISSING_LOCKFILE_ENTRY', - YN0021: 'WORKSPACE_NOT_FOUND', - YN0028: 'FROZEN_LOCKFILE_EXCEPTION', - YN0030: 'FETCH_FAILED', - YN0046: 'AUTOMERGE_FAILED_TO_PARSE', - YN0062: 'INCOMPATIBLE_OS', - YN0063: 'INCOMPATIBLE_CPU', - YN0071: 'NM_CANT_INSTALL_EXTERNAL_SOFT_LINK', - YN0072: 'NM_PRESERVE_SYMLINKS_REQUIRED', - YN0075: 'PROLOG_INSTANTIATION_ERROR', - YN0076: 'INCOMPATIBLE_ARCHITECTURE', - YN0078: 'RESOLUTION_MISMATCH', - YN0081: 'NETWORK_UNSAFE_HTTP', - YN0082: 'RESOLUTION_FAILED', - YN0083: 'AUTOMERGE_GIT_ERROR', -}; - -// Keep the codes here, they might be helpful in the future -const YARN2_ERROR_CODES = { - ...CRITICAL_YARN2_ERROR_CODES, - YN0000: 'UNNAMED', YN0002: 'MISSING_PEER_DEPENDENCY', YN0003: 'CYCLIC_DEPENDENCIES', YN0004: 'DISABLED_BUILD_SCRIPTS', @@ -49,36 +22,50 @@ const YARN2_ERROR_CODES = { YN0006: 'SOFT_LINK_BUILD', YN0007: 'MUST_BUILD', YN0008: 'MUST_REBUILD', + YN0009: 'BUILD_FAILED', + YN0010: 'RESOLVER_NOT_FOUND', + YN0011: 'FETCHER_NOT_FOUND', + YN0012: 'LINKER_NOT_FOUND', YN0013: 'FETCH_NOT_CACHED', - YN0017: 'RESOLUTION_PACK', + YN0014: 'YARN_IMPORT_FAILED', + YN0015: 'REMOTE_INVALID', + YN0016: 'REMOTE_NOT_FOUND', YN0018: 'CACHE_CHECKSUM_MISMATCH', YN0019: 'UNUSED_CACHE_ENTRY', + YN0020: 'MISSING_LOCKFILE_ENTRY', YN0022: 'TOO_MANY_MATCHING_WORKSPACES', YN0023: 'CONSTRAINTS_MISSING_DEPENDENCY', YN0024: 'CONSTRAINTS_INCOMPATIBLE_DEPENDENCY', YN0025: 'CONSTRAINTS_EXTRANEOUS_DEPENDENCY', YN0026: 'CONSTRAINTS_INVALID_DEPENDENCY', YN0027: 'CANT_SUGGEST_RESOLUTIONS', + YN0028: 'FROZEN_LOCKFILE_EXCEPTION', YN0029: 'CROSS_DRIVE_VIRTUAL_LOCAL', + YN0030: 'FETCH_FAILED', YN0031: 'DANGEROUS_NODE_MODULES', - YN0032: 'NODE_GYP_INJECTED', + YN0035: 'NETWORK_ERROR', + YN0046: 'AUTOMERGE_FAILED_TO_PARSE', YN0047: 'AUTOMERGE_IMMUTABLE', YN0048: 'AUTOMERGE_SUCCESS', YN0049: 'AUTOMERGE_REQUIRED', YN0050: 'DEPRECATED_CLI_SETTINGS', YN0059: 'INVALID_RANGE_PEER_DEPENDENCY', YN0060: 'INCOMPATIBLE_PEER_DEPENDENCY', - YN0061: 'DEPRECATED_PACKAGE', - YN0068: 'UNUSED_PACKAGE_EXTENSION', + YN0062: 'INCOMPATIBLE_OS', + YN0063: 'INCOMPATIBLE_CPU', YN0069: 'REDUNDANT_PACKAGE_EXTENSION', + YN0071: 'NM_CANT_INSTALL_EXTERNAL_SOFT_LINK', + YN0072: 'NM_PRESERVE_SYMLINKS_REQUIRED', YN0074: 'NM_HARDLINKS_MODE_DOWNGRADED', + YN0075: 'PROLOG_INSTANTIATION_ERROR', + YN0076: 'INCOMPATIBLE_ARCHITECTURE', YN0077: 'GHOST_ARCHITECTURE', + YN0078: 'RESOLUTION_MISMATCH', YN0080: 'NETWORK_DISABLED', - YN0085: 'UPDATED_RESOLUTION_RECORD', + YN0081: 'NETWORK_UNSAFE_HTTP', + YN0082: 'RESOLUTION_FAILED', + YN0083: 'AUTOMERGE_GIT_ERROR', YN0086: 'EXPLAIN_PEER_DEPENDENCIES_CTA', - YN0087: 'MIGRATION_SUCCESS', - YN0088: 'VERSION_NOTICE', - YN0089: 'TIPS_NOTICE', YN0090: 'OFFLINE_MODE_ENABLED', }; From 87c1225659799072886e78be69a90ca346e2995b Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 6 Aug 2024 11:43:06 +0200 Subject: [PATCH 055/135] Go back to 8 --- code/vitest.workspace.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/vitest.workspace.ts b/code/vitest.workspace.ts index e3e074d8e5ec..2f431df72c65 100644 --- a/code/vitest.workspace.ts +++ b/code/vitest.workspace.ts @@ -20,7 +20,7 @@ export default defineWorkspace([ * @see https://circleci.com/docs/configuration-reference/#x86 * @see .circleci/config.yml#L214 */ -const threadCount = process.env.CI ? 4 : undefined; +const threadCount = process.env.CI ? 8 : undefined; export const vitestCommonConfig = defineConfig({ test: { From 0aa394ae68de48f52f9afdc608990ea25aa49489 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 6 Aug 2024 12:13:49 +0200 Subject: [PATCH 056/135] Add a vitest.config --- code/vitest.config.ts | 25 +++++++++++++++++++++++++ code/vitest.workspace.ts | 18 +----------------- 2 files changed, 26 insertions(+), 17 deletions(-) create mode 100644 code/vitest.config.ts diff --git a/code/vitest.config.ts b/code/vitest.config.ts new file mode 100644 index 000000000000..2de375c107d5 --- /dev/null +++ b/code/vitest.config.ts @@ -0,0 +1,25 @@ +import { coverageConfigDefaults, defineConfig } from 'vitest/config'; +import { resolve } from 'path'; + +const threadCount = process.env.CI ? 8 : undefined; + +export default defineConfig({ + test: { + passWithNoTests: true, + clearMocks: true, + setupFiles: [resolve(__dirname, './vitest-setup.ts')], + globals: true, + testTimeout: 10000, + environment: 'node', + pool: 'threads', + coverage: { + exclude: [...coverageConfigDefaults.exclude, '**/dist/**', ''], + }, + poolOptions: { + threads: { + minThreads: threadCount, + maxThreads: threadCount, + }, + }, + }, +}); diff --git a/code/vitest.workspace.ts b/code/vitest.workspace.ts index 2f431df72c65..808520fb4d5e 100644 --- a/code/vitest.workspace.ts +++ b/code/vitest.workspace.ts @@ -22,20 +22,4 @@ export default defineWorkspace([ */ const threadCount = process.env.CI ? 8 : undefined; -export const vitestCommonConfig = defineConfig({ - test: { - passWithNoTests: true, - clearMocks: true, - setupFiles: [resolve(__dirname, './vitest-setup.ts')], - globals: true, - testTimeout: 10000, - environment: 'node', - pool: 'threads', - poolOptions: { - threads: { - minThreads: threadCount, - maxThreads: threadCount, - }, - }, - }, -}); +export const vitestCommonConfig = defineConfig({}); From 941035fd22f8c8217a9266cb79b9f02d8c50ac7c Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 6 Aug 2024 12:31:58 +0200 Subject: [PATCH 057/135] Move only pool and coverage options to root vitest.config --- code/vitest.config.ts | 15 ++++----------- code/vitest.workspace.ts | 12 ++++++++++-- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/code/vitest.config.ts b/code/vitest.config.ts index 2de375c107d5..3879f4463251 100644 --- a/code/vitest.config.ts +++ b/code/vitest.config.ts @@ -1,25 +1,18 @@ import { coverageConfigDefaults, defineConfig } from 'vitest/config'; -import { resolve } from 'path'; - const threadCount = process.env.CI ? 8 : undefined; export default defineConfig({ test: { - passWithNoTests: true, - clearMocks: true, - setupFiles: [resolve(__dirname, './vitest-setup.ts')], - globals: true, - testTimeout: 10000, - environment: 'node', pool: 'threads', - coverage: { - exclude: [...coverageConfigDefaults.exclude, '**/dist/**', ''], - }, poolOptions: { threads: { minThreads: threadCount, maxThreads: threadCount, }, }, + coverage: { + all: false, + exclude: [...coverageConfigDefaults.exclude, '**/dist/**', ''], + }, }, }); diff --git a/code/vitest.workspace.ts b/code/vitest.workspace.ts index 808520fb4d5e..2d3526ff25ae 100644 --- a/code/vitest.workspace.ts +++ b/code/vitest.workspace.ts @@ -20,6 +20,14 @@ export default defineWorkspace([ * @see https://circleci.com/docs/configuration-reference/#x86 * @see .circleci/config.yml#L214 */ -const threadCount = process.env.CI ? 8 : undefined; -export const vitestCommonConfig = defineConfig({}); +export const vitestCommonConfig = defineConfig({ + test: { + passWithNoTests: true, + clearMocks: true, + setupFiles: [resolve(__dirname, './vitest-setup.ts')], + globals: true, + testTimeout: 10000, + environment: 'node', + }, +}); From b2548f70a402acb620da3cf91c30dbad1d8eedc0 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 6 Aug 2024 12:39:51 +0200 Subject: [PATCH 058/135] Move back pool --- code/vitest.config.ts | 9 --------- code/vitest.workspace.ts | 8 ++++++++ 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/code/vitest.config.ts b/code/vitest.config.ts index 3879f4463251..b71ec5a3ef5f 100644 --- a/code/vitest.config.ts +++ b/code/vitest.config.ts @@ -1,17 +1,8 @@ import { coverageConfigDefaults, defineConfig } from 'vitest/config'; -const threadCount = process.env.CI ? 8 : undefined; export default defineConfig({ test: { - pool: 'threads', - poolOptions: { - threads: { - minThreads: threadCount, - maxThreads: threadCount, - }, - }, coverage: { - all: false, exclude: [...coverageConfigDefaults.exclude, '**/dist/**', ''], }, }, diff --git a/code/vitest.workspace.ts b/code/vitest.workspace.ts index 2d3526ff25ae..f8e4730d006d 100644 --- a/code/vitest.workspace.ts +++ b/code/vitest.workspace.ts @@ -20,9 +20,17 @@ export default defineWorkspace([ * @see https://circleci.com/docs/configuration-reference/#x86 * @see .circleci/config.yml#L214 */ +const threadCount = process.env.CI ? 7 : undefined; export const vitestCommonConfig = defineConfig({ test: { + pool: 'threads', + poolOptions: { + threads: { + minThreads: threadCount, + maxThreads: threadCount, + }, + }, passWithNoTests: true, clearMocks: true, setupFiles: [resolve(__dirname, './vitest-setup.ts')], From fb56f61c7e381b9fc8f84d1a0be1ccc76f10e8ee Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 6 Aug 2024 12:53:48 +0200 Subject: [PATCH 059/135] Fix check errors --- .../modules/preview-web/PreviewWeb.mockdata.ts | 2 +- code/renderers/react/src/public-types.test.tsx | 8 ++------ code/vitest.config.ts | 9 ++++++++- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/code/core/src/preview-api/modules/preview-web/PreviewWeb.mockdata.ts b/code/core/src/preview-api/modules/preview-web/PreviewWeb.mockdata.ts index fb92f48a7646..64b083d1b7b7 100644 --- a/code/core/src/preview-api/modules/preview-web/PreviewWeb.mockdata.ts +++ b/code/core/src/preview-api/modules/preview-web/PreviewWeb.mockdata.ts @@ -71,7 +71,7 @@ export const docsRenderer = { render: vi.fn().mockImplementation((context, parameters, element) => Promise.resolve()), unmount: vi.fn(), }; -export const teardownrenderToCanvas: Mock<[TeardownRenderToCanvas]> = vi.fn(); +export const teardownrenderToCanvas: Mock<(teardown: TeardownRenderToCanvas) => void> = vi.fn(); const rawProjectAnnotations = { initialGlobals: { a: 'b' }, globalTypes: {}, diff --git a/code/renderers/react/src/public-types.test.tsx b/code/renderers/react/src/public-types.test.tsx index 329b0384fb39..002e215979e9 100644 --- a/code/renderers/react/src/public-types.test.tsx +++ b/code/renderers/react/src/public-types.test.tsx @@ -319,15 +319,11 @@ it('Infer mock function given to args in meta.', () => { play: async ({ args, mount }) => { const canvas = await mount(); expectTypeOf(canvas).toEqualTypeOf(); - expectTypeOf(args.onClick).toEqualTypeOf>(); + expectTypeOf(args.onClick).toEqualTypeOf(); expectTypeOf(args.onRender).toEqualTypeOf<() => JSX.Element>(); }, }; - type Expected = StoryAnnotations< - ReactRenderer, - Props & { onClick: Mock<[], void> }, - Partial - >; + type Expected = StoryAnnotations>; expectTypeOf(Basic).toEqualTypeOf(); }); diff --git a/code/vitest.config.ts b/code/vitest.config.ts index b71ec5a3ef5f..5b1f8c9d3318 100644 --- a/code/vitest.config.ts +++ b/code/vitest.config.ts @@ -3,7 +3,14 @@ import { coverageConfigDefaults, defineConfig } from 'vitest/config'; export default defineConfig({ test: { coverage: { - exclude: [...coverageConfigDefaults.exclude, '**/dist/**', ''], + exclude: [ + ...coverageConfigDefaults.exclude, + '**/__mocks/**', + '**/dist/**', + 'playwright.config.ts', + 'vitest-setup.ts', + 'vitest.helpers.ts', + ], }, }, }); From 8dfc5cc4d2efdfe768ca861f7c23f1ab4983c6c8 Mon Sep 17 00:00:00 2001 From: Kyle Gach Date: Tue, 6 Aug 2024 14:42:26 -0600 Subject: [PATCH 060/135] Update badly-migrated snippet - Migration script did not correctly handle snippets with paths that had different filenames --- docs/_snippets/angular-builder-production.md | 14 ++++++++++++++ docs/_snippets/custom-build-script-production.md | 8 -------- docs/sharing/publish-storybook.mdx | 16 ++++++++++++++-- 3 files changed, 28 insertions(+), 10 deletions(-) create mode 100644 docs/_snippets/angular-builder-production.md delete mode 100644 docs/_snippets/custom-build-script-production.md diff --git a/docs/_snippets/angular-builder-production.md b/docs/_snippets/angular-builder-production.md new file mode 100644 index 000000000000..aa2b0a7d272f --- /dev/null +++ b/docs/_snippets/angular-builder-production.md @@ -0,0 +1,14 @@ +```shell renderer="angular" tabTitle="with-builder" +# Builds Storybook with Angular's custom builder +# See https://storybook.js.org/docs/get-started/frameworks/angular#how-do-i-migrate-to-an-angular-storybook-builder +# to learn how to create the custom builder +ng run my-project:build-storybook +``` + +```json renderer="angular" language="js" filename="package.json" tabTitle="script-for-builder" +{ + "scripts": { + "build-storybook": "ng run my-project:build-storybook" + } +} +``` diff --git a/docs/_snippets/custom-build-script-production.md b/docs/_snippets/custom-build-script-production.md deleted file mode 100644 index ebca4a42035f..000000000000 --- a/docs/_snippets/custom-build-script-production.md +++ /dev/null @@ -1,8 +0,0 @@ -```json renderer="angular" language="js" tabTitle="script-for-builder" -{ - "scripts": { - "build-storybook": "ng run my-project:build-storybook" - } -} -``` - diff --git a/docs/sharing/publish-storybook.mdx b/docs/sharing/publish-storybook.mdx index 007e914a0f39..9a29b5cd6d1a 100644 --- a/docs/sharing/publish-storybook.mdx +++ b/docs/sharing/publish-storybook.mdx @@ -13,14 +13,26 @@ Teams publish Storybook online to review and collaborate on works in progress. T ## Build Storybook as a static web application -First, we'll need to build Storybook as a static web application. The functionality is already built-in and pre-configured for most supported frameworks. Others require a bit of customization (e.g., Angular). Run the following command inside your project's root directory: +First, we'll need to build Storybook as a static web application. The functionality is already built-in and pre-configured for most supported frameworks. Run the following command inside your project's root directory: {/* prettier-ignore-start */} - + {/* prettier-ignore-end */} + + +If you're using Angular, it's often better to use the [Angular builder](../get-started/frameworks/angular.mdx#how-do-i-migrate-to-an-angular-storybook-builder) to build Storybook: + +{/* prettier-ignore-start */} + + + +{/* prettier-ignore-end */} + + + You can provide additional flags to customize the command. Read more about the flag options [here](../api/cli-options.mdx). From 0ae3a63f15bd0f5b11a48f4a7ce87923e4382845 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Wed, 7 Aug 2024 06:49:55 +0800 Subject: [PATCH 061/135] Update code/core/src/telemetry/get-portable-stories-usage.test.ts --- code/core/src/telemetry/get-portable-stories-usage.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/core/src/telemetry/get-portable-stories-usage.test.ts b/code/core/src/telemetry/get-portable-stories-usage.test.ts index c91efd993d45..b07eaec0a2e2 100644 --- a/code/core/src/telemetry/get-portable-stories-usage.test.ts +++ b/code/core/src/telemetry/get-portable-stories-usage.test.ts @@ -5,7 +5,7 @@ import { getPortableStoriesFileCountUncached } from './get-portable-stories-usag describe('getPortableStoriesFileCountUncached', () => { it('should ignores node_modules, non-source files', async () => { const usage = await getPortableStoriesFileCountUncached(); - // verify git grep -m1 -c composeStor | wc -l + // you can verify with: `git grep -m1 -c composeStor | wc -l` expect(usage).toMatchInlineSnapshot(`14`); }); }); From 597102b301ac0536734d77d5a888a5f68623e9a0 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Wed, 7 Aug 2024 07:16:36 +0800 Subject: [PATCH 062/135] Add globals telemertry --- .../utils/StoryIndexGenerator.test.ts | 3 + code/core/src/csf-tools/CsfFile.test.ts | 66 +++++++++++++++++++ code/core/src/csf-tools/CsfFile.ts | 2 +- code/core/src/types/modules/indexer.ts | 1 + docs/configure/telemetry.mdx | 10 +++ 5 files changed, 81 insertions(+), 1 deletion(-) diff --git a/code/core/src/core-server/utils/StoryIndexGenerator.test.ts b/code/core/src/core-server/utils/StoryIndexGenerator.test.ts index e07b46ba83af..1d0b479f459b 100644 --- a/code/core/src/core-server/utils/StoryIndexGenerator.test.ts +++ b/code/core/src/core-server/utils/StoryIndexGenerator.test.ts @@ -94,6 +94,7 @@ describe('StoryIndexGenerator', () => { expect(stats).toMatchInlineSnapshot(` { "beforeEach": 0, + "globals": 0, "loaders": 0, "moduleMock": 0, "mount": 0, @@ -461,6 +462,7 @@ describe('StoryIndexGenerator', () => { expect(stats).toMatchInlineSnapshot(` { "beforeEach": 1, + "globals": 0, "loaders": 1, "moduleMock": 0, "mount": 1, @@ -725,6 +727,7 @@ describe('StoryIndexGenerator', () => { expect(stats).toMatchInlineSnapshot(` { "beforeEach": 1, + "globals": 0, "loaders": 1, "moduleMock": 0, "mount": 1, diff --git a/code/core/src/csf-tools/CsfFile.test.ts b/code/core/src/csf-tools/CsfFile.test.ts index 0988e938a51b..40c0ef3a5110 100644 --- a/code/core/src/csf-tools/CsfFile.test.ts +++ b/code/core/src/csf-tools/CsfFile.test.ts @@ -47,6 +47,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -60,6 +61,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -90,6 +92,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -102,6 +105,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -131,6 +135,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -161,6 +166,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -189,6 +195,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -215,6 +222,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -242,6 +250,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -252,6 +261,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -279,6 +289,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -289,6 +300,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -316,6 +328,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -326,6 +339,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -354,6 +368,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -364,6 +379,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -396,6 +412,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -409,6 +426,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -441,6 +459,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -454,6 +473,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -483,6 +503,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -493,6 +514,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -522,6 +544,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -532,6 +555,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -559,6 +583,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -569,6 +594,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -600,6 +626,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -630,6 +657,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -661,6 +689,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -697,6 +726,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -728,6 +758,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -741,6 +772,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -767,6 +799,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -777,6 +810,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -808,6 +842,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -821,6 +856,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -853,6 +889,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -932,6 +969,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -942,6 +980,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -994,6 +1033,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -1004,6 +1044,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -1080,6 +1121,7 @@ describe('CsfFile', () => { render: true loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1111,6 +1153,7 @@ describe('CsfFile', () => { render: true loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1140,6 +1183,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1171,6 +1215,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1251,6 +1296,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -1283,6 +1329,7 @@ describe('CsfFile', () => { render: true loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1317,6 +1364,7 @@ describe('CsfFile', () => { render: true loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1376,6 +1424,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -1410,6 +1459,7 @@ describe('CsfFile', () => { render: true loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1440,6 +1490,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: true moduleMock: false @@ -1469,6 +1520,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: true moduleMock: false @@ -1501,6 +1553,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: true moduleMock: false @@ -1533,6 +1586,7 @@ describe('CsfFile', () => { render: true loaders: true beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1564,6 +1618,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: true mount: false moduleMock: false @@ -1613,6 +1668,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1632,6 +1688,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1669,6 +1726,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1711,6 +1769,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1768,6 +1827,7 @@ describe('CsfFile', () => { render: true loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1804,6 +1864,7 @@ describe('CsfFile', () => { render: true loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1840,6 +1901,7 @@ describe('CsfFile', () => { render: true loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1876,6 +1938,7 @@ describe('CsfFile', () => { render: true loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: false @@ -1905,6 +1968,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: true + globals: false storyFn: false mount: false moduleMock: false @@ -1933,6 +1997,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: true @@ -1958,6 +2023,7 @@ describe('CsfFile', () => { render: false loaders: false beforeEach: false + globals: false storyFn: false mount: false moduleMock: true diff --git a/code/core/src/csf-tools/CsfFile.ts b/code/core/src/csf-tools/CsfFile.ts index 149a182bcf7d..70d9b5b10067 100644 --- a/code/core/src/csf-tools/CsfFile.ts +++ b/code/core/src/csf-tools/CsfFile.ts @@ -566,7 +566,7 @@ export class CsfFile { acc[key].tags = [...(acc[key].tags || []), 'play-fn']; } const stats = acc[key].__stats; - ['play', 'render', 'loaders', 'beforeEach'].forEach((annotation) => { + ['play', 'render', 'loaders', 'beforeEach', 'globals'].forEach((annotation) => { stats[annotation as keyof IndexInputStats] = !!storyAnnotations[annotation] || !!self._metaAnnotations[annotation]; }); diff --git a/code/core/src/types/modules/indexer.ts b/code/core/src/types/modules/indexer.ts index 4e92b647a489..cafbd8f90b76 100644 --- a/code/core/src/types/modules/indexer.ts +++ b/code/core/src/types/modules/indexer.ts @@ -95,6 +95,7 @@ export interface IndexInputStats { mount?: boolean; beforeEach?: boolean; moduleMock?: boolean; + globals?: boolean; } /** diff --git a/docs/configure/telemetry.mdx b/docs/configure/telemetry.mdx index 6764db42fede..363e9bd327f7 100644 --- a/docs/configure/telemetry.mdx +++ b/docs/configure/telemetry.mdx @@ -75,6 +75,16 @@ Will generate the following output: "onboardingStoryCount": 0, "onboardingDocsCount": 0, "version": 4 + }, + "storyStats": { + "play": 0, + "render": 1, + "loaders": 0, + "beforeEach": 0, + "globals": 0, + "storyFn": 5, + "mount": 0, + "moduleMock": 0 } }, "metadata": { From d39167886e707e9c4416e3a41cf93177dc2991aa Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Wed, 7 Aug 2024 07:20:45 +0800 Subject: [PATCH 063/135] Add globals unit test --- code/core/src/csf-tools/CsfFile.test.ts | 30 +++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/code/core/src/csf-tools/CsfFile.test.ts b/code/core/src/csf-tools/CsfFile.test.ts index 40c0ef3a5110..34be1e2dbbf8 100644 --- a/code/core/src/csf-tools/CsfFile.test.ts +++ b/code/core/src/csf-tools/CsfFile.test.ts @@ -1976,6 +1976,36 @@ describe('CsfFile', () => { }); }); + describe('globals', () => { + it('basic', () => { + expect( + parse( + dedent` + export default { title: 'foo/bar' }; + export const A = { + globals: { foo: 'bar' } + }; + ` + ) + ).toMatchInlineSnapshot(` + meta: + title: foo/bar + stories: + - id: foo-bar--a + name: A + __stats: + play: false + render: false + loaders: false + beforeEach: false + globals: true + storyFn: false + mount: false + moduleMock: false + `); + }); + }); + describe('module mocks', () => { it('alias', () => { expect( From fee28485d036a46c48b8ec8c45787ea11124f13a Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Wed, 7 Aug 2024 08:53:23 +0800 Subject: [PATCH 064/135] Update tests --- .../docgen-components/8428-js-static-prop-types/docgen.snapshot | 2 +- .../9556-ts-react-default-exports/docgen.snapshot | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/renderers/react/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot b/code/renderers/react/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot index 516d6a99d828..2fb12d5579e7 100644 --- a/code/renderers/react/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot +++ b/code/renderers/react/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot @@ -1,4 +1,4 @@ -function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } import React from 'react'; diff --git a/code/renderers/react/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot b/code/renderers/react/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot index 96720e8f4df7..deeed4ffa007 100644 --- a/code/renderers/react/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot +++ b/code/renderers/react/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot @@ -1,4 +1,4 @@ -function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } +function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import React from 'react'; export const Button = ({ isDisabled = false, From b3880d760a13fe756b272f18e8bfcb936b496b00 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Wed, 7 Aug 2024 13:52:02 +0800 Subject: [PATCH 065/135] Build: Revert bad lockfile changes --- .../8428-js-static-prop-types/docgen.snapshot | 2 +- .../docgen.snapshot | 2 +- code/yarn.lock | 993 ++++++------------ 3 files changed, 317 insertions(+), 680 deletions(-) diff --git a/code/renderers/react/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot b/code/renderers/react/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot index 2fb12d5579e7..516d6a99d828 100644 --- a/code/renderers/react/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot +++ b/code/renderers/react/template/stories/docgen-components/8428-js-static-prop-types/docgen.snapshot @@ -1,4 +1,4 @@ -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } import React from 'react'; diff --git a/code/renderers/react/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot b/code/renderers/react/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot index deeed4ffa007..96720e8f4df7 100644 --- a/code/renderers/react/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot +++ b/code/renderers/react/template/stories/docgen-components/9556-ts-react-default-exports/docgen.snapshot @@ -1,4 +1,4 @@ -function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } +function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } import React from 'react'; export const Button = ({ isDisabled = false, diff --git a/code/yarn.lock b/code/yarn.lock index 61f59f9f026d..59184450da84 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -12,13 +12,6 @@ __metadata: languageName: node linkType: hard -"@adobe/css-tools@npm:^4.3.2": - version: 4.3.3 - resolution: "@adobe/css-tools@npm:4.3.3" - checksum: 10c0/e76e712df713964b87cdf2aca1f0477f19bebd845484d5fcba726d3ec7782366e2f26ec8cb2dcfaf47081a5c891987d8a9f5c3f30d11e1eb3c1848adc27fcb24 - languageName: node - linkType: hard - "@adobe/css-tools@npm:^4.4.0": version: 4.4.0 resolution: "@adobe/css-tools@npm:4.4.0" @@ -377,16 +370,6 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.24.1": - version: 7.24.2 - resolution: "@babel/code-frame@npm:7.24.2" - dependencies: - "@babel/highlight": "npm:^7.24.2" - picocolors: "npm:^1.0.0" - checksum: 10c0/d1d4cba89475ab6aab7a88242e1fd73b15ecb9f30c109b69752956434d10a26a52cbd37727c4eca104b6d45227bd1dfce39a6a6f4a14c9b2f07f871e968cf406 - languageName: node - linkType: hard - "@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5, @babel/compat-data@npm:^7.24.4, @babel/compat-data@npm:^7.24.7": version: 7.24.7 resolution: "@babel/compat-data@npm:7.24.7" @@ -487,18 +470,6 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.24.1": - version: 7.24.4 - resolution: "@babel/generator@npm:7.24.4" - dependencies: - "@babel/types": "npm:^7.24.0" - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^2.5.1" - checksum: 10c0/67a1b2f7cc985aaaa11b01e8ddd4fffa4f285837bc7a209738eb8203aa34bdafeb8507ed75fd883ddbabd641a036ca0a8d984e760f28ad4a9d60bff29d0a60bb - languageName: node - linkType: hard - "@babel/helper-annotate-as-pure@npm:7.22.5": version: 7.22.5 resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" @@ -517,16 +488,17 @@ __metadata: languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.7" dependencies: - "@babel/types": "npm:^7.22.15" - checksum: 10c0/2535e3824ca6337f65786bbac98e562f71699f25532cecd196f027d7698b4967a96953d64e36567956658ad1a05ccbdc62d1ba79ee751c79f4f1d2d3ecc2e01c + "@babel/traverse": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/0ed84abf848c79fb1cd4c1ddac12c771d32c1904d87fc3087f33cfdeb0c2e0db4e7892b74b407d9d8d0c000044f3645a7391a781f788da8410c290bb123a1f13 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.12.0, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": +"@babel/helper-compilation-targets@npm:^7.12.0, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6, @babel/helper-compilation-targets@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-compilation-targets@npm:7.24.7" dependencies: @@ -539,7 +511,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.24.0": +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.24.0, @babel/helper-create-class-features-plugin@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-create-class-features-plugin@npm:7.24.7" dependencies: @@ -558,26 +530,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.24.1, @babel/helper-create-class-features-plugin@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/helper-create-class-features-plugin@npm:7.24.4" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-member-expression-to-functions": "npm:^7.23.0" - "@babel/helper-optimise-call-expression": "npm:^7.22.5" - "@babel/helper-replace-supers": "npm:^7.24.1" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" - "@babel/helper-split-export-declaration": "npm:^7.22.6" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/6ebb38375dcd44c79f40008c2de4d023376cf436c135439f15c9c54603c2d6a8ada39b2e07be545da684d9e40b602a0cb0d1670f3877d056deb5f0d786c4bf86 - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6": +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.7" dependencies: @@ -590,19 +543,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - regexpu-core: "npm:^5.3.1" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/8eba4c1b7b94a83e7a82df5c3e504584ff0ba6ab8710a67ecc2c434a7fb841a29c2f5c94d2de51f25446119a1df538fa90b37bd570db22ddd5e7147fe98277c6 - languageName: node - linkType: hard - "@babel/helper-define-polyfill-provider@npm:^0.5.0": version: 0.5.0 resolution: "@babel/helper-define-polyfill-provider@npm:0.5.0" @@ -618,21 +558,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.6.0": - version: 0.6.0 - resolution: "@babel/helper-define-polyfill-provider@npm:0.6.0" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.22.6" - "@babel/helper-plugin-utils": "npm:^7.22.5" - debug: "npm:^4.1.1" - lodash.debounce: "npm:^4.0.8" - resolve: "npm:^1.14.2" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/bf6af52fadbbebc5bf71166b91eac4fc21431ec9b0d2a94063f3a3d900ed44aa1384ad23e920a85e7a657fcf3e80edb2eaaac9d902bd1e632f3b50c836b45c53 - languageName: node - linkType: hard - "@babel/helper-define-polyfill-provider@npm:^0.6.1, @babel/helper-define-polyfill-provider@npm:^0.6.2": version: 0.6.2 resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" @@ -657,16 +582,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-function-name@npm:7.23.0" - dependencies: - "@babel/template": "npm:^7.22.15" - "@babel/types": "npm:^7.23.0" - checksum: 10c0/d771dd1f3222b120518176733c52b7cadac1c256ff49b1889dbbe5e3fed81db855b8cc4e40d949c9d3eae0e795e8229c1c8c24c0e83f27cfa6ee3766696c6428 - languageName: node - linkType: hard - "@babel/helper-function-name@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-function-name@npm:7.24.7" @@ -677,15 +592,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-hoist-variables@npm:7.22.5" - dependencies: - "@babel/types": "npm:^7.22.5" - checksum: 10c0/60a3077f756a1cd9f14eb89f0037f487d81ede2b7cfe652ea6869cd4ec4c782b0fb1de01b8494b9a2d2050e3d154d7d5ad3be24806790acfb8cbe2073bf1e208 - languageName: node - linkType: hard - "@babel/helper-hoist-variables@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-hoist-variables@npm:7.24.7" @@ -695,15 +601,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" - dependencies: - "@babel/types": "npm:^7.23.0" - checksum: 10c0/b810daddf093ffd0802f1429052349ed9ea08ef7d0c56da34ffbcdecbdafac86f95bdea2fe30e0e0e629febc7dd41b56cb5eacc10d1a44336d37b755dac31fa4 - languageName: node - linkType: hard - "@babel/helper-member-expression-to-functions@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-member-expression-to-functions@npm:7.24.7" @@ -714,25 +611,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.8.3": - version: 7.22.15 - resolution: "@babel/helper-module-imports@npm:7.22.15" - dependencies: - "@babel/types": "npm:^7.22.15" - checksum: 10c0/4e0d7fc36d02c1b8c8b3006dfbfeedf7a367d3334a04934255de5128115ea0bafdeb3e5736a2559917f0653e4e437400d54542da0468e08d3cbc86d3bbfa8f30 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.24.1, @babel/helper-module-imports@npm:^7.24.3": - version: 7.24.3 - resolution: "@babel/helper-module-imports@npm:7.24.3" - dependencies: - "@babel/types": "npm:^7.24.0" - checksum: 10c0/052c188adcd100f5e8b6ff0c9643ddaabc58b6700d3bbbc26804141ad68375a9f97d9d173658d373d31853019e65f62610239e3295cdd58e573bdcb2fded188d - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.24.7": +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.24.3, @babel/helper-module-imports@npm:^7.24.7, @babel/helper-module-imports@npm:^7.8.3": version: 7.24.7 resolution: "@babel/helper-module-imports@npm:7.24.7" dependencies: @@ -742,7 +621,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.23.3": +"@babel/helper-module-transforms@npm:^7.23.3, @babel/helper-module-transforms@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-module-transforms@npm:7.24.7" dependencies: @@ -757,15 +636,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" - dependencies: - "@babel/types": "npm:^7.22.5" - checksum: 10c0/31b41a764fc3c585196cf5b776b70cf4705c132e4ce9723f39871f215f2ddbfb2e28a62f9917610f67c8216c1080482b9b05f65dd195dae2a52cef461f2ac7b8 - languageName: node - linkType: hard - "@babel/helper-optimise-call-expression@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" @@ -775,21 +645,14 @@ __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.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.24.0 - resolution: "@babel/helper-plugin-utils@npm:7.24.0" - checksum: 10c0/90f41bd1b4dfe7226b1d33a4bb745844c5c63e400f9e4e8bf9103a7ceddd7d425d65333b564d9daba3cebd105985764d51b4bd4c95822b97c2e3ac1201a8a5da - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.24.7": +"@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.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.24.7 resolution: "@babel/helper-plugin-utils@npm:7.24.7" checksum: 10c0/c3d38cd9b3520757bb4a279255cc3f956fc0ac1c193964bd0816ebd5c86e30710be8e35252227e0c9d9e0f4f56d9b5f916537f2bc588084b0988b4787a967d31 languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.22.20": +"@babel/helper-remap-async-to-generator@npm:^7.22.20, @babel/helper-remap-async-to-generator@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-remap-async-to-generator@npm:7.24.7" dependencies: @@ -802,19 +665,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/helper-replace-supers@npm:7.24.1" - dependencies: - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-member-expression-to-functions": "npm:^7.23.0" - "@babel/helper-optimise-call-expression": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/d39a3df7892b7c3c0e307fb229646168a9bd35e26a72080c2530729322600e8cff5f738f44a14860a2358faffa741b6a6a0d6749f113387b03ddbfa0ec10e1a0 - languageName: node - linkType: hard - "@babel/helper-replace-supers@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-replace-supers@npm:7.24.7" @@ -828,15 +678,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-simple-access@npm:7.22.5" - dependencies: - "@babel/types": "npm:^7.22.5" - checksum: 10c0/f0cf81a30ba3d09a625fd50e5a9069e575c5b6719234e04ee74247057f8104beca89ed03e9217b6e9b0493434cedc18c5ecca4cea6244990836f1f893e140369 - languageName: node - linkType: hard - "@babel/helper-simple-access@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-simple-access@npm:7.24.7" @@ -857,16 +698,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" - dependencies: - "@babel/types": "npm:^7.22.5" - checksum: 10c0/ab7fa2aa709ab49bb8cd86515a1e715a3108c4bb9a616965ba76b43dc346dee66d1004ccf4d222b596b6224e43e04cbc5c3a34459501b388451f8c589fbc3691 - languageName: node - linkType: hard - -"@babel/helper-split-export-declaration@npm:7.22.6, @babel/helper-split-export-declaration@npm:^7.22.6": +"@babel/helper-split-export-declaration@npm:7.22.6": version: 7.22.6 resolution: "@babel/helper-split-export-declaration@npm:7.22.6" dependencies: @@ -884,13 +716,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/helper-string-parser@npm:7.23.4" - checksum: 10c0/f348d5637ad70b6b54b026d6544bd9040f78d24e7ec245a0fc42293968181f6ae9879c22d89744730d246ce8ec53588f716f102addd4df8bbc79b73ea10004ac - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-string-parser@npm:7.24.7" @@ -898,13 +723,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-validator-identifier@npm:7.22.20" - checksum: 10c0/dcad63db345fb110e032de46c3688384b0008a42a4845180ce7cd62b1a9c0507a1bed727c4d1060ed1a03ae57b4d918570259f81724aaac1a5b776056f37504e - languageName: node - linkType: hard - "@babel/helper-validator-identifier@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-validator-identifier@npm:7.24.7" @@ -932,25 +750,12 @@ __metadata: linkType: hard "@babel/helpers@npm:^7.23.9, @babel/helpers@npm:^7.24.0, @babel/helpers@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/helpers@npm:7.24.4" - dependencies: - "@babel/template": "npm:^7.24.0" - "@babel/traverse": "npm:^7.24.1" - "@babel/types": "npm:^7.24.0" - checksum: 10c0/747ef62b7fe87de31a2f3c19ff337a86cbb79be2f6c18af63133b614ab5a8f6da5b06ae4b06fb0e71271cb6a27efec6f8b6c9f44c60b8a18777832dc7929e6c5 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.24.2": - version: 7.24.2 - resolution: "@babel/highlight@npm:7.24.2" + version: 7.24.7 + resolution: "@babel/helpers@npm:7.24.7" dependencies: - "@babel/helper-validator-identifier": "npm:^7.22.20" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10c0/98ce00321daedeed33a4ed9362dc089a70375ff1b3b91228b9f05e6591d387a81a8cba68886e207861b8871efa0bc997ceabdd9c90f6cce3ee1b2f7f941b42db + "@babel/template": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/aa8e230f6668773e17e141dbcab63e935c514b4b0bf1fed04d2eaefda17df68e16b61a56573f7f1d4d1e605ce6cc162b5f7e9fdf159fde1fd9b77c920ae47d27 languageName: node linkType: hard @@ -966,7 +771,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.11.5, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.5, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.9.6": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.11.5, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.5, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.4, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.9.6": version: 7.24.7 resolution: "@babel/parser@npm:7.24.7" bin: @@ -975,15 +780,6 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.24.1, @babel/parser@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/parser@npm:7.24.4" - bin: - parser: ./bin/babel-parser.js - checksum: 10c0/8381e1efead5069cb7ed2abc3a583f4a86289b2f376c75cecc69f59a8eb36df18274b1886cecf2f97a6a0dff5334b27330f58535be9b3e4e26102cc50e12eac8 - languageName: node - linkType: hard - "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.4": version: 7.24.4 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.4" @@ -997,38 +793,38 @@ __metadata: linkType: hard "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3, @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/d4e592e6fc4878654243d2e7b51ea86471b868a8cb09de29e73b65d2b64159990c6c198fd7c9c2af2e38b1cddf70206243792853c47384a84f829dada152f605 + checksum: 10c0/a36307428ecc1a01b00cf90812335eed1575d13f211ab24fe4d0c55c28a2fcbd4135f142efabc3b277b2a8e09ee05df594a1272353f061b63829495b5dcfdb96 languageName: node linkType: hard "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.23.3, @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.1" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.13.0 - checksum: 10c0/351c36e45795a7890d610ab9041a52f4078a59429f6e74c281984aa44149a10d43e82b3a8172c703c0d5679471e165d1c02b6d2e45a677958ee301b89403f202 + checksum: 10c0/aeb6e7aa363a47f815cf956ea1053c5dd8b786a17799f065c9688ba4b0051fe7565d258bbe9400bfcbfb3114cb9fda66983e10afe4d750bc70ff75403e15dd36 languageName: node linkType: hard "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.23.7, @babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.7" dependencies: - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-environment-visitor": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/d7dd5a59a54635a3152895dcaa68f3370bb09d1f9906c1e72232ff759159e6be48de4a598a993c986997280a2dc29922a48aaa98020f16439f3f57ad72788354 + checksum: 10c0/2b52a73e444f6adc73f927b623e53a4cf64397170dd1071268536df1b3db1e02131418c8dc91351af48837a6298212118f4a72d5407f8005cf9a732370a315b0 languageName: node linkType: hard @@ -1206,24 +1002,24 @@ __metadata: linkType: hard "@babel/plugin-syntax-import-assertions@npm:^7.23.3, @babel/plugin-syntax-import-assertions@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/72f0340d73e037f0702c61670054e0af66ece7282c5c2f4ba8de059390fee502de282defdf15959cd9f71aa18dc5c5e4e7a0fde317799a0600c6c4e0a656d82b + checksum: 10c0/b82c53e095274ee71c248551352d73441cf65b3b3fc0107258ba4e9aef7090772a425442b3ed1c396fa207d0efafde8929c87a17d3c885b3ca2021316e87e246 languageName: node linkType: hard "@babel/plugin-syntax-import-attributes@npm:^7.23.3, @babel/plugin-syntax-import-attributes@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/309634e3335777aee902552b2cf244c4a8050213cc878b3fb9d70ad8cbbff325dc46ac5e5791836ff477ea373b27832238205f6ceaff81f7ea7c4c7e8fbb13bb + checksum: 10c0/eccc54d0f03c96d0eec7a6e2fa124dadbc7298345b62ffc4238f173308c4325b5598f139695ff05a95cf78412ef6903599e4b814496612bf39aad4715a16375b languageName: node linkType: hard @@ -1348,18 +1144,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-syntax-typescript@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/7a81e277dcfe3138847e8e5944e02a42ff3c2e864aea6f33fd9b70d1556d12b0e70f0d56cc1985d353c91bcbf8fe163e6cc17418da21129b7f7f1d8b9ac00c93 - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.3.3": +"@babel/plugin-syntax-typescript@npm:^7.24.7, @babel/plugin-syntax-typescript@npm:^7.3.3": version: 7.24.7 resolution: "@babel/plugin-syntax-typescript@npm:7.24.7" dependencies: @@ -1383,13 +1168,13 @@ __metadata: linkType: hard "@babel/plugin-transform-arrow-functions@npm:^7.23.3, @babel/plugin-transform-arrow-functions@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f44bfacf087dc21b422bab99f4e9344ee7b695b05c947dacae66de05c723ab9d91800be7edc1fa016185e8c819f3aca2b4a5f66d8a4d1e47d9bad80b8fa55b8e + checksum: 10c0/6ac05a54e5582f34ac6d5dc26499e227227ec1c7fa6fc8de1f3d40c275f140d3907f79bbbd49304da2d7008a5ecafb219d0b71d78ee3290ca22020d878041245 languageName: node linkType: hard @@ -1408,16 +1193,16 @@ __metadata: linkType: hard "@babel/plugin-transform-async-generator-functions@npm:^7.23.9, @babel/plugin-transform-async-generator-functions@npm:^7.24.3": - version: 7.24.3 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.3" + version: 7.24.7 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.7" dependencies: - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-remap-async-to-generator": "npm:^7.22.20" + "@babel/helper-environment-visitor": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-remap-async-to-generator": "npm:^7.24.7" "@babel/plugin-syntax-async-generators": "npm:^7.8.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/55ceed059f819dcccbfe69600bfa1c055ada466bd54eda117cfdd2cf773dd85799e2f6556e4a559b076e93b9704abcca2aef9d72aad7dc8a5d3d17886052f1d3 + checksum: 10c0/6b5e33ae66dce0afce9b06d8dace6fa052528e60f7622aa6cfd3e71bd372ca5079d426e78336ca564bc0d5f37acbcda1b21f4fe656fcb642f1a93a697ab39742 languageName: node linkType: hard @@ -1435,173 +1220,162 @@ __metadata: linkType: hard "@babel/plugin-transform-async-to-generator@npm:^7.23.3, @babel/plugin-transform-async-to-generator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.7" dependencies: - "@babel/helper-module-imports": "npm:^7.24.1" - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-remap-async-to-generator": "npm:^7.22.20" + "@babel/helper-module-imports": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-remap-async-to-generator": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/3731ba8e83cbea1ab22905031f25b3aeb0b97c6467360a2cc685352f16e7c786417d8883bc747f5a0beff32266bdb12a05b6292e7b8b75967087200a7bc012c4 + checksum: 10c0/83c82e243898875af8457972a26ab29baf8a2078768ee9f35141eb3edff0f84b165582a2ff73e90a9e08f5922bf813dbf15a85c1213654385198f4591c0dc45d languageName: node linkType: hard "@babel/plugin-transform-block-scoped-functions@npm:^7.23.3, @babel/plugin-transform-block-scoped-functions@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/6fbaa85f5204f34845dfc0bebf62fdd3ac5a286241c85651e59d426001e7a1785ac501f154e093e0b8ee49e1f51e3f8b06575a5ae8d4a9406d43e4816bf18c37 - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoping@npm:^7.23.4, @babel/plugin-transform-block-scoping@npm:^7.8.3": - version: 7.23.4 - resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" + version: 7.24.7 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/83006804dddf980ab1bcd6d67bc381e24b58c776507c34f990468f820d0da71dba3697355ca4856532fa2eeb2a1e3e73c780f03760b5507a511cbedb0308e276 + checksum: 10c0/113e86de4612ae91773ff5cb6b980f01e1da7e26ae6f6012127415d7ae144e74987bc23feb97f63ba4bc699331490ddea36eac004d76a20d5369e4cc6a7f61cd languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/plugin-transform-block-scoping@npm:7.24.4" +"@babel/plugin-transform-block-scoping@npm:^7.23.4, @babel/plugin-transform-block-scoping@npm:^7.24.4, @babel/plugin-transform-block-scoping@npm:^7.8.3": + version: 7.24.7 + resolution: "@babel/plugin-transform-block-scoping@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/62f55fd1b60a115506e9553c3bf925179b1ab8a42dc31471c4e3ada20573a488b5c5e3317145da352493ef07f1d9750ce1f8a49cb3f39489ac1ab42e5ddc883d + checksum: 10c0/dcbc5e385c0ca5fb5736b1c720c90755cffe9f91d8c854f82e61e59217dd3f6c91b3633eeee4b55a89d3f59e5275d0f5b0b1b1363d4fa70c49c468b55aa87700 languageName: node linkType: hard "@babel/plugin-transform-class-properties@npm:^7.22.5, @babel/plugin-transform-class-properties@npm:^7.23.3, @babel/plugin-transform-class-properties@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-class-properties@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-class-properties@npm:7.24.7" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.24.1" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-create-class-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/00dff042ac9df4ae67b5ef98b1137cc72e0a24e6d911dc200540a8cb1f00b4cff367a922aeb22da17da662079f0abcd46ee1c5f4cdf37ceebf6ff1639bb9af27 + checksum: 10c0/75018a466c7ede3d2397e158891c224ba7fca72864506ce067ddbc02fc65191d44da4d6379c996d0c7f09019e26b5c3f5f1d3a639cd98366519723886f0689d0 languageName: node linkType: hard "@babel/plugin-transform-class-static-block@npm:^7.23.4, @babel/plugin-transform-class-static-block@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/plugin-transform-class-static-block@npm:7.24.4" + version: 7.24.7 + resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.24.4" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-create-class-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.12.0 - checksum: 10c0/19dfeaf4a2ac03695034f7211a8b5ad89103b224608ac3e91791055107c5fe4d7ebe5d9fbb31b4a91265694af78762260642eb270f4b239c175984ee4b253f80 + checksum: 10c0/b0ade39a3d09dce886f79dbd5907c3d99b48167eddb6b9bbde24a0598129654d7017e611c20494cdbea48b07ac14397cd97ea34e3754bbb2abae4e698128eccb languageName: node linkType: hard "@babel/plugin-transform-classes@npm:^7.23.8, @babel/plugin-transform-classes@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-classes@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-classes@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-replace-supers": "npm:^7.24.1" - "@babel/helper-split-export-declaration": "npm:^7.22.6" + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + "@babel/helper-compilation-targets": "npm:^7.24.7" + "@babel/helper-environment-visitor": "npm:^7.24.7" + "@babel/helper-function-name": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-replace-supers": "npm:^7.24.7" + "@babel/helper-split-export-declaration": "npm:^7.24.7" globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/586a95826be4d68056fa23d8e6c34353ce2ea59bf3ca8cf62bc784e60964d492d76e1b48760c43fd486ffb65a79d3fed9a4f91289e4f526f88c3b6acc0dfb00e + checksum: 10c0/e51dba7ce8b770d1eee929e098d5a3be3efc3e8b941e22dda7d0097dc4e7be5feabd2da7b707ac06fcac5661b31223c541941dec08ce76c1faa55544d87d06ec languageName: node linkType: hard "@babel/plugin-transform-computed-properties@npm:^7.23.3, @babel/plugin-transform-computed-properties@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-computed-properties@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/template": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/template": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8292c508b656b7722e2c2ca0f6f31339852e3ed2b9b80f6e068a4010e961b431ca109ecd467fc906283f4b1574c1e7b1cb68d35a4dea12079d386c15ff7e0eac + checksum: 10c0/25636dbc1f605c0b8bc60aa58628a916b689473d11551c9864a855142e36742fe62d4a70400ba3b74902338e77fb3d940376c0a0ba154b6b7ec5367175233b49 languageName: node linkType: hard "@babel/plugin-transform-destructuring@npm:^7.23.3, @babel/plugin-transform-destructuring@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-destructuring@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-destructuring@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a08e706a9274a699abc3093f38c72d4a5354eac11c44572cc9ea049915b6e03255744297069fd94fcce82380725c5d6b1b11b9a84c0081aa3aa6fc2fdab98ef6 + checksum: 10c0/929f07a807fb62230bfbf881cfcedf187ac5daf2f1b01da94a75c7a0f6f72400268cf4bcfee534479e43260af8193e42c31ee03c8b0278ba77d0036ed6709c27 languageName: node linkType: hard "@babel/plugin-transform-dotall-regex@npm:^7.23.3, @babel/plugin-transform-dotall-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/758def705ec5a87ef910280dc2df5d2fda59dc5d4771c1725c7aed0988ae5b79e29aeb48109120301a3e1c6c03dfac84700469de06f38ca92c96834e09eadf5d + checksum: 10c0/793f14c9494972d294b7e7b97b747f47874b6d57d7804d3443c701becf5db192c9311be6a1835c07664486df1f5c60d33196c36fb7e11a53015e476b4c145b33 languageName: node linkType: hard "@babel/plugin-transform-duplicate-keys@npm:^7.23.3, @babel/plugin-transform-duplicate-keys@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/41072f57f83a6c2b15f3ee0b6779cdca105ff3d98061efe92ac02d6c7b90fdb6e7e293b8a4d5b9c690d9ae5d3ae73e6bde4596dc4d8c66526a0e5e1abc73c88c + checksum: 10c0/75ff7ec1117ac500e77bf20a144411d39c0fdd038f108eec061724123ce6d1bb8d5bd27968e466573ee70014f8be0043361cdb0ef388f8a182d1d97ad67e51b9 languageName: node linkType: hard "@babel/plugin-transform-dynamic-import@npm:^7.23.4, @babel/plugin-transform-dynamic-import@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/7e2834780e9b5251ef341854043a89c91473b83c335358620ca721554877e64e416aeb3288a35f03e825c4958e07d5d00ead08c4490fadc276a21fe151d812f1 + checksum: 10c0/eeda48372efd0a5103cb22dadb13563c975bce18ae85daafbb47d57bb9665d187da9d4fe8d07ac0a6e1288afcfcb73e4e5618bf75ff63fddf9736bfbf225203b languageName: node linkType: hard "@babel/plugin-transform-exponentiation-operator@npm:^7.23.3, @babel/plugin-transform-exponentiation-operator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.7" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.22.15" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f0fc4c5a9add25fd6bf23dabe6752e9b7c0a2b2554933dddfd16601245a2ba332b647951079c782bf3b94c6330e3638b9b4e0227f469a7c1c707446ba0eba6c7 + checksum: 10c0/ace3e11c94041b88848552ba8feb39ae4d6cad3696d439ff51445bd2882d8b8775d85a26c2c0edb9b5e38c9e6013cc11b0dea89ec8f93c7d9d7ee95e3645078c languageName: node linkType: hard "@babel/plugin-transform-export-namespace-from@npm:^7.23.4, @babel/plugin-transform-export-namespace-from@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/510bb23b2423d5fbffef69b356e4050929c21a7627e8194b1506dd935c7d9cbbd696c9ae9d7c3bcd7e6e7b69561b0b290c2d72d446327b40fc20ce40bbca6712 + checksum: 10c0/4e144d7f1c57bc63b4899dbbbdfed0880f2daa75ea9c7251c7997f106e4b390dc362175ab7830f11358cb21f6b972ca10a43a2e56cd789065f7606b082674c0c languageName: node linkType: hard @@ -1618,171 +1392,171 @@ __metadata: linkType: hard "@babel/plugin-transform-for-of@npm:^7.23.6, @babel/plugin-transform-for-of@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-for-of@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-for-of@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e4bc92b1f334246e62d4bde079938df940794db564742034f6597f2e38bd426e11ae8c5670448e15dd6e45c462f2a9ab3fa87259bddf7c08553ffd9457fc2b2c + checksum: 10c0/77629b1173e55d07416f05ba7353caa09d2c2149da2ca26721ab812209b63689d1be45116b68eadc011c49ced59daf5320835b15245eb7ae93ae0c5e8277cfc0 languageName: node linkType: hard "@babel/plugin-transform-function-name@npm:^7.23.3, @babel/plugin-transform-function-name@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-function-name@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-function-name@npm:7.24.7" dependencies: - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-compilation-targets": "npm:^7.24.7" + "@babel/helper-function-name": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/65c1735ec3b5e43db9b5aebf3c16171c04b3050c92396b9e22dda0d2aaf51f43fdcf147f70a40678fd9a4ee2272a5acec4826e9c21bcf968762f4c184897ad75 + checksum: 10c0/3e9642428d6952851850d89ea9307d55946528d18973784d0e2f04a651b23bd9924dd8a2641c824b483bd4ab1223bab1d2f6a1106a939998f7ced512cb60ac5b languageName: node linkType: hard "@babel/plugin-transform-json-strings@npm:^7.23.4, @babel/plugin-transform-json-strings@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-json-strings@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-json-strings@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-json-strings": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/13d9b6a3c31ab4be853b3d49d8d1171f9bd8198562fd75da8f31e7de31398e1cfa6eb1d073bed93c9746e4f9c47a53b20f8f4c255ece3f88c90852ad3181dc2d + checksum: 10c0/17c72cd5bf3e90e722aabd333559275f3309e3fa0b9cea8c2944ab83ae01502c71a2be05da5101edc02b3fc8df15a8dbb9b861cbfcc8a52bf5e797cf01d3a40a languageName: node linkType: hard "@babel/plugin-transform-literals@npm:^7.23.3, @babel/plugin-transform-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-literals@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a27cc7d565ee57b5a2bf136fa889c5c2f5988545ae7b3b2c83a7afe5dd37dfac80dca88b1c633c65851ce6af7d2095c04c01228657ce0198f918e64b5ccd01fa + checksum: 10c0/9f3f6f3831929cd2a977748c07addf9944d5cccb50bd3a24a58beb54f91f00d6cacd3d7831d13ffe1ad6f8aba0aefd7bca5aec65d63b77f39c62ad1f2d484a3e languageName: node linkType: hard "@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4, @babel/plugin-transform-logical-assignment-operators@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/98a2e0843ddfe51443c1bfcf08ba40ad8856fd4f8e397b392a5390a54f257c8c1b9a99d8ffc0fc7e8c55cce45e2cd9c2795a4450303f48f501bcbd662de44554 + checksum: 10c0/dbe882eb9053931f2ab332c50fc7c2a10ef507d6421bd9831adbb4cb7c9f8e1e5fbac4fbd2e007f6a1bf1df1843547559434012f118084dc0bf42cda3b106272 languageName: node linkType: hard "@babel/plugin-transform-member-expression-literals@npm:^7.23.3, @babel/plugin-transform-member-expression-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2af731d02aa4c757ef80c46df42264128cbe45bfd15e1812d1a595265b690a44ad036041c406a73411733540e1c4256d8174705ae6b8cfaf757fc175613993fd + checksum: 10c0/e789ae359bdf2d20e90bedef18dfdbd965c9ebae1cee398474a0c349590fda7c8b874e1a2ceee62e47e5e6ec1730e76b0f24e502164357571854271fc12cc684 languageName: node linkType: hard "@babel/plugin-transform-modules-amd@npm:^7.13.0, @babel/plugin-transform-modules-amd@npm:^7.23.3, @babel/plugin-transform-modules-amd@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-amd@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-amd@npm:7.24.7" dependencies: - "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-module-transforms": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/71fd04e5e7026e6e52701214b1e9f7508ba371b757e5075fbb938a79235ed66a54ce65f89bb92b59159e9f03f01b392e6c4de6d255b948bec975a90cfd6809ef + checksum: 10c0/6df7de7fce34117ca4b2fa07949b12274c03668cbfe21481c4037b6300796d50ae40f4f170527b61b70a67f26db906747797e30dbd0d9809a441b6e220b5728f languageName: node linkType: hard "@babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.23.0, @babel/plugin-transform-modules-commonjs@npm:^7.23.3, @babel/plugin-transform-modules-commonjs@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.7" dependencies: - "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-simple-access": "npm:^7.22.5" + "@babel/helper-module-transforms": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-simple-access": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/efb3ea2047604a7eb44a9289311ebb29842fe6510ff8b66a77a60440448c65e1312a60dc48191ed98246bdbd163b5b6f3348a0669bcc0e3809e69c7c776b20fa + checksum: 10c0/9442292b3daf6a5076cdc3c4c32bf423bda824ccaeb0dd0dc8b3effaa1fecfcb0130ae6e647fef12a5d5ff25bcc99a0d6bfc6d24a7525345e1bcf46fcdf81752 languageName: node linkType: hard "@babel/plugin-transform-modules-systemjs@npm:^7.23.9, @babel/plugin-transform-modules-systemjs@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.7" dependencies: - "@babel/helper-hoist-variables": "npm:^7.22.5" - "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-validator-identifier": "npm:^7.22.20" + "@babel/helper-hoist-variables": "npm:^7.24.7" + "@babel/helper-module-transforms": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-validator-identifier": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/38145f8abe8a4ce2b41adabe5d65eb7bd54a139dc58e2885fec975eb5cf247bd938c1dd9f09145c46dbe57d25dd0ef7f00a020e5eb0cbe8195b2065d51e2d93d + checksum: 10c0/e2a795e0a6baafe26f4a74010622212ddd873170742d673f450e0097f8d984f6e6a95eb8ce41b05071ee9790c4be088b33801aaab3f78ee202c567634e52a331 languageName: node linkType: hard "@babel/plugin-transform-modules-umd@npm:^7.23.3, @babel/plugin-transform-modules-umd@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-umd@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-modules-umd@npm:7.24.7" dependencies: - "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-module-transforms": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/14c90c58562b54e17fe4a8ded3f627f9a993648f8378ef00cb2f6c34532032b83290d2ad54c7fff4f0c2cd49091bda780f8cc28926ec4b77a6c2141105a2e699 + checksum: 10c0/7791d290121db210e4338b94b4a069a1a79e4c7a8d7638d8159a97b281851bbed3048dac87a4ae718ad963005e6c14a5d28e6db2eeb2b04e031cee92fb312f85 languageName: node linkType: hard "@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" + version: 7.24.7 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.22.5" - "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/b0b072bef303670b5a98307bc37d1ac326cb7ad40ea162b89a03c2ffc465451be7ef05be95cb81ed28bfeb29670dc98fe911f793a67bceab18b4cb4c81ef48f3 + checksum: 10c0/41a0b0f2d0886318237440aa3b489f6d0305361d8671121777d9ff89f9f6de9d0c02ce93625049061426c8994064ef64deae8b819d1b14c00374a6a2336fb5d9 languageName: node linkType: hard "@babel/plugin-transform-new-target@npm:^7.23.3, @babel/plugin-transform-new-target@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-new-target@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-new-target@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c4cabe628163855f175a8799eb73d692b6f1dc347aae5022af0c253f80c92edb962e48ddccc98b691eff3d5d8e53c9a8f10894c33ba4cebc2e2f8f8fe554fb7a + checksum: 10c0/2540808a35e1a978e537334c43dab439cf24c93e7beb213a2e71902f6710e60e0184316643790c0a6644e7a8021e52f7ab8165e6b3e2d6651be07bdf517b67df languageName: node linkType: hard "@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c8532951506fb031287280cebeef10aa714f8a7cea2b62a13c805f0e0af945ba77a7c87e4bbbe4c37fe973e0e5d5e649cfac7f0374f57efc54cdf9656362a392 + checksum: 10c0/7243c8ff734ed5ef759dd8768773c4b443c12e792727e759a1aec2c7fa2bfdd24f1ecb42e292a7b3d8bd3d7f7b861cf256a8eb4ba144fc9cc463892c303083d9 languageName: node linkType: hard "@babel/plugin-transform-numeric-separator@npm:^7.23.4, @babel/plugin-transform-numeric-separator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/15e2b83292e586fb4f5b4b4021d4821a806ca6de2b77d5ad6c4e07aa7afa23704e31b4d683dac041afc69ac51b2461b96e8c98e46311cc1faba54c73f235044f + checksum: 10c0/e18e09ca5a6342645d00ede477731aa6e8714ff357efc9d7cda5934f1703b3b6fb7d3298dce3ce3ba53e9ff1158eab8f1aadc68874cc21a6099d33a1ca457789 languageName: node linkType: hard @@ -1798,44 +1572,44 @@ __metadata: linkType: hard "@babel/plugin-transform-object-rest-spread@npm:^7.24.0, @babel/plugin-transform-object-rest-spread@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" dependencies: - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-compilation-targets": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-transform-parameters": "npm:^7.24.1" + "@babel/plugin-transform-parameters": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/e301f1a66b63bafc2bce885305cc88ab30ec875b5e2c7933fb7f9cbf0d954685aa10334ffcecf147ba19d6a1d7ffab37baf4ce871849d395941c56fdb3060f73 + checksum: 10c0/9ad64bc003f583030f9da50614b485852f8edac93f8faf5d1cd855201a4852f37c5255ae4daf70dd4375bdd4874e16e39b91f680d4668ec219ba05441ce286eb languageName: node linkType: hard "@babel/plugin-transform-object-super@npm:^7.23.3, @babel/plugin-transform-object-super@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-object-super@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-object-super@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-replace-supers": "npm:^7.24.1" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-replace-supers": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d30e6b9e59a707efd7ed524fc0a8deeea046011a6990250f2e9280516683138e2d13d9c52daf41d78407bdab0378aef7478326f2a15305b773d851cb6e106157 + checksum: 10c0/770cebb4b4e1872c216b17069db9a13b87dfee747d359dc56d9fcdd66e7544f92dc6ab1861a4e7e0528196aaff2444e4f17dc84efd8eaf162d542b4ba0943869 languageName: node linkType: hard "@babel/plugin-transform-optional-catch-binding@npm:^7.23.4, @babel/plugin-transform-optional-catch-binding@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/68408b9ef772d9aa5dccf166c86dc4d2505990ce93e03dcfc65c73fb95c2511248e009ba9ccf5b96405fb85de1c16ad8291016b1cc5689ee4becb1e3050e0ae7 + checksum: 10c0/1e2f10a018f7d03b3bde6c0b70d063df8d5dd5209861d4467726cf834f5e3d354e2276079dc226aa8e6ece35f5c9b264d64b8229a8bb232829c01e561bcfb07a languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.23.0, @babel/plugin-transform-optional-chaining@npm:^7.23.4, @babel/plugin-transform-optional-chaining@npm:^7.24.1": +"@babel/plugin-transform-optional-chaining@npm:^7.23.0, @babel/plugin-transform-optional-chaining@npm:^7.23.4, @babel/plugin-transform-optional-chaining@npm:^7.24.1, @babel/plugin-transform-optional-chaining@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.7" dependencies: @@ -1848,7 +1622,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.23.3, @babel/plugin-transform-parameters@npm:^7.24.1": +"@babel/plugin-transform-parameters@npm:^7.23.3, @babel/plugin-transform-parameters@npm:^7.24.1, @babel/plugin-transform-parameters@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-transform-parameters@npm:7.24.7" dependencies: @@ -1860,39 +1634,39 @@ __metadata: linkType: hard "@babel/plugin-transform-private-methods@npm:^7.22.5, @babel/plugin-transform-private-methods@npm:^7.23.3, @babel/plugin-transform-private-methods@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-private-methods@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-private-methods@npm:7.24.7" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.24.1" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-create-class-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d8e18587d2a8b71a795da5e8841b0e64f1525a99ad73ea8b9caa331bc271d69646e2e1e749fd634321f3df9d126070208ddac22a27ccf070566b2efb74fecd99 + checksum: 10c0/5b7bf923b738fbe3ad6c33b260e0a7451be288edfe4ef516303fa787a1870cd87533bfbf61abb779c22ed003c2fc484dec2436fe75a48756f686c0241173d364 languageName: node linkType: hard "@babel/plugin-transform-private-property-in-object@npm:^7.23.4, @babel/plugin-transform-private-property-in-object@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-create-class-features-plugin": "npm:^7.24.1" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + "@babel/helper-create-class-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/33d2b9737de7667d7a1b704eef99bfecc6736157d9ea28c2e09010d5f25e33ff841c41d89a4430c5d47f4eb3384e24770fa0ec79600e1e38d6d16e2f9333b4b5 + checksum: 10c0/c6fa7defb90b1b0ed46f24ff94ff2e77f44c1f478d1090e81712f33cf992dda5ba347016f030082a2f770138bac6f4a9c2c1565e9f767a125901c77dd9c239ba languageName: node linkType: hard "@babel/plugin-transform-property-literals@npm:^7.23.3, @babel/plugin-transform-property-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-property-literals@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-property-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/3bf3e01f7bb8215a8b6d0081b6f86fea23e3a4543b619e059a264ede028bc58cdfb0acb2c43271271915a74917effa547bc280ac636a9901fa9f2fb45623f87e + checksum: 10c0/52564b58f3d111dc02d241d5892a4b01512e98dfdf6ef11b0ed62f8b11b0acacccef0fc229b44114fe8d1a57a8b70780b11bdd18b807d3754a781a07d8f57433 languageName: node linkType: hard @@ -1968,25 +1742,25 @@ __metadata: linkType: hard "@babel/plugin-transform-regenerator@npm:^7.23.3, @babel/plugin-transform-regenerator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-regenerator@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-regenerator@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" regenerator-transform: "npm:^0.15.2" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0a333585d7c0b38d31cc549d0f3cf7c396d1d50b6588a307dc58325505ddd4f5446188bc536c4779431b396251801b3f32d6d8e87db8274bc84e8c41950737f7 + checksum: 10c0/d2dc2c788fdae9d97217e70d46ba8ca9db0035c398dc3e161552b0c437113719a75c04f201f9c91ddc8d28a1da60d0b0853f616dead98a396abb9c845c44892b languageName: node linkType: hard "@babel/plugin-transform-reserved-words@npm:^7.23.3, @babel/plugin-transform-reserved-words@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-reserved-words@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/936d6e73cafb2cbb495f6817c6f8463288dbc9ab3c44684b931ebc1ece24f0d55dfabc1a75ba1de5b48843d0fef448dcfdbecb8485e4014f8f41d0d1440c536f + checksum: 10c0/2229de2768615e7f5dc0bbc55bc121b5678fd6d2febd46c74a58e42bb894d74cd5955c805880f4e02d0e1cf94f6886270eda7fafc1be9305a1ec3b9fd1d063f5 languageName: node linkType: hard @@ -2023,119 +1797,119 @@ __metadata: linkType: hard "@babel/plugin-transform-shorthand-properties@npm:^7.23.3, @babel/plugin-transform-shorthand-properties@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8273347621183aada3cf1f3019d8d5f29467ba13a75b72cb405bc7f23b7e05fd85f4edb1e4d9f0103153dddb61826a42dc24d466480d707f8932c1923a4c25fa + checksum: 10c0/41b155bdbb3be66618358488bf7731b3b2e8fff2de3dbfd541847720a9debfcec14db06a117abedd03c9cd786db20a79e2a86509a4f19513f6e1b610520905cf languageName: node linkType: hard "@babel/plugin-transform-spread@npm:^7.23.3, @babel/plugin-transform-spread@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-spread@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-spread@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/50a0302e344546d57e5c9f4dea575f88e084352eeac4e9a3e238c41739eef2df1daf4a7ebbb3ccb7acd3447f6a5ce9938405f98bf5f5583deceb8257f5a673c9 + checksum: 10c0/facba1553035f76b0d2930d4ada89a8cd0f45b79579afd35baefbfaf12e3b86096995f4b0c402cf9ee23b3f2ea0a4460c3b1ec0c192d340962c948bb223d4e66 languageName: node linkType: hard "@babel/plugin-transform-sticky-regex@npm:^7.23.3, @babel/plugin-transform-sticky-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/786fe2ae11ef9046b9fa95677935abe495031eebf1274ad03f2054a20adea7b9dbd00336ac0b143f7924bc562e5e09793f6e8613607674b97e067d4838ccc4a0 + checksum: 10c0/5a74ed2ed0a3ab51c3d15fcaf09d9e2fe915823535c7a4d7b019813177d559b69677090e189ec3d5d08b619483eb5ad371fbcfbbff5ace2a76ba33ee566a1109 languageName: node linkType: hard "@babel/plugin-transform-template-literals@npm:^7.23.3, @babel/plugin-transform-template-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-template-literals@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-template-literals@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/f73bcda5488eb81c6e7a876498d9e6b72be32fca5a4d9db9053491a2d1300cd27b889b463fd2558f3cd5826a85ed00f61d81b234aa55cb5a0abf1b6fa1bd5026 + checksum: 10c0/3630f966257bcace122f04d3157416a09d40768c44c3a800855da81146b009187daa21859d1c3b7d13f4e19e8888e60613964b175b2275d451200fb6d8d6cfe6 languageName: node linkType: hard "@babel/plugin-transform-typeof-symbol@npm:^7.23.3, @babel/plugin-transform-typeof-symbol@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d392f549bfd13414f59feecdf3fb286f266a3eb9107a9de818e57907bda56eed08d1f6f8e314d09bf99252df026a7fd4d5df839acd45078a777abcebaa9a8593 + checksum: 10c0/5649e7260a138681e68b296ab5931e2b1f132f287d6b4131d49b24f9dc20d62902b7e9d63c4d2decd5683b41df35ef4b9b03f58c7f9f65e4c25a6d8bbf04e9e9 languageName: node linkType: hard "@babel/plugin-transform-typescript@npm:^7.13.0, @babel/plugin-transform-typescript@npm:^7.24.1": - version: 7.24.4 - resolution: "@babel/plugin-transform-typescript@npm:7.24.4" + version: 7.24.7 + resolution: "@babel/plugin-transform-typescript@npm:7.24.7" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-create-class-features-plugin": "npm:^7.24.4" - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/plugin-syntax-typescript": "npm:^7.24.1" + "@babel/helper-annotate-as-pure": "npm:^7.24.7" + "@babel/helper-create-class-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/plugin-syntax-typescript": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/fa6625046f219cdc75061025c8031ada75ef631b137f1442e3d0054ba4e63548eb12cf55e2e1f442c889aa5fdd76d0d0b7904fdf812ce4c38748446227acc798 + checksum: 10c0/e8dacdc153a4c4599014b66eb01b94e3dc933d58d4f0cc3039c1a8f432e77b9df14f34a61964e014b975bf466f3fefd8c4768b3e887d3da1be9dc942799bdfdf languageName: node linkType: hard "@babel/plugin-transform-unicode-escapes@npm:^7.23.3, @babel/plugin-transform-unicode-escapes@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/67a72a1ed99639de6a93aead35b1993cb3f0eb178a8991fcef48732c38c9f0279c85bbe1e2e2477b85afea873e738ff0955a35057635ce67bc149038e2d8a28e + checksum: 10c0/8b18e2e66af33471a6971289492beff5c240e56727331db1d34c4338a6a368a82a7ed6d57ec911001b6d65643aed76531e1e7cac93265fb3fb2717f54d845e69 languageName: node linkType: hard "@babel/plugin-transform-unicode-property-regex@npm:^7.23.3, @babel/plugin-transform-unicode-property-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d9d9752df7d51bf9357c0bf3762fe16b8c841fca9ecf4409a16f15ccc34be06e8e71abfaee1251b7d451227e70e6b873b36f86b090efdb20f6f7de5fdb6c7a05 + checksum: 10c0/bc57656eb94584d1b74a385d378818ac2b3fca642e3f649fead8da5fb3f9de22f8461185936915dfb33d5a9104e62e7a47828331248b09d28bb2d59e9276de3e languageName: node linkType: hard "@babel/plugin-transform-unicode-regex@npm:^7.23.3, @babel/plugin-transform-unicode-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6046ab38e5d14ed97dbb921bd79ac1d7ad9d3286da44a48930e980b16896db2df21e093563ec3c916a630dc346639bf47c5924a33902a06fe3bbb5cdc7ef5f2f + checksum: 10c0/83f72a345b751566b601dc4d07e9f2c8f1bc0e0c6f7abb56ceb3095b3c9d304de73f85f2f477a09f8cc7edd5e65afd0ff9e376cdbcbea33bc0c28f3705b38fd9 languageName: node linkType: hard "@babel/plugin-transform-unicode-sets-regex@npm:^7.23.3, @babel/plugin-transform-unicode-sets-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.1" + version: 7.24.7 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.7" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/b6c1f6b90afeeddf97e5713f72575787fcb7179be7b4c961869bfbc66915f66540dc49da93e4369da15596bd44b896d1eb8a50f5e1fd907abd7a1a625901006b + checksum: 10c0/7457c0ee8e80a80cb6fdc1fe54ab115b52815627616ce9151be8ef292fc99d04a910ec24f11382b4f124b89374264396892b086886bd2a9c2317904d87c9b21b languageName: node linkType: hard @@ -2454,17 +2228,6 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.22.15": - version: 7.24.0 - resolution: "@babel/template@npm:7.24.0" - dependencies: - "@babel/code-frame": "npm:^7.23.5" - "@babel/parser": "npm:^7.24.0" - "@babel/types": "npm:^7.24.0" - checksum: 10c0/9d3dd8d22fe1c36bc3bdef6118af1f4b030aaf6d7d2619f5da203efa818a2185d717523486c111de8d99a8649ddf4bbf6b2a7a64962d8411cf6a8fa89f010e54 - languageName: node - linkType: hard - "@babel/template@npm:^7.23.9, @babel/template@npm:^7.24.0, @babel/template@npm:^7.24.7": version: 7.24.7 resolution: "@babel/template@npm:7.24.7" @@ -2476,25 +2239,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.9, @babel/traverse@npm:^7.24.0, @babel/traverse@npm:^7.24.1, @babel/traverse@npm:^7.4.5": - version: 7.24.1 - resolution: "@babel/traverse@npm:7.24.1" - dependencies: - "@babel/code-frame": "npm:^7.24.1" - "@babel/generator": "npm:^7.24.1" - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-hoist-variables": "npm:^7.22.5" - "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/parser": "npm:^7.24.1" - "@babel/types": "npm:^7.24.0" - debug: "npm:^4.3.1" - globals: "npm:^11.1.0" - checksum: 10c0/c087b918f6823776537ba246136c70e7ce0719fc05361ebcbfd16f4e6f2f6f1f8f4f9167f1d9b675f27d12074839605189cc9d689de20b89a85e7c140f23daab - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.24.7": +"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.9, @babel/traverse@npm:^7.24.0, @babel/traverse@npm:^7.24.1, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.4.5": version: 7.24.7 resolution: "@babel/traverse@npm:7.24.7" dependencies: @@ -2523,17 +2268,6 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.22.15, @babel/types@npm:^7.23.0": - version: 7.24.0 - resolution: "@babel/types@npm:7.24.0" - dependencies: - "@babel/helper-string-parser": "npm:^7.23.4" - "@babel/helper-validator-identifier": "npm:^7.22.20" - to-fast-properties: "npm:^2.0.0" - checksum: 10c0/777a0bb5dbe038ca4c905fdafb1cdb6bdd10fe9d63ce13eca0bd91909363cbad554a53dc1f902004b78c1dcbc742056f877f2c99eeedff647333b1fadf51235d - languageName: node - linkType: hard - "@base2/pretty-print-object@npm:1.0.1": version: 1.0.1 resolution: "@base2/pretty-print-object@npm:1.0.1" @@ -7294,7 +7028,7 @@ __metadata: languageName: node linkType: hard -"@testing-library/jest-dom@npm:6.4.8, @testing-library/jest-dom@npm:^6.4.8": +"@testing-library/jest-dom@npm:6.4.8, @testing-library/jest-dom@npm:^6.4.1, @testing-library/jest-dom@npm:^6.4.8": version: 6.4.8 resolution: "@testing-library/jest-dom@npm:6.4.8" dependencies: @@ -7310,39 +7044,6 @@ __metadata: languageName: node linkType: hard -"@testing-library/jest-dom@npm:^6.4.1": - version: 6.4.2 - resolution: "@testing-library/jest-dom@npm:6.4.2" - dependencies: - "@adobe/css-tools": "npm:^4.3.2" - "@babel/runtime": "npm:^7.9.2" - aria-query: "npm:^5.0.0" - chalk: "npm:^3.0.0" - css.escape: "npm:^1.5.1" - dom-accessibility-api: "npm:^0.6.3" - lodash: "npm:^4.17.15" - redent: "npm:^3.0.0" - peerDependencies: - "@jest/globals": ">= 28" - "@types/bun": "*" - "@types/jest": ">= 28" - jest: ">= 28" - vitest: ">= 0.32" - peerDependenciesMeta: - "@jest/globals": - optional: true - "@types/bun": - optional: true - "@types/jest": - optional: true - jest: - optional: true - vitest: - optional: true - checksum: 10c0/e7eba527b34ce30cde94424d2ec685bdfed51daaafb7df9b68b51aec6052e99a50c8bfe654612dacdf857a1eb81d68cf294fc89de558ee3a992bf7a6019fffcc - languageName: node - linkType: hard - "@testing-library/react@npm:^14.0.0": version: 14.1.2 resolution: "@testing-library/react@npm:14.1.2" @@ -8862,7 +8563,7 @@ __metadata: languageName: node linkType: hard -"@vue/compiler-core@npm:3.4.27": +"@vue/compiler-core@npm:3.4.27, @vue/compiler-core@npm:^3.0.0": version: 3.4.27 resolution: "@vue/compiler-core@npm:3.4.27" dependencies: @@ -8875,7 +8576,7 @@ __metadata: languageName: node linkType: hard -"@vue/compiler-core@npm:3.4.5, @vue/compiler-core@npm:^3.0.0": +"@vue/compiler-core@npm:3.4.5": version: 3.4.5 resolution: "@vue/compiler-core@npm:3.4.5" dependencies: @@ -9159,14 +8860,14 @@ __metadata: languageName: node linkType: hard -"@vue/shared@npm:3.4.27, @vue/shared@npm:^3.4.0": +"@vue/shared@npm:3.4.27, @vue/shared@npm:^3.3.0, @vue/shared@npm:^3.4.0": version: 3.4.27 resolution: "@vue/shared@npm:3.4.27" checksum: 10c0/4a21918858270bcc654bb94b3429d9acbe95af097ea3063e192b36bd502dc896ca47778fa74a863b01f677ec271b189eb90f8b372943c10e52725a6bdc7f6cd5 languageName: node linkType: hard -"@vue/shared@npm:3.4.5, @vue/shared@npm:^3.3.0": +"@vue/shared@npm:3.4.5": version: 3.4.5 resolution: "@vue/shared@npm:3.4.5" checksum: 10c0/4bd4f6a6369ab02b8a01ac3b93fb5d580d3ea0e9781dd2be8ab676b50521733acbc85fac6b48bc9cd3704dc9237d6365148d287da51c07e1d0568d6c0f7742a1 @@ -9506,16 +9207,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.0.0, acorn@npm:^8.10.0, acorn@npm:^8.11.2, acorn@npm:^8.11.3, acorn@npm:^8.4.1, acorn@npm:^8.6.0, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": - version: 8.11.3 - resolution: "acorn@npm:8.11.3" - bin: - acorn: bin/acorn - checksum: 10c0/3ff155f8812e4a746fee8ecff1f227d527c4c45655bb1fad6347c3cb58e46190598217551b1500f18542d2bbe5c87120cb6927f5a074a59166fbdd9468f0a299 - languageName: node - linkType: hard - -"acorn@npm:^8.12.1": +"acorn@npm:^8.0.0, acorn@npm:^8.10.0, acorn@npm:^8.11.2, acorn@npm:^8.11.3, acorn@npm:^8.12.1, acorn@npm:^8.4.1, acorn@npm:^8.6.0, acorn@npm:^8.7.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": version: 8.12.1 resolution: "acorn@npm:8.12.1" bin: @@ -10203,7 +9895,7 @@ __metadata: languageName: node linkType: hard -"available-typed-arrays@npm:^1.0.6, available-typed-arrays@npm:^1.0.7": +"available-typed-arrays@npm:^1.0.7": version: 1.0.7 resolution: "available-typed-arrays@npm:1.0.7" dependencies: @@ -10377,7 +10069,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.10": +"babel-plugin-polyfill-corejs2@npm:^0.4.10, babel-plugin-polyfill-corejs2@npm:^0.4.8": version: 0.4.11 resolution: "babel-plugin-polyfill-corejs2@npm:0.4.11" dependencies: @@ -10390,19 +10082,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.8": - version: 0.4.9 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.9" - dependencies: - "@babel/compat-data": "npm:^7.22.6" - "@babel/helper-define-polyfill-provider": "npm:^0.6.0" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/2cd47af763eb40aa41f1d6d9cbf1bdd217ff6c28f614b057c0328ee42a4d82cbcdcbc7d081d93e2a2d80446c899f25c3ebec048a63d260ef65a0a364134f71cd - languageName: node - linkType: hard - "babel-plugin-polyfill-corejs3@npm:^0.10.1, babel-plugin-polyfill-corejs3@npm:^0.10.4": version: 0.10.4 resolution: "babel-plugin-polyfill-corejs3@npm:0.10.4" @@ -10743,16 +10422,7 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.2, braces@npm:~3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" - dependencies: - fill-range: "npm:^7.0.1" - checksum: 10c0/321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381 - languageName: node - linkType: hard - -"braces@npm:^3.0.3": +"braces@npm:^3.0.2, braces@npm:^3.0.3, braces@npm:~3.0.2": version: 3.0.3 resolution: "braces@npm:3.0.3" dependencies: @@ -11351,9 +11021,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001579, caniuse-lite@npm:^1.0.30001587, caniuse-lite@npm:^1.0.30001591": - version: 1.0.30001598 - resolution: "caniuse-lite@npm:1.0.30001598" - checksum: 10c0/7d4a1eecfe9e26a4ee5414dbcbf46dd02910d93dd6458ffe1ae146b7c2159af9bf159d7d75d897a1b72a62c1b7f5cef46b4c1f315574a11b0529c7d06bc55849 + version: 1.0.30001641 + resolution: "caniuse-lite@npm:1.0.30001641" + checksum: 10c0/a065b641cfcc84b36955ee909bfd7313ad103d6a299f0fd261e0e4160e8f1cec79d685c5a9f11097a77687cf47154eddb8133163f2a34bcb8d73c45033a014d2 languageName: node linkType: hard @@ -12767,11 +12437,11 @@ __metadata: linkType: hard "deep-eql@npm:^4.1.3": - version: 4.1.3 - resolution: "deep-eql@npm:4.1.3" + version: 4.1.4 + resolution: "deep-eql@npm:4.1.4" dependencies: type-detect: "npm:^4.0.0" - checksum: 10c0/ff34e8605d8253e1bf9fe48056e02c6f347b81d9b5df1c6650a1b0f6f847b4a86453b16dc226b34f853ef14b626e85d04e081b022e20b00cd7d54f079ce9bbdd + checksum: 10c0/264e0613493b43552fc908f4ff87b8b445c0e6e075656649600e1b8a17a57ee03e960156fce7177646e4d2ddaf8e5ee616d76bd79929ff593e5c79e4e5e6c517 languageName: node linkType: hard @@ -13385,7 +13055,7 @@ __metadata: languageName: node linkType: hard -"ejs@npm:^3.1.10": +"ejs@npm:^3.1.10, ejs@npm:^3.1.7": version: 3.1.10 resolution: "ejs@npm:3.1.10" dependencies: @@ -13396,17 +13066,6 @@ __metadata: languageName: node linkType: hard -"ejs@npm:^3.1.7": - version: 3.1.9 - resolution: "ejs@npm:3.1.9" - dependencies: - jake: "npm:^10.8.5" - bin: - ejs: bin/cli.js - checksum: 10c0/f0e249c79128810f5f6d5cbf347fc906d86bb9384263db0b2a9004aea649f2bc2d112736de5716c509c80afb4721c47281bd5b57c757d3b63f1bf5ac5f885893 - languageName: node - linkType: hard - "electron-to-chromium@npm:^1.4.668": version: 1.4.699 resolution: "electron-to-chromium@npm:1.4.699" @@ -14061,9 +13720,9 @@ __metadata: linkType: hard "escalade@npm:^3.1.1": - version: 3.1.1 - resolution: "escalade@npm:3.1.1" - checksum: 10c0/afd02e6ca91ffa813e1108b5e7756566173d6bc0d1eb951cb44d6b21702ec17c1cf116cfe75d4a2b02e05acb0b808a7a9387d0d1ca5cf9c04ad03a8445c3e46d + version: 3.1.2 + resolution: "escalade@npm:3.1.2" + checksum: 10c0/6b4adafecd0682f3aa1cd1106b8fff30e492c7015b178bc81b2d2f75106dabea6c6d6e8508fc491bd58e597c74abb0e8e2368f943ecb9393d4162e3c2f3cf287 languageName: node linkType: hard @@ -15144,15 +14803,6 @@ __metadata: languageName: node linkType: hard -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" - dependencies: - to-regex-range: "npm:^5.0.1" - checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f - languageName: node - linkType: hard - "fill-range@npm:^7.1.1": version: 7.1.1 resolution: "fill-range@npm:7.1.1" @@ -16402,7 +16052,7 @@ __metadata: languageName: node linkType: hard -"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.1, has-tostringtag@npm:^1.0.2": +"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2": version: 1.0.2 resolution: "has-tostringtag@npm:1.0.2" dependencies: @@ -22458,9 +22108,9 @@ __metadata: linkType: hard "picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: 10c0/20a5b249e331c14479d94ec6817a182fd7a5680debae82705747b2db7ec50009a5f6648d0621c561b0572703f84dbef0858abcbd5856d3c5511426afcb1961f7 + version: 1.0.1 + resolution: "picocolors@npm:1.0.1" + checksum: 10c0/c63cdad2bf812ef0d66c8db29583802355d4ca67b9285d846f390cc15c2f6ccb94e8cb7eb6a6e97fc5990a6d3ad4ae42d86c84d3146e667c739a4234ed50d400 languageName: node linkType: hard @@ -27222,23 +26872,23 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.0.3, typescript@npm:^5.3.2, typescript@npm:~5.3.2": - version: 5.3.3 - resolution: "typescript@npm:5.3.3" +"typescript@npm:^5.0.3, typescript@npm:^5.3.2, typescript@npm:^5.4.3": + version: 5.4.3 + resolution: "typescript@npm:5.4.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/e33cef99d82573624fc0f854a2980322714986bc35b9cb4d1ce736ed182aeab78e2cb32b385efa493b2a976ef52c53e20d6c6918312353a91850e2b76f1ea44f + checksum: 10c0/22443a8760c3668e256c0b34b6b45c359ef6cecc10c42558806177a7d500ab1a7d7aac1f976d712e26989ddf6731d2fbdd3212b7c73290a45127c1c43ba2005a languageName: node linkType: hard -"typescript@npm:^5.4.3": - version: 5.4.3 - resolution: "typescript@npm:5.4.3" +"typescript@npm:~5.3.2": + version: 5.3.3 + resolution: "typescript@npm:5.3.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/22443a8760c3668e256c0b34b6b45c359ef6cecc10c42558806177a7d500ab1a7d7aac1f976d712e26989ddf6731d2fbdd3212b7c73290a45127c1c43ba2005a + checksum: 10c0/e33cef99d82573624fc0f854a2980322714986bc35b9cb4d1ce736ed182aeab78e2cb32b385efa493b2a976ef52c53e20d6c6918312353a91850e2b76f1ea44f languageName: node linkType: hard @@ -27252,23 +26902,23 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.0.3#optional!builtin, typescript@patch:typescript@npm%3A^5.3.2#optional!builtin, typescript@patch:typescript@npm%3A~5.3.2#optional!builtin": - version: 5.3.3 - resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7" +"typescript@patch:typescript@npm%3A^5.0.3#optional!builtin, typescript@patch:typescript@npm%3A^5.3.2#optional!builtin, typescript@patch:typescript@npm%3A^5.4.3#optional!builtin": + version: 5.4.3 + resolution: "typescript@patch:typescript@npm%3A5.4.3#optional!builtin::version=5.4.3&hash=5adc0c" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/1d0a5f4ce496c42caa9a30e659c467c5686eae15d54b027ee7866744952547f1be1262f2d40de911618c242b510029d51d43ff605dba8fb740ec85ca2d3f9500 + checksum: 10c0/6e51f8b7e6ec55b897b9e56b67e864fe8f44e30f4a14357aad5dc0f7432db2f01efc0522df0b6c36d361c51f2dc3dcac5c832efd96a404cfabf884e915d38828 languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.4.3#optional!builtin": - version: 5.4.3 - resolution: "typescript@patch:typescript@npm%3A5.4.3#optional!builtin::version=5.4.3&hash=5adc0c" +"typescript@patch:typescript@npm%3A~5.3.2#optional!builtin": + version: 5.3.3 + resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/6e51f8b7e6ec55b897b9e56b67e864fe8f44e30f4a14357aad5dc0f7432db2f01efc0522df0b6c36d361c51f2dc3dcac5c832efd96a404cfabf884e915d38828 + checksum: 10c0/1d0a5f4ce496c42caa9a30e659c467c5686eae15d54b027ee7866744952547f1be1262f2d40de911618c242b510029d51d43ff605dba8fb740ec85ca2d3f9500 languageName: node linkType: hard @@ -28888,20 +28538,7 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": - version: 1.1.14 - resolution: "which-typed-array@npm:1.1.14" - dependencies: - available-typed-arrays: "npm:^1.0.6" - call-bind: "npm:^1.0.5" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-tostringtag: "npm:^1.0.1" - checksum: 10c0/0960f1e77807058819451b98c51d4cd72031593e8de990b24bd3fc22e176f5eee22921d68d852297c786aec117689f0423ed20aa4fde7ce2704d680677891f56 - languageName: node - linkType: hard - -"which-typed-array@npm:^1.1.15": +"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": version: 1.1.15 resolution: "which-typed-array@npm:1.1.15" dependencies: From 9f289c122af3d1bf02d5a51d3cf2e7cbe225b376 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Wed, 7 Aug 2024 08:05:11 +0200 Subject: [PATCH 066/135] Bump version of @storybook/experimental-nextjs-vite --- code/frameworks/experimental-nextjs-vite/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/frameworks/experimental-nextjs-vite/package.json b/code/frameworks/experimental-nextjs-vite/package.json index 07485c47af1a..c73bb6cd9686 100644 --- a/code/frameworks/experimental-nextjs-vite/package.json +++ b/code/frameworks/experimental-nextjs-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/experimental-nextjs-vite", - "version": "8.3.0-alpha.3", + "version": "8.3.0-alpha.4", "description": "Storybook for Next.js and Vite", "keywords": [ "storybook", From cd7752e951b4cd3d84eb237dc03d18ca77508e8f Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 11:51:36 +0200 Subject: [PATCH 067/135] fix after merge --- code/lib/cli-storybook/package.json | 4 ++-- code/lib/create-storybook/package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/lib/cli-storybook/package.json b/code/lib/cli-storybook/package.json index 81454d1c71ec..9e46b26fabd6 100644 --- a/code/lib/cli-storybook/package.json +++ b/code/lib/cli-storybook/package.json @@ -36,8 +36,8 @@ "!src/**/*" ], "scripts": { - "check": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/check.ts", - "prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts" + "check": "jiti ../../../scripts/prepare/check.ts", + "prep": "jiti ../../../scripts/prepare/bundle.ts" }, "dependencies": { "@babel/core": "^7.24.4", diff --git a/code/lib/create-storybook/package.json b/code/lib/create-storybook/package.json index 0acc48d79102..778c28b8d975 100644 --- a/code/lib/create-storybook/package.json +++ b/code/lib/create-storybook/package.json @@ -51,8 +51,8 @@ "!src/**/*" ], "scripts": { - "check": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/check.ts", - "prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts" + "check": "jiti ../../../scripts/prepare/check.ts", + "prep": "jiti ../../../scripts/prepare/bundle.ts" }, "dependencies": { "@types/semver": "^7.3.4", From c15ba8cb908905ab3f87cc4846abe0f5e16db883 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 12:11:49 +0200 Subject: [PATCH 068/135] jiti needs to be called as a yarn command, I think, as it's a node_module bin --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 47670ab1952c..3ec45dab6f32 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -359,7 +359,7 @@ jobs: at: . - run: name: Starting Event Collector - command: jiti ./event-log-collector.ts + command: yarn jiti ./event-log-collector.ts working_directory: scripts background: true - run: @@ -373,7 +373,7 @@ jobs: TEMPLATE=$(yarn get-template --cadence << pipeline.parameters.workflow >> --task build) if [[ $TEMPLATE != bench/* ]] then - jiti ./event-log-checker.ts build $TEMPLATE + yarn jiti ./event-log-checker.ts build $TEMPLATE fi working_directory: scripts - report-workflow-on-failure: From 9859a6c239c997538bd6869c19a2c5f060669d91 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 12:25:59 +0200 Subject: [PATCH 069/135] fix --- scripts/combine-compodoc.ts | 4 ++-- scripts/package.json | 1 - scripts/yarn.lock | 38 ------------------------------------- 3 files changed, 2 insertions(+), 41 deletions(-) diff --git a/scripts/combine-compodoc.ts b/scripts/combine-compodoc.ts index 718eb32f5361..3b8a05cecd82 100755 --- a/scripts/combine-compodoc.ts +++ b/scripts/combine-compodoc.ts @@ -7,6 +7,7 @@ import { realpath, readFile, writeFile, lstat } from 'fs-extra'; import { globSync } from 'glob'; import { execaCommand } from 'execa'; import { esMain } from './utils/esmain'; +import { temporaryDirectory } from '../code/core/src/common/utils/cli'; const logger = console; @@ -35,8 +36,7 @@ async function run(cwd: string) { const docsArray: Record[] = await Promise.all( dirs.map(async (dir) => { - const { temporaryDirectory } = await import('tempy'); - const outputDir = temporaryDirectory(); + const outputDir = await temporaryDirectory(); const resolvedDir = await realpath(dir); await execaCommand( `yarn compodoc ${resolvedDir} -p ./tsconfig.json -e json -d ${outputDir}`, diff --git a/scripts/package.json b/scripts/package.json index 8d74e1e99828..ed12757abaf5 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -166,7 +166,6 @@ "simple-git": "^3.25.0", "slash": "^3.0.0", "sort-package-json": "^2.10.0", - "tempy": "^3.1.0", "tiny-invariant": "^1.3.3", "trash": "^7.2.0", "ts-dedent": "^2.2.0", diff --git a/scripts/yarn.lock b/scripts/yarn.lock index d259f3cd8915..6baa898f37fc 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -1561,7 +1561,6 @@ __metadata: simple-git: "npm:^3.25.0" slash: "npm:^3.0.0" sort-package-json: "npm:^2.10.0" - tempy: "npm:^3.1.0" tiny-invariant: "npm:^1.3.3" trash: "npm:^7.2.0" ts-dedent: "npm:^2.2.0" @@ -4337,15 +4336,6 @@ __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: 10c0/16e11a3c8140398f5408b7fded35a961b9423c5dac39a60cbbd08bd3f0e07d7de130e87262adea7db03ec1a7a4b7551054e0db07ee5408b012bac5400cfc07a5 - languageName: node - linkType: hard - "css.escape@npm:^1.5.1": version: 1.5.1 resolution: "css.escape@npm:1.5.1" @@ -12989,25 +12979,6 @@ __metadata: languageName: node linkType: hard -"temp-dir@npm:^3.0.0": - version: 3.0.0 - resolution: "temp-dir@npm:3.0.0" - checksum: 10c0/a86978a400984cd5f315b77ebf3fe53bb58c61f192278cafcb1f3fb32d584a21dc8e08b93171d7874b7cc972234d3455c467306cc1bfc4524b622e5ad3bfd671 - languageName: node - linkType: hard - -"tempy@npm:^3.1.0": - version: 3.1.0 - resolution: "tempy@npm:3.1.0" - dependencies: - is-stream: "npm:^3.0.0" - temp-dir: "npm:^3.0.0" - type-fest: "npm:^2.12.2" - unique-string: "npm:^3.0.0" - checksum: 10c0/b88e70baa8d935ba8f0e0372b59ad1a961121f098da5fb4a6e05bec98ec32a49026b553532fb75c1c102ec782fd4c6a6bde0d46cbe87013fa324451ce476fb76 - languageName: node - linkType: hard - "test-exclude@npm:^7.0.1": version: 7.0.1 resolution: "test-exclude@npm:7.0.1" @@ -13672,15 +13643,6 @@ __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: 10c0/b35ea034b161b2a573666ec16c93076b4b6106b8b16c2415808d747ab3a0566b5db0c4be231d4b11cfbc16d7fd915c9d8a45884bff0e2db11b799775b2e1e017 - languageName: node - linkType: hard - "unist-util-generated@npm:^2.0.0": version: 2.0.1 resolution: "unist-util-generated@npm:2.0.1" From 66a588649c9bfec15fd813cf6bda8a630ae32f65 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 12:40:31 +0200 Subject: [PATCH 070/135] remove more tempy references --- scripts/sandbox/generate.ts | 7 +++---- scripts/sandbox/publish.ts | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/scripts/sandbox/generate.ts b/scripts/sandbox/generate.ts index 8ada9832705b..711d5dfd4489 100755 --- a/scripts/sandbox/generate.ts +++ b/scripts/sandbox/generate.ts @@ -26,6 +26,7 @@ import { } from '../utils/constants'; import * as ghActions from '@actions/core'; import { dedent } from 'ts-dedent'; +import { temporaryDirectory } from '../../code/core/src/common/utils/cli'; const isCI = process.env.GITHUB_ACTIONS === 'true'; @@ -96,8 +97,7 @@ const addStorybook = async ({ const beforeDir = join(baseDir, BEFORE_DIR_NAME); const afterDir = join(baseDir, AFTER_DIR_NAME); - const { temporaryDirectory } = await import('tempy'); - const tmpDir = temporaryDirectory(); + const tmpDir = await temporaryDirectory(); try { await copy(beforeDir, tmpDir); @@ -173,7 +173,6 @@ const runGenerators = async ( console.log(`πŸ€Ήβ€β™‚οΈ Generating sandboxes with a concurrency of ${1}`); const limit = pLimit(1); - const { temporaryDirectory } = await import('tempy'); const generationResults = await Promise.allSettled( generators.map(({ dirName, name, script, expected, env }) => @@ -190,7 +189,7 @@ const runGenerators = async ( await emptyDir(baseDir); // We do the creation inside a temp dir to avoid yarn container problems - const createBaseDir = temporaryDirectory(); + const createBaseDir = await temporaryDirectory(); if (!script.includes('pnp')) { await setupYarn({ cwd: createBaseDir }); } diff --git a/scripts/sandbox/publish.ts b/scripts/sandbox/publish.ts index a9acadc85652..fc9f92614875 100755 --- a/scripts/sandbox/publish.ts +++ b/scripts/sandbox/publish.ts @@ -9,6 +9,7 @@ import { getTemplatesData, renderTemplate } from './utils/template'; import { commitAllToGit } from './utils/git'; import { REPROS_DIRECTORY } from '../utils/constants'; import { glob } from 'glob'; +import { temporaryDirectory } from '../../code/core/src/common/utils/cli'; export const logger = console; @@ -99,8 +100,7 @@ if (!existsSync(REPROS_DIRECTORY)) { } async function main() { - const { temporaryDirectory } = await import('tempy'); - const tmpFolder = temporaryDirectory(); + const tmpFolder = await temporaryDirectory(); logger.log(`⏱ Created tmp folder: ${tmpFolder}`); const options = program.opts() as PublishOptions; From ebb01be3dc2aa42f54237f4bb0b2752ef7d4b36c Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 13:03:42 +0200 Subject: [PATCH 071/135] fix bench script --- scripts/tasks/bench.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/tasks/bench.ts b/scripts/tasks/bench.ts index cead08852edb..e08e06658838 100644 --- a/scripts/tasks/bench.ts +++ b/scripts/tasks/bench.ts @@ -20,10 +20,8 @@ export const bench: Task = { const controllers: AbortController[] = []; try { const { disableDocs } = options; - // @ts-expect-error Default import required for dynamic import processed by esbuild - const { browse } = (await import('../bench/browse.ts')).default; - // @ts-expect-error Default import required for dynamic import processed by esbuild - const { saveBench, loadBench } = (await import('../bench/utils.ts')).default; + const { browse } = await import('../bench/browse'); + const { saveBench, loadBench } = await import('../bench/utils'); const devController = await dev.run(details, { ...options, debug: false }); if (!devController) { From 6119fcf62f25edbc180bed77eac4cc1b8d328294 Mon Sep 17 00:00:00 2001 From: storybook-bot <32066757+storybook-bot@users.noreply.github.com> Date: Wed, 7 Aug 2024 12:43:12 +0000 Subject: [PATCH 072/135] Update CHANGELOG.md for v8.2.8 [skip ci] --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bdf5324fe23d..8e8a800ac62f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 8.2.8 + +- CLI: Parse more Yarn Berry errors - [#28816](https://github.com/storybookjs/storybook/pull/28816), thanks @yannbf! +- Fix: Invariant failed: Expected package.json#version to be defined in the "undefined" package - [#28752](https://github.com/storybookjs/storybook/pull/28752), thanks @abcdmku! + ## 8.2.7 - CPC: Fix type usage in renderers - [#28745](https://github.com/storybookjs/storybook/pull/28745), thanks @ndelangen! From 44ee48890baf7326e122df81095fadf44be55c27 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 15:41:16 +0200 Subject: [PATCH 073/135] Discard changes to CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9973dd825bee..4029a3ed691d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,10 +5,10 @@ Storybook is developed against a specific node version which is defined in an `. ## Ensure you have the required system utilities You will need to have the following installed: - - git - node - yarn +- [bun](https://bun.sh/) ## Using fnm as a Node version manager From 9605338ee7057526d1db0d104de732f27b9cee51 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 15:49:11 +0200 Subject: [PATCH 074/135] reduce bun usage --- scripts/prepare/addon-bundle.ts | 4 ++-- scripts/prepare/bundle.ts | 4 ++-- scripts/prepare/tsc.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/prepare/addon-bundle.ts b/scripts/prepare/addon-bundle.ts index f6d15a2ce377..5af6bed15fb1 100755 --- a/scripts/prepare/addon-bundle.ts +++ b/scripts/prepare/addon-bundle.ts @@ -50,7 +50,7 @@ const run = async ({ cwd, flags }: { cwd: string; flags: string[] }) => { } = (await fs.readJson(join(cwd, 'package.json'))) as PackageJsonWithBundlerConfig; if (pre) { - await exec(`bun ${pre}`, { cwd }); + await exec(`jiti ${pre}`, { cwd }); } const reset = hasFlag(flags, 'reset'); @@ -204,7 +204,7 @@ const run = async ({ cwd, flags }: { cwd: string; flags: string[] }) => { ); if (post) { - await exec(`bun ${post}`, { cwd }, { debug: true }); + await exec(`jiti ${post}`, { cwd }, { debug: true }); } console.log('done'); diff --git a/scripts/prepare/bundle.ts b/scripts/prepare/bundle.ts index 28e994773c29..6495efb41de2 100755 --- a/scripts/prepare/bundle.ts +++ b/scripts/prepare/bundle.ts @@ -45,7 +45,7 @@ const run = async ({ cwd, flags }: { cwd: string; flags: string[] }) => { } = (await fs.readJson(join(cwd, 'package.json'))) as PackageJsonWithBundlerConfig; if (pre) { - await exec(`bun ${pre}`, { cwd }); + await exec(`jiti ${pre}`, { cwd }); } const reset = hasFlag(flags, 'reset'); @@ -160,7 +160,7 @@ const run = async ({ cwd, flags }: { cwd: string; flags: string[] }) => { ); if (post) { - await exec(`bun ${post}`, { cwd }, { debug: true }); + await exec(`jiti ${post}`, { cwd }, { debug: true }); } if (process.env.CI !== 'true') { diff --git a/scripts/prepare/tsc.ts b/scripts/prepare/tsc.ts index 6db4027aeb07..f90654327f54 100755 --- a/scripts/prepare/tsc.ts +++ b/scripts/prepare/tsc.ts @@ -12,7 +12,7 @@ const run = async ({ cwd, flags }: { cwd: string; flags: string[] }) => { } = await fs.readJson(join(cwd, 'package.json')); if (pre) { - await exec(`bun ${pre}`, { cwd }); + await exec(`jiti ${pre}`, { cwd }); } const reset = hasFlag(flags, 'reset'); @@ -66,7 +66,7 @@ const run = async ({ cwd, flags }: { cwd: string; flags: string[] }) => { } if (post) { - await exec(`bun ${post}`, { cwd }, { debug: true }); + await exec(`jiti ${post}`, { cwd }, { debug: true }); } if (!watch) { From e20f6896b15e10b9ea8ae55d2b069ebf300de264 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Wed, 7 Aug 2024 16:58:21 +0200 Subject: [PATCH 075/135] Make sure CJS build always has lowest prio --- code/addons/a11y/package.json | 4 ++-- code/addons/actions/package.json | 4 ++-- code/addons/backgrounds/package.json | 4 ++-- code/addons/controls/package.json | 4 ++-- code/addons/docs/package.json | 4 ++-- code/addons/essentials/package.json | 4 ++-- code/addons/highlight/package.json | 4 ++-- code/addons/interactions/package.json | 4 ++-- code/addons/jest/package.json | 4 ++-- code/addons/links/package.json | 4 ++-- code/addons/measure/package.json | 4 ++-- code/addons/onboarding/package.json | 4 ++-- code/addons/outline/package.json | 4 ++-- code/addons/storysource/package.json | 4 ++-- code/addons/themes/package.json | 4 ++-- code/addons/toolbars/package.json | 4 ++-- code/addons/viewport/package.json | 4 ++-- code/builders/builder-vite/package.json | 4 ++-- code/builders/builder-webpack5/package.json | 16 ++++++++-------- code/deprecated/csf-tools/package.json | 4 ++-- code/deprecated/router/package.json | 4 ++-- code/deprecated/theming/package.json | 4 ++-- code/frameworks/html-vite/package.json | 4 ++-- code/frameworks/html-webpack5/package.json | 4 ++-- code/frameworks/nextjs/package.json | 4 ++-- code/frameworks/preact-webpack5/package.json | 4 ++-- code/frameworks/react-vite/package.json | 4 ++-- code/frameworks/react-webpack5/package.json | 4 ++-- code/frameworks/server-webpack5/package.json | 4 ++-- code/frameworks/svelte-vite/package.json | 4 ++-- code/frameworks/svelte-webpack5/package.json | 4 ++-- code/frameworks/sveltekit/package.json | 4 ++-- code/frameworks/vue3-vite/package.json | 4 ++-- code/frameworks/vue3-webpack5/package.json | 4 ++-- code/frameworks/web-components-vite/package.json | 4 ++-- .../web-components-webpack5/package.json | 4 ++-- code/lib/blocks/package.json | 4 ++-- code/lib/cli-storybook/package.json | 4 ++-- code/lib/cli/package.json | 12 ++++++------ code/lib/codemod/package.json | 4 ++-- code/lib/core-webpack/package.json | 4 ++-- code/lib/create-storybook/package.json | 8 ++++---- code/lib/csf-plugin/package.json | 8 ++++---- code/lib/instrumenter/package.json | 4 ++-- code/lib/react-dom-shim/package.json | 8 ++++---- code/lib/source-loader/package.json | 4 ++-- code/presets/create-react-app/package.json | 8 ++++---- code/presets/html-webpack/package.json | 8 ++++---- code/presets/preact-webpack/package.json | 8 ++++---- code/presets/react-webpack/package.json | 8 ++++---- code/presets/server-webpack/package.json | 8 ++++---- code/presets/svelte-webpack/package.json | 8 ++++---- code/presets/vue3-webpack/package.json | 8 ++++---- code/renderers/html/package.json | 4 ++-- code/renderers/preact/package.json | 4 ++-- code/renderers/react/package.json | 8 ++++---- code/renderers/server/package.json | 4 ++-- code/renderers/vue3/package.json | 4 ++-- code/renderers/web-components/package.json | 4 ++-- 59 files changed, 150 insertions(+), 150 deletions(-) diff --git a/code/addons/a11y/package.json b/code/addons/a11y/package.json index 5865e56c819b..e6d8533f9798 100644 --- a/code/addons/a11y/package.json +++ b/code/addons/a11y/package.json @@ -28,9 +28,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preview": { "types": "./dist/preview.d.ts", diff --git a/code/addons/actions/package.json b/code/addons/actions/package.json index 68db024428c8..96275b93501d 100644 --- a/code/addons/actions/package.json +++ b/code/addons/actions/package.json @@ -24,9 +24,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./decorator": { "types": "./dist/decorator.d.ts", diff --git a/code/addons/backgrounds/package.json b/code/addons/backgrounds/package.json index fffb47e67fa6..474a82f29c04 100644 --- a/code/addons/backgrounds/package.json +++ b/code/addons/backgrounds/package.json @@ -28,9 +28,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preview": { "types": "./dist/preview.d.ts", diff --git a/code/addons/controls/package.json b/code/addons/controls/package.json index 9936235c6634..9f109664fdcb 100644 --- a/code/addons/controls/package.json +++ b/code/addons/controls/package.json @@ -28,9 +28,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./manager": "./dist/manager.js", "./register": "./dist/manager.js", diff --git a/code/addons/docs/package.json b/code/addons/docs/package.json index efdf3244d61c..5e3d735bfef6 100644 --- a/code/addons/docs/package.json +++ b/code/addons/docs/package.json @@ -27,9 +27,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preview": { "types": "./dist/preview.d.ts", diff --git a/code/addons/essentials/package.json b/code/addons/essentials/package.json index 7a8309d32dfa..63e90588853a 100644 --- a/code/addons/essentials/package.json +++ b/code/addons/essentials/package.json @@ -24,9 +24,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./actions/preview": { "types": "./dist/actions/preview.d.ts", diff --git a/code/addons/highlight/package.json b/code/addons/highlight/package.json index 139c1af27ee9..29e1f0352416 100644 --- a/code/addons/highlight/package.json +++ b/code/addons/highlight/package.json @@ -26,9 +26,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preview": { "types": "./dist/preview.d.ts", diff --git a/code/addons/interactions/package.json b/code/addons/interactions/package.json index fd1923974b9c..3e5bc0c94b45 100644 --- a/code/addons/interactions/package.json +++ b/code/addons/interactions/package.json @@ -24,9 +24,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preview": { "types": "./dist/preview.d.ts", diff --git a/code/addons/jest/package.json b/code/addons/jest/package.json index 49e68245b4f8..84e35aeb94d4 100644 --- a/code/addons/jest/package.json +++ b/code/addons/jest/package.json @@ -30,9 +30,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./manager": "./dist/manager.js", "./register": "./dist/manager.js", diff --git a/code/addons/links/package.json b/code/addons/links/package.json index 625cf4e2aa09..e6d1175a502c 100644 --- a/code/addons/links/package.json +++ b/code/addons/links/package.json @@ -24,9 +24,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./react": { "types": "./dist/react/index.d.ts", diff --git a/code/addons/measure/package.json b/code/addons/measure/package.json index 53145f129c04..d28e60d56672 100644 --- a/code/addons/measure/package.json +++ b/code/addons/measure/package.json @@ -27,9 +27,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preview": { "types": "./dist/preview.d.ts", diff --git a/code/addons/onboarding/package.json b/code/addons/onboarding/package.json index 42b6d45cf5f3..8d7c2ddb6189 100644 --- a/code/addons/onboarding/package.json +++ b/code/addons/onboarding/package.json @@ -23,9 +23,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./manager": "./dist/manager.js", "./preset": "./dist/preset.js", diff --git a/code/addons/outline/package.json b/code/addons/outline/package.json index e5fc174c3008..b46927903cee 100644 --- a/code/addons/outline/package.json +++ b/code/addons/outline/package.json @@ -30,9 +30,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preview": { "types": "./dist/preview.d.ts", diff --git a/code/addons/storysource/package.json b/code/addons/storysource/package.json index 22e63b0ff261..ec7ba777613c 100644 --- a/code/addons/storysource/package.json +++ b/code/addons/storysource/package.json @@ -24,9 +24,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": "./dist/preset.js", "./manager": "./dist/manager.js", diff --git a/code/addons/themes/package.json b/code/addons/themes/package.json index d92b07a2b441..dd45712d437e 100644 --- a/code/addons/themes/package.json +++ b/code/addons/themes/package.json @@ -29,9 +29,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preview": { "types": "./dist/preview.d.ts", diff --git a/code/addons/toolbars/package.json b/code/addons/toolbars/package.json index 0485aad344e7..1a59a4f7b0b4 100644 --- a/code/addons/toolbars/package.json +++ b/code/addons/toolbars/package.json @@ -28,9 +28,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./manager": "./dist/manager.js", "./register": "./dist/manager.js", diff --git a/code/addons/viewport/package.json b/code/addons/viewport/package.json index 69fd2b088302..42fab30abd92 100644 --- a/code/addons/viewport/package.json +++ b/code/addons/viewport/package.json @@ -25,9 +25,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preview": { "types": "./dist/preview.d.ts", diff --git a/code/builders/builder-vite/package.json b/code/builders/builder-vite/package.json index 33ba109b475f..31fbf3013d04 100644 --- a/code/builders/builder-vite/package.json +++ b/code/builders/builder-vite/package.json @@ -20,9 +20,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./input/iframe.html": "./input/iframe.html", "./package.json": "./package.json" diff --git a/code/builders/builder-webpack5/package.json b/code/builders/builder-webpack5/package.json index 316fe19c3206..f7b4627a45e3 100644 --- a/code/builders/builder-webpack5/package.json +++ b/code/builders/builder-webpack5/package.json @@ -22,24 +22,24 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./presets/custom-webpack-preset": { "types": "./dist/presets/custom-webpack-preset.d.ts", - "node": "./dist/presets/custom-webpack-preset.js", - "require": "./dist/presets/custom-webpack-preset.js" + "require": "./dist/presets/custom-webpack-preset.js", + "node": "./dist/presets/custom-webpack-preset.js" }, "./presets/preview-preset": { "types": "./dist/presets/preview-preset.d.ts", - "node": "./dist/presets/preview-preset.js", - "require": "./dist/presets/preview-preset.js" + "require": "./dist/presets/preview-preset.js", + "node": "./dist/presets/preview-preset.js" }, "./loaders/export-order-loader": { "types": "./dist/loaders/export-order-loader.d.ts", - "node": "./dist/loaders/export-order-loader.js", - "require": "./dist/loaders/export-order-loader.js" + "require": "./dist/loaders/export-order-loader.js", + "node": "./dist/loaders/export-order-loader.js" }, "./templates/virtualModuleModernEntry.js.handlebars": "./templates/virtualModuleModernEntry.js.handlebars", "./templates/preview.ejs": "./templates/preview.ejs", diff --git a/code/deprecated/csf-tools/package.json b/code/deprecated/csf-tools/package.json index 6f2bc53cbf77..3f559726970a 100644 --- a/code/deprecated/csf-tools/package.json +++ b/code/deprecated/csf-tools/package.json @@ -23,9 +23,9 @@ "exports": { ".": { "types": "./shim.d.ts", - "node": "./shim.js", "import": "./shim.mjs", - "require": "./shim.js" + "require": "./shim.js", + "node": "./shim.js" }, "./package.json": "./package.json" }, diff --git a/code/deprecated/router/package.json b/code/deprecated/router/package.json index 582d0baf5b29..dd19a9b10dfa 100644 --- a/code/deprecated/router/package.json +++ b/code/deprecated/router/package.json @@ -23,9 +23,9 @@ "exports": { ".": { "types": "./shim.d.ts", - "node": "./shim.js", "import": "./shim.mjs", - "require": "./shim.js" + "require": "./shim.js", + "node": "./shim.js" }, "./utils": { "types": "./utils.d.ts", diff --git a/code/deprecated/theming/package.json b/code/deprecated/theming/package.json index d21e5f81cb7a..68ec61d65cea 100644 --- a/code/deprecated/theming/package.json +++ b/code/deprecated/theming/package.json @@ -23,9 +23,9 @@ "exports": { ".": { "types": "./shim.d.ts", - "node": "./shim.js", "import": "./shim.mjs", - "require": "./shim.js" + "require": "./shim.js", + "node": "./shim.js" }, "./create": { "types": "./create.d.ts", diff --git a/code/frameworks/html-vite/package.json b/code/frameworks/html-vite/package.json index e05df39ae337..2c1f0b1f8464 100644 --- a/code/frameworks/html-vite/package.json +++ b/code/frameworks/html-vite/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json index b73b460bd08e..7d8eefac527e 100644 --- a/code/frameworks/html-webpack5/package.json +++ b/code/frameworks/html-webpack5/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index ef4e746eab0f..76adb05eb003 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -23,9 +23,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./dist/image-context": { "types": "./dist/image-context.d.ts", diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json index 497b1fcc7d7e..5fcee858a565 100644 --- a/code/frameworks/preact-webpack5/package.json +++ b/code/frameworks/preact-webpack5/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index 3574bb0e066c..016790b59979 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index 4267354e4183..00cb3b654172 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index cd2445f1d61a..aee37c717a6b 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/svelte-vite/package.json b/code/frameworks/svelte-vite/package.json index a835f420717e..784320a85306 100644 --- a/code/frameworks/svelte-vite/package.json +++ b/code/frameworks/svelte-vite/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/svelte-webpack5/package.json b/code/frameworks/svelte-webpack5/package.json index 6a00fc45a756..849bf1e834ba 100644 --- a/code/frameworks/svelte-webpack5/package.json +++ b/code/frameworks/svelte-webpack5/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/sveltekit/package.json b/code/frameworks/sveltekit/package.json index dc6ee5519227..df6d07035b68 100644 --- a/code/frameworks/sveltekit/package.json +++ b/code/frameworks/sveltekit/package.json @@ -25,9 +25,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./dist/preview.mjs": { "import": "./dist/preview.mjs" diff --git a/code/frameworks/vue3-vite/package.json b/code/frameworks/vue3-vite/package.json index 64306cfd2abe..956d6674ae19 100644 --- a/code/frameworks/vue3-vite/package.json +++ b/code/frameworks/vue3-vite/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json index 4e094a34e57b..91c64a61c822 100644 --- a/code/frameworks/vue3-webpack5/package.json +++ b/code/frameworks/vue3-webpack5/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/web-components-vite/package.json b/code/frameworks/web-components-vite/package.json index 64de9aa0eb44..1f3fb89401da 100644 --- a/code/frameworks/web-components-vite/package.json +++ b/code/frameworks/web-components-vite/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json index 84df093c9a27..d9f79d5680b7 100644 --- a/code/frameworks/web-components-webpack5/package.json +++ b/code/frameworks/web-components-webpack5/package.json @@ -25,9 +25,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/lib/blocks/package.json b/code/lib/blocks/package.json index f562b10969f5..d0e6fc0327bb 100644 --- a/code/lib/blocks/package.json +++ b/code/lib/blocks/package.json @@ -23,9 +23,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/code/lib/cli-storybook/package.json b/code/lib/cli-storybook/package.json index 9e46b26fabd6..f077bf8b8e26 100644 --- a/code/lib/cli-storybook/package.json +++ b/code/lib/cli-storybook/package.json @@ -23,8 +23,8 @@ "type": "module", "exports": { "./bin/index.cjs": { - "node": "./bin/index.cjs", - "require": "./bin/index.cjs" + "require": "./bin/index.cjs", + "node": "./bin/index.cjs" }, "./package.json": "./package.json" }, diff --git a/code/lib/cli/package.json b/code/lib/cli/package.json index 792ca1188a32..eb6bf4da9eab 100644 --- a/code/lib/cli/package.json +++ b/code/lib/cli/package.json @@ -28,19 +28,19 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.cjs", "import": "./dist/index.js", - "require": "./dist/index.cjs" + "require": "./dist/index.cjs", + "node": "./dist/index.cjs" }, "./bin/index.cjs": { - "node": "./bin/index.cjs", - "require": "./bin/index.cjs" + "require": "./bin/index.cjs", + "node": "./bin/index.cjs" }, "./core-path": { "types": "./dist/core-path.d.ts", - "node": "./dist/core-path.cjs", "import": "./dist/core-path.js", - "require": "./dist/core-path.cjs" + "require": "./dist/core-path.cjs", + "node": "./dist/core-path.cjs" }, "./package.json": "./package.json", "./core": { diff --git a/code/lib/codemod/package.json b/code/lib/codemod/package.json index c3968cbf935d..a0e86da880f0 100644 --- a/code/lib/codemod/package.json +++ b/code/lib/codemod/package.json @@ -23,8 +23,8 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./dist/transforms/add-component-parameters.js": "./dist/transforms/add-component-parameters.js", "./dist/transforms/csf-2-to-3.js": "./dist/transforms/csf-2-to-3.js", diff --git a/code/lib/core-webpack/package.json b/code/lib/core-webpack/package.json index 4ba6334c8f3f..fce6021ade6f 100644 --- a/code/lib/core-webpack/package.json +++ b/code/lib/core-webpack/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/code/lib/create-storybook/package.json b/code/lib/create-storybook/package.json index 778c28b8d975..e3138e6e127b 100644 --- a/code/lib/create-storybook/package.json +++ b/code/lib/create-storybook/package.json @@ -21,13 +21,13 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.cjs", "import": "./dist/index.js", - "require": "./dist/index.cjs" + "require": "./dist/index.cjs", + "node": "./dist/index.cjs" }, "./bin/index.cjs": { - "node": "./bin/index.cjs", - "require": "./bin/index.cjs" + "require": "./bin/index.cjs", + "node": "./bin/index.cjs" }, "./package.json": "./package.json" }, diff --git a/code/lib/csf-plugin/package.json b/code/lib/csf-plugin/package.json index b96a6fdfb9ab..2133329094f7 100644 --- a/code/lib/csf-plugin/package.json +++ b/code/lib/csf-plugin/package.json @@ -23,15 +23,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./dist/webpack-loader": { "types": "./dist/webpack-loader.d.ts", - "node": "./dist/webpack-loader.js", "import": "./dist/webpack-loader.mjs", - "require": "./dist/webpack-loader.js" + "require": "./dist/webpack-loader.js", + "node": "./dist/webpack-loader.js" }, "./package.json": "./package.json" }, diff --git a/code/lib/instrumenter/package.json b/code/lib/instrumenter/package.json index 4a2eb0fa78cd..70a80d1f2e05 100644 --- a/code/lib/instrumenter/package.json +++ b/code/lib/instrumenter/package.json @@ -23,9 +23,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/code/lib/react-dom-shim/package.json b/code/lib/react-dom-shim/package.json index a011261630bb..54b8d81859df 100644 --- a/code/lib/react-dom-shim/package.json +++ b/code/lib/react-dom-shim/package.json @@ -23,15 +23,15 @@ "exports": { ".": { "types": "./dist/react-18.d.ts", - "node": "./dist/react-18.js", "import": "./dist/react-18.mjs", - "require": "./dist/react-18.js" + "require": "./dist/react-18.js", + "node": "./dist/react-18.js" }, "./dist/react-16": { "types": "./dist/react-16.d.ts", - "node": "./dist/react-16.js", "import": "./dist/react-16.mjs", - "require": "./dist/react-16.js" + "require": "./dist/react-16.js", + "node": "./dist/react-16.js" }, "./dist/preset": { "types": "./dist/preset.d.ts", diff --git a/code/lib/source-loader/package.json b/code/lib/source-loader/package.json index ab7f4837b156..6dd1305af61e 100644 --- a/code/lib/source-loader/package.json +++ b/code/lib/source-loader/package.json @@ -24,9 +24,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/code/presets/create-react-app/package.json b/code/presets/create-react-app/package.json index 7b11694de959..441fbdfccd0b 100644 --- a/code/presets/create-react-app/package.json +++ b/code/presets/create-react-app/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/code/presets/html-webpack/package.json b/code/presets/html-webpack/package.json index 5a4c14b31378..94203fbfd0db 100644 --- a/code/presets/html-webpack/package.json +++ b/code/presets/html-webpack/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/code/presets/preact-webpack/package.json b/code/presets/preact-webpack/package.json index 9f3d79142c1c..03fc1681ff88 100644 --- a/code/presets/preact-webpack/package.json +++ b/code/presets/preact-webpack/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json index 620afd53a21c..06f47ac2486d 100644 --- a/code/presets/react-webpack/package.json +++ b/code/presets/react-webpack/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./dist/framework-preset-cra": { "types": "./dist/framework-preset-cra.d.ts", diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json index 45d124c3db8b..06c0e6ec06e5 100644 --- a/code/presets/server-webpack/package.json +++ b/code/presets/server-webpack/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./dist/loader": { "types": "./dist/loader.d.ts", diff --git a/code/presets/svelte-webpack/package.json b/code/presets/svelte-webpack/package.json index 908e025ecf7e..7c53e0b7d210 100644 --- a/code/presets/svelte-webpack/package.json +++ b/code/presets/svelte-webpack/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./dist/framework-preset-svelte-docs": { "types": "./dist/framework-preset-svelte-docs.d.ts", diff --git a/code/presets/vue3-webpack/package.json b/code/presets/vue3-webpack/package.json index ef4d3f406664..ed27d730ea85 100644 --- a/code/presets/vue3-webpack/package.json +++ b/code/presets/vue3-webpack/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./dist/framework-preset-vue3-docs": { "types": "./dist/framework-preset-vue3-docs.d.ts", diff --git a/code/renderers/html/package.json b/code/renderers/html/package.json index 16aa10345e04..6e01a5e6b86e 100644 --- a/code/renderers/html/package.json +++ b/code/renderers/html/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": "./preset.js", "./dist/entry-preview.mjs": "./dist/entry-preview.mjs", diff --git a/code/renderers/preact/package.json b/code/renderers/preact/package.json index dc829c2db529..ba562ce1146c 100644 --- a/code/renderers/preact/package.json +++ b/code/renderers/preact/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": "./preset.js", "./dist/entry-preview.mjs": "./dist/entry-preview.mjs", diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json index 1b48610bac55..228482e9470f 100644 --- a/code/renderers/react/package.json +++ b/code/renderers/react/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./experimental-playwright": { "types": "./dist/playwright.d.ts", - "node": "./dist/playwright.js", "import": "./dist/playwright.mjs", - "require": "./dist/playwright.js" + "require": "./dist/playwright.js", + "node": "./dist/playwright.js" }, "./preset": "./preset.js", "./dist/entry-preview.mjs": "./dist/entry-preview.mjs", diff --git a/code/renderers/server/package.json b/code/renderers/server/package.json index 37d6df8cdc3d..85d0999ab04b 100644 --- a/code/renderers/server/package.json +++ b/code/renderers/server/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": "./preset.js", "./dist/entry-preview.mjs": "./dist/entry-preview.mjs", diff --git a/code/renderers/vue3/package.json b/code/renderers/vue3/package.json index 4be2478f2f2d..e4651d4e7d24 100644 --- a/code/renderers/vue3/package.json +++ b/code/renderers/vue3/package.json @@ -28,9 +28,9 @@ }, "./experimental-playwright": { "types": "./dist/playwright.d.ts", - "node": "./dist/playwright.js", "import": "./dist/playwright.mjs", - "require": "./dist/playwright.js" + "require": "./dist/playwright.js", + "node": "./dist/playwright.js" }, "./preset": "./preset.js", "./dist/entry-preview.mjs": "./dist/entry-preview.mjs", diff --git a/code/renderers/web-components/package.json b/code/renderers/web-components/package.json index 7fd65758695e..c3574926837a 100644 --- a/code/renderers/web-components/package.json +++ b/code/renderers/web-components/package.json @@ -25,9 +25,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js" + "require": "./dist/index.js", + "node": "./dist/index.js" }, "./preset": "./preset.js", "./dist/entry-preview.mjs": "./dist/entry-preview.mjs", From d55662898c7e8a8ff0c48903ec42e48d34e0465c Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 16:59:06 +0200 Subject: [PATCH 076/135] no more bun --- .circleci/config.yml | 7 - .github/workflows/canary-release-pr.yml | 4 - .github/workflows/generate-sandboxes.yml | 8 - .../workflows/prepare-non-patch-release.yml | 4 - .github/workflows/prepare-patch-release.yml | 4 - .github/workflows/publish.yml | 4 - .github/workflows/tests-unit.yml | 3 - CONTRIBUTING.md | 1 - code/core/package.json | 4 +- code/core/scripts/dts.ts | 91 +-- .../helpers/generatePackageJsonFile.ts | 8 +- .../scripts/helpers/generateTypesFiles.ts | 31 +- .../helpers/generateTypesMapperFiles.ts | 6 +- code/core/scripts/helpers/modifyThemeTypes.ts | 9 +- code/core/scripts/helpers/sourcefiles.ts | 40 +- code/core/scripts/prep.ts | 541 +++++++++--------- code/core/src/typings.d.ts | 17 - scripts/package.json | 2 - scripts/prepare/tools.ts | 14 +- scripts/yarn.lock | 125 +--- 20 files changed, 378 insertions(+), 545 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3ec45dab6f32..6f8ce0625ba3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -74,7 +74,6 @@ orbs: browser-tools: circleci/browser-tools@1.4.1 discord: antonioned/discord@0.1.0 codecov: codecov/codecov@3.2.4 - bun-orb: cmgriffing/bun-orb@0.0.29 node: circleci/node@5.2.0 nx: nrwl/nx@1.6.2 @@ -139,8 +138,6 @@ jobs: steps: - git-shallow-clone/checkout_advanced: clone_options: "--depth 1 --verbose" - - bun-orb/setup: - version: 1.1.1 - restore_cache: name: Restore Yarn cache keys: @@ -202,8 +199,6 @@ jobs: steps: - git-shallow-clone/checkout_advanced: clone_options: "--depth 1 --verbose" - - bun-orb/setup: - version: 1.1.1 - attach_workspace: at: . - nx/set-shas: @@ -353,8 +348,6 @@ jobs: steps: - git-shallow-clone/checkout_advanced: clone_options: "--depth 1 --verbose" - - bun-orb/setup: - version: 1.1.1 - attach_workspace: at: . - run: diff --git a/.github/workflows/canary-release-pr.yml b/.github/workflows/canary-release-pr.yml index 2859f3072c6d..dde7b4eb3606 100644 --- a/.github/workflows/canary-release-pr.yml +++ b/.github/workflows/canary-release-pr.yml @@ -60,10 +60,6 @@ jobs: with: node-version-file: ".nvmrc" - - uses: oven-sh/setup-bun@v1 - with: - bun-version: 1.1.1 - - name: Cache dependencies uses: actions/cache@v4 with: diff --git a/.github/workflows/generate-sandboxes.yml b/.github/workflows/generate-sandboxes.yml index 3782aba5d8a8..09ab43d53601 100644 --- a/.github/workflows/generate-sandboxes.yml +++ b/.github/workflows/generate-sandboxes.yml @@ -29,10 +29,6 @@ jobs: - uses: actions/checkout@v4 with: ref: next - - - uses: oven-sh/setup-bun@v1 - with: - bun-version: 1.1.1 - uses: actions/setup-node@v4 with: @@ -86,10 +82,6 @@ jobs: with: ref: main - - uses: oven-sh/setup-bun@v1 - with: - bun-version: 1.1.1 - - uses: actions/setup-node@v4 with: node-version-file: ".nvmrc" diff --git a/.github/workflows/prepare-non-patch-release.yml b/.github/workflows/prepare-non-patch-release.yml index 54cff041315d..c495114d461e 100644 --- a/.github/workflows/prepare-non-patch-release.yml +++ b/.github/workflows/prepare-non-patch-release.yml @@ -56,10 +56,6 @@ jobs: with: node-version-file: ".nvmrc" - - uses: oven-sh/setup-bun@v1 - with: - bun-version: 1.1.1 - - name: Cache dependencies uses: actions/cache@v4 with: diff --git a/.github/workflows/prepare-patch-release.yml b/.github/workflows/prepare-patch-release.yml index 1a92fd0f8f6a..f66258c0d836 100644 --- a/.github/workflows/prepare-patch-release.yml +++ b/.github/workflows/prepare-patch-release.yml @@ -35,10 +35,6 @@ jobs: with: node-version-file: ".nvmrc" - - uses: oven-sh/setup-bun@v1 - with: - bun-version: 1.1.1 - - name: Cache dependencies uses: actions/cache@v4 with: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c48b3a2df59d..61566b49d5bb 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -47,10 +47,6 @@ jobs: with: node-version-file: ".nvmrc" - - uses: oven-sh/setup-bun@v1 - with: - bun-version: 1.1.1 - - name: Cache dependencies uses: actions/cache@v4 with: diff --git a/.github/workflows/tests-unit.yml b/.github/workflows/tests-unit.yml index 8cd873592d1b..462f30daf183 100644 --- a/.github/workflows/tests-unit.yml +++ b/.github/workflows/tests-unit.yml @@ -17,9 +17,6 @@ jobs: runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - - uses: oven-sh/setup-bun@v1 - with: - bun-version: 1.1.1 - name: Set node version uses: actions/setup-node@v4 with: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4029a3ed691d..4f65401dd4a8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,7 +8,6 @@ You will need to have the following installed: - git - node - yarn -- [bun](https://bun.sh/) ## Using fnm as a Node version manager diff --git a/code/core/package.json b/code/core/package.json index c82c808cafa0..88254b60ea99 100644 --- a/code/core/package.json +++ b/code/core/package.json @@ -265,8 +265,8 @@ "!src/**/*" ], "scripts": { - "check": "bun ./scripts/check.ts", - "prep": "bun ./scripts/prep.ts" + "check": "jiti ./scripts/check.ts", + "prep": "jiti ./scripts/prep.ts" }, "dependencies": { "@storybook/csf": "^0.1.11", diff --git a/code/core/scripts/dts.ts b/code/core/scripts/dts.ts index 932a2ae228e5..265a481b9b6d 100644 --- a/code/core/scripts/dts.ts +++ b/code/core/scripts/dts.ts @@ -3,47 +3,50 @@ import { process, dts, nodeInternals } from '../../../scripts/prepare/tools'; import { getEntries } from './entries'; import pkg from '../package.json'; -const cwd = process.cwd(); - -const flags = process.argv.slice(2); - -const selection = flags[0] || 'all'; - -const entries = getEntries(cwd); -const external = [ - ...Object.keys((pkg as any).dependencies || {}), - ...Object.keys((pkg as any).peerDependencies || {}), - ...nodeInternals, - 'typescript', - '@storybook/core', - - '@storybook/core/builder-manager', - '@storybook/core/channels', - '@storybook/core/client-logger', - '@storybook/core/common', - '@storybook/core/components', - '@storybook/core/core-events', - '@storybook/core/core-server', - '@storybook/core/csf-tools', - '@storybook/core/docs-tools', - '@storybook/core/manager-api', - '@storybook/core/node-logger', - '@storybook/core/preview-api', - '@storybook/core/router', - '@storybook/core/telemetry', - '@storybook/core/theming', - '@storybook/core/types', -]; - -const all = entries.filter((e) => e.dts); -const list = selection === 'all' ? all : [all[Number(selection)]]; - -await Promise.all( - list.map(async (i) => { - await dts( - i.file, - [...external, ...i.externals], - join(import.meta.dirname, '..', 'tsconfig.json') - ); - }) -); +async function run() { + const cwd = process.cwd(); + + const flags = process.argv.slice(2); + + const selection = flags[0] || 'all'; + + const entries = getEntries(cwd); + const external = [ + ...Object.keys((pkg as any).dependencies || {}), + ...Object.keys((pkg as any).peerDependencies || {}), + ...nodeInternals, + 'typescript', + '@storybook/core', + + '@storybook/core/builder-manager', + '@storybook/core/channels', + '@storybook/core/client-logger', + '@storybook/core/common', + '@storybook/core/components', + '@storybook/core/core-events', + '@storybook/core/core-server', + '@storybook/core/csf-tools', + '@storybook/core/docs-tools', + '@storybook/core/manager-api', + '@storybook/core/node-logger', + '@storybook/core/preview-api', + '@storybook/core/router', + '@storybook/core/telemetry', + '@storybook/core/theming', + '@storybook/core/types', + ]; + + const all = entries.filter((e) => e.dts); + const list = selection === 'all' ? all : [all[Number(selection)]]; + + await Promise.all( + list.map(async (i) => { + await dts(i.file, [...external, ...i.externals], join(__dirname, '..', 'tsconfig.json')); + }) + ); +} + +run().catch((e) => { + console.error(e); + process.exit(1); +}); diff --git a/code/core/scripts/helpers/generatePackageJsonFile.ts b/code/core/scripts/helpers/generatePackageJsonFile.ts index 7d87d25ae9e2..437d34c461a2 100644 --- a/code/core/scripts/helpers/generatePackageJsonFile.ts +++ b/code/core/scripts/helpers/generatePackageJsonFile.ts @@ -1,13 +1,15 @@ import { join, relative } from 'node:path'; import slash from 'slash'; -import { sortPackageJson, Bun } from '../../../../scripts/prepare/tools'; +import { sortPackageJson } from '../../../../scripts/prepare/tools'; import type { getEntries } from '../entries'; +import { readJSON } from 'fs-extra'; +import { writeFile } from 'node:fs/promises'; const cwd = process.cwd(); export async function generatePackageJsonFile(entries: ReturnType) { const location = join(cwd, 'package.json'); - const pkgJson = await Bun.file(location).json(); + const pkgJson = await readJSON(location); /** Re-create the `exports` field in `code/core/package.json` * This way we only need to update the `./scripts/entries.ts` file to ensure all things we create actually exist and are mapped to the correct path. @@ -67,5 +69,5 @@ export async function generatePackageJsonFile(entries: ReturnType[] = []; + let processes: ReturnType[] = []; await Promise.all( dtsEntries.map(async (fileName, index) => { return limited(async () => { const getDtsProcess = () => - Bun.spawn(['bun', './scripts/dts.ts', index.toString()], { + spawn('jiti', ['./scripts/dts.ts', index.toString()], { cwd, stdio: ['ignore', 'pipe', 'inherit'], }); let timer: ReturnType | undefined; - let dtsProcess = getDtsProcess(); + const dtsProcess = getDtsProcess(); processes.push(dtsProcess); + await Promise.race([ - dtsProcess.exited.catch(async () => { - await dtsProcess.kill(); - dtsProcess = getDtsProcess(); - return dtsProcess.exited; + new Promise((resolve, reject) => { + dtsProcess.on('exit', () => { + resolve(void 0); + }); + dtsProcess.on('error', () => { + resolve(void 0); + }); + dtsProcess.on('close', () => { + resolve(void 0); + }); }), - new Promise((_, reject) => { + new Promise((resolve) => { timer = setTimeout(() => { console.log(index, fileName); - reject(new Error('timed out')); + dtsProcess.kill(408); // timed out + resolve(void 0); }, 60000); }), ]); + if (timer) { clearTimeout(timer); } + if (dtsProcess.exitCode !== 0) { // If any fail, kill all the other processes and exit (bail) processes.forEach((p) => p.kill()); diff --git a/code/core/scripts/helpers/generateTypesMapperFiles.ts b/code/core/scripts/helpers/generateTypesMapperFiles.ts index f50f9b4fb07d..bd95fc27e53c 100644 --- a/code/core/scripts/helpers/generateTypesMapperFiles.ts +++ b/code/core/scripts/helpers/generateTypesMapperFiles.ts @@ -1,7 +1,7 @@ -import { Bun } from '../../../../scripts/prepare/tools'; import type { getEntries } from '../entries'; import { join, relative } from 'node:path'; import { dedent } from '../../../../scripts/prepare/tools'; +import { writeFile } from 'node:fs/promises'; const cwd = process.cwd(); @@ -10,7 +10,7 @@ async function generateTypesMapperContent(filePath: string) { const downwards = relative(cwd, filePath); return dedent` - // auto generated file from ${import.meta.filename}, do not edit + // auto generated file from ${__filename}, do not edit export * from '${join(upwards, downwards)}'; export type * from '${join(upwards, downwards)}'; `; @@ -28,7 +28,7 @@ export async function generateTypesMapperFiles(entries: ReturnType - Bun.write( + writeFile( filePath.replace('src', 'dist').replace(/\.tsx?/, '.d.ts'), await generateTypesMapperContent(filePath) ) diff --git a/code/core/scripts/helpers/modifyThemeTypes.ts b/code/core/scripts/helpers/modifyThemeTypes.ts index 3faf5c37af63..14a0b4c0dd8d 100644 --- a/code/core/scripts/helpers/modifyThemeTypes.ts +++ b/code/core/scripts/helpers/modifyThemeTypes.ts @@ -1,5 +1,6 @@ import { join } from 'node:path'; -import { dedent, Bun } from '../../../../scripts/prepare/tools'; +import { dedent } from '../../../../scripts/prepare/tools'; +import { readFile, writeFile } from 'node:fs/promises'; export async function modifyThemeTypes() { /** @@ -7,8 +8,8 @@ export async function modifyThemeTypes() { * This is not an option for us, because we pre-bundle emotion in. * The little hack work to ensure the `Theme` export is overloaded with our `StorybookTheme` interface. (in both development and production builds) */ - const target = join(import.meta.dirname, '..', '..', 'dist', 'theming', 'index.d.ts'); - const contents = await Bun.file(target).text(); + const target = join(__dirname, '..', '..', 'dist', 'theming', 'index.d.ts'); + const contents = await readFile(target, 'utf-8'); const footer = contents.includes('// auto generated file') ? `export { StorybookTheme as Theme } from '../src/index';` @@ -22,5 +23,5 @@ export async function modifyThemeTypes() { ${footer} `; - await Bun.write(target, newContents); + await writeFile(target, newContents); } diff --git a/code/core/scripts/helpers/sourcefiles.ts b/code/core/scripts/helpers/sourcefiles.ts index 867f401ad15b..d5a8c0508bf7 100644 --- a/code/core/scripts/helpers/sourcefiles.ts +++ b/code/core/scripts/helpers/sourcefiles.ts @@ -1,5 +1,5 @@ import { join } from 'node:path'; -import { readdir } from 'node:fs/promises'; +import { readdir, writeFile } from 'node:fs/promises'; import { dedent, prettier, getWorkspace, esbuild } from '../../../../scripts/prepare/tools'; import { temporaryFile } from '../../src/common/utils/cli'; @@ -11,7 +11,7 @@ GlobalRegistrator.register({ url: 'http://localhost:3000', width: 1920, height: // save this list into ./code/core/src/types/frameworks.ts and export it as a union type. // The name of the type is `SupportedFrameworks`. Add additionally 'qwik' and `solid` to that list. export const generateSourceFiles = async () => { - const location = join(import.meta.dirname, '..', '..', 'src'); + const location = join(__dirname, '..', '..', 'src'); const prettierConfig = await prettier.resolveConfig(location); await Promise.all([ @@ -23,7 +23,7 @@ export const generateSourceFiles = async () => { }; async function generateVersionsFile(prettierConfig: prettier.Options | null): Promise { - const location = join(import.meta.dirname, '..', '..', 'src', 'common', 'versions.ts'); + const location = join(__dirname, '..', '..', 'src', 'common', 'versions.ts'); const workspace = await getWorkspace(); @@ -38,7 +38,7 @@ async function generateVersionsFile(prettierConfig: prettier.Options | null): Pr }, {}) ); - await Bun.write( + await writeFile( location, await prettier.format( dedent` @@ -55,23 +55,15 @@ async function generateVersionsFile(prettierConfig: prettier.Options | null): Pr async function generateFrameworksFile(prettierConfig: prettier.Options | null): Promise { const thirdPartyFrameworks = ['qwik', 'solid']; - const location = join( - import.meta.dirname, - '..', - '..', - 'src', - 'types', - 'modules', - 'frameworks.ts' - ); - const frameworksDirectory = join(import.meta.dirname, '..', '..', '..', 'frameworks'); + const location = join(__dirname, '..', '..', 'src', 'types', 'modules', 'frameworks.ts'); + const frameworksDirectory = join(__dirname, '..', '..', '..', 'frameworks'); const readFrameworks = await readdir(frameworksDirectory); const frameworks = [...readFrameworks.sort(), ...thirdPartyFrameworks] .map((framework) => `'${framework}'`) .join(' | '); - await Bun.write( + await writeFile( location, await prettier.format( dedent` @@ -87,25 +79,17 @@ async function generateFrameworksFile(prettierConfig: prettier.Options | null): } const localAlias = { - '@storybook/core': join(import.meta.dirname, '..', '..', 'src'), - storybook: join(import.meta.dirname, '..', '..', 'src'), + '@storybook/core': join(__dirname, '..', '..', 'src'), + storybook: join(__dirname, '..', '..', 'src'), }; async function generateExportsFile(prettierConfig: prettier.Options | null): Promise { function removeDefault(input: string) { return input !== 'default'; } - const location = join(import.meta.dirname, '..', '..', 'src', 'manager', 'globals', 'exports.ts'); + const location = join(__dirname, '..', '..', 'src', 'manager', 'globals', 'exports.ts'); - const entryFile = join( - import.meta.dirname, - '..', - '..', - 'src', - 'manager', - 'globals', - 'runtime.ts' - ); + const entryFile = join(__dirname, '..', '..', 'src', 'manager', 'globals', 'runtime.ts'); const outFile = await temporaryFile({ extension: 'js' }); await esbuild.build({ @@ -133,7 +117,7 @@ async function generateExportsFile(prettierConfig: prettier.Options | null): Pro } } - await Bun.write( + await writeFile( location, await prettier.format( dedent` diff --git a/code/core/scripts/prep.ts b/code/core/scripts/prep.ts index 4bd99e8837a3..0ab942935993 100644 --- a/code/core/scripts/prep.ts +++ b/code/core/scripts/prep.ts @@ -26,136 +26,137 @@ import { generateTypesMapperFiles } from './helpers/generateTypesMapperFiles'; import { generateTypesFiles } from './helpers/generateTypesFiles'; import { isNode, noExternals, isBrowser } from './helpers/isEntryType'; -const flags = process.argv.slice(2); -const cwd = process.cwd(); +async function run() { + const flags = process.argv.slice(2); + const cwd = process.cwd(); -const isOptimized = flags.includes('--optimized'); -const isWatch = flags.includes('--watch'); -const isReset = flags.includes('--reset'); + const isOptimized = flags.includes('--optimized'); + const isWatch = flags.includes('--watch'); + const isReset = flags.includes('--reset'); -const external = [ - ...new Set([ - ...Object.keys(pkg.dependencies), - ...Object.keys((pkg as any).peerDependencies || {}), - ]), -]; + const external = [ + ...new Set([ + ...Object.keys(pkg.dependencies), + ...Object.keys((pkg as any).peerDependencies || {}), + ]), + ]; -if (isOptimized && isWatch) { - throw new Error('Cannot watch and optimize at the same time'); -} + if (isOptimized && isWatch) { + throw new Error('Cannot watch and optimize at the same time'); + } -if (isReset) { - await rmdir(join(cwd, 'dist'), { recursive: true }); -} + if (isReset) { + await rmdir(join(cwd, 'dist'), { recursive: true }); + } -const entries = getEntries(cwd); -const bundles = getBundles(cwd); -const finals = getFinals(cwd); + const entries = getEntries(cwd); + const bundles = getBundles(cwd); + const finals = getFinals(cwd); -type EsbuildContextOptions = Parameters<(typeof esbuild)['context']>[0]; + type EsbuildContextOptions = Parameters<(typeof esbuild)['context']>[0]; -console.log(isWatch ? 'Watching...' : 'Bundling...'); + console.log(isWatch ? 'Watching...' : 'Bundling...'); -const files = measure(generateSourceFiles); -const packageJson = measure(() => generatePackageJsonFile(entries)); -const dist = files.then(() => measure(generateDistFiles)); -const types = measure(async () => { - await generateTypesMapperFiles(entries); - await modifyThemeTypes(); - await generateTypesFiles(entries, isOptimized, cwd); - await modifyThemeTypes(); -}); + const files = measure(generateSourceFiles); + const packageJson = measure(() => generatePackageJsonFile(entries)); + const dist = files.then(() => measure(generateDistFiles)); + const types = measure(async () => { + await generateTypesMapperFiles(entries); + await modifyThemeTypes(); + await generateTypesFiles(entries, isOptimized, cwd); + await modifyThemeTypes(); + }); -const [filesTime, packageJsonTime, distTime, typesTime] = await Promise.all([ - files, - packageJson, - dist, - types, -]); + const [filesTime, packageJsonTime, distTime, typesTime] = await Promise.all([ + files, + packageJson, + dist, + types, + ]); -console.log('Files generated in', chalk.yellow(prettyTime(filesTime))); -console.log('Package.json generated in', chalk.yellow(prettyTime(packageJsonTime))); -console.log(isWatch ? 'Watcher started in' : 'Bundled in', chalk.yellow(prettyTime(distTime))); -console.log( - isOptimized ? 'Generated types in' : 'Generated type mappers in', - chalk.yellow(prettyTime(typesTime)) -); + console.log('Files generated in', chalk.yellow(prettyTime(filesTime))); + console.log('Package.json generated in', chalk.yellow(prettyTime(packageJsonTime))); + console.log(isWatch ? 'Watcher started in' : 'Bundled in', chalk.yellow(prettyTime(distTime))); + console.log( + isOptimized ? 'Generated types in' : 'Generated type mappers in', + chalk.yellow(prettyTime(typesTime)) + ); -async function generateDistFiles() { - const esbuildDefaultOptions = { - absWorkingDir: cwd, - allowOverwrite: false, - assetNames: 'assets/[name]-[hash]', - bundle: true, - chunkNames: 'chunks/[name]-[hash]', - external: ['@storybook/core', ...external], - keepNames: true, - legalComments: 'none', - lineLimit: 140, - metafile: true, - minifyIdentifiers: isOptimized, - minifySyntax: isOptimized, - minifyWhitespace: false, - outdir: 'dist', - sourcemap: false, - treeShaking: true, - } satisfies EsbuildContextOptions; + async function generateDistFiles() { + const esbuildDefaultOptions = { + absWorkingDir: cwd, + allowOverwrite: false, + assetNames: 'assets/[name]-[hash]', + bundle: true, + chunkNames: 'chunks/[name]-[hash]', + external: ['@storybook/core', ...external], + keepNames: true, + legalComments: 'none', + lineLimit: 140, + metafile: true, + minifyIdentifiers: isOptimized, + minifySyntax: isOptimized, + minifyWhitespace: false, + outdir: 'dist', + sourcemap: false, + treeShaking: true, + } satisfies EsbuildContextOptions; - const browserEsbuildOptions = { - ...esbuildDefaultOptions, - format: 'esm', - target: ['chrome100', 'safari15', 'firefox91'], - splitting: false, - platform: 'browser', + const browserEsbuildOptions = { + ...esbuildDefaultOptions, + format: 'esm', + target: ['chrome100', 'safari15', 'firefox91'], + splitting: false, + platform: 'browser', - conditions: ['browser', 'module', 'import', 'default'], - } satisfies EsbuildContextOptions; + conditions: ['browser', 'module', 'import', 'default'], + } satisfies EsbuildContextOptions; - const nodeEsbuildOptions = { - ...esbuildDefaultOptions, - target: 'node18', - splitting: false, - platform: 'neutral', - mainFields: ['main', 'module', 'node'], - conditions: ['node', 'module', 'import', 'require'], - } satisfies EsbuildContextOptions; + const nodeEsbuildOptions = { + ...esbuildDefaultOptions, + target: 'node18', + splitting: false, + platform: 'neutral', + mainFields: ['main', 'module', 'node'], + conditions: ['node', 'module', 'import', 'require'], + } satisfies EsbuildContextOptions; - const browserAliases = { - assert: require.resolve('browser-assert'), - process: require.resolve('process/browser.js'), - util: require.resolve('util/util.js'), - }; + const browserAliases = { + assert: require.resolve('browser-assert'), + process: require.resolve('process/browser.js'), + util: require.resolve('util/util.js'), + }; - const compile = await Promise.all([ - esbuild.context( - merge(nodeEsbuildOptions, { - entryPoints: entries - .filter(isNode) - .filter(noExternals) - .map((e) => e.file), - external: [...nodeInternals, ...esbuildDefaultOptions.external], - format: 'cjs', - outExtension: { - '.js': '.cjs', - }, - }) - ), - esbuild.context( - merge(browserEsbuildOptions, { - alias: browserAliases, - entryPoints: entries - .filter(isBrowser) - .filter(noExternals) - .map((entry) => entry.file), - outExtension: { - '.js': '.js', - }, - }) - ), - esbuild.context( - merge(nodeEsbuildOptions, { - banner: { - js: dedent` + const compile = await Promise.all([ + esbuild.context( + merge(nodeEsbuildOptions, { + entryPoints: entries + .filter(isNode) + .filter(noExternals) + .map((e) => e.file), + external: [...nodeInternals, ...esbuildDefaultOptions.external], + format: 'cjs', + outExtension: { + '.js': '.cjs', + }, + }) + ), + esbuild.context( + merge(browserEsbuildOptions, { + alias: browserAliases, + entryPoints: entries + .filter(isBrowser) + .filter(noExternals) + .map((entry) => entry.file), + outExtension: { + '.js': '.js', + }, + }) + ), + esbuild.context( + merge(nodeEsbuildOptions, { + banner: { + js: dedent` import ESM_COMPAT_Module from "node:module"; import { fileURLToPath as ESM_COMPAT_fileURLToPath } from 'node:url'; import { dirname as ESM_COMPAT_dirname } from 'node:path'; @@ -163,167 +164,173 @@ async function generateDistFiles() { const __dirname = ESM_COMPAT_dirname(__filename); const require = ESM_COMPAT_Module.createRequire(import.meta.url); `, - }, - entryPoints: entries - .filter(isNode) - .filter(noExternals) - .filter((i) => !isBrowser(i)) - .map((entry) => entry.file), - external: [...nodeInternals, ...esbuildDefaultOptions.external], - format: 'esm', - outExtension: { - '.js': '.js', - }, - }) - ), - ...bundles.flatMap((entry) => { - const results = []; - results.push( - esbuild.context( - merge(browserEsbuildOptions, { - outdir: dirname(entry.file).replace('src', 'dist'), - entryPoints: [entry.file], - outExtension: { '.js': '.js' }, - alias: { - ...browserAliases, - '@storybook/core': join(cwd, 'src'), - react: dirname(require.resolve('react/package.json')), - 'react-dom': dirname(require.resolve('react-dom/package.json')), - }, - external: [], - }) - ) - ); - - return results; - }), - ...finals.flatMap((entry) => { - const results = []; - results.push( - esbuild.context( - merge(browserEsbuildOptions, { - alias: { - '@storybook/core': join(cwd, 'src'), - react: dirname(require.resolve('react/package.json')), - 'react-dom': dirname(require.resolve('react-dom/package.json')), - 'react-dom/client': join( - dirname(require.resolve('react-dom/package.json')), - 'client' - ), - }, - define: { - // This should set react in prod mode for the manager - 'process.env.NODE_ENV': JSON.stringify('production'), - }, - entryPoints: [entry.file], - external: [], - outdir: dirname(entry.file).replace('src', 'dist'), - outExtension: { - '.js': '.js', - }, - plugins: [globalExternals(globalsModuleInfoMap)], - }) - ) - ); + }, + entryPoints: entries + .filter(isNode) + .filter(noExternals) + .filter((i) => !isBrowser(i)) + .map((entry) => entry.file), + external: [...nodeInternals, ...esbuildDefaultOptions.external], + format: 'esm', + outExtension: { + '.js': '.js', + }, + }) + ), + ...bundles.flatMap((entry) => { + const results = []; + results.push( + esbuild.context( + merge(browserEsbuildOptions, { + outdir: dirname(entry.file).replace('src', 'dist'), + entryPoints: [entry.file], + outExtension: { '.js': '.js' }, + alias: { + ...browserAliases, + '@storybook/core': join(cwd, 'src'), + react: dirname(require.resolve('react/package.json')), + 'react-dom': dirname(require.resolve('react-dom/package.json')), + }, + external: [], + }) + ) + ); - return results; - }), - ...entries - .filter((entry) => !noExternals(entry)) - .flatMap((entry) => { + return results; + }), + ...finals.flatMap((entry) => { const results = []; - if (entry.node) { - results.push( - esbuild.context( - merge(nodeEsbuildOptions, { - entryPoints: [entry.file], - external: [ - ...nodeInternals, - ...esbuildDefaultOptions.external, - ...entry.externals, - ].filter((e) => !entry.internals.includes(e)), - format: 'cjs', - outdir: dirname(entry.file).replace('src', 'dist'), - outExtension: { - '.js': '.cjs', - }, - }) - ) - ); - } - if (entry.browser) { - results.push( - esbuild.context( - merge(browserEsbuildOptions, { - entryPoints: [entry.file], - external: [ - ...nodeInternals, - ...esbuildDefaultOptions.external, - ...entry.externals, - ].filter((e) => !entry.internals.includes(e)), - outdir: dirname(entry.file).replace('src', 'dist'), - outExtension: { - '.js': '.js', - }, - }) - ) - ); - } else if (entry.node) { - results.push( - esbuild.context( - merge(nodeEsbuildOptions, { - entryPoints: [entry.file], - external: [ - ...nodeInternals, - ...esbuildDefaultOptions.external, - ...entry.externals, - ].filter((e) => !entry.internals.includes(e)), - format: 'esm', - outdir: dirname(entry.file).replace('src', 'dist'), - outExtension: { - '.js': '.js', - }, - }) - ) - ); - } + results.push( + esbuild.context( + merge(browserEsbuildOptions, { + alias: { + '@storybook/core': join(cwd, 'src'), + react: dirname(require.resolve('react/package.json')), + 'react-dom': dirname(require.resolve('react-dom/package.json')), + 'react-dom/client': join( + dirname(require.resolve('react-dom/package.json')), + 'client' + ), + }, + define: { + // This should set react in prod mode for the manager + 'process.env.NODE_ENV': JSON.stringify('production'), + }, + entryPoints: [entry.file], + external: [], + outdir: dirname(entry.file).replace('src', 'dist'), + outExtension: { + '.js': '.js', + }, + plugins: [globalExternals(globalsModuleInfoMap)], + }) + ) + ); return results; }), - ]); + ...entries + .filter((entry) => !noExternals(entry)) + .flatMap((entry) => { + const results = []; + if (entry.node) { + results.push( + esbuild.context( + merge(nodeEsbuildOptions, { + entryPoints: [entry.file], + external: [ + ...nodeInternals, + ...esbuildDefaultOptions.external, + ...entry.externals, + ].filter((e) => !entry.internals.includes(e)), + format: 'cjs', + outdir: dirname(entry.file).replace('src', 'dist'), + outExtension: { + '.js': '.cjs', + }, + }) + ) + ); + } + if (entry.browser) { + results.push( + esbuild.context( + merge(browserEsbuildOptions, { + entryPoints: [entry.file], + external: [ + ...nodeInternals, + ...esbuildDefaultOptions.external, + ...entry.externals, + ].filter((e) => !entry.internals.includes(e)), + outdir: dirname(entry.file).replace('src', 'dist'), + outExtension: { + '.js': '.js', + }, + }) + ) + ); + } else if (entry.node) { + results.push( + esbuild.context( + merge(nodeEsbuildOptions, { + entryPoints: [entry.file], + external: [ + ...nodeInternals, + ...esbuildDefaultOptions.external, + ...entry.externals, + ].filter((e) => !entry.internals.includes(e)), + format: 'esm', + outdir: dirname(entry.file).replace('src', 'dist'), + outExtension: { + '.js': '.js', + }, + }) + ) + ); + } - if (isWatch) { - await Promise.all( - compile.map(async (context) => { - await context.watch(); - }) - ); + return results; + }), + ]); - // show a log message when a file is compiled - watch(join(cwd, 'dist'), { recursive: true }, (event, filename) => { - console.log(`compiled ${chalk.cyan(filename)}`); - }); - } else { - await Promise.all( - compile.map(async (context) => { - const out = await context.rebuild(); - await context.dispose(); + if (isWatch) { + await Promise.all( + compile.map(async (context) => { + await context.watch(); + }) + ); - /** - * I'm leaving this in place, because I want to start utilizing it in the future. - * I'm imagining a github action that shows the bundle analysis in the PR. - * I didn't have the project-scope to make that happen now, but I want expose this very rich useful data accessible, for the next person investigating bundle size issues. - */ + // show a log message when a file is compiled + watch(join(cwd, 'dist'), { recursive: true }, (event, filename) => { + console.log(`compiled ${chalk.cyan(filename)}`); + }); + } else { + await Promise.all( + compile.map(async (context) => { + const out = await context.rebuild(); + await context.dispose(); - // if (out.metafile) { - // await Bun.write('report/meta.json', JSON.stringify(out.metafile, null, 2)); - // await Bun.write( - // 'report/meta.txt', - // await esbuild.analyzeMetafile(out.metafile, { color: false, verbose: false }) - // ); - // console.log(await esbuild.analyzeMetafile(out.metafile, { color: true })); - // } - }) - ); + /** + * I'm leaving this in place, because I want to start utilizing it in the future. + * I'm imagining a github action that shows the bundle analysis in the PR. + * I didn't have the project-scope to make that happen now, but I want expose this very rich useful data accessible, for the next person investigating bundle size issues. + */ + + // if (out.metafile) { + // await Bun.write('report/meta.json', JSON.stringify(out.metafile, null, 2)); + // await Bun.write( + // 'report/meta.txt', + // await esbuild.analyzeMetafile(out.metafile, { color: false, verbose: false }) + // ); + // console.log(await esbuild.analyzeMetafile(out.metafile, { color: true })); + // } + }) + ); + } } } + +run().catch((err) => { + console.error(err); + process.exit(1); +}); diff --git a/code/core/src/typings.d.ts b/code/core/src/typings.d.ts index b8dce9296148..f969c50eddab 100644 --- a/code/core/src/typings.d.ts +++ b/code/core/src/typings.d.ts @@ -27,23 +27,6 @@ declare module 'lazy-universal-dotenv'; declare module 'open'; declare module 'pnp-webpack-plugin'; declare module 'react-inspector'; -// declare module 'detect-package-manager' { -// // copied from https://www.npmjs.com/package/detect-package-manager?activeTab=code -// // because -// declare type PM = 'npm' | 'yarn' | 'pnpm' | 'bun'; -// declare const detect: ({ -// cwd, -// includeGlobalBun, -// }?: { -// cwd?: string | undefined; -// includeGlobalBun?: boolean | undefined; -// }) => Promise; - -// declare function getNpmVersion(pm: PM): Promise; -// declare function clearCache(): void; - -// export { PM, clearCache, detect, getNpmVersion }; -// } declare var STORIES: any; diff --git a/scripts/package.json b/scripts/package.json index ed12757abaf5..f9be99b5583c 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -70,7 +70,6 @@ "@testing-library/jest-dom": "^6.4.8", "@testing-library/react": "^16.0.0", "@testing-library/user-event": "^14.5.2", - "@types/bun": "^1.1.6", "@types/cross-spawn": "^6.0.6", "@types/detect-port": "^1.3.5", "@types/ejs": "^3.1.5", @@ -181,7 +180,6 @@ "zod": "^3.23.8" }, "devDependencies": { - "bun": "^1.1.21", "jiti": "^1.21.6" }, "optionalDependencies": { diff --git a/scripts/prepare/tools.ts b/scripts/prepare/tools.ts index 0c388327455f..cf42d65a24c5 100644 --- a/scripts/prepare/tools.ts +++ b/scripts/prepare/tools.ts @@ -1,7 +1,6 @@ import { dirname, join } from 'node:path'; import * as process from 'node:process'; import { glob } from 'glob'; -import Bun from 'bun'; import slash from 'slash'; import typescript from 'typescript'; @@ -21,11 +20,13 @@ import { globalExternals } from '@fal-works/esbuild-plugin-global-externals'; import * as rpd from 'rollup-plugin-dts'; import * as rollup from 'rollup'; +import { writeFile } from 'node:fs/promises'; +import { readJson } from 'fs-extra'; +import { spawn } from 'cross-spawn'; export { globalExternals }; export const dts = async (entry: string, externals: string[], tsconfig: string) => { - console.log(entry); const dir = dirname(entry).replace('src', 'dist'); const out = await rollup.rollup({ input: entry, @@ -60,7 +61,7 @@ export const dts = async (entry: string, externals: string[], tsconfig: string) await Promise.all( output.map(async (o) => { if (o.type === 'chunk') { - await Bun.write(join(dir, o.fileName), o.code); + await writeFile(join(dir, o.fileName), o.code); } else { throw new Error(`Unexpected output type: ${o.type} for ${entry} (${o.fileName})`); } @@ -68,6 +69,8 @@ export const dts = async (entry: string, externals: string[], tsconfig: string) ); }; +export { spawn }; + export const defineEntry = (cwd: string) => ( @@ -106,7 +109,6 @@ export { limit, sortPackageJson, prettier, - Bun, }; export const nodeInternals = [ @@ -116,7 +118,7 @@ export const nodeInternals = [ ]; export const getWorkspace = async () => { - const codePackage = await Bun.file(join(CODE_DIRECTORY, 'package.json')).json(); + const codePackage = await readJson(join(CODE_DIRECTORY, 'package.json')); const { workspaces: { packages: patterns }, } = codePackage; @@ -129,7 +131,7 @@ export const getWorkspace = async () => { workspaces .flatMap((p) => p.map((i) => join(CODE_DIRECTORY, i))) .map(async (p) => { - const pkg = await Bun.file(join(p, 'package.json')).json(); + const pkg = await readJson(join(p, 'package.json')); return { ...pkg, path: p } as typefest.PackageJson & Required> & { path: string }; }) diff --git a/scripts/yarn.lock b/scripts/yarn.lock index 6baa898f37fc..da3c3621f8de 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -1173,62 +1173,6 @@ __metadata: languageName: node linkType: hard -"@oven/bun-darwin-aarch64@npm:1.1.21": - version: 1.1.21 - resolution: "@oven/bun-darwin-aarch64@npm:1.1.21" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@oven/bun-darwin-x64-baseline@npm:1.1.21": - version: 1.1.21 - resolution: "@oven/bun-darwin-x64-baseline@npm:1.1.21" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@oven/bun-darwin-x64@npm:1.1.21": - version: 1.1.21 - resolution: "@oven/bun-darwin-x64@npm:1.1.21" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@oven/bun-linux-aarch64@npm:1.1.21": - version: 1.1.21 - resolution: "@oven/bun-linux-aarch64@npm:1.1.21" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@oven/bun-linux-x64-baseline@npm:1.1.21": - version: 1.1.21 - resolution: "@oven/bun-linux-x64-baseline@npm:1.1.21" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@oven/bun-linux-x64@npm:1.1.21": - version: 1.1.21 - resolution: "@oven/bun-linux-x64@npm:1.1.21" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@oven/bun-windows-x64-baseline@npm:1.1.21": - version: 1.1.21 - resolution: "@oven/bun-windows-x64-baseline@npm:1.1.21" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@oven/bun-windows-x64@npm:1.1.21": - version: 1.1.21 - resolution: "@oven/bun-windows-x64@npm:1.1.21" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" @@ -1462,7 +1406,6 @@ __metadata: "@testing-library/jest-dom": "npm:^6.4.8" "@testing-library/react": "npm:^16.0.0" "@testing-library/user-event": "npm:^14.5.2" - "@types/bun": "npm:^1.1.6" "@types/cross-spawn": "npm:^6.0.6" "@types/detect-port": "npm:^1.3.5" "@types/ejs": "npm:^3.1.5" @@ -1490,7 +1433,6 @@ __metadata: "@vitest/coverage-v8": "npm:^2.0.5" ansi-regex: "npm:^6.0.1" browser-assert: "npm:^1.2.1" - bun: "npm:^1.1.21" chalk: "npm:^4.1.0" chromatic: "npm:^11.5.5" codecov: "npm:^3.8.1" @@ -1685,15 +1627,6 @@ __metadata: languageName: node linkType: hard -"@types/bun@npm:^1.1.6": - version: 1.1.6 - resolution: "@types/bun@npm:1.1.6" - dependencies: - bun-types: "npm:1.1.17" - checksum: 10c0/bbee1e56e03d9323f9476ba88ab78d98a7aa49e1996b36e18fc1529959666b21a264e61ff26a6584d0cb0702ee29df1a70354a83ad0113849727b7ec10ad91b7 - languageName: node - linkType: hard - "@types/concat-stream@npm:^2.0.0": version: 2.0.1 resolution: "@types/concat-stream@npm:2.0.1" @@ -1947,7 +1880,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>= 8, @types/node@npm:^20.0.0, @types/node@npm:~20.12.8": +"@types/node@npm:*, @types/node@npm:>= 8, @types/node@npm:^20.0.0": version: 20.12.14 resolution: "@types/node@npm:20.12.14" dependencies: @@ -2140,15 +2073,6 @@ __metadata: languageName: node linkType: hard -"@types/ws@npm:~8.5.10": - version: 8.5.10 - resolution: "@types/ws@npm:8.5.10" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/e9af279b984c4a04ab53295a40aa95c3e9685f04888df5c6920860d1dd073fcc57c7bd33578a04b285b2c655a0b52258d34bee0a20569dca8defb8393e1e5d29 - languageName: node - linkType: hard - "@types/yargs-parser@npm:*": version: 21.0.2 resolution: "@types/yargs-parser@npm:21.0.2" @@ -3673,53 +3597,6 @@ __metadata: languageName: node linkType: hard -"bun-types@npm:1.1.17": - version: 1.1.17 - resolution: "bun-types@npm:1.1.17" - dependencies: - "@types/node": "npm:~20.12.8" - "@types/ws": "npm:~8.5.10" - checksum: 10c0/d7fe81d3ffd23d90b111084c97d0fd89de5934ba2c1158d52ffcf087f7daab44b3c664823867e4154db62b94e498ec3a6fb9204ea8666d37235589faf8456716 - languageName: node - linkType: hard - -"bun@npm:^1.1.21": - version: 1.1.21 - resolution: "bun@npm:1.1.21" - dependencies: - "@oven/bun-darwin-aarch64": "npm:1.1.21" - "@oven/bun-darwin-x64": "npm:1.1.21" - "@oven/bun-darwin-x64-baseline": "npm:1.1.21" - "@oven/bun-linux-aarch64": "npm:1.1.21" - "@oven/bun-linux-x64": "npm:1.1.21" - "@oven/bun-linux-x64-baseline": "npm:1.1.21" - "@oven/bun-windows-x64": "npm:1.1.21" - "@oven/bun-windows-x64-baseline": "npm:1.1.21" - dependenciesMeta: - "@oven/bun-darwin-aarch64": - optional: true - "@oven/bun-darwin-x64": - optional: true - "@oven/bun-darwin-x64-baseline": - optional: true - "@oven/bun-linux-aarch64": - optional: true - "@oven/bun-linux-x64": - optional: true - "@oven/bun-linux-x64-baseline": - optional: true - "@oven/bun-windows-x64": - optional: true - "@oven/bun-windows-x64-baseline": - optional: true - bin: - bun: bin/bun.exe - bunx: bin/bun.exe - checksum: 10c0/768260211b6c082cfa486d55976ff82e0c0928f83bd6ce5bb3e94bffbb382c1ecd666de2befe824d4a8f3e44cc026e817ae5228d86b6148344976b08f929f98c - conditions: (os=darwin | os=linux | os=win32) & (cpu=arm64 | cpu=x64) - languageName: node - linkType: hard - "bundle-require@npm:^4.0.0": version: 4.0.2 resolution: "bundle-require@npm:4.0.2" From f1cb2c28bcd5399c512b6305641575a27b38ef47 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 17:31:09 +0200 Subject: [PATCH 077/135] =?UTF-8?q?node=20refuses=20to=20make=20parent=20d?= =?UTF-8?q?irectories,=20=F0=9F=98=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/scripts/helpers/generateTypesMapperFiles.ts | 12 ++++++------ code/core/scripts/prep.ts | 5 +++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/code/core/scripts/helpers/generateTypesMapperFiles.ts b/code/core/scripts/helpers/generateTypesMapperFiles.ts index bd95fc27e53c..37a480cb000a 100644 --- a/code/core/scripts/helpers/generateTypesMapperFiles.ts +++ b/code/core/scripts/helpers/generateTypesMapperFiles.ts @@ -2,6 +2,7 @@ import type { getEntries } from '../entries'; import { join, relative } from 'node:path'; import { dedent } from '../../../../scripts/prepare/tools'; import { writeFile } from 'node:fs/promises'; +import { ensureFile } from 'fs-extra'; const cwd = process.cwd(); @@ -27,11 +28,10 @@ export async function generateTypesMapperFiles(entries: ReturnType e.dts).map((e) => e.file); await Promise.all( - all.map(async (filePath) => - writeFile( - filePath.replace('src', 'dist').replace(/\.tsx?/, '.d.ts'), - await generateTypesMapperContent(filePath) - ) - ) + all.map(async (filePath) => { + const location = filePath.replace('src', 'dist').replace(/\.tsx?/, '.d.ts'); + await ensureFile(location); + await writeFile(location, await generateTypesMapperContent(filePath), {}); + }) ); } diff --git a/code/core/scripts/prep.ts b/code/core/scripts/prep.ts index 0ab942935993..905d732ac69e 100644 --- a/code/core/scripts/prep.ts +++ b/code/core/scripts/prep.ts @@ -1,7 +1,7 @@ /* eslint-disable local-rules/no-uncategorized-errors */ import { watch } from 'node:fs'; -import { rmdir } from 'node:fs/promises'; +import { mkdir, rm } from 'node:fs/promises'; import { join, dirname } from 'node:path'; import { esbuild, @@ -46,7 +46,8 @@ async function run() { } if (isReset) { - await rmdir(join(cwd, 'dist'), { recursive: true }); + await rm(join(cwd, 'dist'), { recursive: true }).catch(() => {}); + await mkdir(join(cwd, 'dist')); } const entries = getEntries(cwd); From d781f68154526453b11a82c461ece5ddf6309b16 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 18:11:07 +0200 Subject: [PATCH 078/135] fixes --- code/core/scripts/dts.ts | 4 +++- .../scripts/helpers/generateTypesFiles.ts | 21 ++++++++++++------- .../helpers/generateTypesMapperFiles.ts | 2 +- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/code/core/scripts/dts.ts b/code/core/scripts/dts.ts index 265a481b9b6d..10774cd2db1a 100644 --- a/code/core/scripts/dts.ts +++ b/code/core/scripts/dts.ts @@ -39,6 +39,8 @@ async function run() { const all = entries.filter((e) => e.dts); const list = selection === 'all' ? all : [all[Number(selection)]]; + console.log('Generating d.ts files for', list.map((i) => i.file).join(', ')); + await Promise.all( list.map(async (i) => { await dts(i.file, [...external, ...i.externals], join(__dirname, '..', 'tsconfig.json')); @@ -47,6 +49,6 @@ async function run() { } run().catch((e) => { - console.error(e); + process.stderr.write(e.stack); process.exit(1); }); diff --git a/code/core/scripts/helpers/generateTypesFiles.ts b/code/core/scripts/helpers/generateTypesFiles.ts index b0ed351b04d5..8a5e5767b22d 100644 --- a/code/core/scripts/helpers/generateTypesFiles.ts +++ b/code/core/scripts/helpers/generateTypesFiles.ts @@ -1,5 +1,5 @@ -import { relative } from 'node:path'; -import { dts, spawn } from '../../../../scripts/prepare/tools'; +import { join, relative } from 'node:path'; +import { spawn } from '../../../../scripts/prepare/tools'; import { process, chalk, limit } from '../../../../scripts/prepare/tools'; import type { getEntries } from '../entries'; @@ -15,23 +15,27 @@ export async function generateTypesFiles( // ...this way we do not bog down the main process/esbuild and can run them in parallel // we limit the number of concurrent processes to 3, because we don't want to overload the host machine // by trial and error, 3 seems to be the sweet spot between perf and consistency - const limited = limit(3); + const limited = limit(10); let processes: ReturnType[] = []; await Promise.all( dtsEntries.map(async (fileName, index) => { return limited(async () => { const getDtsProcess = () => - spawn('jiti', ['./scripts/dts.ts', index.toString()], { - cwd, - stdio: ['ignore', 'pipe', 'inherit'], - }); + spawn( + join(__dirname, '../../../../scripts/node_modules/.bin/jiti'), + ['./scripts/dts.ts', index.toString()], + { + cwd, + stdio: ['ignore', 'pipe', 'inherit'], + } + ); let timer: ReturnType | undefined; const dtsProcess = getDtsProcess(); processes.push(dtsProcess); await Promise.race([ - new Promise((resolve, reject) => { + new Promise((resolve) => { dtsProcess.on('exit', () => { resolve(void 0); }); @@ -57,6 +61,7 @@ export async function generateTypesFiles( } if (dtsProcess.exitCode !== 0) { + console.log(dtsProcess.exitCode); // If any fail, kill all the other processes and exit (bail) processes.forEach((p) => p.kill()); processes = []; diff --git a/code/core/scripts/helpers/generateTypesMapperFiles.ts b/code/core/scripts/helpers/generateTypesMapperFiles.ts index 37a480cb000a..82cadc3dc8a7 100644 --- a/code/core/scripts/helpers/generateTypesMapperFiles.ts +++ b/code/core/scripts/helpers/generateTypesMapperFiles.ts @@ -31,7 +31,7 @@ export async function generateTypesMapperFiles(entries: ReturnType { const location = filePath.replace('src', 'dist').replace(/\.tsx?/, '.d.ts'); await ensureFile(location); - await writeFile(location, await generateTypesMapperContent(filePath), {}); + await writeFile(location, await generateTypesMapperContent(filePath)); }) ); } From f3fc73db2f01ccf30bb2d41e194603370ea5975a Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 18:48:37 +0200 Subject: [PATCH 079/135] improve error reporting a bit, it's not as great as it was with top-level-await, but that's not supported by jiti --- code/core/scripts/dts.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/core/scripts/dts.ts b/code/core/scripts/dts.ts index 10774cd2db1a..fc291e2a2349 100644 --- a/code/core/scripts/dts.ts +++ b/code/core/scripts/dts.ts @@ -49,6 +49,6 @@ async function run() { } run().catch((e) => { - process.stderr.write(e.stack); + process.stderr.write(e.toString()); process.exit(1); }); From d48c48a760de9f44d4b841b3e7f3f0a4c8c3ca59 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 19:14:57 +0200 Subject: [PATCH 080/135] improve --- code/core/scripts/prep.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/code/core/scripts/prep.ts b/code/core/scripts/prep.ts index 905d732ac69e..582a0ee1f170 100644 --- a/code/core/scripts/prep.ts +++ b/code/core/scripts/prep.ts @@ -61,12 +61,14 @@ async function run() { const files = measure(generateSourceFiles); const packageJson = measure(() => generatePackageJsonFile(entries)); const dist = files.then(() => measure(generateDistFiles)); - const types = measure(async () => { - await generateTypesMapperFiles(entries); - await modifyThemeTypes(); - await generateTypesFiles(entries, isOptimized, cwd); - await modifyThemeTypes(); - }); + const types = files.then(() => + measure(async () => { + await generateTypesMapperFiles(entries); + await modifyThemeTypes(); + await generateTypesFiles(entries, isOptimized, cwd); + await modifyThemeTypes(); + }) + ); const [filesTime, packageJsonTime, distTime, typesTime] = await Promise.all([ files, From 58cedfed5022a980c246f291262efa4c93a44614 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 19:32:46 +0200 Subject: [PATCH 081/135] cleanup last few Bun references --- code/core/scripts/helpers/dependencies.ts | 3 ++- code/core/scripts/prep.ts | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/code/core/scripts/helpers/dependencies.ts b/code/core/scripts/helpers/dependencies.ts index b94144854034..a02b8ca41d83 100644 --- a/code/core/scripts/helpers/dependencies.ts +++ b/code/core/scripts/helpers/dependencies.ts @@ -1,3 +1,4 @@ +import { readJson } from 'fs-extra'; import { join } from 'node:path'; export async function flattenDependencies( @@ -16,7 +17,7 @@ export async function flattenDependencies( console.log(dep + ' not found'); return; } - const { dependencies = {}, peerDependencies = {} } = await Bun.file(path).json(); + const { dependencies = {}, peerDependencies = {} } = await readJson(path); const all: string[] = [ ...new Set([...Object.keys(dependencies), ...Object.keys(peerDependencies)]), ] diff --git a/code/core/scripts/prep.ts b/code/core/scripts/prep.ts index 582a0ee1f170..7fb69f15f3c3 100644 --- a/code/core/scripts/prep.ts +++ b/code/core/scripts/prep.ts @@ -320,8 +320,8 @@ async function run() { */ // if (out.metafile) { - // await Bun.write('report/meta.json', JSON.stringify(out.metafile, null, 2)); - // await Bun.write( + // await writeFile('report/meta.json', JSON.stringify(out.metafile, null, 2)); + // await writeFile( // 'report/meta.txt', // await esbuild.analyzeMetafile(out.metafile, { color: false, verbose: false }) // ); From f438676b7f5008fdcbb65c724332ff27a79fe425 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 19:42:38 +0200 Subject: [PATCH 082/135] remove unused ts-ignores --- code/core/src/manager/globals-runtime.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/core/src/manager/globals-runtime.ts b/code/core/src/manager/globals-runtime.ts index 011cb0f60fdf..25ce25d7581e 100644 --- a/code/core/src/manager/globals-runtime.ts +++ b/code/core/src/manager/globals-runtime.ts @@ -20,12 +20,10 @@ global.sendTelemetryError = (error) => { // handle all uncaught errors at the root of the application and log to telemetry global.addEventListener('error', (args) => { - // @ts-expect-error (not Event) const error = args.error || args; global.sendTelemetryError(error); }); -// @ts-expect-error (not Event) global.addEventListener('unhandledrejection', ({ reason }) => { global.sendTelemetryError(reason); }); From f433f4aefdc060f3fb44ae3dfd260cc509a0e8f8 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 20:43:40 +0200 Subject: [PATCH 083/135] node20 for build --- .nvmrc | 2 +- code/addons/interactions/package.json | 2 +- code/builders/builder-vite/package.json | 2 +- code/builders/builder-webpack5/package.json | 2 +- code/core/package.json | 4 +- code/frameworks/angular/package.json | 2 +- code/frameworks/html-vite/package.json | 2 +- code/frameworks/html-webpack5/package.json | 2 +- code/frameworks/nextjs/package.json | 2 +- code/frameworks/preact-vite/package.json | 2 +- code/frameworks/preact-webpack5/package.json | 2 +- code/frameworks/react-vite/package.json | 2 +- code/frameworks/react-webpack5/package.json | 2 +- code/frameworks/server-webpack5/package.json | 2 +- code/frameworks/svelte-vite/package.json | 2 +- code/frameworks/sveltekit/package.json | 2 +- code/frameworks/vue3-vite/package.json | 2 +- code/frameworks/vue3-webpack5/package.json | 2 +- .../web-components-vite/package.json | 2 +- .../web-components-webpack5/package.json | 2 +- code/lib/core-webpack/package.json | 2 +- code/package.json | 9 +- code/presets/create-react-app/package.json | 2 +- code/presets/html-webpack/package.json | 2 +- code/presets/preact-webpack/package.json | 2 +- code/presets/react-webpack/package.json | 2 +- code/presets/server-webpack/package.json | 2 +- code/presets/vue3-webpack/package.json | 2 +- code/renderers/react/package.json | 2 +- code/renderers/web-components/package.json | 2 +- code/yarn.lock | 224 +- scripts/.babelrc.cjs | 2 +- scripts/package.json | 4 +- scripts/yarn.lock | 11 +- .../react/yarn.lock | 11339 ---------------- .../svelte/package.json | 2 +- 36 files changed, 77 insertions(+), 11574 deletions(-) diff --git a/.nvmrc b/.nvmrc index 3c5535cf60a0..f3f52b42d3da 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -18.19.1 +20.9.0 diff --git a/code/addons/interactions/package.json b/code/addons/interactions/package.json index fd1923974b9c..08b2392b43e2 100644 --- a/code/addons/interactions/package.json +++ b/code/addons/interactions/package.json @@ -62,7 +62,7 @@ "devDependencies": { "@devtools-ds/object-inspector": "^1.1.2", "@storybook/icons": "^1.2.5", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "formik": "^2.2.9", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/code/builders/builder-vite/package.json b/code/builders/builder-vite/package.json index 33ba109b475f..e3e016608ea0 100644 --- a/code/builders/builder-vite/package.json +++ b/code/builders/builder-vite/package.json @@ -55,7 +55,7 @@ }, "devDependencies": { "@types/express": "^4.17.21", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "glob": "^10.0.0", "slash": "^5.0.0", "typescript": "^5.3.2", diff --git a/code/builders/builder-webpack5/package.json b/code/builders/builder-webpack5/package.json index 316fe19c3206..66d4e9b3cc04 100644 --- a/code/builders/builder-webpack5/package.json +++ b/code/builders/builder-webpack5/package.json @@ -64,7 +64,7 @@ }, "dependencies": { "@storybook/core-webpack": "workspace:*", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "@types/semver": "^7.3.4", "browser-assert": "^1.2.1", "case-sensitive-paths-webpack-plugin": "^2.4.0", diff --git a/code/core/package.json b/code/core/package.json index 88254b60ea99..d38f007ebb95 100644 --- a/code/core/package.json +++ b/code/core/package.json @@ -271,7 +271,7 @@ "dependencies": { "@storybook/csf": "^0.1.11", "@types/express": "^4.17.21", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "browser-assert": "^1.2.1", "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0", "esbuild-register": "^3.5.0", @@ -315,7 +315,7 @@ "@types/js-yaml": "^4.0.5", "@types/lodash": "^4.14.167", "@types/mock-fs": "^4.13.1", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "@types/npmlog": "^7.0.0", "@types/picomatch": "^2.3.0", "@types/prettier": "^3.0.0", diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json index 19dcf34e2e6e..9f8f67ef6e75 100644 --- a/code/frameworks/angular/package.json +++ b/code/frameworks/angular/package.json @@ -44,7 +44,7 @@ "@storybook/manager-api": "workspace:^", "@storybook/preview-api": "workspace:^", "@storybook/theming": "workspace:^", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "@types/react": "^18.0.37", "@types/react-dom": "^18.0.11", "@types/semver": "^7.3.4", diff --git a/code/frameworks/html-vite/package.json b/code/frameworks/html-vite/package.json index e05df39ae337..35f5a53f05d5 100644 --- a/code/frameworks/html-vite/package.json +++ b/code/frameworks/html-vite/package.json @@ -52,7 +52,7 @@ "magic-string": "^0.30.0" }, "devDependencies": { - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "typescript": "^5.3.2" }, "peerDependencies": { diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json index b73b460bd08e..174d7cf47ea2 100644 --- a/code/frameworks/html-webpack5/package.json +++ b/code/frameworks/html-webpack5/package.json @@ -51,7 +51,7 @@ "@storybook/global": "^5.0.0", "@storybook/html": "workspace:*", "@storybook/preset-html-webpack": "workspace:*", - "@types/node": "^18.0.0" + "@types/node": "^20.0.0" }, "devDependencies": { "typescript": "^5.3.2" diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index ef4e746eab0f..de528e78b9c4 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -143,7 +143,7 @@ "@storybook/preset-react-webpack": "workspace:*", "@storybook/react": "workspace:*", "@storybook/test": "workspace:*", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "@types/semver": "^7.3.4", "babel-loader": "^9.1.3", "css-loader": "^6.7.3", diff --git a/code/frameworks/preact-vite/package.json b/code/frameworks/preact-vite/package.json index 546e512c1a97..b66c14ee2178 100644 --- a/code/frameworks/preact-vite/package.json +++ b/code/frameworks/preact-vite/package.json @@ -51,7 +51,7 @@ "@storybook/preact": "workspace:*" }, "devDependencies": { - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "typescript": "^5.3.2", "vite": "^4.0.0" }, diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json index 497b1fcc7d7e..ae930a5c6737 100644 --- a/code/frameworks/preact-webpack5/package.json +++ b/code/frameworks/preact-webpack5/package.json @@ -50,7 +50,7 @@ "@storybook/builder-webpack5": "workspace:*", "@storybook/preact": "workspace:*", "@storybook/preset-preact-webpack": "workspace:*", - "@types/node": "^18.0.0" + "@types/node": "^20.0.0" }, "devDependencies": { "preact": "^10.5.13", diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index 3574bb0e066c..978d6ccd7801 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -58,7 +58,7 @@ "tsconfig-paths": "^4.2.0" }, "devDependencies": { - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "typescript": "^5.3.2", "vite": "^4.0.0" }, diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index 4267354e4183..1f443d01b53e 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -50,7 +50,7 @@ "@storybook/builder-webpack5": "workspace:*", "@storybook/preset-react-webpack": "workspace:*", "@storybook/react": "workspace:*", - "@types/node": "^18.0.0" + "@types/node": "^20.0.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index cd2445f1d61a..6b2379851f88 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -50,7 +50,7 @@ "@storybook/builder-webpack5": "workspace:*", "@storybook/preset-server-webpack": "workspace:*", "@storybook/server": "workspace:*", - "@types/node": "^18.0.0" + "@types/node": "^20.0.0" }, "devDependencies": { "typescript": "^5.3.2" diff --git a/code/frameworks/svelte-vite/package.json b/code/frameworks/svelte-vite/package.json index a835f420717e..66e3ef9408de 100644 --- a/code/frameworks/svelte-vite/package.json +++ b/code/frameworks/svelte-vite/package.json @@ -56,7 +56,7 @@ }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "svelte": "^5.0.0-next.65", "typescript": "^5.3.2", "vite": "^4.0.0" diff --git a/code/frameworks/sveltekit/package.json b/code/frameworks/sveltekit/package.json index dc6ee5519227..9e8e76549041 100644 --- a/code/frameworks/sveltekit/package.json +++ b/code/frameworks/sveltekit/package.json @@ -59,7 +59,7 @@ "@storybook/svelte-vite": "workspace:*" }, "devDependencies": { - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "typescript": "^5.3.2", "vite": "^4.0.0" }, diff --git a/code/frameworks/vue3-vite/package.json b/code/frameworks/vue3-vite/package.json index 64306cfd2abe..27fa004887dc 100644 --- a/code/frameworks/vue3-vite/package.json +++ b/code/frameworks/vue3-vite/package.json @@ -57,7 +57,7 @@ }, "devDependencies": { "@types/find-package-json": "^1.2.6", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "typescript": "^5.3.2", "vite": "^4.0.0" }, diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json index 4e094a34e57b..2228b2e6244b 100644 --- a/code/frameworks/vue3-webpack5/package.json +++ b/code/frameworks/vue3-webpack5/package.json @@ -50,7 +50,7 @@ "@storybook/builder-webpack5": "workspace:*", "@storybook/preset-vue3-webpack": "workspace:*", "@storybook/vue3": "workspace:*", - "@types/node": "^18.0.0" + "@types/node": "^20.0.0" }, "devDependencies": { "@vue/compiler-sfc": "3.0.0", diff --git a/code/frameworks/web-components-vite/package.json b/code/frameworks/web-components-vite/package.json index 64de9aa0eb44..f46d3a0705c2 100644 --- a/code/frameworks/web-components-vite/package.json +++ b/code/frameworks/web-components-vite/package.json @@ -52,7 +52,7 @@ "magic-string": "^0.30.0" }, "devDependencies": { - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "typescript": "^5.3.2" }, "peerDependencies": { diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json index 84df093c9a27..2286771100b3 100644 --- a/code/frameworks/web-components-webpack5/package.json +++ b/code/frameworks/web-components-webpack5/package.json @@ -52,7 +52,7 @@ "dependencies": { "@storybook/builder-webpack5": "workspace:*", "@storybook/web-components": "workspace:*", - "@types/node": "^18.0.0" + "@types/node": "^20.0.0" }, "devDependencies": { "lit": "2.3.1", diff --git a/code/lib/core-webpack/package.json b/code/lib/core-webpack/package.json index 4ba6334c8f3f..4c29af98d0f5 100644 --- a/code/lib/core-webpack/package.json +++ b/code/lib/core-webpack/package.json @@ -44,7 +44,7 @@ "prep": "jiti ../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "ts-dedent": "^2.0.0" }, "devDependencies": { diff --git a/code/package.json b/code/package.json index e689564a63f3..6fc3f64544ec 100644 --- a/code/package.json +++ b/code/package.json @@ -76,13 +76,13 @@ ], "resolutions": { "@playwright/test": "1.36.0", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", + "@vitest/expect@npm:2.0.5": "patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch", "esbuild": "^0.23.0", "playwright": "1.36.0", "playwright-core": "1.36.0", "serialize-javascript": "^3.1.0", - "type-fest": "~2.19", - "@vitest/expect@npm:2.0.5": "patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch" + "type-fest": "~2.19" }, "dependencies": { "@chromatic-com/storybook": "^1.6.1", @@ -165,7 +165,7 @@ "@types/fs-extra": "^11.0.1", "@types/lodash": "^4.14.167", "@types/mock-require": "^2.0.3", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "@types/react": "^18.0.37", "@types/react-dom": "^18.0.11", "@types/semver": "^7.3.4", @@ -193,7 +193,6 @@ "lint-staged": "^13.2.2", "lodash": "^4.17.21", "mock-require": "^3.0.3", - "node-gyp": "^9.3.1", "nx": "18.0.6", "prettier": "^3.1.1", "process": "^0.11.10", diff --git a/code/presets/create-react-app/package.json b/code/presets/create-react-app/package.json index 7b11694de959..5ba09b9c4307 100644 --- a/code/presets/create-react-app/package.json +++ b/code/presets/create-react-app/package.json @@ -56,7 +56,7 @@ "semver": "^7.5.4" }, "devDependencies": { - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "typescript": "^5.3.2" }, "peerDependencies": { diff --git a/code/presets/html-webpack/package.json b/code/presets/html-webpack/package.json index 5a4c14b31378..46cb67ca6b71 100644 --- a/code/presets/html-webpack/package.json +++ b/code/presets/html-webpack/package.json @@ -50,7 +50,7 @@ }, "dependencies": { "@storybook/core-webpack": "workspace:*", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "html-loader": "^3.1.0", "webpack": "5" }, diff --git a/code/presets/preact-webpack/package.json b/code/presets/preact-webpack/package.json index 9f3d79142c1c..e371b4b8776d 100644 --- a/code/presets/preact-webpack/package.json +++ b/code/presets/preact-webpack/package.json @@ -50,7 +50,7 @@ }, "dependencies": { "@storybook/core-webpack": "workspace:*", - "@types/node": "^18.0.0" + "@types/node": "^20.0.0" }, "devDependencies": { "preact": "^10.5.13", diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json index 620afd53a21c..39ba16e5a55e 100644 --- a/code/presets/react-webpack/package.json +++ b/code/presets/react-webpack/package.json @@ -67,7 +67,7 @@ "@storybook/core-webpack": "workspace:*", "@storybook/react": "workspace:*", "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "@types/semver": "^7.3.4", "find-up": "^5.0.0", "fs-extra": "^11.1.0", diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json index 45d124c3db8b..4c213839ded7 100644 --- a/code/presets/server-webpack/package.json +++ b/code/presets/server-webpack/package.json @@ -57,7 +57,7 @@ "@storybook/core-webpack": "workspace:*", "@storybook/global": "^5.0.0", "@storybook/server": "workspace:*", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "safe-identifier": "^0.4.1", "ts-dedent": "^2.0.0", "yaml-loader": "^0.8.0" diff --git a/code/presets/vue3-webpack/package.json b/code/presets/vue3-webpack/package.json index ef4d3f406664..bac6809df01f 100644 --- a/code/presets/vue3-webpack/package.json +++ b/code/presets/vue3-webpack/package.json @@ -60,7 +60,7 @@ }, "dependencies": { "@storybook/core-webpack": "workspace:*", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "ts-loader": "^9.2.8", "vue-docgen-api": "^4.75.1", "vue-docgen-loader": "^1.5.1", diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json index 1b48610bac55..4048f8f1f64b 100644 --- a/code/renderers/react/package.json +++ b/code/renderers/react/package.json @@ -72,7 +72,7 @@ "@storybook/theming": "workspace:^", "@types/escodegen": "^0.0.6", "@types/estree": "^0.0.51", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "acorn": "^7.4.1", "acorn-jsx": "^5.3.1", "acorn-walk": "^7.2.0", diff --git a/code/renderers/web-components/package.json b/code/renderers/web-components/package.json index 7fd65758695e..1b4b317bd740 100644 --- a/code/renderers/web-components/package.json +++ b/code/renderers/web-components/package.json @@ -60,7 +60,7 @@ }, "devDependencies": { "@types/cross-spawn": "^6.0.2", - "@types/node": "^18.0.0", + "@types/node": "^20.0.0", "cross-spawn": "^7.0.3", "lit": "2.3.1", "typescript": "^5.3.2", diff --git a/code/yarn.lock b/code/yarn.lock index 59184450da84..195223a2b9cf 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -2844,13 +2844,6 @@ __metadata: languageName: node linkType: hard -"@gar/promisify@npm:^1.1.3": - version: 1.1.3 - resolution: "@gar/promisify@npm:1.1.3" - checksum: 10c0/0b3c9958d3cd17f4add3574975e3115ae05dc7f1298a60810414b16f6f558c137b5fb3cd3905df380bacfd955ec13f67c1e6710cbb5c246a7e8d65a8289b2bff - languageName: node - linkType: hard - "@gilbarbara/deep-equal@npm:^0.1.1": version: 0.1.2 resolution: "@gilbarbara/deep-equal@npm:0.1.2" @@ -3882,16 +3875,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/fs@npm:^2.1.0": - version: 2.1.2 - resolution: "@npmcli/fs@npm:2.1.2" - dependencies: - "@gar/promisify": "npm:^1.1.3" - semver: "npm:^7.3.5" - checksum: 10c0/c50d087733d0d8df23be24f700f104b19922a28677aa66fdbe06ff6af6431cc4a5bb1e27683cbc661a5dafa9bafdc603e6a0378121506dfcd394b2b6dd76a187 - languageName: node - linkType: hard - "@npmcli/fs@npm:^3.1.0": version: 3.1.0 resolution: "@npmcli/fs@npm:3.1.0" @@ -3941,16 +3924,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/move-file@npm:^2.0.0": - version: 2.0.1 - resolution: "@npmcli/move-file@npm:2.0.1" - dependencies: - mkdirp: "npm:^1.0.4" - rimraf: "npm:^3.0.2" - checksum: 10c0/11b2151e6d1de6f6eb23128de5aa8a429fd9097d839a5190cb77aa47a6b627022c42d50fa7c47a00f1c9f8f0c1560092b09b061855d293fa0741a2a94cfb174d - languageName: node - linkType: hard - "@npmcli/name-from-folder@npm:^2.0.0": version: 2.0.0 resolution: "@npmcli/name-from-folder@npm:2.0.0" @@ -5219,7 +5192,7 @@ __metadata: "@storybook/icons": "npm:^1.2.5" "@storybook/instrumenter": "workspace:*" "@storybook/test": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" formik: "npm:^2.2.9" polished: "npm:^4.2.2" react: "npm:^18.2.0" @@ -5410,7 +5383,7 @@ __metadata: "@storybook/preview-api": "workspace:^" "@storybook/theming": "workspace:^" "@types/cross-spawn": "npm:^6.0.2" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" "@types/react": "npm:^18.0.37" "@types/react-dom": "npm:^18.0.11" "@types/semver": "npm:^7.3.4" @@ -5525,7 +5498,7 @@ __metadata: "@storybook/csf-plugin": "workspace:*" "@types/express": "npm:^4.17.21" "@types/find-cache-dir": "npm:^3.2.1" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" browser-assert: "npm:^1.2.1" es-module-lexer: "npm:^1.5.0" express: "npm:^4.19.2" @@ -5558,7 +5531,7 @@ __metadata: resolution: "@storybook/builder-webpack5@workspace:builders/builder-webpack5" dependencies: "@storybook/core-webpack": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" "@types/pretty-hrtime": "npm:^1.0.0" "@types/semver": "npm:^7.3.4" "@types/terser-webpack-plugin": "npm:^5.2.0" @@ -5719,7 +5692,7 @@ __metadata: version: 0.0.0-use.local resolution: "@storybook/core-webpack@workspace:lib/core-webpack" dependencies: - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" slash: "npm:^5.1.0" ts-dedent: "npm:^2.0.0" typescript: "npm:^5.3.2" @@ -5768,7 +5741,7 @@ __metadata: "@types/js-yaml": "npm:^4.0.5" "@types/lodash": "npm:^4.14.167" "@types/mock-fs": "npm:^4.13.1" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" "@types/npmlog": "npm:^7.0.0" "@types/picomatch": "npm:^2.3.0" "@types/prettier": "npm:^3.0.0" @@ -5973,7 +5946,7 @@ __metadata: dependencies: "@storybook/builder-vite": "workspace:*" "@storybook/html": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" magic-string: "npm:^0.30.0" typescript: "npm:^5.3.2" peerDependencies: @@ -5989,7 +5962,7 @@ __metadata: "@storybook/global": "npm:^5.0.0" "@storybook/html": "workspace:*" "@storybook/preset-html-webpack": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" typescript: "npm:^5.3.2" peerDependencies: storybook: "workspace:^" @@ -6105,7 +6078,7 @@ __metadata: "@types/babel__plugin-transform-runtime": "npm:^7" "@types/babel__preset-env": "npm:^7" "@types/loader-utils": "npm:^2.0.5" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" "@types/react-refresh": "npm:^0" "@types/semver": "npm:^7.3.4" babel-loader: "npm:^9.1.3" @@ -6162,7 +6135,7 @@ __metadata: dependencies: "@storybook/builder-vite": "workspace:*" "@storybook/preact": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" typescript: "npm:^5.3.2" vite: "npm:^4.0.0" peerDependencies: @@ -6178,7 +6151,7 @@ __metadata: "@storybook/builder-webpack5": "workspace:*" "@storybook/preact": "workspace:*" "@storybook/preset-preact-webpack": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" preact: "npm:^10.5.13" typescript: "npm:^5.3.2" peerDependencies: @@ -6211,7 +6184,7 @@ __metadata: dependencies: "@pmmmwh/react-refresh-webpack-plugin": "npm:^0.5.1" "@storybook/react-docgen-typescript-plugin": "npm:1.0.6--canary.9.0c3f3b7.0" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" "@types/semver": "npm:^7.5.6" pnp-webpack-plugin: "npm:^1.7.0" semver: "npm:^7.5.4" @@ -6227,7 +6200,7 @@ __metadata: resolution: "@storybook/preset-html-webpack@workspace:presets/html-webpack" dependencies: "@storybook/core-webpack": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" html-loader: "npm:^3.1.0" typescript: "npm:^5.3.2" webpack: "npm:5" @@ -6241,7 +6214,7 @@ __metadata: resolution: "@storybook/preset-preact-webpack@workspace:presets/preact-webpack" dependencies: "@storybook/core-webpack": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" preact: "npm:^10.5.13" typescript: "npm:^5.3.2" peerDependencies: @@ -6257,7 +6230,7 @@ __metadata: "@storybook/core-webpack": "workspace:*" "@storybook/react": "workspace:*" "@storybook/react-docgen-typescript-plugin": "npm:1.0.6--canary.9.0c3f3b7.0" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" "@types/semver": "npm:^7.3.4" find-up: "npm:^5.0.0" fs-extra: "npm:^11.1.0" @@ -6285,7 +6258,7 @@ __metadata: "@storybook/core-webpack": "workspace:*" "@storybook/global": "npm:^5.0.0" "@storybook/server": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" fs-extra: "npm:^11.1.0" safe-identifier: "npm:^0.4.1" ts-dedent: "npm:^2.0.0" @@ -6319,7 +6292,7 @@ __metadata: resolution: "@storybook/preset-vue3-webpack@workspace:presets/vue3-webpack" dependencies: "@storybook/core-webpack": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" "@vue/compiler-sfc": "npm:^3.2.33" ts-loader: "npm:^9.2.8" typescript: "npm:^5.3.2" @@ -6389,7 +6362,7 @@ __metadata: "@rollup/pluginutils": "npm:^5.0.2" "@storybook/builder-vite": "workspace:*" "@storybook/react": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" find-up: "npm:^5.0.0" magic-string: "npm:^0.30.0" react-docgen: "npm:^7.0.0" @@ -6412,7 +6385,7 @@ __metadata: "@storybook/builder-webpack5": "workspace:*" "@storybook/preset-react-webpack": "workspace:*" "@storybook/react": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -6438,7 +6411,7 @@ __metadata: "@types/babel-plugin-react-docgen": "npm:^4" "@types/escodegen": "npm:^0.0.6" "@types/estree": "npm:^0.0.51" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" "@types/semver": "npm:^7.3.4" "@types/util-deprecate": "npm:^1.0.0" acorn: "npm:^7.4.1" @@ -6551,7 +6524,7 @@ __metadata: "@types/fs-extra": "npm:^11.0.1" "@types/lodash": "npm:^4.14.167" "@types/mock-require": "npm:^2.0.3" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" "@types/react": "npm:^18.0.37" "@types/react-dom": "npm:^18.0.11" "@types/semver": "npm:^7.3.4" @@ -6579,7 +6552,6 @@ __metadata: lint-staged: "npm:^13.2.2" lodash: "npm:^4.17.21" mock-require: "npm:^3.0.3" - node-gyp: "npm:^9.3.1" nx: "npm:18.0.6" prettier: "npm:^3.1.1" process: "npm:^0.11.10" @@ -6629,7 +6601,7 @@ __metadata: "@storybook/builder-webpack5": "workspace:*" "@storybook/preset-server-webpack": "workspace:*" "@storybook/server": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" typescript: "npm:^5.3.2" peerDependencies: storybook: "workspace:^" @@ -6677,7 +6649,7 @@ __metadata: "@storybook/builder-vite": "workspace:*" "@storybook/svelte": "workspace:*" "@sveltejs/vite-plugin-svelte": "npm:^3.0.1" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" magic-string: "npm:^0.30.0" svelte: "npm:^5.0.0-next.65" svelte-preprocess: "npm:^5.1.1" @@ -6744,7 +6716,7 @@ __metadata: "@storybook/builder-vite": "workspace:*" "@storybook/svelte": "workspace:*" "@storybook/svelte-vite": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" typescript: "npm:^5.3.2" vite: "npm:^4.0.0" peerDependencies: @@ -6818,7 +6790,7 @@ __metadata: "@storybook/builder-vite": "workspace:*" "@storybook/vue3": "workspace:*" "@types/find-package-json": "npm:^1.2.6" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" find-package-json: "npm:^1.2.0" magic-string: "npm:^0.30.0" typescript: "npm:^5.3.2" @@ -6838,7 +6810,7 @@ __metadata: "@storybook/builder-webpack5": "workspace:*" "@storybook/preset-vue3-webpack": "workspace:*" "@storybook/vue3": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" "@vue/compiler-sfc": "npm:3.0.0" typescript: "npm:^5.3.2" vue: "npm:3.0.0" @@ -6882,7 +6854,7 @@ __metadata: dependencies: "@storybook/builder-vite": "workspace:*" "@storybook/web-components": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" magic-string: "npm:^0.30.0" typescript: "npm:^5.3.2" peerDependencies: @@ -6896,7 +6868,7 @@ __metadata: dependencies: "@storybook/builder-webpack5": "workspace:*" "@storybook/web-components": "workspace:*" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" lit: "npm:2.3.1" typescript: "npm:^5.3.2" peerDependencies: @@ -6915,7 +6887,7 @@ __metadata: "@storybook/preview-api": "workspace:^" "@storybook/theming": "workspace:^" "@types/cross-spawn": "npm:^6.0.2" - "@types/node": "npm:^18.0.0" + "@types/node": "npm:^20.0.0" cross-spawn: "npm:^7.0.3" lit: "npm:2.3.1" tiny-invariant: "npm:^1.3.1" @@ -7735,12 +7707,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^18.0.0": - version: 18.19.3 - resolution: "@types/node@npm:18.19.3" +"@types/node@npm:^20.0.0": + version: 20.14.14 + resolution: "@types/node@npm:20.14.14" dependencies: undici-types: "npm:~5.26.4" - checksum: 10c0/3ed943d06e9dff70a3da793f794f1192cd93b0ababdb9f07425a05680f17cfce649cbc46734265f6fbe52fd9f277496d3a4da26c013f1193a0345f2420ea6cd0 + checksum: 10c0/4fc8d368df2b6f5497698327b30db68d7d20e32221ce7d057fb15cbd5834685b2fde0440609e4cb2204e5d305b928f008faf41b950a425f3fd55b60cb1b997cf languageName: node linkType: hard @@ -10866,32 +10838,6 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^16.1.0": - version: 16.1.3 - resolution: "cacache@npm:16.1.3" - dependencies: - "@npmcli/fs": "npm:^2.1.0" - "@npmcli/move-file": "npm:^2.0.0" - chownr: "npm:^2.0.0" - fs-minipass: "npm:^2.1.0" - glob: "npm:^8.0.1" - infer-owner: "npm:^1.0.4" - lru-cache: "npm:^7.7.1" - minipass: "npm:^3.1.6" - minipass-collect: "npm:^1.0.2" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - mkdirp: "npm:^1.0.4" - p-map: "npm:^4.0.0" - promise-inflight: "npm:^1.0.1" - rimraf: "npm:^3.0.2" - ssri: "npm:^9.0.0" - tar: "npm:^6.1.11" - unique-filename: "npm:^2.0.0" - checksum: 10c0/cdf6836e1c457d2a5616abcaf5d8240c0346b1f5bd6fdb8866b9d84b6dff0b54e973226dc11e0d099f35394213d24860d1989c8358d2a41b39eb912b3000e749 - languageName: node - linkType: hard - "cacache@npm:^17.0.0": version: 17.1.4 resolution: "cacache@npm:17.1.4" @@ -15297,7 +15243,7 @@ __metadata: languageName: node linkType: hard -"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": +"fs-minipass@npm:^2.0.0": version: 2.1.0 resolution: "fs-minipass@npm:2.1.0" dependencies: @@ -15776,7 +15722,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^8.0.1, glob@npm:^8.1.0": +"glob@npm:^8.1.0": version: 8.1.0 resolution: "glob@npm:8.1.0" dependencies: @@ -16477,7 +16423,7 @@ __metadata: languageName: node linkType: hard -"http-cache-semantics@npm:^4.1.0, http-cache-semantics@npm:^4.1.1": +"http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc @@ -16819,13 +16765,6 @@ __metadata: languageName: node linkType: hard -"infer-owner@npm:^1.0.4": - version: 1.0.4 - resolution: "infer-owner@npm:1.0.4" - checksum: 10c0/a7b241e3149c26e37474e3435779487f42f36883711f198c45794703c7556bc38af224088bd4d1a221a45b8208ae2c2bcf86200383621434d0c099304481c5b9 - languageName: node - linkType: hard - "inflection@npm:^1.12.0": version: 1.13.4 resolution: "inflection@npm:1.13.4" @@ -18964,30 +18903,6 @@ __metadata: languageName: node linkType: hard -"make-fetch-happen@npm:^10.0.3": - version: 10.2.1 - resolution: "make-fetch-happen@npm:10.2.1" - dependencies: - agentkeepalive: "npm:^4.2.1" - cacache: "npm:^16.1.0" - http-cache-semantics: "npm:^4.1.0" - http-proxy-agent: "npm:^5.0.0" - https-proxy-agent: "npm:^5.0.0" - is-lambda: "npm:^1.0.1" - lru-cache: "npm:^7.7.1" - minipass: "npm:^3.1.6" - minipass-collect: "npm:^1.0.2" - minipass-fetch: "npm:^2.0.3" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - negotiator: "npm:^0.6.3" - promise-retry: "npm:^2.0.1" - socks-proxy-agent: "npm:^7.0.0" - ssri: "npm:^9.0.0" - checksum: 10c0/28ec392f63ab93511f400839dcee83107eeecfaad737d1e8487ea08b4332cd89a8f3319584222edd9f6f1d0833cf516691469496d46491863f9e88c658013949 - languageName: node - linkType: hard - "make-fetch-happen@npm:^11.0.3": version: 11.1.1 resolution: "make-fetch-happen@npm:11.1.1" @@ -20387,21 +20302,6 @@ __metadata: languageName: node linkType: hard -"minipass-fetch@npm:^2.0.3": - version: 2.1.2 - resolution: "minipass-fetch@npm:2.1.2" - dependencies: - encoding: "npm:^0.1.13" - minipass: "npm:^3.1.6" - minipass-sized: "npm:^1.0.3" - minizlib: "npm:^2.1.2" - dependenciesMeta: - encoding: - optional: true - checksum: 10c0/33ab2c5bdb3d91b9cb8bc6ae42d7418f4f00f7f7beae14b3bb21ea18f9224e792f560a6e17b6f1be12bbeb70dbe99a269f4204c60e5d99130a0777b153505c43 - languageName: node - linkType: hard - "minipass-fetch@npm:^3.0.0": version: 3.0.4 resolution: "minipass-fetch@npm:3.0.4" @@ -20454,7 +20354,7 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6": +"minipass@npm:^3.0.0": version: 3.3.6 resolution: "minipass@npm:3.3.6" dependencies: @@ -20522,7 +20422,7 @@ __metadata: languageName: node linkType: hard -"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": +"mkdirp@npm:^1.0.3": version: 1.0.4 resolution: "mkdirp@npm:1.0.4" bin: @@ -20868,27 +20768,6 @@ __metadata: languageName: node linkType: hard -"node-gyp@npm:^9.3.1": - version: 9.4.1 - resolution: "node-gyp@npm:9.4.1" - dependencies: - env-paths: "npm:^2.2.0" - exponential-backoff: "npm:^3.1.1" - glob: "npm:^7.1.4" - graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^10.0.3" - nopt: "npm:^6.0.0" - npmlog: "npm:^6.0.0" - rimraf: "npm:^3.0.2" - semver: "npm:^7.3.5" - tar: "npm:^6.1.2" - which: "npm:^2.0.2" - bin: - node-gyp: bin/node-gyp.js - checksum: 10c0/f7d676cfa79f27d35edf17fe9c80064123670362352d19729e5dc9393d7e99f1397491c3107eddc0c0e8941442a6244a7ba6c860cfbe4b433b4cae248a55fe10 - languageName: node - linkType: hard - "node-gyp@npm:latest": version: 9.4.0 resolution: "node-gyp@npm:9.4.0" @@ -25512,15 +25391,6 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^9.0.0": - version: 9.0.1 - resolution: "ssri@npm:9.0.1" - dependencies: - minipass: "npm:^3.1.1" - checksum: 10c0/c5d153ce03b5980d683ecaa4d805f6a03d8dc545736213803e168a1907650c46c08a4e5ce6d670a0205482b35c35713d9d286d9133bdd79853a406e22ad81f04 - languageName: node - linkType: hard - "stackback@npm:0.0.2": version: 0.0.2 resolution: "stackback@npm:0.0.2" @@ -27128,15 +26998,6 @@ __metadata: languageName: node linkType: hard -"unique-filename@npm:^2.0.0": - version: 2.0.1 - resolution: "unique-filename@npm:2.0.1" - dependencies: - unique-slug: "npm:^3.0.0" - checksum: 10c0/55d95cd670c4a86117ebc34d394936d712d43b56db6bc511f9ca00f666373818bf9f075fb0ab76bcbfaf134592ef26bb75aad20786c1ff1ceba4457eaba90fb8 - languageName: node - linkType: hard - "unique-filename@npm:^3.0.0": version: 3.0.0 resolution: "unique-filename@npm:3.0.0" @@ -27146,15 +27007,6 @@ __metadata: languageName: node linkType: hard -"unique-slug@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-slug@npm:3.0.0" - dependencies: - imurmurhash: "npm:^0.1.4" - checksum: 10c0/617240eb921af803b47d322d75a71a363dacf2e56c29ae5d1404fad85f64f4ec81ef10ee4fd79215d0202cbe1e5a653edb0558d59c9c81d3bd538c2d58e4c026 - languageName: node - linkType: hard - "unique-slug@npm:^4.0.0": version: 4.0.0 resolution: "unique-slug@npm:4.0.0" diff --git a/scripts/.babelrc.cjs b/scripts/.babelrc.cjs index 31016fd42625..ff9cce017e31 100644 --- a/scripts/.babelrc.cjs +++ b/scripts/.babelrc.cjs @@ -9,7 +9,7 @@ module.exports = { shippedProposals: true, useBuiltIns: 'usage', corejs: '3', - targets: { node: '18' }, + targets: { node: '20' }, }, ], ], diff --git a/scripts/package.json b/scripts/package.json index f9be99b5583c..0652d3a95540 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -79,7 +79,7 @@ "@types/http-server": "^0.12.4", "@types/jest": "^29.5.12", "@types/lodash": "^4.17.6", - "@types/node": "^18.19.39", + "@types/node": "^20.0.0", "@types/prettier": "^3.0.0", "@types/pretty-hrtime": "^1.0.3", "@types/prompts": "2.4.9", @@ -188,6 +188,6 @@ "verdaccio-auth-memory": "^10.2.2" }, "engines": { - "node": ">=18.0.0" + "node": ">=20.0.0" } } diff --git a/scripts/yarn.lock b/scripts/yarn.lock index da3c3621f8de..65fc0a64ef24 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -1415,7 +1415,7 @@ __metadata: "@types/http-server": "npm:^0.12.4" "@types/jest": "npm:^29.5.12" "@types/lodash": "npm:^4.17.6" - "@types/node": "npm:^18.19.39" + "@types/node": "npm:^20.0.0" "@types/prettier": "npm:^3.0.0" "@types/pretty-hrtime": "npm:^1.0.3" "@types/prompts": "npm:2.4.9" @@ -1889,15 +1889,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^18.19.39": - version: 18.19.39 - resolution: "@types/node@npm:18.19.39" - dependencies: - undici-types: "npm:~5.26.4" - checksum: 10c0/a9eb33bc093beba6bd5d4e839de7d1d1f496cd7e741c2f6c7161318dba0f37227bb25d8306907194992488d6c59a7363a419d72298549483d33402227a2d435b - languageName: node - linkType: hard - "@types/normalize-package-data@npm:^2.4.0": version: 2.4.3 resolution: "@types/normalize-package-data@npm:2.4.3" diff --git a/test-storybooks/portable-stories-kitchen-sink/react/yarn.lock b/test-storybooks/portable-stories-kitchen-sink/react/yarn.lock index e9c164d0414d..e69de29bb2d1 100644 --- a/test-storybooks/portable-stories-kitchen-sink/react/yarn.lock +++ b/test-storybooks/portable-stories-kitchen-sink/react/yarn.lock @@ -1,11339 +0,0 @@ -# This file is generated by running "yarn install" inside your project. -# Manual changes might be lost - proceed with caution! - -__metadata: - version: 8 - cacheKey: 10 - -"@adobe/css-tools@npm:^4.4.0": - version: 4.4.0 - resolution: "@adobe/css-tools@npm:4.4.0" - checksum: 10/9c6315fe9efa5075d6ddb6ded7a1424bc9c41a01f2314b6bdcc368723985fe161008d03ddcc2b27b2da50cb9c14190fbce965d15cefe5f9a31bdd43f35b52115 - languageName: node - linkType: hard - -"@ampproject/remapping@npm:^2.2.0": - version: 2.3.0 - resolution: "@ampproject/remapping@npm:2.3.0" - dependencies: - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.24" - checksum: 10/f3451525379c68a73eb0a1e65247fbf28c0cccd126d93af21c75fceff77773d43c0d4a2d51978fb131aff25b5f2cb41a9fe48cc296e61ae65e679c4f6918b0ab - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/code-frame@npm:7.24.7" - dependencies: - "@babel/highlight": "npm:^7.24.7" - picocolors: "npm:^1.0.0" - checksum: 10/4812e94885ba7e3213d49583a155fdffb05292330f0a9b2c41b49288da70cf3c746a3fda0bf1074041a6d741c33f8d7be24be5e96f41ef77395eeddc5c9ff624 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/compat-data@npm:7.25.2" - checksum: 10/fd61de9303db3177fc98173571f81f3f551eac5c9f839c05ad02818b11fe77a74daa632abebf7f423fbb4a29976ae9141e0d2bd7517746a0ff3d74cb659ad33a - 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.23.0, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.4, @babel/core@npm:^7.24.5": - version: 7.25.2 - resolution: "@babel/core@npm:7.25.2" - dependencies: - "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.0" - "@babel/helper-compilation-targets": "npm:^7.25.2" - "@babel/helper-module-transforms": "npm:^7.25.2" - "@babel/helpers": "npm:^7.25.0" - "@babel/parser": "npm:^7.25.0" - "@babel/template": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.2" - "@babel/types": "npm:^7.25.2" - 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/0d6ec10ff430df66f654c089d6f7ef1d9bed0c318ac257ad5f0dfa0caa45666011828ae75f998bcdb279763e892b091b2925d0bc483299e61649d2c7a2245e33 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.7.2": - version: 7.25.0 - resolution: "@babel/generator@npm:7.25.0" - dependencies: - "@babel/types": "npm:^7.25.0" - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^2.5.1" - checksum: 10/de3ce2ae7aa0c9585260556ca5a81ce2ce6b8269e3260d7bb4e47a74661af715184ca6343e9906c22e4dd3eed5ce39977dfaf6cded4d2d8968fa096c7cf66697 - languageName: node - linkType: hard - -"@babel/helper-annotate-as-pure@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" - dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10/a9017bfc1c4e9f2225b967fbf818004703de7cf29686468b54002ffe8d6b56e0808afa20d636819fcf3a34b89ba72f52c11bdf1d69f303928ee10d92752cad95 - languageName: node - linkType: hard - -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.7" - dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10/3ddff45d1e086c9c6dcef53ef46521a0c11ddb09fe3ab42dca5af6bb1b1703895a9f4f8056f49fdf53c2dbf6e5cf1ddb4baf17d7e3766c63f051ab8d60a919ee - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.7, @babel/helper-compilation-targets@npm:^7.24.8, @babel/helper-compilation-targets@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-compilation-targets@npm:7.25.2" - dependencies: - "@babel/compat-data": "npm:^7.25.2" - "@babel/helper-validator-option": "npm:^7.24.8" - browserslist: "npm:^4.23.1" - lru-cache: "npm:^5.1.1" - semver: "npm:^6.3.1" - checksum: 10/eccb2d75923d2d4d596f9ff64716e8664047c4192f1b44c7d5c07701d4a3498ac2587a72ddae1046e65a501bc630eb7df4557958b08ec2dcf5b4a264a052f111 - languageName: node - linkType: hard - -"@babel/helper-create-class-features-plugin@npm:^7.24.7, @babel/helper-create-class-features-plugin@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-create-class-features-plugin@npm:7.25.0" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-member-expression-to-functions": "npm:^7.24.8" - "@babel/helper-optimise-call-expression": "npm:^7.24.7" - "@babel/helper-replace-supers": "npm:^7.25.0" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.0" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/d0f6b63bd3f6da5204200ab7bb43ccc04fe75256aacf53e5dd60d5f56f5cb1bc7c8b315ecbbc4edca53aa71021ac9322376d7a4b2ee57166b8660488766d2784 - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.24.7, @babel/helper-create-regexp-features-plugin@npm:^7.25.0": - version: 7.25.2 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.2" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - regexpu-core: "npm:^5.3.1" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/33dd627eef9e4229aba66789efd8fb7342fc2667b821d4b7947c7294f6d472cf025ff2db9b358a1e03de98376de44e839f0611a456a57127fd6e4b4dbfc96c51 - languageName: node - linkType: hard - -"@babel/helper-define-polyfill-provider@npm:^0.6.2": - version: 0.6.2 - resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.22.6" - "@babel/helper-plugin-utils": "npm:^7.22.5" - debug: "npm:^4.1.1" - lodash.debounce: "npm:^4.0.8" - resolve: "npm:^1.14.2" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10/bb32ec12024d3f16e70641bc125d2534a97edbfdabbc9f69001ec9c4ce46f877c7a224c566aa6c8c510c3b0def2e43dc4433bf6a40896ba5ce0cef4ea5ccbcff - languageName: node - linkType: hard - -"@babel/helper-member-expression-to-functions@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-member-expression-to-functions@npm:7.24.8" - dependencies: - "@babel/traverse": "npm:^7.24.8" - "@babel/types": "npm:^7.24.8" - checksum: 10/ac878761cfd0a46c081cda0da75cc186f922cf16e8ecdd0c4fb6dca4330d9fe4871b41a9976224cf9669c9e7fe0421b5c27349f2e99c125fa0be871b327fa770 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-module-imports@npm:7.24.7" - dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10/df8bfb2bb18413aa151ecd63b7d5deb0eec102f924f9de6bc08022ced7ed8ca7fed914562d2f6fa5b59b74a5d6e255dc35612b2bc3b8abf361e13f61b3704770 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.24.7, @babel/helper-module-transforms@npm:^7.24.8, @babel/helper-module-transforms@npm:^7.25.0, @babel/helper-module-transforms@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-module-transforms@npm:7.25.2" - dependencies: - "@babel/helper-module-imports": "npm:^7.24.7" - "@babel/helper-simple-access": "npm:^7.24.7" - "@babel/helper-validator-identifier": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.2" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/a3bcf7815f3e9d8b205e0af4a8d92603d685868e45d119b621357e274996bf916216bb95ab5c6a60fde3775b91941555bf129d608e3d025b04f8aac84589f300 - languageName: node - linkType: hard - -"@babel/helper-optimise-call-expression@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-optimise-call-expression@npm:7.24.7" - dependencies: - "@babel/types": "npm:^7.24.7" - checksum: 10/da7a7f2d1bb1be4cffd5fa820bd605bc075c7dd014e0458f608bb6f34f450fe9412c8cea93e788227ab396e0e02c162d7b1db3fbcb755a6360e354c485d61df0 - 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.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.24.8 - resolution: "@babel/helper-plugin-utils@npm:7.24.8" - checksum: 10/adbc9fc1142800a35a5eb0793296924ee8057fe35c61657774208670468a9fbfbb216f2d0bc46c680c5fefa785e5ff917cc1674b10bd75cdf9a6aa3444780630 - languageName: node - linkType: hard - -"@babel/helper-remap-async-to-generator@npm:^7.24.7, @babel/helper-remap-async-to-generator@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-remap-async-to-generator@npm:7.25.0" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-wrap-function": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.0" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/6b1ab73a067008c92e2fe5b7a9f39aab32e7f5a8c5eaf0a864436c21791f708ad8619d4a509febdfe934aeb373af4baa7c7d9f41181b385e09f39eaf11ca108e - languageName: node - linkType: hard - -"@babel/helper-replace-supers@npm:^7.24.7, @babel/helper-replace-supers@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-replace-supers@npm:7.25.0" - dependencies: - "@babel/helper-member-expression-to-functions": "npm:^7.24.8" - "@babel/helper-optimise-call-expression": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.0" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/97c6c17780cb9692132f7243f5a21fb6420104cb8ff8752dc03cfc9a1912a243994c0290c77ff096637ab6f2a7363b63811cfc68c2bad44e6b39460ac2f6a63f - languageName: node - linkType: hard - -"@babel/helper-simple-access@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-simple-access@npm:7.24.7" - dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10/5083e190186028e48fc358a192e4b93ab320bd016103caffcfda81302a13300ccce46c9cd255ae520c25d2a6a9b47671f93e5fe5678954a2329dc0a685465c49 - languageName: node - linkType: hard - -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.7" - dependencies: - "@babel/traverse": "npm:^7.24.7" - "@babel/types": "npm:^7.24.7" - checksum: 10/784a6fdd251a9a7e42ccd04aca087ecdab83eddc60fda76a2950e00eb239cc937d3c914266f0cc476298b52ac3f44ffd04c358e808bd17552a7e008d75494a77 - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-string-parser@npm:7.24.8" - checksum: 10/6d1bf8f27dd725ce02bdc6dffca3c95fb9ab8a06adc2edbd9c1c9d68500274230d1a609025833ed81981eff560045b6b38f7b4c6fb1ab19fc90e5004e3932535 - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-validator-identifier@npm:7.24.7" - checksum: 10/86875063f57361471b531dbc2ea10bbf5406e12b06d249b03827d361db4cad2388c6f00936bcd9dc86479f7e2c69ea21412c2228d4b3672588b754b70a449d4b - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.24.7, @babel/helper-validator-option@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-validator-option@npm:7.24.8" - checksum: 10/a52442dfa74be6719c0608fee3225bd0493c4057459f3014681ea1a4643cd38b68ff477fe867c4b356da7330d085f247f0724d300582fa4ab9a02efaf34d107c - languageName: node - linkType: hard - -"@babel/helper-wrap-function@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helper-wrap-function@npm:7.25.0" - dependencies: - "@babel/template": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.0" - "@babel/types": "npm:^7.25.0" - checksum: 10/08724128b9c540c02a59f02f9c1c9940fe5363d85d0f30ec826a4f926afdb26fa4ec33ca2b88b4aa745fe3dbe1f44be2969b8a03af259af7945d8cd3262168d3 - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helpers@npm:7.25.0" - dependencies: - "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.0" - checksum: 10/4fcb8167eba9853e30b8b235b81b923ef7b707396b0e23d7a4fa3e811729506755576cb9ec736e8b92cf19e5a1ec61e83d182904d8e6a0953803c6bebc2e1592 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/highlight@npm:7.24.7" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.24.7" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10/69b73f38cdd4f881b09b939a711e76646da34f4834f4ce141d7a49a6bb1926eab1c594148970a8aa9360398dff800f63aade4e81fafdd7c8d8a8489ea93bfec1 - 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.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.3": - version: 7.25.3 - resolution: "@babel/parser@npm:7.25.3" - dependencies: - "@babel/types": "npm:^7.25.2" - bin: - parser: ./bin/babel-parser.js - checksum: 10/7bd57e89110bdc9cffe0ef2f2286f1cfb9bbb3aa1d9208c287e0bf6a1eb4cfe6ab33958876ebc59aafcbe3e2381c4449240fc7cc2ff32b79bc9db89cd52fc779 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.3": - version: 7.25.3 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/traverse": "npm:^7.25.3" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/9743feb0152f2ac686aaee6dfd41e8ea211989a459d4c2b10b531442f6865057cd1a502515634c25462b155bc58f0710267afed72396780e9b72be25370dd577 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.0" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/5e504bba884a4500e71224d344efb1e70ebbeabd621e07a58f2d3c0d14a71a49c97b4989259a288cdbbfacebfea224397acf1217d26c77aebf9aa35bdd988249 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.0" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/f574beb1d4f723bb9b913ce379259a55b50a308364585ccb83e00d933465c26c04cbbc85a06e6d4c829279eb1021b3236133d486b3ff11cfd90ad815c8b478d2 - languageName: node - linkType: hard - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.13.0 - checksum: 10/887f1b8bd0ef61206ece47919fda78a32eef35da31c0d95ab8d7adc8b4722534dc5177c86c8d6d81bcf4343f3c08c6adab2b46cfd2bea8e33c6c04e51306f9cc - languageName: node - linkType: hard - -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.0" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/traverse": "npm:^7.25.0" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/de04a9342e9a0db1673683112c83cdc52173f489f45aeed864ceba72dfba8c8588e565171e64cb2a408a09269e5fb35c6ab4ef50e3e649c4f8c0c787feb5c048 - languageName: node - linkType: hard - -"@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2": - version: 7.21.0-placeholder-for-preset-env.2 - resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0-placeholder-for-preset-env.2" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/fab70f399aa869275690ec6c7cedb4ef361d4e8b6f55c3d7b04bfee61d52fb93c87cec2c65d73cddbaca89fb8ef5ec0921fce675c9169d9d51f18305ab34e78a - languageName: node - linkType: hard - -"@babel/plugin-syntax-async-generators@npm:^7.8.4": - version: 7.8.4 - resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 - languageName: node - linkType: hard - -"@babel/plugin-syntax-bigint@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/3a10849d83e47aec50f367a9e56a6b22d662ddce643334b087f9828f4c3dd73bdc5909aaeabe123fed78515767f9ca43498a0e621c438d1cd2802d7fae3c9648 - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": - version: 7.12.13 - resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.12.13" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc - languageName: node - linkType: hard - -"@babel/plugin-syntax-class-static-block@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 - languageName: node - linkType: hard - -"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd - languageName: node - linkType: hard - -"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.3" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a - languageName: node - linkType: hard - -"@babel/plugin-syntax-flow@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-syntax-flow@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/0a83bde6736110d68f3b20eda44ca020a6d34c336a342f84369207f5514e17779b9c3d3ebc2f1c94b595c13819f46bf7af367c4b1382bda182e1764655fd6a5a - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-assertions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/bd065cd73ae3dbe69e6f9167aa605da3df77d69bbad2ede95e4aa9e7af7744d5bc1838b928c77338ca62df7691a7adf6e608279be50c18e4b3c70cf77e3013d7 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-attributes@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/22fc50bd85a491bb8d22065f330a41f60d66f2f2d7a1deb73e80c8a4b5d7a42a092a03f8da18800650eca0fc14585167cc4e5c9fab351f0d390d1592347162ae - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/166ac1125d10b9c0c430e4156249a13858c0366d38844883d75d27389621ebe651115cb2ceb6dc011534d5055719fa1727b59f39e1ab3ca97820eef3dcab5b9b - languageName: node - linkType: hard - -"@babel/plugin-syntax-json-strings@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a - languageName: node - linkType: hard - -"@babel/plugin-syntax-jsx@npm:^7.24.7, @babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.24.7 - resolution: "@babel/plugin-syntax-jsx@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/a93516ae5b34868ab892a95315027d4e5e38e8bd1cfca6158f2974b0901cbb32bbe64ea10ad5b25f919ddc40c6d8113c4823372909c9c9922170c12b0b1acecb - languageName: node - linkType: hard - -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 - languageName: node - linkType: hard - -"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-numeric-separator@npm:^7.10.4, @babel/plugin-syntax-numeric-separator@npm:^7.8.3": - version: 7.10.4 - resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 - languageName: node - linkType: hard - -"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 - languageName: node - linkType: hard - -"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.8.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 - languageName: node - linkType: hard - -"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": - version: 7.14.5 - resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda - languageName: node - linkType: hard - -"@babel/plugin-syntax-top-level-await@npm:^7.14.5, @babel/plugin-syntax-top-level-await@npm:^7.8.3": - version: 7.14.5 - resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.24.7, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.24.7 - resolution: "@babel/plugin-syntax-typescript@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/2518cc06323f5673c93142935879c112fea0ee836dfa9a9ec744fc972fdeaf22a06fe631c23817562aaaddadf64626a4fbba98c300b3e2c828f48f0f1cca0ce0 - languageName: node - linkType: hard - -"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.18.6" - "@babel/helper-plugin-utils": "npm:^7.18.6" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c - languageName: node - linkType: hard - -"@babel/plugin-transform-arrow-functions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/6720173645826046878015c579c2ca9d93cdba79a2832f0180f5cf147d9817c85bf9c8338b16d6bdaa71f87809b7a194a6902e6c82ec00b6354aca6b40abe5e6 - languageName: node - linkType: hard - -"@babel/plugin-transform-async-generator-functions@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.0" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-remap-async-to-generator": "npm:^7.25.0" - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" - "@babel/traverse": "npm:^7.25.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/c65757490005234719a9614dbaf5004ca815612eff251edf95d4149fb74f42ebf91ff079f6b3594b6aa93eec6f4b6d2cda9f2c924f6217bb0422896be58ed0fe - languageName: node - linkType: hard - -"@babel/plugin-transform-async-to-generator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.7" - dependencies: - "@babel/helper-module-imports": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-remap-async-to-generator": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/b2041d9d50b09afef983c4f1dece63fdfc5a8e4646e42591db398bc4322958434d60b3cb0f5d0f9f9dbdad8577e8a1a33ba9859aacc3004bf6d25d094d20193f - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoped-functions@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/33e2fb9f24c11889b2bacbe9c3625f738edafc2136c8206598e0422664267ec5ca9422cb4563cc42039ccfc333fb42ce5f8513382e56c5b02f934005d0d6e8ff - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoping@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-block-scoping@npm:7.25.0" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/981e565a8ff1e1f8d539b5ff067328517233142b131329d11e6c60405204e2a4a993828c367f7dc729a9608aabebdada869616563816e5f8f1385e91ac0fa4d6 - languageName: node - linkType: hard - -"@babel/plugin-transform-class-properties@npm:^7.22.5, @babel/plugin-transform-class-properties@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-class-properties@npm:7.24.7" - dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/1c6f645dd3889257028f27bfbb04526ac7676763a923fc8203aa79aa5232820e0201cb858c73b684b1922327af10304121ac013c7b756876d54560a9c1a7bc79 - languageName: node - linkType: hard - -"@babel/plugin-transform-class-static-block@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-class-static-block@npm:7.24.7" - dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.12.0 - checksum: 10/00b4d35788bcfefb56b6a1d3506ca23f11dd55d4bb5a34eb70397c06283dc7f596cd9d40995c4a6cb897b45ad220de211f854e7a030a05e26a307c8f56b6ba4b - languageName: node - linkType: hard - -"@babel/plugin-transform-classes@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-classes@npm:7.25.0" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-compilation-targets": "npm:^7.24.8" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-replace-supers": "npm:^7.25.0" - "@babel/traverse": "npm:^7.25.0" - globals: "npm:^11.1.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/59aeb33b91e462a9b01cc9691c6a27e6601c5b76d83e3e4f95fef4086c6561e3557597847fe5243006542723fe4288d8fa6824544b1d94bb3104438f4fd96ebc - languageName: node - linkType: hard - -"@babel/plugin-transform-computed-properties@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-computed-properties@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/template": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/fecf3c770b2dd8e70be6da12d4dd0273de9d8ef4d0f46be98d56fddb3a451932cdc9bb81de3057c9acb903e05ece657886cc31886d5762afa7b0a256db0f791e - languageName: node - linkType: hard - -"@babel/plugin-transform-destructuring@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-destructuring@npm:7.24.8" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/e3bba0bb050592615fbf062ea07ae94f99e9cf22add006eaa66ed672d67ff7051b578a5ea68a7d79f9184fb3c27c65333d86b0b8ea04f9810bcccbeea2ffbe76 - languageName: node - linkType: hard - -"@babel/plugin-transform-dotall-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.7" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/51b75638748f6e5adab95b711d3365b8d7757f881c178946618a43b15063ec1160b07f4aa3b116bf3f1e097a88226a01db4cae2c5c4aad4c71fe5568828a03f5 - languageName: node - linkType: hard - -"@babel/plugin-transform-duplicate-keys@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/4284d8fe058c838f80d594bace1380ce02995fa9a271decbece59c40815bc2f7e715807dcbe4d5da8b444716e6d05cc6d79771f500fb044cd0dd00ce4324b619 - languageName: node - linkType: hard - -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.0" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.25.0" - "@babel/helper-plugin-utils": "npm:^7.24.8" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/869c08def8eb80e3619c77e7af962dd82323a8447697298f461624077593c7b7082fc2238989880a0c0ba94bc6442300fd23e33255ac225760bc8bb755268941 - languageName: node - linkType: hard - -"@babel/plugin-transform-dynamic-import@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/e949c02aa57098d916eb6edcbef0f3f7d62640f37e1a061b0692523964e081f8182f2c4292173b4dbea4edb8d146e65d6a20ce4b6b5f8c33be34bd846ae114ea - languageName: node - linkType: hard - -"@babel/plugin-transform-exponentiation-operator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.7" - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/014b211f73a524ee98441541ddc4f6b067eefcf94d509e99074a45ea8c3f3ad0e36cab6f5f96666ac05b747a21fa6fda949aa25153656bb2821545a4b302e0d4 - languageName: node - linkType: hard - -"@babel/plugin-transform-export-namespace-from@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/d59d21945d2fd1ead914bb21f909f75b70ebe0e7627c2b1326ce500babca4c8e4a2513af6899d92e06e87186c61ee5087209345f5102fb4ff5a0e47e7b159a2c - languageName: node - linkType: hard - -"@babel/plugin-transform-flow-strip-types@npm:^7.24.7": - version: 7.25.2 - resolution: "@babel/plugin-transform-flow-strip-types@npm:7.25.2" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/plugin-syntax-flow": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/b5a54395a5c6d7f94de78855f449398c9b850acc299e7d872774f695fdde6006a87bcc9e70ffe33d935883761e9a4e82328c9cff6e2afaf568f04fb646886706 - languageName: node - linkType: hard - -"@babel/plugin-transform-for-of@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-for-of@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/ea471ad1345f1153f7f72f1f084e74f48dc349272ca1b2d8710b841b015c9861d673e12c3c98d42ab3c640cb6ab88bb9a8da1f4ca9c57a8f71f00815fa23ecef - languageName: node - linkType: hard - -"@babel/plugin-transform-function-name@npm:^7.25.1": - version: 7.25.1 - resolution: "@babel/plugin-transform-function-name@npm:7.25.1" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.24.8" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/traverse": "npm:^7.25.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/1b4cd214c8523f7fa024fcda540ffe5503eda0e0be08b7c21405c96a870b5fe8bb1bda9e23a43a31467bf3dfc3a08edca250cf7f55f09dc40759a1ca6c6d6a4a - languageName: node - linkType: hard - -"@babel/plugin-transform-json-strings@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-json-strings@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-json-strings": "npm:^7.8.3" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/5549dc97fc2d429a089d14ccfd51d8b3ba23c39b79edfe6d754e804fb1d50e6a4c070e73550be514a919c4db1553d8e6f7406178d68756b5959afe025a602cb2 - languageName: node - linkType: hard - -"@babel/plugin-transform-literals@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/plugin-transform-literals@npm:7.25.2" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/d9728625a6d55305610dd37057fe1a3473df4f3789fef693c900516caf8958dfb341394ecf69ce9b60c82c422ad2954491a7e4d4533432fd5df812827443d6e9 - languageName: node - linkType: hard - -"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/e39581cf1f9a43330b8340177c618fdb3232deb03faab1937819ef39327660a1fe94fd0ec2f66d1f5b5f98acba68871a77a9931588011c13dded3d7094ecc9de - languageName: node - linkType: hard - -"@babel/plugin-transform-member-expression-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/837b60ea42fc69a430c8f7fb124247ba009ff6d93187a521fe9f83556fe124715bd46533b1684a3e139f272849a14d1d4faf3397bde13714f99ce0938526ea6f - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-amd@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-modules-amd@npm:7.24.7" - dependencies: - "@babel/helper-module-transforms": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/66465ffba49af7a7b7a62995eb58f591ecd23ab42b0c67f8a70020177b3789d2a379bd6cbb68cbd09a69fd75c38a91f5a09ea70f5c8347bf4c6ea81caa0f6c6b - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-commonjs@npm:^7.23.0, @babel/plugin-transform-modules-commonjs@npm:^7.24.7, @babel/plugin-transform-modules-commonjs@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.8" - dependencies: - "@babel/helper-module-transforms": "npm:^7.24.8" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-simple-access": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/18e5d229767c7b5b6ff0cbf1a8d2d555965b90201839d0ac2dc043b56857624ea344e59f733f028142a8c1d54923b82e2a0185694ef36f988d797bfbaf59819c - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-systemjs@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.0" - dependencies: - "@babel/helper-module-transforms": "npm:^7.25.0" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-validator-identifier": "npm:^7.24.7" - "@babel/traverse": "npm:^7.25.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/2c38efdbaf6faf730cdcb0c5e42d2d15bb114eecf184db078319de496b5e3ce68d499e531265a0e13e29f0dcaa001f240773db5c4c078eac7f4456d6c8bddd88 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-umd@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-modules-umd@npm:7.24.7" - dependencies: - "@babel/helper-module-transforms": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/cef9c8917b3c35c3b6cb424dc2e6f74016122f1d25c196e2c7e51eb080d95e96c5d34966c0d5b9d4e17b8e60d455a97ed271317ed104e0e70bff159830a59678 - languageName: node - linkType: hard - -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.24.7" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/b0ecb1afd22946b21fb8f34e826cfbfea4b5337f7592a5ff8af7937eddec4440149c59d2d134b4f21b2ed91b57611f39b19827729e19d99b7c11eaf614435f83 - languageName: node - linkType: hard - -"@babel/plugin-transform-new-target@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-new-target@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/91b6a7439b7622f80dc755ddfb9ab083355bedc0b2af18e7c7a948faed14467599609331c8d59cfab4273640e3fc36e4cd02ad5b6dcb4a428f5a8baefc507acc - languageName: node - linkType: hard - -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.11, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/113cd24b6ce4d0a8e54ad9324428244942ce752a3fd38f8b615c3a786641ec18a00a01b662fe4cbebf369358f5904a975bbde0a977b839f2438b16f0d7d1dd36 - languageName: node - linkType: hard - -"@babel/plugin-transform-numeric-separator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/dc5bb0534889d207b1da125635471c42da61a4a4e9e68855f24b1cd04ccdcf8325b2c29112e719913c2097242e7e62d660e0fea2a46f3a9a983c9d02a0ec7a04 - languageName: node - linkType: hard - -"@babel/plugin-transform-object-rest-spread@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-transform-parameters": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/d586995dc3396bbf8fb75b84f0a3548d923e4c3500bb414641a7fe30762a4ffd82987887fece6381f600d8de2da1e3310fc9a725271724d35f9020fcd5d4b2a3 - languageName: node - linkType: hard - -"@babel/plugin-transform-object-super@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-object-super@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-replace-supers": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/382739a017972d7126416b958ea81b4b950b6275414908a54bfef6aeed9b9fcc6c8d247db3a1134b09a3b355a60039670ce41ee41c626f8acec70f49c3c8d2a6 - languageName: node - linkType: hard - -"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/605ae3764354e83f73c1e6430bac29e308806abcce8d1369cf69e4921771ff3592e8f60ba60c15990070d79b8d8740f0841069d64b466b3ce8a8c43e9743da7e - languageName: node - linkType: hard - -"@babel/plugin-transform-optional-chaining@npm:^7.23.0, @babel/plugin-transform-optional-chaining@npm:^7.24.7, @babel/plugin-transform-optional-chaining@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.8" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/1f873fb9d86c280b64dfe5ebc59244b459b717ed72a7682da2386db3d9e11fc9d831cfc2e11d37262b4325a7a0e3ccbccfb8cd0b944caf199d3c9e03fff7b0af - languageName: node - linkType: hard - -"@babel/plugin-transform-parameters@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-parameters@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/41ff6bda926fabfb2e5d90b70621f279330691bed92009297340a8e776cfe9c3f2dda6afbc31dd3cbdccdfa9a5c57f2046e3ccc84f963c3797356df003d1703a - languageName: node - linkType: hard - -"@babel/plugin-transform-private-methods@npm:^7.22.5, @babel/plugin-transform-private-methods@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-private-methods@npm:7.24.7" - dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/5338df2aae53c43e6a7ea0c44f20a1100709778769c7e42d4901a61945c3200ba0e7fca83832f48932423a68528219fbea233cb5b8741a2501fdecbacdc08292 - languageName: node - linkType: hard - -"@babel/plugin-transform-private-property-in-object@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.7" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-create-class-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/a23ee18340818e292abfcb98b1086a188c81d640b1045e6809e9a3e8add78f9cb26607774de4ed653cbecd4277965dc4f4f1affc3504682209bb2a65fd4251f8 - languageName: node - linkType: hard - -"@babel/plugin-transform-property-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-property-literals@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/71708890fe007d45ad7a130150a2ba1fea0205f575b925ca2e1bb65018730636a68e65c634a474e5b658378d72871c337c953560009c081a645e088769bf168a - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-self@npm:^7.24.5": - version: 7.24.7 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/56115b4a6c006ce82846f1ab21e5ba713ee8f57a166c96c94fc632cdfbc8b9cebbf20b7cd9b8076439dabecdbf0f8ca4c2cb1bed1bf0b15cb44505a429f6a92f - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-source@npm:^7.24.1": - version: 7.24.7 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/682e2ae15d788453d8ab34cf0dcc29c093faf7c7cf1d60110c43f33e6477f916cf301456b314fc496fadc07123f7978225f41ac286ed0bfbad9c8e76392fdb6d - languageName: node - linkType: hard - -"@babel/plugin-transform-regenerator@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-regenerator@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - regenerator-transform: "npm:^0.15.2" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/70fa2bb36d3e2ce69a25c7227da8ad92307ab7b50cb6dfcc4dc5ce8f1cc79b0fcf997292a1cb3b4ae7cb136f515d1b2c3fb78c927bdba8d719794430403eb0c6 - languageName: node - linkType: hard - -"@babel/plugin-transform-reserved-words@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-reserved-words@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/64a2669671bb97c3dee3830a82c3e932fe6e02d56a4053c6ee4453d317b5f436d3d44907fbb0f4fbd8a56ebee34f6aee250e49743b7243d14d00c069215f3113 - languageName: node - linkType: hard - -"@babel/plugin-transform-shorthand-properties@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/c68c2be965007e0cb6667daa209bc0af877cab4b327ef2e21b2114c38554243c3f7fdcc5b03679b20f72a26d966aa646af771f3165c882067e85a3887647f028 - languageName: node - linkType: hard - -"@babel/plugin-transform-spread@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-spread@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/76e2c8544129d727d5a698e2a67d74e438bc35df843adb5f769316ec432c5e1bbb4128123a95b2fe8ef0aec7b26d87efe81d64326291c77ad757ff184d38448a - languageName: node - linkType: hard - -"@babel/plugin-transform-sticky-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/3b9a99ae043ef363c81bfb097fa7a553fcf7c7d9fddc13dd2b47b3b2e45cf2741a9ca78cfe55f463983b043b365f0f8452f2d5eaadbdea20e6d6de50c16bed25 - languageName: node - linkType: hard - -"@babel/plugin-transform-template-literals@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-template-literals@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/ecf05a8511176d5570cb0d481577a407a4e8a9a430f86522d809e0ac2c823913e854ef9e2a1c83c0bd7c12489d82e1b48fabb52e697e80d6a6962125197593ca - languageName: node - linkType: hard - -"@babel/plugin-transform-typeof-symbol@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.8" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/5f113fed94b694ec4a40a27b8628ce736cfa172b69fcffa2833c9a41895032127f3daeea552e94fdb4a3ce4e8cd51de67a670ab87a1f447a0cf55c9cb2d7ed11 - languageName: node - linkType: hard - -"@babel/plugin-transform-typescript@npm:^7.24.7": - version: 7.25.2 - resolution: "@babel/plugin-transform-typescript@npm:7.25.2" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.7" - "@babel/helper-create-class-features-plugin": "npm:^7.25.0" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7" - "@babel/plugin-syntax-typescript": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/50e017ffd131c08661daa22b6c759999bb7a6cdfbf683291ee4bcbea4ae839440b553d2f8896bcf049aca1d267b39f3b09e8336059e919e83149b5ad859671f6 - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-escapes@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/6b8bca3495acedc89e880942de7b83c263fb5b4c9599594dcf3923e2128ae25f1f4725a295fe101027f75d8ef081ef28319296adf274b5022e57039e42836103 - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-property-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.7" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/c0c284bbbdead7e17e059d72e1b288f86b0baacc410398ef6c6c703fe4326b069e68515ccb84359601315cd8e888f9226731d00624b7c6959b1c0853f072b61f - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.7" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/b545310d0d592d75566b9cd158f4b8951e34d07d839656789d179b39b3fd92b32bd387cdfaf33a93e636609f3bfb9bb03d41f3e43be598116c9c6c80cc3418c4 - languageName: node - linkType: hard - -"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.7" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.7" - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/183b72d5987dc93f9971667ce3f26d28b0e1058e71b129733dd9d5282aecba4c062b67c9567526780d2defd2bfbf950ca58d8306dc90b2761fd1e960d867ddb7 - languageName: node - linkType: hard - -"@babel/preset-env@npm:^7.24.4": - version: 7.25.3 - resolution: "@babel/preset-env@npm:7.25.3" - dependencies: - "@babel/compat-data": "npm:^7.25.2" - "@babel/helper-compilation-targets": "npm:^7.25.2" - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/helper-validator-option": "npm:^7.24.8" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.3" - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.0" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.0" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.7" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.0" - "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" - "@babel/plugin-syntax-class-properties": "npm:^7.12.13" - "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" - "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" - "@babel/plugin-syntax-import-assertions": "npm:^7.24.7" - "@babel/plugin-syntax-import-attributes": "npm:^7.24.7" - "@babel/plugin-syntax-import-meta": "npm:^7.10.4" - "@babel/plugin-syntax-json-strings": "npm:^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" - "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" - "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" - "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" - "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" - "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" - "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" - "@babel/plugin-transform-async-generator-functions": "npm:^7.25.0" - "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.7" - "@babel/plugin-transform-block-scoping": "npm:^7.25.0" - "@babel/plugin-transform-class-properties": "npm:^7.24.7" - "@babel/plugin-transform-class-static-block": "npm:^7.24.7" - "@babel/plugin-transform-classes": "npm:^7.25.0" - "@babel/plugin-transform-computed-properties": "npm:^7.24.7" - "@babel/plugin-transform-destructuring": "npm:^7.24.8" - "@babel/plugin-transform-dotall-regex": "npm:^7.24.7" - "@babel/plugin-transform-duplicate-keys": "npm:^7.24.7" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.0" - "@babel/plugin-transform-dynamic-import": "npm:^7.24.7" - "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.7" - "@babel/plugin-transform-export-namespace-from": "npm:^7.24.7" - "@babel/plugin-transform-for-of": "npm:^7.24.7" - "@babel/plugin-transform-function-name": "npm:^7.25.1" - "@babel/plugin-transform-json-strings": "npm:^7.24.7" - "@babel/plugin-transform-literals": "npm:^7.25.2" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" - "@babel/plugin-transform-member-expression-literals": "npm:^7.24.7" - "@babel/plugin-transform-modules-amd": "npm:^7.24.7" - "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" - "@babel/plugin-transform-modules-systemjs": "npm:^7.25.0" - "@babel/plugin-transform-modules-umd": "npm:^7.24.7" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" - "@babel/plugin-transform-new-target": "npm:^7.24.7" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" - "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" - "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" - "@babel/plugin-transform-object-super": "npm:^7.24.7" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.8" - "@babel/plugin-transform-parameters": "npm:^7.24.7" - "@babel/plugin-transform-private-methods": "npm:^7.24.7" - "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" - "@babel/plugin-transform-property-literals": "npm:^7.24.7" - "@babel/plugin-transform-regenerator": "npm:^7.24.7" - "@babel/plugin-transform-reserved-words": "npm:^7.24.7" - "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" - "@babel/plugin-transform-spread": "npm:^7.24.7" - "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" - "@babel/plugin-transform-template-literals": "npm:^7.24.7" - "@babel/plugin-transform-typeof-symbol": "npm:^7.24.8" - "@babel/plugin-transform-unicode-escapes": "npm:^7.24.7" - "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.7" - "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" - "@babel/plugin-transform-unicode-sets-regex": "npm:^7.24.7" - "@babel/preset-modules": "npm:0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2: "npm:^0.4.10" - babel-plugin-polyfill-corejs3: "npm:^0.10.4" - babel-plugin-polyfill-regenerator: "npm:^0.6.1" - core-js-compat: "npm:^3.37.1" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/293c32dee33f138d22cea0c0e163b6d79ef3860ac269921a438edb4adbfa53976ce2cd3f7a79408c8e52c852b5feda45abdbc986a54e9d9aa0b6680d7a371a58 - languageName: node - linkType: hard - -"@babel/preset-flow@npm:^7.22.15": - version: 7.24.7 - resolution: "@babel/preset-flow@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-validator-option": "npm:^7.24.7" - "@babel/plugin-transform-flow-strip-types": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/20fe02b5bc3a9d5b353d164d5ef89841032605434ae351d14309a041d6dc5bd0df3417d0510a6468813392d54793825ba6b04d8c5a5377eee31fc2b55503bf26 - languageName: node - linkType: hard - -"@babel/preset-modules@npm:0.1.6-no-external-plugins": - version: 0.1.6-no-external-plugins - resolution: "@babel/preset-modules@npm:0.1.6-no-external-plugins" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.0.0" - "@babel/types": "npm:^7.4.4" - esutils: "npm:^2.0.2" - peerDependencies: - "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 - checksum: 10/039aba98a697b920d6440c622aaa6104bb6076d65356b29dad4b3e6627ec0354da44f9621bafbeefd052cd4ac4d7f88c9a2ab094efcb50963cb352781d0c6428 - languageName: node - linkType: hard - -"@babel/preset-typescript@npm:^7.23.0": - version: 7.24.7 - resolution: "@babel/preset-typescript@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - "@babel/helper-validator-option": "npm:^7.24.7" - "@babel/plugin-syntax-jsx": "npm:^7.24.7" - "@babel/plugin-transform-modules-commonjs": "npm:^7.24.7" - "@babel/plugin-transform-typescript": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/995e9783f8e474581e7533d6b10ec1fbea69528cc939ad8582b5937e13548e5215d25a8e2c845e7b351fdaa13139896b5e42ab3bde83918ea4e41773f10861ac - languageName: node - linkType: hard - -"@babel/register@npm:^7.22.15": - version: 7.24.6 - resolution: "@babel/register@npm:7.24.6" - dependencies: - clone-deep: "npm:^4.0.1" - find-cache-dir: "npm:^2.0.0" - make-dir: "npm:^2.1.0" - pirates: "npm:^4.0.6" - source-map-support: "npm:^0.5.16" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/94580678ee541218475d605720ea1c3b4a647c504c8a08124373efad24a523f219dd7441de92f09c692c22362ea4422c5f3c51a3b3048b7a64deb1f6daea96b6 - languageName: node - linkType: hard - -"@babel/regjsgen@npm:^0.8.0": - version: 0.8.0 - resolution: "@babel/regjsgen@npm:0.8.0" - checksum: 10/c57fb730b17332b7572574b74364a77d70faa302a281a62819476fa3b09822974fd75af77aea603ad77378395be64e81f89f0e800bf86cbbf21652d49ce12ee8 - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": - version: 7.25.0 - resolution: "@babel/runtime@npm:7.25.0" - dependencies: - regenerator-runtime: "npm:^0.14.0" - checksum: 10/6870e9e0e9125075b3aeba49a266f442b10820bfc693019eb6c1785c5a0edbe927e98b8238662cdcdba17842107c040386c3b69f39a0a3b217f9d00ffe685b27 - languageName: node - linkType: hard - -"@babel/template@npm:^7.24.7, @babel/template@npm:^7.25.0, @babel/template@npm:^7.3.3": - version: 7.25.0 - resolution: "@babel/template@npm:7.25.0" - dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/parser": "npm:^7.25.0" - "@babel/types": "npm:^7.25.0" - checksum: 10/07ebecf6db8b28244b7397628e09c99e7a317b959b926d90455c7253c88df3677a5a32d1501d9749fe292a263ff51a4b6b5385bcabd5dadd3a48036f4d4949e0 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8, @babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.25.1, @babel/traverse@npm:^7.25.2, @babel/traverse@npm:^7.25.3": - version: 7.25.3 - resolution: "@babel/traverse@npm:7.25.3" - dependencies: - "@babel/code-frame": "npm:^7.24.7" - "@babel/generator": "npm:^7.25.0" - "@babel/parser": "npm:^7.25.3" - "@babel/template": "npm:^7.25.0" - "@babel/types": "npm:^7.25.2" - debug: "npm:^4.3.1" - globals: "npm:^11.1.0" - checksum: 10/fba34f323e17fa83372fc290bc12413a50e2f780a86c7d8b1875c594b6be2857867804de5d52ab10a78a9cae29e1b09ea15d85ad63671ce97d79c40650282bb9 - 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.24.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": - version: 7.25.2 - resolution: "@babel/types@npm:7.25.2" - dependencies: - "@babel/helper-string-parser": "npm:^7.24.8" - "@babel/helper-validator-identifier": "npm:^7.24.7" - to-fast-properties: "npm:^2.0.0" - checksum: 10/ccf5399db1dcd6dd87b84a6f7bc8dd241e04a326f4f038c973c26ccb69cd360c8f2276603f584c58fd94da95229313060b27baceb0d9b18a435742d3f616afd1 - languageName: node - linkType: hard - -"@base2/pretty-print-object@npm:1.0.1": - version: 1.0.1 - resolution: "@base2/pretty-print-object@npm:1.0.1" - checksum: 10/c1b78a521ac712baa076589f3bc81318d07c34a5747e9177b6af37043592252587d98f9b7b59ec174968c6bea31a99fe4d7884121173a449b75fe602b7eb2839 - languageName: node - linkType: hard - -"@bcoe/v8-coverage@npm:^0.2.3": - version: 0.2.3 - resolution: "@bcoe/v8-coverage@npm:0.2.3" - checksum: 10/1a1f0e356a3bb30b5f1ced6f79c413e6ebacf130421f15fac5fcd8be5ddf98aedb4404d7f5624e3285b700e041f9ef938321f3ca4d359d5b716f96afa120d88d - languageName: node - linkType: hard - -"@colors/colors@npm:1.5.0": - version: 1.5.0 - resolution: "@colors/colors@npm:1.5.0" - checksum: 10/9d226461c1e91e95f067be2bdc5e6f99cfe55a721f45afb44122e23e4b8602eeac4ff7325af6b5a369f36396ee1514d3809af3f57769066d80d83790d8e53339 - languageName: node - linkType: hard - -"@cypress/request@npm:^3.0.1": - version: 3.0.1 - resolution: "@cypress/request@npm:3.0.1" - dependencies: - aws-sign2: "npm:~0.7.0" - aws4: "npm:^1.8.0" - caseless: "npm:~0.12.0" - combined-stream: "npm:~1.0.6" - extend: "npm:~3.0.2" - forever-agent: "npm:~0.6.1" - form-data: "npm:~2.3.2" - http-signature: "npm:~1.3.6" - is-typedarray: "npm:~1.0.0" - isstream: "npm:~0.1.2" - json-stringify-safe: "npm:~5.0.1" - mime-types: "npm:~2.1.19" - performance-now: "npm:^2.1.0" - qs: "npm:6.10.4" - safe-buffer: "npm:^5.1.2" - tough-cookie: "npm:^4.1.3" - tunnel-agent: "npm:^0.6.0" - uuid: "npm:^8.3.2" - checksum: 10/bf48bed6d6e493c05493902fb08b1d0646e7ec4300cf834816c2616f781db1a7fc447bd6f81de7c3076d738e8a6d75354e21d332f8f7ef8d9101d9b2f8e15b3a - languageName: node - linkType: hard - -"@cypress/xvfb@npm:^1.2.4": - version: 1.2.4 - resolution: "@cypress/xvfb@npm:1.2.4" - dependencies: - debug: "npm:^3.1.0" - lodash.once: "npm:^4.1.1" - checksum: 10/cb995b069f8c4f1e7857049bda0bd73a58e0048ccaf276ef0e66d1e1c03ba6fa099b5d765ad12ea37a7e5b7685f7413a2b9a99b27891407565b915f4a2f919a7 - languageName: node - linkType: hard - -"@esbuild/aix-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/aix-ppc64@npm:0.21.5" - conditions: os=aix & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/aix-ppc64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/aix-ppc64@npm:0.23.0" - conditions: os=aix & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/android-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm64@npm:0.21.5" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/android-arm64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/android-arm64@npm:0.23.0" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/android-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-arm@npm:0.21.5" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@esbuild/android-arm@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/android-arm@npm:0.23.0" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@esbuild/android-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/android-x64@npm:0.21.5" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/android-x64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/android-x64@npm:0.23.0" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/darwin-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-arm64@npm:0.21.5" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-arm64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/darwin-arm64@npm:0.23.0" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/darwin-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/darwin-x64@npm:0.21.5" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/darwin-x64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/darwin-x64@npm:0.23.0" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/freebsd-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-arm64@npm:0.21.5" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/freebsd-arm64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/freebsd-arm64@npm:0.23.0" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/freebsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/freebsd-x64@npm:0.21.5" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/freebsd-x64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/freebsd-x64@npm:0.23.0" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/linux-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm64@npm:0.21.5" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/linux-arm64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/linux-arm64@npm:0.23.0" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/linux-arm@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-arm@npm:0.21.5" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@esbuild/linux-arm@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/linux-arm@npm:0.23.0" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@esbuild/linux-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ia32@npm:0.21.5" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/linux-ia32@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/linux-ia32@npm:0.23.0" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/linux-loong64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-loong64@npm:0.21.5" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - -"@esbuild/linux-loong64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/linux-loong64@npm:0.23.0" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - -"@esbuild/linux-mips64el@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-mips64el@npm:0.21.5" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - -"@esbuild/linux-mips64el@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/linux-mips64el@npm:0.23.0" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - -"@esbuild/linux-ppc64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-ppc64@npm:0.21.5" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/linux-ppc64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/linux-ppc64@npm:0.23.0" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/linux-riscv64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-riscv64@npm:0.21.5" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - -"@esbuild/linux-riscv64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/linux-riscv64@npm:0.23.0" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - -"@esbuild/linux-s390x@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-s390x@npm:0.21.5" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - -"@esbuild/linux-s390x@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/linux-s390x@npm:0.23.0" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - -"@esbuild/linux-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/linux-x64@npm:0.21.5" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/linux-x64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/linux-x64@npm:0.23.0" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/netbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/netbsd-x64@npm:0.21.5" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/netbsd-x64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/netbsd-x64@npm:0.23.0" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/openbsd-arm64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/openbsd-arm64@npm:0.23.0" - conditions: os=openbsd & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/openbsd-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/openbsd-x64@npm:0.21.5" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/openbsd-x64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/openbsd-x64@npm:0.23.0" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/sunos-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/sunos-x64@npm:0.21.5" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/sunos-x64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/sunos-x64@npm:0.23.0" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/win32-arm64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-arm64@npm:0.21.5" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/win32-arm64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/win32-arm64@npm:0.23.0" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@esbuild/win32-ia32@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-ia32@npm:0.21.5" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/win32-ia32@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/win32-ia32@npm:0.23.0" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@esbuild/win32-x64@npm:0.21.5": - version: 0.21.5 - resolution: "@esbuild/win32-x64@npm:0.21.5" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@esbuild/win32-x64@npm:0.23.0": - version: 0.23.0 - resolution: "@esbuild/win32-x64@npm:0.23.0" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" - dependencies: - eslint-visitor-keys: "npm:^3.3.0" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 10/8d70bcdcd8cd279049183aca747d6c2ed7092a5cf0cf5916faac1ef37ffa74f0c245c2a3a3d3b9979d9dfdd4ca59257b4c5621db699d637b847a2c5e02f491c2 - languageName: node - linkType: hard - -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.11.0 - resolution: "@eslint-community/regexpp@npm:4.11.0" - checksum: 10/f053f371c281ba173fe6ee16dbc4fe544c84870d58035ccca08dba7f6ce1830d895ce3237a0db89ba37616524775dca82f1c502066b58e2d5712d7f87f5ba17c - languageName: node - linkType: hard - -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" - dependencies: - ajv: "npm:^6.12.4" - debug: "npm:^4.3.2" - espree: "npm:^9.6.0" - globals: "npm:^13.19.0" - ignore: "npm:^5.2.0" - import-fresh: "npm:^3.2.1" - js-yaml: "npm:^4.1.0" - minimatch: "npm:^3.1.2" - strip-json-comments: "npm:^3.1.1" - checksum: 10/7a3b14f4b40fc1a22624c3f84d9f467a3d9ea1ca6e9a372116cb92507e485260359465b58e25bcb6c9981b155416b98c9973ad9b796053fd7b3f776a6946bce8 - languageName: node - linkType: hard - -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 10/3c501ce8a997cf6cbbaf4ed358af5492875e3550c19b9621413b82caa9ae5382c584b0efa79835639e6e0ddaa568caf3499318e5bdab68643ef4199dce5eb0a0 - languageName: node - linkType: hard - -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" - dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.2" - debug: "npm:^4.3.1" - minimatch: "npm:^3.0.5" - checksum: 10/3ffb24ecdfab64014a230e127118d50a1a04d11080cbb748bc21629393d100850496456bbcb4e8c438957fe0934430d731042f1264d6a167b62d32fc2863580a - languageName: node - linkType: hard - -"@humanwhocodes/module-importer@npm:^1.0.1": - version: 1.0.1 - resolution: "@humanwhocodes/module-importer@npm:1.0.1" - checksum: 10/e993950e346331e5a32eefb27948ecdee2a2c4ab3f072b8f566cd213ef485dd50a3ca497050608db91006f5479e43f91a439aef68d2a313bd3ded06909c7c5b3 - languageName: node - linkType: hard - -"@humanwhocodes/object-schema@npm:^2.0.2": - version: 2.0.3 - resolution: "@humanwhocodes/object-schema@npm:2.0.3" - checksum: 10/05bb99ed06c16408a45a833f03a732f59bf6184795d4efadd33238ff8699190a8c871ad1121241bb6501589a9598dc83bf25b99dcbcf41e155cdf36e35e937a3 - languageName: node - linkType: hard - -"@isaacs/cliui@npm:^8.0.2": - version: 8.0.2 - resolution: "@isaacs/cliui@npm:8.0.2" - dependencies: - string-width: "npm:^5.1.2" - string-width-cjs: "npm:string-width@^4.2.0" - strip-ansi: "npm:^7.0.1" - strip-ansi-cjs: "npm:strip-ansi@^6.0.1" - wrap-ansi: "npm:^8.1.0" - wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" - checksum: 10/e9ed5fd27c3aec1095e3a16e0c0cf148d1fee55a38665c35f7b3f86a9b5d00d042ddaabc98e8a1cb7463b9378c15f22a94eb35e99469c201453eb8375191f243 - languageName: node - linkType: hard - -"@istanbuljs/load-nyc-config@npm:^1.0.0": - version: 1.1.0 - resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" - dependencies: - camelcase: "npm:^5.3.1" - find-up: "npm:^4.1.0" - get-package-type: "npm:^0.1.0" - js-yaml: "npm:^3.13.1" - resolve-from: "npm:^5.0.0" - checksum: 10/b000a5acd8d4fe6e34e25c399c8bdbb5d3a202b4e10416e17bfc25e12bab90bb56d33db6089ae30569b52686f4b35ff28ef26e88e21e69821d2b85884bd055b8 - languageName: node - linkType: hard - -"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": - version: 0.1.3 - resolution: "@istanbuljs/schema@npm:0.1.3" - checksum: 10/a9b1e49acdf5efc2f5b2359f2df7f90c5c725f2656f16099e8b2cd3a000619ecca9fc48cf693ba789cf0fd989f6e0df6a22bc05574be4223ecdbb7997d04384b - languageName: node - linkType: hard - -"@jest/console@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/console@npm:29.7.0" - dependencies: - "@jest/types": "npm:^29.6.3" - "@types/node": "npm:*" - chalk: "npm:^4.0.0" - jest-message-util: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - slash: "npm:^3.0.0" - checksum: 10/4a80c750e8a31f344233cb9951dee9b77bf6b89377cb131f8b3cde07ff218f504370133a5963f6a786af4d2ce7f85642db206ff7a15f99fe58df4c38ac04899e - languageName: node - linkType: hard - -"@jest/core@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/core@npm:29.7.0" - dependencies: - "@jest/console": "npm:^29.7.0" - "@jest/reporters": "npm:^29.7.0" - "@jest/test-result": "npm:^29.7.0" - "@jest/transform": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - "@types/node": "npm:*" - ansi-escapes: "npm:^4.2.1" - chalk: "npm:^4.0.0" - ci-info: "npm:^3.2.0" - exit: "npm:^0.1.2" - graceful-fs: "npm:^4.2.9" - jest-changed-files: "npm:^29.7.0" - jest-config: "npm:^29.7.0" - jest-haste-map: "npm:^29.7.0" - jest-message-util: "npm:^29.7.0" - jest-regex-util: "npm:^29.6.3" - jest-resolve: "npm:^29.7.0" - jest-resolve-dependencies: "npm:^29.7.0" - jest-runner: "npm:^29.7.0" - jest-runtime: "npm:^29.7.0" - jest-snapshot: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - jest-validate: "npm:^29.7.0" - jest-watcher: "npm:^29.7.0" - micromatch: "npm:^4.0.4" - pretty-format: "npm:^29.7.0" - slash: "npm:^3.0.0" - strip-ansi: "npm:^6.0.0" - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: 10/ab6ac2e562d083faac7d8152ec1cc4eccc80f62e9579b69ed40aedf7211a6b2d57024a6cd53c4e35fd051c39a236e86257d1d99ebdb122291969a0a04563b51e - languageName: node - linkType: hard - -"@jest/create-cache-key-function@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/create-cache-key-function@npm:29.7.0" - dependencies: - "@jest/types": "npm:^29.6.3" - checksum: 10/061ef63b13ec8c8e5d08e4456f03b5cf8c7f9c1cab4fed8402e1479153cafce6eea80420e308ef62027abb7e29b825fcfa06551856bd021d98e92e381bf91723 - languageName: node - linkType: hard - -"@jest/environment@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/environment@npm:29.7.0" - dependencies: - "@jest/fake-timers": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - "@types/node": "npm:*" - jest-mock: "npm:^29.7.0" - checksum: 10/90b5844a9a9d8097f2cf107b1b5e57007c552f64315da8c1f51217eeb0a9664889d3f145cdf8acf23a84f4d8309a6675e27d5b059659a004db0ea9546d1c81a8 - languageName: node - linkType: hard - -"@jest/expect-utils@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/expect-utils@npm:29.7.0" - dependencies: - jest-get-type: "npm:^29.6.3" - checksum: 10/ef8d379778ef574a17bde2801a6f4469f8022a46a5f9e385191dc73bb1fc318996beaed4513fbd7055c2847227a1bed2469977821866534593a6e52a281499ee - languageName: node - linkType: hard - -"@jest/expect@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/expect@npm:29.7.0" - dependencies: - expect: "npm:^29.7.0" - jest-snapshot: "npm:^29.7.0" - checksum: 10/fea6c3317a8da5c840429d90bfe49d928e89c9e89fceee2149b93a11b7e9c73d2f6e4d7cdf647163da938fc4e2169e4490be6bae64952902bc7a701033fd4880 - languageName: node - linkType: hard - -"@jest/fake-timers@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/fake-timers@npm:29.7.0" - dependencies: - "@jest/types": "npm:^29.6.3" - "@sinonjs/fake-timers": "npm:^10.0.2" - "@types/node": "npm:*" - jest-message-util: "npm:^29.7.0" - jest-mock: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - checksum: 10/9b394e04ffc46f91725ecfdff34c4e043eb7a16e1d78964094c9db3fde0b1c8803e45943a980e8c740d0a3d45661906de1416ca5891a538b0660481a3a828c27 - languageName: node - linkType: hard - -"@jest/globals@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/globals@npm:29.7.0" - dependencies: - "@jest/environment": "npm:^29.7.0" - "@jest/expect": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - jest-mock: "npm:^29.7.0" - checksum: 10/97dbb9459135693ad3a422e65ca1c250f03d82b2a77f6207e7fa0edd2c9d2015fbe4346f3dc9ebff1678b9d8da74754d4d440b7837497f8927059c0642a22123 - languageName: node - linkType: hard - -"@jest/reporters@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/reporters@npm:29.7.0" - dependencies: - "@bcoe/v8-coverage": "npm:^0.2.3" - "@jest/console": "npm:^29.7.0" - "@jest/test-result": "npm:^29.7.0" - "@jest/transform": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - "@jridgewell/trace-mapping": "npm:^0.3.18" - "@types/node": "npm:*" - chalk: "npm:^4.0.0" - collect-v8-coverage: "npm:^1.0.0" - exit: "npm:^0.1.2" - glob: "npm:^7.1.3" - graceful-fs: "npm:^4.2.9" - istanbul-lib-coverage: "npm:^3.0.0" - istanbul-lib-instrument: "npm:^6.0.0" - istanbul-lib-report: "npm:^3.0.0" - istanbul-lib-source-maps: "npm:^4.0.0" - istanbul-reports: "npm:^3.1.3" - jest-message-util: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - jest-worker: "npm:^29.7.0" - slash: "npm:^3.0.0" - string-length: "npm:^4.0.1" - strip-ansi: "npm:^6.0.0" - v8-to-istanbul: "npm:^9.0.1" - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - checksum: 10/a17d1644b26dea14445cedd45567f4ba7834f980be2ef74447204e14238f121b50d8b858fde648083d2cd8f305f81ba434ba49e37a5f4237a6f2a61180cc73dc - languageName: node - linkType: hard - -"@jest/schemas@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/schemas@npm:29.6.3" - dependencies: - "@sinclair/typebox": "npm:^0.27.8" - checksum: 10/910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93 - languageName: node - linkType: hard - -"@jest/source-map@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/source-map@npm:29.6.3" - dependencies: - "@jridgewell/trace-mapping": "npm:^0.3.18" - callsites: "npm:^3.0.0" - graceful-fs: "npm:^4.2.9" - checksum: 10/bcc5a8697d471396c0003b0bfa09722c3cd879ad697eb9c431e6164e2ea7008238a01a07193dfe3cbb48b1d258eb7251f6efcea36f64e1ebc464ea3c03ae2deb - languageName: node - linkType: hard - -"@jest/test-result@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/test-result@npm:29.7.0" - dependencies: - "@jest/console": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - "@types/istanbul-lib-coverage": "npm:^2.0.0" - collect-v8-coverage: "npm:^1.0.0" - checksum: 10/c073ab7dfe3c562bff2b8fee6cc724ccc20aa96bcd8ab48ccb2aa309b4c0c1923a9e703cea386bd6ae9b71133e92810475bb9c7c22328fc63f797ad3324ed189 - languageName: node - linkType: hard - -"@jest/test-sequencer@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/test-sequencer@npm:29.7.0" - dependencies: - "@jest/test-result": "npm:^29.7.0" - graceful-fs: "npm:^4.2.9" - jest-haste-map: "npm:^29.7.0" - slash: "npm:^3.0.0" - checksum: 10/4420c26a0baa7035c5419b0892ff8ffe9a41b1583ec54a10db3037cd46a7e29dd3d7202f8aa9d376e9e53be5f8b1bc0d16e1de6880a6d319b033b01dc4c8f639 - languageName: node - linkType: hard - -"@jest/transform@npm:^29.7.0": - version: 29.7.0 - resolution: "@jest/transform@npm:29.7.0" - dependencies: - "@babel/core": "npm:^7.11.6" - "@jest/types": "npm:^29.6.3" - "@jridgewell/trace-mapping": "npm:^0.3.18" - babel-plugin-istanbul: "npm:^6.1.1" - chalk: "npm:^4.0.0" - convert-source-map: "npm:^2.0.0" - fast-json-stable-stringify: "npm:^2.1.0" - graceful-fs: "npm:^4.2.9" - jest-haste-map: "npm:^29.7.0" - jest-regex-util: "npm:^29.6.3" - jest-util: "npm:^29.7.0" - micromatch: "npm:^4.0.4" - pirates: "npm:^4.0.4" - slash: "npm:^3.0.0" - write-file-atomic: "npm:^4.0.2" - checksum: 10/30f42293545ab037d5799c81d3e12515790bb58513d37f788ce32d53326d0d72ebf5b40f989e6896739aa50a5f77be44686e510966370d58511d5ad2637c68c1 - languageName: node - linkType: hard - -"@jest/types@npm:^29.6.3": - version: 29.6.3 - resolution: "@jest/types@npm:29.6.3" - dependencies: - "@jest/schemas": "npm:^29.6.3" - "@types/istanbul-lib-coverage": "npm:^2.0.0" - "@types/istanbul-reports": "npm:^3.0.0" - "@types/node": "npm:*" - "@types/yargs": "npm:^17.0.8" - chalk: "npm:^4.0.0" - checksum: 10/f74bf512fd09bbe2433a2ad460b04668b7075235eea9a0c77d6a42222c10a79b9747dc2b2a623f140ed40d6865a2ed8f538f3cbb75169120ea863f29a7ed76cd - languageName: node - linkType: hard - -"@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.1": - version: 0.3.1 - resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.3.1" - dependencies: - glob: "npm:^7.2.0" - glob-promise: "npm:^4.2.0" - magic-string: "npm:^0.27.0" - react-docgen-typescript: "npm:^2.2.2" - peerDependencies: - typescript: ">= 4.3.x" - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10/ec5052f9cb50e7388ebd2f49f974fd0d67dcd429571047bfeb75304bc6b128b5779d05be5f2143d3d22cd1ee3d4f0e9a4c66168999d861e2e60a2ba6787d11a4 - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.5": - version: 0.3.5 - resolution: "@jridgewell/gen-mapping@npm:0.3.5" - 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 - languageName: node - linkType: hard - -"@jridgewell/resolve-uri@npm:^3.1.0": - version: 3.1.2 - resolution: "@jridgewell/resolve-uri@npm:3.1.2" - checksum: 10/97106439d750a409c22c8bff822d648f6a71f3aa9bc8e5129efdc36343cd3096ddc4eeb1c62d2fe48e9bdd4db37b05d4646a17114ecebd3bbcacfa2de51c3c1d - languageName: node - linkType: hard - -"@jridgewell/set-array@npm:^1.2.1": - version: 1.2.1 - resolution: "@jridgewell/set-array@npm:1.2.1" - checksum: 10/832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": - version: 1.5.0 - resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" - checksum: 10/4ed6123217569a1484419ac53f6ea0d9f3b57e5b57ab30d7c267bdb27792a27eb0e4b08e84a2680aa55cc2f2b411ffd6ec3db01c44fdc6dc43aca4b55f8374fd - languageName: node - linkType: hard - -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": - version: 0.3.25 - resolution: "@jridgewell/trace-mapping@npm:0.3.25" - dependencies: - "@jridgewell/resolve-uri": "npm:^3.1.0" - "@jridgewell/sourcemap-codec": "npm:^1.4.14" - checksum: 10/dced32160a44b49d531b80a4a2159dceab6b3ddf0c8e95a0deae4b0e894b172defa63d5ac52a19c2068e1fe7d31ea4ba931fbeec103233ecb4208953967120fc - languageName: node - linkType: hard - -"@mdx-js/react@npm:^3.0.0": - version: 3.0.1 - resolution: "@mdx-js/react@npm:3.0.1" - dependencies: - "@types/mdx": "npm:^2.0.0" - peerDependencies: - "@types/react": ">=16" - react: ">=16" - checksum: 10/d566407af11e76f498f8133fbfa8a9d8a2ad80dc7a66ca109d29fcb92e953a2d2d7aaedc0c28571d126f1967faeb126dd2e4ab4ea474c994bf5c76fa204c5997 - languageName: node - linkType: hard - -"@nodelib/fs.scandir@npm:2.1.5": - version: 2.1.5 - resolution: "@nodelib/fs.scandir@npm:2.1.5" - dependencies: - "@nodelib/fs.stat": "npm:2.0.5" - run-parallel: "npm:^1.1.9" - checksum: 10/6ab2a9b8a1d67b067922c36f259e3b3dfd6b97b219c540877a4944549a4d49ea5ceba5663905ab5289682f1f3c15ff441d02f0447f620a42e1cb5e1937174d4b - languageName: node - linkType: hard - -"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": - version: 2.0.5 - resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 10/012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 - languageName: node - linkType: hard - -"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": - version: 1.2.8 - resolution: "@nodelib/fs.walk@npm:1.2.8" - dependencies: - "@nodelib/fs.scandir": "npm:2.1.5" - fastq: "npm:^1.6.0" - checksum: 10/40033e33e96e97d77fba5a238e4bba4487b8284678906a9f616b5579ddaf868a18874c0054a75402c9fbaaa033a25ceae093af58c9c30278e35c23c9479e79b0 - languageName: node - linkType: hard - -"@npmcli/agent@npm:^2.0.0": - version: 2.2.2 - resolution: "@npmcli/agent@npm:2.2.2" - dependencies: - agent-base: "npm:^7.1.0" - http-proxy-agent: "npm:^7.0.0" - https-proxy-agent: "npm:^7.0.1" - lru-cache: "npm:^10.0.1" - socks-proxy-agent: "npm:^8.0.3" - checksum: 10/96fc0036b101bae5032dc2a4cd832efb815ce9b33f9ee2f29909ee49d96a0026b3565f73c507a69eb8603f5cb32e0ae45a70cab1e2655990a4e06ae99f7f572a - languageName: node - linkType: hard - -"@npmcli/fs@npm:^3.1.0": - version: 3.1.1 - resolution: "@npmcli/fs@npm:3.1.1" - dependencies: - semver: "npm:^7.3.5" - checksum: 10/1e0e04087049b24b38bc0b30d87a9388ee3ca1d3fdfc347c2f77d84fcfe6a51f250bc57ba2c1f614d7e4285c6c62bf8c769bc19aa0949ea39e5b043ee023b0bd - languageName: node - linkType: hard - -"@pkgjs/parseargs@npm:^0.11.0": - version: 0.11.0 - resolution: "@pkgjs/parseargs@npm:0.11.0" - checksum: 10/115e8ceeec6bc69dff2048b35c0ab4f8bbee12d8bb6c1f4af758604586d802b6e669dcb02dda61d078de42c2b4ddce41b3d9e726d7daa6b4b850f4adbf7333ff - languageName: node - linkType: hard - -"@playwright/experimental-ct-core@npm:1.42.1": - version: 1.42.1 - resolution: "@playwright/experimental-ct-core@npm:1.42.1" - dependencies: - playwright: "npm:1.42.1" - playwright-core: "npm:1.42.1" - vite: "npm:^5.0.12" - bin: - playwright: cli.js - checksum: 10/ec62a3f0b8c82720101741884f2c5125f1daaba01fc6c9d3eee627b28ce5f9a40f2abc44bd2f40dd1a6a1856d1540468d13b7c05e301cf576d0c8d2984ca722d - languageName: node - linkType: hard - -"@playwright/experimental-ct-react@npm:1.42.1": - version: 1.42.1 - resolution: "@playwright/experimental-ct-react@npm:1.42.1" - dependencies: - "@playwright/experimental-ct-core": "npm:1.42.1" - "@vitejs/plugin-react": "npm:^4.2.1" - bin: - playwright: cli.js - checksum: 10/ab9a6475c9466df397c57a65b44343b73caf115b21db2cadd1ab6057c9fef98f024b3caa459543a6686ea11cae3888f56eb40683744df237f5b30abf31d7cc35 - languageName: node - linkType: hard - -"@rollup/pluginutils@npm:^5.0.2": - version: 5.1.0 - resolution: "@rollup/pluginutils@npm:5.1.0" - dependencies: - "@types/estree": "npm:^1.0.0" - estree-walker: "npm:^2.0.2" - picomatch: "npm:^2.3.1" - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 10/abb15eaec5b36f159ec351b48578401bedcefdfa371d24a914cfdbb1e27d0ebfbf895299ec18ccc343d247e71f2502cba21202bc1362d7ef27d5ded699e5c2b2 - languageName: node - linkType: hard - -"@rollup/rollup-android-arm-eabi@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.20.0" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@rollup/rollup-android-arm64@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-android-arm64@npm:4.20.0" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-darwin-arm64@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.20.0" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-darwin-x64@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.20.0" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.20.0" - conditions: os=linux & cpu=arm & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm-musleabihf@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.20.0" - conditions: os=linux & cpu=arm & libc=musl - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm64-gnu@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.20.0" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm64-musl@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.20.0" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.20.0" - conditions: os=linux & cpu=ppc64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-riscv64-gnu@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.20.0" - conditions: os=linux & cpu=riscv64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-s390x-gnu@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.20.0" - conditions: os=linux & cpu=s390x & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-x64-gnu@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.20.0" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@rollup/rollup-linux-x64-musl@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.20.0" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@rollup/rollup-win32-arm64-msvc@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.20.0" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-win32-ia32-msvc@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.20.0" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@rollup/rollup-win32-x64-msvc@npm:4.20.0": - version: 4.20.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.20.0" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@sinclair/typebox@npm:^0.27.8": - version: 0.27.8 - resolution: "@sinclair/typebox@npm:0.27.8" - checksum: 10/297f95ff77c82c54de8c9907f186076e715ff2621c5222ba50b8d40a170661c0c5242c763cba2a4791f0f91cb1d8ffa53ea1d7294570cf8cd4694c0e383e484d - 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.1 - resolution: "@sinonjs/commons@npm:3.0.1" - dependencies: - type-detect: "npm:4.0.8" - checksum: 10/a0af217ba7044426c78df52c23cedede6daf377586f3ac58857c565769358ab1f44ebf95ba04bbe38814fba6e316ca6f02870a009328294fc2c555d0f85a7117 - languageName: node - linkType: hard - -"@sinonjs/fake-timers@npm:^10.0.2": - version: 10.3.0 - resolution: "@sinonjs/fake-timers@npm:10.3.0" - dependencies: - "@sinonjs/commons": "npm:^3.0.0" - checksum: 10/78155c7bd866a85df85e22028e046b8d46cf3e840f72260954f5e3ed5bd97d66c595524305a6841ffb3f681a08f6e5cef572a2cce5442a8a232dc29fb409b83e - languageName: node - linkType: hard - -"@storybook/addon-actions@portal:../../../code/addons/actions::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/addon-actions@portal:../../../code/addons/actions::locator=portable-stories-react%40workspace%3A." - dependencies: - "@storybook/global": "npm:^5.0.0" - "@types/uuid": "npm:^9.0.1" - dequal: "npm:^2.0.2" - polished: "npm:^4.2.2" - uuid: "npm:^9.0.0" - peerDependencies: - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/addon-backgrounds@portal:../../../code/addons/backgrounds::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/addon-backgrounds@portal:../../../code/addons/backgrounds::locator=portable-stories-react%40workspace%3A." - dependencies: - "@storybook/global": "npm:^5.0.0" - memoizerific: "npm:^1.11.3" - ts-dedent: "npm:^2.0.0" - peerDependencies: - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/addon-controls@portal:../../../code/addons/controls::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/addon-controls@portal:../../../code/addons/controls::locator=portable-stories-react%40workspace%3A." - dependencies: - dequal: "npm:^2.0.2" - lodash: "npm:^4.17.21" - ts-dedent: "npm:^2.0.0" - peerDependencies: - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/addon-docs@portal:../../../code/addons/docs::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/addon-docs@portal:../../../code/addons/docs::locator=portable-stories-react%40workspace%3A." - dependencies: - "@babel/core": "npm:^7.24.4" - "@mdx-js/react": "npm:^3.0.0" - "@storybook/blocks": "workspace:*" - "@storybook/csf-plugin": "workspace:*" - "@storybook/global": "npm:^5.0.0" - "@storybook/react-dom-shim": "workspace:*" - "@types/react": "npm:^16.8.0 || ^17.0.0 || ^18.0.0" - fs-extra: "npm:^11.1.0" - react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" - react-dom: "npm:^16.8.0 || ^17.0.0 || ^18.0.0" - rehype-external-links: "npm:^3.0.0" - rehype-slug: "npm:^6.0.0" - ts-dedent: "npm:^2.0.0" - peerDependencies: - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/addon-essentials@portal:../../../code/addons/essentials::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/addon-essentials@portal:../../../code/addons/essentials::locator=portable-stories-react%40workspace%3A." - dependencies: - "@storybook/addon-actions": "workspace:*" - "@storybook/addon-backgrounds": "workspace:*" - "@storybook/addon-controls": "workspace:*" - "@storybook/addon-docs": "workspace:*" - "@storybook/addon-highlight": "workspace:*" - "@storybook/addon-measure": "workspace:*" - "@storybook/addon-outline": "workspace:*" - "@storybook/addon-toolbars": "workspace:*" - "@storybook/addon-viewport": "workspace:*" - ts-dedent: "npm:^2.0.0" - peerDependencies: - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/addon-highlight@portal:../../../code/addons/highlight::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/addon-highlight@portal:../../../code/addons/highlight::locator=portable-stories-react%40workspace%3A." - dependencies: - "@storybook/global": "npm:^5.0.0" - peerDependencies: - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/addon-interactions@portal:../../../code/addons/interactions::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/addon-interactions@portal:../../../code/addons/interactions::locator=portable-stories-react%40workspace%3A." - dependencies: - "@storybook/global": "npm:^5.0.0" - "@storybook/instrumenter": "workspace:*" - "@storybook/test": "workspace:*" - polished: "npm:^4.2.2" - ts-dedent: "npm:^2.2.0" - peerDependencies: - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/addon-measure@portal:../../../code/addons/measure::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/addon-measure@portal:../../../code/addons/measure::locator=portable-stories-react%40workspace%3A." - dependencies: - "@storybook/global": "npm:^5.0.0" - tiny-invariant: "npm:^1.3.1" - peerDependencies: - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/addon-outline@portal:../../../code/addons/outline::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/addon-outline@portal:../../../code/addons/outline::locator=portable-stories-react%40workspace%3A." - dependencies: - "@storybook/global": "npm:^5.0.0" - ts-dedent: "npm:^2.0.0" - peerDependencies: - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/addon-toolbars@portal:../../../code/addons/toolbars::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/addon-toolbars@portal:../../../code/addons/toolbars::locator=portable-stories-react%40workspace%3A." - peerDependencies: - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/addon-viewport@portal:../../../code/addons/viewport::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/addon-viewport@portal:../../../code/addons/viewport::locator=portable-stories-react%40workspace%3A." - dependencies: - memoizerific: "npm:^1.11.3" - peerDependencies: - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/blocks@portal:../../../code/lib/blocks::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/blocks@portal:../../../code/lib/blocks::locator=portable-stories-react%40workspace%3A." - dependencies: - "@storybook/csf": "npm:^0.1.11" - "@storybook/global": "npm:^5.0.0" - "@storybook/icons": "npm:^1.2.5" - "@types/lodash": "npm:^4.14.167" - color-convert: "npm:^2.0.1" - dequal: "npm:^2.0.2" - lodash: "npm:^4.17.21" - markdown-to-jsx: "npm:^7.4.5" - memoizerific: "npm:^1.11.3" - polished: "npm:^4.2.2" - react-colorful: "npm:^5.1.2" - telejson: "npm:^7.2.0" - ts-dedent: "npm:^2.0.0" - util-deprecate: "npm:^1.0.2" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: "workspace:^" - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - languageName: node - linkType: soft - -"@storybook/builder-vite@portal:../../../code/builders/builder-vite::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/builder-vite@portal:../../../code/builders/builder-vite::locator=portable-stories-react%40workspace%3A." - dependencies: - "@storybook/csf-plugin": "workspace:*" - "@types/find-cache-dir": "npm:^3.2.1" - browser-assert: "npm:^1.2.1" - es-module-lexer: "npm:^1.5.0" - express: "npm:^4.19.2" - find-cache-dir: "npm:^3.0.0" - fs-extra: "npm:^11.1.0" - magic-string: "npm:^0.30.0" - ts-dedent: "npm:^2.0.0" - peerDependencies: - "@preact/preset-vite": "*" - storybook: "workspace:^" - typescript: ">= 4.3.x" - vite: ^4.0.0 || ^5.0.0 - vite-plugin-glimmerx: "*" - peerDependenciesMeta: - "@preact/preset-vite": - optional: true - typescript: - optional: true - vite-plugin-glimmerx: - optional: true - languageName: node - linkType: soft - -"@storybook/codemod@portal:../../../code/lib/codemod::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/codemod@portal:../../../code/lib/codemod::locator=portable-stories-react%40workspace%3A." - dependencies: - "@babel/core": "npm:^7.24.4" - "@babel/preset-env": "npm:^7.24.4" - "@babel/types": "npm:^7.24.0" - "@storybook/core": "workspace:*" - "@storybook/csf": "npm:^0.1.11" - "@types/cross-spawn": "npm:^6.0.2" - cross-spawn: "npm:^7.0.3" - globby: "npm:^14.0.1" - jscodeshift: "npm:^0.15.1" - lodash: "npm:^4.17.21" - prettier: "npm:^3.1.1" - recast: "npm:^0.23.5" - tiny-invariant: "npm:^1.3.1" - languageName: node - linkType: soft - -"@storybook/components@file:../../../code/deprecated/components::locator=portable-stories-react%40workspace%3A.": - version: 8.3.0-alpha.3 - resolution: "@storybook/components@file:../../../code/deprecated/components#../../../code/deprecated/components::hash=2b6336&locator=portable-stories-react%40workspace%3A." - peerDependencies: - storybook: "workspace:^" - checksum: 10/b375b80a14f12a379af2a418025514576ce6eaf0d4ee428a23931aa23bede403ac138cae12b48eaf698d26d7bbac864a8b6ff9177da241c1156bd4a645230ca6 - languageName: node - linkType: hard - -"@storybook/core@portal:../../../code/core::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/core@portal:../../../code/core::locator=portable-stories-react%40workspace%3A." - dependencies: - "@storybook/csf": "npm:^0.1.11" - "@types/express": "npm:^4.17.21" - "@types/node": "npm:^18.0.0" - browser-assert: "npm:^1.2.1" - esbuild: "npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0" - esbuild-register: "npm:^3.5.0" - express: "npm:^4.19.2" - process: "npm:^0.11.10" - recast: "npm:^0.23.5" - util: "npm:^0.12.4" - ws: "npm:^8.2.3" - languageName: node - linkType: soft - -"@storybook/csf-plugin@portal:../../../code/lib/csf-plugin::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/csf-plugin@portal:../../../code/lib/csf-plugin::locator=portable-stories-react%40workspace%3A." - dependencies: - unplugin: "npm:^1.3.1" - peerDependencies: - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/csf@npm:^0.0.1": - version: 0.0.1 - resolution: "@storybook/csf@npm:0.0.1" - dependencies: - lodash: "npm:^4.17.15" - checksum: 10/f6bb019bccd8abc14e45a85258158b7bd8cc525887ac8dc9151ed8c4908be3b5f5523da8a7a9b96ff11b13b6c1744e1a0e070560d63d836b950f595f9a5719d4 - languageName: node - linkType: hard - -"@storybook/csf@npm:^0.1.11": - version: 0.1.11 - resolution: "@storybook/csf@npm:0.1.11" - dependencies: - type-fest: "npm:^2.19.0" - checksum: 10/f6eeefe3b92ab206676587da9e22a775da026c055999681580d2ca23c98185736f965adc79039a0ae97ea625f0fbc7915cd4559e5db24229a4805784d0b78584 - languageName: node - linkType: hard - -"@storybook/global@npm:^5.0.0": - version: 5.0.0 - resolution: "@storybook/global@npm:5.0.0" - checksum: 10/0e7b495f4fe7f36447e793926f1c0460ec07fd66f0da68e3150da5878f6043c9eeb9b41614a45c5ec0d48d5d383c59ca8f88b6dc7882a2a784ac9b20375d8edb - languageName: node - linkType: hard - -"@storybook/icons@npm:^1.2.5": - version: 1.2.10 - resolution: "@storybook/icons@npm:1.2.10" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10/fad929a7e3c7a1a0fbf6b924b0be73f557b1bba9519faa15422482f89513ceb4b649444c224ee3d1dfbdce3616e684063cff23da08f6b1dd96f1aff4381388a6 - languageName: node - linkType: hard - -"@storybook/instrumenter@portal:../../../code/lib/instrumenter::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/instrumenter@portal:../../../code/lib/instrumenter::locator=portable-stories-react%40workspace%3A." - dependencies: - "@storybook/global": "npm:^5.0.0" - "@vitest/utils": "npm:^1.3.1" - util: "npm:^0.12.4" - peerDependencies: - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/manager-api@file:../../../code/deprecated/manager-api::locator=portable-stories-react%40workspace%3A.": - version: 8.3.0-alpha.3 - resolution: "@storybook/manager-api@file:../../../code/deprecated/manager-api#../../../code/deprecated/manager-api::hash=ccd085&locator=portable-stories-react%40workspace%3A." - peerDependencies: - storybook: "workspace:^" - checksum: 10/4d3116408fabb59809edc23372f61f52f9b3f63dad23bd9eefba31792ec5810f4451ca2a7b8af1d206899a5e6f79536da8fa4ecdfe467778ab35dca8a1ffb36d - languageName: node - linkType: hard - -"@storybook/preview-api@file:../../../code/deprecated/preview-api::locator=portable-stories-react%40workspace%3A.": - version: 8.3.0-alpha.3 - resolution: "@storybook/preview-api@file:../../../code/deprecated/preview-api#../../../code/deprecated/preview-api::hash=1e5fab&locator=portable-stories-react%40workspace%3A." - peerDependencies: - storybook: "workspace:^" - checksum: 10/da2c3df027e10020f4be29a8ff3fd86e498cca06d0e2d8cb5aec51e06575cc0d325e83980b4b6be80eb83922fcd088d9a8608dcef728264eb866a7ffbfbdce34 - languageName: node - linkType: hard - -"@storybook/react-dom-shim@portal:../../../code/lib/react-dom-shim::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/react-dom-shim@portal:../../../code/lib/react-dom-shim::locator=portable-stories-react%40workspace%3A." - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/react-vite@portal:../../../code/frameworks/react-vite::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/react-vite@portal:../../../code/frameworks/react-vite::locator=portable-stories-react%40workspace%3A." - dependencies: - "@joshwooding/vite-plugin-react-docgen-typescript": "npm:0.3.1" - "@rollup/pluginutils": "npm:^5.0.2" - "@storybook/builder-vite": "workspace:*" - "@storybook/react": "workspace:*" - find-up: "npm:^5.0.0" - magic-string: "npm:^0.30.0" - react-docgen: "npm:^7.0.0" - resolve: "npm:^1.22.8" - tsconfig-paths: "npm:^4.2.0" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: "workspace:^" - vite: ^4.0.0 || ^5.0.0 - languageName: node - linkType: soft - -"@storybook/react@portal:../../../code/renderers/react::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/react@portal:../../../code/renderers/react::locator=portable-stories-react%40workspace%3A." - dependencies: - "@storybook/components": "workspace:^" - "@storybook/global": "npm:^5.0.0" - "@storybook/manager-api": "workspace:^" - "@storybook/preview-api": "workspace:^" - "@storybook/react-dom-shim": "workspace:*" - "@storybook/theming": "workspace:^" - "@types/escodegen": "npm:^0.0.6" - "@types/estree": "npm:^0.0.51" - "@types/node": "npm:^18.0.0" - acorn: "npm:^7.4.1" - acorn-jsx: "npm:^5.3.1" - acorn-walk: "npm:^7.2.0" - escodegen: "npm:^2.1.0" - html-tags: "npm:^3.1.0" - lodash: "npm:^4.17.21" - prop-types: "npm:^15.7.2" - react-element-to-jsx-string: "npm:^15.0.0" - semver: "npm:^7.3.7" - ts-dedent: "npm:^2.0.0" - type-fest: "npm:~2.19" - util-deprecate: "npm:^1.0.2" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - storybook: "workspace:^" - typescript: ">= 4.2.x" - peerDependenciesMeta: - typescript: - optional: true - languageName: node - linkType: soft - -"@storybook/test@portal:../../../code/lib/test::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "@storybook/test@portal:../../../code/lib/test::locator=portable-stories-react%40workspace%3A." - dependencies: - "@storybook/csf": "npm:^0.1.11" - "@storybook/instrumenter": "workspace:*" - "@testing-library/dom": "npm:10.4.0" - "@testing-library/jest-dom": "npm:6.4.8" - "@testing-library/user-event": "npm:14.5.2" - "@vitest/expect": "npm:2.0.5" - "@vitest/spy": "npm:2.0.5" - util: "npm:^0.12.4" - peerDependencies: - storybook: "workspace:^" - languageName: node - linkType: soft - -"@storybook/theming@file:../../../code/deprecated/theming::locator=portable-stories-react%40workspace%3A.": - version: 8.3.0-alpha.3 - resolution: "@storybook/theming@file:../../../code/deprecated/theming#../../../code/deprecated/theming::hash=3d046c&locator=portable-stories-react%40workspace%3A." - peerDependencies: - storybook: "workspace:^" - checksum: 10/88fa1ab2e7618127d30fbdbc62df5a299476ea7424a7eca9cc7459564ec80d59ea5d53ad6df04cb7716e0ae63a6a279ec3560c26c5ae24bb8ab812e800c546c5 - languageName: node - linkType: hard - -"@swc/core-darwin-arm64@npm:1.7.6": - version: 1.7.6 - resolution: "@swc/core-darwin-arm64@npm:1.7.6" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@swc/core-darwin-x64@npm:1.7.6": - version: 1.7.6 - resolution: "@swc/core-darwin-x64@npm:1.7.6" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@swc/core-linux-arm-gnueabihf@npm:1.7.6": - version: 1.7.6 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.6" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@swc/core-linux-arm64-gnu@npm:1.7.6": - version: 1.7.6 - resolution: "@swc/core-linux-arm64-gnu@npm:1.7.6" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@swc/core-linux-arm64-musl@npm:1.7.6": - version: 1.7.6 - resolution: "@swc/core-linux-arm64-musl@npm:1.7.6" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@swc/core-linux-x64-gnu@npm:1.7.6": - version: 1.7.6 - resolution: "@swc/core-linux-x64-gnu@npm:1.7.6" - conditions: os=linux & cpu=x64 & libc=glibc - languageName: node - linkType: hard - -"@swc/core-linux-x64-musl@npm:1.7.6": - version: 1.7.6 - resolution: "@swc/core-linux-x64-musl@npm:1.7.6" - conditions: os=linux & cpu=x64 & libc=musl - languageName: node - linkType: hard - -"@swc/core-win32-arm64-msvc@npm:1.7.6": - version: 1.7.6 - resolution: "@swc/core-win32-arm64-msvc@npm:1.7.6" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@swc/core-win32-ia32-msvc@npm:1.7.6": - version: 1.7.6 - resolution: "@swc/core-win32-ia32-msvc@npm:1.7.6" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@swc/core-win32-x64-msvc@npm:1.7.6": - version: 1.7.6 - resolution: "@swc/core-win32-x64-msvc@npm:1.7.6" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@swc/core@npm:^1.4.2": - version: 1.7.6 - resolution: "@swc/core@npm:1.7.6" - dependencies: - "@swc/core-darwin-arm64": "npm:1.7.6" - "@swc/core-darwin-x64": "npm:1.7.6" - "@swc/core-linux-arm-gnueabihf": "npm:1.7.6" - "@swc/core-linux-arm64-gnu": "npm:1.7.6" - "@swc/core-linux-arm64-musl": "npm:1.7.6" - "@swc/core-linux-x64-gnu": "npm:1.7.6" - "@swc/core-linux-x64-musl": "npm:1.7.6" - "@swc/core-win32-arm64-msvc": "npm:1.7.6" - "@swc/core-win32-ia32-msvc": "npm:1.7.6" - "@swc/core-win32-x64-msvc": "npm:1.7.6" - "@swc/counter": "npm:^0.1.3" - "@swc/types": "npm:^0.1.12" - peerDependencies: - "@swc/helpers": "*" - dependenciesMeta: - "@swc/core-darwin-arm64": - optional: true - "@swc/core-darwin-x64": - optional: true - "@swc/core-linux-arm-gnueabihf": - optional: true - "@swc/core-linux-arm64-gnu": - optional: true - "@swc/core-linux-arm64-musl": - optional: true - "@swc/core-linux-x64-gnu": - optional: true - "@swc/core-linux-x64-musl": - optional: true - "@swc/core-win32-arm64-msvc": - optional: true - "@swc/core-win32-ia32-msvc": - optional: true - "@swc/core-win32-x64-msvc": - optional: true - peerDependenciesMeta: - "@swc/helpers": - optional: true - checksum: 10/09a089e3d9db118a6d6c4ead90364ae2ce8581a893e4c4c95db135431abf74c1d8d58558c27e557d2d7822bb3c25a114f4ed5cdd8465465d84733416a2c49d87 - languageName: node - linkType: hard - -"@swc/counter@npm:^0.1.3": - version: 0.1.3 - resolution: "@swc/counter@npm:0.1.3" - checksum: 10/df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 - languageName: node - linkType: hard - -"@swc/jest@npm:^0.2.36": - version: 0.2.36 - resolution: "@swc/jest@npm:0.2.36" - dependencies: - "@jest/create-cache-key-function": "npm:^29.7.0" - "@swc/counter": "npm:^0.1.3" - jsonc-parser: "npm:^3.2.0" - peerDependencies: - "@swc/core": "*" - checksum: 10/39c5699646f0e90400af106156e5604069e8a7d8216f2421e171837b086839176c16f69925ce6a5c4c48182005eed649bdf9664023708e169aa48814feecc0d8 - languageName: node - linkType: hard - -"@swc/types@npm:^0.1.12": - version: 0.1.12 - resolution: "@swc/types@npm:0.1.12" - dependencies: - "@swc/counter": "npm:^0.1.3" - checksum: 10/92dbbc70cd068ea30fb6fbdc1ae8599d6c058a5d09b2923d6e4e24fab5ad7c86a19dd01f349a8e03e300a9321e06911a24df18303b40e307fbd4109372cef2ef - 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.4.8, @testing-library/jest-dom@npm:^6.4.0": - version: 6.4.8 - resolution: "@testing-library/jest-dom@npm:6.4.8" - dependencies: - "@adobe/css-tools": "npm:^4.4.0" - "@babel/runtime": "npm:^7.9.2" - aria-query: "npm:^5.0.0" - chalk: "npm:^3.0.0" - css.escape: "npm:^1.5.1" - dom-accessibility-api: "npm:^0.6.3" - lodash: "npm:^4.17.21" - redent: "npm:^3.0.0" - checksum: 10/011e5a309e2cfc0c5cee6454427030d9a5d690df212bedcc78c15ee8d23218c3e51be32617ca879f060445ba0ba38e1b8d224b5ab11444ee076c37ed8c1c123a - languageName: node - linkType: hard - -"@testing-library/react@npm:^14.2.1": - 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.5.2": - version: 14.5.2 - resolution: "@testing-library/user-event@npm:14.5.2" - peerDependencies: - "@testing-library/dom": ">=7.21.4" - checksum: 10/49821459d81c6bc435d97128d6386ca24f1e4b3ba8e46cb5a96fe3643efa6e002d88c1b02b7f2ec58da593e805c59b78d7fdf0db565c1f02ba782f63ee984040 - languageName: node - linkType: hard - -"@tootallnate/once@npm:2": - version: 2.0.0 - resolution: "@tootallnate/once@npm:2.0.0" - checksum: 10/ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 - languageName: node - linkType: hard - -"@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: - "@babel/parser": "npm:^7.20.7" - "@babel/types": "npm:^7.20.7" - "@types/babel__generator": "npm:*" - "@types/babel__template": "npm:*" - "@types/babel__traverse": "npm:*" - checksum: 10/c32838d280b5ab59d62557f9e331d3831f8e547ee10b4f85cb78753d97d521270cebfc73ce501e9fb27fe71884d1ba75e18658692c2f4117543f0fc4e3e118b3 - languageName: node - linkType: hard - -"@types/babel__generator@npm:*": - version: 7.6.8 - resolution: "@types/babel__generator@npm:7.6.8" - dependencies: - "@babel/types": "npm:^7.0.0" - checksum: 10/b53c215e9074c69d212402990b0ca8fa57595d09e10d94bda3130aa22b55d796e50449199867879e4ea0ee968f3a2099e009cfb21a726a53324483abbf25cd30 - languageName: node - linkType: hard - -"@types/babel__template@npm:*": - version: 7.4.4 - resolution: "@types/babel__template@npm:7.4.4" - dependencies: - "@babel/parser": "npm:^7.1.0" - "@babel/types": "npm:^7.0.0" - checksum: 10/d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 - languageName: node - linkType: hard - -"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6, @types/babel__traverse@npm:^7.18.0": - version: 7.20.6 - resolution: "@types/babel__traverse@npm:7.20.6" - dependencies: - "@babel/types": "npm:^7.20.7" - checksum: 10/63d13a3789aa1e783b87a8b03d9fb2c2c90078de7782422feff1631b8c2a25db626e63a63ac5a1465d47359201c73069dacb4b52149d17c568187625da3064ae - languageName: node - linkType: hard - -"@types/body-parser@npm:*": - version: 1.19.5 - resolution: "@types/body-parser@npm:1.19.5" - dependencies: - "@types/connect": "npm:*" - "@types/node": "npm:*" - checksum: 10/1e251118c4b2f61029cc43b0dc028495f2d1957fe8ee49a707fb940f86a9bd2f9754230805598278fe99958b49e9b7e66eec8ef6a50ab5c1f6b93e1ba2aaba82 - languageName: node - linkType: hard - -"@types/connect@npm:*": - version: 3.4.38 - resolution: "@types/connect@npm:3.4.38" - dependencies: - "@types/node": "npm:*" - checksum: 10/7eb1bc5342a9604facd57598a6c62621e244822442976c443efb84ff745246b10d06e8b309b6e80130026a396f19bf6793b7cecd7380169f369dac3bfc46fb99 - languageName: node - linkType: hard - -"@types/cross-spawn@npm:^6.0.2": - version: 6.0.6 - resolution: "@types/cross-spawn@npm:6.0.6" - dependencies: - "@types/node": "npm:*" - checksum: 10/b4172927cd1387cf037c3ade785ef46c87537b7bc2803d7f6663b4904d0c5d6f726415d1adb2fee4fecb21746738f11336076449265d46be4ce110cc3a8c8436 - languageName: node - linkType: hard - -"@types/doctrine@npm:^0.0.9": - version: 0.0.9 - resolution: "@types/doctrine@npm:0.0.9" - checksum: 10/64ef06e6eea2f4f9684d259fedbcb8bf21c954630b96ea2e04875ca42763552b0ba3b01b3dd27ec0f9ea6f8b3b0dba4965d31d5a925cd4c6225fd13a93ae9354 - languageName: node - linkType: hard - -"@types/emscripten@npm:^1.39.6": - version: 1.39.13 - resolution: "@types/emscripten@npm:1.39.13" - checksum: 10/02c0446150f9cc2c74dc3a551f86ce13df266c33d8b98d11d9f17263e2d98a6a6b4d36bdd15066c4e1547ae1ed2d52eed9420116b4935d119009e0f53ddbb041 - languageName: node - linkType: hard - -"@types/escodegen@npm:^0.0.6": - version: 0.0.6 - resolution: "@types/escodegen@npm:0.0.6" - checksum: 10/2e91554a47eb98076a3ba6e3548640e50b28a0f5b69134f99dd1e0ce5223c0a1726f23d25aafd40e4c7961d7c3c519782949aa606d58d0e7431c7fb1ec011c4c - languageName: node - linkType: hard - -"@types/estree@npm:1.0.5, @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/estree@npm:^0.0.51": - version: 0.0.51 - resolution: "@types/estree@npm:0.0.51" - checksum: 10/b566c7a3fc8a81ca3d9e00a717e90b8f5d567e2476b4f6d76a20ec6da33ec28165b8f989ed8dd0c9df41405199777ec36a4f85f32a347fbc6c3f696a3128b6e7 - languageName: node - linkType: hard - -"@types/express-serve-static-core@npm:^4.17.33": - version: 4.19.5 - resolution: "@types/express-serve-static-core@npm:4.19.5" - dependencies: - "@types/node": "npm:*" - "@types/qs": "npm:*" - "@types/range-parser": "npm:*" - "@types/send": "npm:*" - checksum: 10/49350c6315eeb7d640e13e6138ba6005121b3b610b1e25746fccd5b86b559be810a4ba384b9bd7eee288975b5bd8cf67c1772c646254b812beaa488774eb5513 - languageName: node - linkType: hard - -"@types/express@npm:^4.17.21": - version: 4.17.21 - resolution: "@types/express@npm:4.17.21" - dependencies: - "@types/body-parser": "npm:*" - "@types/express-serve-static-core": "npm:^4.17.33" - "@types/qs": "npm:*" - "@types/serve-static": "npm:*" - checksum: 10/7a6d26cf6f43d3151caf4fec66ea11c9d23166e4f3102edfe45a94170654a54ea08cf3103d26b3928d7ebcc24162c90488e33986b7e3a5f8941225edd5eb18c7 - languageName: node - linkType: hard - -"@types/find-cache-dir@npm:^3.2.1": - version: 3.2.1 - resolution: "@types/find-cache-dir@npm:3.2.1" - checksum: 10/bf5c4e96da40247cd9e6327f54dfccda961a0fb2d70e3c71bd05def94de4c2e6fb310fe8ecb0f04ecf5dbc52214e184b55a2337b0f87250d4ae1e2e7d58321e4 - languageName: node - linkType: hard - -"@types/glob@npm:^7.1.3": - version: 7.2.0 - resolution: "@types/glob@npm:7.2.0" - dependencies: - "@types/minimatch": "npm:*" - "@types/node": "npm:*" - checksum: 10/6ae717fedfdfdad25f3d5a568323926c64f52ef35897bcac8aca8e19bc50c0bd84630bbd063e5d52078b2137d8e7d3c26eabebd1a2f03ff350fff8a91e79fc19 - languageName: node - linkType: hard - -"@types/graceful-fs@npm:^4.1.3": - version: 4.1.9 - resolution: "@types/graceful-fs@npm:4.1.9" - dependencies: - "@types/node": "npm:*" - checksum: 10/79d746a8f053954bba36bd3d94a90c78de995d126289d656fb3271dd9f1229d33f678da04d10bce6be440494a5a73438e2e363e92802d16b8315b051036c5256 - languageName: node - linkType: hard - -"@types/hast@npm:^3.0.0": - version: 3.0.4 - resolution: "@types/hast@npm:3.0.4" - dependencies: - "@types/unist": "npm:*" - checksum: 10/732920d81bb7605895776841b7658b4d8cc74a43a8fa176017cc0fb0ecc1a4c82a2b75a4fe6b71aa262b649d3fb62858c6789efa3793ea1d40269953af96ecb5 - languageName: node - linkType: hard - -"@types/http-errors@npm:*": - version: 2.0.4 - resolution: "@types/http-errors@npm:2.0.4" - checksum: 10/1f3d7c3b32c7524811a45690881736b3ef741bf9849ae03d32ad1ab7062608454b150a4e7f1351f83d26a418b2d65af9bdc06198f1c079d75578282884c4e8e3 - languageName: node - linkType: hard - -"@types/identity-obj-proxy@npm:^3": - version: 3.0.2 - resolution: "@types/identity-obj-proxy@npm:3.0.2" - checksum: 10/77387ee587657ab24f12a1dee5c0e1386358d5c38cda5cac78bc5049340cb358e009f6254de3bbdee6a08e46f13b1552cd47a0bbd3e7a53ff469bf58a04ec6e9 - languageName: node - linkType: hard - -"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": - version: 2.0.6 - resolution: "@types/istanbul-lib-coverage@npm:2.0.6" - checksum: 10/3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778 - languageName: node - linkType: hard - -"@types/istanbul-lib-report@npm:*": - version: 3.0.3 - resolution: "@types/istanbul-lib-report@npm:3.0.3" - dependencies: - "@types/istanbul-lib-coverage": "npm:*" - checksum: 10/b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4 - languageName: node - linkType: hard - -"@types/istanbul-reports@npm:^3.0.0": - version: 3.0.4 - resolution: "@types/istanbul-reports@npm:3.0.4" - dependencies: - "@types/istanbul-lib-report": "npm:*" - checksum: 10/93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95 - languageName: node - linkType: hard - -"@types/jsdom@npm:^20.0.0": - version: 20.0.1 - resolution: "@types/jsdom@npm:20.0.1" - dependencies: - "@types/node": "npm:*" - "@types/tough-cookie": "npm:*" - parse5: "npm:^7.0.0" - checksum: 10/15fbb9a0bfb4a5845cf6e795f2fd12400aacfca53b8c7e5bca4a3e5e8fa8629f676327964d64258aefb127d2d8a2be86dad46359efbfca0e8c9c2b790e7f8a88 - languageName: node - linkType: hard - -"@types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.9": - version: 7.0.15 - resolution: "@types/json-schema@npm:7.0.15" - checksum: 10/1a3c3e06236e4c4aab89499c428d585527ce50c24fe8259e8b3926d3df4cfbbbcf306cfc73ddfb66cbafc973116efd15967020b0f738f63e09e64c7d260519e7 - languageName: node - linkType: hard - -"@types/lodash@npm:^4.14.167": - version: 4.17.7 - resolution: "@types/lodash@npm:4.17.7" - checksum: 10/b8177f19cf962414a66989837481b13f546afc2e98e8d465bec59e6ac03a59c584eb7053ce511cde3a09c5f3096d22a5ae22cfb56b23f3b0da75b0743b6b1a44 - languageName: node - linkType: hard - -"@types/mdx@npm:^2.0.0": - version: 2.0.13 - resolution: "@types/mdx@npm:2.0.13" - checksum: 10/b73ed5f08114879b9590dc6a9ee8b648643c57c708583cd24b2bc3cc8961361fc63139ac7e9291e7b3b6e6b45707749d01d6f9727ddec5533df75dc3b90871a4 - languageName: node - linkType: hard - -"@types/mime@npm:^1": - version: 1.3.5 - resolution: "@types/mime@npm:1.3.5" - checksum: 10/e29a5f9c4776f5229d84e525b7cd7dd960b51c30a0fb9a028c0821790b82fca9f672dab56561e2acd9e8eed51d431bde52eafdfef30f643586c4162f1aecfc78 - languageName: node - linkType: hard - -"@types/minimatch@npm:*": - version: 5.1.2 - resolution: "@types/minimatch@npm:5.1.2" - checksum: 10/94db5060d20df2b80d77b74dd384df3115f01889b5b6c40fa2dfa27cfc03a68fb0ff7c1f2a0366070263eb2e9d6bfd8c87111d4bc3ae93c3f291297c1bf56c85 - languageName: node - linkType: hard - -"@types/node@npm:*": - version: 22.1.0 - resolution: "@types/node@npm:22.1.0" - dependencies: - undici-types: "npm:~6.13.0" - checksum: 10/c2ac1340509646b6c673b27fae2a46e501a97e540e7221be4dd2e0be7a0f61efefb5bf3be8bedf2dbce245fa49cfc49bba77bce73fa3c4296d0d19521ced3222 - languageName: node - linkType: hard - -"@types/node@npm:^18.0.0": - version: 18.19.43 - resolution: "@types/node@npm:18.19.43" - dependencies: - undici-types: "npm:~5.26.4" - checksum: 10/b8ee19ecf9864f0afef8edc92d65e7f57d7b6ac5b756f0a2b49063899a82ecd6ba05f1eeca854644451e7777b9c1894f3049608e468991d44f2ea0c09d3b3184 - languageName: node - linkType: hard - -"@types/prop-types@npm:*": - version: 15.7.12 - resolution: "@types/prop-types@npm:15.7.12" - checksum: 10/ac16cc3d0a84431ffa5cfdf89579ad1e2269549f32ce0c769321fdd078f84db4fbe1b461ed5a1a496caf09e637c0e367d600c541435716a55b1d9713f5035dfe - languageName: node - linkType: hard - -"@types/qs@npm:*": - version: 6.9.15 - resolution: "@types/qs@npm:6.9.15" - checksum: 10/97d8208c2b82013b618e7a9fc14df6bd40a73e1385ac479b6896bafc7949a46201c15f42afd06e86a05e914f146f495f606b6fb65610cc60cf2e0ff743ec38a2 - languageName: node - linkType: hard - -"@types/range-parser@npm:*": - version: 1.2.7 - resolution: "@types/range-parser@npm:1.2.7" - checksum: 10/95640233b689dfbd85b8c6ee268812a732cf36d5affead89e806fe30da9a430767af8ef2cd661024fd97e19d61f3dec75af2df5e80ec3bea000019ab7028629a - languageName: node - linkType: hard - -"@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.19": - version: 18.3.0 - resolution: "@types/react-dom@npm:18.3.0" - dependencies: - "@types/react": "npm:*" - checksum: 10/6ff53f5a7b7fba952a68e114d3b542ebdc1e87a794234785ebab0bcd9bde7fb4885f21ebaf93d26dc0a1b5b93287f42cad68b78ae04dddf6b20da7aceff0beaf - languageName: node - linkType: hard - -"@types/react@npm:*, @types/react@npm:^16.8.0 || ^17.0.0 || ^18.0.0, @types/react@npm:^18.2.55": - version: 18.3.3 - resolution: "@types/react@npm:18.3.3" - dependencies: - "@types/prop-types": "npm:*" - csstype: "npm:^3.0.2" - checksum: 10/68e203b7f1f91d6cf21f33fc7af9d6d228035a26c83f514981e54aa3da695d0ec6af10c277c6336de1dd76c4adbe9563f3a21f80c4462000f41e5f370b46e96c - languageName: node - linkType: hard - -"@types/resolve@npm:^1.20.2": - version: 1.20.6 - resolution: "@types/resolve@npm:1.20.6" - checksum: 10/dc35f5517606b6687cd971c0281ac58bdee2c50c051b030f04647d3991688be2259c304ee97e5b5d4b9936072c36767eb5933b54611a407d6557972bb6fea4f6 - languageName: node - linkType: hard - -"@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.4, @types/semver@npm:^7.5.0": - version: 7.5.8 - resolution: "@types/semver@npm:7.5.8" - checksum: 10/3496808818ddb36deabfe4974fd343a78101fa242c4690044ccdc3b95dcf8785b494f5d628f2f47f38a702f8db9c53c67f47d7818f2be1b79f2efb09692e1178 - languageName: node - linkType: hard - -"@types/send@npm:*": - version: 0.17.4 - resolution: "@types/send@npm:0.17.4" - dependencies: - "@types/mime": "npm:^1" - "@types/node": "npm:*" - checksum: 10/28320a2aa1eb704f7d96a65272a07c0bf3ae7ed5509c2c96ea5e33238980f71deeed51d3631927a77d5250e4091b3e66bce53b42d770873282c6a20bb8b0280d - languageName: node - linkType: hard - -"@types/serve-static@npm:*": - version: 1.15.7 - resolution: "@types/serve-static@npm:1.15.7" - dependencies: - "@types/http-errors": "npm:*" - "@types/node": "npm:*" - "@types/send": "npm:*" - checksum: 10/c5a7171d5647f9fbd096ed1a26105759f3153ccf683824d99fee4c7eb9cde2953509621c56a070dd9fb1159e799e86d300cbe4e42245ebc5b0c1767e8ca94a67 - languageName: node - linkType: hard - -"@types/sinonjs__fake-timers@npm:8.1.1": - version: 8.1.1 - resolution: "@types/sinonjs__fake-timers@npm:8.1.1" - checksum: 10/567e01159b07eb19a56aa9a619bda963a3e2c1261b197b83fc664867228ce679e189450f0ae38483a08857155f94d9ae5d88e72c0f44f269103f63c2946a73ed - languageName: node - linkType: hard - -"@types/sizzle@npm:^2.3.2": - version: 2.3.8 - resolution: "@types/sizzle@npm:2.3.8" - checksum: 10/2ac62443dc917f5f903cbd9afc51c7d6cc1c6569b4e1a15faf04aea5b13b486e7f208650014c3dc4fed34653eded3e00fe5abffe0e6300cbf0e8a01beebf11a6 - languageName: node - linkType: hard - -"@types/stack-utils@npm:^2.0.0": - version: 2.0.3 - resolution: "@types/stack-utils@npm:2.0.3" - checksum: 10/72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5 - languageName: node - linkType: hard - -"@types/tough-cookie@npm:*": - version: 4.0.5 - resolution: "@types/tough-cookie@npm:4.0.5" - checksum: 10/01fd82efc8202670865928629697b62fe9bf0c0dcbc5b1c115831caeb073a2c0abb871ff393d7df1ae94ea41e256cb87d2a5a91fd03cdb1b0b4384e08d4ee482 - languageName: node - linkType: hard - -"@types/unist@npm:*, @types/unist@npm:^3.0.0": - version: 3.0.2 - resolution: "@types/unist@npm:3.0.2" - checksum: 10/3d04d0be69316e5f14599a0d993a208606c12818cf631fd399243d1dc7a9bd8a3917d6066baa6abc290814afbd744621484756803c80cba892c39cd4b4a85616 - languageName: node - linkType: hard - -"@types/uuid@npm:^9.0.1": - version: 9.0.8 - resolution: "@types/uuid@npm:9.0.8" - checksum: 10/b8c60b7ba8250356b5088302583d1704a4e1a13558d143c549c408bf8920535602ffc12394ede77f8a8083511b023704bc66d1345792714002bfa261b17c5275 - languageName: node - linkType: hard - -"@types/yargs-parser@npm:*": - version: 21.0.3 - resolution: "@types/yargs-parser@npm:21.0.3" - checksum: 10/a794eb750e8ebc6273a51b12a0002de41343ffe46befef460bdbb57262d187fdf608bc6615b7b11c462c63c3ceb70abe2564c8dd8ee0f7628f38a314f74a9b9b - languageName: node - linkType: hard - -"@types/yargs@npm:^17.0.8": - version: 17.0.32 - resolution: "@types/yargs@npm:17.0.32" - dependencies: - "@types/yargs-parser": "npm:*" - checksum: 10/1e2b2673847011ce43607df690d392f137d95a2d6ea85aa319403eadda2ef4277365efd4982354d8843f2611ef3846c88599660aaeb537fa9ccddae83c2a89de - languageName: node - linkType: hard - -"@types/yauzl@npm:^2.9.1": - version: 2.10.3 - resolution: "@types/yauzl@npm:2.10.3" - dependencies: - "@types/node": "npm:*" - checksum: 10/5ee966ea7bd6b2802f31ad4281c92c4c0b6dfa593c378a2582c58541fa113bec3d70eb0696b34ad95e8e6861a884cba6c3e351285816693ed176222f840a8c08 - languageName: node - linkType: hard - -"@typescript-eslint/eslint-plugin@npm:^6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" - dependencies: - "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:6.21.0" - "@typescript-eslint/type-utils": "npm:6.21.0" - "@typescript-eslint/utils": "npm:6.21.0" - "@typescript-eslint/visitor-keys": "npm:6.21.0" - debug: "npm:^4.3.4" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.4" - natural-compare: "npm:^1.4.0" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" - peerDependencies: - "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10/a57de0f630789330204cc1531f86cfc68b391cafb1ba67c8992133f1baa2a09d629df66e71260b040de4c9a3ff1252952037093c4128b0d56c4dbb37720b4c1d - languageName: node - linkType: hard - -"@typescript-eslint/parser@npm:^6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/parser@npm:6.21.0" - dependencies: - "@typescript-eslint/scope-manager": "npm:6.21.0" - "@typescript-eslint/types": "npm:6.21.0" - "@typescript-eslint/typescript-estree": "npm:6.21.0" - "@typescript-eslint/visitor-keys": "npm:6.21.0" - debug: "npm:^4.3.4" - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10/4d51cdbc170e72275efc5ef5fce48a81ec431e4edde8374f4d0213d8d370a06823e1a61ae31d502a5f1b0d1f48fc4d29a1b1b5c2dcf809d66d3872ccf6e46ac7 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/scope-manager@npm:5.62.0" - dependencies: - "@typescript-eslint/types": "npm:5.62.0" - "@typescript-eslint/visitor-keys": "npm:5.62.0" - checksum: 10/e827770baa202223bc0387e2fd24f630690809e460435b7dc9af336c77322290a770d62bd5284260fa881c86074d6a9fd6c97b07382520b115f6786b8ed499da - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/scope-manager@npm:6.21.0" - dependencies: - "@typescript-eslint/types": "npm:6.21.0" - "@typescript-eslint/visitor-keys": "npm:6.21.0" - checksum: 10/fe91ac52ca8e09356a71dc1a2f2c326480f3cccfec6b2b6d9154c1a90651ab8ea270b07c67df5678956c3bbf0bbe7113ab68f68f21b20912ea528b1214197395 - languageName: node - linkType: hard - -"@typescript-eslint/type-utils@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/type-utils@npm:6.21.0" - dependencies: - "@typescript-eslint/typescript-estree": "npm:6.21.0" - "@typescript-eslint/utils": "npm:6.21.0" - debug: "npm:^4.3.4" - ts-api-utils: "npm:^1.0.1" - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10/d03fb3ee1caa71f3ce053505f1866268d7ed79ffb7fed18623f4a1253f5b8f2ffc92636d6fd08fcbaf5bd265a6de77bf192c53105131e4724643dfc910d705fc - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/types@npm:5.62.0" - checksum: 10/24e8443177be84823242d6729d56af2c4b47bfc664dd411a1d730506abf2150d6c31bdefbbc6d97c8f91043e3a50e0c698239dcb145b79bb6b0c34469aaf6c45 - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/types@npm:6.21.0" - checksum: 10/e26da86d6f36ca5b6ef6322619f8ec55aabcd7d43c840c977ae13ae2c964c3091fc92eb33730d8be08927c9de38466c5323e78bfb270a9ff1d3611fe821046c5 - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" - dependencies: - "@typescript-eslint/types": "npm:5.62.0" - "@typescript-eslint/visitor-keys": "npm:5.62.0" - debug: "npm:^4.3.4" - globby: "npm:^11.1.0" - is-glob: "npm:^4.0.3" - semver: "npm:^7.3.7" - tsutils: "npm:^3.21.0" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10/06c975eb5f44b43bd19fadc2e1023c50cf87038fe4c0dd989d4331c67b3ff509b17fa60a3251896668ab4d7322bdc56162a9926971218d2e1a1874d2bef9a52e - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.21.0" - dependencies: - "@typescript-eslint/types": "npm:6.21.0" - "@typescript-eslint/visitor-keys": "npm:6.21.0" - debug: "npm:^4.3.4" - globby: "npm:^11.1.0" - is-glob: "npm:^4.0.3" - minimatch: "npm:9.0.3" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" - peerDependenciesMeta: - typescript: - optional: true - checksum: 10/b32fa35fca2a229e0f5f06793e5359ff9269f63e9705e858df95d55ca2cd7fdb5b3e75b284095a992c48c5fc46a1431a1a4b6747ede2dd08929dc1cbacc589b8 - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/utils@npm:6.21.0" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.4.0" - "@types/json-schema": "npm:^7.0.12" - "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:6.21.0" - "@typescript-eslint/types": "npm:6.21.0" - "@typescript-eslint/typescript-estree": "npm:6.21.0" - semver: "npm:^7.5.4" - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - checksum: 10/b404a2c55a425a79d054346ae123087d30c7ecf7ed7abcf680c47bf70c1de4fabadc63434f3f460b2fa63df76bc9e4a0b9fa2383bb8a9fcd62733fb5c4e4f3e3 - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:^5.45.0": - version: 5.62.0 - resolution: "@typescript-eslint/utils@npm:5.62.0" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.2.0" - "@types/json-schema": "npm:^7.0.9" - "@types/semver": "npm:^7.3.12" - "@typescript-eslint/scope-manager": "npm:5.62.0" - "@typescript-eslint/types": "npm:5.62.0" - "@typescript-eslint/typescript-estree": "npm:5.62.0" - eslint-scope: "npm:^5.1.1" - semver: "npm:^7.3.7" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 10/15ef13e43998a082b15f85db979f8d3ceb1f9ce4467b8016c267b1738d5e7cdb12aa90faf4b4e6dd6486c236cf9d33c463200465cf25ff997dbc0f12358550a1 - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:5.62.0": - version: 5.62.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" - dependencies: - "@typescript-eslint/types": "npm:5.62.0" - eslint-visitor-keys: "npm:^3.3.0" - checksum: 10/dc613ab7569df9bbe0b2ca677635eb91839dfb2ca2c6fa47870a5da4f160db0b436f7ec0764362e756d4164e9445d49d5eb1ff0b87f4c058946ae9d8c92eb388 - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.21.0" - dependencies: - "@typescript-eslint/types": "npm:6.21.0" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10/30422cdc1e2ffad203df40351a031254b272f9c6f2b7e02e9bfa39e3fc2c7b1c6130333b0057412968deda17a3a68a578a78929a8139c6acef44d9d841dc72e1 - languageName: node - linkType: hard - -"@ungap/structured-clone@npm:^1.0.0, @ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 10/c6fe89a505e513a7592e1438280db1c075764793a2397877ff1351721fe8792a966a5359769e30242b3cd023f2efb9e63ca2ca88019d73b564488cc20e3eab12 - languageName: node - linkType: hard - -"@vitejs/plugin-react@npm:^4.2.1": - version: 4.3.1 - resolution: "@vitejs/plugin-react@npm:4.3.1" - dependencies: - "@babel/core": "npm:^7.24.5" - "@babel/plugin-transform-react-jsx-self": "npm:^7.24.5" - "@babel/plugin-transform-react-jsx-source": "npm:^7.24.1" - "@types/babel__core": "npm:^7.20.5" - react-refresh: "npm:^0.14.2" - peerDependencies: - vite: ^4.2.0 || ^5.0.0 - checksum: 10/a9d1eb30c968bf719a3277067211493746579aee14a7af8c0edb2cde38e8e5bbd461e62a41c3590e2c6eb04a047114eb3e97dcd591967625fbbc7aead8dfaf90 - languageName: node - linkType: hard - -"@vitest/expect@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/expect@npm:2.0.5" - dependencies: - "@vitest/spy": "npm:2.0.5" - "@vitest/utils": "npm:2.0.5" - chai: "npm:^5.1.1" - tinyrainbow: "npm:^1.2.0" - checksum: 10/ca9a218f50254b2259fd16166b2d8c9ccc8ee2cc068905e6b3d6281da10967b1590cc7d34b5fa9d429297f97e740450233745583b4cc12272ff11705faf70a37 - languageName: node - linkType: hard - -"@vitest/pretty-format@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/pretty-format@npm:2.0.5" - dependencies: - tinyrainbow: "npm:^1.2.0" - checksum: 10/70bf452dd0b8525e658795125b3f11110bd6baadfaa38c5bb91ca763bded35ec6dc80e27964ad4e91b91be6544d35e18ea7748c1997693988f975a7283c3e9a0 - languageName: node - linkType: hard - -"@vitest/spy@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/spy@npm:2.0.5" - dependencies: - tinyspy: "npm:^3.0.0" - checksum: 10/ed19f4c3bb4d3853241e8070979615138e24403ce4c137fa48c903b3af2c8b3ada2cc26aca9c1aa323bb314a457a8130a29acbb18dafd4e42737deefb2abf1ca - languageName: node - linkType: hard - -"@vitest/utils@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/utils@npm:2.0.5" - dependencies: - "@vitest/pretty-format": "npm:2.0.5" - estree-walker: "npm:^3.0.3" - loupe: "npm:^3.1.1" - tinyrainbow: "npm:^1.2.0" - checksum: 10/d631d56d29c33bc8de631166b2b6691c470187a345469dfef7048befe6027e1c6ff9552f2ee11c8a247522c325c4a64bfcc73f8f0f0c525da39cb9f190f119f8 - languageName: node - linkType: hard - -"@vitest/utils@npm:^1.3.1": - version: 1.6.0 - resolution: "@vitest/utils@npm:1.6.0" - dependencies: - diff-sequences: "npm:^29.6.3" - estree-walker: "npm:^3.0.3" - loupe: "npm:^2.3.7" - pretty-format: "npm:^29.7.0" - checksum: 10/5c5d7295ac13fcea1da039232bcc7c3fc6f070070fe12ba2ad152456af6e216e48a3ae169016cfcd5055706a00dc567b8f62e4a9b1914f069f52b8f0a3c25e60 - 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 - -"abab@npm:^2.0.6": - version: 2.0.6 - resolution: "abab@npm:2.0.6" - checksum: 10/ebe95d7278999e605823fc515a3b05d689bc72e7f825536e73c95ebf621636874c6de1b749b3c4bf866b96ccd4b3a2802efa313d0e45ad51a413c8c73247db20 - languageName: node - linkType: hard - -"abbrev@npm:^2.0.0": - version: 2.0.0 - resolution: "abbrev@npm:2.0.0" - checksum: 10/ca0a54e35bea4ece0ecb68a47b312e1a9a6f772408d5bcb9051230aaa94b0460671c5b5c9cb3240eb5b7bc94c52476550eb221f65a0bbd0145bdc9f3113a6707 - languageName: node - linkType: hard - -"accepts@npm:~1.3.8": - version: 1.3.8 - resolution: "accepts@npm:1.3.8" - dependencies: - mime-types: "npm:~2.1.34" - negotiator: "npm:0.6.3" - checksum: 10/67eaaa90e2917c58418e7a9b89392002d2b1ccd69bcca4799135d0c632f3b082f23f4ae4ddeedbced5aa59bcc7bdf4699c69ebed4593696c922462b7bc5744d6 - languageName: node - linkType: hard - -"acorn-globals@npm:^7.0.0": - version: 7.0.1 - resolution: "acorn-globals@npm:7.0.1" - dependencies: - acorn: "npm:^8.1.0" - acorn-walk: "npm:^8.0.2" - checksum: 10/2a2998a547af6d0db5f0cdb90acaa7c3cbca6709010e02121fb8b8617c0fbd8bab0b869579903fde358ac78454356a14fadcc1a672ecb97b04b1c2ccba955ce8 - languageName: node - linkType: hard - -"acorn-jsx@npm:^5.3.1, acorn-jsx@npm:^5.3.2": - version: 5.3.2 - resolution: "acorn-jsx@npm:5.3.2" - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 10/d4371eaef7995530b5b5ca4183ff6f062ca17901a6d3f673c9ac011b01ede37e7a1f7f61f8f5cfe709e88054757bb8f3277dc4061087cdf4f2a1f90ccbcdb977 - languageName: node - linkType: hard - -"acorn-walk@npm:^7.2.0": - version: 7.2.0 - resolution: "acorn-walk@npm:7.2.0" - checksum: 10/4d3e186f729474aed3bc3d0df44692f2010c726582655b20a23347bef650867655521c48ada444cb4fda241ee713dcb792da363ec74c6282fa884fb7144171bb - languageName: node - linkType: hard - -"acorn-walk@npm:^8.0.2": - version: 8.3.3 - resolution: "acorn-walk@npm:8.3.3" - dependencies: - acorn: "npm:^8.11.0" - checksum: 10/59701dcb7070679622ba8e9c7f37577b4935565747ca0fd7c1c3ad30b3f1b1b008276282664e323b5495eb49f77fa12d3816fd06dc68e18f90fbebe759f71450 - languageName: node - linkType: hard - -"acorn@npm:^7.4.1": - version: 7.4.1 - resolution: "acorn@npm:7.4.1" - bin: - acorn: bin/acorn - checksum: 10/8be2a40714756d713dfb62544128adce3b7102c6eb94bc312af196c2cc4af76e5b93079bd66b05e9ca31b35a9b0ce12171d16bc55f366cafdb794fdab9d753ec - languageName: node - linkType: hard - -"acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.11.3, acorn@npm:^8.12.1, acorn@npm:^8.8.1, acorn@npm:^8.9.0": - version: 8.12.1 - resolution: "acorn@npm:8.12.1" - bin: - acorn: bin/acorn - checksum: 10/d08c2d122bba32d0861e0aa840b2ee25946c286d5dc5990abca991baf8cdbfbe199b05aacb221b979411a2fea36f83e26b5ac4f6b4e0ce49038c62316c1848f0 - languageName: node - linkType: hard - -"agent-base@npm:6": - version: 6.0.2 - resolution: "agent-base@npm:6.0.2" - dependencies: - debug: "npm:4" - checksum: 10/21fb903e0917e5cb16591b4d0ef6a028a54b83ac30cd1fca58dece3d4e0990512a8723f9f83130d88a41e2af8b1f7be1386fda3ea2d181bb1a62155e75e95e23 - languageName: node - linkType: hard - -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": - version: 7.1.1 - resolution: "agent-base@npm:7.1.1" - dependencies: - debug: "npm:^4.3.4" - checksum: 10/c478fec8f79953f118704d007a38f2a185458853f5c45579b9669372bd0e12602e88dc2ad0233077831504f7cd6fcc8251c383375bba5eaaf563b102938bda26 - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: "npm:^2.0.0" - indent-string: "npm:^4.0.0" - checksum: 10/1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 - languageName: node - linkType: hard - -"ajv@npm:^6.12.4": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" - dependencies: - fast-deep-equal: "npm:^3.1.1" - fast-json-stable-stringify: "npm:^2.0.0" - json-schema-traverse: "npm:^0.4.1" - uri-js: "npm:^4.2.2" - checksum: 10/48d6ad21138d12eb4d16d878d630079a2bda25a04e745c07846a4ad768319533031e28872a9b3c5790fa1ec41aabdf2abed30a56e5a03ebc2cf92184b8ee306c - languageName: node - linkType: hard - -"ansi-colors@npm:^4.1.1": - version: 4.1.3 - resolution: "ansi-colors@npm:4.1.3" - checksum: 10/43d6e2fc7b1c6e4dc373de708ee76311ec2e0433e7e8bd3194e7ff123ea6a747428fc61afdcf5969da5be3a5f0fd054602bec56fc0ebe249ce2fcde6e649e3c2 - languageName: node - linkType: hard - -"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0": - version: 4.3.2 - resolution: "ansi-escapes@npm:4.3.2" - dependencies: - type-fest: "npm:^0.21.3" - checksum: 10/8661034456193ffeda0c15c8c564a9636b0c04094b7f78bd01517929c17c504090a60f7a75f949f5af91289c264d3e1001d91492c1bd58efc8e100500ce04de2 - languageName: node - linkType: hard - -"ansi-regex@npm:^5.0.1": - version: 5.0.1 - resolution: "ansi-regex@npm:5.0.1" - checksum: 10/2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b - languageName: node - linkType: hard - -"ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: 10/1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 - languageName: node - linkType: hard - -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: "npm:^1.9.0" - checksum: 10/d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 - languageName: node - linkType: hard - -"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": - version: 4.3.0 - resolution: "ansi-styles@npm:4.3.0" - dependencies: - color-convert: "npm:^2.0.1" - checksum: 10/b4494dfbfc7e4591b4711a396bd27e540f8153914123dccb4cdbbcb514015ada63a3809f362b9d8d4f6b17a706f1d7bea3c6f974b15fa5ae76b5b502070889ff - languageName: node - linkType: hard - -"ansi-styles@npm:^5.0.0": - version: 5.2.0 - resolution: "ansi-styles@npm:5.2.0" - checksum: 10/d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469 - languageName: node - linkType: hard - -"ansi-styles@npm:^6.1.0": - version: 6.2.1 - resolution: "ansi-styles@npm:6.2.1" - checksum: 10/70fdf883b704d17a5dfc9cde206e698c16bcd74e7f196ab821511651aee4f9f76c9514bdfa6ca3a27b5e49138b89cb222a28caf3afe4567570139577f991df32 - languageName: node - linkType: hard - -"anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": - version: 3.1.3 - resolution: "anymatch@npm:3.1.3" - dependencies: - normalize-path: "npm:^3.0.0" - picomatch: "npm:^2.0.4" - checksum: 10/3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 - languageName: node - linkType: hard - -"arch@npm:^2.2.0": - version: 2.2.0 - resolution: "arch@npm:2.2.0" - checksum: 10/e35dbc6d362297000ab90930069576ba165fe63cd52383efcce14bd66c1b16a91ce849e1fd239964ed029d5e0bdfc32f68e9c7331b7df6c84ddebebfdbf242f7 - languageName: node - linkType: hard - -"argparse@npm:^1.0.7": - version: 1.0.10 - resolution: "argparse@npm:1.0.10" - dependencies: - sprintf-js: "npm:~1.0.2" - checksum: 10/c6a621343a553ff3779390bb5ee9c2263d6643ebcd7843227bdde6cc7adbed796eb5540ca98db19e3fd7b4714e1faa51551f8849b268bb62df27ddb15cbcd91e - languageName: node - linkType: hard - -"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: - dequal: "npm:^2.0.3" - checksum: 10/c3e1ed127cc6886fea4732e97dd6d3c3938e64180803acfb9df8955517c4943760746ffaf4020ce8f7ffaa7556a3b5f85c3769a1f5ca74a1288e02d042f9ae4e - languageName: node - linkType: hard - -"array-buffer-byte-length@npm:^1.0.0": - version: 1.0.1 - resolution: "array-buffer-byte-length@npm:1.0.1" - dependencies: - call-bind: "npm:^1.0.5" - is-array-buffer: "npm:^3.0.4" - checksum: 10/53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e - languageName: node - linkType: hard - -"array-flatten@npm:1.1.1": - version: 1.1.1 - resolution: "array-flatten@npm:1.1.1" - checksum: 10/e13c9d247241be82f8b4ec71d035ed7204baa82fae820d4db6948d30d3c4a9f2b3905eb2eec2b937d4aa3565200bd3a1c500480114cff649fa748747d2a50feb - languageName: node - linkType: hard - -"array-union@npm:^2.1.0": - version: 2.1.0 - resolution: "array-union@npm:2.1.0" - checksum: 10/5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d - languageName: node - linkType: hard - -"asn1@npm:~0.2.3": - version: 0.2.6 - resolution: "asn1@npm:0.2.6" - dependencies: - safer-buffer: "npm:~2.1.0" - checksum: 10/cf629291fee6c1a6f530549939433ebf32200d7849f38b810ff26ee74235e845c0c12b2ed0f1607ac17383d19b219b69cefa009b920dab57924c5c544e495078 - languageName: node - linkType: hard - -"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": - version: 1.0.0 - resolution: "assert-plus@npm:1.0.0" - checksum: 10/f4f991ae2df849cc678b1afba52d512a7cbf0d09613ba111e72255409ff9158550c775162a47b12d015d1b82b3c273e8e25df0e4783d3ddb008a293486d00a07 - languageName: node - linkType: hard - -"assertion-error@npm:^2.0.1": - version: 2.0.1 - resolution: "assertion-error@npm:2.0.1" - checksum: 10/a0789dd882211b87116e81e2648ccb7f60340b34f19877dd020b39ebb4714e475eb943e14ba3e22201c221ef6645b7bfe10297e76b6ac95b48a9898c1211ce66 - languageName: node - linkType: hard - -"ast-types@npm:^0.16.1": - version: 0.16.1 - resolution: "ast-types@npm:0.16.1" - dependencies: - tslib: "npm:^2.0.1" - checksum: 10/f569b475eb1c8cb93888cb6e7b7e36dc43fa19a77e4eb132cbff6e3eb1598ca60f850db6e60b070e5a0ee8c1559fca921dac0916e576f2f104e198793b0bdd8d - languageName: node - linkType: hard - -"astral-regex@npm:^2.0.0": - version: 2.0.0 - resolution: "astral-regex@npm:2.0.0" - checksum: 10/876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 - languageName: node - linkType: hard - -"async@npm:^3.2.0": - version: 3.2.5 - resolution: "async@npm:3.2.5" - checksum: 10/323c3615c3f0ab1ac25a6f953296bc0ac3213d5e0f1c0debdb12964e55963af288d570293c11e44f7967af58c06d2a88d0ea588c86ec0fbf62fa98037f604a0f - languageName: node - linkType: hard - -"asynckit@npm:^0.4.0": - version: 0.4.0 - resolution: "asynckit@npm:0.4.0" - checksum: 10/3ce727cbc78f69d6a4722517a58ee926c8c21083633b1d3fdf66fd688f6c127a53a592141bd4866f9b63240a86e9d8e974b13919450bd17fa33c2d22c4558ad8 - languageName: node - linkType: hard - -"at-least-node@npm:^1.0.0": - version: 1.0.0 - resolution: "at-least-node@npm:1.0.0" - checksum: 10/463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e - 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 - -"aws-sign2@npm:~0.7.0": - version: 0.7.0 - resolution: "aws-sign2@npm:0.7.0" - checksum: 10/2ac497d739f71be3264cf096a33ab256a1fea7fe80b87dc51ec29374505bd5a661279ef1c22989d68528ea61ed634021ca63b31cf1d3c2a3682ffc106f7d0e96 - languageName: node - linkType: hard - -"aws4@npm:^1.8.0": - version: 1.13.0 - resolution: "aws4@npm:1.13.0" - checksum: 10/a73a43f88c5d915e564d102a6b181a62afd7991f25e661b440540fdef102cbccce7cfa7da8b82ea1c34645e672ac617aecbd9f4f1e91e3f9e99de4d1d7a2cef9 - languageName: node - linkType: hard - -"babel-core@npm:^7.0.0-bridge.0": - version: 7.0.0-bridge.0 - resolution: "babel-core@npm:7.0.0-bridge.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10/2a1cb879019dffb08d17bec36e13c3a6d74c94773f41c1fd8b14de13f149cc34b705b0a1e07b42fcf35917b49d78db6ff0c5c3b00b202a5235013d517b5c6bbb - languageName: node - linkType: hard - -"babel-jest@npm:^29.7.0": - version: 29.7.0 - resolution: "babel-jest@npm:29.7.0" - dependencies: - "@jest/transform": "npm:^29.7.0" - "@types/babel__core": "npm:^7.1.14" - babel-plugin-istanbul: "npm:^6.1.1" - babel-preset-jest: "npm:^29.6.3" - chalk: "npm:^4.0.0" - graceful-fs: "npm:^4.2.9" - slash: "npm:^3.0.0" - peerDependencies: - "@babel/core": ^7.8.0 - checksum: 10/8a0953bd813b3a8926008f7351611055548869e9a53dd36d6e7e96679001f71e65fd7dbfe253265c3ba6a4e630dc7c845cf3e78b17d758ef1880313ce8fba258 - languageName: node - linkType: hard - -"babel-plugin-istanbul@npm:^6.1.1": - version: 6.1.1 - resolution: "babel-plugin-istanbul@npm:6.1.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.0.0" - "@istanbuljs/load-nyc-config": "npm:^1.0.0" - "@istanbuljs/schema": "npm:^0.1.2" - istanbul-lib-instrument: "npm:^5.0.4" - test-exclude: "npm:^6.0.0" - checksum: 10/ffd436bb2a77bbe1942a33245d770506ab2262d9c1b3c1f1da7f0592f78ee7445a95bc2efafe619dd9c1b6ee52c10033d6c7d29ddefe6f5383568e60f31dfe8d - languageName: node - linkType: hard - -"babel-plugin-jest-hoist@npm:^29.6.3": - version: 29.6.3 - resolution: "babel-plugin-jest-hoist@npm:29.6.3" - dependencies: - "@babel/template": "npm:^7.3.3" - "@babel/types": "npm:^7.3.3" - "@types/babel__core": "npm:^7.1.14" - "@types/babel__traverse": "npm:^7.0.6" - checksum: 10/9bfa86ec4170bd805ab8ca5001ae50d8afcb30554d236ba4a7ffc156c1a92452e220e4acbd98daefc12bf0216fccd092d0a2efed49e7e384ec59e0597a926d65 - languageName: node - linkType: hard - -"babel-plugin-polyfill-corejs2@npm:^0.4.10": - version: 0.4.11 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.11" - dependencies: - "@babel/compat-data": "npm:^7.22.6" - "@babel/helper-define-polyfill-provider": "npm:^0.6.2" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10/9c79908bed61b9f52190f254e22d3dca6ce25769738642579ba8d23832f3f9414567a90d8367a31831fa45d9b9607ac43d8d07ed31167d8ca8cda22871f4c7a1 - languageName: node - linkType: hard - -"babel-plugin-polyfill-corejs3@npm:^0.10.4": - version: 0.10.6 - resolution: "babel-plugin-polyfill-corejs3@npm:0.10.6" - dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.6.2" - core-js-compat: "npm:^3.38.0" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10/360ac9054a57a18c540059dc627ad5d84d15f79790cb3d84d19a02eec7188c67d08a07db789c3822d6f5df22d918e296d1f27c4055fec2e287d328f09ea8a78a - languageName: node - linkType: hard - -"babel-plugin-polyfill-regenerator@npm:^0.6.1": - version: 0.6.2 - resolution: "babel-plugin-polyfill-regenerator@npm:0.6.2" - dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.6.2" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10/150233571072b6b3dfe946242da39cba8587b7f908d1c006f7545fc88b0e3c3018d445739beb61e7a75835f0c2751dbe884a94ff9b245ec42369d9267e0e1b3f - languageName: node - linkType: hard - -"babel-preset-current-node-syntax@npm:^1.0.0": - version: 1.0.1 - resolution: "babel-preset-current-node-syntax@npm:1.0.1" - dependencies: - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" - "@babel/plugin-syntax-bigint": "npm:^7.8.3" - "@babel/plugin-syntax-class-properties": "npm:^7.8.3" - "@babel/plugin-syntax-import-meta": "npm:^7.8.3" - "@babel/plugin-syntax-json-strings": "npm:^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" - "@babel/plugin-syntax-numeric-separator": "npm:^7.8.3" - "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" - "@babel/plugin-syntax-top-level-await": "npm:^7.8.3" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/94561959cb12bfa80867c9eeeace7c3d48d61707d33e55b4c3fdbe82fc745913eb2dbfafca62aef297421b38aadcb58550e5943f50fbcebbeefd70ce2bed4b74 - languageName: node - linkType: hard - -"babel-preset-jest@npm:^29.6.3": - version: 29.6.3 - resolution: "babel-preset-jest@npm:29.6.3" - dependencies: - babel-plugin-jest-hoist: "npm:^29.6.3" - babel-preset-current-node-syntax: "npm:^1.0.0" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10/aa4ff2a8a728d9d698ed521e3461a109a1e66202b13d3494e41eea30729a5e7cc03b3a2d56c594423a135429c37bf63a9fa8b0b9ce275298be3095a88c69f6fb - languageName: node - linkType: hard - -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 10/9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 - languageName: node - linkType: hard - -"base64-js@npm:^1.3.1": - version: 1.5.1 - resolution: "base64-js@npm:1.5.1" - checksum: 10/669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 - languageName: node - linkType: hard - -"bcrypt-pbkdf@npm:^1.0.0": - version: 1.0.2 - resolution: "bcrypt-pbkdf@npm:1.0.2" - dependencies: - tweetnacl: "npm:^0.14.3" - checksum: 10/13a4cde058250dbf1fa77a4f1b9a07d32ae2e3b9e28e88a0c7a1827835bc3482f3e478c4a0cfd4da6ff0c46dae07da1061123a995372b32cc563d9975f975404 - languageName: node - linkType: hard - -"binary-extensions@npm:^2.0.0": - version: 2.3.0 - resolution: "binary-extensions@npm:2.3.0" - checksum: 10/bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98 - languageName: node - linkType: hard - -"bl@npm:^4.1.0": - version: 4.1.0 - resolution: "bl@npm:4.1.0" - dependencies: - buffer: "npm:^5.5.0" - inherits: "npm:^2.0.4" - readable-stream: "npm:^3.4.0" - checksum: 10/b7904e66ed0bdfc813c06ea6c3e35eafecb104369dbf5356d0f416af90c1546de3b74e5b63506f0629acf5e16a6f87c3798f16233dcff086e9129383aa02ab55 - languageName: node - linkType: hard - -"blob-util@npm:^2.0.2": - version: 2.0.2 - resolution: "blob-util@npm:2.0.2" - checksum: 10/b2c5a20c677f2a6c3821cf13c5522d64af96e666bc40cce6b43f87d16e89a55e2eab2f6264ec3f36d7f810eba848aa7e2bc611e47c14eb6395136c0b0a8b29ea - languageName: node - linkType: hard - -"bluebird@npm:^3.7.2": - version: 3.7.2 - resolution: "bluebird@npm:3.7.2" - checksum: 10/007c7bad22c5d799c8dd49c85b47d012a1fe3045be57447721e6afbd1d5be43237af1db62e26cb9b0d9ba812d2e4ca3bac82f6d7e016b6b88de06ee25ceb96e7 - languageName: node - linkType: hard - -"body-parser@npm:1.20.2": - version: 1.20.2 - resolution: "body-parser@npm:1.20.2" - dependencies: - bytes: "npm:3.1.2" - content-type: "npm:~1.0.5" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:1.2.0" - http-errors: "npm:2.0.0" - iconv-lite: "npm:0.4.24" - on-finished: "npm:2.4.1" - qs: "npm:6.11.0" - raw-body: "npm:2.5.2" - type-is: "npm:~1.6.18" - unpipe: "npm:1.0.0" - checksum: 10/3cf171b82190cf91495c262b073e425fc0d9e25cc2bf4540d43f7e7bbca27d6a9eae65ca367b6ef3993eea261159d9d2ab37ce444e8979323952e12eb3df319a - languageName: node - linkType: hard - -"brace-expansion@npm:^1.1.7": - version: 1.1.11 - resolution: "brace-expansion@npm:1.1.11" - dependencies: - balanced-match: "npm:^1.0.0" - concat-map: "npm:0.0.1" - checksum: 10/faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 - languageName: node - linkType: hard - -"brace-expansion@npm:^2.0.1": - version: 2.0.1 - resolution: "brace-expansion@npm:2.0.1" - dependencies: - balanced-match: "npm:^1.0.0" - checksum: 10/a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 - languageName: node - linkType: hard - -"braces@npm:^3.0.3, braces@npm:~3.0.2": - version: 3.0.3 - resolution: "braces@npm:3.0.3" - dependencies: - fill-range: "npm:^7.1.1" - checksum: 10/fad11a0d4697a27162840b02b1fad249c1683cbc510cd5bf1a471f2f8085c046d41094308c577a50a03a579dd99d5a6b3724c4b5e8b14df2c4443844cfcda2c6 - languageName: node - linkType: hard - -"browser-assert@npm:^1.2.1": - version: 1.2.1 - resolution: "browser-assert@npm:1.2.1" - checksum: 10/8b2407cd04c1ed592cf892dec35942b7d72635829221e0788c9a16c4d2afa8b7156bc9705b1c4b32c30d88136c576fda3cbcb8f494d6f865264c706ea8798d92 - languageName: node - linkType: hard - -"browserslist@npm:^4.23.1, browserslist@npm:^4.23.3": - version: 4.23.3 - resolution: "browserslist@npm:4.23.3" - dependencies: - caniuse-lite: "npm:^1.0.30001646" - electron-to-chromium: "npm:^1.5.4" - node-releases: "npm:^2.0.18" - update-browserslist-db: "npm:^1.1.0" - bin: - browserslist: cli.js - checksum: 10/e266d18c6c6c5becf9a1a7aa264477677b9796387972e8fce34854bb33dc1666194dc28389780e5dc6566e68a95e87ece2ce222e1c4ca93c2b75b61dfebd5f1c - languageName: node - linkType: hard - -"bser@npm:2.1.1": - version: 2.1.1 - resolution: "bser@npm:2.1.1" - dependencies: - node-int64: "npm:^0.4.0" - checksum: 10/edba1b65bae682450be4117b695997972bd9a3c4dfee029cab5bcb72ae5393a79a8f909b8bc77957eb0deec1c7168670f18f4d5c556f46cdd3bca5f3b3a8d020 - languageName: node - linkType: hard - -"buffer-crc32@npm:~0.2.3": - version: 0.2.13 - resolution: "buffer-crc32@npm:0.2.13" - checksum: 10/06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c - languageName: node - linkType: hard - -"buffer-from@npm:^1.0.0": - version: 1.1.2 - resolution: "buffer-from@npm:1.1.2" - checksum: 10/0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb - languageName: node - linkType: hard - -"buffer@npm:^5.5.0, buffer@npm:^5.7.1": - version: 5.7.1 - resolution: "buffer@npm:5.7.1" - dependencies: - base64-js: "npm:^1.3.1" - ieee754: "npm:^1.1.13" - checksum: 10/997434d3c6e3b39e0be479a80288875f71cd1c07d75a3855e6f08ef848a3c966023f79534e22e415ff3a5112708ce06127277ab20e527146d55c84566405c7c6 - languageName: node - linkType: hard - -"bytes@npm:3.1.2": - version: 3.1.2 - resolution: "bytes@npm:3.1.2" - checksum: 10/a10abf2ba70c784471d6b4f58778c0beeb2b5d405148e66affa91f23a9f13d07603d0a0354667310ae1d6dc141474ffd44e2a074be0f6e2254edb8fc21445388 - languageName: node - linkType: hard - -"cacache@npm:^18.0.0": - version: 18.0.4 - resolution: "cacache@npm:18.0.4" - dependencies: - "@npmcli/fs": "npm:^3.1.0" - fs-minipass: "npm:^3.0.0" - glob: "npm:^10.2.2" - lru-cache: "npm:^10.0.1" - minipass: "npm:^7.0.3" - minipass-collect: "npm:^2.0.1" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - p-map: "npm:^4.0.0" - ssri: "npm:^10.0.0" - tar: "npm:^6.1.11" - unique-filename: "npm:^3.0.0" - checksum: 10/ca2f7b2d3003f84d362da9580b5561058ccaecd46cba661cbcff0375c90734b610520d46b472a339fd032d91597ad6ed12dde8af81571197f3c9772b5d35b104 - languageName: node - linkType: hard - -"cachedir@npm:^2.3.0": - version: 2.4.0 - resolution: "cachedir@npm:2.4.0" - checksum: 10/43198514eaa61f65b5535ed29ad651f22836fba3868ed58a6a87731f05462f317d39098fa3ac778801c25455483c9b7f32a2fcad1f690a978947431f12a0f4d0 - languageName: node - linkType: hard - -"call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": - version: 1.0.7 - resolution: "call-bind@npm:1.0.7" - dependencies: - es-define-property: "npm:^1.0.0" - es-errors: "npm:^1.3.0" - function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.4" - set-function-length: "npm:^1.2.1" - checksum: 10/cd6fe658e007af80985da5185bff7b55e12ef4c2b6f41829a26ed1eef254b1f1c12e3dfd5b2b068c6ba8b86aba62390842d81752e67dcbaec4f6f76e7113b6b7 - languageName: node - linkType: hard - -"callsites@npm:^3.0.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: 10/072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 - languageName: node - linkType: hard - -"camelcase@npm:^5.3.1": - version: 5.3.1 - resolution: "camelcase@npm:5.3.1" - checksum: 10/e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b - languageName: node - linkType: hard - -"camelcase@npm:^6.2.0": - version: 6.3.0 - resolution: "camelcase@npm:6.3.0" - checksum: 10/8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001646": - version: 1.0.30001649 - resolution: "caniuse-lite@npm:1.0.30001649" - checksum: 10/a528438a40124d9eb70b0ebacd14e331f925a73e26bf68ac15658c031e6b750b8c1f9c86047b7b9936406e419c87cbe61c9d7e5632db3aa4ca754b1496d21324 - languageName: node - linkType: hard - -"caseless@npm:~0.12.0": - version: 0.12.0 - resolution: "caseless@npm:0.12.0" - checksum: 10/ea1efdf430975fdbac3505cdd21007f7ac5aa29b6d4d1c091f965853cd1bf87e4b08ea07b31a6d688b038872b7cdf0589d9262d59c699d199585daad052aeb20 - languageName: node - linkType: hard - -"chai@npm:^5.1.1": - version: 5.1.1 - resolution: "chai@npm:5.1.1" - dependencies: - assertion-error: "npm:^2.0.1" - check-error: "npm:^2.1.1" - deep-eql: "npm:^5.0.1" - loupe: "npm:^3.1.0" - pathval: "npm:^2.0.0" - checksum: 10/ee67279a5613bd36dc1dc13660042429ae2f1dc5a9030a6abcf381345866dfb5bce7bc10b9d74c8de86b6f656489f654bbbef3f3361e06925591e6a00c72afff - languageName: node - linkType: hard - -"chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: "npm:^3.2.1" - escape-string-regexp: "npm:^1.0.5" - supports-color: "npm:^5.3.0" - checksum: 10/3d1d103433166f6bfe82ac75724951b33769675252d8417317363ef9d54699b7c3b2d46671b772b893a8e50c3ece70c4b933c73c01e81bc60ea4df9b55afa303 - languageName: node - linkType: hard - -"chalk@npm:^3.0.0": - version: 3.0.0 - resolution: "chalk@npm:3.0.0" - dependencies: - ansi-styles: "npm:^4.1.0" - supports-color: "npm:^7.1.0" - checksum: 10/37f90b31fd655fb49c2bd8e2a68aebefddd64522655d001ef417e6f955def0ed9110a867ffc878a533f2dafea5f2032433a37c8a7614969baa7f8a1cd424ddfc - languageName: node - linkType: hard - -"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": - version: 4.1.2 - resolution: "chalk@npm:4.1.2" - dependencies: - ansi-styles: "npm:^4.1.0" - supports-color: "npm:^7.1.0" - checksum: 10/cb3f3e594913d63b1814d7ca7c9bafbf895f75fbf93b92991980610dfd7b48500af4e3a5d4e3a8f337990a96b168d7eb84ee55efdce965e2ee8efc20f8c8f139 - languageName: node - linkType: hard - -"char-regex@npm:^1.0.2": - version: 1.0.2 - resolution: "char-regex@npm:1.0.2" - checksum: 10/1ec5c2906adb9f84e7f6732a40baef05d7c85401b82ffcbc44b85fbd0f7a2b0c2a96f2eb9cf55cae3235dc12d4023003b88f09bcae8be9ae894f52ed746f4d48 - languageName: node - linkType: hard - -"check-error@npm:^2.1.1": - version: 2.1.1 - resolution: "check-error@npm:2.1.1" - checksum: 10/d785ed17b1d4a4796b6e75c765a9a290098cf52ff9728ce0756e8ffd4293d2e419dd30c67200aee34202463b474306913f2fcfaf1890641026d9fc6966fea27a - languageName: node - linkType: hard - -"check-more-types@npm:^2.24.0": - version: 2.24.0 - resolution: "check-more-types@npm:2.24.0" - checksum: 10/67c5288443bd73a81638e1185f8c5410d0edf6458c086149ef1cda95c07535b5dd5c11c426dc3ee8f0de0f3244aa2d4f2ba1937aaa8a94995589cdcce0bbccb9 - languageName: node - linkType: hard - -"chokidar@npm:^3.6.0": - version: 3.6.0 - resolution: "chokidar@npm:3.6.0" - dependencies: - anymatch: "npm:~3.1.2" - braces: "npm:~3.0.2" - fsevents: "npm:~2.3.2" - glob-parent: "npm:~5.1.2" - is-binary-path: "npm:~2.1.0" - is-glob: "npm:~4.0.1" - normalize-path: "npm:~3.0.0" - readdirp: "npm:~3.6.0" - dependenciesMeta: - fsevents: - optional: true - checksum: 10/c327fb07704443f8d15f7b4a7ce93b2f0bc0e6cea07ec28a7570aa22cd51fcf0379df589403976ea956c369f25aa82d84561947e227cd925902e1751371658df - languageName: node - linkType: hard - -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: 10/c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f - languageName: node - linkType: hard - -"ci-info@npm:^3.2.0": - version: 3.9.0 - resolution: "ci-info@npm:3.9.0" - checksum: 10/75bc67902b4d1c7b435497adeb91598f6d52a3389398e44294f6601b20cfef32cf2176f7be0eb961d9e085bb333a8a5cae121cb22f81cf238ae7f58eb80e9397 - languageName: node - linkType: hard - -"citty@npm:^0.1.6": - version: 0.1.6 - resolution: "citty@npm:0.1.6" - dependencies: - consola: "npm:^3.2.3" - checksum: 10/3208947e73abb699a12578ee2bfee254bf8dd1ce0d5698e8a298411cabf16bd3620d63433aef5bd88cdb2b9da71aef18adefa3b4ffd18273bb62dd1d28c344f5 - languageName: node - linkType: hard - -"cjs-module-lexer@npm:^1.0.0": - version: 1.3.1 - resolution: "cjs-module-lexer@npm:1.3.1" - checksum: 10/6629188d5ce74b57e5dce2222db851b5496a8d65b533a05957fb24089a3cec8d769378013c375a954c5a0f7522cde6a36d5a65bfd88f5575cb2de3176046fa8e - languageName: node - linkType: hard - -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 10/2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 - languageName: node - linkType: hard - -"cli-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-cursor@npm:3.1.0" - dependencies: - restore-cursor: "npm:^3.1.0" - checksum: 10/2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 - languageName: node - linkType: hard - -"cli-spinners@npm:^2.5.0": - version: 2.9.2 - resolution: "cli-spinners@npm:2.9.2" - checksum: 10/a0a863f442df35ed7294424f5491fa1756bd8d2e4ff0c8736531d886cec0ece4d85e8663b77a5afaf1d296e3cbbebff92e2e99f52bbea89b667cbe789b994794 - languageName: node - linkType: hard - -"cli-table3@npm:~0.6.1": - version: 0.6.5 - resolution: "cli-table3@npm:0.6.5" - dependencies: - "@colors/colors": "npm:1.5.0" - string-width: "npm:^4.2.0" - dependenciesMeta: - "@colors/colors": - optional: true - checksum: 10/8dca71256f6f1367bab84c33add3f957367c7c43750a9828a4212ebd31b8df76bd7419d386e3391ac7419698a8540c25f1a474584028f35b170841cde2e055c5 - languageName: node - linkType: hard - -"cli-truncate@npm:^2.1.0": - version: 2.1.0 - resolution: "cli-truncate@npm:2.1.0" - dependencies: - slice-ansi: "npm:^3.0.0" - string-width: "npm:^4.2.0" - checksum: 10/976f1887de067a8cd6ec830a7a8508336aebe6cec79b521d98ed13f67ef073b637f7305675b6247dd22f9e9cf045ec55fe746c7bdb288fbe8db0dfdc9fd52e55 - languageName: node - linkType: hard - -"cliui@npm:^8.0.1": - version: 8.0.1 - resolution: "cliui@npm:8.0.1" - dependencies: - string-width: "npm:^4.2.0" - strip-ansi: "npm:^6.0.1" - wrap-ansi: "npm:^7.0.0" - checksum: 10/eaa5561aeb3135c2cddf7a3b3f562fc4238ff3b3fc666869ef2adf264be0f372136702f16add9299087fb1907c2e4ec5dbfe83bd24bce815c70a80c6c1a2e950 - languageName: node - linkType: hard - -"clone-deep@npm:^4.0.1": - version: 4.0.1 - resolution: "clone-deep@npm:4.0.1" - dependencies: - is-plain-object: "npm:^2.0.4" - kind-of: "npm:^6.0.2" - shallow-clone: "npm:^3.0.0" - checksum: 10/770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2 - languageName: node - linkType: hard - -"clone@npm:^1.0.2": - version: 1.0.4 - resolution: "clone@npm:1.0.4" - checksum: 10/d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd - languageName: node - linkType: hard - -"co@npm:^4.6.0": - version: 4.6.0 - resolution: "co@npm:4.6.0" - checksum: 10/a5d9f37091c70398a269e625cedff5622f200ed0aa0cff22ee7b55ed74a123834b58711776eb0f1dc58eb6ebbc1185aa7567b57bd5979a948c6e4f85073e2c05 - languageName: node - linkType: hard - -"collect-v8-coverage@npm:^1.0.0": - version: 1.0.2 - resolution: "collect-v8-coverage@npm:1.0.2" - checksum: 10/30ea7d5c9ee51f2fdba4901d4186c5b7114a088ef98fd53eda3979da77eed96758a2cae81cc6d97e239aaea6065868cf908b24980663f7b7e96aa291b3e12fa4 - languageName: node - linkType: hard - -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: "npm:1.1.3" - checksum: 10/ffa319025045f2973919d155f25e7c00d08836b6b33ea2d205418c59bd63a665d713c52d9737a9e0fe467fb194b40fbef1d849bae80d674568ee220a31ef3d10 - languageName: node - linkType: hard - -"color-convert@npm:^2.0.1": - version: 2.0.1 - resolution: "color-convert@npm:2.0.1" - dependencies: - color-name: "npm:~1.1.4" - checksum: 10/fa00c91b4332b294de06b443923246bccebe9fab1b253f7fe1772d37b06a2269b4039a85e309abe1fe11b267b11c08d1d0473fda3badd6167f57313af2887a64 - languageName: node - linkType: hard - -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 10/09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d - languageName: node - linkType: hard - -"color-name@npm:~1.1.4": - version: 1.1.4 - resolution: "color-name@npm:1.1.4" - checksum: 10/b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 - languageName: node - linkType: hard - -"colorette@npm:^2.0.16": - version: 2.0.20 - resolution: "colorette@npm:2.0.20" - checksum: 10/0b8de48bfa5d10afc160b8eaa2b9938f34a892530b2f7d7897e0458d9535a066e3998b49da9d21161c78225b272df19ae3a64d6df28b4c9734c0e55bbd02406f - languageName: node - linkType: hard - -"combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": - version: 1.0.8 - resolution: "combined-stream@npm:1.0.8" - dependencies: - delayed-stream: "npm:~1.0.0" - checksum: 10/2e969e637d05d09fa50b02d74c83a1186f6914aae89e6653b62595cc75a221464f884f55f231b8f4df7a49537fba60bdc0427acd2bf324c09a1dbb84837e36e4 - languageName: node - linkType: hard - -"commander@npm:^6.2.1": - version: 6.2.1 - resolution: "commander@npm:6.2.1" - checksum: 10/25b88c2efd0380c84f7844b39cf18510da7bfc5013692d68cdc65f764a1c34e6c8a36ea6d72b6620e3710a930cf8fab2695bdec2bf7107a0f4fa30a3ef3b7d0e - languageName: node - linkType: hard - -"common-tags@npm:^1.8.0": - version: 1.8.2 - resolution: "common-tags@npm:1.8.2" - checksum: 10/c665d0f463ee79dda801471ad8da6cb33ff7332ba45609916a508ad3d77ba07ca9deeb452e83f81f24c2b081e2c1315347f23d239210e63d1c5e1a0c7c019fe2 - languageName: node - linkType: hard - -"commondir@npm:^1.0.1": - version: 1.0.1 - resolution: "commondir@npm:1.0.1" - checksum: 10/4620bc4936a4ef12ce7dfcd272bb23a99f2ad68889a4e4ad766c9f8ad21af982511934d6f7050d4a8bde90011b1c15d56e61a1b4576d9913efbf697a20172d6c - languageName: node - linkType: hard - -"concat-map@npm:0.0.1": - version: 0.0.1 - resolution: "concat-map@npm:0.0.1" - checksum: 10/9680699c8e2b3af0ae22592cb764acaf973f292a7b71b8a06720233011853a58e256c89216a10cbe889727532fd77f8bcd49a760cedfde271b8e006c20e079f2 - languageName: node - linkType: hard - -"confbox@npm:^0.1.7": - version: 0.1.7 - resolution: "confbox@npm:0.1.7" - checksum: 10/3086687b9a2a70d44d4b40a2d376536fe7e1baec4a2a34261b21b8a836026b419cbf89ded6054216631823e7d63c415dad4b4d53591d6edbb202bb9820dfa6fa - languageName: node - linkType: hard - -"consola@npm:^3.2.3": - version: 3.2.3 - resolution: "consola@npm:3.2.3" - checksum: 10/02972dcb048c337357a3628438e5976b8e45bcec22fdcfbe9cd17622992953c4d695d5152f141464a02deac769b1d23028e8ac87f56483838df7a6bbf8e0f5a2 - languageName: node - linkType: hard - -"content-disposition@npm:0.5.4": - version: 0.5.4 - resolution: "content-disposition@npm:0.5.4" - dependencies: - safe-buffer: "npm:5.2.1" - checksum: 10/b7f4ce176e324f19324be69b05bf6f6e411160ac94bc523b782248129eb1ef3be006f6cff431aaea5e337fe5d176ce8830b8c2a1b721626ead8933f0cbe78720 - languageName: node - linkType: hard - -"content-type@npm:~1.0.4, content-type@npm:~1.0.5": - version: 1.0.5 - resolution: "content-type@npm:1.0.5" - checksum: 10/585847d98dc7fb8035c02ae2cb76c7a9bd7b25f84c447e5ed55c45c2175e83617c8813871b4ee22f368126af6b2b167df655829007b21aa10302873ea9c62662 - languageName: node - linkType: hard - -"convert-source-map@npm:^2.0.0": - version: 2.0.0 - resolution: "convert-source-map@npm:2.0.0" - checksum: 10/c987be3ec061348cdb3c2bfb924bec86dea1eacad10550a85ca23edb0fe3556c3a61c7399114f3331ccb3499d7fd0285ab24566e5745929412983494c3926e15 - languageName: node - linkType: hard - -"cookie-signature@npm:1.0.6": - version: 1.0.6 - resolution: "cookie-signature@npm:1.0.6" - checksum: 10/f4e1b0a98a27a0e6e66fd7ea4e4e9d8e038f624058371bf4499cfcd8f3980be9a121486995202ba3fca74fbed93a407d6d54d43a43f96fd28d0bd7a06761591a - languageName: node - linkType: hard - -"cookie@npm:0.6.0": - version: 0.6.0 - resolution: "cookie@npm:0.6.0" - checksum: 10/c1f8f2ea7d443b9331680598b0ae4e6af18a618c37606d1bbdc75bec8361cce09fe93e727059a673f2ba24467131a9fb5a4eec76bb1b149c1b3e1ccb268dc583 - languageName: node - linkType: hard - -"core-js-compat@npm:^3.37.1, core-js-compat@npm:^3.38.0": - version: 3.38.0 - resolution: "core-js-compat@npm:3.38.0" - dependencies: - browserslist: "npm:^4.23.3" - checksum: 10/7ebdca6b305c9c470980e1f7e7a3d759add7cb754bff62926242907ee4d1d4e8bb13f70eb9a7d7769e0f63aec3f4cca83abf60f502286853b45d4b63a01c25ed - languageName: node - linkType: hard - -"core-util-is@npm:1.0.2": - version: 1.0.2 - resolution: "core-util-is@npm:1.0.2" - checksum: 10/d0f7587346b44a1fe6c269267e037dd34b4787191e473c3e685f507229d88561c40eb18872fabfff02977301815d474300b7bfbd15396c13c5377393f7e87ec3 - languageName: node - linkType: hard - -"create-jest@npm:^29.7.0": - version: 29.7.0 - resolution: "create-jest@npm:29.7.0" - dependencies: - "@jest/types": "npm:^29.6.3" - chalk: "npm:^4.0.0" - exit: "npm:^0.1.2" - graceful-fs: "npm:^4.2.9" - jest-config: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - prompts: "npm:^2.0.1" - bin: - create-jest: bin/create-jest.js - checksum: 10/847b4764451672b4174be4d5c6d7d63442ec3aa5f3de52af924e4d996d87d7801c18e125504f25232fc75840f6625b3ac85860fac6ce799b5efae7bdcaf4a2b7 - languageName: node - linkType: hard - -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" - dependencies: - path-key: "npm:^3.1.0" - shebang-command: "npm:^2.0.0" - which: "npm:^2.0.1" - checksum: 10/e1a13869d2f57d974de0d9ef7acbf69dc6937db20b918525a01dacb5032129bd552d290d886d981e99f1b624cb03657084cc87bd40f115c07ecf376821c729ce - 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" - checksum: 10/f6d38088d870a961794a2580b2b2af1027731bb43261cfdce14f19238a88664b351cc8978abc20f06cc6bbde725699dec8deb6fe9816b139fc3f2af28719e774 - languageName: node - linkType: hard - -"cssom@npm:^0.5.0": - version: 0.5.0 - resolution: "cssom@npm:0.5.0" - checksum: 10/b502a315b1ce020a692036cc38cb36afa44157219b80deadfa040ab800aa9321fcfbecf02fd2e6ec87db169715e27978b4ab3701f916461e9cf7808899f23b54 - languageName: node - linkType: hard - -"cssom@npm:~0.3.6": - version: 0.3.8 - resolution: "cssom@npm:0.3.8" - checksum: 10/49eacc88077555e419646c0ea84ddc73c97e3a346ad7cb95e22f9413a9722d8964b91d781ce21d378bd5ae058af9a745402383fa4e35e9cdfd19654b63f892a9 - languageName: node - linkType: hard - -"cssstyle@npm:^2.3.0": - version: 2.3.0 - resolution: "cssstyle@npm:2.3.0" - dependencies: - cssom: "npm:~0.3.6" - checksum: 10/46f7f05a153446c4018b0454ee1464b50f606cb1803c90d203524834b7438eb52f3b173ba0891c618f380ced34ee12020675dc0052a7f1be755fe4ebc27ee977 - languageName: node - linkType: hard - -"csstype@npm:^3.0.2": - version: 3.1.3 - resolution: "csstype@npm:3.1.3" - checksum: 10/f593cce41ff5ade23f44e77521e3a1bcc2c64107041e1bf6c3c32adc5187d0d60983292fda326154d20b01079e24931aa5b08e4467cc488b60bb1e7f6d478ade - languageName: node - linkType: hard - -"cypress@npm:^13.6.4": - version: 13.13.2 - resolution: "cypress@npm:13.13.2" - dependencies: - "@cypress/request": "npm:^3.0.1" - "@cypress/xvfb": "npm:^1.2.4" - "@types/sinonjs__fake-timers": "npm:8.1.1" - "@types/sizzle": "npm:^2.3.2" - arch: "npm:^2.2.0" - blob-util: "npm:^2.0.2" - bluebird: "npm:^3.7.2" - buffer: "npm:^5.7.1" - cachedir: "npm:^2.3.0" - chalk: "npm:^4.1.0" - check-more-types: "npm:^2.24.0" - cli-cursor: "npm:^3.1.0" - cli-table3: "npm:~0.6.1" - commander: "npm:^6.2.1" - common-tags: "npm:^1.8.0" - dayjs: "npm:^1.10.4" - debug: "npm:^4.3.4" - enquirer: "npm:^2.3.6" - eventemitter2: "npm:6.4.7" - execa: "npm:4.1.0" - executable: "npm:^4.1.1" - extract-zip: "npm:2.0.1" - figures: "npm:^3.2.0" - fs-extra: "npm:^9.1.0" - getos: "npm:^3.2.1" - is-ci: "npm:^3.0.1" - is-installed-globally: "npm:~0.4.0" - lazy-ass: "npm:^1.6.0" - listr2: "npm:^3.8.3" - lodash: "npm:^4.17.21" - log-symbols: "npm:^4.0.0" - minimist: "npm:^1.2.8" - ospath: "npm:^1.2.2" - pretty-bytes: "npm:^5.6.0" - process: "npm:^0.11.10" - proxy-from-env: "npm:1.0.0" - request-progress: "npm:^3.0.0" - semver: "npm:^7.5.3" - supports-color: "npm:^8.1.1" - tmp: "npm:~0.2.3" - untildify: "npm:^4.0.0" - yauzl: "npm:^2.10.0" - bin: - cypress: bin/cypress - checksum: 10/ac33d787ecf29c6d1b028fba8db5cb0904aaa343f1e969cef91e0f0ca43987315ef4ef4287583d9c6f09098164e89016891d6183a088c53a2f1db6c42c7f736a - languageName: node - linkType: hard - -"dashdash@npm:^1.12.0": - version: 1.14.1 - resolution: "dashdash@npm:1.14.1" - dependencies: - assert-plus: "npm:^1.0.0" - checksum: 10/137b287fa021201ce100cef772c8eeeaaafdd2aa7282864022acf3b873021e54cb809e9c060fa164840bf54ff72d00d6e2d8da1ee5a86d7200eeefa1123a8f7f - languageName: node - linkType: hard - -"data-urls@npm:^3.0.2": - version: 3.0.2 - resolution: "data-urls@npm:3.0.2" - dependencies: - abab: "npm:^2.0.6" - whatwg-mimetype: "npm:^3.0.0" - whatwg-url: "npm:^11.0.0" - checksum: 10/033fc3dd0fba6d24bc9a024ddcf9923691dd24f90a3d26f6545d6a2f71ec6956f93462f2cdf2183cc46f10dc01ed3bcb36731a8208456eb1a08147e571fe2a76 - languageName: node - linkType: hard - -"dayjs@npm:^1.10.4": - version: 1.11.12 - resolution: "dayjs@npm:1.11.12" - checksum: 10/8ee7c1e14961fd08d40b788d0c0e930dc6288b3d32911bb911b2fb31bb703c262788164fbe678ee9e50e2a35268d667b8c8ba43fd1806771c1f404c300a2b428 - languageName: node - linkType: hard - -"debug@npm:2.6.9": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: "npm:2.0.0" - checksum: 10/e07005f2b40e04f1bd14a3dd20520e9c4f25f60224cb006ce9d6781732c917964e9ec029fc7f1a151083cd929025ad5133814d4dc624a9aaf020effe4914ed14 - languageName: node - linkType: hard - -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": - version: 4.3.6 - resolution: "debug@npm:4.3.6" - dependencies: - ms: "npm:2.1.2" - peerDependenciesMeta: - supports-color: - optional: true - checksum: 10/d3adb9af7d57a9e809a68f404490cf776122acca16e6359a2702c0f462e510e91f9765c07f707b8ab0d91e03bad57328f3256f5082631cefb5393d0394d50fb7 - languageName: node - linkType: hard - -"debug@npm:^3.1.0": - version: 3.2.7 - resolution: "debug@npm:3.2.7" - dependencies: - ms: "npm:^2.1.1" - checksum: 10/d86fd7be2b85462297ea16f1934dc219335e802f629ca9a69b63ed8ed041dda492389bb2ee039217c02e5b54792b1c51aa96ae954cf28634d363a2360c7a1639 - languageName: node - linkType: hard - -"decimal.js@npm:^10.4.2": - version: 10.4.3 - resolution: "decimal.js@npm:10.4.3" - checksum: 10/de663a7bc4d368e3877db95fcd5c87b965569b58d16cdc4258c063d231ca7118748738df17cd638f7e9dd0be8e34cec08d7234b20f1f2a756a52fc5a38b188d0 - languageName: node - linkType: hard - -"dedent@npm:^1.0.0": - version: 1.5.3 - resolution: "dedent@npm:1.5.3" - peerDependencies: - babel-plugin-macros: ^3.1.0 - peerDependenciesMeta: - babel-plugin-macros: - optional: true - checksum: 10/e5277f6268f288649503125b781a7b7a2c9b22d011139688c0b3619fe40121e600eb1f077c891938d4b2428bdb6326cc3c77a763e4b1cc681bd9666ab1bad2a1 - languageName: node - linkType: hard - -"deep-eql@npm:^5.0.1": - version: 5.0.2 - resolution: "deep-eql@npm:5.0.2" - checksum: 10/a529b81e2ef8821621d20a36959a0328873a3e49d393ad11f8efe8559f31239494c2eb889b80342808674c475802ba95b9d6c4c27641b9a029405104c1b59fcf - 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-is@npm:^0.1.3": - version: 0.1.4 - resolution: "deep-is@npm:0.1.4" - checksum: 10/ec12d074aef5ae5e81fa470b9317c313142c9e8e2afe3f8efa124db309720db96d1d222b82b84c834e5f87e7a614b44a4684b6683583118b87c833b3be40d4d8 - languageName: node - linkType: hard - -"deepmerge@npm:^4.2.2": - version: 4.3.1 - resolution: "deepmerge@npm:4.3.1" - checksum: 10/058d9e1b0ff1a154468bf3837aea436abcfea1ba1d165ddaaf48ca93765fdd01a30d33c36173da8fbbed951dd0a267602bc782fe288b0fc4b7e1e7091afc4529 - languageName: node - linkType: hard - -"defaults@npm:^1.0.3": - version: 1.0.4 - resolution: "defaults@npm:1.0.4" - dependencies: - clone: "npm:^1.0.2" - checksum: 10/3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a - 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-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 - -"defu@npm:^6.1.4": - version: 6.1.4 - resolution: "defu@npm:6.1.4" - checksum: 10/aeffdb47300f45b4fdef1c5bd3880ac18ea7a1fd5b8a8faf8df29350ff03bf16dd34f9800205cab513d476e4c0a3783aa0cff0a433aff0ac84a67ddc4c8a2d64 - languageName: node - linkType: hard - -"delayed-stream@npm:~1.0.0": - version: 1.0.0 - resolution: "delayed-stream@npm:1.0.0" - checksum: 10/46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 - languageName: node - linkType: hard - -"depd@npm:2.0.0": - version: 2.0.0 - resolution: "depd@npm:2.0.0" - checksum: 10/c0c8ff36079ce5ada64f46cc9d6fd47ebcf38241105b6e0c98f412e8ad91f084bcf906ff644cc3a4bd876ca27a62accb8b0fff72ea6ed1a414b89d8506f4a5ca - languageName: node - linkType: hard - -"dequal@npm:^2.0.2, dequal@npm:^2.0.3": - version: 2.0.3 - resolution: "dequal@npm:2.0.3" - checksum: 10/6ff05a7561f33603df87c45e389c9ac0a95e3c056be3da1a0c4702149e3a7f6fe5ffbb294478687ba51a9e95f3a60e8b6b9005993acd79c292c7d15f71964b6b - languageName: node - linkType: hard - -"destroy@npm:1.2.0": - version: 1.2.0 - resolution: "destroy@npm:1.2.0" - checksum: 10/0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 - languageName: node - linkType: hard - -"detect-indent@npm:^6.1.0": - version: 6.1.0 - resolution: "detect-indent@npm:6.1.0" - checksum: 10/ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d - languageName: node - linkType: hard - -"detect-newline@npm:^3.0.0": - version: 3.1.0 - resolution: "detect-newline@npm:3.1.0" - checksum: 10/ae6cd429c41ad01b164c59ea36f264a2c479598e61cba7c99da24175a7ab80ddf066420f2bec9a1c57a6bead411b4655ff15ad7d281c000a89791f48cbe939e7 - languageName: node - linkType: hard - -"diff-sequences@npm:^29.6.3": - version: 29.6.3 - resolution: "diff-sequences@npm:29.6.3" - checksum: 10/179daf9d2f9af5c57ad66d97cb902a538bcf8ed64963fa7aa0c329b3de3665ce2eb6ffdc2f69f29d445fa4af2517e5e55e5b6e00c00a9ae4f43645f97f7078cb - languageName: node - linkType: hard - -"dir-glob@npm:^3.0.1": - version: 3.0.1 - resolution: "dir-glob@npm:3.0.1" - dependencies: - path-type: "npm:^4.0.0" - checksum: 10/fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 - languageName: node - linkType: hard - -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: "npm:^2.0.2" - checksum: 10/b4b28f1df5c563f7d876e7461254a4597b8cabe915abe94d7c5d1633fed263fcf9a85e8d3836591fc2d040108e822b0d32758e5ec1fe31c590dc7e08086e3e48 - 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" - checksum: 10/83d3371f8226487fbad36e160d44f1d9017fb26d46faba6a06fcad15f34633fc827b8c3e99d49f71d5f3253d866e2131826866fd0a3c86626f8eccfc361881ff - languageName: node - linkType: hard - -"domexception@npm:^4.0.0": - version: 4.0.0 - resolution: "domexception@npm:4.0.0" - dependencies: - webidl-conversions: "npm:^7.0.0" - checksum: 10/4ed443227d2871d76c58d852b2e93c68e0443815b2741348f20881bedee8c1ad4f9bfc5d30c7dec433cd026b57da63407c010260b1682fef4c8847e7181ea43f - languageName: node - linkType: hard - -"eastasianwidth@npm:^0.2.0": - version: 0.2.0 - resolution: "eastasianwidth@npm:0.2.0" - checksum: 10/9b1d3e1baefeaf7d70799db8774149cef33b97183a6addceeba0cf6b85ba23ee2686f302f14482006df32df75d32b17c509c143a3689627929e4a8efaf483952 - languageName: node - linkType: hard - -"ecc-jsbn@npm:~0.1.1": - version: 0.1.2 - resolution: "ecc-jsbn@npm:0.1.2" - dependencies: - jsbn: "npm:~0.1.0" - safer-buffer: "npm:^2.1.0" - checksum: 10/d43591f2396196266e186e6d6928038cc11c76c3699a912cb9c13757060f7bbc7f17f47c4cb16168cdeacffc7965aef021142577e646fb3cb88810c15173eb57 - languageName: node - linkType: hard - -"ee-first@npm:1.1.1": - version: 1.1.1 - resolution: "ee-first@npm:1.1.1" - checksum: 10/1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.5.4": - version: 1.5.4 - resolution: "electron-to-chromium@npm:1.5.4" - checksum: 10/ce64db25c399d33830e74e58bbc5ab7c06948669e204b6508e98c278ddaead1da1cbb356d15b55eb659f89d4d7bcf00944f08f96e886f1d3d065ba11744c5633 - languageName: node - linkType: hard - -"emittery@npm:^0.13.1": - version: 0.13.1 - resolution: "emittery@npm:0.13.1" - checksum: 10/fbe214171d878b924eedf1757badf58a5dce071cd1fa7f620fa841a0901a80d6da47ff05929d53163105e621ce11a71b9d8acb1148ffe1745e045145f6e69521 - languageName: node - linkType: hard - -"emoji-regex@npm:^8.0.0": - version: 8.0.0 - resolution: "emoji-regex@npm:8.0.0" - checksum: 10/c72d67a6821be15ec11997877c437491c313d924306b8da5d87d2a2bcc2cec9903cb5b04ee1a088460501d8e5b44f10df82fdc93c444101a7610b80c8b6938e1 - languageName: node - linkType: hard - -"emoji-regex@npm:^9.2.2": - version: 9.2.2 - resolution: "emoji-regex@npm:9.2.2" - checksum: 10/915acf859cea7131dac1b2b5c9c8e35c4849e325a1d114c30adb8cd615970f6dca0e27f64f3a4949d7d6ed86ecd79a1c5c63f02e697513cddd7b5835c90948b8 - languageName: node - linkType: hard - -"encodeurl@npm:~1.0.2": - version: 1.0.2 - resolution: "encodeurl@npm:1.0.2" - checksum: 10/e50e3d508cdd9c4565ba72d2012e65038e5d71bdc9198cb125beb6237b5b1ade6c0d343998da9e170fb2eae52c1bed37d4d6d98a46ea423a0cddbed5ac3f780c - languageName: node - linkType: hard - -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: "npm:^0.6.2" - checksum: 10/bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f - languageName: node - linkType: hard - -"end-of-stream@npm:^1.1.0": - version: 1.4.4 - resolution: "end-of-stream@npm:1.4.4" - dependencies: - once: "npm:^1.4.0" - checksum: 10/530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b - languageName: node - linkType: hard - -"enquirer@npm:^2.3.6": - version: 2.4.1 - resolution: "enquirer@npm:2.4.1" - dependencies: - ansi-colors: "npm:^4.1.1" - strip-ansi: "npm:^6.0.1" - checksum: 10/b3726486cd98f0d458a851a03326a2a5dd4d84f37ff94ff2a2960c915e0fc865865da3b78f0877dc36ac5c1189069eca603e82ec63d5bc6b0dd9985bf6426d7a - languageName: node - linkType: hard - -"entities@npm:^4.4.0": - version: 4.5.0 - resolution: "entities@npm:4.5.0" - checksum: 10/ede2a35c9bce1aeccd055a1b445d41c75a14a2bb1cd22e242f20cf04d236cdcd7f9c859eb83f76885327bfae0c25bf03303665ee1ce3d47c5927b98b0e3e3d48 - languageName: node - linkType: hard - -"env-paths@npm:^2.2.0": - version: 2.2.1 - resolution: "env-paths@npm:2.2.1" - checksum: 10/65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e - languageName: node - linkType: hard - -"envinfo@npm:^7.7.3": - version: 7.13.0 - resolution: "envinfo@npm:7.13.0" - bin: - envinfo: dist/cli.js - checksum: 10/450c962053880f46852119cf89f4412cabd6d465ff5b74cf64e74e9da3a27ebd9e901944a5c4b0bf62950ad25025552282cbde6c00a5a9af0980dd001720fcbb - languageName: node - linkType: hard - -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 10/1d20d825cdcce8d811bfbe86340f4755c02655a7feb2f13f8c880566d9d72a3f6c92c192a6867632e490d6da67b678271f46e01044996a6443e870331100dfdd - languageName: node - linkType: hard - -"error-ex@npm:^1.3.1": - version: 1.3.2 - resolution: "error-ex@npm:1.3.2" - dependencies: - is-arrayish: "npm:^0.2.1" - checksum: 10/d547740aa29c34e753fb6fed2c5de81802438529c12b3673bd37b6bb1fe49b9b7abdc3c11e6062fe625d8a296b3cf769a80f878865e25e685f787763eede3ffb - languageName: node - linkType: hard - -"es-define-property@npm:^1.0.0": - version: 1.0.0 - resolution: "es-define-property@npm:1.0.0" - dependencies: - get-intrinsic: "npm:^1.2.4" - checksum: 10/f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 - 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-module-lexer@npm:^1.5.0": - version: 1.5.4 - resolution: "es-module-lexer@npm:1.5.4" - checksum: 10/f29c7c97a58eb17640dcbd71bd6ef754ad4f58f95c3073894573d29dae2cad43ecd2060d97ed5b866dfb7804d5590fb7de1d2c5339a5fceae8bd60b580387fc5 - languageName: node - linkType: hard - -"esbuild-register@npm:^3.5.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/4ae1a016e3dad5b53c3d68cf07e31d8c1cec1a0b584038ece726097ac80bd33ab48fb224c766c9b341c04793837e652461eaca9327a116e7564f553b61ccca71 - languageName: node - linkType: hard - -"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0": - version: 0.23.0 - resolution: "esbuild@npm:0.23.0" - dependencies: - "@esbuild/aix-ppc64": "npm:0.23.0" - "@esbuild/android-arm": "npm:0.23.0" - "@esbuild/android-arm64": "npm:0.23.0" - "@esbuild/android-x64": "npm:0.23.0" - "@esbuild/darwin-arm64": "npm:0.23.0" - "@esbuild/darwin-x64": "npm:0.23.0" - "@esbuild/freebsd-arm64": "npm:0.23.0" - "@esbuild/freebsd-x64": "npm:0.23.0" - "@esbuild/linux-arm": "npm:0.23.0" - "@esbuild/linux-arm64": "npm:0.23.0" - "@esbuild/linux-ia32": "npm:0.23.0" - "@esbuild/linux-loong64": "npm:0.23.0" - "@esbuild/linux-mips64el": "npm:0.23.0" - "@esbuild/linux-ppc64": "npm:0.23.0" - "@esbuild/linux-riscv64": "npm:0.23.0" - "@esbuild/linux-s390x": "npm:0.23.0" - "@esbuild/linux-x64": "npm:0.23.0" - "@esbuild/netbsd-x64": "npm:0.23.0" - "@esbuild/openbsd-arm64": "npm:0.23.0" - "@esbuild/openbsd-x64": "npm:0.23.0" - "@esbuild/sunos-x64": "npm:0.23.0" - "@esbuild/win32-arm64": "npm:0.23.0" - "@esbuild/win32-ia32": "npm:0.23.0" - "@esbuild/win32-x64": "npm:0.23.0" - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-arm64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 10/d3d91bf9ca73ba33966fc54cabb321eca770a5e2ff5b34d67e4235c94560cfd881803e39fcaa31d842579d10600da5201c5f597f8438679f6db856f75ded7124 - languageName: node - linkType: hard - -"esbuild@npm:^0.21.3": - version: 0.21.5 - resolution: "esbuild@npm:0.21.5" - dependencies: - "@esbuild/aix-ppc64": "npm:0.21.5" - "@esbuild/android-arm": "npm:0.21.5" - "@esbuild/android-arm64": "npm:0.21.5" - "@esbuild/android-x64": "npm:0.21.5" - "@esbuild/darwin-arm64": "npm:0.21.5" - "@esbuild/darwin-x64": "npm:0.21.5" - "@esbuild/freebsd-arm64": "npm:0.21.5" - "@esbuild/freebsd-x64": "npm:0.21.5" - "@esbuild/linux-arm": "npm:0.21.5" - "@esbuild/linux-arm64": "npm:0.21.5" - "@esbuild/linux-ia32": "npm:0.21.5" - "@esbuild/linux-loong64": "npm:0.21.5" - "@esbuild/linux-mips64el": "npm:0.21.5" - "@esbuild/linux-ppc64": "npm:0.21.5" - "@esbuild/linux-riscv64": "npm:0.21.5" - "@esbuild/linux-s390x": "npm:0.21.5" - "@esbuild/linux-x64": "npm:0.21.5" - "@esbuild/netbsd-x64": "npm:0.21.5" - "@esbuild/openbsd-x64": "npm:0.21.5" - "@esbuild/sunos-x64": "npm:0.21.5" - "@esbuild/win32-arm64": "npm:0.21.5" - "@esbuild/win32-ia32": "npm:0.21.5" - "@esbuild/win32-x64": "npm:0.21.5" - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 10/d2ff2ca84d30cce8e871517374d6c2290835380dc7cd413b2d49189ed170d45e407be14de2cb4794cf76f75cf89955c4714726ebd3de7444b3046f5cab23ab6b - languageName: node - linkType: hard - -"escalade@npm:^3.1.1, escalade@npm:^3.1.2": - version: 3.1.2 - resolution: "escalade@npm:3.1.2" - checksum: 10/a1e07fea2f15663c30e40b9193d658397846ffe28ce0a3e4da0d8e485fedfeca228ab846aee101a05015829adf39f9934ff45b2a3fca47bed37a29646bd05cd3 - languageName: node - linkType: hard - -"escape-html@npm:~1.0.3": - version: 1.0.3 - resolution: "escape-html@npm:1.0.3" - checksum: 10/6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 10/6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^2.0.0": - version: 2.0.0 - resolution: "escape-string-regexp@npm:2.0.0" - checksum: 10/9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395 - languageName: node - linkType: hard - -"escape-string-regexp@npm:^4.0.0": - version: 4.0.0 - resolution: "escape-string-regexp@npm:4.0.0" - checksum: 10/98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 - languageName: node - linkType: hard - -"escodegen@npm:^2.0.0, escodegen@npm:^2.1.0": - version: 2.1.0 - resolution: "escodegen@npm:2.1.0" - dependencies: - esprima: "npm:^4.0.1" - estraverse: "npm:^5.2.0" - esutils: "npm:^2.0.2" - source-map: "npm:~0.6.1" - dependenciesMeta: - source-map: - optional: true - bin: - escodegen: bin/escodegen.js - esgenerate: bin/esgenerate.js - checksum: 10/47719a65b2888b4586e3fa93769068b275961c13089e90d5d01a96a6e8e95871b1c3893576814c8fbf08a4a31a496f37e7b2c937cf231270f4d81de012832c7c - languageName: node - linkType: hard - -"eslint-plugin-react-hooks@npm:^4.6.0": - version: 4.6.2 - resolution: "eslint-plugin-react-hooks@npm:4.6.2" - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 10/5a0680941f34e70cf505bcb6082df31a3e445d193ee95a88ff3483041eb944f4cefdaf7e81b0eb1feb4eeceee8c7c6ddb8a2a6e8c4c0388514a42e16ac7b7a69 - languageName: node - linkType: hard - -"eslint-plugin-react-refresh@npm:^0.4.5": - version: 0.4.9 - resolution: "eslint-plugin-react-refresh@npm:0.4.9" - peerDependencies: - eslint: ">=7" - checksum: 10/4a8fad22270ff2bba86bc34973228334194739b3b64dab0a13e35f1a55f8e0a66ab8861520c86f3acc3ecb3701c5bb68eca9f1f8f8a6144c17ef511ab07e02bc - languageName: node - linkType: hard - -"eslint-plugin-storybook@npm:^0.6.15": - version: 0.6.15 - resolution: "eslint-plugin-storybook@npm:0.6.15" - dependencies: - "@storybook/csf": "npm:^0.0.1" - "@typescript-eslint/utils": "npm:^5.45.0" - requireindex: "npm:^1.1.0" - ts-dedent: "npm:^2.2.0" - peerDependencies: - eslint: ">=6" - checksum: 10/0c278594c8474ce2f176ffc6610240ae9d6c8f9dafbff02be61e6ae05f15081ce858c5b16e64d8995a3a3777c9d1725953fcde4312efab9118aa544a75b27c46 - languageName: node - linkType: hard - -"eslint-scope@npm:^5.1.1": - version: 5.1.1 - resolution: "eslint-scope@npm:5.1.1" - dependencies: - esrecurse: "npm:^4.3.0" - estraverse: "npm:^4.1.1" - checksum: 10/c541ef384c92eb5c999b7d3443d80195fcafb3da335500946f6db76539b87d5826c8f2e1d23bf6afc3154ba8cd7c8e566f8dc00f1eea25fdf3afc8fb9c87b238 - languageName: node - linkType: hard - -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" - dependencies: - esrecurse: "npm:^4.3.0" - estraverse: "npm:^5.2.0" - checksum: 10/5c660fb905d5883ad018a6fea2b49f3cb5b1cbf2cd4bd08e98646e9864f9bc2c74c0839bed2d292e90a4a328833accc197c8f0baed89cbe8d605d6f918465491 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": - version: 3.4.3 - resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 10/3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b - languageName: node - linkType: hard - -"eslint@npm:^8.56.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.2.0" - "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.57.0" - "@humanwhocodes/config-array": "npm:^0.11.14" - "@humanwhocodes/module-importer": "npm:^1.0.1" - "@nodelib/fs.walk": "npm:^1.2.8" - "@ungap/structured-clone": "npm:^1.2.0" - ajv: "npm:^6.12.4" - chalk: "npm:^4.0.0" - cross-spawn: "npm:^7.0.2" - debug: "npm:^4.3.2" - doctrine: "npm:^3.0.0" - escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^7.2.2" - eslint-visitor-keys: "npm:^3.4.3" - espree: "npm:^9.6.1" - esquery: "npm:^1.4.2" - esutils: "npm:^2.0.2" - fast-deep-equal: "npm:^3.1.3" - file-entry-cache: "npm:^6.0.1" - find-up: "npm:^5.0.0" - glob-parent: "npm:^6.0.2" - globals: "npm:^13.19.0" - graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.0" - imurmurhash: "npm:^0.1.4" - is-glob: "npm:^4.0.0" - is-path-inside: "npm:^3.0.3" - js-yaml: "npm:^4.1.0" - json-stable-stringify-without-jsonify: "npm:^1.0.1" - levn: "npm:^0.4.1" - lodash.merge: "npm:^4.6.2" - minimatch: "npm:^3.1.2" - natural-compare: "npm:^1.4.0" - optionator: "npm:^0.9.3" - strip-ansi: "npm:^6.0.1" - text-table: "npm:^0.2.0" - bin: - eslint: bin/eslint.js - checksum: 10/00496e218b23747a7a9817bf58b522276d0dc1f2e546dceb4eea49f9871574088f72f1f069a6b560ef537efa3a75261b8ef70e51ef19033da1cc4c86a755ef15 - languageName: node - linkType: hard - -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" - dependencies: - acorn: "npm:^8.9.0" - acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10/255ab260f0d711a54096bdeda93adff0eadf02a6f9b92f02b323e83a2b7fc258797919437ad331efec3930475feb0142c5ecaaf3cdab4befebd336d47d3f3134 - languageName: node - linkType: hard - -"esprima@npm:^4.0.0, esprima@npm:^4.0.1, esprima@npm:~4.0.0": - version: 4.0.1 - resolution: "esprima@npm:4.0.1" - bin: - esparse: ./bin/esparse.js - esvalidate: ./bin/esvalidate.js - checksum: 10/f1d3c622ad992421362294f7acf866aa9409fbad4eb2e8fa230bd33944ce371d32279667b242d8b8907ec2b6ad7353a717f3c0e60e748873a34a7905174bc0eb - languageName: node - linkType: hard - -"esquery@npm:^1.4.2": - version: 1.6.0 - resolution: "esquery@npm:1.6.0" - dependencies: - estraverse: "npm:^5.1.0" - checksum: 10/c587fb8ec9ed83f2b1bc97cf2f6854cc30bf784a79d62ba08c6e358bf22280d69aee12827521cf38e69ae9761d23fb7fde593ce315610f85655c139d99b05e5a - languageName: node - linkType: hard - -"esrecurse@npm:^4.3.0": - version: 4.3.0 - resolution: "esrecurse@npm:4.3.0" - dependencies: - estraverse: "npm:^5.2.0" - checksum: 10/44ffcd89e714ea6b30143e7f119b104fc4d75e77ee913f34d59076b40ef2d21967f84e019f84e1fd0465b42cdbf725db449f232b5e47f29df29ed76194db8e16 - languageName: node - linkType: hard - -"estraverse@npm:^4.1.1": - version: 4.3.0 - resolution: "estraverse@npm:4.3.0" - checksum: 10/3f67ad02b6dbfaddd9ea459cf2b6ef4ecff9a6082a7af9d22e445b9abc082ad9ca47e1825557b293fcdae477f4714e561123e30bb6a5b2f184fb2bad4a9497eb - languageName: node - linkType: hard - -"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": - version: 5.3.0 - resolution: "estraverse@npm:5.3.0" - checksum: 10/37cbe6e9a68014d34dbdc039f90d0baf72436809d02edffcc06ba3c2a12eb298048f877511353b130153e532aac8d68ba78430c0dd2f44806ebc7c014b01585e - languageName: node - linkType: hard - -"estree-walker@npm:^2.0.2": - version: 2.0.2 - resolution: "estree-walker@npm:2.0.2" - checksum: 10/b02109c5d46bc2ed47de4990eef770f7457b1159a229f0999a09224d2b85ffeed2d7679cffcff90aeb4448e94b0168feb5265b209cdec29aad50a3d6e93d21e2 - 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" - checksum: 10/b23acd24791db11d8f65be5ea58fd9a6ce2df5120ae2da65c16cfc5331ff59d5ac4ef50af66cd4bde238881503ec839928a0135b99a036a9cdfa22d17fd56cdb - languageName: node - linkType: hard - -"etag@npm:~1.8.1": - version: 1.8.1 - resolution: "etag@npm:1.8.1" - checksum: 10/571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff - languageName: node - linkType: hard - -"eventemitter2@npm:6.4.7": - version: 6.4.7 - resolution: "eventemitter2@npm:6.4.7" - checksum: 10/df2a733ee3a7ac6e7f6988cebbaac5b14b46bf82f700f1ec86f9e3f3d095dba20f9aa5c29d9d62a6f50fd943f798f7f2a38c4e1b45148f6f7cec7586a8ac6881 - languageName: node - linkType: hard - -"execa@npm:4.1.0": - version: 4.1.0 - resolution: "execa@npm:4.1.0" - dependencies: - cross-spawn: "npm:^7.0.0" - get-stream: "npm:^5.0.0" - human-signals: "npm:^1.1.1" - is-stream: "npm:^2.0.0" - merge-stream: "npm:^2.0.0" - npm-run-path: "npm:^4.0.0" - onetime: "npm:^5.1.0" - signal-exit: "npm:^3.0.2" - strip-final-newline: "npm:^2.0.0" - checksum: 10/ed58e41fe424797f3d837c8fb622548eeb72fa03324f2676af95f806568904eb55f196127a097f87d4517cab524c169ece13e6c9e201867de57b089584864b8f - languageName: node - linkType: hard - -"execa@npm:^5.0.0": - version: 5.1.1 - resolution: "execa@npm:5.1.1" - dependencies: - cross-spawn: "npm:^7.0.3" - get-stream: "npm:^6.0.0" - human-signals: "npm:^2.1.0" - is-stream: "npm:^2.0.0" - merge-stream: "npm:^2.0.0" - npm-run-path: "npm:^4.0.1" - onetime: "npm:^5.1.2" - signal-exit: "npm:^3.0.3" - strip-final-newline: "npm:^2.0.0" - checksum: 10/8ada91f2d70f7dff702c861c2c64f21dfdc1525628f3c0454fd6f02fce65f7b958616cbd2b99ca7fa4d474e461a3d363824e91b3eb881705231abbf387470597 - languageName: node - linkType: hard - -"execa@npm:^8.0.1": - version: 8.0.1 - resolution: "execa@npm:8.0.1" - dependencies: - cross-spawn: "npm:^7.0.3" - get-stream: "npm:^8.0.1" - human-signals: "npm:^5.0.0" - is-stream: "npm:^3.0.0" - merge-stream: "npm:^2.0.0" - npm-run-path: "npm:^5.1.0" - onetime: "npm:^6.0.0" - signal-exit: "npm:^4.1.0" - strip-final-newline: "npm:^3.0.0" - checksum: 10/d2ab5fe1e2bb92b9788864d0713f1fce9a07c4594e272c0c97bc18c90569897ab262e4ea58d27a694d288227a2e24f16f5e2575b44224ad9983b799dc7f1098d - languageName: node - linkType: hard - -"executable@npm:^4.1.1": - version: 4.1.1 - resolution: "executable@npm:4.1.1" - dependencies: - pify: "npm:^2.2.0" - checksum: 10/f01927ce59bccec804e171bf859a26e362c1f50aa9ebc69f7cafdcce3859d29d4b6267fd47237c18b0a1830614bd3f0ee14b7380d9bad18a4e7af9b5f0b6984f - languageName: node - linkType: hard - -"exit@npm:^0.1.2": - version: 0.1.2 - resolution: "exit@npm:0.1.2" - checksum: 10/387555050c5b3c10e7a9e8df5f43194e95d7737c74532c409910e585d5554eaff34960c166643f5e23d042196529daad059c292dcf1fb61b8ca878d3677f4b87 - languageName: node - linkType: hard - -"expect@npm:^29.7.0": - version: 29.7.0 - resolution: "expect@npm:29.7.0" - dependencies: - "@jest/expect-utils": "npm:^29.7.0" - jest-get-type: "npm:^29.6.3" - jest-matcher-utils: "npm:^29.7.0" - jest-message-util: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - checksum: 10/63f97bc51f56a491950fb525f9ad94f1916e8a014947f8d8445d3847a665b5471b768522d659f5e865db20b6c2033d2ac10f35fcbd881a4d26407a4f6f18451a - languageName: node - linkType: hard - -"exponential-backoff@npm:^3.1.1": - version: 3.1.1 - resolution: "exponential-backoff@npm:3.1.1" - checksum: 10/2d9bbb6473de7051f96790d5f9a678f32e60ed0aa70741dc7fdc96fec8d631124ec3374ac144387604f05afff9500f31a1d45bd9eee4cdc2e4f9ad2d9b9d5dbd - languageName: node - linkType: hard - -"express@npm:^4.19.2": - version: 4.19.2 - resolution: "express@npm:4.19.2" - dependencies: - accepts: "npm:~1.3.8" - array-flatten: "npm:1.1.1" - body-parser: "npm:1.20.2" - content-disposition: "npm:0.5.4" - content-type: "npm:~1.0.4" - cookie: "npm:0.6.0" - cookie-signature: "npm:1.0.6" - debug: "npm:2.6.9" - depd: "npm:2.0.0" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - finalhandler: "npm:1.2.0" - fresh: "npm:0.5.2" - http-errors: "npm:2.0.0" - merge-descriptors: "npm:1.0.1" - methods: "npm:~1.1.2" - on-finished: "npm:2.4.1" - parseurl: "npm:~1.3.3" - path-to-regexp: "npm:0.1.7" - proxy-addr: "npm:~2.0.7" - qs: "npm:6.11.0" - range-parser: "npm:~1.2.1" - safe-buffer: "npm:5.2.1" - send: "npm:0.18.0" - serve-static: "npm:1.15.0" - setprototypeof: "npm:1.2.0" - statuses: "npm:2.0.1" - type-is: "npm:~1.6.18" - utils-merge: "npm:1.0.1" - vary: "npm:~1.1.2" - checksum: 10/3fcd792536f802c059789ef48db3851b87e78fba103423e524144d79af37da7952a2b8d4e1a007f423329c7377d686d9476ac42e7d9ea413b80345d495e30a3a - languageName: node - linkType: hard - -"extend@npm:~3.0.2": - version: 3.0.2 - resolution: "extend@npm:3.0.2" - checksum: 10/59e89e2dc798ec0f54b36d82f32a27d5f6472c53974f61ca098db5d4648430b725387b53449a34df38fd0392045434426b012f302b3cc049a6500ccf82877e4e - languageName: node - linkType: hard - -"extract-zip@npm:2.0.1": - version: 2.0.1 - resolution: "extract-zip@npm:2.0.1" - dependencies: - "@types/yauzl": "npm:^2.9.1" - debug: "npm:^4.1.1" - get-stream: "npm:^5.1.0" - yauzl: "npm:^2.10.0" - dependenciesMeta: - "@types/yauzl": - optional: true - bin: - extract-zip: cli.js - checksum: 10/8cbda9debdd6d6980819cc69734d874ddd71051c9fe5bde1ef307ebcedfe949ba57b004894b585f758b7c9eeeea0e3d87f2dda89b7d25320459c2c9643ebb635 - languageName: node - linkType: hard - -"extsprintf@npm:1.3.0": - version: 1.3.0 - resolution: "extsprintf@npm:1.3.0" - checksum: 10/26967d6c7ecbfb5bc5b7a6c43503dc5fafd9454802037e9fa1665e41f615da4ff5918bd6cb871a3beabed01a31eca1ccd0bdfb41231f50ad50d405a430f78377 - languageName: node - linkType: hard - -"extsprintf@npm:^1.2.0": - version: 1.4.1 - resolution: "extsprintf@npm:1.4.1" - checksum: 10/bfd6d55f3c0c04d826fe0213264b383c03f32825af6b1ff777f3f2dc49467e599361993568d75b7b19a8ea1bb08c8e7cd8c3d87d179ced91bb0dcf81ca6938e0 - languageName: node - linkType: hard - -"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": - version: 3.1.3 - resolution: "fast-deep-equal@npm:3.1.3" - checksum: 10/e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d - languageName: node - linkType: hard - -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" - 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 - languageName: node - linkType: hard - -"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": - version: 2.1.0 - resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: 10/2c20055c1fa43c922428f16ca8bb29f2807de63e5c851f665f7ac9790176c01c3b40335257736b299764a8d383388dabc73c8083b8e1bc3d99f0a941444ec60e - languageName: node - linkType: hard - -"fast-levenshtein@npm:^2.0.6": - version: 2.0.6 - resolution: "fast-levenshtein@npm:2.0.6" - checksum: 10/eb7e220ecf2bab5159d157350b81d01f75726a4382f5a9266f42b9150c4523b9795f7f5d9fbbbeaeac09a441b2369f05ee02db48ea938584205530fe5693cfe1 - languageName: node - linkType: hard - -"fastq@npm:^1.6.0": - version: 1.17.1 - resolution: "fastq@npm:1.17.1" - dependencies: - reusify: "npm:^1.0.4" - checksum: 10/a443180068b527dd7b3a63dc7f2a47ceca2f3e97b9c00a1efe5538757e6cc4056a3526df94308075d7727561baf09ebaa5b67da8dcbddb913a021c5ae69d1f69 - languageName: node - linkType: hard - -"fb-watchman@npm:^2.0.0": - version: 2.0.2 - resolution: "fb-watchman@npm:2.0.2" - dependencies: - bser: "npm:2.1.1" - checksum: 10/4f95d336fb805786759e383fd7fff342ceb7680f53efcc0ef82f502eb479ce35b98e8b207b6dfdfeea0eba845862107dc73813775fc6b56b3098c6e90a2dad77 - languageName: node - linkType: hard - -"fd-package-json@npm:^1.2.0": - version: 1.2.0 - resolution: "fd-package-json@npm:1.2.0" - dependencies: - walk-up-path: "npm:^3.0.1" - checksum: 10/043a9b5bbec41d2e452b6c81943b235f0f89358acb1f0fbcfa7ecba80df53434f8e1d663d964c919447fbd0c6f8f8e7dc477fd31a1dd1d7217bfaeeae14fcbb0 - languageName: node - linkType: hard - -"fd-slicer@npm:~1.1.0": - version: 1.1.0 - resolution: "fd-slicer@npm:1.1.0" - dependencies: - pend: "npm:~1.2.0" - checksum: 10/db3e34fa483b5873b73f248e818f8a8b59a6427fd8b1436cd439c195fdf11e8659419404826059a642b57d18075c856d06d6a50a1413b714f12f833a9341ead3 - languageName: node - linkType: hard - -"figures@npm:^3.2.0": - version: 3.2.0 - resolution: "figures@npm:3.2.0" - dependencies: - escape-string-regexp: "npm:^1.0.5" - checksum: 10/a3bf94e001be51d3770500789157f067218d4bc681a65e1f69d482de15120bcac822dceb1a7b3803f32e4e3a61a46df44f7f2c8ba95d6375e7491502e0dd3d97 - languageName: node - linkType: hard - -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" - dependencies: - flat-cache: "npm:^3.0.4" - checksum: 10/099bb9d4ab332cb93c48b14807a6918a1da87c45dce91d4b61fd40e6505d56d0697da060cb901c729c90487067d93c9243f5da3dc9c41f0358483bfdebca736b - languageName: node - linkType: hard - -"fill-range@npm:^7.1.1": - version: 7.1.1 - resolution: "fill-range@npm:7.1.1" - dependencies: - to-regex-range: "npm:^5.0.1" - checksum: 10/a7095cb39e5bc32fada2aa7c7249d3f6b01bd1ce461a61b0adabacccabd9198500c6fb1f68a7c851a657e273fce2233ba869638897f3d7ed2e87a2d89b4436ea - languageName: node - linkType: hard - -"finalhandler@npm:1.2.0": - version: 1.2.0 - resolution: "finalhandler@npm:1.2.0" - dependencies: - debug: "npm:2.6.9" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - on-finished: "npm:2.4.1" - parseurl: "npm:~1.3.3" - statuses: "npm:2.0.1" - unpipe: "npm:~1.0.0" - checksum: 10/635718cb203c6d18e6b48dfbb6c54ccb08ea470e4f474ddcef38c47edcf3227feec316f886dd701235997d8af35240cae49856721ce18f539ad038665ebbf163 - languageName: node - linkType: hard - -"find-cache-dir@npm:^2.0.0": - version: 2.1.0 - resolution: "find-cache-dir@npm:2.1.0" - dependencies: - commondir: "npm:^1.0.1" - make-dir: "npm:^2.0.0" - pkg-dir: "npm:^3.0.0" - checksum: 10/60ad475a6da9f257df4e81900f78986ab367d4f65d33cf802c5b91e969c28a8762f098693d7a571b6e4dd4c15166c2da32ae2d18b6766a18e2071079448fdce4 - languageName: node - linkType: hard - -"find-cache-dir@npm:^3.0.0": - version: 3.3.2 - resolution: "find-cache-dir@npm:3.3.2" - dependencies: - commondir: "npm:^1.0.1" - make-dir: "npm:^3.0.2" - pkg-dir: "npm:^4.1.0" - checksum: 10/3907c2e0b15132704ed67083686cd3e68ab7d9ecc22e50ae9da20678245d488b01fa22c0e34c0544dc6edc4354c766f016c8c186a787be7c17f7cde8c5281e85 - languageName: node - linkType: hard - -"find-up@npm:^3.0.0": - version: 3.0.0 - resolution: "find-up@npm:3.0.0" - dependencies: - locate-path: "npm:^3.0.0" - checksum: 10/38eba3fe7a66e4bc7f0f5a1366dc25508b7cfc349f852640e3678d26ad9a6d7e2c43eff0a472287de4a9753ef58f066a0ea892a256fa3636ad51b3fe1e17fae9 - languageName: node - linkType: hard - -"find-up@npm:^4.0.0, find-up@npm:^4.1.0": - version: 4.1.0 - resolution: "find-up@npm:4.1.0" - dependencies: - locate-path: "npm:^5.0.0" - path-exists: "npm:^4.0.0" - checksum: 10/4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 - languageName: node - linkType: hard - -"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 - -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" - dependencies: - flatted: "npm:^3.2.9" - keyv: "npm:^4.5.3" - rimraf: "npm:^3.0.2" - checksum: 10/02381c6ece5e9fa5b826c9bbea481d7fd77645d96e4b0b1395238124d581d10e56f17f723d897b6d133970f7a57f0fab9148cbbb67237a0a0ffe794ba60c0c70 - languageName: node - linkType: hard - -"flatted@npm:^3.2.9": - version: 3.3.1 - resolution: "flatted@npm:3.3.1" - checksum: 10/7b8376061d5be6e0d3658bbab8bde587647f68797cf6bfeae9dea0e5137d9f27547ab92aaff3512dd9d1299086a6d61be98e9d48a56d17531b634f77faadbc49 - languageName: node - linkType: hard - -"flow-parser@npm:0.*": - version: 0.242.1 - resolution: "flow-parser@npm:0.242.1" - checksum: 10/579713b596a93e1f4fc9df0ed6379fb60841d4df3fa4ccefa6545d3d954c510a293996e6df33525f599bd370c0bf76a29992bbf206ba68157e8a1ae52a101269 - languageName: node - linkType: hard - -"for-each@npm:^0.3.3": - version: 0.3.3 - resolution: "for-each@npm:0.3.3" - dependencies: - is-callable: "npm:^1.1.3" - checksum: 10/fdac0cde1be35610bd635ae958422e8ce0cc1313e8d32ea6d34cfda7b60850940c1fd07c36456ad76bd9c24aef6ff5e03b02beb58c83af5ef6c968a64eada676 - languageName: node - linkType: hard - -"foreground-child@npm:^3.1.0": - version: 3.2.1 - resolution: "foreground-child@npm:3.2.1" - dependencies: - cross-spawn: "npm:^7.0.0" - signal-exit: "npm:^4.0.1" - checksum: 10/77b33b3c438a499201727ca84de39a66350ccd54a8805df712773e963cefb5c4632dbc4386109e97a0df8fb1585aee95fa35acb07587e3e04cfacabfc0ae15dc - languageName: node - linkType: hard - -"forever-agent@npm:~0.6.1": - version: 0.6.1 - resolution: "forever-agent@npm:0.6.1" - checksum: 10/c1e1644d5e074ac063ecbc3fb8582013ef91fff0e3fa41e76db23d2f62bc6d9677aac86db950917deed4fe1fdd772df780cfaa352075f23deec9c015313afb97 - languageName: node - linkType: hard - -"form-data@npm:^4.0.0": - version: 4.0.0 - resolution: "form-data@npm:4.0.0" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.8" - mime-types: "npm:^2.1.12" - checksum: 10/7264aa760a8cf09482816d8300f1b6e2423de1b02bba612a136857413fdc96d7178298ced106817655facc6b89036c6e12ae31c9eb5bdc16aabf502ae8a5d805 - languageName: node - linkType: hard - -"form-data@npm:~2.3.2": - version: 2.3.3 - resolution: "form-data@npm:2.3.3" - dependencies: - asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.6" - mime-types: "npm:^2.1.12" - checksum: 10/1b6f3ccbf4540e535887b42218a2431a3f6cfdea320119c2affa2a7a374ad8fdd1e60166fc865181f45d49b1684c3e90e7b2190d3fe016692957afb9cf0d0d02 - languageName: node - linkType: hard - -"forwarded@npm:0.2.0": - version: 0.2.0 - resolution: "forwarded@npm:0.2.0" - checksum: 10/29ba9fd347117144e97cbb8852baae5e8b2acb7d1b591ef85695ed96f5b933b1804a7fac4a15dd09ca7ac7d0cdc104410e8102aae2dd3faa570a797ba07adb81 - languageName: node - linkType: hard - -"fresh@npm:0.5.2": - version: 0.5.2 - resolution: "fresh@npm:0.5.2" - checksum: 10/64c88e489b5d08e2f29664eb3c79c705ff9a8eb15d3e597198ef76546d4ade295897a44abb0abd2700e7ef784b2e3cbf1161e4fbf16f59129193fd1030d16da1 - languageName: node - linkType: hard - -"fs-extra@npm:^11.1.0": - version: 11.2.0 - resolution: "fs-extra@npm:11.2.0" - dependencies: - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^6.0.1" - universalify: "npm:^2.0.0" - checksum: 10/0579bf6726a4cd054d4aa308f10b483f52478bb16284f32cf60b4ce0542063d551fca1a08a2af365e35db21a3fa5a06cf2a6ed614004b4368982bc754cb816b3 - languageName: node - linkType: hard - -"fs-extra@npm:^9.1.0": - version: 9.1.0 - resolution: "fs-extra@npm:9.1.0" - dependencies: - at-least-node: "npm:^1.0.0" - graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^6.0.1" - universalify: "npm:^2.0.0" - checksum: 10/08600da1b49552ed23dfac598c8fc909c66776dd130fea54fbcad22e330f7fcc13488bb995f6bc9ce5651aa35b65702faf616fe76370ee56f1aade55da982dca - languageName: node - linkType: hard - -"fs-minipass@npm:^2.0.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10/03191781e94bc9a54bd376d3146f90fe8e082627c502185dbf7b9b3032f66b0b142c1115f3b2cc5936575fc1b44845ce903dd4c21bec2a8d69f3bd56f9cee9ec - languageName: node - linkType: hard - -"fs-minipass@npm:^3.0.0": - version: 3.0.3 - resolution: "fs-minipass@npm:3.0.3" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10/af143246cf6884fe26fa281621d45cfe111d34b30535a475bfa38dafe343dadb466c047a924ffc7d6b7b18265df4110224ce3803806dbb07173bf2087b648d7f - languageName: node - linkType: hard - -"fs.realpath@npm:^1.0.0": - version: 1.0.0 - resolution: "fs.realpath@npm:1.0.0" - checksum: 10/e703107c28e362d8d7b910bbcbfd371e640a3bb45ae157a362b5952c0030c0b6d4981140ec319b347bce7adc025dd7813da1ff908a945ac214d64f5402a51b96 - languageName: node - linkType: hard - -"fsevents@npm:2.3.2": - version: 2.3.2 - resolution: "fsevents@npm:2.3.2" - dependencies: - node-gyp: "npm:latest" - checksum: 10/6b5b6f5692372446ff81cf9501c76e3e0459a4852b3b5f1fc72c103198c125a6b8c72f5f166bdd76ffb2fca261e7f6ee5565daf80dca6e571e55bcc589cc1256 - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2, fsevents@npm:~2.3.3": - version: 2.3.3 - resolution: "fsevents@npm:2.3.3" - dependencies: - node-gyp: "npm:latest" - checksum: 10/4c1ade961ded57cdbfbb5cac5106ec17bc8bccd62e16343c569a0ceeca83b9dfef87550b4dc5cbb89642da412b20c5071f304c8c464b80415446e8e155a038c0 - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin": - version: 2.3.2 - resolution: "fsevents@patch:fsevents@npm%3A2.3.2#optional!builtin::version=2.3.2&hash=df0bf1" - dependencies: - node-gyp: "npm:latest" - conditions: os=darwin - languageName: node - linkType: hard - -"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": - version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" - dependencies: - node-gyp: "npm:latest" - conditions: os=darwin - languageName: node - linkType: hard - -"function-bind@npm:^1.1.2": - version: 1.1.2 - resolution: "function-bind@npm:1.1.2" - checksum: 10/185e20d20f10c8d661d59aac0f3b63b31132d492e1b11fcc2a93cb2c47257ebaee7407c38513efd2b35cafdf972d9beb2ea4593c1e0f3bf8f2744836928d7454 - 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 - -"gensync@npm:^1.0.0-beta.2": - version: 1.0.0-beta.2 - resolution: "gensync@npm:1.0.0-beta.2" - checksum: 10/17d8333460204fbf1f9160d067e1e77f908a5447febb49424b8ab043026049835c9ef3974445c57dbd39161f4d2b04356d7de12b2eecaa27a7a7ea7d871cbedd - languageName: node - linkType: hard - -"get-caller-file@npm:^2.0.5": - version: 2.0.5 - resolution: "get-caller-file@npm:2.0.5" - checksum: 10/b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 - languageName: node - linkType: hard - -"get-func-name@npm:^2.0.1": - version: 2.0.2 - resolution: "get-func-name@npm:2.0.2" - checksum: 10/3f62f4c23647de9d46e6f76d2b3eafe58933a9b3830c60669e4180d6c601ce1b4aa310ba8366143f55e52b139f992087a9f0647274e8745621fa2af7e0acf13b - languageName: node - linkType: hard - -"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.4": - version: 1.2.4 - resolution: "get-intrinsic@npm:1.2.4" - dependencies: - es-errors: "npm:^1.3.0" - function-bind: "npm:^1.1.2" - has-proto: "npm:^1.0.1" - has-symbols: "npm:^1.0.3" - hasown: "npm:^2.0.0" - checksum: 10/85bbf4b234c3940edf8a41f4ecbd4e25ce78e5e6ad4e24ca2f77037d983b9ef943fd72f00f3ee97a49ec622a506b67db49c36246150377efcda1c9eb03e5f06d - languageName: node - linkType: hard - -"get-package-type@npm:^0.1.0": - version: 0.1.0 - resolution: "get-package-type@npm:0.1.0" - checksum: 10/bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 - languageName: node - linkType: hard - -"get-stream@npm:^5.0.0, get-stream@npm:^5.1.0": - version: 5.2.0 - resolution: "get-stream@npm:5.2.0" - dependencies: - pump: "npm:^3.0.0" - checksum: 10/13a73148dca795e41421013da6e3ebff8ccb7fba4d2f023fd0c6da2c166ec4e789bec9774a73a7b49c08daf2cae552f8a3e914042ac23b5f59dd278cc8f9cbfb - languageName: node - linkType: hard - -"get-stream@npm:^6.0.0": - version: 6.0.1 - resolution: "get-stream@npm:6.0.1" - checksum: 10/781266d29725f35c59f1d214aedc92b0ae855800a980800e2923b3fbc4e56b3cb6e462c42e09a1cf1a00c64e056a78fa407cbe06c7c92b7e5cd49b4b85c2a497 - languageName: node - linkType: hard - -"get-stream@npm:^8.0.1": - version: 8.0.1 - resolution: "get-stream@npm:8.0.1" - checksum: 10/dde5511e2e65a48e9af80fea64aff11b4921b14b6e874c6f8294c50975095af08f41bfb0b680c887f28b566dd6ec2cb2f960f9d36a323359be324ce98b766e9e - languageName: node - linkType: hard - -"getos@npm:^3.2.1": - version: 3.2.1 - resolution: "getos@npm:3.2.1" - dependencies: - async: "npm:^3.2.0" - checksum: 10/228bede057f5cbed93dc6a66ce459a0364059faa2869682547663302f612e6295f13d3ad2a54ebbed573a9eb7f8124508b24409df6bcda6e15906c357526d11f - languageName: node - linkType: hard - -"getpass@npm:^0.1.1": - version: 0.1.7 - resolution: "getpass@npm:0.1.7" - dependencies: - assert-plus: "npm:^1.0.0" - checksum: 10/ab18d55661db264e3eac6012c2d3daeafaab7a501c035ae0ccb193c3c23e9849c6e29b6ac762b9c2adae460266f925d55a3a2a3a3c8b94be2f222df94d70c046 - languageName: node - linkType: hard - -"giget@npm:^1.0.0": - version: 1.2.3 - resolution: "giget@npm:1.2.3" - dependencies: - citty: "npm:^0.1.6" - consola: "npm:^3.2.3" - defu: "npm:^6.1.4" - node-fetch-native: "npm:^1.6.3" - nypm: "npm:^0.3.8" - ohash: "npm:^1.1.3" - pathe: "npm:^1.1.2" - tar: "npm:^6.2.0" - bin: - giget: dist/cli.mjs - checksum: 10/85bdcf380566fc9c4299f029acbe78a706f1825912c6cea39b675d08064399988f5de30d17238246f725183ac7504e7b9d3000c417f1df7ebb52ab26c7d3ab8c - languageName: node - linkType: hard - -"github-slugger@npm:^2.0.0": - version: 2.0.0 - resolution: "github-slugger@npm:2.0.0" - checksum: 10/2fb15d78262eeba1e68671f048c62d05ed21e51281cccc7b1c9e8e089e8510b3037fb648b8ba27290e60534df2cb251312a1e7e813204495df621220192fd600 - languageName: node - linkType: hard - -"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": - version: 5.1.2 - resolution: "glob-parent@npm:5.1.2" - dependencies: - is-glob: "npm:^4.0.1" - checksum: 10/32cd106ce8c0d83731966d31517adb766d02c3812de49c30cfe0675c7c0ae6630c11214c54a5ae67aca882cf738d27fd7768f21aa19118b9245950554be07247 - languageName: node - linkType: hard - -"glob-parent@npm:^6.0.2": - version: 6.0.2 - resolution: "glob-parent@npm:6.0.2" - dependencies: - is-glob: "npm:^4.0.3" - checksum: 10/c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 - languageName: node - linkType: hard - -"glob-promise@npm:^4.2.0": - version: 4.2.2 - resolution: "glob-promise@npm:4.2.2" - dependencies: - "@types/glob": "npm:^7.1.3" - peerDependencies: - glob: ^7.1.6 - checksum: 10/c1a3d95f7c8393e4151d4899ec4e42bb2e8237160f840ad1eccbe9247407da8b6c13e28f463022e011708bc40862db87b9b77236d35afa3feb8aa86d518f2dfe - languageName: node - linkType: hard - -"glob@npm:^10.2.2, glob@npm:^10.3.10": - version: 10.4.5 - resolution: "glob@npm:10.4.5" - dependencies: - foreground-child: "npm:^3.1.0" - jackspeak: "npm:^3.1.2" - minimatch: "npm:^9.0.4" - minipass: "npm:^7.1.2" - package-json-from-dist: "npm:^1.0.0" - path-scurry: "npm:^1.11.1" - bin: - glob: dist/esm/bin.mjs - checksum: 10/698dfe11828b7efd0514cd11e573eaed26b2dff611f0400907281ce3eab0c1e56143ef9b35adc7c77ecc71fba74717b510c7c223d34ca8a98ec81777b293d4ac - languageName: node - linkType: hard - -"glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.2.0": - version: 7.2.3 - resolution: "glob@npm:7.2.3" - dependencies: - fs.realpath: "npm:^1.0.0" - inflight: "npm:^1.0.4" - inherits: "npm:2" - minimatch: "npm:^3.1.1" - once: "npm:^1.3.0" - path-is-absolute: "npm:^1.0.0" - checksum: 10/59452a9202c81d4508a43b8af7082ca5c76452b9fcc4a9ab17655822e6ce9b21d4f8fbadabe4fe3faef448294cec249af305e2cd824b7e9aaf689240e5e96a7b - languageName: node - linkType: hard - -"global-dirs@npm:^3.0.0": - version: 3.0.1 - resolution: "global-dirs@npm:3.0.1" - dependencies: - ini: "npm:2.0.0" - checksum: 10/70147b80261601fd40ac02a104581432325c1c47329706acd773f3a6ce99bb36d1d996038c85ccacd482ad22258ec233c586b6a91535b1a116b89663d49d6438 - languageName: node - linkType: hard - -"globals@npm:^11.1.0": - version: 11.12.0 - resolution: "globals@npm:11.12.0" - checksum: 10/9f054fa38ff8de8fa356502eb9d2dae0c928217b8b5c8de1f09f5c9b6c8a96d8b9bd3afc49acbcd384a98a81fea713c859e1b09e214c60509517bb8fc2bc13c2 - languageName: node - linkType: hard - -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: "npm:^0.20.2" - checksum: 10/62c5b1997d06674fc7191d3e01e324d3eda4d65ac9cc4e78329fa3b5c4fd42a0e1c8722822497a6964eee075255ce21ccf1eec2d83f92ef3f06653af4d0ee28e - languageName: node - linkType: hard - -"globby@npm:^11.1.0": - version: 11.1.0 - resolution: "globby@npm:11.1.0" - dependencies: - array-union: "npm:^2.1.0" - dir-glob: "npm:^3.0.1" - fast-glob: "npm:^3.2.9" - ignore: "npm:^5.2.0" - merge2: "npm:^1.4.1" - slash: "npm:^3.0.0" - checksum: 10/288e95e310227bbe037076ea81b7c2598ccbc3122d87abc6dab39e1eec309aa14f0e366a98cdc45237ffcfcbad3db597778c0068217dcb1950fef6249104e1b1 - languageName: node - linkType: hard - -"globby@npm:^14.0.1": - version: 14.0.2 - resolution: "globby@npm:14.0.2" - dependencies: - "@sindresorhus/merge-streams": "npm:^2.1.0" - fast-glob: "npm:^3.3.2" - ignore: "npm:^5.2.4" - path-type: "npm:^5.0.0" - slash: "npm:^5.1.0" - unicorn-magic: "npm:^0.1.0" - checksum: 10/67660da70fc1223f7170c1a62ba6c373385e9e39765d952b6518606dec15ed8c7958e9dae6ba5752a31dbc1e9126f146938b830ad680fe794141734ffc3fbb75 - languageName: node - linkType: hard - -"gopd@npm:^1.0.1": - version: 1.0.1 - resolution: "gopd@npm:1.0.1" - dependencies: - get-intrinsic: "npm:^1.1.3" - checksum: 10/5fbc7ad57b368ae4cd2f41214bd947b045c1a4be2f194a7be1778d71f8af9dbf4004221f3b6f23e30820eb0d052b4f819fe6ebe8221e2a3c6f0ee4ef173421ca - languageName: node - linkType: hard - -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, 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" - checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2 - languageName: node - linkType: hard - -"graphemer@npm:^1.4.0": - version: 1.4.0 - resolution: "graphemer@npm:1.4.0" - checksum: 10/6dd60dba97007b21e3a829fab3f771803cc1292977fe610e240ea72afd67e5690ac9eeaafc4a99710e78962e5936ab5a460787c2a1180f1cb0ccfac37d29f897 - languageName: node - linkType: hard - -"harmony-reflect@npm:^1.4.6": - version: 1.6.2 - resolution: "harmony-reflect@npm:1.6.2" - checksum: 10/69d30ebfb5dbd6ff0553725c7922404cf1dfe5390db1618298eed27fe6c9bd2f3f677727e9da969d21648f4a6a39041e2f46e99976be4385f9e34bac23058cd4 - languageName: node - linkType: hard - -"has-bigints@npm:^1.0.1": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 10/4e0426c900af034d12db14abfece02ce7dbf53f2022d28af1a97913ff4c07adb8799476d57dc44fbca0e07d1dbda2a042c2928b1f33d3f09c15de0640a7fb81b - languageName: node - linkType: hard - -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 10/4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b - languageName: node - linkType: hard - -"has-flag@npm:^4.0.0": - version: 4.0.0 - resolution: "has-flag@npm:4.0.0" - checksum: 10/261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad - 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-proto@npm:^1.0.1": - version: 1.0.3 - resolution: "has-proto@npm:1.0.3" - checksum: 10/0b67c2c94e3bea37db3e412e3c41f79d59259875e636ba471e94c009cdfb1fa82bf045deeffafc7dbb9c148e36cae6b467055aaa5d9fad4316e11b41e3ba551a - languageName: node - linkType: hard - -"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": - version: 1.0.3 - resolution: "has-symbols@npm:1.0.3" - checksum: 10/464f97a8202a7690dadd026e6d73b1ceeddd60fe6acfd06151106f050303eaa75855aaa94969df8015c11ff7c505f196114d22f7386b4a471038da5874cf5e9b - languageName: node - linkType: hard - -"has-tostringtag@npm:^1.0.0, 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 - -"hasown@npm:^2.0.0, hasown@npm:^2.0.2": - version: 2.0.2 - resolution: "hasown@npm:2.0.2" - dependencies: - function-bind: "npm:^1.1.2" - checksum: 10/7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a - languageName: node - linkType: hard - -"hast-util-heading-rank@npm:^3.0.0": - version: 3.0.0 - resolution: "hast-util-heading-rank@npm:3.0.0" - dependencies: - "@types/hast": "npm:^3.0.0" - checksum: 10/e5ce4ec9e8017b24ab72702fa0dd401ec6eaf32574120d71c2aa4e8e0f43829dba2e291f49d305a47e8d65b82a9c5adad7985385dc5bc8370f8cec7c8f9313d3 - languageName: node - linkType: hard - -"hast-util-is-element@npm:^3.0.0": - version: 3.0.0 - resolution: "hast-util-is-element@npm:3.0.0" - dependencies: - "@types/hast": "npm:^3.0.0" - checksum: 10/b4e6d84c763ffdc44198ba0c4a5a7430794a7b2c1eec699d37776ea9832eef79f129726c175982103eb3b21f531a6bfd2fa43ce26e1ed6d8f6a87c102ba212c8 - languageName: node - linkType: hard - -"hast-util-to-string@npm:^3.0.0": - version: 3.0.0 - resolution: "hast-util-to-string@npm:3.0.0" - dependencies: - "@types/hast": "npm:^3.0.0" - checksum: 10/b0d51e2cf228edcbed0494755a7f095c5c2b7a0e7564f3ad7b83b89abbabf098b62b3c884e1bb4d3394c0c84486ba39800d78f2ccdbdaa38122be62330dd2357 - languageName: node - linkType: hard - -"html-encoding-sniffer@npm:^3.0.0": - version: 3.0.0 - resolution: "html-encoding-sniffer@npm:3.0.0" - dependencies: - whatwg-encoding: "npm:^2.0.0" - checksum: 10/707a812ec2acaf8bb5614c8618dc81e2fb6b4399d03e95ff18b65679989a072f4e919b9bef472039301a1bbfba64063ba4c79ea6e851c653ac9db80dbefe8fe5 - languageName: node - linkType: hard - -"html-escaper@npm:^2.0.0": - version: 2.0.2 - resolution: "html-escaper@npm:2.0.2" - checksum: 10/034d74029dcca544a34fb6135e98d427acd73019796ffc17383eaa3ec2fe1c0471dcbbc8f8ed39e46e86d43ccd753a160631615e4048285e313569609b66d5b7 - languageName: node - linkType: hard - -"html-tags@npm:^3.1.0": - version: 3.3.1 - resolution: "html-tags@npm:3.3.1" - checksum: 10/d0e808544b92d8b999cbcc86d539577255a2f0f2f4f73110d10749d1d36e6fe6ad706a0355a8477afb6e000ecdc93d8455b3602951f9a2b694ac9e28f1b52878 - languageName: node - linkType: hard - -"http-cache-semantics@npm:^4.1.1": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: 10/362d5ed66b12ceb9c0a328fb31200b590ab1b02f4a254a697dc796850cc4385603e75f53ec59f768b2dad3bfa1464bd229f7de278d2899a0e3beffc634b6683f - languageName: node - linkType: hard - -"http-errors@npm:2.0.0": - version: 2.0.0 - resolution: "http-errors@npm:2.0.0" - dependencies: - depd: "npm:2.0.0" - inherits: "npm:2.0.4" - setprototypeof: "npm:1.2.0" - statuses: "npm:2.0.1" - toidentifier: "npm:1.0.1" - checksum: 10/0e7f76ee8ff8a33e58a3281a469815b893c41357378f408be8f6d4aa7d1efafb0da064625518e7078381b6a92325949b119dc38fcb30bdbc4e3a35f78c44c439 - languageName: node - linkType: hard - -"http-proxy-agent@npm:^5.0.0": - version: 5.0.0 - resolution: "http-proxy-agent@npm:5.0.0" - dependencies: - "@tootallnate/once": "npm:2" - agent-base: "npm:6" - debug: "npm:4" - checksum: 10/5ee19423bc3e0fd5f23ce991b0755699ad2a46a440ce9cec99e8126bb98448ad3479d2c0ea54be5519db5b19a4ffaa69616bac01540db18506dd4dac3dc418f0 - languageName: node - linkType: hard - -"http-proxy-agent@npm:^7.0.0": - version: 7.0.2 - resolution: "http-proxy-agent@npm:7.0.2" - dependencies: - agent-base: "npm:^7.1.0" - debug: "npm:^4.3.4" - checksum: 10/d062acfa0cb82beeb558f1043c6ba770ea892b5fb7b28654dbc70ea2aeea55226dd34c02a294f6c1ca179a5aa483c4ea641846821b182edbd9cc5d89b54c6848 - languageName: node - linkType: hard - -"http-signature@npm:~1.3.6": - version: 1.3.6 - resolution: "http-signature@npm:1.3.6" - dependencies: - assert-plus: "npm:^1.0.0" - jsprim: "npm:^2.0.2" - sshpk: "npm:^1.14.1" - checksum: 10/5f08e0c82174999da97114facb0d0d47e268d60b6fc10f92cb87b99d5ccccd36f79b9508c29dda0b4f4e3a1b2f7bcaf847e68ecd5da2f1fc465fcd1d054b7884 - languageName: node - linkType: hard - -"https-proxy-agent@npm:^5.0.1": - version: 5.0.1 - resolution: "https-proxy-agent@npm:5.0.1" - dependencies: - agent-base: "npm:6" - debug: "npm:4" - checksum: 10/f0dce7bdcac5e8eaa0be3c7368bb8836ed010fb5b6349ffb412b172a203efe8f807d9a6681319105ea1b6901e1972c7b5ea899672a7b9aad58309f766dcbe0df - languageName: node - linkType: hard - -"https-proxy-agent@npm:^7.0.1": - version: 7.0.5 - resolution: "https-proxy-agent@npm:7.0.5" - dependencies: - agent-base: "npm:^7.0.2" - debug: "npm:4" - checksum: 10/6679d46159ab3f9a5509ee80c3a3fc83fba3a920a5e18d32176c3327852c3c00ad640c0c4210a8fd70ea3c4a6d3a1b375bf01942516e7df80e2646bdc77658ab - languageName: node - linkType: hard - -"human-signals@npm:^1.1.1": - version: 1.1.1 - resolution: "human-signals@npm:1.1.1" - checksum: 10/6a58224dffcef5588910b1028bda8623c9a7053460a1fe3367e61921a6b5f6b93aba30f323868a958f968d7de3f5f78421f11d4d9f7e9563b1bd2b00ed9a4deb - languageName: node - linkType: hard - -"human-signals@npm:^2.1.0": - version: 2.1.0 - resolution: "human-signals@npm:2.1.0" - checksum: 10/df59be9e0af479036798a881d1f136c4a29e0b518d4abb863afbd11bf30efa3eeb1d0425fc65942dcc05ab3bf40205ea436b0ff389f2cd20b75b8643d539bf86 - languageName: node - linkType: hard - -"human-signals@npm:^5.0.0": - version: 5.0.0 - resolution: "human-signals@npm:5.0.0" - checksum: 10/30f8870d831cdcd2d6ec0486a7d35d49384996742052cee792854273fa9dd9e7d5db06bb7985d4953e337e10714e994e0302e90dc6848069171b05ec836d65b0 - languageName: node - linkType: hard - -"iconv-lite@npm:0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3" - checksum: 10/6d3a2dac6e5d1fb126d25645c25c3a1209f70cceecc68b8ef51ae0da3cdc078c151fade7524a30b12a3094926336831fca09c666ef55b37e2c69638b5d6bd2e3 - languageName: node - linkType: hard - -"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": - version: 0.6.3 - resolution: "iconv-lite@npm:0.6.3" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 10/24e3292dd3dadaa81d065c6f8c41b274a47098150d444b96e5f53b4638a9a71482921ea6a91a1f59bb71d9796de25e04afd05919fa64c360347ba65d3766f10f - languageName: node - linkType: hard - -"identity-obj-proxy@npm:^3.0.0": - version: 3.0.0 - resolution: "identity-obj-proxy@npm:3.0.0" - dependencies: - harmony-reflect: "npm:^1.4.6" - checksum: 10/66fe4d2ffc67655174f6abe100ab3b36d2f5e4de5b28a7c3121e5f51bd4e7c8c1bee4f9a41ce0586ace57fb63bfedbfc39508b7cb43b9e3ed6dc42f762158b4e - languageName: node - linkType: hard - -"ieee754@npm:^1.1.13": - version: 1.2.1 - resolution: "ieee754@npm:1.2.1" - checksum: 10/d9f2557a59036f16c282aaeb107832dc957a93d73397d89bbad4eb1130560560eb695060145e8e6b3b498b15ab95510226649a0b8f52ae06583575419fe10fc4 - languageName: node - linkType: hard - -"ignore@npm:^5.2.0, ignore@npm:^5.2.4": - version: 5.3.1 - resolution: "ignore@npm:5.3.1" - checksum: 10/0a884c2fbc8c316f0b9f92beaf84464253b73230a4d4d286697be45fca081199191ca33e1c2e82d9e5f851f5e9a48a78e25a35c951e7eb41e59f150db3530065 - languageName: node - linkType: hard - -"import-fresh@npm:^3.2.1": - version: 3.3.0 - resolution: "import-fresh@npm:3.3.0" - dependencies: - parent-module: "npm:^1.0.0" - resolve-from: "npm:^4.0.0" - checksum: 10/2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa - languageName: node - linkType: hard - -"import-local@npm:^3.0.2": - version: 3.2.0 - resolution: "import-local@npm:3.2.0" - dependencies: - pkg-dir: "npm:^4.2.0" - resolve-cwd: "npm:^3.0.0" - bin: - import-local-fixture: fixtures/cli.js - checksum: 10/0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004 - languageName: node - linkType: hard - -"imurmurhash@npm:^0.1.4": - version: 0.1.4 - resolution: "imurmurhash@npm:0.1.4" - checksum: 10/2d30b157a91fe1c1d7c6f653cbf263f039be6c5bfa959245a16d4ee191fc0f2af86c08545b6e6beeb041c56b574d2d5b9f95343d378ab49c0f37394d541e7fc8 - languageName: node - linkType: hard - -"indent-string@npm:^4.0.0": - version: 4.0.0 - resolution: "indent-string@npm:4.0.0" - checksum: 10/cd3f5cbc9ca2d624c6a1f53f12e6b341659aba0e2d3254ae2b4464aaea8b4294cdb09616abbc59458f980531f2429784ed6a420d48d245bcad0811980c9efae9 - languageName: node - linkType: hard - -"inflight@npm:^1.0.4": - version: 1.0.6 - resolution: "inflight@npm:1.0.6" - dependencies: - once: "npm:^1.3.0" - wrappy: "npm:1" - checksum: 10/d2ebd65441a38c8336c223d1b80b921b9fa737e37ea466fd7e253cb000c64ae1f17fa59e68130ef5bda92cfd8d36b83d37dab0eb0a4558bcfec8e8cdfd2dcb67 - languageName: node - linkType: hard - -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.3, inherits@npm:^2.0.4": - version: 2.0.4 - resolution: "inherits@npm:2.0.4" - checksum: 10/cd45e923bee15186c07fa4c89db0aace24824c482fb887b528304694b2aa6ff8a898da8657046a5dcf3e46cd6db6c61629551f9215f208d7c3f157cf9b290521 - languageName: node - linkType: hard - -"ini@npm:2.0.0": - version: 2.0.0 - resolution: "ini@npm:2.0.0" - checksum: 10/04e24ba05c4f6947e15560824e153b4610bceea2f5a3ab68651d221a4aab3c77d4e3e90a917ebc8bf5ad71a30a8575de56c39d6b4c4b1375a28016b9f3625f9d - languageName: node - linkType: hard - -"internal-slot@npm:^1.0.4": - version: 1.0.7 - resolution: "internal-slot@npm:1.0.7" - dependencies: - es-errors: "npm:^1.3.0" - hasown: "npm:^2.0.0" - side-channel: "npm:^1.0.4" - checksum: 10/3e66720508831153ecf37d13def9f6856f9f2960989ec8a0a0476c98f887fca9eff0163127466485cb825c900c2d6fc601aa9117b7783b90ffce23a71ea5d053 - languageName: node - linkType: hard - -"ip-address@npm:^9.0.5": - version: 9.0.5 - resolution: "ip-address@npm:9.0.5" - dependencies: - jsbn: "npm:1.1.0" - sprintf-js: "npm:^1.1.3" - checksum: 10/1ed81e06721af012306329b31f532b5e24e00cb537be18ddc905a84f19fe8f83a09a1699862bf3a1ec4b9dea93c55a3fa5faf8b5ea380431469df540f38b092c - languageName: node - linkType: hard - -"ipaddr.js@npm:1.9.1": - version: 1.9.1 - resolution: "ipaddr.js@npm:1.9.1" - checksum: 10/864d0cced0c0832700e9621913a6429ccdc67f37c1bd78fb8c6789fff35c9d167cb329134acad2290497a53336813ab4798d2794fd675d5eb33b5fdf0982b9ca - languageName: node - linkType: hard - -"is-absolute-url@npm:^4.0.0": - version: 4.0.1 - resolution: "is-absolute-url@npm:4.0.1" - checksum: 10/de172a718439982a54477fdae55f21be69ec0e6a4b205db5484975d2f4ee749851fd46c28f3790dfc51a274c2ed1d0f8457b6d1fff02ab829069fd9cc761e48c - languageName: node - linkType: hard - -"is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": - version: 1.1.1 - resolution: "is-arguments@npm:1.1.1" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10/a170c7e26082e10de9be6e96d32ae3db4d5906194051b792e85fae3393b53cf2cb5b3557863e5c8ccbab55e2fd8f2f75aa643d437613f72052cf0356615c34be - languageName: node - linkType: hard - -"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4": - version: 3.0.4 - resolution: "is-array-buffer@npm:3.0.4" - dependencies: - call-bind: "npm:^1.0.2" - get-intrinsic: "npm:^1.2.1" - checksum: 10/34a26213d981d58b30724ef37a1e0682f4040d580fa9ff58fdfdd3cefcb2287921718c63971c1c404951e7b747c50fdc7caf6e867e951353fa71b369c04c969b - languageName: node - linkType: hard - -"is-arrayish@npm:^0.2.1": - version: 0.2.1 - resolution: "is-arrayish@npm:0.2.1" - checksum: 10/73ced84fa35e59e2c57da2d01e12cd01479f381d7f122ce41dcbb713f09dbfc651315832cd2bf8accba7681a69e4d6f1e03941d94dd10040d415086360e7005e - languageName: node - linkType: hard - -"is-bigint@npm:^1.0.1": - version: 1.0.4 - resolution: "is-bigint@npm:1.0.4" - dependencies: - has-bigints: "npm:^1.0.1" - checksum: 10/cc981cf0564c503aaccc1e5f39e994ae16ae2d1a8fcd14721f14ad431809071f39ec568cfceef901cff408045f1a6d6bac90d1b43eeb0b8e3bc34c8eb1bdb4c4 - languageName: node - linkType: hard - -"is-binary-path@npm:~2.1.0": - version: 2.1.0 - resolution: "is-binary-path@npm:2.1.0" - dependencies: - binary-extensions: "npm:^2.0.0" - checksum: 10/078e51b4f956c2c5fd2b26bb2672c3ccf7e1faff38e0ebdba45612265f4e3d9fc3127a1fa8370bbf09eab61339203c3d3b7af5662cbf8be4030f8fac37745b0e - languageName: node - linkType: hard - -"is-boolean-object@npm:^1.1.0": - version: 1.1.2 - resolution: "is-boolean-object@npm:1.1.2" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10/ba794223b56a49a9f185e945eeeb6b7833b8ea52a335cec087d08196cf27b538940001615d3bb976511287cefe94e5907d55f00bb49580533f9ca9b4515fcc2e - languageName: node - linkType: hard - -"is-callable@npm:^1.1.3": - version: 1.2.7 - resolution: "is-callable@npm:1.2.7" - checksum: 10/48a9297fb92c99e9df48706241a189da362bff3003354aea4048bd5f7b2eb0d823cd16d0a383cece3d76166ba16d85d9659165ac6fcce1ac12e6c649d66dbdb9 - languageName: node - linkType: hard - -"is-ci@npm:^3.0.1": - version: 3.0.1 - resolution: "is-ci@npm:3.0.1" - dependencies: - ci-info: "npm:^3.2.0" - bin: - is-ci: bin.js - checksum: 10/192c66dc7826d58f803ecae624860dccf1899fc1f3ac5505284c0a5cf5f889046ffeb958fa651e5725d5705c5bcb14f055b79150ea5fcad7456a9569de60260e - languageName: node - linkType: hard - -"is-core-module@npm:^2.13.0": - version: 2.15.0 - resolution: "is-core-module@npm:2.15.0" - dependencies: - hasown: "npm:^2.0.2" - checksum: 10/70e962543e5d3a97c07cb29144a86792d545a21f28e67da5401d85878a0193d46fbab8d97bc3ca680e2778705dca66e7b6ca840c493497a27ca0e8c5f3ac3d1d - languageName: node - linkType: hard - -"is-date-object@npm:^1.0.5": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10/cc80b3a4b42238fa0d358b9a6230dae40548b349e64a477cb7c5eff9b176ba194c11f8321daaf6dd157e44073e9b7fd01f87db1f14952a88d5657acdcd3a56e2 - languageName: node - linkType: hard - -"is-extglob@npm:^2.1.1": - version: 2.1.1 - resolution: "is-extglob@npm:2.1.1" - checksum: 10/df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 - languageName: node - linkType: hard - -"is-fullwidth-code-point@npm:^3.0.0": - version: 3.0.0 - resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: 10/44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 - languageName: node - linkType: hard - -"is-generator-fn@npm:^2.0.0": - version: 2.1.0 - resolution: "is-generator-fn@npm:2.1.0" - checksum: 10/a6ad5492cf9d1746f73b6744e0c43c0020510b59d56ddcb78a91cbc173f09b5e6beff53d75c9c5a29feb618bfef2bf458e025ecf3a57ad2268e2fb2569f56215 - languageName: node - linkType: hard - -"is-generator-function@npm:^1.0.7": - version: 1.0.10 - resolution: "is-generator-function@npm:1.0.10" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10/499a3ce6361064c3bd27fbff5c8000212d48506ebe1977842bbd7b3e708832d0deb1f4cc69186ece3640770e8c4f1287b24d99588a0b8058b2dbdd344bc1f47f - languageName: node - linkType: hard - -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": - version: 4.0.3 - resolution: "is-glob@npm:4.0.3" - dependencies: - is-extglob: "npm:^2.1.1" - checksum: 10/3ed74f2b0cdf4f401f38edb0442ddfde3092d79d7d35c9919c86641efdbcbb32e45aa3c0f70ce5eecc946896cd5a0f26e4188b9f2b881876f7cb6c505b82da11 - languageName: node - linkType: hard - -"is-installed-globally@npm:~0.4.0": - version: 0.4.0 - resolution: "is-installed-globally@npm:0.4.0" - dependencies: - global-dirs: "npm:^3.0.0" - is-path-inside: "npm:^3.0.2" - checksum: 10/5294d21c82cb9beedd693ce1dfb12117c4db36d6e35edc9dc6bf06cb300d23c96520d1bfb063386b054268ae3d7255c3f09393b52218cc26ace99b217bf37c93 - languageName: node - linkType: hard - -"is-interactive@npm:^1.0.0": - version: 1.0.0 - resolution: "is-interactive@npm:1.0.0" - checksum: 10/824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9 - languageName: node - linkType: hard - -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 10/93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 - 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.0.4": - version: 1.0.7 - resolution: "is-number-object@npm:1.0.7" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10/8700dcf7f602e0a9625830541345b8615d04953655acbf5c6d379c58eb1af1465e71227e95d501343346e1d49b6f2d53cbc166b1fc686a7ec19151272df582f9 - languageName: node - linkType: hard - -"is-number@npm:^7.0.0": - version: 7.0.0 - resolution: "is-number@npm:7.0.0" - checksum: 10/6a6c3383f68afa1e05b286af866017c78f1226d43ac8cb064e115ff9ed85eb33f5c4f7216c96a71e4dfea289ef52c5da3aef5bbfade8ffe47a0465d70c0c8e86 - languageName: node - linkType: hard - -"is-path-inside@npm:^3.0.2, is-path-inside@npm:^3.0.3": - version: 3.0.3 - resolution: "is-path-inside@npm:3.0.3" - checksum: 10/abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 - languageName: node - linkType: hard - -"is-plain-object@npm:5.0.0": - version: 5.0.0 - resolution: "is-plain-object@npm:5.0.0" - checksum: 10/e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c - languageName: node - linkType: hard - -"is-plain-object@npm:^2.0.4": - version: 2.0.4 - resolution: "is-plain-object@npm:2.0.4" - dependencies: - isobject: "npm:^3.0.1" - checksum: 10/2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca - languageName: node - linkType: hard - -"is-potential-custom-element-name@npm:^1.0.1": - version: 1.0.1 - resolution: "is-potential-custom-element-name@npm:1.0.1" - checksum: 10/ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab - languageName: node - linkType: hard - -"is-regex@npm:^1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" - dependencies: - call-bind: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.0" - checksum: 10/36d9174d16d520b489a5e9001d7d8d8624103b387be300c50f860d9414556d0485d74a612fdafc6ebbd5c89213d947dcc6b6bff6b2312093f71ea03cbb19e564 - 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.3 - resolution: "is-shared-array-buffer@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.7" - checksum: 10/bc5402900dc62b96ebb2548bf5b0a0bcfacc2db122236fe3ab3b3e3c884293a0d5eb777e73f059bcbf8dc8563bb65eae972fee0fb97e38a9ae27c8678f62bcfe - languageName: node - linkType: hard - -"is-stream@npm:^2.0.0": - version: 2.0.1 - resolution: "is-stream@npm:2.0.1" - checksum: 10/b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 - languageName: node - linkType: hard - -"is-stream@npm:^3.0.0": - version: 3.0.0 - resolution: "is-stream@npm:3.0.0" - checksum: 10/172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 - languageName: node - linkType: hard - -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10/2bc292fe927493fb6dfc3338c099c3efdc41f635727c6ebccf704aeb2a27bca7acb9ce6fd34d103db78692b10b22111a8891de26e12bfa1c5e11e263c99d1fef - languageName: node - linkType: hard - -"is-symbol@npm:^1.0.3": - version: 1.0.4 - resolution: "is-symbol@npm:1.0.4" - dependencies: - has-symbols: "npm:^1.0.2" - checksum: 10/a47dd899a84322528b71318a89db25c7ecdec73197182dad291df15ffea501e17e3c92c8de0bfb50e63402747399981a687b31c519971b1fa1a27413612be929 - languageName: node - linkType: hard - -"is-typed-array@npm:^1.1.3": - version: 1.1.13 - resolution: "is-typed-array@npm:1.1.13" - dependencies: - which-typed-array: "npm:^1.1.14" - checksum: 10/f850ba08286358b9a11aee6d93d371a45e3c59b5953549ee1c1a9a55ba5c1dd1bd9952488ae194ad8f32a9cf5e79c8fa5f0cc4d78c00720aa0bbcf238b38062d - languageName: node - linkType: hard - -"is-typedarray@npm:~1.0.0": - version: 1.0.0 - resolution: "is-typedarray@npm:1.0.0" - checksum: 10/4b433bfb0f9026f079f4eb3fbaa4ed2de17c9995c3a0b5c800bec40799b4b2a8b4e051b1ada77749deb9ded4ae52fe2096973f3a93ff83df1a5a7184a669478c - languageName: node - linkType: hard - -"is-unicode-supported@npm:^0.1.0": - version: 0.1.0 - resolution: "is-unicode-supported@npm:0.1.0" - checksum: 10/a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 - 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.3 - resolution: "is-weakset@npm:2.0.3" - dependencies: - call-bind: "npm:^1.0.7" - get-intrinsic: "npm:^1.2.4" - checksum: 10/40159582ff1b44fc40085f631baf19f56479b05af2faede65b4e6a0b6acab745c13fd070e35b475aafd8a1ee50879ba5a3f1265125b46bebdb446b6be1f62165 - 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" - checksum: 10/7c9f715c03aff08f35e98b1fadae1b9267b38f0615d501824f9743f3aab99ef10e303ce7db3f186763a0b70a19de5791ebfc854ff884d5a8c4d92211f642ec92 - languageName: node - linkType: hard - -"isexe@npm:^3.1.1": - version: 3.1.1 - resolution: "isexe@npm:3.1.1" - checksum: 10/7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e - languageName: node - linkType: hard - -"isobject@npm:^3.0.1": - version: 3.0.1 - resolution: "isobject@npm:3.0.1" - checksum: 10/db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 - languageName: node - linkType: hard - -"isstream@npm:~0.1.2": - version: 0.1.2 - resolution: "isstream@npm:0.1.2" - checksum: 10/22d9c181015226d4534a227539256897bbbcb7edd1066ca4fc4d3a06dbd976325dfdd16b3983c7d236a89f256805c1a685a772e0364e98873d3819b064ad35a1 - languageName: node - linkType: hard - -"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": - version: 3.2.2 - resolution: "istanbul-lib-coverage@npm:3.2.2" - checksum: 10/40bbdd1e937dfd8c830fa286d0f665e81b7a78bdabcd4565f6d5667c99828bda3db7fb7ac6b96a3e2e8a2461ddbc5452d9f8bc7d00cb00075fa6a3e99f5b6a81 - languageName: node - linkType: hard - -"istanbul-lib-instrument@npm:^5.0.4": - version: 5.2.1 - resolution: "istanbul-lib-instrument@npm:5.2.1" - dependencies: - "@babel/core": "npm:^7.12.3" - "@babel/parser": "npm:^7.14.7" - "@istanbuljs/schema": "npm:^0.1.2" - istanbul-lib-coverage: "npm:^3.2.0" - semver: "npm:^6.3.0" - checksum: 10/bbc4496c2f304d799f8ec22202ab38c010ac265c441947f075c0f7d46bd440b45c00e46017cf9053453d42182d768b1d6ed0e70a142c95ab00df9843aa5ab80e - languageName: node - linkType: hard - -"istanbul-lib-instrument@npm:^6.0.0": - version: 6.0.3 - resolution: "istanbul-lib-instrument@npm:6.0.3" - dependencies: - "@babel/core": "npm:^7.23.9" - "@babel/parser": "npm:^7.23.9" - "@istanbuljs/schema": "npm:^0.1.3" - istanbul-lib-coverage: "npm:^3.2.0" - semver: "npm:^7.5.4" - checksum: 10/aa5271c0008dfa71b6ecc9ba1e801bf77b49dc05524e8c30d58aaf5b9505e0cd12f25f93165464d4266a518c5c75284ecb598fbd89fec081ae77d2c9d3327695 - languageName: node - linkType: hard - -"istanbul-lib-report@npm:^3.0.0": - version: 3.0.1 - resolution: "istanbul-lib-report@npm:3.0.1" - dependencies: - istanbul-lib-coverage: "npm:^3.0.0" - make-dir: "npm:^4.0.0" - supports-color: "npm:^7.1.0" - checksum: 10/86a83421ca1cf2109a9f6d193c06c31ef04a45e72a74579b11060b1e7bb9b6337a4e6f04abfb8857e2d569c271273c65e855ee429376a0d7c91ad91db42accd1 - languageName: node - linkType: hard - -"istanbul-lib-source-maps@npm:^4.0.0": - version: 4.0.1 - resolution: "istanbul-lib-source-maps@npm:4.0.1" - dependencies: - debug: "npm:^4.1.1" - istanbul-lib-coverage: "npm:^3.0.0" - source-map: "npm:^0.6.1" - checksum: 10/5526983462799aced011d776af166e350191b816821ea7bcf71cab3e5272657b062c47dc30697a22a43656e3ced78893a42de677f9ccf276a28c913190953b82 - languageName: node - linkType: hard - -"istanbul-reports@npm:^3.1.3": - version: 3.1.7 - resolution: "istanbul-reports@npm:3.1.7" - dependencies: - html-escaper: "npm:^2.0.0" - istanbul-lib-report: "npm:^3.0.0" - checksum: 10/f1faaa4684efaf57d64087776018d7426312a59aa6eeb4e0e3a777347d23cd286ad18f427e98f0e3dee666103d7404c9d7abc5f240406a912fa16bd6695437fa - languageName: node - linkType: hard - -"jackspeak@npm:^3.1.2": - version: 3.4.3 - resolution: "jackspeak@npm:3.4.3" - dependencies: - "@isaacs/cliui": "npm:^8.0.2" - "@pkgjs/parseargs": "npm:^0.11.0" - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: 10/96f8786eaab98e4bf5b2a5d6d9588ea46c4d06bbc4f2eb861fdd7b6b182b16f71d8a70e79820f335d52653b16d4843b29dd9cdcf38ae80406756db9199497cf3 - languageName: node - linkType: hard - -"jest-changed-files@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-changed-files@npm:29.7.0" - dependencies: - execa: "npm:^5.0.0" - jest-util: "npm:^29.7.0" - p-limit: "npm:^3.1.0" - checksum: 10/3d93742e56b1a73a145d55b66e96711fbf87ef89b96c2fab7cfdfba8ec06612591a982111ca2b712bb853dbc16831ec8b43585a2a96b83862d6767de59cbf83d - languageName: node - linkType: hard - -"jest-circus@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-circus@npm:29.7.0" - dependencies: - "@jest/environment": "npm:^29.7.0" - "@jest/expect": "npm:^29.7.0" - "@jest/test-result": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - "@types/node": "npm:*" - chalk: "npm:^4.0.0" - co: "npm:^4.6.0" - dedent: "npm:^1.0.0" - is-generator-fn: "npm:^2.0.0" - jest-each: "npm:^29.7.0" - jest-matcher-utils: "npm:^29.7.0" - jest-message-util: "npm:^29.7.0" - jest-runtime: "npm:^29.7.0" - jest-snapshot: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - p-limit: "npm:^3.1.0" - pretty-format: "npm:^29.7.0" - pure-rand: "npm:^6.0.0" - slash: "npm:^3.0.0" - stack-utils: "npm:^2.0.3" - checksum: 10/716a8e3f40572fd0213bcfc1da90274bf30d856e5133af58089a6ce45089b63f4d679bd44e6be9d320e8390483ebc3ae9921981993986d21639d9019b523123d - languageName: node - linkType: hard - -"jest-cli@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-cli@npm:29.7.0" - dependencies: - "@jest/core": "npm:^29.7.0" - "@jest/test-result": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - chalk: "npm:^4.0.0" - create-jest: "npm:^29.7.0" - exit: "npm:^0.1.2" - import-local: "npm:^3.0.2" - jest-config: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - jest-validate: "npm:^29.7.0" - yargs: "npm:^17.3.1" - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 10/6cc62b34d002c034203065a31e5e9a19e7c76d9e8ef447a6f70f759c0714cb212c6245f75e270ba458620f9c7b26063cd8cf6cd1f7e3afd659a7cc08add17307 - languageName: node - linkType: hard - -"jest-config@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-config@npm:29.7.0" - dependencies: - "@babel/core": "npm:^7.11.6" - "@jest/test-sequencer": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - babel-jest: "npm:^29.7.0" - chalk: "npm:^4.0.0" - ci-info: "npm:^3.2.0" - deepmerge: "npm:^4.2.2" - glob: "npm:^7.1.3" - graceful-fs: "npm:^4.2.9" - jest-circus: "npm:^29.7.0" - jest-environment-node: "npm:^29.7.0" - jest-get-type: "npm:^29.6.3" - jest-regex-util: "npm:^29.6.3" - jest-resolve: "npm:^29.7.0" - jest-runner: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - jest-validate: "npm:^29.7.0" - micromatch: "npm:^4.0.4" - parse-json: "npm:^5.2.0" - pretty-format: "npm:^29.7.0" - slash: "npm:^3.0.0" - strip-json-comments: "npm:^3.1.1" - peerDependencies: - "@types/node": "*" - ts-node: ">=9.0.0" - peerDependenciesMeta: - "@types/node": - optional: true - ts-node: - optional: true - checksum: 10/6bdf570e9592e7d7dd5124fc0e21f5fe92bd15033513632431b211797e3ab57eaa312f83cc6481b3094b72324e369e876f163579d60016677c117ec4853cf02b - languageName: node - linkType: hard - -"jest-diff@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-diff@npm:29.7.0" - dependencies: - chalk: "npm:^4.0.0" - diff-sequences: "npm:^29.6.3" - jest-get-type: "npm:^29.6.3" - pretty-format: "npm:^29.7.0" - checksum: 10/6f3a7eb9cd9de5ea9e5aa94aed535631fa6f80221832952839b3cb59dd419b91c20b73887deb0b62230d06d02d6b6cf34ebb810b88d904bb4fe1e2e4f0905c98 - languageName: node - linkType: hard - -"jest-docblock@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-docblock@npm:29.7.0" - dependencies: - detect-newline: "npm:^3.0.0" - checksum: 10/8d48818055bc96c9e4ec2e217a5a375623c0d0bfae8d22c26e011074940c202aa2534a3362294c81d981046885c05d304376afba9f2874143025981148f3e96d - languageName: node - linkType: hard - -"jest-each@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-each@npm:29.7.0" - dependencies: - "@jest/types": "npm:^29.6.3" - chalk: "npm:^4.0.0" - jest-get-type: "npm:^29.6.3" - jest-util: "npm:^29.7.0" - pretty-format: "npm:^29.7.0" - checksum: 10/bd1a077654bdaa013b590deb5f7e7ade68f2e3289180a8c8f53bc8a49f3b40740c0ec2d3a3c1aee906f682775be2bebbac37491d80b634d15276b0aa0f2e3fda - languageName: node - linkType: hard - -"jest-environment-jsdom@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-environment-jsdom@npm:29.7.0" - dependencies: - "@jest/environment": "npm:^29.7.0" - "@jest/fake-timers": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - "@types/jsdom": "npm:^20.0.0" - "@types/node": "npm:*" - jest-mock: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - jsdom: "npm:^20.0.0" - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 10/23bbfc9bca914baef4b654f7983175a4d49b0f515a5094ebcb8f819f28ec186f53c0ba06af1855eac04bab1457f4ea79dae05f70052cf899863e8096daa6e0f5 - languageName: node - linkType: hard - -"jest-environment-node@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-environment-node@npm:29.7.0" - dependencies: - "@jest/environment": "npm:^29.7.0" - "@jest/fake-timers": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - "@types/node": "npm:*" - jest-mock: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - checksum: 10/9cf7045adf2307cc93aed2f8488942e39388bff47ec1df149a997c6f714bfc66b2056768973770d3f8b1bf47396c19aa564877eb10ec978b952c6018ed1bd637 - languageName: node - linkType: hard - -"jest-get-type@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-get-type@npm:29.6.3" - checksum: 10/88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205 - languageName: node - linkType: hard - -"jest-haste-map@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-haste-map@npm:29.7.0" - dependencies: - "@jest/types": "npm:^29.6.3" - "@types/graceful-fs": "npm:^4.1.3" - "@types/node": "npm:*" - anymatch: "npm:^3.0.3" - fb-watchman: "npm:^2.0.0" - fsevents: "npm:^2.3.2" - graceful-fs: "npm:^4.2.9" - jest-regex-util: "npm:^29.6.3" - jest-util: "npm:^29.7.0" - jest-worker: "npm:^29.7.0" - micromatch: "npm:^4.0.4" - walker: "npm:^1.0.8" - dependenciesMeta: - fsevents: - optional: true - checksum: 10/8531b42003581cb18a69a2774e68c456fb5a5c3280b1b9b77475af9e346b6a457250f9d756bfeeae2fe6cbc9ef28434c205edab9390ee970a919baddfa08bb85 - languageName: node - linkType: hard - -"jest-leak-detector@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-leak-detector@npm:29.7.0" - dependencies: - jest-get-type: "npm:^29.6.3" - pretty-format: "npm:^29.7.0" - checksum: 10/e3950e3ddd71e1d0c22924c51a300a1c2db6cf69ec1e51f95ccf424bcc070f78664813bef7aed4b16b96dfbdeea53fe358f8aeaaea84346ae15c3735758f1605 - languageName: node - linkType: hard - -"jest-matcher-utils@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-matcher-utils@npm:29.7.0" - dependencies: - chalk: "npm:^4.0.0" - jest-diff: "npm:^29.7.0" - jest-get-type: "npm:^29.6.3" - pretty-format: "npm:^29.7.0" - checksum: 10/981904a494299cf1e3baed352f8a3bd8b50a8c13a662c509b6a53c31461f94ea3bfeffa9d5efcfeb248e384e318c87de7e3baa6af0f79674e987482aa189af40 - languageName: node - linkType: hard - -"jest-message-util@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-message-util@npm:29.7.0" - dependencies: - "@babel/code-frame": "npm:^7.12.13" - "@jest/types": "npm:^29.6.3" - "@types/stack-utils": "npm:^2.0.0" - chalk: "npm:^4.0.0" - graceful-fs: "npm:^4.2.9" - micromatch: "npm:^4.0.4" - pretty-format: "npm:^29.7.0" - slash: "npm:^3.0.0" - stack-utils: "npm:^2.0.3" - checksum: 10/31d53c6ed22095d86bab9d14c0fa70c4a92c749ea6ceece82cf30c22c9c0e26407acdfbdb0231435dc85a98d6d65ca0d9cbcd25cd1abb377fe945e843fb770b9 - languageName: node - linkType: hard - -"jest-mock@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-mock@npm:29.7.0" - dependencies: - "@jest/types": "npm:^29.6.3" - "@types/node": "npm:*" - jest-util: "npm:^29.7.0" - checksum: 10/ae51d1b4f898724be5e0e52b2268a68fcd876d9b20633c864a6dd6b1994cbc48d62402b0f40f3a1b669b30ebd648821f086c26c08ffde192ced951ff4670d51c - languageName: node - linkType: hard - -"jest-pnp-resolver@npm:^1.2.2": - version: 1.2.3 - resolution: "jest-pnp-resolver@npm:1.2.3" - peerDependencies: - jest-resolve: "*" - peerDependenciesMeta: - jest-resolve: - optional: true - checksum: 10/db1a8ab2cb97ca19c01b1cfa9a9c8c69a143fde833c14df1fab0766f411b1148ff0df878adea09007ac6a2085ec116ba9a996a6ad104b1e58c20adbf88eed9b2 - languageName: node - linkType: hard - -"jest-regex-util@npm:^29.6.3": - version: 29.6.3 - resolution: "jest-regex-util@npm:29.6.3" - checksum: 10/0518beeb9bf1228261695e54f0feaad3606df26a19764bc19541e0fc6e2a3737191904607fb72f3f2ce85d9c16b28df79b7b1ec9443aa08c3ef0e9efda6f8f2a - languageName: node - linkType: hard - -"jest-resolve-dependencies@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-resolve-dependencies@npm:29.7.0" - dependencies: - jest-regex-util: "npm:^29.6.3" - jest-snapshot: "npm:^29.7.0" - checksum: 10/1e206f94a660d81e977bcfb1baae6450cb4a81c92e06fad376cc5ea16b8e8c6ea78c383f39e95591a9eb7f925b6a1021086c38941aa7c1b8a6a813c2f6e93675 - languageName: node - linkType: hard - -"jest-resolve@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-resolve@npm:29.7.0" - dependencies: - chalk: "npm:^4.0.0" - graceful-fs: "npm:^4.2.9" - jest-haste-map: "npm:^29.7.0" - jest-pnp-resolver: "npm:^1.2.2" - jest-util: "npm:^29.7.0" - jest-validate: "npm:^29.7.0" - resolve: "npm:^1.20.0" - resolve.exports: "npm:^2.0.0" - slash: "npm:^3.0.0" - checksum: 10/faa466fd9bc69ea6c37a545a7c6e808e073c66f46ab7d3d8a6ef084f8708f201b85d5fe1799789578b8b47fa1de47b9ee47b414d1863bc117a49e032ba77b7c7 - languageName: node - linkType: hard - -"jest-runner@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-runner@npm:29.7.0" - dependencies: - "@jest/console": "npm:^29.7.0" - "@jest/environment": "npm:^29.7.0" - "@jest/test-result": "npm:^29.7.0" - "@jest/transform": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - "@types/node": "npm:*" - chalk: "npm:^4.0.0" - emittery: "npm:^0.13.1" - graceful-fs: "npm:^4.2.9" - jest-docblock: "npm:^29.7.0" - jest-environment-node: "npm:^29.7.0" - jest-haste-map: "npm:^29.7.0" - jest-leak-detector: "npm:^29.7.0" - jest-message-util: "npm:^29.7.0" - jest-resolve: "npm:^29.7.0" - jest-runtime: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - jest-watcher: "npm:^29.7.0" - jest-worker: "npm:^29.7.0" - p-limit: "npm:^3.1.0" - source-map-support: "npm:0.5.13" - checksum: 10/9d8748a494bd90f5c82acea99be9e99f21358263ce6feae44d3f1b0cd90991b5df5d18d607e73c07be95861ee86d1cbab2a3fc6ca4b21805f07ac29d47c1da1e - languageName: node - linkType: hard - -"jest-runtime@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-runtime@npm:29.7.0" - dependencies: - "@jest/environment": "npm:^29.7.0" - "@jest/fake-timers": "npm:^29.7.0" - "@jest/globals": "npm:^29.7.0" - "@jest/source-map": "npm:^29.6.3" - "@jest/test-result": "npm:^29.7.0" - "@jest/transform": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - "@types/node": "npm:*" - chalk: "npm:^4.0.0" - cjs-module-lexer: "npm:^1.0.0" - collect-v8-coverage: "npm:^1.0.0" - glob: "npm:^7.1.3" - graceful-fs: "npm:^4.2.9" - jest-haste-map: "npm:^29.7.0" - jest-message-util: "npm:^29.7.0" - jest-mock: "npm:^29.7.0" - jest-regex-util: "npm:^29.6.3" - jest-resolve: "npm:^29.7.0" - jest-snapshot: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - slash: "npm:^3.0.0" - strip-bom: "npm:^4.0.0" - checksum: 10/59eb58eb7e150e0834a2d0c0d94f2a0b963ae7182cfa6c63f2b49b9c6ef794e5193ef1634e01db41420c36a94cefc512cdd67a055cd3e6fa2f41eaf0f82f5a20 - languageName: node - linkType: hard - -"jest-snapshot@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-snapshot@npm:29.7.0" - dependencies: - "@babel/core": "npm:^7.11.6" - "@babel/generator": "npm:^7.7.2" - "@babel/plugin-syntax-jsx": "npm:^7.7.2" - "@babel/plugin-syntax-typescript": "npm:^7.7.2" - "@babel/types": "npm:^7.3.3" - "@jest/expect-utils": "npm:^29.7.0" - "@jest/transform": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - babel-preset-current-node-syntax: "npm:^1.0.0" - chalk: "npm:^4.0.0" - expect: "npm:^29.7.0" - graceful-fs: "npm:^4.2.9" - jest-diff: "npm:^29.7.0" - jest-get-type: "npm:^29.6.3" - jest-matcher-utils: "npm:^29.7.0" - jest-message-util: "npm:^29.7.0" - jest-util: "npm:^29.7.0" - natural-compare: "npm:^1.4.0" - pretty-format: "npm:^29.7.0" - semver: "npm:^7.5.3" - checksum: 10/cb19a3948256de5f922d52f251821f99657339969bf86843bd26cf3332eae94883e8260e3d2fba46129a27c3971c1aa522490e460e16c7fad516e82d10bbf9f8 - languageName: node - linkType: hard - -"jest-util@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-util@npm:29.7.0" - dependencies: - "@jest/types": "npm:^29.6.3" - "@types/node": "npm:*" - chalk: "npm:^4.0.0" - ci-info: "npm:^3.2.0" - graceful-fs: "npm:^4.2.9" - picomatch: "npm:^2.2.3" - checksum: 10/30d58af6967e7d42bd903ccc098f3b4d3859ed46238fbc88d4add6a3f10bea00c226b93660285f058bc7a65f6f9529cf4eb80f8d4707f79f9e3a23686b4ab8f3 - languageName: node - linkType: hard - -"jest-validate@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-validate@npm:29.7.0" - dependencies: - "@jest/types": "npm:^29.6.3" - camelcase: "npm:^6.2.0" - chalk: "npm:^4.0.0" - jest-get-type: "npm:^29.6.3" - leven: "npm:^3.1.0" - pretty-format: "npm:^29.7.0" - checksum: 10/8ee1163666d8eaa16d90a989edba2b4a3c8ab0ffaa95ad91b08ca42b015bfb70e164b247a5b17f9de32d096987cada63ed8491ab82761bfb9a28bc34b27ae161 - languageName: node - linkType: hard - -"jest-watcher@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-watcher@npm:29.7.0" - dependencies: - "@jest/test-result": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - "@types/node": "npm:*" - ansi-escapes: "npm:^4.2.1" - chalk: "npm:^4.0.0" - emittery: "npm:^0.13.1" - jest-util: "npm:^29.7.0" - string-length: "npm:^4.0.1" - checksum: 10/4f616e0345676631a7034b1d94971aaa719f0cd4a6041be2aa299be437ea047afd4fe05c48873b7963f5687a2f6c7cbf51244be8b14e313b97bfe32b1e127e55 - languageName: node - linkType: hard - -"jest-worker@npm:^29.7.0": - version: 29.7.0 - resolution: "jest-worker@npm:29.7.0" - dependencies: - "@types/node": "npm:*" - jest-util: "npm:^29.7.0" - merge-stream: "npm:^2.0.0" - supports-color: "npm:^8.0.0" - checksum: 10/364cbaef00d8a2729fc760227ad34b5e60829e0869bd84976bdfbd8c0d0f9c2f22677b3e6dd8afa76ed174765351cd12bae3d4530c62eefb3791055127ca9745 - languageName: node - linkType: hard - -"jest@npm:^29.7.0": - version: 29.7.0 - resolution: "jest@npm:29.7.0" - dependencies: - "@jest/core": "npm:^29.7.0" - "@jest/types": "npm:^29.6.3" - import-local: "npm:^3.0.2" - jest-cli: "npm:^29.7.0" - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - bin: - jest: bin/jest.js - checksum: 10/97023d78446098c586faaa467fbf2c6b07ff06e2c85a19e3926adb5b0effe9ac60c4913ae03e2719f9c01ae8ffd8d92f6b262cedb9555ceeb5d19263d8c6362a - languageName: node - linkType: hard - -"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": - version: 4.0.0 - resolution: "js-tokens@npm:4.0.0" - checksum: 10/af37d0d913fb56aec6dc0074c163cc71cd23c0b8aad5c2350747b6721d37ba118af35abdd8b33c47ec2800de07dedb16a527ca9c530ee004093e04958bd0cbf2 - languageName: node - linkType: hard - -"js-yaml@npm:^3.13.1": - version: 3.14.1 - resolution: "js-yaml@npm:3.14.1" - dependencies: - argparse: "npm:^1.0.7" - esprima: "npm:^4.0.0" - bin: - js-yaml: bin/js-yaml.js - checksum: 10/9e22d80b4d0105b9899135365f746d47466ed53ef4223c529b3c0f7a39907743fdbd3c4379f94f1106f02755b5e90b2faaf84801a891135544e1ea475d1a1379 - 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 - -"jsbn@npm:1.1.0": - version: 1.1.0 - resolution: "jsbn@npm:1.1.0" - checksum: 10/bebe7ae829bbd586ce8cbe83501dd8cb8c282c8902a8aeeed0a073a89dc37e8103b1244f3c6acd60278bcbfe12d93a3f83c9ac396868a3b3bbc3c5e5e3b648ef - languageName: node - linkType: hard - -"jsbn@npm:~0.1.0": - version: 0.1.1 - resolution: "jsbn@npm:0.1.1" - checksum: 10/5450133242845100e694f0ef9175f44c012691a9b770b2571e677314e6f70600abb10777cdfc9a0c6a9f2ac6d134577403633de73e2fcd0f97875a67744e2d14 - languageName: node - linkType: hard - -"jscodeshift@npm:^0.15.1": - version: 0.15.2 - resolution: "jscodeshift@npm:0.15.2" - dependencies: - "@babel/core": "npm:^7.23.0" - "@babel/parser": "npm:^7.23.0" - "@babel/plugin-transform-class-properties": "npm:^7.22.5" - "@babel/plugin-transform-modules-commonjs": "npm:^7.23.0" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.22.11" - "@babel/plugin-transform-optional-chaining": "npm:^7.23.0" - "@babel/plugin-transform-private-methods": "npm:^7.22.5" - "@babel/preset-flow": "npm:^7.22.15" - "@babel/preset-typescript": "npm:^7.23.0" - "@babel/register": "npm:^7.22.15" - babel-core: "npm:^7.0.0-bridge.0" - chalk: "npm:^4.1.2" - flow-parser: "npm:0.*" - graceful-fs: "npm:^4.2.4" - micromatch: "npm:^4.0.4" - neo-async: "npm:^2.5.0" - node-dir: "npm:^0.1.17" - recast: "npm:^0.23.3" - temp: "npm:^0.8.4" - write-file-atomic: "npm:^2.3.0" - peerDependencies: - "@babel/preset-env": ^7.1.6 - peerDependenciesMeta: - "@babel/preset-env": - optional: true - bin: - jscodeshift: bin/jscodeshift.js - checksum: 10/5f4354d80a95de4dba5dd402e97e5bba8c6b31261f426719cb184099ac83c57c47e4160923b7c035a5da4113e56c39eb68233e3b55a910372013d66d3b1f1c64 - languageName: node - linkType: hard - -"jsdom@npm:^20.0.0": - version: 20.0.3 - resolution: "jsdom@npm:20.0.3" - dependencies: - abab: "npm:^2.0.6" - acorn: "npm:^8.8.1" - acorn-globals: "npm:^7.0.0" - cssom: "npm:^0.5.0" - cssstyle: "npm:^2.3.0" - data-urls: "npm:^3.0.2" - decimal.js: "npm:^10.4.2" - domexception: "npm:^4.0.0" - escodegen: "npm:^2.0.0" - form-data: "npm:^4.0.0" - html-encoding-sniffer: "npm:^3.0.0" - http-proxy-agent: "npm:^5.0.0" - https-proxy-agent: "npm:^5.0.1" - is-potential-custom-element-name: "npm:^1.0.1" - nwsapi: "npm:^2.2.2" - parse5: "npm:^7.1.1" - saxes: "npm:^6.0.0" - symbol-tree: "npm:^3.2.4" - tough-cookie: "npm:^4.1.2" - w3c-xmlserializer: "npm:^4.0.0" - webidl-conversions: "npm:^7.0.0" - whatwg-encoding: "npm:^2.0.0" - whatwg-mimetype: "npm:^3.0.0" - whatwg-url: "npm:^11.0.0" - ws: "npm:^8.11.0" - xml-name-validator: "npm:^4.0.0" - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 10/a4cdcff5b07eed87da90b146b82936321533b5efe8124492acf7160ebd5b9cf2b3c2435683592bf1cffb479615245756efb6c173effc1906f845a86ed22af985 - languageName: node - linkType: hard - -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" - bin: - jsesc: bin/jsesc - checksum: 10/d2096abdcdec56969764b40ffc91d4a23408aa2f351b4d1c13f736f25476643238c43fdbaf38a191c26b1b78fd856d965f5d4d0dde7b89459cd94025190cdf13 - languageName: node - linkType: hard - -"jsesc@npm:~0.5.0": - version: 0.5.0 - resolution: "jsesc@npm:0.5.0" - bin: - jsesc: bin/jsesc - checksum: 10/fab949f585c71e169c5cbe00f049f20de74f067081bbd64a55443bad1c71e1b5a5b448f2359bf2fe06f5ed7c07e2e4a9101843b01c823c30b6afc11f5bfaf724 - languageName: node - linkType: hard - -"json-buffer@npm:3.0.1": - version: 3.0.1 - resolution: "json-buffer@npm:3.0.1" - checksum: 10/82876154521b7b68ba71c4f969b91572d1beabadd87bd3a6b236f85fbc7dc4695089191ed60bb59f9340993c51b33d479f45b6ba9f3548beb519705281c32c3c - languageName: node - linkType: hard - -"json-parse-even-better-errors@npm:^2.3.0": - version: 2.3.1 - resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 10/5f3a99009ed5f2a5a67d06e2f298cc97bc86d462034173308156f15b43a6e850be8511dc204b9b94566305da2947f7d90289657237d210351a39059ff9d666cf - languageName: node - linkType: hard - -"json-schema-traverse@npm:^0.4.1": - version: 0.4.1 - resolution: "json-schema-traverse@npm:0.4.1" - checksum: 10/7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b - languageName: node - linkType: hard - -"json-schema@npm:0.4.0": - version: 0.4.0 - resolution: "json-schema@npm:0.4.0" - checksum: 10/8b3b64eff4a807dc2a3045b104ed1b9335cd8d57aa74c58718f07f0f48b8baa3293b00af4dcfbdc9144c3aafea1e97982cc27cc8e150fc5d93c540649507a458 - languageName: node - linkType: hard - -"json-stable-stringify-without-jsonify@npm:^1.0.1": - version: 1.0.1 - resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" - checksum: 10/12786c2e2f22c27439e6db0532ba321f1d0617c27ad8cb1c352a0e9249a50182fd1ba8b52a18899291604b0c32eafa8afd09e51203f19109a0537f68db2b652d - languageName: node - linkType: hard - -"json-stringify-safe@npm:~5.0.1": - version: 5.0.1 - resolution: "json-stringify-safe@npm:5.0.1" - checksum: 10/59169a081e4eeb6f9559ae1f938f656191c000e0512aa6df9f3c8b2437a4ab1823819c6b9fd1818a4e39593ccfd72e9a051fdd3e2d1e340ed913679e888ded8c - languageName: node - linkType: hard - -"json5@npm:^2.2.2, json5@npm:^2.2.3": - version: 2.2.3 - resolution: "json5@npm:2.2.3" - bin: - json5: lib/cli.js - checksum: 10/1db67b853ff0de3534085d630691d3247de53a2ed1390ba0ddff681ea43e9b3e30ecbdb65c5e9aab49435e44059c23dbd6fee8ee619419ba37465bb0dd7135da - languageName: node - linkType: hard - -"jsonc-parser@npm:^3.2.0": - version: 3.3.1 - resolution: "jsonc-parser@npm:3.3.1" - checksum: 10/9b0dc391f20b47378f843ef1e877e73ec652a5bdc3c5fa1f36af0f119a55091d147a86c1ee86a232296f55c929bba174538c2bf0312610e0817a22de131cc3f4 - languageName: node - linkType: hard - -"jsonfile@npm:^6.0.1": - version: 6.1.0 - resolution: "jsonfile@npm:6.1.0" - dependencies: - graceful-fs: "npm:^4.1.6" - universalify: "npm:^2.0.0" - dependenciesMeta: - graceful-fs: - optional: true - checksum: 10/03014769e7dc77d4cf05fa0b534907270b60890085dd5e4d60a382ff09328580651da0b8b4cdf44d91e4c8ae64d91791d965f05707beff000ed494a38b6fec85 - languageName: node - linkType: hard - -"jsprim@npm:^2.0.2": - version: 2.0.2 - resolution: "jsprim@npm:2.0.2" - dependencies: - assert-plus: "npm:1.0.0" - extsprintf: "npm:1.3.0" - json-schema: "npm:0.4.0" - verror: "npm:1.10.0" - checksum: 10/fcfca5b55f83e1b8be5f932c71754bd37afd2611f81685abd05689e8ce718a91155ff7bd5b94c65ce483a787b5c43c6d0c18c1d2259fca5bb61a3f8ea2e29c0a - languageName: node - linkType: hard - -"keyv@npm:^4.5.3": - version: 4.5.4 - resolution: "keyv@npm:4.5.4" - dependencies: - json-buffer: "npm:3.0.1" - checksum: 10/167eb6ef64cc84b6fa0780ee50c9de456b422a1e18802209234f7c2cf7eae648c7741f32e50d7e24ccb22b24c13154070b01563d642755b156c357431a191e75 - languageName: node - linkType: hard - -"kind-of@npm:^6.0.2": - version: 6.0.3 - resolution: "kind-of@npm:6.0.3" - checksum: 10/5873d303fb36aad875b7538798867da2ae5c9e328d67194b0162a3659a627d22f742fc9c4ae95cd1704132a24b00cae5041fc00c0f6ef937dc17080dc4dbb962 - languageName: node - linkType: hard - -"kleur@npm:^3.0.3": - version: 3.0.3 - resolution: "kleur@npm:3.0.3" - checksum: 10/0c0ecaf00a5c6173d25059c7db2113850b5457016dfa1d0e3ef26da4704fbb186b4938d7611246d86f0ddf1bccf26828daa5877b1f232a65e7373d0122a83e7f - languageName: node - linkType: hard - -"lazy-ass@npm:^1.6.0": - version: 1.6.0 - resolution: "lazy-ass@npm:1.6.0" - checksum: 10/3969ebef060b6f665fc78310ec769f7d2945db2d5af2b6663eda1bc9ec45c845deba9c4a3f75f124ce2c76fedf56514a063ee5c2affc8bc94963fbbddb442a88 - languageName: node - linkType: hard - -"leven@npm:^3.1.0": - version: 3.1.0 - resolution: "leven@npm:3.1.0" - checksum: 10/638401d534585261b6003db9d99afd244dfe82d75ddb6db5c0df412842d5ab30b2ef18de471aaec70fe69a46f17b4ae3c7f01d8a4e6580ef7adb9f4273ad1e55 - languageName: node - linkType: hard - -"levn@npm:^0.4.1": - version: 0.4.1 - resolution: "levn@npm:0.4.1" - dependencies: - prelude-ls: "npm:^1.2.1" - type-check: "npm:~0.4.0" - checksum: 10/2e4720ff79f21ae08d42374b0a5c2f664c5be8b6c8f565bb4e1315c96ed3a8acaa9de788ffed82d7f2378cf36958573de07ef92336cb5255ed74d08b8318c9ee - languageName: node - linkType: hard - -"lines-and-columns@npm:^1.1.6": - version: 1.2.4 - resolution: "lines-and-columns@npm:1.2.4" - checksum: 10/0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 - languageName: node - linkType: hard - -"listr2@npm:^3.8.3": - version: 3.14.0 - resolution: "listr2@npm:3.14.0" - dependencies: - cli-truncate: "npm:^2.1.0" - colorette: "npm:^2.0.16" - log-update: "npm:^4.0.0" - p-map: "npm:^4.0.0" - rfdc: "npm:^1.3.0" - rxjs: "npm:^7.5.1" - through: "npm:^2.3.8" - wrap-ansi: "npm:^7.0.0" - peerDependencies: - enquirer: ">= 2.3.0 < 3" - peerDependenciesMeta: - enquirer: - optional: true - checksum: 10/cebbd692330279ea82f05468cbb0a16f5b40015a6163e0a2fb04ef168da8e2d6c54e129148e90112d92e7f9ecb85a56e6b88d867a58a8ebdf36e0c98df49ae5c - languageName: node - linkType: hard - -"locate-path@npm:^3.0.0": - version: 3.0.0 - resolution: "locate-path@npm:3.0.0" - dependencies: - p-locate: "npm:^3.0.0" - path-exists: "npm:^3.0.0" - checksum: 10/53db3996672f21f8b0bf2a2c645ae2c13ffdae1eeecfcd399a583bce8516c0b88dcb4222ca6efbbbeb6949df7e46860895be2c02e8d3219abd373ace3bfb4e11 - languageName: node - linkType: hard - -"locate-path@npm:^5.0.0": - version: 5.0.0 - resolution: "locate-path@npm:5.0.0" - dependencies: - p-locate: "npm:^4.1.0" - checksum: 10/83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 - 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 - -"lodash.debounce@npm:^4.0.8": - version: 4.0.8 - resolution: "lodash.debounce@npm:4.0.8" - checksum: 10/cd0b2819786e6e80cb9f5cda26b1a8fc073daaf04e48d4cb462fa4663ec9adb3a5387aa22d7129e48eed1afa05b482e2a6b79bfc99b86886364449500cbb00fd - languageName: node - linkType: hard - -"lodash.merge@npm:^4.6.2": - version: 4.6.2 - resolution: "lodash.merge@npm:4.6.2" - checksum: 10/d0ea2dd0097e6201be083865d50c3fb54fbfbdb247d9cc5950e086c991f448b7ab0cdab0d57eacccb43473d3f2acd21e134db39f22dac2d6c9ba6bf26978e3d6 - languageName: node - linkType: hard - -"lodash.once@npm:^4.1.1": - version: 4.1.1 - resolution: "lodash.once@npm:4.1.1" - checksum: 10/202f2c8c3d45e401b148a96de228e50ea6951ee5a9315ca5e15733d5a07a6b1a02d9da1e7fdf6950679e17e8ca8f7190ec33cae47beb249b0c50019d753f38f3 - languageName: node - linkType: hard - -"lodash@npm:^4.17.15, lodash@npm:^4.17.21": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: 10/c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532 - languageName: node - linkType: hard - -"log-symbols@npm:^4.0.0, log-symbols@npm:^4.1.0": - version: 4.1.0 - resolution: "log-symbols@npm:4.1.0" - dependencies: - chalk: "npm:^4.1.0" - is-unicode-supported: "npm:^0.1.0" - checksum: 10/fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 - languageName: node - linkType: hard - -"log-update@npm:^4.0.0": - version: 4.0.0 - resolution: "log-update@npm:4.0.0" - dependencies: - ansi-escapes: "npm:^4.3.0" - cli-cursor: "npm:^3.1.0" - slice-ansi: "npm:^4.0.0" - wrap-ansi: "npm:^6.2.0" - checksum: 10/ae2f85bbabc1906034154fb7d4c4477c79b3e703d22d78adee8b3862fa913942772e7fa11713e3d96fb46de4e3cabefbf5d0a544344f03b58d3c4bff52aa9eb2 - languageName: node - linkType: hard - -"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": - version: 1.4.0 - resolution: "loose-envify@npm:1.4.0" - dependencies: - js-tokens: "npm:^3.0.0 || ^4.0.0" - bin: - loose-envify: cli.js - checksum: 10/6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 - languageName: node - linkType: hard - -"loupe@npm:^2.3.7": - version: 2.3.7 - resolution: "loupe@npm:2.3.7" - dependencies: - get-func-name: "npm:^2.0.1" - checksum: 10/635c8f0914c2ce7ecfe4e239fbaf0ce1d2c00e4246fafcc4ed000bfdb1b8f89d05db1a220054175cca631ebf3894872a26fffba0124477fcb562f78762848fb1 - languageName: node - linkType: hard - -"loupe@npm:^3.1.0, loupe@npm:^3.1.1": - version: 3.1.1 - resolution: "loupe@npm:3.1.1" - dependencies: - get-func-name: "npm:^2.0.1" - checksum: 10/56d71d64c5af109aaf2b5343668ea5952eed468ed2ff837373810e417bf8331f14491c6e4d38e08ff84a29cb18906e06e58ba660c53bd00f2989e1873fa2f54c - 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" - checksum: 10/e6e90267360476720fa8e83cc168aa2bf0311f3f2eea20a6ba78b90a885ae72071d9db132f40fda4129c803e7dcec3a6b6a6fbb44ca90b081630b810b5d6a41a - languageName: node - linkType: hard - -"lru-cache@npm:^5.1.1": - version: 5.1.1 - resolution: "lru-cache@npm:5.1.1" - dependencies: - yallist: "npm:^3.0.2" - checksum: 10/951d2673dcc64a7fb888bf3d13bc2fdf923faca97d89cdb405ba3dfff77e2b26e5798d405e78fcd7094c9e7b8b4dab2ddc5a4f8a11928af24a207b7c738ca3f8 - 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.27.0": - version: 0.27.0 - resolution: "magic-string@npm:0.27.0" - dependencies: - "@jridgewell/sourcemap-codec": "npm:^1.4.13" - checksum: 10/10a18a48d22fb14467d6cb4204aba58d6790ae7ba023835dc7a65e310cf216f042a17fab1155ba43e47117310a9b7c3fd3bb79f40be40f5124d6b1af9e96399b - languageName: node - linkType: hard - -"magic-string@npm:^0.30.0": - version: 0.30.11 - resolution: "magic-string@npm:0.30.11" - dependencies: - "@jridgewell/sourcemap-codec": "npm:^1.5.0" - checksum: 10/b784d2240252f5b1e755d487354ada4c672cbca16f045144f7185a75b059210e5fcca7be7be03ef1bac2ca754c4428b21d36ae64a9057ba429916f06b8c54eb2 - languageName: node - linkType: hard - -"make-dir@npm:^2.0.0, make-dir@npm:^2.1.0": - version: 2.1.0 - resolution: "make-dir@npm:2.1.0" - dependencies: - pify: "npm:^4.0.1" - semver: "npm:^5.6.0" - checksum: 10/043548886bfaf1820323c6a2997e6d2fa51ccc2586ac14e6f14634f7458b4db2daf15f8c310e2a0abd3e0cddc64df1890d8fc7263033602c47bb12cbfcf86aab - languageName: node - linkType: hard - -"make-dir@npm:^3.0.2": - version: 3.1.0 - resolution: "make-dir@npm:3.1.0" - dependencies: - semver: "npm:^6.0.0" - checksum: 10/484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 - languageName: node - linkType: hard - -"make-dir@npm:^4.0.0": - version: 4.0.0 - resolution: "make-dir@npm:4.0.0" - dependencies: - semver: "npm:^7.5.3" - checksum: 10/bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a - languageName: node - linkType: hard - -"make-fetch-happen@npm:^13.0.0": - version: 13.0.1 - resolution: "make-fetch-happen@npm:13.0.1" - dependencies: - "@npmcli/agent": "npm:^2.0.0" - cacache: "npm:^18.0.0" - http-cache-semantics: "npm:^4.1.1" - is-lambda: "npm:^1.0.1" - minipass: "npm:^7.0.2" - minipass-fetch: "npm:^3.0.0" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - negotiator: "npm:^0.6.3" - proc-log: "npm:^4.2.0" - promise-retry: "npm:^2.0.1" - ssri: "npm:^10.0.0" - checksum: 10/11bae5ad6ac59b654dbd854f30782f9de052186c429dfce308eda42374528185a100ee40ac9ffdc36a2b6c821ecaba43913e4730a12f06f15e895ea9cb23fa59 - languageName: node - linkType: hard - -"makeerror@npm:1.0.12": - version: 1.0.12 - resolution: "makeerror@npm:1.0.12" - dependencies: - tmpl: "npm:1.0.5" - checksum: 10/4c66ddfc654537333da952c084f507fa4c30c707b1635344eb35be894d797ba44c901a9cebe914aa29a7f61357543ba09b09dddbd7f65b4aee756b450f169f40 - languageName: node - linkType: hard - -"map-or-similar@npm:^1.5.0": - version: 1.5.0 - resolution: "map-or-similar@npm:1.5.0" - checksum: 10/3cf43bcd0e7af41d7bade5f8b5be6bb9d021cc47e6008ad545d071cf3a709ba782884002f9eec6ccd51f572fc17841e07bf74628e0bc3694c33f4622b03e4b4c - languageName: node - linkType: hard - -"markdown-to-jsx@npm:^7.4.5": - version: 7.4.7 - resolution: "markdown-to-jsx@npm:7.4.7" - peerDependencies: - react: ">= 0.14.0" - checksum: 10/d421f561a57256164564f4b4ac1c3439493f7b88d46ca8d1ed429e481a199a8756591e180d401654c0826ccabe9e76ce4fb97286a0b3c43a7a6346c735778b2b - languageName: node - linkType: hard - -"media-typer@npm:0.3.0": - version: 0.3.0 - resolution: "media-typer@npm:0.3.0" - checksum: 10/38e0984db39139604756903a01397e29e17dcb04207bb3e081412ce725ab17338ecc47220c1b186b6bbe79a658aad1b0d41142884f5a481f36290cdefbe6aa46 - languageName: node - linkType: hard - -"memoizerific@npm:^1.11.3": - version: 1.11.3 - resolution: "memoizerific@npm:1.11.3" - dependencies: - map-or-similar: "npm:^1.5.0" - checksum: 10/72b6b80699777d000f03db6e15fdabcd4afe77feb45be51fe195cb230c64a368fcfcfbb976375eac3283bd8193d6b1a67ac3081cae07f64fca73f1aa568d59e3 - languageName: node - linkType: hard - -"merge-descriptors@npm:1.0.1": - version: 1.0.1 - resolution: "merge-descriptors@npm:1.0.1" - checksum: 10/5abc259d2ae25bb06d19ce2b94a21632583c74e2a9109ee1ba7fd147aa7362b380d971e0251069f8b3eb7d48c21ac839e21fa177b335e82c76ec172e30c31a26 - languageName: node - linkType: hard - -"merge-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "merge-stream@npm:2.0.0" - checksum: 10/6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 - languageName: node - linkType: hard - -"merge2@npm:^1.3.0, merge2@npm:^1.4.1": - version: 1.4.1 - resolution: "merge2@npm:1.4.1" - checksum: 10/7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 - languageName: node - linkType: hard - -"methods@npm:~1.1.2": - version: 1.1.2 - resolution: "methods@npm:1.1.2" - checksum: 10/a385dd974faa34b5dd021b2bbf78c722881bf6f003bfe6d391d7da3ea1ed625d1ff10ddd13c57531f628b3e785be38d3eed10ad03cebd90b76932413df9a1820 - languageName: node - linkType: hard - -"micromatch@npm:^4.0.4": - version: 4.0.7 - resolution: "micromatch@npm:4.0.7" - dependencies: - braces: "npm:^3.0.3" - picomatch: "npm:^2.3.1" - checksum: 10/a11ed1cb67dcbbe9a5fc02c4062cf8bb0157d73bf86956003af8dcfdf9b287f9e15ec0f6d6925ff6b8b5b496202335e497b01de4d95ef6cf06411bc5e5c474a0 - languageName: node - linkType: hard - -"mime-db@npm:1.52.0": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 10/54bb60bf39e6f8689f6622784e668a3d7f8bed6b0d886f5c3c446cb3284be28b30bf707ed05d0fe44a036f8469976b2629bbea182684977b084de9da274694d7 - languageName: node - linkType: hard - -"mime-types@npm:^2.1.12, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: "npm:1.52.0" - checksum: 10/89aa9651b67644035de2784a6e665fc685d79aba61857e02b9c8758da874a754aed4a9aced9265f5ed1171fd934331e5516b84a7f0218031b6fa0270eca1e51a - languageName: node - linkType: hard - -"mime@npm:1.6.0": - version: 1.6.0 - resolution: "mime@npm:1.6.0" - bin: - mime: cli.js - checksum: 10/b7d98bb1e006c0e63e2c91b590fe1163b872abf8f7ef224d53dd31499c2197278a6d3d0864c45239b1a93d22feaf6f9477e9fc847eef945838150b8c02d03170 - languageName: node - linkType: hard - -"mimic-fn@npm:^2.1.0": - version: 2.1.0 - resolution: "mimic-fn@npm:2.1.0" - checksum: 10/d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a - languageName: node - linkType: hard - -"mimic-fn@npm:^4.0.0": - version: 4.0.0 - resolution: "mimic-fn@npm:4.0.0" - checksum: 10/995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 - languageName: node - linkType: hard - -"min-indent@npm:^1.0.0, min-indent@npm:^1.0.1": - version: 1.0.1 - resolution: "min-indent@npm:1.0.1" - checksum: 10/bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1 - languageName: node - linkType: hard - -"minimatch@npm:9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10/c81b47d28153e77521877649f4bab48348d10938df9e8147a58111fe00ef89559a2938de9f6632910c4f7bf7bb5cd81191a546167e58d357f0cfb1e18cecc1c5 - languageName: node - linkType: hard - -"minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" - dependencies: - brace-expansion: "npm:^1.1.7" - checksum: 10/e0b25b04cd4ec6732830344e5739b13f8690f8a012d73445a4a19fbc623f5dd481ef7a5827fde25954cd6026fede7574cc54dc4643c99d6c6b653d6203f94634 - languageName: node - linkType: hard - -"minimatch@npm:^9.0.4": - version: 9.0.5 - resolution: "minimatch@npm:9.0.5" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10/dd6a8927b063aca6d910b119e1f2df6d2ce7d36eab91de83167dd136bb85e1ebff97b0d3de1cb08bd1f7e018ca170b4962479fefab5b2a69e2ae12cb2edc8348 - languageName: node - linkType: hard - -"minimist@npm:^1.2.6, minimist@npm:^1.2.8": - version: 1.2.8 - resolution: "minimist@npm:1.2.8" - checksum: 10/908491b6cc15a6c440ba5b22780a0ba89b9810e1aea684e253e43c4e3b8d56ec1dcdd7ea96dde119c29df59c936cde16062159eae4225c691e19c70b432b6e6f - languageName: node - linkType: hard - -"minipass-collect@npm:^2.0.1": - version: 2.0.1 - resolution: "minipass-collect@npm:2.0.1" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10/b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 - languageName: node - linkType: hard - -"minipass-fetch@npm:^3.0.0": - version: 3.0.5 - resolution: "minipass-fetch@npm:3.0.5" - dependencies: - encoding: "npm:^0.1.13" - minipass: "npm:^7.0.3" - minipass-sized: "npm:^1.0.3" - minizlib: "npm:^2.1.2" - dependenciesMeta: - encoding: - optional: true - checksum: 10/c669948bec1373313aaa8f104b962a3ced9f45c49b26366a4b0ae27ccdfa9c5740d72c8a84d3f8623d7a61c5fc7afdfda44789008c078f61a62441142efc4a97 - languageName: node - linkType: hard - -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10/56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10/b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b - languageName: node - linkType: hard - -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10/40982d8d836a52b0f37049a0a7e5d0f089637298e6d9b45df9c115d4f0520682a78258905e5c8b180fb41b593b0a82cc1361d2c74b45f7ada66334f84d1ecfdd - languageName: node - linkType: hard - -"minipass@npm:^3.0.0": - version: 3.3.6 - resolution: "minipass@npm:3.3.6" - dependencies: - yallist: "npm:^4.0.0" - checksum: 10/a5c6ef069f70d9a524d3428af39f2b117ff8cd84172e19b754e7264a33df460873e6eb3d6e55758531580970de50ae950c496256bb4ad3691a2974cddff189f0 - languageName: node - linkType: hard - -"minipass@npm:^5.0.0": - version: 5.0.0 - resolution: "minipass@npm:5.0.0" - checksum: 10/61682162d29f45d3152b78b08bab7fb32ca10899bc5991ffe98afc18c9e9543bd1e3be94f8b8373ba6262497db63607079dc242ea62e43e7b2270837b7347c93 - languageName: node - linkType: hard - -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": - version: 7.1.2 - resolution: "minipass@npm:7.1.2" - checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950 - languageName: node - linkType: hard - -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" - dependencies: - minipass: "npm:^3.0.0" - yallist: "npm:^4.0.0" - checksum: 10/ae0f45436fb51344dcb87938446a32fbebb540d0e191d63b35e1c773d47512e17307bf54aa88326cc6d176594d00e4423563a091f7266c2f9a6872cdc1e234d1 - languageName: node - linkType: hard - -"mkdirp@npm:^1.0.3": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: 10/d71b8dcd4b5af2fe13ecf3bd24070263489404fe216488c5ba7e38ece1f54daf219e72a833a3a2dc404331e870e9f44963a33399589490956bff003a3404d3b2 - languageName: node - linkType: hard - -"mlly@npm:^1.7.1": - version: 1.7.1 - resolution: "mlly@npm:1.7.1" - dependencies: - acorn: "npm:^8.11.3" - pathe: "npm:^1.1.2" - pkg-types: "npm:^1.1.1" - ufo: "npm:^1.5.3" - checksum: 10/c1ef3989e95fb6c6c27a238330897b01f46507020501f45a681f2cae453f982e38dcb0e45aa65f672ea7280945d4a729d266f17a8acb187956f312b0cafddf61 - languageName: node - linkType: hard - -"ms@npm:2.0.0": - version: 2.0.0 - resolution: "ms@npm:2.0.0" - checksum: 10/0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 - languageName: node - linkType: hard - -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 10/673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f - languageName: node - linkType: hard - -"ms@npm:2.1.3, ms@npm:^2.1.1": - version: 2.1.3 - resolution: "ms@npm:2.1.3" - checksum: 10/aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d - languageName: node - linkType: hard - -"nanoid@npm:^3.3.7": - version: 3.3.7 - resolution: "nanoid@npm:3.3.7" - bin: - nanoid: bin/nanoid.cjs - checksum: 10/ac1eb60f615b272bccb0e2b9cd933720dad30bf9708424f691b8113826bb91aca7e9d14ef5d9415a6ba15c266b37817256f58d8ce980c82b0ba3185352565679 - languageName: node - linkType: hard - -"natural-compare@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare@npm:1.4.0" - checksum: 10/23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d - languageName: node - linkType: hard - -"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: 10/2723fb822a17ad55c93a588a4bc44d53b22855bf4be5499916ca0cab1e7165409d0b288ba2577d7b029f10ce18cf2ed8e703e5af31c984e1e2304277ef979837 - languageName: node - linkType: hard - -"neo-async@npm:^2.5.0": - version: 2.6.2 - resolution: "neo-async@npm:2.6.2" - checksum: 10/1a7948fea86f2b33ec766bc899c88796a51ba76a4afc9026764aedc6e7cde692a09067031e4a1bf6db4f978ccd99e7f5b6c03fe47ad9865c3d4f99050d67e002 - languageName: node - linkType: hard - -"node-dir@npm:^0.1.17": - version: 0.1.17 - resolution: "node-dir@npm:0.1.17" - dependencies: - minimatch: "npm:^3.0.2" - checksum: 10/281fdea12d9c080a7250e5b5afefa3ab39426d40753ec8126a2d1e67f189b8824723abfed74f5d8549c5d78352d8c489fe08d0b067d7684c87c07283d38374a5 - languageName: node - linkType: hard - -"node-fetch-native@npm:^1.6.3": - version: 1.6.4 - resolution: "node-fetch-native@npm:1.6.4" - checksum: 10/39c4c6d0c2a4bed1444943e1647ad0d79eb6638cf159bc37dffeafd22cffcf6a998e006aa1f3dd1d9d2258db7d78dee96b44bee4ba0bbaf0440ed348794f2543 - languageName: node - linkType: hard - -"node-gyp@npm:latest": - version: 10.2.0 - resolution: "node-gyp@npm:10.2.0" - dependencies: - env-paths: "npm:^2.2.0" - exponential-backoff: "npm:^3.1.1" - glob: "npm:^10.3.10" - graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^13.0.0" - nopt: "npm:^7.0.0" - proc-log: "npm:^4.1.0" - semver: "npm:^7.3.5" - tar: "npm:^6.2.1" - which: "npm:^4.0.0" - bin: - node-gyp: bin/node-gyp.js - checksum: 10/41773093b1275751dec942b985982fd4e7a69b88cae719b868babcef3880ee6168aaec8dcaa8cd0b9fa7c84873e36cc549c6cac6a124ee65ba4ce1f1cc108cfe - languageName: node - linkType: hard - -"node-int64@npm:^0.4.0": - version: 0.4.0 - resolution: "node-int64@npm:0.4.0" - checksum: 10/b7afc2b65e56f7035b1a2eec57ae0fbdee7d742b1cdcd0f4387562b6527a011ab1cbe9f64cc8b3cca61e3297c9637c8bf61cec2e6b8d3a711d4b5267dfafbe02 - languageName: node - linkType: hard - -"node-releases@npm:^2.0.18": - version: 2.0.18 - resolution: "node-releases@npm:2.0.18" - checksum: 10/241e5fa9556f1c12bafb83c6c3e94f8cf3d8f2f8f904906ecef6e10bcaa1d59aa61212d4651bec70052015fc54bd3fdcdbe7fc0f638a17e6685aa586c076ec4e - languageName: node - linkType: hard - -"nopt@npm:^7.0.0": - version: 7.2.1 - resolution: "nopt@npm:7.2.1" - dependencies: - abbrev: "npm:^2.0.0" - bin: - nopt: bin/nopt.js - checksum: 10/95a1f6dec8a81cd18cdc2fed93e6f0b4e02cf6bdb4501c848752c6e34f9883d9942f036a5e3b21a699047d8a448562d891e67492df68ec9c373e6198133337ae - languageName: node - linkType: hard - -"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": - version: 3.0.0 - resolution: "normalize-path@npm:3.0.0" - checksum: 10/88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 - languageName: node - linkType: hard - -"npm-run-path@npm:^4.0.0, npm-run-path@npm:^4.0.1": - version: 4.0.1 - resolution: "npm-run-path@npm:4.0.1" - dependencies: - path-key: "npm:^3.0.0" - checksum: 10/5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 - languageName: node - linkType: hard - -"npm-run-path@npm:^5.1.0": - version: 5.3.0 - resolution: "npm-run-path@npm:5.3.0" - dependencies: - path-key: "npm:^4.0.0" - checksum: 10/ae8e7a89da9594fb9c308f6555c73f618152340dcaae423e5fb3620026fefbec463618a8b761920382d666fa7a2d8d240b6fe320e8a6cdd54dc3687e2b659d25 - languageName: node - linkType: hard - -"nwsapi@npm:^2.2.2": - version: 2.2.12 - resolution: "nwsapi@npm:2.2.12" - checksum: 10/172119e9ef492467ebfb337f9b5fd12a94d2b519377cde3f6ec2f74a86f6d5c00ef3873539bed7142f908ffca4e35383179be2319d04a563071d146bfa3f1673 - languageName: node - linkType: hard - -"nypm@npm:^0.3.8": - version: 0.3.9 - resolution: "nypm@npm:0.3.9" - dependencies: - citty: "npm:^0.1.6" - consola: "npm:^3.2.3" - execa: "npm:^8.0.1" - pathe: "npm:^1.1.2" - pkg-types: "npm:^1.1.1" - ufo: "npm:^1.5.3" - bin: - nypm: dist/cli.mjs - checksum: 10/fd884f4465f51c57fe584a11299320a5678934b14eed0ecc56003dd26f5638db4e858d97f2ab580937fa17a4a1c4ef73e32b82c7ef0bc06d820b3f32b932a45a - languageName: node - linkType: hard - -"object-assign@npm:^4.1.1": - version: 4.1.1 - resolution: "object-assign@npm:4.1.1" - checksum: 10/fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f - languageName: node - linkType: hard - -"object-inspect@npm:^1.13.1": - version: 1.13.2 - resolution: "object-inspect@npm:1.13.2" - checksum: 10/7ef65583b6397570a17c56f0c1841e0920e83900f2c94638927abb7b81ac08a19c7aae135bd9dcca96208cac0c7332b4650fb927f027b0cf92d71df2990d0561 - 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.5 - resolution: "object.assign@npm:4.1.5" - dependencies: - call-bind: "npm:^1.0.5" - define-properties: "npm:^1.2.1" - has-symbols: "npm:^1.0.3" - object-keys: "npm:^1.1.1" - checksum: 10/dbb22da4cda82e1658349ea62b80815f587b47131b3dd7a4ab7f84190ab31d206bbd8fe7e26ae3220c55b65725ac4529825f6142154211220302aa6b1518045d - languageName: node - linkType: hard - -"ohash@npm:^1.1.3": - version: 1.1.3 - resolution: "ohash@npm:1.1.3" - checksum: 10/80a3528285f61588600c8c4f091a67f55fbc141f4eec4b3c30182468053042eef5a9684780e963f98a71ec068f3de56d42920c6417bf8f79ab14aeb75ac0bb39 - languageName: node - linkType: hard - -"on-finished@npm:2.4.1": - version: 2.4.1 - resolution: "on-finished@npm:2.4.1" - dependencies: - ee-first: "npm:1.1.1" - checksum: 10/8e81472c5028125c8c39044ac4ab8ba51a7cdc19a9fbd4710f5d524a74c6d8c9ded4dd0eed83f28d3d33ac1d7a6a439ba948ccb765ac6ce87f30450a26bfe2ea - languageName: node - linkType: hard - -"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": - version: 1.4.0 - resolution: "once@npm:1.4.0" - dependencies: - wrappy: "npm:1" - checksum: 10/cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 - languageName: node - linkType: hard - -"onetime@npm:^5.1.0, onetime@npm:^5.1.2": - version: 5.1.2 - resolution: "onetime@npm:5.1.2" - dependencies: - mimic-fn: "npm:^2.1.0" - checksum: 10/e9fd0695a01cf226652f0385bf16b7a24153dbbb2039f764c8ba6d2306a8506b0e4ce570de6ad99c7a6eb49520743afdb66edd95ee979c1a342554ed49a9aadd - languageName: node - linkType: hard - -"onetime@npm:^6.0.0": - version: 6.0.0 - resolution: "onetime@npm:6.0.0" - dependencies: - mimic-fn: "npm:^4.0.0" - checksum: 10/0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 - languageName: node - linkType: hard - -"optionator@npm:^0.9.3": - version: 0.9.4 - resolution: "optionator@npm:0.9.4" - dependencies: - deep-is: "npm:^0.1.3" - fast-levenshtein: "npm:^2.0.6" - levn: "npm:^0.4.1" - prelude-ls: "npm:^1.2.1" - type-check: "npm:^0.4.0" - word-wrap: "npm:^1.2.5" - checksum: 10/a8398559c60aef88d7f353a4f98dcdff6090a4e70f874c827302bf1213d9106a1c4d5fcb68dacb1feb3c30a04c4102f41047aa55d4c576b863d6fc876e001af6 - languageName: node - linkType: hard - -"ora@npm:^5.4.1": - version: 5.4.1 - resolution: "ora@npm:5.4.1" - dependencies: - bl: "npm:^4.1.0" - chalk: "npm:^4.1.0" - cli-cursor: "npm:^3.1.0" - cli-spinners: "npm:^2.5.0" - is-interactive: "npm:^1.0.0" - is-unicode-supported: "npm:^0.1.0" - log-symbols: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - wcwidth: "npm:^1.0.1" - checksum: 10/8d071828f40090a8e1c6e8f350c6eb065808e9ab2b3e57fa37e0d5ae78cb46dac00117c8f12c3c8b8da2923454afbd8265e08c10b69881170c5b269f451e7fef - languageName: node - linkType: hard - -"ospath@npm:^1.2.2": - version: 1.2.2 - resolution: "ospath@npm:1.2.2" - checksum: 10/505f48a4f4f1c557d6c656ec985707726e3714721680139be037613e903aa8c8fa4ddd8d1342006f9b2dc0065e6e20f8b7bea2ee05354f31257044790367b347 - languageName: node - linkType: hard - -"p-limit@npm:^2.0.0, p-limit@npm:^2.2.0": - version: 2.3.0 - resolution: "p-limit@npm:2.3.0" - dependencies: - p-try: "npm:^2.0.0" - checksum: 10/84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 - languageName: node - linkType: hard - -"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": - version: 3.1.0 - resolution: "p-limit@npm:3.1.0" - dependencies: - yocto-queue: "npm:^0.1.0" - checksum: 10/7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 - languageName: node - linkType: hard - -"p-locate@npm:^3.0.0": - version: 3.0.0 - resolution: "p-locate@npm:3.0.0" - dependencies: - p-limit: "npm:^2.0.0" - checksum: 10/83991734a9854a05fe9dbb29f707ea8a0599391f52daac32b86f08e21415e857ffa60f0e120bfe7ce0cc4faf9274a50239c7895fc0d0579d08411e513b83a4ae - languageName: node - linkType: hard - -"p-locate@npm:^4.1.0": - version: 4.1.0 - resolution: "p-locate@npm:4.1.0" - dependencies: - p-limit: "npm:^2.2.0" - checksum: 10/513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 - 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-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: "npm:^3.0.0" - checksum: 10/7ba4a2b1e24c05e1fc14bbaea0fc6d85cf005ae7e9c9425d4575550f37e2e584b1af97bcde78eacd7559208f20995988d52881334db16cf77bc1bcf68e48ed7c - languageName: node - linkType: hard - -"p-try@npm:^2.0.0": - version: 2.2.0 - resolution: "p-try@npm:2.2.0" - checksum: 10/f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae - languageName: node - linkType: hard - -"package-json-from-dist@npm:^1.0.0": - version: 1.0.0 - resolution: "package-json-from-dist@npm:1.0.0" - checksum: 10/ac706ec856a5a03f5261e4e48fa974f24feb044d51f84f8332e2af0af04fbdbdd5bbbfb9cbbe354190409bc8307c83a9e38c6672c3c8855f709afb0006a009ea - languageName: node - linkType: hard - -"parent-module@npm:^1.0.0": - version: 1.0.1 - resolution: "parent-module@npm:1.0.1" - dependencies: - callsites: "npm:^3.0.0" - checksum: 10/6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff - languageName: node - linkType: hard - -"parse-json@npm:^5.2.0": - version: 5.2.0 - resolution: "parse-json@npm:5.2.0" - dependencies: - "@babel/code-frame": "npm:^7.0.0" - error-ex: "npm:^1.3.1" - json-parse-even-better-errors: "npm:^2.3.0" - lines-and-columns: "npm:^1.1.6" - checksum: 10/62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 - languageName: node - linkType: hard - -"parse5@npm:^7.0.0, parse5@npm:^7.1.1": - version: 7.1.2 - resolution: "parse5@npm:7.1.2" - dependencies: - entities: "npm:^4.4.0" - checksum: 10/3c86806bb0fb1e9a999ff3a4c883b1ca243d99f45a619a0898dbf021a95a0189ed955c31b07fe49d342b54e814f33f2c9d7489198e8630dacd5477d413ec5782 - languageName: node - linkType: hard - -"parseurl@npm:~1.3.3": - version: 1.3.3 - resolution: "parseurl@npm:1.3.3" - checksum: 10/407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 - languageName: node - linkType: hard - -"path-exists@npm:^3.0.0": - version: 3.0.0 - resolution: "path-exists@npm:3.0.0" - checksum: 10/96e92643aa34b4b28d0de1cd2eba52a1c5313a90c6542d03f62750d82480e20bfa62bc865d5cfc6165f5fcd5aeb0851043c40a39be5989646f223300021bae0a - languageName: node - linkType: hard - -"path-exists@npm:^4.0.0": - version: 4.0.0 - resolution: "path-exists@npm:4.0.0" - checksum: 10/505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 - languageName: node - linkType: hard - -"path-is-absolute@npm:^1.0.0": - version: 1.0.1 - resolution: "path-is-absolute@npm:1.0.1" - checksum: 10/060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 - languageName: node - linkType: hard - -"path-key@npm:^3.0.0, path-key@npm:^3.1.0": - version: 3.1.1 - resolution: "path-key@npm:3.1.1" - checksum: 10/55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 - languageName: node - linkType: hard - -"path-key@npm:^4.0.0": - version: 4.0.0 - resolution: "path-key@npm:4.0.0" - checksum: 10/8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 - languageName: node - linkType: hard - -"path-parse@npm:^1.0.7": - version: 1.0.7 - resolution: "path-parse@npm:1.0.7" - checksum: 10/49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a - languageName: node - linkType: hard - -"path-scurry@npm:^1.11.1": - version: 1.11.1 - resolution: "path-scurry@npm:1.11.1" - dependencies: - lru-cache: "npm:^10.2.0" - minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" - checksum: 10/5e8845c159261adda6f09814d7725683257fcc85a18f329880ab4d7cc1d12830967eae5d5894e453f341710d5484b8fdbbd4d75181b4d6e1eb2f4dc7aeadc434 - languageName: node - linkType: hard - -"path-to-regexp@npm:0.1.7": - version: 0.1.7 - resolution: "path-to-regexp@npm:0.1.7" - checksum: 10/701c99e1f08e3400bea4d701cf6f03517474bb1b608da71c78b1eb261415b645c5670dfae49808c89e12cea2dccd113b069f040a80de012da0400191c6dbd1c8 - languageName: node - linkType: hard - -"path-type@npm:^4.0.0": - version: 4.0.0 - resolution: "path-type@npm:4.0.0" - checksum: 10/5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 - languageName: node - linkType: hard - -"path-type@npm:^5.0.0": - version: 5.0.0 - resolution: "path-type@npm:5.0.0" - checksum: 10/15ec24050e8932c2c98d085b72cfa0d6b4eeb4cbde151a0a05726d8afae85784fc5544f733d8dfc68536587d5143d29c0bd793623fad03d7e61cc00067291cd5 - languageName: node - linkType: hard - -"pathe@npm:^1.1.2": - version: 1.1.2 - resolution: "pathe@npm:1.1.2" - checksum: 10/f201d796351bf7433d147b92c20eb154a4e0ea83512017bf4ec4e492a5d6e738fb45798be4259a61aa81270179fce11026f6ff0d3fa04173041de044defe9d80 - languageName: node - linkType: hard - -"pathval@npm:^2.0.0": - version: 2.0.0 - resolution: "pathval@npm:2.0.0" - checksum: 10/b91575bf9cdf01757afd7b5e521eb8a0b874a49bc972d08e0047cfea0cd3c019f5614521d4bc83d2855e3fcc331db6817dfd533dd8f3d90b16bc76fad2450fc1 - languageName: node - linkType: hard - -"pend@npm:~1.2.0": - version: 1.2.0 - resolution: "pend@npm:1.2.0" - checksum: 10/6c72f5243303d9c60bd98e6446ba7d30ae29e3d56fdb6fae8767e8ba6386f33ee284c97efe3230a0d0217e2b1723b8ab490b1bbf34fcbb2180dbc8a9de47850d - languageName: node - linkType: hard - -"performance-now@npm:^2.1.0": - version: 2.1.0 - resolution: "performance-now@npm:2.1.0" - checksum: 10/534e641aa8f7cba160f0afec0599b6cecefbb516a2e837b512be0adbe6c1da5550e89c78059c7fabc5c9ffdf6627edabe23eb7c518c4500067a898fa65c2b550 - languageName: node - linkType: hard - -"picocolors@npm:^1.0.0, picocolors@npm:^1.0.1": - version: 1.0.1 - resolution: "picocolors@npm:1.0.1" - checksum: 10/fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 - languageName: node - linkType: hard - -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 10/60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc - languageName: node - linkType: hard - -"pify@npm:^2.2.0": - version: 2.3.0 - resolution: "pify@npm:2.3.0" - checksum: 10/9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba - languageName: node - linkType: hard - -"pify@npm:^4.0.1": - version: 4.0.1 - resolution: "pify@npm:4.0.1" - checksum: 10/8b97cbf9dc6d4c1320cc238a2db0fc67547f9dc77011729ff353faf34f1936ea1a4d7f3c63b2f4980b253be77bcc72ea1e9e76ee3fd53cce2aafb6a8854d07ec - languageName: node - linkType: hard - -"pirates@npm:^4.0.4, pirates@npm:^4.0.6": - version: 4.0.6 - resolution: "pirates@npm:4.0.6" - checksum: 10/d02dda76f4fec1cbdf395c36c11cf26f76a644f9f9a1bfa84d3167d0d3154d5289aacc72677aa20d599bb4a6937a471de1b65c995e2aea2d8687cbcd7e43ea5f - languageName: node - linkType: hard - -"pkg-dir@npm:^3.0.0": - version: 3.0.0 - resolution: "pkg-dir@npm:3.0.0" - dependencies: - find-up: "npm:^3.0.0" - checksum: 10/70c9476ffefc77552cc6b1880176b71ad70bfac4f367604b2b04efd19337309a4eec985e94823271c7c0e83946fa5aeb18cd360d15d10a5d7533e19344bfa808 - languageName: node - linkType: hard - -"pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0": - version: 4.2.0 - resolution: "pkg-dir@npm:4.2.0" - dependencies: - find-up: "npm:^4.0.0" - checksum: 10/9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 - languageName: node - linkType: hard - -"pkg-types@npm:^1.1.1": - version: 1.1.3 - resolution: "pkg-types@npm:1.1.3" - dependencies: - confbox: "npm:^0.1.7" - mlly: "npm:^1.7.1" - pathe: "npm:^1.1.2" - checksum: 10/06c03ca679ea8e3a1ea7cb74e92af1a486a6081401aac35f6aa51fb6f0855cd86bbfc713f9bfdaaa730815b5ae147b4d6a838710b550c1c4b3f54a6653ff04a3 - languageName: node - linkType: hard - -"playwright-core@npm:1.42.1": - version: 1.42.1 - resolution: "playwright-core@npm:1.42.1" - bin: - playwright-core: cli.js - checksum: 10/6a71d2e2aa5b054d6e83836f09e139a0ff4de3aa9b6aebe0e03de3ab828c735d23a20a60fafcee91c1658da490cc390f05af463325ac842beaff58a173f7ad9e - languageName: node - linkType: hard - -"playwright@npm:1.42.1": - version: 1.42.1 - resolution: "playwright@npm:1.42.1" - dependencies: - fsevents: "npm:2.3.2" - playwright-core: "npm:1.42.1" - dependenciesMeta: - fsevents: - optional: true - bin: - playwright: cli.js - checksum: 10/1f866a6820e19feaaeb12cd87bfa93299d6d72e1287413098c5ae0349c7e7953eb0a303bdfbb99c12173a3493e6fdb642f89a166cfcfd8295254a520abf6eb7f - languageName: node - linkType: hard - -"polished@npm:^4.2.2": - version: 4.3.1 - resolution: "polished@npm:4.3.1" - dependencies: - "@babel/runtime": "npm:^7.17.8" - checksum: 10/0902fe2eb16aecde1587a00efee7db8081b1331ac7bcfb6e61214d266388723a84858d732ad9395028e0aecd2bb8d0c39cc03d14b4c24c22329a0e40c38141eb - languageName: node - linkType: hard - -"portable-stories-react@workspace:.": - version: 0.0.0-use.local - resolution: "portable-stories-react@workspace:." - dependencies: - "@playwright/experimental-ct-react": "npm:1.42.1" - "@storybook/addon-actions": "npm:^8.0.0" - "@storybook/addon-essentials": "npm:^8.0.0" - "@storybook/addon-interactions": "npm:^8.0.0" - "@storybook/react": "npm:^8.0.0" - "@storybook/react-vite": "npm:^8.0.0" - "@storybook/test": "npm:^8.0.0" - "@swc/core": "npm:^1.4.2" - "@swc/jest": "npm:^0.2.36" - "@testing-library/jest-dom": "npm:^6.4.0" - "@testing-library/react": "npm:^14.2.1" - "@types/identity-obj-proxy": "npm:^3" - "@types/react": "npm:^18.2.55" - "@types/react-dom": "npm:^18.2.19" - "@typescript-eslint/eslint-plugin": "npm:^6.21.0" - "@typescript-eslint/parser": "npm:^6.21.0" - "@vitejs/plugin-react": "npm:^4.2.1" - cypress: "npm:^13.6.4" - eslint: "npm:^8.56.0" - eslint-plugin-react-hooks: "npm:^4.6.0" - eslint-plugin-react-refresh: "npm:^0.4.5" - eslint-plugin-storybook: "npm:^0.6.15" - identity-obj-proxy: "npm:^3.0.0" - jest: "npm:^29.7.0" - jest-environment-jsdom: "npm:^29.7.0" - react: "npm:^18.2.0" - react-dom: "npm:^18.2.0" - storybook: "npm:^8.0.0" - typescript: "npm:^5.2.2" - vite: "npm:^5.1.1" - languageName: unknown - linkType: soft - -"possible-typed-array-names@npm:^1.0.0": - version: 1.0.0 - resolution: "possible-typed-array-names@npm:1.0.0" - checksum: 10/8ed3e96dfeea1c5880c1f4c9cb707e5fb26e8be22f14f82ef92df20fd2004e635c62ba47fbe8f2bb63bfd80dac1474be2fb39798da8c2feba2815435d1f749af - languageName: node - linkType: hard - -"postcss@npm:^8.4.39": - version: 8.4.40 - resolution: "postcss@npm:8.4.40" - dependencies: - nanoid: "npm:^3.3.7" - picocolors: "npm:^1.0.1" - source-map-js: "npm:^1.2.0" - checksum: 10/bdd01b55152e4be7b4a82b03dd22876e33ff6a038680d1b80a50405a5eccc10aff0f466a0e5e574bc476943b0ba120fbd5de7cde9f219bbf8efc011898f5f631 - languageName: node - linkType: hard - -"prelude-ls@npm:^1.2.1": - version: 1.2.1 - resolution: "prelude-ls@npm:1.2.1" - checksum: 10/0b9d2c76801ca652a7f64892dd37b7e3fab149a37d2424920099bf894acccc62abb4424af2155ab36dea8744843060a2d8ddc983518d0b1e22265a22324b72ed - languageName: node - linkType: hard - -"prettier@npm:^3.1.1": - version: 3.3.3 - resolution: "prettier@npm:3.3.3" - bin: - prettier: bin/prettier.cjs - checksum: 10/5beac1f30b5b40162532b8e2f7c3a4eb650910a2695e9c8512a62ffdc09dae93190c29db9107fa7f26d1b6c71aad3628ecb9b5de1ecb0911191099be109434d7 - languageName: node - linkType: hard - -"pretty-bytes@npm:^5.6.0": - version: 5.6.0 - resolution: "pretty-bytes@npm:5.6.0" - checksum: 10/9c082500d1e93434b5b291bd651662936b8bd6204ec9fa17d563116a192d6d86b98f6d328526b4e8d783c07d5499e2614a807520249692da9ec81564b2f439cd - 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.7.0": - version: 29.7.0 - resolution: "pretty-format@npm:29.7.0" - dependencies: - "@jest/schemas": "npm:^29.6.3" - ansi-styles: "npm:^5.0.0" - react-is: "npm:^18.0.0" - checksum: 10/dea96bc83c83cd91b2bfc55757b6b2747edcaac45b568e46de29deee80742f17bc76fe8898135a70d904f4928eafd8bb693cd1da4896e8bdd3c5e82cadf1d2bb - languageName: node - linkType: hard - -"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": - version: 4.2.0 - resolution: "proc-log@npm:4.2.0" - checksum: 10/4e1394491b717f6c1ade15c570ecd4c2b681698474d3ae2d303c1e4b6ab9455bd5a81566211e82890d5a5ae9859718cc6954d5150bb18b09b72ecb297beae90a - languageName: node - linkType: hard - -"process@npm:^0.11.10": - version: 0.11.10 - resolution: "process@npm:0.11.10" - checksum: 10/dbaa7e8d1d5cf375c36963ff43116772a989ef2bb47c9bdee20f38fd8fc061119cf38140631cf90c781aca4d3f0f0d2c834711952b728953f04fd7d238f59f5b - languageName: node - linkType: hard - -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: "npm:^2.0.2" - retry: "npm:^0.12.0" - checksum: 10/96e1a82453c6c96eef53a37a1d6134c9f2482f94068f98a59145d0986ca4e497bf110a410adf73857e588165eab3899f0ebcf7b3890c1b3ce802abc0d65967d4 - languageName: node - linkType: hard - -"prompts@npm:^2.0.1, prompts@npm:^2.4.0": - version: 2.4.2 - resolution: "prompts@npm:2.4.2" - dependencies: - kleur: "npm:^3.0.3" - sisteransi: "npm:^1.0.5" - checksum: 10/c52536521a4d21eff4f2f2aa4572446cad227464066365a7167e52ccf8d9839c099f9afec1aba0eed3d5a2514b3e79e0b3e7a1dc326b9acde6b75d27ed74b1a9 - languageName: node - linkType: hard - -"prop-types@npm:^15.7.2": - version: 15.8.1 - resolution: "prop-types@npm:15.8.1" - dependencies: - loose-envify: "npm:^1.4.0" - object-assign: "npm:^4.1.1" - react-is: "npm:^16.13.1" - checksum: 10/7d959caec002bc964c86cdc461ec93108b27337dabe6192fb97d69e16a0c799a03462713868b40749bfc1caf5f57ef80ac3e4ffad3effa636ee667582a75e2c0 - languageName: node - linkType: hard - -"proxy-addr@npm:~2.0.7": - version: 2.0.7 - resolution: "proxy-addr@npm:2.0.7" - dependencies: - forwarded: "npm:0.2.0" - ipaddr.js: "npm:1.9.1" - checksum: 10/f24a0c80af0e75d31e3451398670d73406ec642914da11a2965b80b1898ca6f66a0e3e091a11a4327079b2b268795f6fa06691923fef91887215c3d0e8ea3f68 - languageName: node - linkType: hard - -"proxy-from-env@npm:1.0.0": - version: 1.0.0 - resolution: "proxy-from-env@npm:1.0.0" - checksum: 10/f26b59c0f21dd118c23a0eb1f5250848a23b5029ec5c9f2b4011b6439b19fa83da50858d84e9261da94aa4e67778c1bac5483afce884b7770a96895a4e6b9a19 - languageName: node - linkType: hard - -"psl@npm:^1.1.33": - version: 1.9.0 - resolution: "psl@npm:1.9.0" - checksum: 10/d07879d4bfd0ac74796306a8e5a36a93cfb9c4f4e8ee8e63fbb909066c192fe1008cd8f12abd8ba2f62ca28247949a20c8fb32e1d18831d9e71285a1569720f9 - languageName: node - linkType: hard - -"pump@npm:^3.0.0": - version: 3.0.0 - resolution: "pump@npm:3.0.0" - dependencies: - end-of-stream: "npm:^1.1.0" - once: "npm:^1.3.1" - checksum: 10/e42e9229fba14732593a718b04cb5e1cfef8254544870997e0ecd9732b189a48e1256e4e5478148ecb47c8511dca2b09eae56b4d0aad8009e6fac8072923cfc9 - languageName: node - linkType: hard - -"punycode@npm:^2.1.0, punycode@npm:^2.1.1": - version: 2.3.1 - resolution: "punycode@npm:2.3.1" - checksum: 10/febdc4362bead22f9e2608ff0171713230b57aff9dddc1c273aa2a651fbd366f94b7d6a71d78342a7c0819906750351ca7f2edd26ea41b626d87d6a13d1bd059 - languageName: node - linkType: hard - -"pure-rand@npm:^6.0.0": - version: 6.1.0 - resolution: "pure-rand@npm:6.1.0" - checksum: 10/256aa4bcaf9297256f552914e03cbdb0039c8fe1db11fa1e6d3f80790e16e563eb0a859a1e61082a95e224fc0c608661839439f8ecc6a3db4e48d46d99216ee4 - languageName: node - linkType: hard - -"qs@npm:6.10.4": - version: 6.10.4 - resolution: "qs@npm:6.10.4" - dependencies: - side-channel: "npm:^1.0.4" - checksum: 10/8887a53f63180e0e0291deafef581e550bc3656f2453adc8d3ca34b49c04354d31079962f7faf90ab8f5fd6e3d70ee6645042b27814a757a3a5d5708ae3f58e0 - languageName: node - linkType: hard - -"qs@npm:6.11.0": - version: 6.11.0 - resolution: "qs@npm:6.11.0" - dependencies: - side-channel: "npm:^1.0.4" - checksum: 10/5a3bfea3e2f359ede1bfa5d2f0dbe54001aa55e40e27dc3e60fab814362d83a9b30758db057c2011b6f53a2d4e4e5150194b5bac45372652aecb3e3c0d4b256e - languageName: node - linkType: hard - -"querystringify@npm:^2.1.1": - version: 2.2.0 - resolution: "querystringify@npm:2.2.0" - checksum: 10/46ab16f252fd892fc29d6af60966d338cdfeea68a231e9457631ffd22d67cec1e00141e0a5236a2eb16c0d7d74175d9ec1d6f963660c6f2b1c2fc85b194c5680 - languageName: node - linkType: hard - -"queue-microtask@npm:^1.2.2": - version: 1.2.3 - resolution: "queue-microtask@npm:1.2.3" - checksum: 10/72900df0616e473e824202113c3df6abae59150dfb73ed13273503127235320e9c8ca4aaaaccfd58cf417c6ca92a6e68ee9a5c3182886ae949a768639b388a7b - languageName: node - linkType: hard - -"range-parser@npm:~1.2.1": - version: 1.2.1 - resolution: "range-parser@npm:1.2.1" - checksum: 10/ce21ef2a2dd40506893157970dc76e835c78cf56437e26e19189c48d5291e7279314477b06ac38abd6a401b661a6840f7b03bd0b1249da9b691deeaa15872c26 - languageName: node - linkType: hard - -"raw-body@npm:2.5.2": - version: 2.5.2 - resolution: "raw-body@npm:2.5.2" - dependencies: - bytes: "npm:3.1.2" - http-errors: "npm:2.0.0" - iconv-lite: "npm:0.4.24" - unpipe: "npm:1.0.0" - checksum: 10/863b5171e140546a4d99f349b720abac4410338e23df5e409cfcc3752538c9caf947ce382c89129ba976f71894bd38b5806c774edac35ebf168d02aa1ac11a95 - languageName: node - linkType: hard - -"react-colorful@npm:^5.1.2": - version: 5.6.1 - resolution: "react-colorful@npm:5.6.1" - peerDependencies: - react: ">=16.8.0" - react-dom: ">=16.8.0" - checksum: 10/3e02ba013454818d0c323949bd961fb2c19ac18130dfc67a4032aa5b03787c5ffe7ff159c4b97dc3475072d576828ca0c4b8e8ce85b55eaf484180596cdf0403 - languageName: node - linkType: hard - -"react-docgen-typescript@npm:^2.2.2": - version: 2.2.2 - resolution: "react-docgen-typescript@npm:2.2.2" - peerDependencies: - typescript: ">= 4.3.x" - checksum: 10/081fc3a876f53b9eeffcff357e5b6c190db799d50edcf11b187857d8cb8cce28000ed777ed16dd52a1c955f332612ef6b1f02cf8adcbcb084b8da9ff1ae5fd13 - languageName: node - linkType: hard - -"react-docgen@npm:^7.0.0": - version: 7.0.3 - resolution: "react-docgen@npm:7.0.3" - dependencies: - "@babel/core": "npm:^7.18.9" - "@babel/traverse": "npm:^7.18.9" - "@babel/types": "npm:^7.18.9" - "@types/babel__core": "npm:^7.18.0" - "@types/babel__traverse": "npm:^7.18.0" - "@types/doctrine": "npm:^0.0.9" - "@types/resolve": "npm:^1.20.2" - doctrine: "npm:^3.0.0" - resolve: "npm:^1.22.1" - strip-indent: "npm:^4.0.0" - checksum: 10/53eaed76cceb55606584c6ab603f04ec78c066cfb9ed983e1f7b388a75bfb8c2fc9c6b7ab299bac311b3daeca95adb8076b58ca96b41907b33c518299268831f - languageName: node - linkType: hard - -"react-dom@npm:^16.8.0 || ^17.0.0 || ^18.0.0, react-dom@npm:^18.2.0": - version: 18.3.1 - resolution: "react-dom@npm:18.3.1" - dependencies: - loose-envify: "npm:^1.1.0" - scheduler: "npm:^0.23.2" - peerDependencies: - react: ^18.3.1 - checksum: 10/3f4b73a3aa083091173b29812b10394dd06f4ac06aff410b74702cfb3aa29d7b0ced208aab92d5272919b612e5cda21aeb1d54191848cf6e46e9e354f3541f81 - languageName: node - linkType: hard - -"react-element-to-jsx-string@npm:^15.0.0": - version: 15.0.0 - resolution: "react-element-to-jsx-string@npm:15.0.0" - dependencies: - "@base2/pretty-print-object": "npm:1.0.1" - is-plain-object: "npm:5.0.0" - react-is: "npm:18.1.0" - peerDependencies: - react: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 - checksum: 10/9a874b2f16b4624a72c4b766b096d693a382b9dc7f2264f802395852ae3435ccde8e9e47bbe45cf5f30eba70f8126af6aca832190e285b0096af3ecade994df1 - languageName: node - linkType: hard - -"react-is@npm:18.1.0": - version: 18.1.0 - resolution: "react-is@npm:18.1.0" - checksum: 10/fe09c86d5e12a8531bf3e748660f3dffbe900a6da0b488c7efaf0a866e16b74ecc1b0011b0960b13594f8719f39f87a987c0c85edff0b2d3e2f14b87e7230ad2 - languageName: node - linkType: hard - -"react-is@npm:^16.13.1": - version: 16.13.1 - resolution: "react-is@npm:16.13.1" - checksum: 10/5aa564a1cde7d391ac980bedee21202fc90bdea3b399952117f54fb71a932af1e5902020144fb354b4690b2414a0c7aafe798eb617b76a3d441d956db7726fdf - 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.3.1 - resolution: "react-is@npm:18.3.1" - checksum: 10/d5f60c87d285af24b1e1e7eaeb123ec256c3c8bdea7061ab3932e3e14685708221bf234ec50b21e10dd07f008f1b966a2730a0ce4ff67905b3872ff2042aec22 - languageName: node - linkType: hard - -"react-refresh@npm:^0.14.2": - version: 0.14.2 - resolution: "react-refresh@npm:0.14.2" - checksum: 10/512abf97271ab8623486061be04b608c39d932e3709f9af1720b41573415fa4993d0009fa5138b6705b60a98f4102f744d4e26c952b14f41a0e455521c6be4cc - languageName: node - linkType: hard - -"react@npm:^16.8.0 || ^17.0.0 || ^18.0.0, react@npm:^18.2.0": - version: 18.3.1 - resolution: "react@npm:18.3.1" - dependencies: - loose-envify: "npm:^1.1.0" - checksum: 10/261137d3f3993eaa2368a83110466fc0e558bc2c7f7ae7ca52d94f03aac945f45146bd85e5f481044db1758a1dbb57879e2fcdd33924e2dde1bdc550ce73f7bf - languageName: node - linkType: hard - -"readable-stream@npm:^3.4.0": - version: 3.6.2 - resolution: "readable-stream@npm:3.6.2" - dependencies: - inherits: "npm:^2.0.3" - string_decoder: "npm:^1.1.1" - util-deprecate: "npm:^1.0.1" - checksum: 10/d9e3e53193adcdb79d8f10f2a1f6989bd4389f5936c6f8b870e77570853561c362bee69feca2bbb7b32368ce96a85504aa4cedf7cf80f36e6a9de30d64244048 - languageName: node - linkType: hard - -"readdirp@npm:~3.6.0": - version: 3.6.0 - resolution: "readdirp@npm:3.6.0" - dependencies: - picomatch: "npm:^2.2.1" - checksum: 10/196b30ef6ccf9b6e18c4e1724b7334f72a093d011a99f3b5920470f0b3406a51770867b3e1ae9711f227ef7a7065982f6ee2ce316746b2cb42c88efe44297fe7 - languageName: node - linkType: hard - -"recast@npm:^0.23.3, recast@npm:^0.23.5": - version: 0.23.9 - resolution: "recast@npm:0.23.9" - dependencies: - ast-types: "npm:^0.16.1" - esprima: "npm:~4.0.0" - source-map: "npm:~0.6.1" - tiny-invariant: "npm:^1.3.3" - tslib: "npm:^2.0.1" - checksum: 10/d60584be179d81a82fbe58b5bbe009aa42831ee114a21a3e3a22bda91334e0b8a1a4610dca8ecb7f9ea1426da4febc08134d3003085ad6ecee478d1808eb8796 - languageName: node - linkType: hard - -"redent@npm:^3.0.0": - version: 3.0.0 - resolution: "redent@npm:3.0.0" - dependencies: - indent-string: "npm:^4.0.0" - strip-indent: "npm:^3.0.0" - checksum: 10/fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b - languageName: node - linkType: hard - -"regenerate-unicode-properties@npm:^10.1.0": - version: 10.1.1 - resolution: "regenerate-unicode-properties@npm:10.1.1" - dependencies: - regenerate: "npm:^1.4.2" - checksum: 10/b855152efdcca0ecc37ceb0cb6647a544344555fc293af3b57191b918e1bc9c95ee404a9a64a1d692bf66d45850942c29d93f2740c0d1980d3a8ea2ca63b184e - languageName: node - linkType: hard - -"regenerate@npm:^1.4.2": - version: 1.4.2 - resolution: "regenerate@npm:1.4.2" - checksum: 10/dc6c95ae4b3ba6adbd7687cafac260eee4640318c7a95239d5ce847d9b9263979758389e862fe9c93d633b5792ea4ada5708df75885dc5aa05a309fa18140a87 - languageName: node - linkType: hard - -"regenerator-runtime@npm:^0.14.0": - version: 0.14.1 - resolution: "regenerator-runtime@npm:0.14.1" - checksum: 10/5db3161abb311eef8c45bcf6565f4f378f785900ed3945acf740a9888c792f75b98ecb77f0775f3bf95502ff423529d23e94f41d80c8256e8fa05ed4b07cf471 - languageName: node - linkType: hard - -"regenerator-transform@npm:^0.15.2": - version: 0.15.2 - resolution: "regenerator-transform@npm:0.15.2" - dependencies: - "@babel/runtime": "npm:^7.8.4" - checksum: 10/c4fdcb46d11bbe32605b4b9ed76b21b8d3f241a45153e9dc6f5542fed4c7744fed459f42701f650d5d5956786bf7de57547329d1c05a9df2ed9e367b9d903302 - languageName: node - linkType: hard - -"regexp.prototype.flags@npm:^1.5.1": - version: 1.5.2 - resolution: "regexp.prototype.flags@npm:1.5.2" - dependencies: - call-bind: "npm:^1.0.6" - define-properties: "npm:^1.2.1" - es-errors: "npm:^1.3.0" - set-function-name: "npm:^2.0.1" - checksum: 10/9fffc01da9c4e12670ff95bc5204364615fcc12d86fc30642765af908675678ebb0780883c874b2dbd184505fb52fa603d80073ecf69f461ce7f56b15d10be9c - languageName: node - linkType: hard - -"regexpu-core@npm:^5.3.1": - version: 5.3.2 - resolution: "regexpu-core@npm:5.3.2" - dependencies: - "@babel/regjsgen": "npm:^0.8.0" - regenerate: "npm:^1.4.2" - regenerate-unicode-properties: "npm:^10.1.0" - regjsparser: "npm:^0.9.1" - unicode-match-property-ecmascript: "npm:^2.0.0" - unicode-match-property-value-ecmascript: "npm:^2.1.0" - checksum: 10/ed0d7c66d84c633fbe8db4939d084c780190eca11f6920807dfb8ebac59e2676952cd8f2008d9c86ae8cf0463ea5fd12c5cff09ef2ce7d51ee6b420a5eb4d177 - languageName: node - linkType: hard - -"regjsparser@npm:^0.9.1": - version: 0.9.1 - resolution: "regjsparser@npm:0.9.1" - dependencies: - jsesc: "npm:~0.5.0" - bin: - regjsparser: bin/parser - checksum: 10/be7757ef76e1db10bf6996001d1021048b5fb12f5cb470a99b8cf7f3ff943f0f0e2291c0dcdbb418b458ddc4ac10e48680a822b69ef487a0284c8b6b77beddc3 - languageName: node - linkType: hard - -"rehype-external-links@npm:^3.0.0": - version: 3.0.0 - resolution: "rehype-external-links@npm:3.0.0" - dependencies: - "@types/hast": "npm:^3.0.0" - "@ungap/structured-clone": "npm:^1.0.0" - hast-util-is-element: "npm:^3.0.0" - is-absolute-url: "npm:^4.0.0" - space-separated-tokens: "npm:^2.0.0" - unist-util-visit: "npm:^5.0.0" - checksum: 10/b9b2e4e5974a7d1e4030dc42bfad980d4700af35b6b20b36fc7ff0521897a8f20d3fe5e170255c428148fdd5a0653a73683da783124038d17b24f26dd59d20e8 - languageName: node - linkType: hard - -"rehype-slug@npm:^6.0.0": - version: 6.0.0 - resolution: "rehype-slug@npm:6.0.0" - dependencies: - "@types/hast": "npm:^3.0.0" - github-slugger: "npm:^2.0.0" - hast-util-heading-rank: "npm:^3.0.0" - hast-util-to-string: "npm:^3.0.0" - unist-util-visit: "npm:^5.0.0" - checksum: 10/292074643f8462c70f498bc8bf18a8c959073b96efc249f61e69fa9e36eb81d9b91d62199a90217c604e1c3904e8ff0a75df70d67e41bead56de93afb725c2d0 - languageName: node - linkType: hard - -"request-progress@npm:^3.0.0": - version: 3.0.0 - resolution: "request-progress@npm:3.0.0" - dependencies: - throttleit: "npm:^1.0.0" - checksum: 10/c25b1c75fb0a0c3b38874abd7ebd58e320c55bc17a48e76772b26828d9e0f688741e144d31b678af9cf447cba32ae153efad05f8a2db225eb07135a613d3162b - languageName: node - linkType: hard - -"require-directory@npm:^2.1.1": - version: 2.1.1 - resolution: "require-directory@npm:2.1.1" - checksum: 10/a72468e2589270d91f06c7d36ec97a88db53ae5d6fe3787fadc943f0b0276b10347f89b363b2a82285f650bdcc135ad4a257c61bdd4d00d6df1fa24875b0ddaf - languageName: node - linkType: hard - -"requireindex@npm:^1.1.0": - version: 1.2.0 - resolution: "requireindex@npm:1.2.0" - checksum: 10/266d1cb31f6cbc4b6cf2e898f5bbc45581f7919bcf61bba5c45d0adb69b722b9ff5a13727be3350cde4520d7cd37f39df45d58a29854baaa4552cd6b05ae4a1a - languageName: node - linkType: hard - -"requires-port@npm:^1.0.0": - version: 1.0.0 - resolution: "requires-port@npm:1.0.0" - checksum: 10/878880ee78ccdce372784f62f52a272048e2d0827c29ae31e7f99da18b62a2b9463ea03a75f277352f4697c100183debb0532371ad515a2d49d4bfe596dd4c20 - languageName: node - linkType: hard - -"resolve-cwd@npm:^3.0.0": - version: 3.0.0 - resolution: "resolve-cwd@npm:3.0.0" - dependencies: - resolve-from: "npm:^5.0.0" - checksum: 10/546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81 - languageName: node - linkType: hard - -"resolve-from@npm:^4.0.0": - version: 4.0.0 - resolution: "resolve-from@npm:4.0.0" - checksum: 10/91eb76ce83621eea7bbdd9b55121a5c1c4a39e54a9ce04a9ad4517f102f8b5131c2cf07622c738a6683991bf54f2ce178f5a42803ecbd527ddc5105f362cc9e3 - languageName: node - linkType: hard - -"resolve-from@npm:^5.0.0": - version: 5.0.0 - resolution: "resolve-from@npm:5.0.0" - checksum: 10/be18a5e4d76dd711778664829841cde690971d02b6cbae277735a09c1c28f407b99ef6ef3cd585a1e6546d4097b28df40ed32c4a287b9699dcf6d7f208495e23 - languageName: node - linkType: hard - -"resolve.exports@npm:^2.0.0": - version: 2.0.2 - resolution: "resolve.exports@npm:2.0.2" - checksum: 10/f1cc0b6680f9a7e0345d783e0547f2a5110d8336b3c2a4227231dd007271ffd331fd722df934f017af90bae0373920ca0d4005da6f76cb3176c8ae426370f893 - languageName: node - linkType: hard - -"resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.8": - version: 1.22.8 - resolution: "resolve@npm:1.22.8" - dependencies: - is-core-module: "npm:^2.13.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10/c473506ee01eb45cbcfefb68652ae5759e092e6b0fb64547feadf9736a6394f258fbc6f88e00c5ca36d5477fbb65388b272432a3600fa223062e54333c156753 - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin": - version: 1.22.8 - resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" - dependencies: - is-core-module: "npm:^2.13.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10/f345cd37f56a2c0275e3fe062517c650bb673815d885e7507566df589375d165bbbf4bdb6aa95600a9bc55f4744b81f452b5a63f95b9f10a72787dba3c90890a - languageName: node - linkType: hard - -"restore-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "restore-cursor@npm:3.1.0" - dependencies: - onetime: "npm:^5.1.0" - signal-exit: "npm:^3.0.2" - checksum: 10/f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 - languageName: node - linkType: hard - -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 10/1f914879f97e7ee931ad05fe3afa629bd55270fc6cf1c1e589b6a99fab96d15daad0fa1a52a00c729ec0078045fe3e399bd4fd0c93bcc906957bdc17f89cb8e6 - languageName: node - linkType: hard - -"reusify@npm:^1.0.4": - version: 1.0.4 - resolution: "reusify@npm:1.0.4" - checksum: 10/14222c9e1d3f9ae01480c50d96057228a8524706db79cdeb5a2ce5bb7070dd9f409a6f84a02cbef8cdc80d39aef86f2dd03d155188a1300c599b05437dcd2ffb - languageName: node - linkType: hard - -"rfdc@npm:^1.3.0": - version: 1.4.1 - resolution: "rfdc@npm:1.4.1" - checksum: 10/2f3d11d3d8929b4bfeefc9acb03aae90f971401de0add5ae6c5e38fec14f0405e6a4aad8fdb76344bfdd20c5193110e3750cbbd28ba86d73729d222b6cf4a729 - languageName: node - linkType: hard - -"rimraf@npm:^3.0.2": - version: 3.0.2 - resolution: "rimraf@npm:3.0.2" - dependencies: - glob: "npm:^7.1.3" - bin: - rimraf: bin.js - checksum: 10/063ffaccaaaca2cfd0ef3beafb12d6a03dd7ff1260d752d62a6077b5dfff6ae81bea571f655bb6b589d366930ec1bdd285d40d560c0dae9b12f125e54eb743d5 - languageName: node - linkType: hard - -"rimraf@npm:~2.6.2": - version: 2.6.3 - resolution: "rimraf@npm:2.6.3" - dependencies: - glob: "npm:^7.1.3" - bin: - rimraf: ./bin.js - checksum: 10/756419f2fa99aa119c46a9fc03e09d84ecf5421a80a72d1944c5088c9e4671e77128527a900a313ed9d3fdbdd37e2ae05486cd7e9116d5812d8c31f2399d7c86 - languageName: node - linkType: hard - -"rollup@npm:^4.13.0": - version: 4.20.0 - resolution: "rollup@npm:4.20.0" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.20.0" - "@rollup/rollup-android-arm64": "npm:4.20.0" - "@rollup/rollup-darwin-arm64": "npm:4.20.0" - "@rollup/rollup-darwin-x64": "npm:4.20.0" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.20.0" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.20.0" - "@rollup/rollup-linux-arm64-gnu": "npm:4.20.0" - "@rollup/rollup-linux-arm64-musl": "npm:4.20.0" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.20.0" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.20.0" - "@rollup/rollup-linux-s390x-gnu": "npm:4.20.0" - "@rollup/rollup-linux-x64-gnu": "npm:4.20.0" - "@rollup/rollup-linux-x64-musl": "npm:4.20.0" - "@rollup/rollup-win32-arm64-msvc": "npm:4.20.0" - "@rollup/rollup-win32-ia32-msvc": "npm:4.20.0" - "@rollup/rollup-win32-x64-msvc": "npm:4.20.0" - "@types/estree": "npm:1.0.5" - fsevents: "npm:~2.3.2" - dependenciesMeta: - "@rollup/rollup-android-arm-eabi": - optional: true - "@rollup/rollup-android-arm64": - optional: true - "@rollup/rollup-darwin-arm64": - optional: true - "@rollup/rollup-darwin-x64": - optional: true - "@rollup/rollup-linux-arm-gnueabihf": - optional: true - "@rollup/rollup-linux-arm-musleabihf": - optional: true - "@rollup/rollup-linux-arm64-gnu": - optional: true - "@rollup/rollup-linux-arm64-musl": - optional: true - "@rollup/rollup-linux-powerpc64le-gnu": - optional: true - "@rollup/rollup-linux-riscv64-gnu": - optional: true - "@rollup/rollup-linux-s390x-gnu": - optional: true - "@rollup/rollup-linux-x64-gnu": - optional: true - "@rollup/rollup-linux-x64-musl": - optional: true - "@rollup/rollup-win32-arm64-msvc": - optional: true - "@rollup/rollup-win32-ia32-msvc": - optional: true - "@rollup/rollup-win32-x64-msvc": - optional: true - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: 10/448bd835715aa0f78c6888314e31fb92f1b83325ef0ff861a5a322c2bc87d200b2b6c4acb9223fb669c27ae0c4b071003b6877eec1d3411174615a4057db8946 - languageName: node - linkType: hard - -"run-parallel@npm:^1.1.9": - version: 1.2.0 - resolution: "run-parallel@npm:1.2.0" - dependencies: - queue-microtask: "npm:^1.2.2" - checksum: 10/cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d - languageName: node - linkType: hard - -"rxjs@npm:^7.5.1": - version: 7.8.1 - resolution: "rxjs@npm:7.8.1" - dependencies: - tslib: "npm:^2.1.0" - checksum: 10/b10cac1a5258f885e9dd1b70d23c34daeb21b61222ee735d2ec40a8685bdca40429000703a44f0e638c27a684ac139e1c37e835d2a0dc16f6fc061a138ae3abb - languageName: node - linkType: hard - -"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: 10/32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451 - languageName: node - linkType: hard - -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: 10/7eaf7a0cf37cc27b42fb3ef6a9b1df6e93a1c6d98c6c6702b02fe262d5fcbd89db63320793b99b21cb5348097d0a53de81bd5f4e8b86e20cc9412e3f1cfb4e83 - languageName: node - linkType: hard - -"saxes@npm:^6.0.0": - version: 6.0.0 - resolution: "saxes@npm:6.0.0" - dependencies: - xmlchars: "npm:^2.2.0" - checksum: 10/97b50daf6ca3a153e89842efa18a862e446248296622b7473c169c84c823ee8a16e4a43bac2f73f11fc8cb9168c73fbb0d73340f26552bac17970e9052367aa9 - languageName: node - linkType: hard - -"scheduler@npm:^0.23.2": - version: 0.23.2 - resolution: "scheduler@npm:0.23.2" - dependencies: - loose-envify: "npm:^1.1.0" - checksum: 10/e8d68b89d18d5b028223edf090092846868a765a591944760942b77ea1f69b17235f7e956696efbb62c8130ab90af7e0949bfb8eba7896335507317236966bc9 - languageName: node - linkType: hard - -"semver@npm:^5.6.0": - version: 5.7.2 - resolution: "semver@npm:5.7.2" - bin: - semver: bin/semver - checksum: 10/fca14418a174d4b4ef1fecb32c5941e3412d52a4d3d85165924ce3a47fbc7073372c26faf7484ceb4bbc2bde25880c6b97e492473dc7e9708fdfb1c6a02d546e - languageName: node - linkType: hard - -"semver@npm:^6.0.0, semver@npm:^6.3.0, semver@npm:^6.3.1": - version: 6.3.1 - resolution: "semver@npm:6.3.1" - bin: - semver: bin/semver.js - checksum: 10/1ef3a85bd02a760c6ef76a45b8c1ce18226de40831e02a00bad78485390b98b6ccaa31046245fc63bba4a47a6a592b6c7eedc65cc47126e60489f9cc1ce3ed7e - languageName: node - linkType: hard - -"semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4": - version: 7.6.3 - resolution: "semver@npm:7.6.3" - bin: - semver: bin/semver.js - checksum: 10/36b1fbe1a2b6f873559cd57b238f1094a053dbfd997ceeb8757d79d1d2089c56d1321b9f1069ce263dc64cfa922fa1d2ad566b39426fe1ac6c723c1487589e10 - languageName: node - linkType: hard - -"send@npm:0.18.0": - version: 0.18.0 - resolution: "send@npm:0.18.0" - dependencies: - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:1.2.0" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - fresh: "npm:0.5.2" - http-errors: "npm:2.0.0" - mime: "npm:1.6.0" - ms: "npm:2.1.3" - on-finished: "npm:2.4.1" - range-parser: "npm:~1.2.1" - statuses: "npm:2.0.1" - checksum: 10/ec66c0ad109680ad8141d507677cfd8b4e40b9559de23191871803ed241718e99026faa46c398dcfb9250676076573bd6bfe5d0ec347f88f4b7b8533d1d391cb - languageName: node - linkType: hard - -"serve-static@npm:1.15.0": - version: 1.15.0 - resolution: "serve-static@npm:1.15.0" - dependencies: - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - parseurl: "npm:~1.3.3" - send: "npm:0.18.0" - checksum: 10/699b2d4c29807a51d9b5e0f24955346911437aebb0178b3c4833ad30d3eca93385ff9927254f5c16da345903cad39d9cd4a532198c95a5129cc4ed43911b15a4 - languageName: node - linkType: hard - -"set-function-length@npm:^1.2.1": - 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.1": - 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 - -"setprototypeof@npm:1.2.0": - version: 1.2.0 - resolution: "setprototypeof@npm:1.2.0" - checksum: 10/fde1630422502fbbc19e6844346778f99d449986b2f9cdcceb8326730d2f3d9964dbcb03c02aaadaefffecd0f2c063315ebea8b3ad895914bf1afc1747fc172e - languageName: node - linkType: hard - -"shallow-clone@npm:^3.0.0": - version: 3.0.1 - resolution: "shallow-clone@npm:3.0.1" - dependencies: - kind-of: "npm:^6.0.2" - checksum: 10/e066bd540cfec5e1b0f78134853e0d892d1c8945fb9a926a579946052e7cb0c70ca4fc34f875a8083aa7910d751805d36ae64af250a6de6f3d28f9fa7be6c21b - languageName: node - linkType: hard - -"shebang-command@npm:^2.0.0": - version: 2.0.0 - resolution: "shebang-command@npm:2.0.0" - dependencies: - shebang-regex: "npm:^3.0.0" - checksum: 10/6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa - languageName: node - linkType: hard - -"shebang-regex@npm:^3.0.0": - version: 3.0.0 - resolution: "shebang-regex@npm:3.0.0" - checksum: 10/1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 - languageName: node - linkType: hard - -"side-channel@npm:^1.0.4": - version: 1.0.6 - resolution: "side-channel@npm:1.0.6" - dependencies: - call-bind: "npm:^1.0.7" - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.4" - object-inspect: "npm:^1.13.1" - checksum: 10/eb10944f38cebad8ad643dd02657592fa41273ce15b8bfa928d3291aff2d30c20ff777cfe908f76ccc4551ace2d1245822fdc576657cce40e9066c638ca8fa4d - 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" - checksum: 10/a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 - languageName: node - linkType: hard - -"signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": - version: 4.1.0 - resolution: "signal-exit@npm:4.1.0" - checksum: 10/c9fa63bbbd7431066174a48ba2dd9986dfd930c3a8b59de9c29d7b6854ec1c12a80d15310869ea5166d413b99f041bfa3dd80a7947bcd44ea8e6eb3ffeabfa1f - languageName: node - linkType: hard - -"sisteransi@npm:^1.0.5": - version: 1.0.5 - resolution: "sisteransi@npm:1.0.5" - checksum: 10/aba6438f46d2bfcef94cf112c835ab395172c75f67453fe05c340c770d3c402363018ae1ab4172a1026a90c47eaccf3af7b6ff6fa749a680c2929bd7fa2b37a4 - languageName: node - linkType: hard - -"slash@npm:^3.0.0": - version: 3.0.0 - resolution: "slash@npm:3.0.0" - checksum: 10/94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c - languageName: node - linkType: hard - -"slash@npm:^5.1.0": - version: 5.1.0 - resolution: "slash@npm:5.1.0" - checksum: 10/2c41ec6fb1414cd9bba0fa6b1dd00e8be739e3fe85d079c69d4b09ca5f2f86eafd18d9ce611c0c0f686428638a36c272a6ac14799146a8295f259c10cc45cde4 - languageName: node - linkType: hard - -"slice-ansi@npm:^3.0.0": - version: 3.0.0 - resolution: "slice-ansi@npm:3.0.0" - dependencies: - ansi-styles: "npm:^4.0.0" - astral-regex: "npm:^2.0.0" - is-fullwidth-code-point: "npm:^3.0.0" - checksum: 10/5ec6d022d12e016347e9e3e98a7eb2a592213a43a65f1b61b74d2c78288da0aded781f665807a9f3876b9daa9ad94f64f77d7633a0458876c3a4fdc4eb223f24 - languageName: node - linkType: hard - -"slice-ansi@npm:^4.0.0": - version: 4.0.0 - resolution: "slice-ansi@npm:4.0.0" - dependencies: - ansi-styles: "npm:^4.0.0" - astral-regex: "npm:^2.0.0" - is-fullwidth-code-point: "npm:^3.0.0" - checksum: 10/4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756 - languageName: node - linkType: hard - -"smart-buffer@npm:^4.2.0": - version: 4.2.0 - resolution: "smart-buffer@npm:4.2.0" - checksum: 10/927484aa0b1640fd9473cee3e0a0bcad6fce93fd7bbc18bac9ad0c33686f5d2e2c422fba24b5899c184524af01e11dd2bd051c2bf2b07e47aff8ca72cbfc60d2 - languageName: node - linkType: hard - -"socks-proxy-agent@npm:^8.0.3": - version: 8.0.4 - resolution: "socks-proxy-agent@npm:8.0.4" - dependencies: - agent-base: "npm:^7.1.1" - debug: "npm:^4.3.4" - socks: "npm:^2.8.3" - checksum: 10/c8e7c2b398338b49a0a0f4d2bae5c0602aeeca6b478b99415927b6c5db349ca258448f2c87c6958ebf83eea17d42cbc5d1af0bfecb276cac10b9658b0f07f7d7 - languageName: node - linkType: hard - -"socks@npm:^2.8.3": - version: 2.8.3 - resolution: "socks@npm:2.8.3" - dependencies: - ip-address: "npm:^9.0.5" - smart-buffer: "npm:^4.2.0" - checksum: 10/ffcb622c22481dfcd7589aae71fbfd71ca34334064d181df64bf8b7feaeee19706aba4cffd1de35cc7bbaeeaa0af96be2d7f40fcbc7bc0ab69533a7ae9ffc4fb - languageName: node - linkType: hard - -"source-map-js@npm:^1.2.0": - version: 1.2.0 - resolution: "source-map-js@npm:1.2.0" - checksum: 10/74f331cfd2d121c50790c8dd6d3c9de6be21926de80583b23b37029b0f37aefc3e019fa91f9a10a5e120c08135297e1ecf312d561459c45908cb1e0e365f49e5 - languageName: node - linkType: hard - -"source-map-support@npm:0.5.13": - version: 0.5.13 - resolution: "source-map-support@npm:0.5.13" - dependencies: - buffer-from: "npm:^1.0.0" - source-map: "npm:^0.6.0" - checksum: 10/d1514a922ac9c7e4786037eeff6c3322f461cd25da34bb9fefb15387b3490531774e6e31d95ab6d5b84a3e139af9c3a570ccaee6b47bd7ea262691ed3a8bc34e - languageName: node - linkType: hard - -"source-map-support@npm:^0.5.16": - version: 0.5.21 - resolution: "source-map-support@npm:0.5.21" - dependencies: - buffer-from: "npm:^1.0.0" - source-map: "npm:^0.6.0" - checksum: 10/8317e12d84019b31e34b86d483dd41d6f832f389f7417faf8fc5c75a66a12d9686e47f589a0554a868b8482f037e23df9d040d29387eb16fa14cb85f091ba207 - languageName: node - linkType: hard - -"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": - version: 0.6.1 - resolution: "source-map@npm:0.6.1" - checksum: 10/59ef7462f1c29d502b3057e822cdbdae0b0e565302c4dd1a95e11e793d8d9d62006cdc10e0fd99163ca33ff2071360cf50ee13f90440806e7ed57d81cba2f7ff - languageName: node - linkType: hard - -"space-separated-tokens@npm:^2.0.0": - version: 2.0.2 - resolution: "space-separated-tokens@npm:2.0.2" - checksum: 10/202e97d7ca1ba0758a0aa4fe226ff98142073bcceeff2da3aad037968878552c3bbce3b3231970025375bbba5aee00c5b8206eda408da837ab2dc9c0f26be990 - languageName: node - linkType: hard - -"sprintf-js@npm:^1.1.3": - version: 1.1.3 - resolution: "sprintf-js@npm:1.1.3" - checksum: 10/e7587128c423f7e43cc625fe2f87e6affdf5ca51c1cc468e910d8aaca46bb44a7fbcfa552f787b1d3987f7043aeb4527d1b99559e6621e01b42b3f45e5a24cbb - languageName: node - linkType: hard - -"sprintf-js@npm:~1.0.2": - version: 1.0.3 - resolution: "sprintf-js@npm:1.0.3" - checksum: 10/c34828732ab8509c2741e5fd1af6b767c3daf2c642f267788f933a65b1614943c282e74c4284f4fa749c264b18ee016a0d37a3e5b73aee446da46277d3a85daa - languageName: node - linkType: hard - -"sshpk@npm:^1.14.1": - version: 1.18.0 - resolution: "sshpk@npm:1.18.0" - dependencies: - asn1: "npm:~0.2.3" - assert-plus: "npm:^1.0.0" - bcrypt-pbkdf: "npm:^1.0.0" - dashdash: "npm:^1.12.0" - ecc-jsbn: "npm:~0.1.1" - getpass: "npm:^0.1.1" - jsbn: "npm:~0.1.0" - safer-buffer: "npm:^2.0.2" - tweetnacl: "npm:~0.14.0" - bin: - sshpk-conv: bin/sshpk-conv - sshpk-sign: bin/sshpk-sign - sshpk-verify: bin/sshpk-verify - checksum: 10/858339d43e3c6b6a848772a66f69442ce74f1a37655d9f35ba9d1f85329499ff0000af9f8ab83dbb39ad24c0c370edabe0be1e39863f70c6cded9924b8458c34 - languageName: node - linkType: hard - -"ssri@npm:^10.0.0": - version: 10.0.6 - resolution: "ssri@npm:10.0.6" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10/f92c1b3cc9bfd0a925417412d07d999935917bc87049f43ebec41074661d64cf720315661844106a77da9f8204b6d55ae29f9514e673083cae39464343af2a8b - languageName: node - linkType: hard - -"stack-utils@npm:^2.0.3": - version: 2.0.6 - resolution: "stack-utils@npm:2.0.6" - dependencies: - escape-string-regexp: "npm:^2.0.0" - checksum: 10/cdc988acbc99075b4b036ac6014e5f1e9afa7e564482b687da6384eee6a1909d7eaffde85b0a17ffbe186c5247faf6c2b7544e802109f63b72c7be69b13151bb - languageName: node - linkType: hard - -"statuses@npm:2.0.1": - version: 2.0.1 - resolution: "statuses@npm:2.0.1" - checksum: 10/18c7623fdb8f646fb213ca4051be4df7efb3484d4ab662937ca6fbef7ced9b9e12842709872eb3020cc3504b93bde88935c9f6417489627a7786f24f8031cbcb - languageName: node - linkType: hard - -"stop-iteration-iterator@npm:^1.0.0": - version: 1.0.0 - resolution: "stop-iteration-iterator@npm:1.0.0" - dependencies: - internal-slot: "npm:^1.0.4" - checksum: 10/2a23a36f4f6bfa63f46ae2d53a3f80fe8276110b95a55345d8ed3d92125413494033bc8697eb774e8f7aeb5725f70e3d69753caa2ecacdac6258c16fa8aa8b0f - languageName: node - linkType: hard - -"storybook@portal:../../../code/lib/cli::locator=portable-stories-react%40workspace%3A.": - version: 0.0.0-use.local - resolution: "storybook@portal:../../../code/lib/cli::locator=portable-stories-react%40workspace%3A." - dependencies: - "@babel/core": "npm:^7.24.4" - "@babel/types": "npm:^7.24.0" - "@storybook/codemod": "workspace:*" - "@storybook/core": "workspace:*" - "@types/semver": "npm:^7.3.4" - "@yarnpkg/fslib": "npm:2.10.3" - "@yarnpkg/libzip": "npm:2.3.0" - chalk: "npm:^4.1.0" - commander: "npm:^6.2.1" - cross-spawn: "npm:^7.0.3" - detect-indent: "npm:^6.1.0" - envinfo: "npm:^7.7.3" - execa: "npm:^5.0.0" - fd-package-json: "npm:^1.2.0" - find-up: "npm:^5.0.0" - fs-extra: "npm:^11.1.0" - giget: "npm:^1.0.0" - globby: "npm:^14.0.1" - jscodeshift: "npm:^0.15.1" - leven: "npm:^3.1.0" - ora: "npm:^5.4.1" - prettier: "npm:^3.1.1" - prompts: "npm:^2.4.0" - semver: "npm:^7.3.7" - strip-json-comments: "npm:^3.0.1" - tempy: "npm:^3.1.0" - tiny-invariant: "npm:^1.3.1" - ts-dedent: "npm:^2.0.0" - bin: - getstorybook: ./bin/index.cjs - sb: ./bin/index.cjs - storybook: ./bin/index.cjs - languageName: node - linkType: soft - -"string-length@npm:^4.0.1": - version: 4.0.2 - resolution: "string-length@npm:4.0.2" - dependencies: - char-regex: "npm:^1.0.2" - strip-ansi: "npm:^6.0.0" - checksum: 10/ce85533ef5113fcb7e522bcf9e62cb33871aa99b3729cec5595f4447f660b0cefd542ca6df4150c97a677d58b0cb727a3fe09ac1de94071d05526c73579bf505 - 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": - version: 4.2.3 - resolution: "string-width@npm:4.2.3" - dependencies: - emoji-regex: "npm:^8.0.0" - is-fullwidth-code-point: "npm:^3.0.0" - strip-ansi: "npm:^6.0.1" - checksum: 10/e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb - languageName: node - linkType: hard - -"string-width@npm:^5.0.1, string-width@npm:^5.1.2": - version: 5.1.2 - resolution: "string-width@npm:5.1.2" - dependencies: - eastasianwidth: "npm:^0.2.0" - emoji-regex: "npm:^9.2.2" - strip-ansi: "npm:^7.0.1" - checksum: 10/7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 - languageName: node - linkType: hard - -"string_decoder@npm:^1.1.1": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.0" - dependencies: - safe-buffer: "npm:~5.2.0" - checksum: 10/54d23f4a6acae0e93f999a585e673be9e561b65cd4cca37714af1e893ab8cd8dfa52a9e4f58f48f87b4a44918d3a9254326cb80ed194bf2e4c226e2b21767e56 - languageName: node - linkType: hard - -"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": - version: 6.0.1 - resolution: "strip-ansi@npm:6.0.1" - dependencies: - ansi-regex: "npm:^5.0.1" - checksum: 10/ae3b5436d34fadeb6096367626ce987057713c566e1e7768818797e00ac5d62023d0f198c4e681eae9e20701721980b26a64a8f5b91238869592a9c6800719a2 - languageName: node - linkType: hard - -"strip-ansi@npm:^7.0.1": - version: 7.1.0 - resolution: "strip-ansi@npm:7.1.0" - dependencies: - ansi-regex: "npm:^6.0.1" - checksum: 10/475f53e9c44375d6e72807284024ac5d668ee1d06010740dec0b9744f2ddf47de8d7151f80e5f6190fc8f384e802fdf9504b76a7e9020c9faee7103623338be2 - languageName: node - linkType: hard - -"strip-bom@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-bom@npm:3.0.0" - checksum: 10/8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b - languageName: node - linkType: hard - -"strip-bom@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-bom@npm:4.0.0" - checksum: 10/9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 - languageName: node - linkType: hard - -"strip-final-newline@npm:^2.0.0": - version: 2.0.0 - resolution: "strip-final-newline@npm:2.0.0" - checksum: 10/69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 - languageName: node - linkType: hard - -"strip-final-newline@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-final-newline@npm:3.0.0" - checksum: 10/23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 - languageName: node - linkType: hard - -"strip-indent@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-indent@npm:3.0.0" - dependencies: - min-indent: "npm:^1.0.0" - checksum: 10/18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530 - languageName: node - linkType: hard - -"strip-indent@npm:^4.0.0": - version: 4.0.0 - resolution: "strip-indent@npm:4.0.0" - dependencies: - min-indent: "npm:^1.0.1" - checksum: 10/06cbcd93da721c46bc13caeb1c00af93a9b18146a1c95927672d2decab6a25ad83662772417cea9317a2507fb143253ecc23c4415b64f5828cef9b638a744598 - languageName: node - linkType: hard - -"strip-json-comments@npm:^3.0.1, strip-json-comments@npm:^3.1.1": - version: 3.1.1 - resolution: "strip-json-comments@npm:3.1.1" - checksum: 10/492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 - languageName: node - linkType: hard - -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: "npm:^3.0.0" - checksum: 10/5f505c6fa3c6e05873b43af096ddeb22159831597649881aeb8572d6fe3b81e798cc10840d0c9735e0026b250368851b7f77b65e84f4e4daa820a4f69947f55b - languageName: node - linkType: hard - -"supports-color@npm:^7.1.0": - version: 7.2.0 - resolution: "supports-color@npm:7.2.0" - dependencies: - has-flag: "npm:^4.0.0" - checksum: 10/c8bb7afd564e3b26b50ca6ee47572c217526a1389fe018d00345856d4a9b08ffbd61fadaf283a87368d94c3dcdb8f5ffe2650a5a65863e21ad2730ca0f05210a - languageName: node - linkType: hard - -"supports-color@npm:^8.0.0, supports-color@npm:^8.1.1": - version: 8.1.1 - resolution: "supports-color@npm:8.1.1" - dependencies: - has-flag: "npm:^4.0.0" - checksum: 10/157b534df88e39c5518c5e78c35580c1eca848d7dbaf31bbe06cdfc048e22c7ff1a9d046ae17b25691128f631a51d9ec373c1b740c12ae4f0de6e292037e4282 - languageName: node - linkType: hard - -"supports-preserve-symlinks-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 10/a9dc19ae2220c952bd2231d08ddeecb1b0328b61e72071ff4000c8384e145cc07c1c0bdb3b5a1cb06e186a7b2790f1dee793418b332f6ddf320de25d9125be7e - languageName: node - linkType: hard - -"symbol-tree@npm:^3.2.4": - version: 3.2.4 - resolution: "symbol-tree@npm:3.2.4" - checksum: 10/c09a00aadf279d47d0c5c46ca3b6b2fbaeb45f0a184976d599637d412d3a70bbdc043ff33effe1206dea0e36e0ad226cb957112e7ce9a4bf2daedf7fa4f85c53 - languageName: node - linkType: hard - -"tar@npm:^6.1.11, tar@npm:^6.2.0, tar@npm:^6.2.1": - version: 6.2.1 - resolution: "tar@npm:6.2.1" - dependencies: - chownr: "npm:^2.0.0" - fs-minipass: "npm:^2.0.0" - minipass: "npm:^5.0.0" - minizlib: "npm:^2.1.1" - mkdirp: "npm:^1.0.3" - yallist: "npm:^4.0.0" - checksum: 10/bfbfbb2861888077fc1130b84029cdc2721efb93d1d1fb80f22a7ac3a98ec6f8972f29e564103bbebf5e97be67ebc356d37fa48dbc4960600a1eb7230fbd1ea0 - languageName: node - linkType: hard - -"telejson@npm:^7.2.0": - version: 7.2.0 - resolution: "telejson@npm:7.2.0" - dependencies: - memoizerific: "npm:^1.11.3" - checksum: 10/6e89b3d3c45b5a2aced9132f6a968fcdf758c00be4c3acb115d7d81e95c9e04083a7a4a9b43057fcf48b101156c1607a38f5491615956acb28d4d1f78a4bda20 - languageName: node - linkType: hard - -"temp-dir@npm:^3.0.0": - version: 3.0.0 - resolution: "temp-dir@npm:3.0.0" - checksum: 10/577211e995d1d584dd60f1469351d45e8a5b4524e4a9e42d3bdd12cfde1d0bb8f5898311bef24e02aaafb69514c1feb58c7b4c33dcec7129da3b0861a4ca935b - languageName: node - linkType: hard - -"temp@npm:^0.8.4": - version: 0.8.4 - resolution: "temp@npm:0.8.4" - dependencies: - rimraf: "npm:~2.6.2" - checksum: 10/0a7f76b49637415bc391c3f6e69377cc4c38afac95132b4158fa711e77b70b082fe56fd886f9d11ffab9d148df181a105a93c8b618fb72266eeaa5e5ddbfe37f - languageName: node - linkType: hard - -"tempy@npm:^3.1.0": - version: 3.1.0 - resolution: "tempy@npm:3.1.0" - dependencies: - is-stream: "npm:^3.0.0" - temp-dir: "npm:^3.0.0" - type-fest: "npm:^2.12.2" - unique-string: "npm:^3.0.0" - checksum: 10/f5540bc24dcd9d41ab0b31e9eed73c3ef825080f1c8b1e854e4b73059155c889f72f5f7c15e8cd462d59aa10c9726e423c81d6a365d614b538c6cc78a1209cc6 - languageName: node - linkType: hard - -"test-exclude@npm:^6.0.0": - version: 6.0.0 - resolution: "test-exclude@npm:6.0.0" - dependencies: - "@istanbuljs/schema": "npm:^0.1.2" - glob: "npm:^7.1.4" - minimatch: "npm:^3.0.4" - checksum: 10/8fccb2cb6c8fcb6bb4115394feb833f8b6cf4b9503ec2485c2c90febf435cac62abe882a0c5c51a37b9bbe70640cdd05acf5f45e486ac4583389f4b0855f69e5 - languageName: node - linkType: hard - -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: 10/4383b5baaeffa9bb4cda2ac33a4aa2e6d1f8aaf811848bf73513a9b88fd76372dc461f6fd6d2e9cb5100f48b473be32c6f95bd983509b7d92bb4d92c10747452 - languageName: node - linkType: hard - -"throttleit@npm:^1.0.0": - version: 1.0.1 - resolution: "throttleit@npm:1.0.1" - checksum: 10/17f1aba82192d8b4f5be5f7e7955acd2db0b60557a2e041900bcb685c03fc0a42e44fae955741c2994ec314918c6c1c2c179bfe17b1fbb4a011c506e9ea7cc33 - languageName: node - linkType: hard - -"through@npm:^2.3.8": - version: 2.3.8 - resolution: "through@npm:2.3.8" - checksum: 10/5da78346f70139a7d213b65a0106f3c398d6bc5301f9248b5275f420abc2c4b1e77c2abc72d218dedc28c41efb2e7c312cb76a7730d04f9c2d37d247da3f4198 - languageName: node - linkType: hard - -"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 - languageName: node - linkType: hard - -"tinyrainbow@npm:^1.2.0": - version: 1.2.0 - resolution: "tinyrainbow@npm:1.2.0" - checksum: 10/2924444db6804355e5ba2b6e586c7f77329d93abdd7257a069a0f4530dff9f16de484e80479094e3f39273462541b003a65ee3a6afc2d12555aa745132deba5d - languageName: node - linkType: hard - -"tinyspy@npm:^3.0.0": - version: 3.0.0 - resolution: "tinyspy@npm:3.0.0" - checksum: 10/b5b686acff2b88de60ff8ecf89a2042320406aaeee2fba1828a7ea8a925fad3ed9f5e4d7a068154a9134473c472aa03da8ca92ee994bc57a741c5ede5fa7de4d - languageName: node - linkType: hard - -"tmp@npm:~0.2.3": - version: 0.2.3 - resolution: "tmp@npm:0.2.3" - checksum: 10/7b13696787f159c9754793a83aa79a24f1522d47b87462ddb57c18ee93ff26c74cbb2b8d9138f571d2e0e765c728fb2739863a672b280528512c6d83d511c6fa - languageName: node - linkType: hard - -"tmpl@npm:1.0.5": - version: 1.0.5 - resolution: "tmpl@npm:1.0.5" - checksum: 10/cd922d9b853c00fe414c5a774817be65b058d54a2d01ebb415840960406c669a0fc632f66df885e24cb022ec812739199ccbdb8d1164c3e513f85bfca5ab2873 - languageName: node - linkType: hard - -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: 10/be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 - languageName: node - linkType: hard - -"to-regex-range@npm:^5.0.1": - version: 5.0.1 - resolution: "to-regex-range@npm:5.0.1" - dependencies: - is-number: "npm:^7.0.0" - checksum: 10/10dda13571e1f5ad37546827e9b6d4252d2e0bc176c24a101252153ef435d83696e2557fe128c4678e4e78f5f01e83711c703eef9814eb12dab028580d45980a - languageName: node - linkType: hard - -"toidentifier@npm:1.0.1": - version: 1.0.1 - resolution: "toidentifier@npm:1.0.1" - checksum: 10/952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 - languageName: node - linkType: hard - -"tough-cookie@npm:^4.1.2, tough-cookie@npm:^4.1.3": - version: 4.1.4 - resolution: "tough-cookie@npm:4.1.4" - dependencies: - psl: "npm:^1.1.33" - punycode: "npm:^2.1.1" - universalify: "npm:^0.2.0" - url-parse: "npm:^1.5.3" - checksum: 10/75663f4e2cd085f16af0b217e4218772adf0617fb3227171102618a54ce0187a164e505d61f773ed7d65988f8ff8a8f935d381f87da981752c1171b076b4afac - languageName: node - linkType: hard - -"tr46@npm:^3.0.0": - version: 3.0.0 - resolution: "tr46@npm:3.0.0" - dependencies: - punycode: "npm:^2.1.1" - checksum: 10/b09a15886cbfaee419a3469081223489051ce9dca3374dd9500d2378adedbee84a3c73f83bfdd6bb13d53657753fc0d4e20a46bfcd3f1b9057ef528426ad7ce4 - languageName: node - linkType: hard - -"ts-api-utils@npm:^1.0.1": - version: 1.3.0 - resolution: "ts-api-utils@npm:1.3.0" - peerDependencies: - typescript: ">=4.2.0" - checksum: 10/3ee44faa24410cd649b5c864e068d438aa437ef64e9e4a66a41646a6d3024d3097a695eeb3fb26ee364705d3cb9653a65756d009e6a53badb6066a5f447bf7ed - languageName: node - linkType: hard - -"ts-dedent@npm:^2.0.0, ts-dedent@npm:^2.2.0": - version: 2.2.0 - resolution: "ts-dedent@npm:2.2.0" - checksum: 10/93ed8f7878b6d5ed3c08d99b740010eede6bccfe64bce61c5a4da06a2c17d6ddbb80a8c49c2d15251de7594a4f93ffa21dd10e7be75ef66a4dc9951b4a94e2af - languageName: node - linkType: hard - -"tsconfig-paths@npm:^4.2.0": - version: 4.2.0 - resolution: "tsconfig-paths@npm:4.2.0" - dependencies: - json5: "npm:^2.2.2" - minimist: "npm:^1.2.6" - strip-bom: "npm:^3.0.0" - checksum: 10/5e55cc2fb6b800eb72011522e10edefccb45b1f9af055681a51354c9b597d1390c6fa9cc356b8c7529f195ac8a90a78190d563159f3a1eed10e01bbd4d01a8ab - languageName: node - linkType: hard - -"tslib@npm:^1.13.0, tslib@npm:^1.8.1": - version: 1.14.1 - resolution: "tslib@npm:1.14.1" - checksum: 10/7dbf34e6f55c6492637adb81b555af5e3b4f9cc6b998fb440dac82d3b42bdc91560a35a5fb75e20e24a076c651438234da6743d139e4feabf0783f3cdfe1dddb - languageName: node - linkType: hard - -"tslib@npm:^2.0.1, tslib@npm:^2.1.0": - version: 2.6.3 - resolution: "tslib@npm:2.6.3" - checksum: 10/52109bb681f8133a2e58142f11a50e05476de4f075ca906d13b596ae5f7f12d30c482feb0bff167ae01cfc84c5803e575a307d47938999246f5a49d174fc558c - languageName: node - linkType: hard - -"tsutils@npm:^3.21.0": - version: 3.21.0 - resolution: "tsutils@npm:3.21.0" - dependencies: - tslib: "npm:^1.8.1" - peerDependencies: - typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - checksum: 10/ea036bec1dd024e309939ffd49fda7a351c0e87a1b8eb049570dd119d447250e2c56e0e6c00554e8205760e7417793fdebff752a46e573fbe07d4f375502a5b2 - languageName: node - linkType: hard - -"tunnel-agent@npm:^0.6.0": - version: 0.6.0 - resolution: "tunnel-agent@npm:0.6.0" - dependencies: - safe-buffer: "npm:^5.0.1" - checksum: 10/7f0d9ed5c22404072b2ae8edc45c071772affd2ed14a74f03b4e71b4dd1a14c3714d85aed64abcaaee5fec2efc79002ba81155c708f4df65821b444abb0cfade - languageName: node - linkType: hard - -"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0": - version: 0.14.5 - resolution: "tweetnacl@npm:0.14.5" - checksum: 10/04ee27901cde46c1c0a64b9584e04c96c5fe45b38c0d74930710751ea991408b405747d01dfae72f80fc158137018aea94f9c38c651cb9c318f0861a310c3679 - languageName: node - linkType: hard - -"type-check@npm:^0.4.0, type-check@npm:~0.4.0": - version: 0.4.0 - resolution: "type-check@npm:0.4.0" - dependencies: - prelude-ls: "npm:^1.2.1" - checksum: 10/14687776479d048e3c1dbfe58a2409e00367810d6960c0f619b33793271ff2a27f81b52461f14a162f1f89a9b1d8da1b237fc7c99b0e1fdcec28ec63a86b1fec - languageName: node - linkType: hard - -"type-detect@npm:4.0.8": - version: 4.0.8 - resolution: "type-detect@npm:4.0.8" - checksum: 10/5179e3b8ebc51fce1b13efb75fdea4595484433f9683bbc2dca6d99789dba4e602ab7922d2656f2ce8383987467f7770131d4a7f06a26287db0615d2f4c4ce7d - languageName: node - linkType: hard - -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 10/8907e16284b2d6cfa4f4817e93520121941baba36b39219ea36acfe64c86b9dbc10c9941af450bd60832c8f43464974d51c0957f9858bc66b952b66b6914cbb9 - languageName: node - linkType: hard - -"type-fest@npm:^0.21.3": - version: 0.21.3 - resolution: "type-fest@npm:0.21.3" - checksum: 10/f4254070d9c3d83a6e573bcb95173008d73474ceadbbf620dd32d273940ca18734dff39c2b2480282df9afe5d1675ebed5499a00d791758748ea81f61a38961f - languageName: node - linkType: hard - -"type-fest@npm:^1.0.1": - version: 1.4.0 - resolution: "type-fest@npm:1.4.0" - checksum: 10/89875c247564601c2650bacad5ff80b859007fbdb6c9e43713ae3ffa3f584552eea60f33711dd762e16496a1ab4debd409822627be14097d9a17e39c49db591a - languageName: node - linkType: hard - -"type-fest@npm:^2.12.2, type-fest@npm:^2.19.0, type-fest@npm:~2.19": - version: 2.19.0 - resolution: "type-fest@npm:2.19.0" - checksum: 10/7bf9e8fdf34f92c8bb364c0af14ca875fac7e0183f2985498b77be129dc1b3b1ad0a6b3281580f19e48c6105c037fb966ad9934520c69c6434d17fd0af4eed78 - languageName: node - linkType: hard - -"type-is@npm:~1.6.18": - version: 1.6.18 - resolution: "type-is@npm:1.6.18" - dependencies: - media-typer: "npm:0.3.0" - mime-types: "npm:~2.1.24" - checksum: 10/0bd9eeae5efd27d98fd63519f999908c009e148039d8e7179a074f105362d4fcc214c38b24f6cda79c87e563cbd12083a4691381ed28559220d4a10c2047bed4 - languageName: node - linkType: hard - -"typescript@npm:^5.2.2": - version: 5.5.4 - resolution: "typescript@npm:5.5.4" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10/1689ccafef894825481fc3d856b4834ba3cc185a9c2878f3c76a9a1ef81af04194849840f3c69e7961e2312771471bb3b460ca92561e1d87599b26c37d0ffb6f - languageName: node - linkType: hard - -"typescript@patch:typescript@npm%3A^5.2.2#optional!builtin": - version: 5.5.4 - resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin::version=5.5.4&hash=b45daf" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10/2c065f0ef81855eac25c9b658a3c9da65ffc005260c12854c2286f40f3667e1b1ecf8bdbdd37b59aa0397920378ce7900bff8cb32e0f1c7af6fd86efc676718c - languageName: node - linkType: hard - -"ufo@npm:^1.5.3": - version: 1.5.4 - resolution: "ufo@npm:1.5.4" - checksum: 10/a885ed421e656aea6ca64e9727b8118a9488715460b6f1a0f0427118adfe2f2830fe7c1d5bd9c5c754a332e6807516551cd663ea67ce9ed6a4e3edc739916335 - 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.13.0": - version: 6.13.0 - resolution: "undici-types@npm:6.13.0" - checksum: 10/da52e37cbc6da3a75da86fa08dd795ca8924430deb91005eb884b840e46e19013ccd4c1c289f70018e8cf0c338add24a500e7c3acfcd49b1ffb27ff9f91e38b9 - 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" - checksum: 10/39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45 - languageName: node - linkType: hard - -"unicode-match-property-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-match-property-ecmascript@npm:2.0.0" - dependencies: - unicode-canonical-property-names-ecmascript: "npm:^2.0.0" - unicode-property-aliases-ecmascript: "npm:^2.0.0" - checksum: 10/1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a - languageName: node - linkType: hard - -"unicode-match-property-value-ecmascript@npm:^2.1.0": - version: 2.1.0 - resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" - checksum: 10/06661bc8aba2a60c7733a7044f3e13085808939ad17924ffd4f5222a650f88009eb7c09481dc9c15cfc593d4ad99bd1cde8d54042733b335672591a81c52601c - languageName: node - linkType: hard - -"unicode-property-aliases-ecmascript@npm:^2.0.0": - version: 2.1.0 - resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" - checksum: 10/243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b - languageName: node - linkType: hard - -"unicorn-magic@npm:^0.1.0": - version: 0.1.0 - resolution: "unicorn-magic@npm:0.1.0" - checksum: 10/9b4d0e9809807823dc91d0920a4a4c0cff2de3ebc54ee87ac1ee9bc75eafd609b09d1f14495e0173aef26e01118706196b6ab06a75fe0841028b3983a8af313f - languageName: node - linkType: hard - -"unique-filename@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-filename@npm:3.0.0" - dependencies: - unique-slug: "npm:^4.0.0" - checksum: 10/8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df - languageName: node - linkType: hard - -"unique-slug@npm:^4.0.0": - version: 4.0.0 - resolution: "unique-slug@npm:4.0.0" - dependencies: - imurmurhash: "npm:^0.1.4" - checksum: 10/40912a8963fc02fb8b600cf50197df4a275c602c60de4cac4f75879d3c48558cfac48de08a25cc10df8112161f7180b3bbb4d662aadb711568602f9eddee54f0 - 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 - -"unist-util-is@npm:^6.0.0": - version: 6.0.0 - resolution: "unist-util-is@npm:6.0.0" - dependencies: - "@types/unist": "npm:^3.0.0" - checksum: 10/edd6a93fb2255addf4b9eeb304c1da63c62179aef793169dd64ab955cf2f6814885fe25f95f8105893e3562dead348af535718d7a84333826e0491c04bf42511 - languageName: node - linkType: hard - -"unist-util-visit-parents@npm:^6.0.0": - version: 6.0.1 - resolution: "unist-util-visit-parents@npm:6.0.1" - dependencies: - "@types/unist": "npm:^3.0.0" - unist-util-is: "npm:^6.0.0" - checksum: 10/645b3cbc5e923bc692b1eb1a9ca17bffc5aabc25e6090ff3f1489bff8effd1890b28f7a09dc853cb6a7fa0da8581bfebc9b670a68b53c4c086cb9610dfd37701 - languageName: node - linkType: hard - -"unist-util-visit@npm:^5.0.0": - version: 5.0.0 - resolution: "unist-util-visit@npm:5.0.0" - dependencies: - "@types/unist": "npm:^3.0.0" - unist-util-is: "npm:^6.0.0" - unist-util-visit-parents: "npm:^6.0.0" - checksum: 10/f2bbde23641e9ade7640358c06ddeec0f38342322eb8e7819d9ee380b0f859d25d084dde22bf63db0280b3b2f36575f15aa1d6c23acf276c91c2493cf799e3b0 - languageName: node - linkType: hard - -"universalify@npm:^0.2.0": - version: 0.2.0 - resolution: "universalify@npm:0.2.0" - checksum: 10/e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 - languageName: node - linkType: hard - -"universalify@npm:^2.0.0": - version: 2.0.1 - resolution: "universalify@npm:2.0.1" - checksum: 10/ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 - languageName: node - linkType: hard - -"unpipe@npm:1.0.0, unpipe@npm:~1.0.0": - version: 1.0.0 - resolution: "unpipe@npm:1.0.0" - checksum: 10/4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 - languageName: node - linkType: hard - -"unplugin@npm:^1.3.1": - version: 1.12.0 - resolution: "unplugin@npm:1.12.0" - dependencies: - acorn: "npm:^8.12.1" - chokidar: "npm:^3.6.0" - webpack-sources: "npm:^3.2.3" - webpack-virtual-modules: "npm:^0.6.2" - checksum: 10/abbc3eeb714e767d51b932ea8007ad6ff3760c5236f3d8c727c30805d6b3f5a09b370ab9ebd5f13f6f95e4b3c990413bebc64d3b163bdd842421c54cc8d1c6f1 - 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.0": - version: 1.1.0 - resolution: "update-browserslist-db@npm:1.1.0" - dependencies: - escalade: "npm:^3.1.2" - picocolors: "npm:^1.0.1" - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: 10/d70b9efeaf4601aadb1a4f6456a7a5d9118e0063d995866b8e0c5e0cf559482671dab6ce7b079f9536b06758a344fbd83f974b965211e1c6e8d1958540b0c24c - languageName: node - linkType: hard - -"uri-js@npm:^4.2.2": - version: 4.4.1 - resolution: "uri-js@npm:4.4.1" - dependencies: - punycode: "npm:^2.1.0" - checksum: 10/b271ca7e3d46b7160222e3afa3e531505161c9a4e097febae9664e4b59912f4cbe94861361a4175edac3a03fee99d91e44b6a58c17a634bc5a664b19fc76fbcb - languageName: node - linkType: hard - -"url-parse@npm:^1.5.3": - version: 1.5.10 - resolution: "url-parse@npm:1.5.10" - dependencies: - querystringify: "npm:^2.1.1" - requires-port: "npm:^1.0.0" - checksum: 10/c9e96bc8c5b34e9f05ddfeffc12f6aadecbb0d971b3cc26015b58d5b44676a99f50d5aeb1e5c9e61fa4d49961ae3ab1ae997369ed44da51b2f5ac010d188e6ad - languageName: node - linkType: hard - -"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2": - version: 1.0.2 - resolution: "util-deprecate@npm:1.0.2" - checksum: 10/474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 - languageName: node - linkType: hard - -"util@npm:^0.12.4": - version: 0.12.5 - resolution: "util@npm:0.12.5" - dependencies: - inherits: "npm:^2.0.3" - is-arguments: "npm:^1.0.4" - is-generator-function: "npm:^1.0.7" - is-typed-array: "npm:^1.1.3" - which-typed-array: "npm:^1.1.2" - checksum: 10/61a10de7753353dd4d744c917f74cdd7d21b8b46379c1e48e1c4fd8e83f8190e6bd9978fc4e5102ab6a10ebda6019d1b36572fa4a325e175ec8b789a121f6147 - languageName: node - linkType: hard - -"utils-merge@npm:1.0.1": - version: 1.0.1 - resolution: "utils-merge@npm:1.0.1" - checksum: 10/5d6949693d58cb2e636a84f3ee1c6e7b2f9c16cb1d42d0ecb386d8c025c69e327205aa1c69e2868cc06a01e5e20681fbba55a4e0ed0cce913d60334024eae798 - languageName: node - linkType: hard - -"uuid@npm:^8.3.2": - version: 8.3.2 - resolution: "uuid@npm:8.3.2" - bin: - uuid: dist/bin/uuid - checksum: 10/9a5f7aa1d6f56dd1e8d5f2478f855f25c645e64e26e347a98e98d95781d5ed20062d6cca2eecb58ba7c84bc3910be95c0451ef4161906abaab44f9cb68ffbdd1 - languageName: node - linkType: hard - -"uuid@npm:^9.0.0": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" - bin: - uuid: dist/bin/uuid - checksum: 10/9d0b6adb72b736e36f2b1b53da0d559125ba3e39d913b6072f6f033e0c87835b414f0836b45bcfaf2bdf698f92297fea1c3cc19b0b258bc182c9c43cc0fab9f2 - languageName: node - linkType: hard - -"v8-to-istanbul@npm:^9.0.1": - version: 9.3.0 - resolution: "v8-to-istanbul@npm:9.3.0" - dependencies: - "@jridgewell/trace-mapping": "npm:^0.3.12" - "@types/istanbul-lib-coverage": "npm:^2.0.1" - convert-source-map: "npm:^2.0.0" - checksum: 10/fb1d70f1176cb9dc46cabbb3fd5c52c8f3e8738b61877b6e7266029aed0870b04140e3f9f4550ac32aebcfe1d0f38b0bac57e1e8fb97d68fec82f2b416148166 - languageName: node - linkType: hard - -"vary@npm:~1.1.2": - version: 1.1.2 - resolution: "vary@npm:1.1.2" - checksum: 10/31389debef15a480849b8331b220782230b9815a8e0dbb7b9a8369559aed2e9a7800cd904d4371ea74f4c3527db456dc8e7ac5befce5f0d289014dbdf47b2242 - languageName: node - linkType: hard - -"verror@npm:1.10.0": - version: 1.10.0 - resolution: "verror@npm:1.10.0" - dependencies: - assert-plus: "npm:^1.0.0" - core-util-is: "npm:1.0.2" - extsprintf: "npm:^1.2.0" - checksum: 10/da548149dd9c130a8a2587c9ee71ea30128d1526925707e2d01ed9c5c45c9e9f86733c66a328247cdd5f7c1516fb25b0f959ba754bfbe15072aa99ff96468a29 - languageName: node - linkType: hard - -"vite@npm:^5.0.12, vite@npm:^5.1.1": - version: 5.3.5 - resolution: "vite@npm:5.3.5" - dependencies: - esbuild: "npm:^0.21.3" - fsevents: "npm:~2.3.3" - postcss: "npm:^8.4.39" - rollup: "npm:^4.13.0" - peerDependencies: - "@types/node": ^18.0.0 || >=20.0.0 - less: "*" - lightningcss: ^1.21.0 - sass: "*" - stylus: "*" - sugarss: "*" - terser: ^5.4.0 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@types/node": - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - bin: - vite: bin/vite.js - checksum: 10/5672dde4a969349d9cf90a9e43029c8489dfff60fb04d6a10717d6224553cf12283a8cace633fa80b006df6037f72d08a459a38bf8ea66cb19075d60fe159482 - languageName: node - linkType: hard - -"w3c-xmlserializer@npm:^4.0.0": - version: 4.0.0 - resolution: "w3c-xmlserializer@npm:4.0.0" - dependencies: - xml-name-validator: "npm:^4.0.0" - checksum: 10/9a00c412b5496f4f040842c9520bc0aaec6e0c015d06412a91a723cd7d84ea605ab903965f546b4ecdb3eae267f5145ba08565222b1d6cb443ee488cda9a0aee - languageName: node - linkType: hard - -"walk-up-path@npm:^3.0.1": - version: 3.0.1 - resolution: "walk-up-path@npm:3.0.1" - checksum: 10/9ffca02fe30fb65f6db531260582988c5e766f4c739cf86a6109380a7f791236b5d0b92b1dce37a6f73e22dca6bc9d93bf3700413e16251b2bd6bbd1ca2be316 - languageName: node - linkType: hard - -"walker@npm:^1.0.8": - version: 1.0.8 - resolution: "walker@npm:1.0.8" - dependencies: - makeerror: "npm:1.0.12" - checksum: 10/ad7a257ea1e662e57ef2e018f97b3c02a7240ad5093c392186ce0bcf1f1a60bbadd520d073b9beb921ed99f64f065efb63dfc8eec689a80e569f93c1c5d5e16c - languageName: node - linkType: hard - -"wcwidth@npm:^1.0.1": - version: 1.0.1 - resolution: "wcwidth@npm:1.0.1" - dependencies: - defaults: "npm:^1.0.3" - checksum: 10/182ebac8ca0b96845fae6ef44afd4619df6987fe5cf552fdee8396d3daa1fb9b8ec5c6c69855acb7b3c1231571393bd1f0a4cdc4028d421575348f64bb0a8817 - languageName: node - linkType: hard - -"webidl-conversions@npm:^7.0.0": - version: 7.0.0 - resolution: "webidl-conversions@npm:7.0.0" - checksum: 10/4c4f65472c010eddbe648c11b977d048dd96956a625f7f8b9d64e1b30c3c1f23ea1acfd654648426ce5c743c2108a5a757c0592f02902cf7367adb7d14e67721 - languageName: node - linkType: hard - -"webpack-sources@npm:^3.2.3": - version: 3.2.3 - resolution: "webpack-sources@npm:3.2.3" - checksum: 10/a661f41795d678b7526ae8a88cd1b3d8ce71a7d19b6503da8149b2e667fc7a12f9b899041c1665d39e38245ed3a59ab68de648ea31040c3829aa695a5a45211d - languageName: node - linkType: hard - -"webpack-virtual-modules@npm:^0.6.2": - version: 0.6.2 - resolution: "webpack-virtual-modules@npm:0.6.2" - checksum: 10/d9a0d035f7ec0c7f1055aaf88bfe48b7f96458043916a1b2926d9012fd61de3810a6b768e31a8cd4b3c84a9b6d55824361a9dd20aaf9f5ccfb6f017af216a178 - languageName: node - linkType: hard - -"whatwg-encoding@npm:^2.0.0": - version: 2.0.0 - resolution: "whatwg-encoding@npm:2.0.0" - dependencies: - iconv-lite: "npm:0.6.3" - checksum: 10/162d712d88fd134a4fe587e53302da812eb4215a1baa4c394dfd86eff31d0a079ff932c05233857997de07481093358d6e7587997358f49b8a580a777be22089 - languageName: node - linkType: hard - -"whatwg-mimetype@npm:^3.0.0": - version: 3.0.0 - resolution: "whatwg-mimetype@npm:3.0.0" - checksum: 10/96f9f628c663c2ae05412c185ca81b3df54bcb921ab52fe9ebc0081c1720f25d770665401eb2338ab7f48c71568133845638e18a81ed52ab5d4dcef7d22b40ef - languageName: node - linkType: hard - -"whatwg-url@npm:^11.0.0": - version: 11.0.0 - resolution: "whatwg-url@npm:11.0.0" - dependencies: - tr46: "npm:^3.0.0" - webidl-conversions: "npm:^7.0.0" - checksum: 10/dfcd51c6f4bfb54685528fb10927f3fd3d7c809b5671beef4a8cdd7b1408a7abf3343a35bc71dab83a1424f1c1e92cc2700d7930d95d231df0fac361de0c7648 - languageName: node - linkType: hard - -"which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" - dependencies: - is-bigint: "npm:^1.0.1" - is-boolean-object: "npm:^1.1.0" - is-number-object: "npm:^1.0.4" - is-string: "npm:^1.0.5" - is-symbol: "npm:^1.0.3" - checksum: 10/9c7ca7855255f25ac47f4ce8b59c4cc33629e713fd7a165c9d77a2bb47bf3d9655a5664660c70337a3221cf96742f3589fae15a3a33639908d33e29aa2941efb - 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-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.2": - version: 1.1.15 - resolution: "which-typed-array@npm:1.1.15" - dependencies: - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - has-tostringtag: "npm:^1.0.2" - checksum: 10/c3b6a99beadc971baa53c3ee5b749f2b9bdfa3b3b9a70650dd8511a48b61d877288b498d424712e9991d16019633086bd8b5923369460d93463c5825fa36c448 - languageName: node - linkType: hard - -"which@npm:^2.0.1": - version: 2.0.2 - resolution: "which@npm:2.0.2" - dependencies: - isexe: "npm:^2.0.0" - bin: - node-which: ./bin/node-which - checksum: 10/4782f8a1d6b8fc12c65e968fea49f59752bf6302dc43036c3bf87da718a80710f61a062516e9764c70008b487929a73546125570acea95c5b5dcc8ac3052c70f - languageName: node - linkType: hard - -"which@npm:^4.0.0": - version: 4.0.0 - resolution: "which@npm:4.0.0" - dependencies: - isexe: "npm:^3.1.1" - bin: - node-which: bin/which.js - checksum: 10/f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 - languageName: node - linkType: hard - -"word-wrap@npm:^1.2.5": - version: 1.2.5 - resolution: "word-wrap@npm:1.2.5" - checksum: 10/1ec6f6089f205f83037be10d0c4b34c9183b0b63fca0834a5b3cee55dd321429d73d40bb44c8fc8471b5203d6e8f8275717f49a8ff4b2b0ab41d7e1b563e0854 - languageName: node - linkType: hard - -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": - version: 7.0.0 - resolution: "wrap-ansi@npm:7.0.0" - dependencies: - ansi-styles: "npm:^4.0.0" - string-width: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - checksum: 10/cebdaeca3a6880da410f75209e68cd05428580de5ad24535f22696d7d9cab134d1f8498599f344c3cf0fb37c1715807a183778d8c648d6cc0cb5ff2bb4236540 - languageName: node - linkType: hard - -"wrap-ansi@npm:^6.2.0": - version: 6.2.0 - resolution: "wrap-ansi@npm:6.2.0" - dependencies: - ansi-styles: "npm:^4.0.0" - string-width: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - checksum: 10/0d64f2d438e0b555e693b95aee7b2689a12c3be5ac458192a1ce28f542a6e9e59ddfecc37520910c2c88eb1f82a5411260566dba5064e8f9895e76e169e76187 - languageName: node - linkType: hard - -"wrap-ansi@npm:^8.1.0": - version: 8.1.0 - resolution: "wrap-ansi@npm:8.1.0" - dependencies: - ansi-styles: "npm:^6.1.0" - string-width: "npm:^5.0.1" - strip-ansi: "npm:^7.0.1" - checksum: 10/7b1e4b35e9bb2312d2ee9ee7dc95b8cb5f8b4b5a89f7dde5543fe66c1e3715663094defa50d75454ac900bd210f702d575f15f3f17fa9ec0291806d2578d1ddf - languageName: node - linkType: hard - -"wrappy@npm:1": - version: 1.0.2 - resolution: "wrappy@npm:1.0.2" - checksum: 10/159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 - languageName: node - linkType: hard - -"write-file-atomic@npm:^2.3.0": - version: 2.4.3 - resolution: "write-file-atomic@npm:2.4.3" - dependencies: - graceful-fs: "npm:^4.1.11" - imurmurhash: "npm:^0.1.4" - signal-exit: "npm:^3.0.2" - checksum: 10/15ce863dce07075d0decedd7c9094f4461e46139d28a758c53162f24c0791c16cd2e7a76baa5b47b1a851fbb51e16f2fab739afb156929b22628f3225437135c - languageName: node - linkType: hard - -"write-file-atomic@npm:^4.0.2": - version: 4.0.2 - resolution: "write-file-atomic@npm:4.0.2" - dependencies: - imurmurhash: "npm:^0.1.4" - signal-exit: "npm:^3.0.7" - checksum: 10/3be1f5508a46c190619d5386b1ac8f3af3dbe951ed0f7b0b4a0961eed6fc626bd84b50cf4be768dabc0a05b672f5d0c5ee7f42daa557b14415d18c3a13c7d246 - languageName: node - linkType: hard - -"ws@npm:^8.11.0, ws@npm:^8.2.3": - version: 8.18.0 - resolution: "ws@npm:8.18.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 10/70dfe53f23ff4368d46e4c0b1d4ca734db2c4149c6f68bc62cb16fc21f753c47b35fcc6e582f3bdfba0eaeb1c488cddab3c2255755a5c3eecb251431e42b3ff6 - languageName: node - linkType: hard - -"xml-name-validator@npm:^4.0.0": - version: 4.0.0 - resolution: "xml-name-validator@npm:4.0.0" - checksum: 10/f9582a3f281f790344a471c207516e29e293c6041b2c20d84dd6e58832cd7c19796c47e108fd4fd4b164a5e72ad94f2268f8ace8231cde4a2c6428d6aa220f92 - languageName: node - linkType: hard - -"xmlchars@npm:^2.2.0": - version: 2.2.0 - resolution: "xmlchars@npm:2.2.0" - checksum: 10/4ad5924974efd004a47cce6acf5c0269aee0e62f9a805a426db3337af7bcbd331099df174b024ace4fb18971b8a56de386d2e73a1c4b020e3abd63a4a9b917f1 - languageName: node - linkType: hard - -"y18n@npm:^5.0.5": - version: 5.0.8 - resolution: "y18n@npm:5.0.8" - checksum: 10/5f1b5f95e3775de4514edbb142398a2c37849ccfaf04a015be5d75521e9629d3be29bd4432d23c57f37e5b61ade592fb0197022e9993f81a06a5afbdcda9346d - languageName: node - linkType: hard - -"yallist@npm:^3.0.2": - version: 3.1.1 - resolution: "yallist@npm:3.1.1" - checksum: 10/9af0a4329c3c6b779ac4736c69fae4190ac03029fa27c1aef4e6bcc92119b73dea6fe5db5fe881fb0ce2a0e9539a42cdf60c7c21eda04d1a0b8c082e38509efb - languageName: node - linkType: hard - -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 10/4cb02b42b8a93b5cf50caf5d8e9beb409400a8a4d85e83bb0685c1457e9ac0b7a00819e9f5991ac25ffabb56a78e2f017c1acc010b3a1babfe6de690ba531abd - languageName: node - linkType: hard - -"yargs-parser@npm:^21.1.1": - version: 21.1.1 - resolution: "yargs-parser@npm:21.1.1" - checksum: 10/9dc2c217ea3bf8d858041252d43e074f7166b53f3d010a8c711275e09cd3d62a002969a39858b92bbda2a6a63a585c7127014534a560b9c69ed2d923d113406e - languageName: node - linkType: hard - -"yargs@npm:^17.3.1": - version: 17.7.2 - resolution: "yargs@npm:17.7.2" - dependencies: - cliui: "npm:^8.0.1" - escalade: "npm:^3.1.1" - get-caller-file: "npm:^2.0.5" - require-directory: "npm:^2.1.1" - string-width: "npm:^4.2.3" - y18n: "npm:^5.0.5" - yargs-parser: "npm:^21.1.1" - checksum: 10/abb3e37678d6e38ea85485ed86ebe0d1e3464c640d7d9069805ea0da12f69d5a32df8e5625e370f9c96dd1c2dc088ab2d0a4dd32af18222ef3c4224a19471576 - languageName: node - linkType: hard - -"yauzl@npm:^2.10.0": - version: 2.10.0 - resolution: "yauzl@npm:2.10.0" - dependencies: - buffer-crc32: "npm:~0.2.3" - fd-slicer: "npm:~1.1.0" - checksum: 10/1e4c311050dc0cf2ee3dbe8854fe0a6cde50e420b3e561a8d97042526b4cf7a0718d6c8d89e9e526a152f4a9cec55bcea9c3617264115f48bd6704cf12a04445 - languageName: node - linkType: hard - -"yocto-queue@npm:^0.1.0": - version: 0.1.0 - resolution: "yocto-queue@npm:0.1.0" - checksum: 10/f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 - languageName: node - linkType: hard diff --git a/test-storybooks/portable-stories-kitchen-sink/svelte/package.json b/test-storybooks/portable-stories-kitchen-sink/svelte/package.json index dd8841800a3f..f84791bcb877 100644 --- a/test-storybooks/portable-stories-kitchen-sink/svelte/package.json +++ b/test-storybooks/portable-stories-kitchen-sink/svelte/package.json @@ -90,7 +90,7 @@ "@sveltejs/vite-plugin-svelte": "^3.0.2", "@testing-library/svelte": "4.1.0", "@tsconfig/svelte": "^5.0.2", - "@types/node": "18", + "@types/node": "20", "cypress": "^13.6.6", "jsdom": "^24.0.0", "storybook": "8.0.0-rc.2", From e745f955471ff3c1bf61f482b2caca0e26e321a9 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 22:00:18 +0200 Subject: [PATCH 084/135] upgrade circleci config --- .circleci/config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6f8ce0625ba3..fc6aac9ec25b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -25,7 +25,7 @@ executors: default: "small" working_directory: /tmp/storybook docker: - - image: cimg/node:18.19.1 + - image: cimg/node:20.9.0 environment: NODE_OPTIONS: --max_old_space_size=6144 resource_class: <> @@ -38,7 +38,7 @@ executors: default: "small" working_directory: /tmp/storybook docker: - - image: cimg/node:18.19.1-browsers + - image: cimg/node:20.9.0-browsers environment: NODE_OPTIONS: --max_old_space_size=6144 resource_class: <> From 6c64439177a749b15ad9743b25b9ed1732bf7d37 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Wed, 7 Aug 2024 22:28:06 +0200 Subject: [PATCH 085/135] replace mock-fs as it does not support node20 see: https://github.com/tschaub/mock-fs/issues/384 --- code/core/package.json | 3 +- .../utils/__tests__/interpret-files.test.ts | 24 ++- .../common/utils/__tests__/template.test.ts | 38 ++-- code/yarn.lock | 162 ++++++++---------- 4 files changed, 108 insertions(+), 119 deletions(-) diff --git a/code/core/package.json b/code/core/package.json index d38f007ebb95..832652aeb5bc 100644 --- a/code/core/package.json +++ b/code/core/package.json @@ -314,7 +314,6 @@ "@types/fs-extra": "^11.0.1", "@types/js-yaml": "^4.0.5", "@types/lodash": "^4.14.167", - "@types/mock-fs": "^4.13.1", "@types/node": "^20.0.0", "@types/npmlog": "^7.0.0", "@types/picomatch": "^2.3.0", @@ -375,8 +374,8 @@ "leven": "^4.0.0", "lodash": "^4.17.21", "markdown-to-jsx": "^7.4.5", + "memfs": "^4.11.1", "memoizerific": "^1.11.3", - "mock-fs": "^5.2.0", "nanoid": "^4.0.2", "npmlog": "^7.0.0", "open": "^8.4.0", diff --git a/code/core/src/common/utils/__tests__/interpret-files.test.ts b/code/core/src/common/utils/__tests__/interpret-files.test.ts index fff12806dfb1..c43f70703de7 100644 --- a/code/core/src/common/utils/__tests__/interpret-files.test.ts +++ b/code/core/src/common/utils/__tests__/interpret-files.test.ts @@ -1,10 +1,16 @@ -import { describe, afterEach, it, expect } from 'vitest'; -import mock from 'mock-fs'; +import { describe, afterEach, it, expect, vi } from 'vitest'; import { getInterpretedFile } from '../interpret-files'; +import { vol } from 'memfs'; + +vi.mock('fs', async () => { + const memfs = await vi.importActual('memfs'); + + return { default: memfs.fs, ...(memfs as any).fs }; +}); describe('interpret-files', () => { it('will interpret file as file.ts when it exists in fs', () => { - mock({ + vol.fromNestedJSON({ 'path/to/file.ts': 'ts file contents', }); @@ -14,7 +20,7 @@ describe('interpret-files', () => { }); it('will interpret file as file.js when both are in fs', () => { - mock({ + vol.fromNestedJSON({ 'path/to/file.js': 'js file contents', 'path/to/file.ts': 'ts file contents', }); @@ -25,7 +31,7 @@ describe('interpret-files', () => { }); it('will interpret file even if extension is already present', () => { - mock({ + vol.fromNestedJSON({ 'path/to/file.js': 'js file contents', 'path/to/file.ts': 'ts file contents', }); @@ -36,7 +42,7 @@ describe('interpret-files', () => { }); it('will return undefined if there is no candidate of a file in fs', () => { - mock({ + vol.fromNestedJSON({ 'path/to/file.js': 'js file contents', }); @@ -46,7 +52,7 @@ describe('interpret-files', () => { }); it('will interpret file as file.mts when it exists in fs', () => { - mock({ + vol.fromNestedJSON({ 'path/to/file.mts': 'ts file contents', }); @@ -56,7 +62,7 @@ describe('interpret-files', () => { }); it('will interpret file as file.cts when it exists in fs', () => { - mock({ + vol.fromNestedJSON({ 'path/to/file.cts': 'ts file contents', }); @@ -65,5 +71,5 @@ describe('interpret-files', () => { expect(file).toEqual('path/to/file.cts'); }); - afterEach(mock.restore); + afterEach(() => vol.reset()); }); diff --git a/code/core/src/common/utils/__tests__/template.test.ts b/code/core/src/common/utils/__tests__/template.test.ts index 53a43e84909e..09dfe4a17011 100644 --- a/code/core/src/common/utils/__tests__/template.test.ts +++ b/code/core/src/common/utils/__tests__/template.test.ts @@ -1,8 +1,15 @@ -import { describe, beforeEach, afterEach, it, expect } from 'vitest'; -import mock from 'mock-fs'; +import { describe, beforeEach, afterEach, it, expect, vi } from 'vitest'; import { getPreviewHeadTemplate, getPreviewBodyTemplate } from '../template'; import { dirname } from 'node:path'; +import { vol } from 'memfs'; + +vi.mock('fs', async () => { + const memfs = await vi.importActual('memfs'); + + return { default: memfs.fs, ...(memfs as any).fs }; +}); + const HEAD_HTML_CONTENTS = ''; const BASE_HTML_CONTENTS = ''; @@ -12,18 +19,17 @@ const BODY_HTML_CONTENTS = '
custom body contents
'; const base = dirname(require.resolve('@storybook/core/package.json')); describe('server.getPreviewHeadHtml', () => { + afterEach(() => { + vol.reset(); + }); describe('when .storybook/preview-head.html does not exist', () => { beforeEach(() => { - mock({ + vol.fromNestedJSON({ [`${base}/assets/server/base-preview-head.html`]: BASE_HTML_CONTENTS, config: {}, }); }); - afterEach(() => { - mock.restore(); - }); - it('return an empty string', () => { const result = getPreviewHeadTemplate('./config'); expect(result).toEqual(BASE_HTML_CONTENTS); @@ -32,7 +38,7 @@ describe('server.getPreviewHeadHtml', () => { describe('when .storybook/preview-head.html exists', () => { beforeEach(() => { - mock({ + vol.fromNestedJSON({ [`${base}/assets/server/base-preview-head.html`]: BASE_HTML_CONTENTS, config: { 'preview-head.html': HEAD_HTML_CONTENTS, @@ -40,10 +46,6 @@ describe('server.getPreviewHeadHtml', () => { }); }); - afterEach(() => { - mock.restore(); - }); - it('return the contents of the file', () => { const result = getPreviewHeadTemplate('./config'); expect(result).toEqual(BASE_HTML_CONTENTS + HEAD_HTML_CONTENTS); @@ -54,16 +56,12 @@ describe('server.getPreviewHeadHtml', () => { describe('server.getPreviewBodyHtml', () => { describe('when .storybook/preview-body.html does not exist', () => { beforeEach(() => { - mock({ + vol.fromNestedJSON({ [`${base}/assets/server/base-preview-body.html`]: BASE_BODY_HTML_CONTENTS, config: {}, }); }); - afterEach(() => { - mock.restore(); - }); - it('return an empty string', () => { const result = getPreviewBodyTemplate('./config'); expect(result).toEqual(BASE_BODY_HTML_CONTENTS); @@ -72,7 +70,7 @@ describe('server.getPreviewBodyHtml', () => { describe('when .storybook/preview-body.html exists', () => { beforeEach(() => { - mock({ + vol.fromNestedJSON({ [`${base}/assets/server/base-preview-body.html`]: BASE_BODY_HTML_CONTENTS, config: { 'preview-body.html': BODY_HTML_CONTENTS, @@ -80,10 +78,6 @@ describe('server.getPreviewBodyHtml', () => { }); }); - afterEach(() => { - mock.restore(); - }); - it('return the contents of the file', () => { const result = getPreviewBodyTemplate('./config'); expect(result).toEqual(BODY_HTML_CONTENTS + BASE_BODY_HTML_CONTENTS); diff --git a/code/yarn.lock b/code/yarn.lock index 195223a2b9cf..69751be1bdd5 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -3638,6 +3638,38 @@ __metadata: languageName: node linkType: hard +"@jsonjoy.com/base64@npm:^1.1.1": + version: 1.1.2 + resolution: "@jsonjoy.com/base64@npm:1.1.2" + peerDependencies: + tslib: 2 + checksum: 10c0/88717945f66dc89bf58ce75624c99fe6a5c9a0c8614e26d03e406447b28abff80c69fb37dabe5aafef1862cf315071ae66e5c85f6018b437d95f8d13d235e6eb + languageName: node + linkType: hard + +"@jsonjoy.com/json-pack@npm:^1.0.3": + version: 1.1.0 + resolution: "@jsonjoy.com/json-pack@npm:1.1.0" + dependencies: + "@jsonjoy.com/base64": "npm:^1.1.1" + "@jsonjoy.com/util": "npm:^1.1.2" + hyperdyperid: "npm:^1.2.0" + thingies: "npm:^1.20.0" + peerDependencies: + tslib: 2 + checksum: 10c0/cdf5cb567a7f2e703d4966a3e3a5f7f7b54ee40a2102aa0ede5c79bcf2060c8465d82f39de8583db4cf1d8415bec8e57dfb1156ef663567b846cdea45813d9d1 + languageName: node + linkType: hard + +"@jsonjoy.com/util@npm:^1.1.2, @jsonjoy.com/util@npm:^1.3.0": + version: 1.3.0 + resolution: "@jsonjoy.com/util@npm:1.3.0" + peerDependencies: + tslib: 2 + checksum: 10c0/892bbe2073bb20bf392dd4dfed77881c6f7ae6a0cc5802e537fe3cbeeadde7738de5369f2d4529156efc5e98d9d43b15c85906ddb79140e322f1b26eaaf854df + languageName: node + linkType: hard + "@juggle/resize-observer@npm:^3.3.1": version: 3.4.0 resolution: "@juggle/resize-observer@npm:3.4.0" @@ -5740,7 +5772,6 @@ __metadata: "@types/fs-extra": "npm:^11.0.1" "@types/js-yaml": "npm:^4.0.5" "@types/lodash": "npm:^4.14.167" - "@types/mock-fs": "npm:^4.13.1" "@types/node": "npm:^20.0.0" "@types/npmlog": "npm:^7.0.0" "@types/picomatch": "npm:^2.3.0" @@ -5803,8 +5834,8 @@ __metadata: leven: "npm:^4.0.0" lodash: "npm:^4.17.21" markdown-to-jsx: "npm:^7.4.5" + memfs: "npm:^4.11.1" memoizerific: "npm:^1.11.3" - mock-fs: "npm:^5.2.0" nanoid: "npm:^4.0.2" npmlog: "npm:^7.0.0" open: "npm:^8.4.0" @@ -7682,15 +7713,6 @@ __metadata: languageName: node linkType: hard -"@types/mock-fs@npm:^4.13.1": - version: 4.13.4 - resolution: "@types/mock-fs@npm:4.13.4" - dependencies: - "@types/node": "npm:*" - checksum: 10c0/687c8e36d91031529924fd89011b7a87167ea33a1b92a9d845f0feb1a5157f168412c62ee308e57b9a71fd938197b4c71ca1784eb44e8a7cbdd816011ffd7f65 - languageName: node - linkType: hard - "@types/mock-require@npm:^2.0.3": version: 2.0.3 resolution: "@types/mock-require@npm:2.0.3" @@ -15664,22 +15686,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10": - version: 10.3.10 - resolution: "glob@npm:10.3.10" - dependencies: - foreground-child: "npm:^3.1.0" - jackspeak: "npm:^2.3.5" - minimatch: "npm:^9.0.1" - minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry: "npm:^1.10.1" - bin: - glob: dist/esm/bin.mjs - checksum: 10c0/13d8a1feb7eac7945f8c8480e11cd4a44b24d26503d99a8d8ac8d5aefbf3e9802a2b6087318a829fad04cb4e829f25c5f4f1110c68966c498720dd261c7e344d - languageName: node - linkType: hard - -"glob@npm:^10.4.1": +"glob@npm:^10.0.0, glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.4.1": version: 10.4.5 resolution: "glob@npm:10.4.5" dependencies: @@ -16620,6 +16627,13 @@ __metadata: languageName: node linkType: hard +"hyperdyperid@npm:^1.2.0": + version: 1.2.0 + resolution: "hyperdyperid@npm:1.2.0" + checksum: 10c0/885ba3177c7181d315a856ee9c0005ff8eb5dcb1ce9e9d61be70987895d934d84686c37c981cceeb53216d4c9c15c1cc25f1804e84cc6a74a16993c5d7fd0893 + languageName: node + linkType: hard + "hyperlinker@npm:^1.0.0": version: 1.0.0 resolution: "hyperlinker@npm:1.0.0" @@ -17605,17 +17619,7 @@ __metadata: languageName: node linkType: hard -"istanbul-reports@npm:^3.1.4": - version: 3.1.6 - resolution: "istanbul-reports@npm:3.1.6" - dependencies: - html-escaper: "npm:^2.0.0" - istanbul-lib-report: "npm:^3.0.0" - checksum: 10c0/ec3f1bdbc51b3e0b325a5b9f4ad31a247697f31001df4e81075f7980413f14da1b5adfec574fd156efd3b0464023f61320f6718efc66ee72b32d89611cef99dd - languageName: node - linkType: hard - -"istanbul-reports@npm:^3.1.7": +"istanbul-reports@npm:^3.1.4, istanbul-reports@npm:^3.1.7": version: 3.1.7 resolution: "istanbul-reports@npm:3.1.7" dependencies: @@ -17649,19 +17653,6 @@ __metadata: languageName: node linkType: hard -"jackspeak@npm:^2.3.5": - version: 2.3.6 - resolution: "jackspeak@npm:2.3.6" - dependencies: - "@isaacs/cliui": "npm:^8.0.2" - "@pkgjs/parseargs": "npm:^0.11.0" - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: 10c0/f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111 - languageName: node - linkType: hard - "jackspeak@npm:^3.1.2": version: 3.4.3 resolution: "jackspeak@npm:3.4.3" @@ -18759,14 +18750,7 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": - version: 10.1.0 - resolution: "lru-cache@npm:10.1.0" - checksum: 10c0/778bc8b2626daccd75f24c4b4d10632496e21ba064b126f526c626fbdbc5b28c472013fccd45d7646b9e1ef052444824854aed617b59cd570d01a8b7d651fc1e - languageName: node - linkType: hard - -"lru-cache@npm:^10.2.0": +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": version: 10.4.3 resolution: "lru-cache@npm:10.4.3" checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb @@ -19369,6 +19353,18 @@ __metadata: languageName: node linkType: hard +"memfs@npm:^4.11.1": + version: 4.11.1 + resolution: "memfs@npm:4.11.1" + dependencies: + "@jsonjoy.com/json-pack": "npm:^1.0.3" + "@jsonjoy.com/util": "npm:^1.3.0" + tree-dump: "npm:^1.0.1" + tslib: "npm:^2.0.0" + checksum: 10c0/738f3ba7204d7f0a5bc09ae9f62d4151e0bbb14b5f5c2bb39c59e93d1b6da1bfc0c94240f23f450538578a331d1458da995b4976aee889da0fac2219322e8377 + languageName: node + linkType: hard + "memoizerific@npm:^1.11.3": version: 1.11.3 resolution: "memoizerific@npm:1.11.3" @@ -20250,7 +20246,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:9.0.3, minimatch@npm:^9.0.0, minimatch@npm:^9.0.1, minimatch@npm:^9.0.3": +"minimatch@npm:9.0.3": version: 9.0.3 resolution: "minimatch@npm:9.0.3" dependencies: @@ -20268,7 +20264,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.4": +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.3, minimatch@npm:^9.0.4": version: 9.0.5 resolution: "minimatch@npm:9.0.5" dependencies: @@ -20370,14 +20366,7 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": - version: 7.0.4 - resolution: "minipass@npm:7.0.4" - checksum: 10c0/6c7370a6dfd257bf18222da581ba89a5eaedca10e158781232a8b5542a90547540b4b9b7e7f490e4cda43acfbd12e086f0453728ecf8c19e0ef6921bc5958ac5 - languageName: node - linkType: hard - -"minipass@npm:^7.1.2": +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.1.2": version: 7.1.2 resolution: "minipass@npm:7.1.2" checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 @@ -20438,13 +20427,6 @@ __metadata: languageName: node linkType: hard -"mock-fs@npm:^5.2.0": - version: 5.2.0 - resolution: "mock-fs@npm:5.2.0" - checksum: 10c0/e917e71295ee9d805c7d9ab0214a66658db0212f35731ba0c75dc1ccbb9964e6787a6d725561f05fcf569c64cf4a1176f5ce438f98b009227520f646f8abf174 - languageName: node - linkType: hard - "mock-require@npm:^3.0.3": version: 3.0.3 resolution: "mock-require@npm:3.0.3" @@ -21882,16 +21864,6 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^1.10.1": - version: 1.10.1 - resolution: "path-scurry@npm:1.10.1" - dependencies: - lru-cache: "npm:^9.1.1 || ^10.0.0" - minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" - checksum: 10c0/e5dc78a7348d25eec61ab166317e9e9c7b46818aa2c2b9006c507a6ff48c672d011292d9662527213e558f5652ce0afcc788663a061d8b59ab495681840c0c1e - languageName: node - linkType: hard - "path-scurry@npm:^1.11.1": version: 1.11.1 resolution: "path-scurry@npm:1.11.1" @@ -26185,6 +26157,15 @@ __metadata: languageName: node linkType: hard +"thingies@npm:^1.20.0": + version: 1.21.0 + resolution: "thingies@npm:1.21.0" + peerDependencies: + tslib: ^2 + checksum: 10c0/7570ee855aecb73185a672ecf3eb1c287a6512bf5476449388433b2d4debcf78100bc8bfd439b0edd38d2bc3bfb8341de5ce85b8557dec66d0f27b962c9a8bc1 + languageName: node + linkType: hard + "through2@npm:^2.0.3": version: 2.0.5 resolution: "through2@npm:2.0.5" @@ -26396,6 +26377,15 @@ __metadata: languageName: node linkType: hard +"tree-dump@npm:^1.0.1": + version: 1.0.2 + resolution: "tree-dump@npm:1.0.2" + peerDependencies: + tslib: 2 + checksum: 10c0/d1d180764e9c691b28332dbd74226c6b6af361dfb1e134bb11e60e17cb11c215894adee50ffc578da5dcf546006693947be8b6665eb1269b56e2f534926f1c1f + languageName: node + linkType: hard + "tree-kill@npm:1.2.2": version: 1.2.2 resolution: "tree-kill@npm:1.2.2" From 0ef2277d972d65c153c728f678793675e1d67245 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 8 Aug 2024 09:42:50 +0200 Subject: [PATCH 086/135] use node 22 --- .circleci/config.yml | 34 ++++----- .nvmrc | 2 +- code/addons/interactions/package.json | 2 +- code/builders/builder-vite/package.json | 2 +- code/builders/builder-webpack5/package.json | 2 +- code/core/package.json | 4 +- code/frameworks/angular/package.json | 2 +- code/frameworks/html-vite/package.json | 2 +- code/frameworks/html-webpack5/package.json | 2 +- code/frameworks/nextjs/package.json | 2 +- code/frameworks/preact-vite/package.json | 2 +- code/frameworks/preact-webpack5/package.json | 2 +- code/frameworks/react-vite/package.json | 2 +- code/frameworks/react-webpack5/package.json | 2 +- code/frameworks/server-webpack5/package.json | 2 +- code/frameworks/svelte-vite/package.json | 2 +- code/frameworks/sveltekit/package.json | 2 +- code/frameworks/vue3-vite/package.json | 2 +- code/frameworks/vue3-webpack5/package.json | 2 +- .../web-components-vite/package.json | 2 +- .../web-components-webpack5/package.json | 2 +- code/lib/core-webpack/package.json | 2 +- code/package.json | 4 +- code/presets/create-react-app/package.json | 2 +- code/presets/html-webpack/package.json | 2 +- code/presets/preact-webpack/package.json | 2 +- code/presets/react-webpack/package.json | 2 +- code/presets/server-webpack/package.json | 2 +- code/presets/vue3-webpack/package.json | 2 +- code/renderers/react/package.json | 2 +- code/renderers/web-components/package.json | 2 +- code/yarn.lock | 76 +++++++++---------- scripts/package.json | 4 +- scripts/yarn.lock | 20 ++++- 34 files changed, 107 insertions(+), 91 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index fc6aac9ec25b..0c2999bb4519 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -16,7 +16,7 @@ parameters: default: "next" executors: - sb_node_18_classic: + sb_node_22_classic: parameters: class: description: The Resource class @@ -25,11 +25,11 @@ executors: default: "small" working_directory: /tmp/storybook docker: - - image: cimg/node:20.9.0 + - image: cimg/node:22.6.0 environment: NODE_OPTIONS: --max_old_space_size=6144 resource_class: <> - sb_node_18_browsers: + sb_node_22_browsers: parameters: class: description: The Resource class @@ -38,7 +38,7 @@ executors: default: "small" working_directory: /tmp/storybook docker: - - image: cimg/node:20.9.0-browsers + - image: cimg/node:22.6.0-browsers environment: NODE_OPTIONS: --max_old_space_size=6144 resource_class: <> @@ -108,7 +108,7 @@ jobs: pretty-docs: executor: class: medium - name: sb_node_18_classic + name: sb_node_22_classic steps: - git-shallow-clone/checkout_advanced: clone_options: "--depth 1 --verbose" @@ -134,7 +134,7 @@ jobs: build: executor: class: xlarge - name: sb_node_18_classic + name: sb_node_22_classic steps: - git-shallow-clone/checkout_advanced: clone_options: "--depth 1 --verbose" @@ -179,7 +179,7 @@ jobs: lint: executor: class: large - name: sb_node_18_classic + name: sb_node_22_classic steps: - git-shallow-clone/checkout_advanced: clone_options: "--depth 1 --verbose" @@ -195,7 +195,7 @@ jobs: check: executor: class: xlarge - name: sb_node_18_classic + name: sb_node_22_classic steps: - git-shallow-clone/checkout_advanced: clone_options: "--depth 1 --verbose" @@ -213,7 +213,7 @@ jobs: - report-workflow-on-failure - cancel-workflow-on-failure script-checks: - executor: sb_node_18_browsers + executor: sb_node_22_browsers steps: - git-shallow-clone/checkout_advanced: clone_options: "--depth 1 --verbose" @@ -241,7 +241,7 @@ jobs: unit-tests: executor: class: xlarge - name: sb_node_18_browsers + name: sb_node_22_browsers steps: - git-shallow-clone/checkout_advanced: clone_options: "--depth 1 --verbose" @@ -263,7 +263,7 @@ jobs: coverage: executor: class: small - name: sb_node_18_browsers + name: sb_node_22_browsers steps: - git-shallow-clone/checkout_advanced: clone_options: "--depth 1 --verbose" @@ -274,7 +274,7 @@ jobs: chromatic-internal-storybook: executor: class: medium+ - name: sb_node_18_browsers + name: sb_node_22_browsers environment: NODE_OPTIONS: --max_old_space_size=6144 steps: @@ -296,7 +296,7 @@ jobs: type: integer executor: class: medium - name: sb_node_18_browsers + name: sb_node_22_browsers parallelism: << parameters.parallelism >> steps: - git-shallow-clone/checkout_advanced: @@ -323,7 +323,7 @@ jobs: type: integer executor: class: medium - name: sb_node_18_browsers + name: sb_node_22_browsers parallelism: << parameters.parallelism >> steps: - git-shallow-clone/checkout_advanced: @@ -343,7 +343,7 @@ jobs: type: integer executor: class: large - name: sb_node_18_browsers + name: sb_node_22_browsers parallelism: << parameters.parallelism >> steps: - git-shallow-clone/checkout_advanced: @@ -424,7 +424,7 @@ jobs: type: integer executor: class: medium - name: sb_node_18_browsers + name: sb_node_22_browsers parallelism: << parameters.parallelism >> steps: - checkout @@ -507,7 +507,7 @@ jobs: test-empty-init: executor: class: medium - name: sb_node_18_browsers + name: sb_node_22_browsers parameters: packageManager: type: string diff --git a/.nvmrc b/.nvmrc index f3f52b42d3da..dc5f6a52b13e 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20.9.0 +22.6.0 diff --git a/code/addons/interactions/package.json b/code/addons/interactions/package.json index 08b2392b43e2..16ba1bc30bf3 100644 --- a/code/addons/interactions/package.json +++ b/code/addons/interactions/package.json @@ -62,7 +62,7 @@ "devDependencies": { "@devtools-ds/object-inspector": "^1.1.2", "@storybook/icons": "^1.2.5", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "formik": "^2.2.9", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/code/builders/builder-vite/package.json b/code/builders/builder-vite/package.json index e3e016608ea0..0b191cd58d97 100644 --- a/code/builders/builder-vite/package.json +++ b/code/builders/builder-vite/package.json @@ -55,7 +55,7 @@ }, "devDependencies": { "@types/express": "^4.17.21", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "glob": "^10.0.0", "slash": "^5.0.0", "typescript": "^5.3.2", diff --git a/code/builders/builder-webpack5/package.json b/code/builders/builder-webpack5/package.json index 66d4e9b3cc04..430d7b0b94d3 100644 --- a/code/builders/builder-webpack5/package.json +++ b/code/builders/builder-webpack5/package.json @@ -64,7 +64,7 @@ }, "dependencies": { "@storybook/core-webpack": "workspace:*", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "@types/semver": "^7.3.4", "browser-assert": "^1.2.1", "case-sensitive-paths-webpack-plugin": "^2.4.0", diff --git a/code/core/package.json b/code/core/package.json index 832652aeb5bc..d9673d6660b9 100644 --- a/code/core/package.json +++ b/code/core/package.json @@ -271,7 +271,7 @@ "dependencies": { "@storybook/csf": "^0.1.11", "@types/express": "^4.17.21", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "browser-assert": "^1.2.1", "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0", "esbuild-register": "^3.5.0", @@ -314,7 +314,7 @@ "@types/fs-extra": "^11.0.1", "@types/js-yaml": "^4.0.5", "@types/lodash": "^4.14.167", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "@types/npmlog": "^7.0.0", "@types/picomatch": "^2.3.0", "@types/prettier": "^3.0.0", diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json index 9f8f67ef6e75..5ffa1c14ae67 100644 --- a/code/frameworks/angular/package.json +++ b/code/frameworks/angular/package.json @@ -44,7 +44,7 @@ "@storybook/manager-api": "workspace:^", "@storybook/preview-api": "workspace:^", "@storybook/theming": "workspace:^", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "@types/react": "^18.0.37", "@types/react-dom": "^18.0.11", "@types/semver": "^7.3.4", diff --git a/code/frameworks/html-vite/package.json b/code/frameworks/html-vite/package.json index 35f5a53f05d5..b2769248eeca 100644 --- a/code/frameworks/html-vite/package.json +++ b/code/frameworks/html-vite/package.json @@ -52,7 +52,7 @@ "magic-string": "^0.30.0" }, "devDependencies": { - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "typescript": "^5.3.2" }, "peerDependencies": { diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json index 174d7cf47ea2..bbb944bac0a4 100644 --- a/code/frameworks/html-webpack5/package.json +++ b/code/frameworks/html-webpack5/package.json @@ -51,7 +51,7 @@ "@storybook/global": "^5.0.0", "@storybook/html": "workspace:*", "@storybook/preset-html-webpack": "workspace:*", - "@types/node": "^20.0.0" + "@types/node": "^22.0.0" }, "devDependencies": { "typescript": "^5.3.2" diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index de528e78b9c4..6fe14e883fc5 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -143,7 +143,7 @@ "@storybook/preset-react-webpack": "workspace:*", "@storybook/react": "workspace:*", "@storybook/test": "workspace:*", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "@types/semver": "^7.3.4", "babel-loader": "^9.1.3", "css-loader": "^6.7.3", diff --git a/code/frameworks/preact-vite/package.json b/code/frameworks/preact-vite/package.json index b66c14ee2178..51927aca88f4 100644 --- a/code/frameworks/preact-vite/package.json +++ b/code/frameworks/preact-vite/package.json @@ -51,7 +51,7 @@ "@storybook/preact": "workspace:*" }, "devDependencies": { - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "typescript": "^5.3.2", "vite": "^4.0.0" }, diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json index ae930a5c6737..8d1f4f5b7c99 100644 --- a/code/frameworks/preact-webpack5/package.json +++ b/code/frameworks/preact-webpack5/package.json @@ -50,7 +50,7 @@ "@storybook/builder-webpack5": "workspace:*", "@storybook/preact": "workspace:*", "@storybook/preset-preact-webpack": "workspace:*", - "@types/node": "^20.0.0" + "@types/node": "^22.0.0" }, "devDependencies": { "preact": "^10.5.13", diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index 978d6ccd7801..b1086f9ac3c1 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -58,7 +58,7 @@ "tsconfig-paths": "^4.2.0" }, "devDependencies": { - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "typescript": "^5.3.2", "vite": "^4.0.0" }, diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index 1f443d01b53e..0fd5ad7f64dc 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -50,7 +50,7 @@ "@storybook/builder-webpack5": "workspace:*", "@storybook/preset-react-webpack": "workspace:*", "@storybook/react": "workspace:*", - "@types/node": "^20.0.0" + "@types/node": "^22.0.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta", diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index 6b2379851f88..ed7654a162b7 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -50,7 +50,7 @@ "@storybook/builder-webpack5": "workspace:*", "@storybook/preset-server-webpack": "workspace:*", "@storybook/server": "workspace:*", - "@types/node": "^20.0.0" + "@types/node": "^22.0.0" }, "devDependencies": { "typescript": "^5.3.2" diff --git a/code/frameworks/svelte-vite/package.json b/code/frameworks/svelte-vite/package.json index 66e3ef9408de..b5b6a80b1dfd 100644 --- a/code/frameworks/svelte-vite/package.json +++ b/code/frameworks/svelte-vite/package.json @@ -56,7 +56,7 @@ }, "devDependencies": { "@sveltejs/vite-plugin-svelte": "^3.0.1", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "svelte": "^5.0.0-next.65", "typescript": "^5.3.2", "vite": "^4.0.0" diff --git a/code/frameworks/sveltekit/package.json b/code/frameworks/sveltekit/package.json index 9e8e76549041..c287d86fa123 100644 --- a/code/frameworks/sveltekit/package.json +++ b/code/frameworks/sveltekit/package.json @@ -59,7 +59,7 @@ "@storybook/svelte-vite": "workspace:*" }, "devDependencies": { - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "typescript": "^5.3.2", "vite": "^4.0.0" }, diff --git a/code/frameworks/vue3-vite/package.json b/code/frameworks/vue3-vite/package.json index 27fa004887dc..b9c97002c5bc 100644 --- a/code/frameworks/vue3-vite/package.json +++ b/code/frameworks/vue3-vite/package.json @@ -57,7 +57,7 @@ }, "devDependencies": { "@types/find-package-json": "^1.2.6", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "typescript": "^5.3.2", "vite": "^4.0.0" }, diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json index 2228b2e6244b..3851ece4d44d 100644 --- a/code/frameworks/vue3-webpack5/package.json +++ b/code/frameworks/vue3-webpack5/package.json @@ -50,7 +50,7 @@ "@storybook/builder-webpack5": "workspace:*", "@storybook/preset-vue3-webpack": "workspace:*", "@storybook/vue3": "workspace:*", - "@types/node": "^20.0.0" + "@types/node": "^22.0.0" }, "devDependencies": { "@vue/compiler-sfc": "3.0.0", diff --git a/code/frameworks/web-components-vite/package.json b/code/frameworks/web-components-vite/package.json index f46d3a0705c2..0e464f089de6 100644 --- a/code/frameworks/web-components-vite/package.json +++ b/code/frameworks/web-components-vite/package.json @@ -52,7 +52,7 @@ "magic-string": "^0.30.0" }, "devDependencies": { - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "typescript": "^5.3.2" }, "peerDependencies": { diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json index 2286771100b3..a0223da98e9e 100644 --- a/code/frameworks/web-components-webpack5/package.json +++ b/code/frameworks/web-components-webpack5/package.json @@ -52,7 +52,7 @@ "dependencies": { "@storybook/builder-webpack5": "workspace:*", "@storybook/web-components": "workspace:*", - "@types/node": "^20.0.0" + "@types/node": "^22.0.0" }, "devDependencies": { "lit": "2.3.1", diff --git a/code/lib/core-webpack/package.json b/code/lib/core-webpack/package.json index 4c29af98d0f5..2709e69a47f9 100644 --- a/code/lib/core-webpack/package.json +++ b/code/lib/core-webpack/package.json @@ -44,7 +44,7 @@ "prep": "jiti ../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "ts-dedent": "^2.0.0" }, "devDependencies": { diff --git a/code/package.json b/code/package.json index 6fc3f64544ec..1e41ffc7422d 100644 --- a/code/package.json +++ b/code/package.json @@ -76,7 +76,7 @@ ], "resolutions": { "@playwright/test": "1.36.0", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "@vitest/expect@npm:2.0.5": "patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch", "esbuild": "^0.23.0", "playwright": "1.36.0", @@ -165,7 +165,7 @@ "@types/fs-extra": "^11.0.1", "@types/lodash": "^4.14.167", "@types/mock-require": "^2.0.3", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "@types/react": "^18.0.37", "@types/react-dom": "^18.0.11", "@types/semver": "^7.3.4", diff --git a/code/presets/create-react-app/package.json b/code/presets/create-react-app/package.json index 5ba09b9c4307..04ad50db513f 100644 --- a/code/presets/create-react-app/package.json +++ b/code/presets/create-react-app/package.json @@ -56,7 +56,7 @@ "semver": "^7.5.4" }, "devDependencies": { - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "typescript": "^5.3.2" }, "peerDependencies": { diff --git a/code/presets/html-webpack/package.json b/code/presets/html-webpack/package.json index 46cb67ca6b71..332241917a61 100644 --- a/code/presets/html-webpack/package.json +++ b/code/presets/html-webpack/package.json @@ -50,7 +50,7 @@ }, "dependencies": { "@storybook/core-webpack": "workspace:*", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "html-loader": "^3.1.0", "webpack": "5" }, diff --git a/code/presets/preact-webpack/package.json b/code/presets/preact-webpack/package.json index e371b4b8776d..f282def50b9c 100644 --- a/code/presets/preact-webpack/package.json +++ b/code/presets/preact-webpack/package.json @@ -50,7 +50,7 @@ }, "dependencies": { "@storybook/core-webpack": "workspace:*", - "@types/node": "^20.0.0" + "@types/node": "^22.0.0" }, "devDependencies": { "preact": "^10.5.13", diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json index 39ba16e5a55e..6f3531c4b8f9 100644 --- a/code/presets/react-webpack/package.json +++ b/code/presets/react-webpack/package.json @@ -67,7 +67,7 @@ "@storybook/core-webpack": "workspace:*", "@storybook/react": "workspace:*", "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "@types/semver": "^7.3.4", "find-up": "^5.0.0", "fs-extra": "^11.1.0", diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json index 4c213839ded7..35f3f6dcd2a3 100644 --- a/code/presets/server-webpack/package.json +++ b/code/presets/server-webpack/package.json @@ -57,7 +57,7 @@ "@storybook/core-webpack": "workspace:*", "@storybook/global": "^5.0.0", "@storybook/server": "workspace:*", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "safe-identifier": "^0.4.1", "ts-dedent": "^2.0.0", "yaml-loader": "^0.8.0" diff --git a/code/presets/vue3-webpack/package.json b/code/presets/vue3-webpack/package.json index bac6809df01f..c4d8ed99e28c 100644 --- a/code/presets/vue3-webpack/package.json +++ b/code/presets/vue3-webpack/package.json @@ -60,7 +60,7 @@ }, "dependencies": { "@storybook/core-webpack": "workspace:*", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "ts-loader": "^9.2.8", "vue-docgen-api": "^4.75.1", "vue-docgen-loader": "^1.5.1", diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json index 4048f8f1f64b..92aa66e5c9db 100644 --- a/code/renderers/react/package.json +++ b/code/renderers/react/package.json @@ -72,7 +72,7 @@ "@storybook/theming": "workspace:^", "@types/escodegen": "^0.0.6", "@types/estree": "^0.0.51", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "acorn": "^7.4.1", "acorn-jsx": "^5.3.1", "acorn-walk": "^7.2.0", diff --git a/code/renderers/web-components/package.json b/code/renderers/web-components/package.json index 1b4b317bd740..cc9def3f5915 100644 --- a/code/renderers/web-components/package.json +++ b/code/renderers/web-components/package.json @@ -60,7 +60,7 @@ }, "devDependencies": { "@types/cross-spawn": "^6.0.2", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "cross-spawn": "^7.0.3", "lit": "2.3.1", "typescript": "^5.3.2", diff --git a/code/yarn.lock b/code/yarn.lock index 69751be1bdd5..ca29a2d05fa8 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -5224,7 +5224,7 @@ __metadata: "@storybook/icons": "npm:^1.2.5" "@storybook/instrumenter": "workspace:*" "@storybook/test": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" formik: "npm:^2.2.9" polished: "npm:^4.2.2" react: "npm:^18.2.0" @@ -5415,7 +5415,7 @@ __metadata: "@storybook/preview-api": "workspace:^" "@storybook/theming": "workspace:^" "@types/cross-spawn": "npm:^6.0.2" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" "@types/react": "npm:^18.0.37" "@types/react-dom": "npm:^18.0.11" "@types/semver": "npm:^7.3.4" @@ -5530,7 +5530,7 @@ __metadata: "@storybook/csf-plugin": "workspace:*" "@types/express": "npm:^4.17.21" "@types/find-cache-dir": "npm:^3.2.1" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" browser-assert: "npm:^1.2.1" es-module-lexer: "npm:^1.5.0" express: "npm:^4.19.2" @@ -5563,7 +5563,7 @@ __metadata: resolution: "@storybook/builder-webpack5@workspace:builders/builder-webpack5" dependencies: "@storybook/core-webpack": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" "@types/pretty-hrtime": "npm:^1.0.0" "@types/semver": "npm:^7.3.4" "@types/terser-webpack-plugin": "npm:^5.2.0" @@ -5724,7 +5724,7 @@ __metadata: version: 0.0.0-use.local resolution: "@storybook/core-webpack@workspace:lib/core-webpack" dependencies: - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" slash: "npm:^5.1.0" ts-dedent: "npm:^2.0.0" typescript: "npm:^5.3.2" @@ -5772,7 +5772,7 @@ __metadata: "@types/fs-extra": "npm:^11.0.1" "@types/js-yaml": "npm:^4.0.5" "@types/lodash": "npm:^4.14.167" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" "@types/npmlog": "npm:^7.0.0" "@types/picomatch": "npm:^2.3.0" "@types/prettier": "npm:^3.0.0" @@ -5977,7 +5977,7 @@ __metadata: dependencies: "@storybook/builder-vite": "workspace:*" "@storybook/html": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" magic-string: "npm:^0.30.0" typescript: "npm:^5.3.2" peerDependencies: @@ -5993,7 +5993,7 @@ __metadata: "@storybook/global": "npm:^5.0.0" "@storybook/html": "workspace:*" "@storybook/preset-html-webpack": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" typescript: "npm:^5.3.2" peerDependencies: storybook: "workspace:^" @@ -6109,7 +6109,7 @@ __metadata: "@types/babel__plugin-transform-runtime": "npm:^7" "@types/babel__preset-env": "npm:^7" "@types/loader-utils": "npm:^2.0.5" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" "@types/react-refresh": "npm:^0" "@types/semver": "npm:^7.3.4" babel-loader: "npm:^9.1.3" @@ -6166,7 +6166,7 @@ __metadata: dependencies: "@storybook/builder-vite": "workspace:*" "@storybook/preact": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" typescript: "npm:^5.3.2" vite: "npm:^4.0.0" peerDependencies: @@ -6182,7 +6182,7 @@ __metadata: "@storybook/builder-webpack5": "workspace:*" "@storybook/preact": "workspace:*" "@storybook/preset-preact-webpack": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" preact: "npm:^10.5.13" typescript: "npm:^5.3.2" peerDependencies: @@ -6215,7 +6215,7 @@ __metadata: dependencies: "@pmmmwh/react-refresh-webpack-plugin": "npm:^0.5.1" "@storybook/react-docgen-typescript-plugin": "npm:1.0.6--canary.9.0c3f3b7.0" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" "@types/semver": "npm:^7.5.6" pnp-webpack-plugin: "npm:^1.7.0" semver: "npm:^7.5.4" @@ -6231,7 +6231,7 @@ __metadata: resolution: "@storybook/preset-html-webpack@workspace:presets/html-webpack" dependencies: "@storybook/core-webpack": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" html-loader: "npm:^3.1.0" typescript: "npm:^5.3.2" webpack: "npm:5" @@ -6245,7 +6245,7 @@ __metadata: resolution: "@storybook/preset-preact-webpack@workspace:presets/preact-webpack" dependencies: "@storybook/core-webpack": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" preact: "npm:^10.5.13" typescript: "npm:^5.3.2" peerDependencies: @@ -6261,7 +6261,7 @@ __metadata: "@storybook/core-webpack": "workspace:*" "@storybook/react": "workspace:*" "@storybook/react-docgen-typescript-plugin": "npm:1.0.6--canary.9.0c3f3b7.0" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" "@types/semver": "npm:^7.3.4" find-up: "npm:^5.0.0" fs-extra: "npm:^11.1.0" @@ -6289,7 +6289,7 @@ __metadata: "@storybook/core-webpack": "workspace:*" "@storybook/global": "npm:^5.0.0" "@storybook/server": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" fs-extra: "npm:^11.1.0" safe-identifier: "npm:^0.4.1" ts-dedent: "npm:^2.0.0" @@ -6323,7 +6323,7 @@ __metadata: resolution: "@storybook/preset-vue3-webpack@workspace:presets/vue3-webpack" dependencies: "@storybook/core-webpack": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" "@vue/compiler-sfc": "npm:^3.2.33" ts-loader: "npm:^9.2.8" typescript: "npm:^5.3.2" @@ -6393,7 +6393,7 @@ __metadata: "@rollup/pluginutils": "npm:^5.0.2" "@storybook/builder-vite": "workspace:*" "@storybook/react": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" find-up: "npm:^5.0.0" magic-string: "npm:^0.30.0" react-docgen: "npm:^7.0.0" @@ -6416,7 +6416,7 @@ __metadata: "@storybook/builder-webpack5": "workspace:*" "@storybook/preset-react-webpack": "workspace:*" "@storybook/react": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -6442,7 +6442,7 @@ __metadata: "@types/babel-plugin-react-docgen": "npm:^4" "@types/escodegen": "npm:^0.0.6" "@types/estree": "npm:^0.0.51" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" "@types/semver": "npm:^7.3.4" "@types/util-deprecate": "npm:^1.0.0" acorn: "npm:^7.4.1" @@ -6555,7 +6555,7 @@ __metadata: "@types/fs-extra": "npm:^11.0.1" "@types/lodash": "npm:^4.14.167" "@types/mock-require": "npm:^2.0.3" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" "@types/react": "npm:^18.0.37" "@types/react-dom": "npm:^18.0.11" "@types/semver": "npm:^7.3.4" @@ -6632,7 +6632,7 @@ __metadata: "@storybook/builder-webpack5": "workspace:*" "@storybook/preset-server-webpack": "workspace:*" "@storybook/server": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" typescript: "npm:^5.3.2" peerDependencies: storybook: "workspace:^" @@ -6680,7 +6680,7 @@ __metadata: "@storybook/builder-vite": "workspace:*" "@storybook/svelte": "workspace:*" "@sveltejs/vite-plugin-svelte": "npm:^3.0.1" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" magic-string: "npm:^0.30.0" svelte: "npm:^5.0.0-next.65" svelte-preprocess: "npm:^5.1.1" @@ -6747,7 +6747,7 @@ __metadata: "@storybook/builder-vite": "workspace:*" "@storybook/svelte": "workspace:*" "@storybook/svelte-vite": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" typescript: "npm:^5.3.2" vite: "npm:^4.0.0" peerDependencies: @@ -6821,7 +6821,7 @@ __metadata: "@storybook/builder-vite": "workspace:*" "@storybook/vue3": "workspace:*" "@types/find-package-json": "npm:^1.2.6" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" find-package-json: "npm:^1.2.0" magic-string: "npm:^0.30.0" typescript: "npm:^5.3.2" @@ -6841,7 +6841,7 @@ __metadata: "@storybook/builder-webpack5": "workspace:*" "@storybook/preset-vue3-webpack": "workspace:*" "@storybook/vue3": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" "@vue/compiler-sfc": "npm:3.0.0" typescript: "npm:^5.3.2" vue: "npm:3.0.0" @@ -6885,7 +6885,7 @@ __metadata: dependencies: "@storybook/builder-vite": "workspace:*" "@storybook/web-components": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" magic-string: "npm:^0.30.0" typescript: "npm:^5.3.2" peerDependencies: @@ -6899,7 +6899,7 @@ __metadata: dependencies: "@storybook/builder-webpack5": "workspace:*" "@storybook/web-components": "workspace:*" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" lit: "npm:2.3.1" typescript: "npm:^5.3.2" peerDependencies: @@ -6918,7 +6918,7 @@ __metadata: "@storybook/preview-api": "workspace:^" "@storybook/theming": "workspace:^" "@types/cross-spawn": "npm:^6.0.2" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" cross-spawn: "npm:^7.0.3" lit: "npm:2.3.1" tiny-invariant: "npm:^1.3.1" @@ -7729,12 +7729,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^20.0.0": - version: 20.14.14 - resolution: "@types/node@npm:20.14.14" +"@types/node@npm:^22.0.0": + version: 22.1.0 + resolution: "@types/node@npm:22.1.0" dependencies: - undici-types: "npm:~5.26.4" - checksum: 10c0/4fc8d368df2b6f5497698327b30db68d7d20e32221ce7d057fb15cbd5834685b2fde0440609e4cb2204e5d305b928f008faf41b950a425f3fd55b60cb1b997cf + undici-types: "npm:~6.13.0" + checksum: 10c0/553dafcb842b889c036d43b390d464e8ffcf3ca455ddd5b1a1ef98396381eafbeb0c112a15cc6bf9662b72bc25fc45efc4b6f604760e1e84c410f1b7936c488b languageName: node linkType: hard @@ -26813,10 +26813,10 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~5.26.4": - version: 5.26.5 - resolution: "undici-types@npm:5.26.5" - checksum: 10c0/bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501 +"undici-types@npm:~6.13.0": + version: 6.13.0 + resolution: "undici-types@npm:6.13.0" + checksum: 10c0/2de55181f569c77a4f08063f8bf2722fcbb6ea312a26a9e927bd1f5ea5cf3a281c5ddf23155061db083e0a25838f54813543ff13b0ac34d230d5c1205ead66c1 languageName: node linkType: hard diff --git a/scripts/package.json b/scripts/package.json index 0652d3a95540..e5ccc32073ab 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -79,7 +79,7 @@ "@types/http-server": "^0.12.4", "@types/jest": "^29.5.12", "@types/lodash": "^4.17.6", - "@types/node": "^20.0.0", + "@types/node": "^22.0.0", "@types/prettier": "^3.0.0", "@types/pretty-hrtime": "^1.0.3", "@types/prompts": "2.4.9", @@ -188,6 +188,6 @@ "verdaccio-auth-memory": "^10.2.2" }, "engines": { - "node": ">=20.0.0" + "node": ">=22.0.0" } } diff --git a/scripts/yarn.lock b/scripts/yarn.lock index 65fc0a64ef24..4cb2e7d304f4 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -1415,7 +1415,7 @@ __metadata: "@types/http-server": "npm:^0.12.4" "@types/jest": "npm:^29.5.12" "@types/lodash": "npm:^4.17.6" - "@types/node": "npm:^20.0.0" + "@types/node": "npm:^22.0.0" "@types/prettier": "npm:^3.0.0" "@types/pretty-hrtime": "npm:^1.0.3" "@types/prompts": "npm:2.4.9" @@ -1880,7 +1880,16 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>= 8, @types/node@npm:^20.0.0": +"@types/node@npm:*, @types/node@npm:>= 8, @types/node@npm:^22.0.0": + version: 22.1.0 + resolution: "@types/node@npm:22.1.0" + dependencies: + undici-types: "npm:~6.13.0" + checksum: 10c0/553dafcb842b889c036d43b390d464e8ffcf3ca455ddd5b1a1ef98396381eafbeb0c112a15cc6bf9662b72bc25fc45efc4b6f604760e1e84c410f1b7936c488b + languageName: node + linkType: hard + +"@types/node@npm:^20.0.0": version: 20.12.14 resolution: "@types/node@npm:20.12.14" dependencies: @@ -13355,6 +13364,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~6.13.0": + version: 6.13.0 + resolution: "undici-types@npm:6.13.0" + checksum: 10c0/2de55181f569c77a4f08063f8bf2722fcbb6ea312a26a9e927bd1f5ea5cf3a281c5ddf23155061db083e0a25838f54813543ff13b0ac34d230d5c1205ead66c1 + languageName: node + linkType: hard + "undici@npm:^5.25.4": version: 5.27.2 resolution: "undici@npm:5.27.2" From 4e5cf9843dc2ef5ce711e4a085bcec70b9c2e260 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 8 Aug 2024 10:02:35 +0200 Subject: [PATCH 087/135] run smoke tests in node 18 for testing backwards compatibility with node18 --- .circleci/config.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 0c2999bb4519..0d15bdbbb805 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -29,6 +29,19 @@ executors: environment: NODE_OPTIONS: --max_old_space_size=6144 resource_class: <> + sb_node_18_browsers: + parameters: + class: + description: The Resource class + type: enum + enum: ["small", "medium", "medium+", "large", "xlarge"] + default: "small" + working_directory: /tmp/storybook + docker: + - image: cimg/node:18.20.3-browsers + environment: + NODE_OPTIONS: --max_old_space_size=6144 + resource_class: <> sb_node_22_browsers: parameters: class: @@ -323,7 +336,7 @@ jobs: type: integer executor: class: medium - name: sb_node_22_browsers + name: sb_node_18_browsers parallelism: << parameters.parallelism >> steps: - git-shallow-clone/checkout_advanced: From 55c02667834290b67de2a47836a5a46131402c32 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 8 Aug 2024 10:10:56 +0200 Subject: [PATCH 088/135] fix --- .../portable-stories-kitchen-sink/svelte/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test-storybooks/portable-stories-kitchen-sink/svelte/package.json b/test-storybooks/portable-stories-kitchen-sink/svelte/package.json index f84791bcb877..0ef67b34c8cc 100644 --- a/test-storybooks/portable-stories-kitchen-sink/svelte/package.json +++ b/test-storybooks/portable-stories-kitchen-sink/svelte/package.json @@ -90,7 +90,7 @@ "@sveltejs/vite-plugin-svelte": "^3.0.2", "@testing-library/svelte": "4.1.0", "@tsconfig/svelte": "^5.0.2", - "@types/node": "20", + "@types/node": "^22", "cypress": "^13.6.6", "jsdom": "^24.0.0", "storybook": "8.0.0-rc.2", From 76466c4921b29a54fba5633ca339eac3c4ed7aae Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Thu, 8 Aug 2024 10:19:44 +0200 Subject: [PATCH 089/135] WIP --- code/addons/docs/template/stories/toc/basic.stories.ts | 1 + code/renderers/react/template/components/Pre.jsx | 8 +------- package.json | 2 +- scripts/tasks/test-runner-build.ts | 2 +- scripts/vite-ecosystem-ci/before-test.js | 4 ++++ 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/code/addons/docs/template/stories/toc/basic.stories.ts b/code/addons/docs/template/stories/toc/basic.stories.ts index 63938a400e8f..2a81297d25be 100644 --- a/code/addons/docs/template/stories/toc/basic.stories.ts +++ b/code/addons/docs/template/stories/toc/basic.stories.ts @@ -1,4 +1,5 @@ import { global as globalThis } from '@storybook/global'; +import { fn } from '@storybook/test'; export default { component: globalThis.Components.Button, diff --git a/code/renderers/react/template/components/Pre.jsx b/code/renderers/react/template/components/Pre.jsx index a623f3d2a8d2..ad28d1327faa 100644 --- a/code/renderers/react/template/components/Pre.jsx +++ b/code/renderers/react/template/components/Pre.jsx @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; -export const Pre = ({ style, object, text }) => ( +export const Pre = ({ style = {}, object = null, text = '' }) => (
     {object ? JSON.stringify(object, null, 2) : text}
   
@@ -12,9 +12,3 @@ Pre.propTypes = { object: PropTypes.shape({}), text: PropTypes.string, }; - -Pre.defaultProps = { - style: {}, - object: null, - text: '', -}; diff --git a/package.json b/package.json index 8328557199b0..b5ea17ab9180 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "test": "cd code; yarn test", "upload-bench": "cd scripts; yarn upload-bench", "vite-ecosystem-ci:before-test": "node ./scripts/vite-ecosystem-ci/before-test.js && cd ./sandbox/react-vite-default-ts && yarn install", - "vite-ecosystem-ci:build": "yarn task --task sandbox --template react-vite/default-ts", + "vite-ecosystem-ci:build": "yarn task --task sandbox --template react-vite/default-ts --start-from=install", "vite-ecosystem-ci:test": "yarn task --task test-runner-dev --template react-vite/default-ts --start-from=dev" } } diff --git a/scripts/tasks/test-runner-build.ts b/scripts/tasks/test-runner-build.ts index 5c273e1f8dcc..ef155da660d5 100644 --- a/scripts/tasks/test-runner-build.ts +++ b/scripts/tasks/test-runner-build.ts @@ -16,7 +16,7 @@ export const testRunnerBuild: Task & { port: number } = { `--url http://127.0.0.1:${this.port}`, '--junit', '--maxWorkers=2', - '--failOnConsole', + // '--failOnConsole', '--index-json', ]; diff --git a/scripts/vite-ecosystem-ci/before-test.js b/scripts/vite-ecosystem-ci/before-test.js index 1ed61c71acb8..801a8348f28b 100644 --- a/scripts/vite-ecosystem-ci/before-test.js +++ b/scripts/vite-ecosystem-ci/before-test.js @@ -7,6 +7,7 @@ import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; +import { execaCommand, execa } from 'execa'; const filename = fileURLToPath(import.meta.url); const dirname = path.dirname(filename); @@ -26,3 +27,6 @@ sandboxPackageJson.resolutions = { }; await fs.promises.writeFile(sandboxPackageJsonPath, JSON.stringify(sandboxPackageJson, null, 2)); +const sandboxFolder = path.dirname(sandboxPackageJsonPath); +await execa('yarn add playwright', { cwd: sandboxFolder, shell: true }); +await execaCommand('yarn playwright install', { cwd: sandboxFolder, shell: true }); From 3257177554579066c2037b43f19e588c91221531 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Thu, 8 Aug 2024 10:29:39 +0200 Subject: [PATCH 090/135] Fix test --- code/core/src/telemetry/get-portable-stories-usage.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/core/src/telemetry/get-portable-stories-usage.test.ts b/code/core/src/telemetry/get-portable-stories-usage.test.ts index b07eaec0a2e2..32d2c9fd154d 100644 --- a/code/core/src/telemetry/get-portable-stories-usage.test.ts +++ b/code/core/src/telemetry/get-portable-stories-usage.test.ts @@ -6,6 +6,6 @@ describe('getPortableStoriesFileCountUncached', () => { it('should ignores node_modules, non-source files', async () => { const usage = await getPortableStoriesFileCountUncached(); // you can verify with: `git grep -m1 -c composeStor | wc -l` - expect(usage).toMatchInlineSnapshot(`14`); + expect(usage).toMatchInlineSnapshot(`15`); }); }); From f1147906d29c8df6428044c6fd6826cba393293a Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Thu, 8 Aug 2024 10:50:35 +0200 Subject: [PATCH 091/135] Revert CLI/builder packages --- code/builders/builder-vite/package.json | 4 ++-- code/builders/builder-webpack5/package.json | 16 ++++++++-------- code/frameworks/html-vite/package.json | 4 ++-- code/frameworks/html-webpack5/package.json | 4 ++-- code/frameworks/nextjs/package.json | 4 ++-- code/frameworks/preact-webpack5/package.json | 4 ++-- code/frameworks/react-vite/package.json | 4 ++-- code/frameworks/react-webpack5/package.json | 4 ++-- code/frameworks/server-webpack5/package.json | 4 ++-- code/frameworks/svelte-vite/package.json | 4 ++-- code/frameworks/svelte-webpack5/package.json | 4 ++-- code/frameworks/sveltekit/package.json | 4 ++-- code/frameworks/vue3-vite/package.json | 4 ++-- code/frameworks/vue3-webpack5/package.json | 4 ++-- code/frameworks/web-components-vite/package.json | 4 ++-- .../web-components-webpack5/package.json | 4 ++-- code/lib/cli-storybook/package.json | 4 ++-- code/lib/cli/package.json | 12 ++++++------ code/lib/codemod/package.json | 4 ++-- code/lib/core-webpack/package.json | 4 ++-- code/lib/create-storybook/package.json | 8 ++++---- code/lib/csf-plugin/package.json | 8 ++++---- code/presets/create-react-app/package.json | 8 ++++---- code/presets/html-webpack/package.json | 8 ++++---- code/presets/preact-webpack/package.json | 8 ++++---- code/presets/react-webpack/package.json | 8 ++++---- code/presets/server-webpack/package.json | 8 ++++---- code/presets/svelte-webpack/package.json | 8 ++++---- code/presets/vue3-webpack/package.json | 8 ++++---- 29 files changed, 86 insertions(+), 86 deletions(-) diff --git a/code/builders/builder-vite/package.json b/code/builders/builder-vite/package.json index 31fbf3013d04..33ba109b475f 100644 --- a/code/builders/builder-vite/package.json +++ b/code/builders/builder-vite/package.json @@ -20,9 +20,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./input/iframe.html": "./input/iframe.html", "./package.json": "./package.json" diff --git a/code/builders/builder-webpack5/package.json b/code/builders/builder-webpack5/package.json index f7b4627a45e3..316fe19c3206 100644 --- a/code/builders/builder-webpack5/package.json +++ b/code/builders/builder-webpack5/package.json @@ -22,24 +22,24 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./presets/custom-webpack-preset": { "types": "./dist/presets/custom-webpack-preset.d.ts", - "require": "./dist/presets/custom-webpack-preset.js", - "node": "./dist/presets/custom-webpack-preset.js" + "node": "./dist/presets/custom-webpack-preset.js", + "require": "./dist/presets/custom-webpack-preset.js" }, "./presets/preview-preset": { "types": "./dist/presets/preview-preset.d.ts", - "require": "./dist/presets/preview-preset.js", - "node": "./dist/presets/preview-preset.js" + "node": "./dist/presets/preview-preset.js", + "require": "./dist/presets/preview-preset.js" }, "./loaders/export-order-loader": { "types": "./dist/loaders/export-order-loader.d.ts", - "require": "./dist/loaders/export-order-loader.js", - "node": "./dist/loaders/export-order-loader.js" + "node": "./dist/loaders/export-order-loader.js", + "require": "./dist/loaders/export-order-loader.js" }, "./templates/virtualModuleModernEntry.js.handlebars": "./templates/virtualModuleModernEntry.js.handlebars", "./templates/preview.ejs": "./templates/preview.ejs", diff --git a/code/frameworks/html-vite/package.json b/code/frameworks/html-vite/package.json index 2c1f0b1f8464..e05df39ae337 100644 --- a/code/frameworks/html-vite/package.json +++ b/code/frameworks/html-vite/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json index 7d8eefac527e..b73b460bd08e 100644 --- a/code/frameworks/html-webpack5/package.json +++ b/code/frameworks/html-webpack5/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index 76adb05eb003..ef4e746eab0f 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -23,9 +23,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./dist/image-context": { "types": "./dist/image-context.d.ts", diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json index 5fcee858a565..497b1fcc7d7e 100644 --- a/code/frameworks/preact-webpack5/package.json +++ b/code/frameworks/preact-webpack5/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index 016790b59979..3574bb0e066c 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index 00cb3b654172..4267354e4183 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index aee37c717a6b..cd2445f1d61a 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/svelte-vite/package.json b/code/frameworks/svelte-vite/package.json index 784320a85306..a835f420717e 100644 --- a/code/frameworks/svelte-vite/package.json +++ b/code/frameworks/svelte-vite/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/svelte-webpack5/package.json b/code/frameworks/svelte-webpack5/package.json index 849bf1e834ba..6a00fc45a756 100644 --- a/code/frameworks/svelte-webpack5/package.json +++ b/code/frameworks/svelte-webpack5/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/sveltekit/package.json b/code/frameworks/sveltekit/package.json index df6d07035b68..dc6ee5519227 100644 --- a/code/frameworks/sveltekit/package.json +++ b/code/frameworks/sveltekit/package.json @@ -25,9 +25,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./dist/preview.mjs": { "import": "./dist/preview.mjs" diff --git a/code/frameworks/vue3-vite/package.json b/code/frameworks/vue3-vite/package.json index 956d6674ae19..64306cfd2abe 100644 --- a/code/frameworks/vue3-vite/package.json +++ b/code/frameworks/vue3-vite/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json index 91c64a61c822..4e094a34e57b 100644 --- a/code/frameworks/vue3-webpack5/package.json +++ b/code/frameworks/vue3-webpack5/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/web-components-vite/package.json b/code/frameworks/web-components-vite/package.json index 1f3fb89401da..64de9aa0eb44 100644 --- a/code/frameworks/web-components-vite/package.json +++ b/code/frameworks/web-components-vite/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json index d9f79d5680b7..84df093c9a27 100644 --- a/code/frameworks/web-components-webpack5/package.json +++ b/code/frameworks/web-components-webpack5/package.json @@ -25,9 +25,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/preset.d.ts", diff --git a/code/lib/cli-storybook/package.json b/code/lib/cli-storybook/package.json index f077bf8b8e26..9e46b26fabd6 100644 --- a/code/lib/cli-storybook/package.json +++ b/code/lib/cli-storybook/package.json @@ -23,8 +23,8 @@ "type": "module", "exports": { "./bin/index.cjs": { - "require": "./bin/index.cjs", - "node": "./bin/index.cjs" + "node": "./bin/index.cjs", + "require": "./bin/index.cjs" }, "./package.json": "./package.json" }, diff --git a/code/lib/cli/package.json b/code/lib/cli/package.json index eb6bf4da9eab..792ca1188a32 100644 --- a/code/lib/cli/package.json +++ b/code/lib/cli/package.json @@ -28,19 +28,19 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.cjs", "import": "./dist/index.js", - "require": "./dist/index.cjs", - "node": "./dist/index.cjs" + "require": "./dist/index.cjs" }, "./bin/index.cjs": { - "require": "./bin/index.cjs", - "node": "./bin/index.cjs" + "node": "./bin/index.cjs", + "require": "./bin/index.cjs" }, "./core-path": { "types": "./dist/core-path.d.ts", + "node": "./dist/core-path.cjs", "import": "./dist/core-path.js", - "require": "./dist/core-path.cjs", - "node": "./dist/core-path.cjs" + "require": "./dist/core-path.cjs" }, "./package.json": "./package.json", "./core": { diff --git a/code/lib/codemod/package.json b/code/lib/codemod/package.json index a0e86da880f0..c3968cbf935d 100644 --- a/code/lib/codemod/package.json +++ b/code/lib/codemod/package.json @@ -23,8 +23,8 @@ "exports": { ".": { "types": "./dist/index.d.ts", - "require": "./dist/index.js", - "node": "./dist/index.js" + "node": "./dist/index.js", + "require": "./dist/index.js" }, "./dist/transforms/add-component-parameters.js": "./dist/transforms/add-component-parameters.js", "./dist/transforms/csf-2-to-3.js": "./dist/transforms/csf-2-to-3.js", diff --git a/code/lib/core-webpack/package.json b/code/lib/core-webpack/package.json index fce6021ade6f..4ba6334c8f3f 100644 --- a/code/lib/core-webpack/package.json +++ b/code/lib/core-webpack/package.json @@ -22,9 +22,9 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/code/lib/create-storybook/package.json b/code/lib/create-storybook/package.json index e3138e6e127b..778c28b8d975 100644 --- a/code/lib/create-storybook/package.json +++ b/code/lib/create-storybook/package.json @@ -21,13 +21,13 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.cjs", "import": "./dist/index.js", - "require": "./dist/index.cjs", - "node": "./dist/index.cjs" + "require": "./dist/index.cjs" }, "./bin/index.cjs": { - "require": "./bin/index.cjs", - "node": "./bin/index.cjs" + "node": "./bin/index.cjs", + "require": "./bin/index.cjs" }, "./package.json": "./package.json" }, diff --git a/code/lib/csf-plugin/package.json b/code/lib/csf-plugin/package.json index 2133329094f7..b96a6fdfb9ab 100644 --- a/code/lib/csf-plugin/package.json +++ b/code/lib/csf-plugin/package.json @@ -23,15 +23,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./dist/webpack-loader": { "types": "./dist/webpack-loader.d.ts", + "node": "./dist/webpack-loader.js", "import": "./dist/webpack-loader.mjs", - "require": "./dist/webpack-loader.js", - "node": "./dist/webpack-loader.js" + "require": "./dist/webpack-loader.js" }, "./package.json": "./package.json" }, diff --git a/code/presets/create-react-app/package.json b/code/presets/create-react-app/package.json index 441fbdfccd0b..7b11694de959 100644 --- a/code/presets/create-react-app/package.json +++ b/code/presets/create-react-app/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/code/presets/html-webpack/package.json b/code/presets/html-webpack/package.json index 94203fbfd0db..5a4c14b31378 100644 --- a/code/presets/html-webpack/package.json +++ b/code/presets/html-webpack/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/code/presets/preact-webpack/package.json b/code/presets/preact-webpack/package.json index 03fc1681ff88..9f3d79142c1c 100644 --- a/code/presets/preact-webpack/package.json +++ b/code/presets/preact-webpack/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./package.json": "./package.json" }, diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json index 06f47ac2486d..620afd53a21c 100644 --- a/code/presets/react-webpack/package.json +++ b/code/presets/react-webpack/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./dist/framework-preset-cra": { "types": "./dist/framework-preset-cra.d.ts", diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json index 06c0e6ec06e5..45d124c3db8b 100644 --- a/code/presets/server-webpack/package.json +++ b/code/presets/server-webpack/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./dist/loader": { "types": "./dist/loader.d.ts", diff --git a/code/presets/svelte-webpack/package.json b/code/presets/svelte-webpack/package.json index 7c53e0b7d210..908e025ecf7e 100644 --- a/code/presets/svelte-webpack/package.json +++ b/code/presets/svelte-webpack/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./dist/framework-preset-svelte-docs": { "types": "./dist/framework-preset-svelte-docs.d.ts", diff --git a/code/presets/vue3-webpack/package.json b/code/presets/vue3-webpack/package.json index ed27d730ea85..ef4d3f406664 100644 --- a/code/presets/vue3-webpack/package.json +++ b/code/presets/vue3-webpack/package.json @@ -22,15 +22,15 @@ "exports": { ".": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./preset": { "types": "./dist/index.d.ts", + "node": "./dist/index.js", "import": "./dist/index.mjs", - "require": "./dist/index.js", - "node": "./dist/index.js" + "require": "./dist/index.js" }, "./dist/framework-preset-vue3-docs": { "types": "./dist/framework-preset-vue3-docs.d.ts", From 7db0091e2a11df832fcb5f7e85d95b602edb1cc7 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 8 Aug 2024 11:20:08 +0200 Subject: [PATCH 092/135] setup import sorting with prettier --- code/package.json | 5 +- code/yarn.lock | 120 ++++++++++++++++++++++++++-- scripts/package.json | 1 + scripts/prettier.config.js | 19 ++++- scripts/yarn.lock | 160 +++++++++++++++++++++++++++++++++++-- 5 files changed, 288 insertions(+), 17 deletions(-) diff --git a/code/package.json b/code/package.json index e689564a63f3..33310c584b44 100644 --- a/code/package.json +++ b/code/package.json @@ -77,12 +77,12 @@ "resolutions": { "@playwright/test": "1.36.0", "@types/node": "^18.0.0", + "@vitest/expect@npm:2.0.5": "patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch", "esbuild": "^0.23.0", "playwright": "1.36.0", "playwright-core": "1.36.0", "serialize-javascript": "^3.1.0", - "type-fest": "~2.19", - "@vitest/expect@npm:2.0.5": "patch:@vitest/expect@npm%3A2.0.5#~/.yarn/patches/@vitest-expect-npm-2.0.5-8933466cce.patch" + "type-fest": "~2.19" }, "dependencies": { "@chromatic-com/storybook": "^1.6.1", @@ -161,6 +161,7 @@ "@testing-library/jest-dom": "^6.4.8", "@testing-library/react": "^16.0.0", "@testing-library/user-event": "^14.5.2", + "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/express": "^4.17.21", "@types/fs-extra": "^11.0.1", "@types/lodash": "^4.14.167", diff --git a/code/yarn.lock b/code/yarn.lock index 59184450da84..05ad3df5acaf 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -360,7 +360,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.2, @babel/code-frame@npm:^7.24.7": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.2, @babel/code-frame@npm:^7.24.7": version: 7.24.7 resolution: "@babel/code-frame@npm:7.24.7" dependencies: @@ -446,6 +446,17 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:7.17.7": + version: 7.17.7 + resolution: "@babel/generator@npm:7.17.7" + dependencies: + "@babel/types": "npm:^7.17.0" + jsesc: "npm:^2.5.1" + source-map: "npm:^0.5.0" + checksum: 10c0/8088453c4418e0ee6528506fbd5847bbdfd56327a0025ca9496a259261e162c594ffd08be0d63e74c32feced795616772f38acc5f5e493a86a45fd439fd9feb0 + languageName: node + linkType: hard + "@babel/generator@npm:7.23.6": version: 7.23.6 resolution: "@babel/generator@npm:7.23.6" @@ -470,6 +481,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.23.0": + version: 7.25.0 + resolution: "@babel/generator@npm:7.25.0" + dependencies: + "@babel/types": "npm:^7.25.0" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^2.5.1" + checksum: 10c0/d0e2dfcdc8bdbb5dded34b705ceebf2e0bc1b06795a1530e64fb6a3ccf313c189db7f60c1616effae48114e1a25adc75855bc4496f3779a396b3377bae718ce7 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:7.22.5": version: 7.22.5 resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" @@ -582,7 +605,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.24.7": +"@babel/helper-function-name@npm:^7.23.0, @babel/helper-function-name@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-function-name@npm:7.24.7" dependencies: @@ -592,7 +615,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.24.7": +"@babel/helper-hoist-variables@npm:^7.22.5, @babel/helper-hoist-variables@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-hoist-variables@npm:7.24.7" dependencies: @@ -707,7 +730,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.24.7": +"@babel/helper-split-export-declaration@npm:^7.22.6, @babel/helper-split-export-declaration@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-split-export-declaration@npm:7.24.7" dependencies: @@ -723,7 +746,14 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.24.7": +"@babel/helper-string-parser@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-string-parser@npm:7.24.8" + checksum: 10c0/6361f72076c17fabf305e252bf6d580106429014b3ab3c1f5c4eb3e6d465536ea6b670cc0e9a637a77a9ad40454d3e41361a2909e70e305116a23d68ce094c08 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.16.7, @babel/helper-validator-identifier@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-validator-identifier@npm:7.24.7" checksum: 10c0/87ad608694c9477814093ed5b5c080c2e06d44cb1924ae8320474a74415241223cc2a725eea2640dd783ff1e3390e5f95eede978bc540e870053152e58f1d651 @@ -780,6 +810,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.20.5": + version: 7.25.3 + resolution: "@babel/parser@npm:7.25.3" + dependencies: + "@babel/types": "npm:^7.25.2" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/874b01349aedb805d6694f867a752fdc7469778fad76aca4548d2cc6ce96087c3ba5fb917a6f8d05d2d1a74aae309b5f50f1a4dba035f5a2c9fcfe6e106d2c4e + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.4": version: 7.24.4 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.4" @@ -2239,6 +2280,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:7.23.2": + version: 7.23.2 + resolution: "@babel/traverse@npm:7.23.2" + dependencies: + "@babel/code-frame": "npm:^7.22.13" + "@babel/generator": "npm:^7.23.0" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + "@babel/parser": "npm:^7.23.0" + "@babel/types": "npm:^7.23.0" + debug: "npm:^4.1.0" + globals: "npm:^11.1.0" + checksum: 10c0/d096c7c4bab9262a2f658298a3c630ae4a15a10755bb257ae91d5ab3e3b2877438934859c8d34018b7727379fe6b26c4fa2efc81cf4c462a7fe00caf79fa02ff + languageName: node + linkType: hard + "@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.9, @babel/traverse@npm:^7.24.0, @babel/traverse@npm:^7.24.1, @babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.4.5": version: 7.24.7 resolution: "@babel/traverse@npm:7.24.7" @@ -2257,6 +2316,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:7.17.0": + version: 7.17.0 + resolution: "@babel/types@npm:7.17.0" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.16.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/ad09224272b40fedb00b262677d12b6838f5b5df5c47d67059ba1181bd4805439993393a8de32459dae137b536d60ebfcaf39ae84d8b3873f1e81cc75f5aeae8 + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.11.5, @babel/types@npm:^7.18.9, @babel/types@npm:^7.2.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.24.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.4.4, @babel/types@npm:^7.6.1, @babel/types@npm:^7.7.2, @babel/types@npm:^7.8.3, @babel/types@npm:^7.9.6": version: 7.24.7 resolution: "@babel/types@npm:7.24.7" @@ -2268,6 +2337,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.17.0, @babel/types@npm:^7.23.0, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2": + version: 7.25.2 + resolution: "@babel/types@npm:7.25.2" + dependencies: + "@babel/helper-string-parser": "npm:^7.24.8" + "@babel/helper-validator-identifier": "npm:^7.24.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/e489435856be239f8cc1120c90a197e4c2865385121908e5edb7223cfdff3768cba18f489adfe0c26955d9e7bbb1fb10625bc2517505908ceb0af848989bd864 + languageName: node + linkType: hard + "@base2/pretty-print-object@npm:1.0.1": version: 1.0.1 resolution: "@base2/pretty-print-object@npm:1.0.1" @@ -6547,6 +6627,7 @@ __metadata: "@testing-library/jest-dom": "npm:^6.4.8" "@testing-library/react": "npm:^16.0.0" "@testing-library/user-event": "npm:^14.5.2" + "@trivago/prettier-plugin-sort-imports": "npm:^4.3.0" "@types/express": "npm:^4.17.21" "@types/fs-extra": "npm:^11.0.1" "@types/lodash": "npm:^4.14.167" @@ -7130,6 +7211,26 @@ __metadata: languageName: node linkType: hard +"@trivago/prettier-plugin-sort-imports@npm:^4.3.0": + version: 4.3.0 + resolution: "@trivago/prettier-plugin-sort-imports@npm:4.3.0" + dependencies: + "@babel/generator": "npm:7.17.7" + "@babel/parser": "npm:^7.20.5" + "@babel/traverse": "npm:7.23.2" + "@babel/types": "npm:7.17.0" + javascript-natural-sort: "npm:0.7.1" + lodash: "npm:^4.17.21" + peerDependencies: + "@vue/compiler-sfc": 3.x + prettier: 2.x - 3.x + peerDependenciesMeta: + "@vue/compiler-sfc": + optional: true + checksum: 10c0/42270fb9c89e54a3f8b6ac8c43e6d0e03350e2857e902cdad4de22c78ef1864da600525595311bc7e94e51c16c7dd3882c2e048a162fdab59761ffa893756aa2 + languageName: node + linkType: hard + "@tsconfig/node10@npm:^1.0.7": version: 1.0.9 resolution: "@tsconfig/node10@npm:1.0.9" @@ -17750,6 +17851,13 @@ __metadata: languageName: node linkType: hard +"javascript-natural-sort@npm:0.7.1": + version: 0.7.1 + resolution: "javascript-natural-sort@npm:0.7.1" + checksum: 10c0/340f8ffc5d30fb516e06dc540e8fa9e0b93c865cf49d791fed3eac3bdc5fc71f0066fc81d44ec1433edc87caecaf9f13eec4a1fce8c5beafc709a71eaedae6fe + languageName: node + linkType: hard + "javascript-stringify@npm:^2.0.1": version: 2.1.0 resolution: "javascript-stringify@npm:2.1.0" @@ -25391,7 +25499,7 @@ __metadata: languageName: node linkType: hard -"source-map@npm:^0.5.6, source-map@npm:^0.5.7": +"source-map@npm:^0.5.0, source-map@npm:^0.5.6, source-map@npm:^0.5.7": version: 0.5.7 resolution: "source-map@npm:0.5.7" checksum: 10c0/904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599 diff --git a/scripts/package.json b/scripts/package.json index f9be99b5583c..15bb771eb6d7 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -70,6 +70,7 @@ "@testing-library/jest-dom": "^6.4.8", "@testing-library/react": "^16.0.0", "@testing-library/user-event": "^14.5.2", + "@trivago/prettier-plugin-sort-imports": "^4.3.0", "@types/cross-spawn": "^6.0.6", "@types/detect-port": "^1.3.5", "@types/ejs": "^3.1.5", diff --git a/scripts/prettier.config.js b/scripts/prettier.config.js index 21ff119ec0fc..cf95ee9a35e5 100644 --- a/scripts/prettier.config.js +++ b/scripts/prettier.config.js @@ -1,13 +1,24 @@ -// eslint-disable-next-line import/extensions -import base from '@storybook/linter-config/prettier.config.js'; - export default { - ...base, + printWidth: 100, + tabWidth: 2, + bracketSpacing: true, + trailingComma: 'es5', + singleQuote: true, overrides: [ + { + files: '*.html', + options: { parser: 'babel' }, + }, { files: '*.component.html', options: { parser: 'angular' }, }, ], + plugins: ['@trivago/prettier-plugin-sort-imports'], + + importOrder: ['^storybook/internal', '^@storybook/(.*)$', '^[./]'], + importOrderSeparation: true, + importOrderSortSpecifiers: true, + arrowParens: 'always', }; diff --git a/scripts/yarn.lock b/scripts/yarn.lock index da3c3621f8de..7166cb9f8fbe 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -49,7 +49,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.24.2": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.24.2, @babel/code-frame@npm:^7.24.7": version: 7.24.7 resolution: "@babel/code-frame@npm:7.24.7" dependencies: @@ -59,6 +59,66 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:7.17.7": + version: 7.17.7 + resolution: "@babel/generator@npm:7.17.7" + dependencies: + "@babel/types": "npm:^7.17.0" + jsesc: "npm:^2.5.1" + source-map: "npm:^0.5.0" + checksum: 10c0/8088453c4418e0ee6528506fbd5847bbdfd56327a0025ca9496a259261e162c594ffd08be0d63e74c32feced795616772f38acc5f5e493a86a45fd439fd9feb0 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.23.0": + version: 7.25.0 + resolution: "@babel/generator@npm:7.25.0" + dependencies: + "@babel/types": "npm:^7.25.0" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^2.5.1" + checksum: 10c0/d0e2dfcdc8bdbb5dded34b705ceebf2e0bc1b06795a1530e64fb6a3ccf313c189db7f60c1616effae48114e1a25adc75855bc4496f3779a396b3377bae718ce7 + languageName: node + linkType: hard + +"@babel/helper-environment-visitor@npm:^7.22.20": + version: 7.24.7 + resolution: "@babel/helper-environment-visitor@npm:7.24.7" + dependencies: + "@babel/types": "npm:^7.24.7" + checksum: 10c0/36ece78882b5960e2d26abf13cf15ff5689bf7c325b10a2895a74a499e712de0d305f8d78bb382dd3c05cfba7e47ec98fe28aab5674243e0625cd38438dd0b2d + languageName: node + linkType: hard + +"@babel/helper-function-name@npm:^7.23.0": + version: 7.24.7 + resolution: "@babel/helper-function-name@npm:7.24.7" + dependencies: + "@babel/template": "npm:^7.24.7" + "@babel/types": "npm:^7.24.7" + checksum: 10c0/e5e41e6cf86bd0f8bf272cbb6e7c5ee0f3e9660414174435a46653efba4f2479ce03ce04abff2aa2ef9359cf057c79c06cb7b134a565ad9c0e8a50dcdc3b43c4 + languageName: node + linkType: hard + +"@babel/helper-hoist-variables@npm:^7.22.5": + version: 7.24.7 + resolution: "@babel/helper-hoist-variables@npm:7.24.7" + dependencies: + "@babel/types": "npm:^7.24.7" + checksum: 10c0/19ee37563bbd1219f9d98991ad0e9abef77803ee5945fd85aa7aa62a67c69efca9a801696a1b58dda27f211e878b3327789e6fd2a6f6c725ccefe36774b5ce95 + languageName: node + linkType: hard + +"@babel/helper-split-export-declaration@npm:^7.22.6": + version: 7.24.7 + resolution: "@babel/helper-split-export-declaration@npm:7.24.7" + dependencies: + "@babel/types": "npm:^7.24.7" + checksum: 10c0/0254577d7086bf09b01bbde98f731d4fcf4b7c3fa9634fdb87929801307c1f6202a1352e3faa5492450fa8da4420542d44de604daf540704ff349594a78184f6 + languageName: node + linkType: hard + "@babel/helper-string-parser@npm:^7.24.8": version: 7.24.8 resolution: "@babel/helper-string-parser@npm:7.24.8" @@ -66,7 +126,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.24.7": +"@babel/helper-validator-identifier@npm:^7.16.7, @babel/helper-validator-identifier@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-validator-identifier@npm:7.24.7" checksum: 10c0/87ad608694c9477814093ed5b5c080c2e06d44cb1924ae8320474a74415241223cc2a725eea2640dd783ff1e3390e5f95eede978bc540e870053152e58f1d651 @@ -85,7 +145,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.24.4": +"@babel/parser@npm:^7.20.5, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.24.4, @babel/parser@npm:^7.25.0": version: 7.25.3 resolution: "@babel/parser@npm:7.25.3" dependencies: @@ -105,7 +165,46 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.24.0, @babel/types@npm:^7.25.2": +"@babel/template@npm:^7.24.7": + version: 7.25.0 + resolution: "@babel/template@npm:7.25.0" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/parser": "npm:^7.25.0" + "@babel/types": "npm:^7.25.0" + checksum: 10c0/4e31afd873215744c016e02b04f43b9fa23205d6d0766fb2e93eb4091c60c1b88897936adb895fb04e3c23de98dfdcbe31bc98daaa1a4e0133f78bb948e1209b + languageName: node + linkType: hard + +"@babel/traverse@npm:7.23.2": + version: 7.23.2 + resolution: "@babel/traverse@npm:7.23.2" + dependencies: + "@babel/code-frame": "npm:^7.22.13" + "@babel/generator": "npm:^7.23.0" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + "@babel/parser": "npm:^7.23.0" + "@babel/types": "npm:^7.23.0" + debug: "npm:^4.1.0" + globals: "npm:^11.1.0" + checksum: 10c0/d096c7c4bab9262a2f658298a3c630ae4a15a10755bb257ae91d5ab3e3b2877438934859c8d34018b7727379fe6b26c4fa2efc81cf4c462a7fe00caf79fa02ff + languageName: node + linkType: hard + +"@babel/types@npm:7.17.0": + version: 7.17.0 + resolution: "@babel/types@npm:7.17.0" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.16.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/ad09224272b40fedb00b262677d12b6838f5b5df5c47d67059ba1181bd4805439993393a8de32459dae137b536d60ebfcaf39ae84d8b3873f1e81cc75f5aeae8 + languageName: node + linkType: hard + +"@babel/types@npm:^7.17.0, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2": version: 7.25.2 resolution: "@babel/types@npm:7.25.2" dependencies: @@ -611,7 +710,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24": +"@jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -1406,6 +1505,7 @@ __metadata: "@testing-library/jest-dom": "npm:^6.4.8" "@testing-library/react": "npm:^16.0.0" "@testing-library/user-event": "npm:^14.5.2" + "@trivago/prettier-plugin-sort-imports": "npm:^4.3.0" "@types/cross-spawn": "npm:^6.0.6" "@types/detect-port": "npm:^1.3.5" "@types/ejs": "npm:^3.1.5" @@ -1610,6 +1710,26 @@ __metadata: languageName: node linkType: hard +"@trivago/prettier-plugin-sort-imports@npm:^4.3.0": + version: 4.3.0 + resolution: "@trivago/prettier-plugin-sort-imports@npm:4.3.0" + dependencies: + "@babel/generator": "npm:7.17.7" + "@babel/parser": "npm:^7.20.5" + "@babel/traverse": "npm:7.23.2" + "@babel/types": "npm:7.17.0" + javascript-natural-sort: "npm:0.7.1" + lodash: "npm:^4.17.21" + peerDependencies: + "@vue/compiler-sfc": 3.x + prettier: 2.x - 3.x + peerDependenciesMeta: + "@vue/compiler-sfc": + optional: true + checksum: 10c0/42270fb9c89e54a3f8b6ac8c43e6d0e03350e2857e902cdad4de22c78ef1864da600525595311bc7e94e51c16c7dd3882c2e048a162fdab59761ffa893756aa2 + languageName: node + linkType: hard + "@types/aria-query@npm:^5.0.1": version: 5.0.3 resolution: "@types/aria-query@npm:5.0.3" @@ -6560,6 +6680,13 @@ __metadata: languageName: node linkType: hard +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 10c0/758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1 + languageName: node + linkType: hard + "globals@npm:^13.19.0": version: 13.23.0 resolution: "globals@npm:13.23.0" @@ -7792,6 +7919,13 @@ __metadata: languageName: node linkType: hard +"javascript-natural-sort@npm:0.7.1": + version: 0.7.1 + resolution: "javascript-natural-sort@npm:0.7.1" + checksum: 10c0/340f8ffc5d30fb516e06dc540e8fa9e0b93c865cf49d791fed3eac3bdc5fc71f0066fc81d44ec1433edc87caecaf9f13eec4a1fce8c5beafc709a71eaedae6fe + languageName: node + linkType: hard + "jest-diff@npm:^29.4.1, jest-diff@npm:^29.7.0": version: 29.7.0 resolution: "jest-diff@npm:29.7.0" @@ -7927,6 +8061,15 @@ __metadata: languageName: node linkType: hard +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" + bin: + jsesc: bin/jsesc + checksum: 10c0/dbf59312e0ebf2b4405ef413ec2b25abb5f8f4d9bc5fb8d9f90381622ebca5f2af6a6aa9a8578f65903f9e33990a6dc798edd0ce5586894bf0e9e31803a1de88 + languageName: node + linkType: hard + "json-bigint@npm:^1.0.0": version: 1.0.0 resolution: "json-bigint@npm:1.0.0" @@ -12320,6 +12463,13 @@ __metadata: languageName: node linkType: hard +"source-map@npm:^0.5.0": + version: 0.5.7 + resolution: "source-map@npm:0.5.7" + checksum: 10c0/904e767bb9c494929be013017380cbba013637da1b28e5943b566031e29df04fba57edf3f093e0914be094648b577372bd8ad247fa98cfba9c600794cd16b599 + languageName: node + linkType: hard + "source-map@npm:^0.6.1, source-map@npm:~0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" From e12039c0593ba021ce27cb7245b6067677f27625 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 8 Aug 2024 11:23:52 +0200 Subject: [PATCH 093/135] apply sorting on scripts --- scripts/__mocks__/simple-git.ts | 1 + scripts/bench/browse.ts | 3 +- scripts/bench/utils.ts | 3 +- scripts/build-package.ts | 9 ++-- scripts/check-dependencies.js | 2 +- scripts/check-package.ts | 9 ++-- scripts/combine-compodoc.ts | 10 ++-- scripts/create-nx-sandbox-projects.ts | 3 +- scripts/dangerfile.ts | 2 +- scripts/event-log-checker.ts | 7 +-- scripts/get-report-message.ts | 5 +- scripts/get-template.ts | 15 +++--- scripts/prepare/addon-bundle.ts | 14 +++--- scripts/prepare/bundle.ts | 11 +++-- scripts/prepare/check.ts | 2 +- scripts/prepare/tools.ts | 32 ++++++------- scripts/prepare/tsc.ts | 5 +- scripts/prettier.config.js | 2 +- .../__tests__/cancel-preparation-runs.test.ts | 2 +- .../__tests__/generate-pr-description.test.ts | 7 +-- .../release/__tests__/is-pr-frozen.test.ts | 9 ++-- .../release/__tests__/label-patches.test.ts | 7 +-- scripts/release/__tests__/version.test.ts | 8 ++-- .../release/__tests__/write-changelog.test.ts | 8 ++-- scripts/release/cancel-preparation-runs.ts | 2 +- scripts/release/generate-pr-description.ts | 11 +++-- scripts/release/get-changelog-from-file.ts | 1 + scripts/release/get-current-version.ts | 5 +- scripts/release/get-version-changelog.ts | 1 + scripts/release/is-pr-frozen.ts | 5 +- scripts/release/is-prerelease.ts | 3 +- scripts/release/is-version-published.ts | 3 +- scripts/release/label-patches.ts | 5 +- scripts/release/pick-patches.ts | 5 +- scripts/release/publish.ts | 11 +++-- scripts/release/unreleased-changes-exists.ts | 7 +-- scripts/release/utils/get-changes.ts | 1 + scripts/release/utils/get-github-info.ts | 1 - scripts/release/version.ts | 7 +-- scripts/release/write-changelog.ts | 5 +- scripts/reset.js | 2 +- scripts/run-registry.ts | 17 ++++--- scripts/sandbox/generate.ts | 39 ++++++++-------- scripts/sandbox/publish.ts | 13 +++--- scripts/sandbox/utils/git.ts | 6 +-- scripts/sandbox/utils/template.ts | 3 +- scripts/sandbox/utils/yarn.ts | 2 +- scripts/strict-ts.ts | 4 +- scripts/task.ts | 46 +++++++++---------- scripts/tasks/bench.ts | 6 +-- scripts/tasks/build.ts | 7 +-- scripts/tasks/compile.ts | 4 +- scripts/tasks/dev.ts | 2 +- scripts/tasks/e2e-tests-build.ts | 1 + scripts/tasks/generate.ts | 2 +- scripts/tasks/install.ts | 1 + scripts/tasks/publish.ts | 2 +- scripts/tasks/run-registry.ts | 2 +- scripts/tasks/sandbox-parts.ts | 43 +++++++++-------- scripts/tasks/sandbox.ts | 6 +-- scripts/tasks/sync-docs.ts | 1 + scripts/tasks/test-runner-dev.ts | 2 +- scripts/upload-bench.ts | 4 +- scripts/utils/cli-step.ts | 3 +- scripts/utils/cli-utils.ts | 2 +- scripts/utils/esmain.ts | 2 +- scripts/utils/exec.ts | 2 +- scripts/utils/filterExistsInCodeDir.ts | 3 +- scripts/utils/main-js.ts | 4 +- scripts/utils/options.test.ts | 2 +- scripts/utils/options.ts | 9 ++-- scripts/utils/serve.ts | 2 +- scripts/utils/workspace.ts | 3 +- scripts/utils/yarn.ts | 4 +- scripts/vite-ecosystem-ci/before-test.js | 1 - 75 files changed, 260 insertions(+), 241 deletions(-) diff --git a/scripts/__mocks__/simple-git.ts b/scripts/__mocks__/simple-git.ts index 2e1ec381c934..23a3e90bb4fb 100644 --- a/scripts/__mocks__/simple-git.ts +++ b/scripts/__mocks__/simple-git.ts @@ -1,4 +1,5 @@ /* eslint-disable @typescript-eslint/naming-convention */ + /* eslint-disable no-underscore-dangle */ import { vi } from 'vitest'; diff --git a/scripts/bench/browse.ts b/scripts/bench/browse.ts index f95edea759c5..e46ae0b98fb7 100644 --- a/scripts/bench/browse.ts +++ b/scripts/bench/browse.ts @@ -1,5 +1,6 @@ import { chromium } from 'playwright'; -import { now, getPreviewPage } from './utils'; + +import { getPreviewPage, now } from './utils'; interface Result { managerHeaderVisible?: number; diff --git a/scripts/bench/utils.ts b/scripts/bench/utils.ts index 7457cf80e359..c18051cbe2ac 100644 --- a/scripts/bench/utils.ts +++ b/scripts/bench/utils.ts @@ -1,6 +1,7 @@ +import { ensureDir, readJSON, readdir, writeJSON } from 'fs-extra'; import { join } from 'path'; -import { ensureDir, writeJSON, readJSON, readdir } from 'fs-extra'; import type { Page } from 'playwright-core'; + import type { BenchResults } from './types'; export const now = () => new Date().getTime(); diff --git a/scripts/build-package.ts b/scripts/build-package.ts index b72c7185ec97..dda542237300 100644 --- a/scripts/build-package.ts +++ b/scripts/build-package.ts @@ -1,10 +1,11 @@ -import { resolve, posix, sep } from 'path'; +import chalk from 'chalk'; +import program from 'commander'; +import { execaCommand } from 'execa'; import { readJSON } from 'fs-extra'; +import { posix, resolve, sep } from 'path'; import prompts from 'prompts'; -import program from 'commander'; -import chalk from 'chalk'; import windowSize from 'window-size'; -import { execaCommand } from 'execa'; + import { getWorkspaces } from './utils/workspace'; async function run() { diff --git a/scripts/check-dependencies.js b/scripts/check-dependencies.js index bc797218870e..095434bc4295 100644 --- a/scripts/check-dependencies.js +++ b/scripts/check-dependencies.js @@ -3,8 +3,8 @@ * Therefore, we cannot transform this file to Typescript, because it would require esbuild to be installed */ import { spawn } from 'child_process'; -import { join } from 'path'; import { existsSync } from 'fs'; +import { join } from 'path'; import * as url from 'url'; const logger = console; diff --git a/scripts/check-package.ts b/scripts/check-package.ts index b1d349007902..4a54ef43a897 100644 --- a/scripts/check-package.ts +++ b/scripts/check-package.ts @@ -1,13 +1,14 @@ // This script makes sure that we can support type checking, // without having to build dts files for all packages in the monorepo. // It is not implemented yet for angular, svelte and vue. -import { resolve } from 'path'; +import chalk from 'chalk'; +import program from 'commander'; +import { execaCommand } from 'execa'; import { readJSON } from 'fs-extra'; +import { resolve } from 'path'; import prompts from 'prompts'; -import program from 'commander'; -import chalk from 'chalk'; import windowSize from 'window-size'; -import { execaCommand } from 'execa'; + import { getWorkspaces } from './utils/workspace'; async function run() { diff --git a/scripts/combine-compodoc.ts b/scripts/combine-compodoc.ts index 3b8a05cecd82..eefc905fc132 100755 --- a/scripts/combine-compodoc.ts +++ b/scripts/combine-compodoc.ts @@ -1,13 +1,13 @@ // Compodoc does not follow symlinks (it ignores them and their contents entirely) // So, we need to run a separate compodoc process on every symlink inside the project, // then combine the results into one large documentation.json - -import { join, resolve } from 'path'; -import { realpath, readFile, writeFile, lstat } from 'fs-extra'; -import { globSync } from 'glob'; import { execaCommand } from 'execa'; -import { esMain } from './utils/esmain'; +import { lstat, readFile, realpath, writeFile } from 'fs-extra'; +import { globSync } from 'glob'; +import { join, resolve } from 'path'; + import { temporaryDirectory } from '../code/core/src/common/utils/cli'; +import { esMain } from './utils/esmain'; const logger = console; diff --git a/scripts/create-nx-sandbox-projects.ts b/scripts/create-nx-sandbox-projects.ts index 6e9b8a6029d4..e58eabd04710 100644 --- a/scripts/create-nx-sandbox-projects.ts +++ b/scripts/create-nx-sandbox-projects.ts @@ -1,7 +1,8 @@ -import * as templates from '../code/lib/cli-storybook/src/sandbox-templates'; import * as fs from 'fs'; import * as path from 'path'; +import * as templates from '../code/lib/cli-storybook/src/sandbox-templates'; + // @ts-expect-error somehow TS thinks there is a default export const { allTemplates, merged, daily, normal } = (templates.default || templates) as typeof templates; diff --git a/scripts/dangerfile.ts b/scripts/dangerfile.ts index e3f150905cba..51a144e550cf 100644 --- a/scripts/dangerfile.ts +++ b/scripts/dangerfile.ts @@ -1,6 +1,6 @@ /* eslint-disable import/extensions */ -import { fail, danger } from 'danger'; import { execSync } from 'child_process'; +import { danger, fail } from 'danger'; execSync('npm install lodash'); diff --git a/scripts/event-log-checker.ts b/scripts/event-log-checker.ts index 164431aa342c..b350a687924d 100644 --- a/scripts/event-log-checker.ts +++ b/scripts/event-log-checker.ts @@ -1,9 +1,10 @@ -import chalk from 'chalk'; import assert from 'assert'; -import { esMain } from './utils/esmain'; -import { allTemplates } from '../code/lib/cli-storybook/src/sandbox-templates'; +import chalk from 'chalk'; + import versions from '../code/core/src/common/versions'; import { oneWayHash } from '../code/core/src/telemetry/one-way-hash'; +import { allTemplates } from '../code/lib/cli-storybook/src/sandbox-templates'; +import { esMain } from './utils/esmain'; const PORT = process.env.PORT || 6007; diff --git a/scripts/get-report-message.ts b/scripts/get-report-message.ts index 597f9c4e6ccb..4774bc0f8ca2 100644 --- a/scripts/get-report-message.ts +++ b/scripts/get-report-message.ts @@ -1,8 +1,9 @@ +import { execaCommand } from 'execa'; import { readJson } from 'fs-extra'; import { join } from 'path'; -import { execaCommand } from 'execa'; -import { esMain } from './utils/esmain'; + import { CODE_DIRECTORY } from './utils/constants'; +import { esMain } from './utils/esmain'; type Branch = 'main' | 'next' | 'alpha' | 'next-release' | 'latest-release'; type Workflow = 'merged' | 'daily'; diff --git a/scripts/get-template.ts b/scripts/get-template.ts index 166f191fc6de..c656bd476ad5 100644 --- a/scripts/get-template.ts +++ b/scripts/get-template.ts @@ -1,18 +1,19 @@ -import { readdir } from 'fs/promises'; -import { pathExists, readFile } from 'fs-extra'; +import chalk from 'chalk'; import { program } from 'commander'; +import { pathExists, readFile } from 'fs-extra'; +import { readdir } from 'fs/promises'; import { dedent } from 'ts-dedent'; -import chalk from 'chalk'; import yaml from 'yaml'; -import { esMain } from './utils/esmain'; + import { - allTemplates, - templatesByCadence, type Cadence, - type Template as TTemplate, type SkippableTask, + type Template as TTemplate, + allTemplates, + templatesByCadence, } from '../code/lib/cli-storybook/src/sandbox-templates'; import { SANDBOX_DIRECTORY } from './utils/constants'; +import { esMain } from './utils/esmain'; const sandboxDir = process.env.SANDBOX_ROOT || SANDBOX_DIRECTORY; diff --git a/scripts/prepare/addon-bundle.ts b/scripts/prepare/addon-bundle.ts index 5af6bed15fb1..b34621584877 100755 --- a/scripts/prepare/addon-bundle.ts +++ b/scripts/prepare/addon-bundle.ts @@ -1,16 +1,16 @@ +import aliasPlugin from 'esbuild-plugin-alias'; import * as fs from 'fs-extra'; +import { glob } from 'glob'; import path, { dirname, join, relative } from 'path'; +import slash from 'slash'; +import { dedent } from 'ts-dedent'; import type { Options } from 'tsup'; -import type { PackageJson } from 'type-fest'; import { build } from 'tsup'; -import aliasPlugin from 'esbuild-plugin-alias'; -import { dedent } from 'ts-dedent'; -import slash from 'slash'; -import { exec } from '../utils/exec'; +import type { PackageJson } from 'type-fest'; -import { globalPackages as globalPreviewPackages } from '../../code/core/src/preview/globals/globals'; import { globalPackages as globalManagerPackages } from '../../code/core/src/manager/globals/globals'; -import { glob } from 'glob'; +import { globalPackages as globalPreviewPackages } from '../../code/core/src/preview/globals/globals'; +import { exec } from '../utils/exec'; /* TYPES */ diff --git a/scripts/prepare/bundle.ts b/scripts/prepare/bundle.ts index 6495efb41de2..9d51b477d997 100755 --- a/scripts/prepare/bundle.ts +++ b/scripts/prepare/bundle.ts @@ -1,13 +1,14 @@ +import aliasPlugin from 'esbuild-plugin-alias'; import * as fs from 'fs-extra'; +import { glob } from 'glob'; import path, { dirname, join, relative } from 'path'; +import slash from 'slash'; +import { dedent } from 'ts-dedent'; import type { Options } from 'tsup'; -import type { PackageJson } from 'type-fest'; import { build } from 'tsup'; -import aliasPlugin from 'esbuild-plugin-alias'; -import { dedent } from 'ts-dedent'; -import slash from 'slash'; +import type { PackageJson } from 'type-fest'; + import { exec } from '../utils/exec'; -import { glob } from 'glob'; /* TYPES */ diff --git a/scripts/prepare/check.ts b/scripts/prepare/check.ts index 1e10c1024afe..dbf09429492b 100755 --- a/scripts/prepare/check.ts +++ b/scripts/prepare/check.ts @@ -1,5 +1,5 @@ -import { join } from 'path'; import fs from 'fs-extra'; +import { join } from 'path'; import ts from 'typescript'; const run = async ({ cwd }: { cwd: string }) => { diff --git a/scripts/prepare/tools.ts b/scripts/prepare/tools.ts index cf42d65a24c5..4d5c8b668005 100644 --- a/scripts/prepare/tools.ts +++ b/scripts/prepare/tools.ts @@ -1,28 +1,26 @@ +import { globalExternals } from '@fal-works/esbuild-plugin-global-externals'; +import chalk from 'chalk'; +import { spawn } from 'cross-spawn'; +import * as esbuild from 'esbuild'; +import { readJson } from 'fs-extra'; +import { glob } from 'glob'; +import { writeFile } from 'node:fs/promises'; import { dirname, join } from 'node:path'; import * as process from 'node:process'; -import { glob } from 'glob'; - +import limit from 'p-limit'; +import * as prettier from 'prettier'; +import prettyTime from 'pretty-hrtime'; +import * as rollup from 'rollup'; +import * as rpd from 'rollup-plugin-dts'; import slash from 'slash'; -import typescript from 'typescript'; import sortPackageJson from 'sort-package-json'; +import { dedent } from 'ts-dedent'; import * as tsup from 'tsup'; -import * as esbuild from 'esbuild'; import type * as typefest from 'type-fest'; -import prettyTime from 'pretty-hrtime'; -import * as prettier from 'prettier'; -import chalk from 'chalk'; -import { dedent } from 'ts-dedent'; -import limit from 'p-limit'; -import { CODE_DIRECTORY } from '../utils/constants'; +import typescript from 'typescript'; import ts from 'typescript'; -import { globalExternals } from '@fal-works/esbuild-plugin-global-externals'; - -import * as rpd from 'rollup-plugin-dts'; -import * as rollup from 'rollup'; -import { writeFile } from 'node:fs/promises'; -import { readJson } from 'fs-extra'; -import { spawn } from 'cross-spawn'; +import { CODE_DIRECTORY } from '../utils/constants'; export { globalExternals }; diff --git a/scripts/prepare/tsc.ts b/scripts/prepare/tsc.ts index f90654327f54..92669cbd7204 100755 --- a/scripts/prepare/tsc.ts +++ b/scripts/prepare/tsc.ts @@ -1,7 +1,8 @@ -import { join } from 'path'; import fs, { move } from 'fs-extra'; -import * as ts from 'typescript'; import { globSync } from 'glob'; +import { join } from 'path'; +import * as ts from 'typescript'; + import { exec } from '../utils/exec'; const hasFlag = (flags: string[], name: string) => !!flags.find((s) => s.startsWith(`--${name}`)); diff --git a/scripts/prettier.config.js b/scripts/prettier.config.js index cf95ee9a35e5..edfcc37eb421 100644 --- a/scripts/prettier.config.js +++ b/scripts/prettier.config.js @@ -16,7 +16,7 @@ export default { ], plugins: ['@trivago/prettier-plugin-sort-imports'], - importOrder: ['^storybook/internal', '^@storybook/(.*)$', '^[./]'], + importOrder: ['^node:', '^storybook/internal', '^@storybook/(.*)$', '^[./]'], importOrderSeparation: true, importOrderSortSpecifiers: true, diff --git a/scripts/release/__tests__/cancel-preparation-runs.test.ts b/scripts/release/__tests__/cancel-preparation-runs.test.ts index 042076fd7840..a12eb0e02d53 100644 --- a/scripts/release/__tests__/cancel-preparation-runs.test.ts +++ b/scripts/release/__tests__/cancel-preparation-runs.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; import { PREPARE_NON_PATCH_WORKFLOW_PATH, diff --git a/scripts/release/__tests__/generate-pr-description.test.ts b/scripts/release/__tests__/generate-pr-description.test.ts index 926f46226d4b..bbde660579d1 100644 --- a/scripts/release/__tests__/generate-pr-description.test.ts +++ b/scripts/release/__tests__/generate-pr-description.test.ts @@ -1,9 +1,10 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { - generateReleaseDescription, generateNonReleaseDescription, - mapToChangelist, + generateReleaseDescription, mapCherryPicksToTodo, + mapToChangelist, } from '../generate-pr-description'; import type { Change } from '../utils/get-changes'; diff --git a/scripts/release/__tests__/is-pr-frozen.test.ts b/scripts/release/__tests__/is-pr-frozen.test.ts index 5918566fbba8..19268fbf436e 100644 --- a/scripts/release/__tests__/is-pr-frozen.test.ts +++ b/scripts/release/__tests__/is-pr-frozen.test.ts @@ -1,16 +1,15 @@ /* eslint-disable no-underscore-dangle */ -import path from 'path'; -import { vi, describe, expect, it } from 'vitest'; import * as fsExtraImp from 'fs-extra'; +import path from 'path'; import * as simpleGitImp from 'simple-git'; -import { run as isPrFrozen } from '../is-pr-frozen'; +import { describe, expect, it, vi } from 'vitest'; import type * as MockedFSExtra from '../../../code/__mocks__/fs-extra'; import type * as MockedSimpleGit from '../../__mocks__/simple-git'; - +import { CODE_DIRECTORY } from '../../utils/constants'; +import { run as isPrFrozen } from '../is-pr-frozen'; import type { PullRequestInfo } from '../utils/get-github-info'; import { getPullInfoFromCommit } from '../utils/get-github-info'; -import { CODE_DIRECTORY } from '../../utils/constants'; vi.mock('../utils/get-github-info'); vi.mock('simple-git'); diff --git a/scripts/release/__tests__/label-patches.test.ts b/scripts/release/__tests__/label-patches.test.ts index 29da21758c6e..95baa4fe509e 100644 --- a/scripts/release/__tests__/label-patches.test.ts +++ b/scripts/release/__tests__/label-patches.test.ts @@ -1,9 +1,10 @@ -import { beforeEach, expect, vi, it } from 'vitest'; -import type { LogResult } from 'simple-git'; import ansiRegex from 'ansi-regex'; +import type { LogResult } from 'simple-git'; +import { beforeEach, expect, it, vi } from 'vitest'; + import { run } from '../label-patches'; -import * as gitClient_ from '../utils/git-client'; import * as githubInfo_ from '../utils/get-github-info'; +import * as gitClient_ from '../utils/git-client'; import * as github_ from '../utils/github-client'; vi.mock('uuid'); diff --git a/scripts/release/__tests__/version.test.ts b/scripts/release/__tests__/version.test.ts index f7f5b3e7385d..9a090308f439 100644 --- a/scripts/release/__tests__/version.test.ts +++ b/scripts/release/__tests__/version.test.ts @@ -1,11 +1,11 @@ /* eslint-disable no-underscore-dangle */ -import { describe, it, expect, vi } from 'vitest'; -import path from 'path'; -import * as fsExtraImp from 'fs-extra'; import { execaCommand } from 'execa'; -import { run as version } from '../version'; +import * as fsExtraImp from 'fs-extra'; +import path from 'path'; +import { describe, expect, it, vi } from 'vitest'; import type * as MockedFSToExtra from '../../../code/__mocks__/fs-extra'; +import { run as version } from '../version'; vi.mock('fs-extra', async () => import('../../../code/__mocks__/fs-extra')); const fsExtra = fsExtraImp as unknown as typeof MockedFSToExtra; diff --git a/scripts/release/__tests__/write-changelog.test.ts b/scripts/release/__tests__/write-changelog.test.ts index 6eaefbed57b1..893918d9fa13 100644 --- a/scripts/release/__tests__/write-changelog.test.ts +++ b/scripts/release/__tests__/write-changelog.test.ts @@ -1,12 +1,12 @@ /* eslint-disable no-underscore-dangle */ +import * as fsExtraImp from 'fs-extra'; import path from 'path'; import { dedent } from 'ts-dedent'; -import { vi, expect, describe, it, beforeEach } from 'vitest'; -import * as fsExtraImp from 'fs-extra'; -import { run as writeChangelog } from '../write-changelog'; -import * as changesUtils_ from '../utils/get-changes'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; import type * as MockedFSToExtra from '../../../code/__mocks__/fs-extra'; +import * as changesUtils_ from '../utils/get-changes'; +import { run as writeChangelog } from '../write-changelog'; vi.mock('fs-extra', async () => import('../../../code/__mocks__/fs-extra')); vi.mock('../utils/get-changes'); diff --git a/scripts/release/cancel-preparation-runs.ts b/scripts/release/cancel-preparation-runs.ts index 8b6ac9ac23a9..86cc0fb1d476 100644 --- a/scripts/release/cancel-preparation-runs.ts +++ b/scripts/release/cancel-preparation-runs.ts @@ -2,10 +2,10 @@ * This script cancels all running preparation workflows in GitHub. * It will fetch all active runs for the preparation workflows, and cancel them. */ - import chalk from 'chalk'; import program from 'commander'; import { dedent } from 'ts-dedent'; + import { esMain } from '../utils/esmain'; import { githubRestClient } from './utils/github-client'; diff --git a/scripts/release/generate-pr-description.ts b/scripts/release/generate-pr-description.ts index a514985290ed..38f6a9639d01 100644 --- a/scripts/release/generate-pr-description.ts +++ b/scripts/release/generate-pr-description.ts @@ -1,13 +1,14 @@ +import { setOutput } from '@actions/core'; import chalk from 'chalk'; import program from 'commander'; -import { z } from 'zod'; -import { dedent } from 'ts-dedent'; import semver from 'semver'; -import { setOutput } from '@actions/core'; +import { dedent } from 'ts-dedent'; +import { z } from 'zod'; + import { esMain } from '../utils/esmain'; -import type { Change } from './utils/get-changes'; -import { getChanges, LABELS_BY_IMPORTANCE, RELEASED_LABELS } from './utils/get-changes'; import { getCurrentVersion } from './get-current-version'; +import type { Change } from './utils/get-changes'; +import { LABELS_BY_IMPORTANCE, RELEASED_LABELS, getChanges } from './utils/get-changes'; import type { PullRequestInfo } from './utils/get-github-info'; program diff --git a/scripts/release/get-changelog-from-file.ts b/scripts/release/get-changelog-from-file.ts index 22f5391b5513..85dc1df13e0c 100644 --- a/scripts/release/get-changelog-from-file.ts +++ b/scripts/release/get-changelog-from-file.ts @@ -5,6 +5,7 @@ import { readFile } from 'fs-extra'; import path from 'path'; import semver from 'semver'; import { dedent } from 'ts-dedent'; + import { esMain } from '../utils/esmain'; import { getCurrentVersion } from './get-current-version'; diff --git a/scripts/release/get-current-version.ts b/scripts/release/get-current-version.ts index 7fd51559e332..49d99410bfd6 100644 --- a/scripts/release/get-current-version.ts +++ b/scripts/release/get-current-version.ts @@ -1,7 +1,8 @@ -import chalk from 'chalk'; import { setOutput } from '@actions/core'; -import path from 'path'; +import chalk from 'chalk'; import { readJson } from 'fs-extra'; +import path from 'path'; + import { esMain } from '../utils/esmain'; const CODE_DIR_PATH = path.join(__dirname, '..', '..', 'code'); diff --git a/scripts/release/get-version-changelog.ts b/scripts/release/get-version-changelog.ts index 426444457c7e..6e1af6a7b5b7 100644 --- a/scripts/release/get-version-changelog.ts +++ b/scripts/release/get-version-changelog.ts @@ -1,6 +1,7 @@ import { setOutput } from '@actions/core'; import chalk from 'chalk'; import { program } from 'commander'; + import { esMain } from '../utils/esmain'; import { getCurrentVersion } from './get-current-version'; import { getChanges } from './utils/get-changes'; diff --git a/scripts/release/is-pr-frozen.ts b/scripts/release/is-pr-frozen.ts index 69f9fb4ad71f..fd632e10bce9 100644 --- a/scripts/release/is-pr-frozen.ts +++ b/scripts/release/is-pr-frozen.ts @@ -1,8 +1,9 @@ +import { setOutput } from '@actions/core'; import chalk from 'chalk'; import program from 'commander'; -import { setOutput } from '@actions/core'; -import path from 'path'; import { readJson } from 'fs-extra'; +import path from 'path'; + import { esMain } from '../utils/esmain'; import { getPullInfoFromCommit } from './utils/get-github-info'; import { git } from './utils/git-client'; diff --git a/scripts/release/is-prerelease.ts b/scripts/release/is-prerelease.ts index 99e5f6cdf4ad..d154991b27cc 100644 --- a/scripts/release/is-prerelease.ts +++ b/scripts/release/is-prerelease.ts @@ -1,7 +1,8 @@ +import { setOutput } from '@actions/core'; import chalk from 'chalk'; import program from 'commander'; -import { setOutput } from '@actions/core'; import semver from 'semver'; + import { esMain } from '../utils/esmain'; import { getCurrentVersion } from './get-current-version'; diff --git a/scripts/release/is-version-published.ts b/scripts/release/is-version-published.ts index e38ce1fbfa1c..90d46399ab90 100644 --- a/scripts/release/is-version-published.ts +++ b/scripts/release/is-version-published.ts @@ -1,6 +1,7 @@ +import { setOutput } from '@actions/core'; import chalk from 'chalk'; import program from 'commander'; -import { setOutput } from '@actions/core'; + import { esMain } from '../utils/esmain'; import { getCurrentVersion } from './get-current-version'; diff --git a/scripts/release/label-patches.ts b/scripts/release/label-patches.ts index 453e64105abf..a0d82f44fe60 100644 --- a/scripts/release/label-patches.ts +++ b/scripts/release/label-patches.ts @@ -1,10 +1,11 @@ import program from 'commander'; -import { v4 as uuidv4 } from 'uuid'; import ora from 'ora'; +import { v4 as uuidv4 } from 'uuid'; + import { esMain } from '../utils/esmain'; -import { getLabelIds, githubGraphQlClient, getUnpickedPRs } from './utils/github-client'; import { getPullInfoFromCommits, getRepo } from './utils/get-changes'; import { getLatestTag, git } from './utils/git-client'; +import { getLabelIds, getUnpickedPRs, githubGraphQlClient } from './utils/github-client'; program .name('label-patches') diff --git a/scripts/release/pick-patches.ts b/scripts/release/pick-patches.ts index 18b999f3e49c..49bb55317529 100644 --- a/scripts/release/pick-patches.ts +++ b/scripts/release/pick-patches.ts @@ -1,8 +1,9 @@ -import program from 'commander'; +import { setOutput } from '@actions/core'; import chalk from 'chalk'; +import program from 'commander'; import ora from 'ora'; -import { setOutput } from '@actions/core'; import invariant from 'tiny-invariant'; + import { esMain } from '../utils/esmain'; import { git } from './utils/git-client'; import { getUnpickedPRs } from './utils/github-client'; diff --git a/scripts/release/publish.ts b/scripts/release/publish.ts index 79ecbcacb1fd..0e0136107649 100644 --- a/scripts/release/publish.ts +++ b/scripts/release/publish.ts @@ -1,12 +1,13 @@ import chalk from 'chalk'; -import path from 'path'; import program from 'commander'; -import semver from 'semver'; -import { z } from 'zod'; +import { execaCommand } from 'execa'; import { readJson } from 'fs-extra'; -import dedent from 'ts-dedent'; import pRetry from 'p-retry'; -import { execaCommand } from 'execa'; +import path from 'path'; +import semver from 'semver'; +import dedent from 'ts-dedent'; +import { z } from 'zod'; + import { esMain } from '../utils/esmain'; program diff --git a/scripts/release/unreleased-changes-exists.ts b/scripts/release/unreleased-changes-exists.ts index d974d9db6d90..e52dd198b05c 100644 --- a/scripts/release/unreleased-changes-exists.ts +++ b/scripts/release/unreleased-changes-exists.ts @@ -1,12 +1,13 @@ +import { setOutput } from '@actions/core'; import chalk from 'chalk'; import program from 'commander'; -import { z } from 'zod'; -import { setOutput } from '@actions/core'; import { intersection } from 'lodash'; +import { z } from 'zod'; + import { esMain } from '../utils/esmain'; +import { getCurrentVersion } from './get-current-version'; import type { Change } from './utils/get-changes'; import { RELEASED_LABELS, getChanges } from './utils/get-changes'; -import { getCurrentVersion } from './get-current-version'; program .name('are-changes-unreleased') diff --git a/scripts/release/utils/get-changes.ts b/scripts/release/utils/get-changes.ts index 8d2811d486db..5588a10eba52 100644 --- a/scripts/release/utils/get-changes.ts +++ b/scripts/release/utils/get-changes.ts @@ -1,5 +1,6 @@ import chalk from 'chalk'; import semver from 'semver'; + import type { PullRequestInfo } from './get-github-info'; import { getPullInfoFromCommit } from './get-github-info'; import { getLatestTag, git } from './git-client'; diff --git a/scripts/release/utils/get-github-info.ts b/scripts/release/utils/get-github-info.ts index 86c38defc447..1317916cb3df 100644 --- a/scripts/release/utils/get-github-info.ts +++ b/scripts/release/utils/get-github-info.ts @@ -4,7 +4,6 @@ * * The only modification is that it also returns the PR title and labels */ - import DataLoader from 'dataloader'; const validRepoNameRegex = /^[\w.-]+\/[\w.-]+$/; diff --git a/scripts/release/version.ts b/scripts/release/version.ts index ed6f6636e540..6574e4609ec9 100644 --- a/scripts/release/version.ts +++ b/scripts/release/version.ts @@ -1,11 +1,12 @@ import { setOutput } from '@actions/core'; -import { readFile, readJson, writeFile, writeJson } from 'fs-extra'; import chalk from 'chalk'; -import path from 'path'; import program from 'commander'; +import { execaCommand } from 'execa'; +import { readFile, readJson, writeFile, writeJson } from 'fs-extra'; +import path from 'path'; import semver from 'semver'; import { z } from 'zod'; -import { execaCommand } from 'execa'; + import { esMain } from '../utils/esmain'; import type { Workspace } from '../utils/workspace'; import { getWorkspaces } from '../utils/workspace'; diff --git a/scripts/release/write-changelog.ts b/scripts/release/write-changelog.ts index 71090890a020..43a03c8c497f 100644 --- a/scripts/release/write-changelog.ts +++ b/scripts/release/write-changelog.ts @@ -1,9 +1,10 @@ import chalk from 'chalk'; -import path from 'path'; import program from 'commander'; +import { readFile, writeFile, writeJson } from 'fs-extra'; +import path from 'path'; import semver from 'semver'; import { z } from 'zod'; -import { readFile, writeFile, writeJson } from 'fs-extra'; + import { esMain } from '../utils/esmain'; import { getChanges } from './utils/get-changes'; diff --git a/scripts/reset.js b/scripts/reset.js index afbd4ee9b070..5d8c70698792 100644 --- a/scripts/reset.js +++ b/scripts/reset.js @@ -1,6 +1,6 @@ +import { spawn } from 'child_process'; import fs from 'fs'; import { remove } from 'fs-extra'; -import { spawn } from 'child_process'; import trash from 'trash'; const logger = console; diff --git a/scripts/run-registry.ts b/scripts/run-registry.ts index eb7e0310b0fe..bb8aa97048fc 100755 --- a/scripts/run-registry.ts +++ b/scripts/run-registry.ts @@ -1,19 +1,18 @@ -import { exec } from 'child_process'; -import { remove, pathExists, readJSON } from 'fs-extra'; import chalk from 'chalk'; -import path from 'path'; +import { exec } from 'child_process'; import program from 'commander'; +import { execa, execaSync } from 'execa'; +import { pathExists, readJSON, remove } from 'fs-extra'; +import { mkdir } from 'fs/promises'; import http from 'http'; - -import { runServer, parseConfigFile } from 'verdaccio'; -import pLimit from 'p-limit'; import type { Server } from 'http'; -import { mkdir } from 'fs/promises'; -import { PACKS_DIRECTORY } from './utils/constants'; +import pLimit from 'p-limit'; +import path from 'path'; +import { parseConfigFile, runServer } from 'verdaccio'; import { maxConcurrentTasks } from './utils/concurrency'; +import { PACKS_DIRECTORY } from './utils/constants'; import { getWorkspaces } from './utils/workspace'; -import { execa, execaSync } from 'execa'; program .option('-O, --open', 'keep process open') diff --git a/scripts/sandbox/generate.ts b/scripts/sandbox/generate.ts index 711d5dfd4489..327e5d864c95 100755 --- a/scripts/sandbox/generate.ts +++ b/scripts/sandbox/generate.ts @@ -1,32 +1,31 @@ -import { join, relative } from 'path'; +import * as ghActions from '@actions/core'; +import { program } from 'commander'; import type { Options as ExecaOptions } from 'execa'; +import { execaCommand } from 'execa'; +import { copy, emptyDir, ensureDir, move, remove, rename, writeFile } from 'fs-extra'; import pLimit from 'p-limit'; +import { join, relative } from 'path'; import prettyTime from 'pretty-hrtime'; -import { copy, emptyDir, ensureDir, move, remove, rename, writeFile } from 'fs-extra'; -import { program } from 'commander'; -import { execaCommand } from 'execa'; -import { esMain } from '../utils/esmain'; - -import type { OptionValues } from '../utils/options'; -import { createOptions } from '../utils/options'; -import { allTemplates as sandboxTemplates } from '../../code/lib/cli-storybook/src/sandbox-templates'; -import storybookVersions from '../../code/core/src/common/versions'; -import { JsPackageManagerFactory } from '../../code/core/src/common/js-package-manager/JsPackageManagerFactory'; +import { dedent } from 'ts-dedent'; -import { localizeYarnConfigFiles, setupYarn } from './utils/yarn'; -import type { GeneratorConfig } from './utils/types'; -import { getStackblitzUrl, renderTemplate } from './utils/template'; import type { JsPackageManager } from '../../code/core/src/common/js-package-manager'; +import { JsPackageManagerFactory } from '../../code/core/src/common/js-package-manager/JsPackageManagerFactory'; +import { temporaryDirectory } from '../../code/core/src/common/utils/cli'; +import storybookVersions from '../../code/core/src/common/versions'; +import { allTemplates as sandboxTemplates } from '../../code/lib/cli-storybook/src/sandbox-templates'; import { - BEFORE_DIR_NAME, AFTER_DIR_NAME, - SCRIPT_TIMEOUT, - REPROS_DIRECTORY, + BEFORE_DIR_NAME, LOCAL_REGISTRY_URL, + REPROS_DIRECTORY, + SCRIPT_TIMEOUT, } from '../utils/constants'; -import * as ghActions from '@actions/core'; -import { dedent } from 'ts-dedent'; -import { temporaryDirectory } from '../../code/core/src/common/utils/cli'; +import { esMain } from '../utils/esmain'; +import type { OptionValues } from '../utils/options'; +import { createOptions } from '../utils/options'; +import { getStackblitzUrl, renderTemplate } from './utils/template'; +import type { GeneratorConfig } from './utils/types'; +import { localizeYarnConfigFiles, setupYarn } from './utils/yarn'; const isCI = process.env.GITHUB_ACTIONS === 'true'; diff --git a/scripts/sandbox/publish.ts b/scripts/sandbox/publish.ts index fc9f92614875..ad8f5f11fcd8 100755 --- a/scripts/sandbox/publish.ts +++ b/scripts/sandbox/publish.ts @@ -1,15 +1,14 @@ import program from 'commander'; -import { dirname, join, relative } from 'path'; +import { execaCommand } from 'execa'; import { existsSync } from 'fs'; import { copy, emptyDir, remove, writeFile } from 'fs-extra'; -import { execaCommand } from 'execa'; - -import { getTemplatesData, renderTemplate } from './utils/template'; - -import { commitAllToGit } from './utils/git'; -import { REPROS_DIRECTORY } from '../utils/constants'; import { glob } from 'glob'; +import { dirname, join, relative } from 'path'; + import { temporaryDirectory } from '../../code/core/src/common/utils/cli'; +import { REPROS_DIRECTORY } from '../utils/constants'; +import { commitAllToGit } from './utils/git'; +import { getTemplatesData, renderTemplate } from './utils/template'; export const logger = console; diff --git a/scripts/sandbox/utils/git.ts b/scripts/sandbox/utils/git.ts index c0d62ee414c1..894858eb6bfa 100644 --- a/scripts/sandbox/utils/git.ts +++ b/scripts/sandbox/utils/git.ts @@ -1,10 +1,8 @@ -import invariant from 'tiny-invariant'; - import { execaCommand } from 'execa'; - -import { logger } from '../publish'; +import invariant from 'tiny-invariant'; import { version as storybookVersion } from '../../../code/package.json'; +import { logger } from '../publish'; const getTheLastCommitHashThatUpdatedTheSandboxRepo = async (branch: string) => { const owner = 'storybookjs'; diff --git a/scripts/sandbox/utils/template.ts b/scripts/sandbox/utils/template.ts index 5f5228a46dc5..11b6c1e86d5a 100644 --- a/scripts/sandbox/utils/template.ts +++ b/scripts/sandbox/utils/template.ts @@ -1,8 +1,9 @@ import { render } from 'ejs'; import { readFile } from 'fs-extra'; import prettier from 'prettier'; -import type { GeneratorConfig } from './types'; + import { allTemplates as sandboxTemplates } from '../../../code/lib/cli-storybook/src/sandbox-templates'; +import type { GeneratorConfig } from './types'; export async function renderTemplate(templatePath: string, templateData: Record) { const template = await readFile(templatePath, 'utf8'); diff --git a/scripts/sandbox/utils/yarn.ts b/scripts/sandbox/utils/yarn.ts index d6875e2206b5..a2d579b2cde0 100644 --- a/scripts/sandbox/utils/yarn.ts +++ b/scripts/sandbox/utils/yarn.ts @@ -1,5 +1,5 @@ -import { join } from 'path'; import { move, remove } from 'fs-extra'; +import { join } from 'path'; import { runCommand } from '../generate'; diff --git a/scripts/strict-ts.ts b/scripts/strict-ts.ts index 047fa030f2e7..116c7f08b66c 100644 --- a/scripts/strict-ts.ts +++ b/scripts/strict-ts.ts @@ -1,7 +1,7 @@ import glob from 'fast-glob'; -import path from 'path'; -import fsSync from 'node:fs'; import JSON5 from 'json5'; +import fsSync from 'node:fs'; +import path from 'path'; const files = glob.sync('**/*/tsconfig.json', { absolute: true, diff --git a/scripts/task.ts b/scripts/task.ts index a9c3086cccd7..dc52005446e2 100644 --- a/scripts/task.ts +++ b/scripts/task.ts @@ -1,40 +1,38 @@ +import { outputFile, pathExists, readFile } from 'fs-extra'; import type { TestCase } from 'junit-xml'; import { getJunitXml } from 'junit-xml'; -import { outputFile, readFile, pathExists } from 'fs-extra'; import { join, resolve } from 'path'; import { prompt } from 'prompts'; +import invariant from 'tiny-invariant'; import { dedent } from 'ts-dedent'; -import invariant from 'tiny-invariant'; -import { CODE_DIRECTORY, JUNIT_DIRECTORY, SANDBOX_DIRECTORY } from './utils/constants'; -import type { OptionValues } from './utils/options'; -import { createOptions, getCommand, getOptionsOrPrompt } from './utils/options'; -import { install } from './tasks/install'; -import { compile } from './tasks/compile'; +import { + allTemplates as TEMPLATES, + type Template, + type TemplateKey, +} from '../code/lib/cli-storybook/src/sandbox-templates'; +import { version } from '../code/package.json'; +import { bench } from './tasks/bench'; +import { build } from './tasks/build'; import { check } from './tasks/check'; +import { chromatic } from './tasks/chromatic'; +import { compile } from './tasks/compile'; +import { dev } from './tasks/dev'; +import { e2eTestsBuild } from './tasks/e2e-tests-build'; +import { e2eTestsDev } from './tasks/e2e-tests-dev'; +import { generate } from './tasks/generate'; +import { install } from './tasks/install'; import { publish } from './tasks/publish'; import { runRegistryTask } from './tasks/run-registry'; -import { generate } from './tasks/generate'; import { sandbox } from './tasks/sandbox'; -import { syncDocs } from './tasks/sync-docs'; -import { dev } from './tasks/dev'; -import { smokeTest } from './tasks/smoke-test'; -import { build } from './tasks/build'; import { serve } from './tasks/serve'; +import { smokeTest } from './tasks/smoke-test'; +import { syncDocs } from './tasks/sync-docs'; import { testRunnerBuild } from './tasks/test-runner-build'; import { testRunnerDev } from './tasks/test-runner-dev'; -import { chromatic } from './tasks/chromatic'; -import { e2eTestsBuild } from './tasks/e2e-tests-build'; -import { e2eTestsDev } from './tasks/e2e-tests-dev'; -import { bench } from './tasks/bench'; - -import { - allTemplates as TEMPLATES, - type TemplateKey, - type Template, -} from '../code/lib/cli-storybook/src/sandbox-templates'; - -import { version } from '../code/package.json'; +import { CODE_DIRECTORY, JUNIT_DIRECTORY, SANDBOX_DIRECTORY } from './utils/constants'; +import type { OptionValues } from './utils/options'; +import { createOptions, getCommand, getOptionsOrPrompt } from './utils/options'; const sandboxDir = process.env.SANDBOX_ROOT || SANDBOX_DIRECTORY; diff --git a/scripts/tasks/bench.ts b/scripts/tasks/bench.ts index e08e06658838..5f4f523fc9ad 100644 --- a/scripts/tasks/bench.ts +++ b/scripts/tasks/bench.ts @@ -1,11 +1,9 @@ -/* eslint-disable import/extensions */ import prettyBytes from 'pretty-bytes'; import prettyTime from 'pretty-ms'; import type { Task } from '../task'; - -import { PORT as devPort, dev } from './dev'; -import { PORT as servePort, serve } from './serve'; +import { dev, PORT as devPort } from './dev'; +import { serve, PORT as servePort } from './serve'; const logger = console; diff --git a/scripts/tasks/build.ts b/scripts/tasks/build.ts index 58cb98765b48..4a74dcba1f55 100644 --- a/scripts/tasks/build.ts +++ b/scripts/tasks/build.ts @@ -1,10 +1,11 @@ -import { pathExists } from 'fs-extra'; import dirSize from 'fast-folder-size'; -import { promisify } from 'util'; +import { pathExists } from 'fs-extra'; import { join } from 'path'; +import { promisify } from 'util'; + +import { now, saveBench } from '../bench/utils'; import type { Task } from '../task'; import { exec } from '../utils/exec'; -import { now, saveBench } from '../bench/utils'; export const build: Task = { description: 'Build the static version of the sandbox', diff --git a/scripts/tasks/compile.ts b/scripts/tasks/compile.ts index 9a5a62a3278e..ec35323b693e 100644 --- a/scripts/tasks/compile.ts +++ b/scripts/tasks/compile.ts @@ -1,9 +1,9 @@ import { readFile } from 'fs-extra'; import { resolve } from 'path'; -import { maxConcurrentTasks } from '../utils/maxConcurrentTasks'; -import { exec } from '../utils/exec'; import type { Task } from '../task'; +import { exec } from '../utils/exec'; +import { maxConcurrentTasks } from '../utils/maxConcurrentTasks'; // The amount of VCPUs for the check task on CI is 4 (large resource) const amountOfVCPUs = 4; diff --git a/scripts/tasks/dev.ts b/scripts/tasks/dev.ts index 138bb912cef8..1b9da4ba4417 100644 --- a/scripts/tasks/dev.ts +++ b/scripts/tasks/dev.ts @@ -1,9 +1,9 @@ import detectFreePort from 'detect-port'; import waitOn from 'wait-on'; +import { now, saveBench } from '../bench/utils'; import type { Task } from '../task'; import { exec } from '../utils/exec'; -import { now, saveBench } from '../bench/utils'; export const PORT = process.env.STORYBOOK_SERVE_PORT ? parseInt(process.env.STORYBOOK_SERVE_PORT, 10) diff --git a/scripts/tasks/e2e-tests-build.ts b/scripts/tasks/e2e-tests-build.ts index 873b3fcf1d93..02fed1ef31c7 100644 --- a/scripts/tasks/e2e-tests-build.ts +++ b/scripts/tasks/e2e-tests-build.ts @@ -1,4 +1,5 @@ import { dedent } from 'ts-dedent'; + import type { Task } from '../task'; import { exec } from '../utils/exec'; import { PORT } from './serve'; diff --git a/scripts/tasks/generate.ts b/scripts/tasks/generate.ts index f453fc3222e8..f2bab3751d20 100644 --- a/scripts/tasks/generate.ts +++ b/scripts/tasks/generate.ts @@ -1,9 +1,9 @@ /* eslint-disable import/extensions */ import { pathExists, remove } from 'fs-extra'; import { join } from 'path'; -import { REPROS_DIRECTORY } from '../utils/constants'; import type { Task } from '../task'; +import { REPROS_DIRECTORY } from '../utils/constants'; const logger = console; diff --git a/scripts/tasks/install.ts b/scripts/tasks/install.ts index e78130ab514f..90342845687e 100644 --- a/scripts/tasks/install.ts +++ b/scripts/tasks/install.ts @@ -1,5 +1,6 @@ import { pathExists, remove } from 'fs-extra'; import { join } from 'path'; + import type { Task } from '../task'; import { checkDependencies } from '../utils/cli-utils'; diff --git a/scripts/tasks/publish.ts b/scripts/tasks/publish.ts index cc8d018869c7..d83ffb9272b2 100644 --- a/scripts/tasks/publish.ts +++ b/scripts/tasks/publish.ts @@ -1,8 +1,8 @@ import { pathExists } from 'fs-extra'; import { resolve } from 'path'; -import { exec } from '../utils/exec'; import type { Task } from '../task'; +import { exec } from '../utils/exec'; const verdaccioCacheDir = resolve(__dirname, '../../.verdaccio-cache'); diff --git a/scripts/tasks/run-registry.ts b/scripts/tasks/run-registry.ts index cdf6d4a227a1..d877ae63eb3c 100644 --- a/scripts/tasks/run-registry.ts +++ b/scripts/tasks/run-registry.ts @@ -1,8 +1,8 @@ import detectFreePort from 'detect-port'; +import type { Task } from '../task'; import { CODE_DIRECTORY } from '../utils/constants'; import { exec } from '../utils/exec'; -import type { Task } from '../task'; export async function runRegistry({ dryRun, debug }: { dryRun?: boolean; debug?: boolean }) { const controller = new AbortController(); diff --git a/scripts/tasks/sandbox-parts.ts b/scripts/tasks/sandbox-parts.ts index 064dc7d0f3b7..6f6bfd16addc 100644 --- a/scripts/tasks/sandbox-parts.ts +++ b/scripts/tasks/sandbox-parts.ts @@ -1,48 +1,47 @@ // This file requires many imports from `../code`, which requires both an install and bootstrap of // the repo to work properly. So we load it async in the task runner *after* those steps. - import { copy, - ensureSymlink, ensureDir, + ensureSymlink, existsSync, pathExists, readFileSync, readJson, writeJson, } from 'fs-extra'; -import { join, resolve, sep } from 'path'; import JSON5 from 'json5'; +import { isFunction } from 'lodash'; import { createRequire } from 'module'; +import { join, resolve, sep } from 'path'; import slash from 'slash'; -import type { Task } from '../task'; -import { executeCLIStep, steps } from '../utils/cli-step'; -import { - installYarn2, - configureYarn2ForVerdaccio, - addPackageResolutions, - addWorkaroundResolutions, -} from '../utils/yarn'; -import { exec } from '../utils/exec'; -import type { ConfigFile } from '../../code/core/src/csf-tools'; -import { writeConfig } from '../../code/core/src/csf-tools'; -import { filterExistsInCodeDir } from '../utils/filterExistsInCodeDir'; -import { findFirstPath } from '../utils/paths'; import { detectLanguage } from '../../code/core/src/cli/detect'; import { SupportedLanguage } from '../../code/core/src/cli/project_types'; -import { updatePackageScripts } from '../utils/package-json'; -import { addPreviewAnnotations, readMainConfig } from '../utils/main-js'; import { type JsPackageManager, - versions as storybookPackages, JsPackageManagerFactory, + versions as storybookPackages, } from '../../code/core/src/common'; -import { workspacePath } from '../utils/workspace'; +import type { ConfigFile } from '../../code/core/src/csf-tools'; +import { writeConfig } from '../../code/core/src/csf-tools'; import { babelParse } from '../../code/core/src/csf-tools/babelParse'; -import { CODE_DIRECTORY, REPROS_DIRECTORY } from '../utils/constants'; import type { TemplateKey } from '../../code/lib/cli-storybook/src/sandbox-templates'; -import { isFunction } from 'lodash'; +import type { Task } from '../task'; +import { executeCLIStep, steps } from '../utils/cli-step'; +import { CODE_DIRECTORY, REPROS_DIRECTORY } from '../utils/constants'; +import { exec } from '../utils/exec'; +import { filterExistsInCodeDir } from '../utils/filterExistsInCodeDir'; +import { addPreviewAnnotations, readMainConfig } from '../utils/main-js'; +import { updatePackageScripts } from '../utils/package-json'; +import { findFirstPath } from '../utils/paths'; +import { workspacePath } from '../utils/workspace'; +import { + addPackageResolutions, + addWorkaroundResolutions, + configureYarn2ForVerdaccio, + installYarn2, +} from '../utils/yarn'; const logger = console; diff --git a/scripts/tasks/sandbox.ts b/scripts/tasks/sandbox.ts index 4dac485eacb1..3d5c7ff52c45 100644 --- a/scripts/tasks/sandbox.ts +++ b/scripts/tasks/sandbox.ts @@ -1,10 +1,10 @@ +import dirSize from 'fast-folder-size'; import { pathExists, remove } from 'fs-extra'; - import { join } from 'path'; import { promisify } from 'util'; -import dirSize from 'fast-folder-size'; -import type { Task } from '../task'; + import { now, saveBench } from '../bench/utils'; +import type { Task } from '../task'; const logger = console; diff --git a/scripts/tasks/sync-docs.ts b/scripts/tasks/sync-docs.ts index 3938c9dd1575..531c235cfa64 100644 --- a/scripts/tasks/sync-docs.ts +++ b/scripts/tasks/sync-docs.ts @@ -1,5 +1,6 @@ import fs from 'fs'; import path from 'path'; + import type { Task } from '../task'; import { ask } from '../utils/ask'; diff --git a/scripts/tasks/test-runner-dev.ts b/scripts/tasks/test-runner-dev.ts index 631ec5a42bff..79d2f8782242 100644 --- a/scripts/tasks/test-runner-dev.ts +++ b/scripts/tasks/test-runner-dev.ts @@ -1,5 +1,5 @@ -import { testRunnerBuild as testRunnerProd } from './test-runner-build'; import { PORT } from './dev'; +import { testRunnerBuild as testRunnerProd } from './test-runner-build'; export const testRunnerDev: typeof testRunnerProd = { ...testRunnerProd, diff --git a/scripts/upload-bench.ts b/scripts/upload-bench.ts index 6a30795ef1e0..9766079b9dc8 100644 --- a/scripts/upload-bench.ts +++ b/scripts/upload-bench.ts @@ -1,7 +1,7 @@ -import { join } from 'path'; import { BigQuery } from '@google-cloud/bigquery'; - import { execaCommand } from 'execa'; +import { join } from 'path'; + import type { BenchResults } from './bench/types'; import { loadBench } from './bench/utils'; import { SANDBOX_DIRECTORY } from './utils/constants'; diff --git a/scripts/utils/cli-step.ts b/scripts/utils/cli-step.ts index c05e03041891..199b1c60d2ab 100644 --- a/scripts/utils/cli-step.ts +++ b/scripts/utils/cli-step.ts @@ -1,7 +1,8 @@ import { createRequire } from 'module'; + +import { exec } from './exec'; import type { OptionSpecifier, OptionValues } from './options'; import { createOptions, getCommand } from './options'; -import { exec } from './exec'; const require = createRequire(import.meta.url); const cliExecutable = require.resolve('../../code/lib/cli/bin/index.cjs'); diff --git a/scripts/utils/cli-utils.ts b/scripts/utils/cli-utils.ts index c37f2a950d74..509c1936e01e 100644 --- a/scripts/utils/cli-utils.ts +++ b/scripts/utils/cli-utils.ts @@ -1,6 +1,6 @@ import { spawn } from 'child_process'; -import { join } from 'path'; import { existsSync } from 'fs'; +import { join } from 'path'; const logger = console; diff --git a/scripts/utils/esmain.ts b/scripts/utils/esmain.ts index edc9d07b4322..1a4c3e1a9236 100644 --- a/scripts/utils/esmain.ts +++ b/scripts/utils/esmain.ts @@ -1,6 +1,6 @@ +import { createRequire } from 'module'; import path from 'path'; import process from 'process'; -import { createRequire } from 'module'; import { fileURLToPath } from 'url'; /** diff --git a/scripts/utils/exec.ts b/scripts/utils/exec.ts index 410d90fe74ad..703477204213 100644 --- a/scripts/utils/exec.ts +++ b/scripts/utils/exec.ts @@ -1,5 +1,5 @@ -import type { ExecaChildProcess, Options } from 'execa'; import chalk from 'chalk'; +import type { ExecaChildProcess, Options } from 'execa'; import { execa } from 'execa'; const logger = console; diff --git a/scripts/utils/filterExistsInCodeDir.ts b/scripts/utils/filterExistsInCodeDir.ts index b5a6ffafc248..93d4c22e7487 100644 --- a/scripts/utils/filterExistsInCodeDir.ts +++ b/scripts/utils/filterExistsInCodeDir.ts @@ -1,5 +1,6 @@ -import path from 'path'; import { pathExists } from 'fs-extra'; +import path from 'path'; + import { CODE_DIRECTORY } from './constants'; // packageDirs of the form `lib/preview-api` diff --git a/scripts/utils/main-js.ts b/scripts/utils/main-js.ts index 6c9cd8ff5230..fa117008afc5 100644 --- a/scripts/utils/main-js.ts +++ b/scripts/utils/main-js.ts @@ -1,10 +1,10 @@ import { existsSync } from 'fs'; import { join, resolve } from 'path'; - import slash from 'slash'; + +import { getInterpretedFile } from '../../code/core/src/common'; import type { ConfigFile } from '../../code/core/src/csf-tools'; import { readConfig } from '../../code/core/src/csf-tools'; -import { getInterpretedFile } from '../../code/core/src/common'; export async function readMainConfig({ cwd }: { cwd: string }) { const configDir = join(cwd, '.storybook'); diff --git a/scripts/utils/options.test.ts b/scripts/utils/options.test.ts index 8693c557130f..8403c8b0e2db 100644 --- a/scripts/utils/options.test.ts +++ b/scripts/utils/options.test.ts @@ -1,5 +1,5 @@ -import { describe, expect, it } from 'vitest'; import { createCommand } from 'commander'; +import { describe, expect, it } from 'vitest'; import { areOptionsSatisfied, createOptions, getCommand, getOptions } from './options'; diff --git a/scripts/utils/options.ts b/scripts/utils/options.ts index d21a9f8fa004..a36f286b4141 100644 --- a/scripts/utils/options.ts +++ b/scripts/utils/options.ts @@ -1,14 +1,13 @@ /** * Use commander and prompts to gather a list of options for a script */ - -import prompts from 'prompts'; -import type { PromptObject, Falsy, PrevCaller, PromptType } from 'prompts'; -import program from 'commander'; -import { dedent } from 'ts-dedent'; import chalk from 'chalk'; +import program from 'commander'; // eslint-disable-next-line import/extensions import kebabCase from 'lodash/kebabCase.js'; +import prompts from 'prompts'; +import type { Falsy, PrevCaller, PromptObject, PromptType } from 'prompts'; +import { dedent } from 'ts-dedent'; // Option types diff --git a/scripts/utils/serve.ts b/scripts/utils/serve.ts index 8f023b3174ba..98ba1da21c63 100644 --- a/scripts/utils/serve.ts +++ b/scripts/utils/serve.ts @@ -1,6 +1,6 @@ import express from 'express'; -import serveStatic from 'serve-static'; import type { Server } from 'http'; +import serveStatic from 'serve-static'; export const serve = async (location: string, port: string): Promise => { return new Promise((resolve) => { diff --git a/scripts/utils/workspace.ts b/scripts/utils/workspace.ts index 7edef2d14f16..98a0164ec5ac 100644 --- a/scripts/utils/workspace.ts +++ b/scripts/utils/workspace.ts @@ -1,5 +1,6 @@ -import memoize from 'memoizerific'; import { execaCommand } from 'execa'; +import memoize from 'memoizerific'; + import { CODE_DIRECTORY } from './constants'; export type Workspace = { name: string; location: string }; diff --git a/scripts/utils/yarn.ts b/scripts/utils/yarn.ts index c30db6bd8c82..9b24030db7df 100644 --- a/scripts/utils/yarn.ts +++ b/scripts/utils/yarn.ts @@ -1,10 +1,10 @@ import { pathExists, readJSON, writeJSON } from 'fs-extra'; import path from 'path'; -import type { TemplateKey } from '../get-template'; -import { exec } from './exec'; // TODO -- should we generate this file a second time outside of CLI? import storybookVersions from '../../code/core/src/common/versions'; +import type { TemplateKey } from '../get-template'; +import { exec } from './exec'; import touch from './touch'; export type YarnOptions = { diff --git a/scripts/vite-ecosystem-ci/before-test.js b/scripts/vite-ecosystem-ci/before-test.js index 1ed61c71acb8..cd156422df90 100644 --- a/scripts/vite-ecosystem-ci/before-test.js +++ b/scripts/vite-ecosystem-ci/before-test.js @@ -3,7 +3,6 @@ * This is necessary because the sandbox package.json is used to run the tests and the resolutions are needed to run the tests. * The vite-ecosystem-ci, though, sets the resolutions in the root package.json. */ - import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; From a5dabc43588ce7ead9baabe0efb4eb3e1b0bc196 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 8 Aug 2024 11:28:28 +0200 Subject: [PATCH 094/135] hoist node modules to the top, if they are prefixed with `node:` --- scripts/prepare/tools.ts | 7 ++++--- scripts/prettier.config.js | 8 +++++++- scripts/strict-ts.ts | 5 +++-- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/scripts/prepare/tools.ts b/scripts/prepare/tools.ts index 4d5c8b668005..5b81ed2b3f62 100644 --- a/scripts/prepare/tools.ts +++ b/scripts/prepare/tools.ts @@ -1,12 +1,13 @@ +import { writeFile } from 'node:fs/promises'; +import { dirname, join } from 'node:path'; +import * as process from 'node:process'; + import { globalExternals } from '@fal-works/esbuild-plugin-global-externals'; import chalk from 'chalk'; import { spawn } from 'cross-spawn'; import * as esbuild from 'esbuild'; import { readJson } from 'fs-extra'; import { glob } from 'glob'; -import { writeFile } from 'node:fs/promises'; -import { dirname, join } from 'node:path'; -import * as process from 'node:process'; import limit from 'p-limit'; import * as prettier from 'prettier'; import prettyTime from 'pretty-hrtime'; diff --git a/scripts/prettier.config.js b/scripts/prettier.config.js index edfcc37eb421..385959583faa 100644 --- a/scripts/prettier.config.js +++ b/scripts/prettier.config.js @@ -16,7 +16,13 @@ export default { ], plugins: ['@trivago/prettier-plugin-sort-imports'], - importOrder: ['^node:', '^storybook/internal', '^@storybook/(.*)$', '^[./]'], + importOrder: [ + '^node:', + '^storybook/internal', + '^@storybook/(.*)$', + '', + '^[./]', + ], importOrderSeparation: true, importOrderSortSpecifiers: true, diff --git a/scripts/strict-ts.ts b/scripts/strict-ts.ts index 116c7f08b66c..ac3d30fdf16c 100644 --- a/scripts/strict-ts.ts +++ b/scripts/strict-ts.ts @@ -1,7 +1,8 @@ +import fsSync from 'node:fs'; +import path from 'node:path'; + import glob from 'fast-glob'; import JSON5 from 'json5'; -import fsSync from 'node:fs'; -import path from 'path'; const files = glob.sync('**/*/tsconfig.json', { absolute: true, From 23448ff828b2f6a79dddc77be5950e1aca0a9738 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Thu, 8 Aug 2024 12:37:16 +0200 Subject: [PATCH 095/135] Use jiti instead of esbuild-register --- code/frameworks/experimental-nextjs-vite/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/frameworks/experimental-nextjs-vite/package.json b/code/frameworks/experimental-nextjs-vite/package.json index c73bb6cd9686..69325c74045c 100644 --- a/code/frameworks/experimental-nextjs-vite/package.json +++ b/code/frameworks/experimental-nextjs-vite/package.json @@ -86,8 +86,8 @@ "!src/**/*" ], "scripts": { - "check": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/check.ts", - "prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts" + "check": "jiti ../../../scripts/prepare/check.ts", + "prep": "jiti ../../../scripts/prepare/bundle.ts" }, "dependencies": { "@storybook/builder-vite": "workspace:*", From 7108340200a29971491b3ee69a0f84720396988c Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 8 Aug 2024 12:43:59 +0200 Subject: [PATCH 096/135] tweak config a bit --- scripts/prettier.config.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/scripts/prettier.config.js b/scripts/prettier.config.js index 385959583faa..ac10a98980b5 100644 --- a/scripts/prettier.config.js +++ b/scripts/prettier.config.js @@ -13,13 +13,27 @@ export default { files: '*.component.html', options: { parser: 'angular' }, }, + { + files: ['**/frameworks/angular/src/**/*.ts', '**/frameworks/angular/template/**/*.ts'], + options: { parser: 'babel-ts' }, + }, + { + files: ['**/docs/**/*.*', '*.md'], + options: { + importOrderSeparation: false, + importOrderSortSpecifiers: false, + }, + }, ], plugins: ['@trivago/prettier-plugin-sort-imports'], importOrder: [ '^node:', + '^react$', '^storybook/internal', - '^@storybook/(.*)$', + '^@storybook/[^-]*$', + '^@storybook/(?!addon-)(.*)$', + '^@storybook/addon-(.*)$', '', '^[./]', ], From faa0cd551ff4d49d9d664b4c23612a40115dd0a8 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 8 Aug 2024 12:58:17 +0200 Subject: [PATCH 097/135] tweak config a bit --- scripts/prettier.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/prettier.config.js b/scripts/prettier.config.js index ac10a98980b5..eadd2d54fd9c 100644 --- a/scripts/prettier.config.js +++ b/scripts/prettier.config.js @@ -29,6 +29,7 @@ export default { importOrder: [ '^node:', + '^(vitest|@testing-library)', '^react$', '^storybook/internal', '^@storybook/[^-]*$', From 513bb66bb9729ece57581b6eb50e5b338c47c0b9 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Thu, 8 Aug 2024 13:00:19 +0200 Subject: [PATCH 098/135] apply sorting to code --- code/.eslintrc.js | 12 +++- code/.storybook/main.ts | 1 + code/.storybook/manager.tsx | 1 + code/.storybook/preview-head.html | 5 +- code/.storybook/preview.tsx | 18 ++--- code/addons/a11y/README.md | 2 +- code/addons/a11y/src/a11yRunner.test.ts | 4 +- code/addons/a11y/src/a11yRunner.ts | 4 +- .../a11y/src/components/A11YPanel.test.tsx | 8 +-- code/addons/a11y/src/components/A11YPanel.tsx | 14 ++-- .../a11y/src/components/A11yContext.test.tsx | 13 ++-- .../a11y/src/components/A11yContext.tsx | 10 ++- .../a11y/src/components/Report/Elements.tsx | 2 +- .../Report/HighlightToggle.test.tsx | 8 ++- .../src/components/Report/HighlightToggle.tsx | 2 + .../a11y/src/components/Report/Info.tsx | 1 + .../a11y/src/components/Report/Item.tsx | 10 +-- .../a11y/src/components/Report/Rules.tsx | 4 +- .../a11y/src/components/Report/Tags.tsx | 1 + .../a11y/src/components/Report/index.tsx | 5 +- code/addons/a11y/src/components/Tabs.tsx | 3 +- .../src/components/VisionSimulator.test.tsx | 12 ++-- .../a11y/src/components/VisionSimulator.tsx | 4 +- code/addons/a11y/src/manager.test.tsx | 3 +- code/addons/a11y/src/manager.tsx | 8 ++- code/addons/a11y/src/params.ts | 2 +- code/addons/a11y/vitest.config.ts | 1 + code/addons/actions/src/addArgs.ts | 1 + .../addons/actions/src/addArgsHelpers.test.ts | 6 +- code/addons/actions/src/addArgsHelpers.ts | 3 +- .../src/components/ActionLogger/index.tsx | 7 +- .../src/components/ActionLogger/style.tsx | 1 + .../src/containers/ActionLogger/index.tsx | 7 +- code/addons/actions/src/decorator.ts | 7 +- code/addons/actions/src/loaders.ts | 2 + code/addons/actions/src/manager.tsx | 8 ++- .../src/runtime/__tests__/action.test.js | 4 +- .../src/runtime/__tests__/actions.test.js | 4 +- .../__tests__/configureActions.test.js | 5 +- code/addons/actions/src/runtime/action.ts | 7 +- code/addons/actions/src/runtime/actions.ts | 2 +- .../template/stories/parameters.stories.ts | 1 + code/addons/actions/vitest.config.ts | 1 + .../backgrounds/src/components/Tool.tsx | 5 +- code/addons/backgrounds/src/decorator.ts | 4 +- .../src/legacy/BackgroundSelectorLegacy.tsx | 12 ++-- .../src/legacy/GridSelectorLegacy.tsx | 3 +- .../src/legacy/getBackgroundColorByName.ts | 4 +- .../src/legacy/withBackgroundLegacy.ts | 6 +- .../backgrounds/src/legacy/withGridLegacy.ts | 6 +- code/addons/backgrounds/src/manager.tsx | 3 +- code/addons/backgrounds/src/preview.ts | 5 +- code/addons/backgrounds/vitest.config.ts | 1 + code/addons/controls/src/ControlsPanel.tsx | 13 ++-- .../addons/controls/src/SaveStory.stories.tsx | 6 +- code/addons/controls/src/SaveStory.tsx | 6 +- code/addons/controls/src/manager.tsx | 8 ++- .../controls/src/preset/checkDocsLoaded.ts | 1 + .../template/stories/basics.stories.ts | 3 +- .../template/stories/conditional.stories.ts | 3 +- .../template/stories/disable.stories.ts | 3 +- .../template/stories/filters.stories.ts | 3 +- .../template/stories/issues.stories.ts | 3 +- .../template/stories/matchers.stories.ts | 3 +- .../template/stories/sorting.stories.ts | 3 +- code/addons/controls/vitest.config.ts | 1 + code/addons/docs/docs/docspage.md | 8 ++- code/addons/docs/docs/multiframework.md | 3 +- code/addons/docs/docs/props-tables.md | 1 + code/addons/docs/docs/recipes.md | 1 + code/addons/docs/docs/theming.md | 2 +- code/addons/docs/ember/README.md | 1 + code/addons/docs/src/DocsRenderer.tsx | 8 +-- code/addons/docs/src/compiler/index.test.ts | 4 +- code/addons/docs/src/plugins/mdx-plugin.ts | 6 +- code/addons/docs/src/preset.ts | 9 ++- .../stories/docs2/resolved-react.stories.ts | 2 +- .../stories/docspage/source.stories.ts | 2 +- code/addons/essentials/src/index.ts | 5 +- code/addons/essentials/vitest.config.ts | 1 + code/addons/gfm/src/index.ts | 2 +- code/addons/gfm/vitest.config.ts | 1 + code/addons/highlight/README.md | 7 -- code/addons/highlight/src/preview.ts | 8 ++- code/addons/highlight/vitest.config.ts | 1 + code/addons/interactions/README.md | 2 +- code/addons/interactions/src/Panel.test.ts | 3 +- code/addons/interactions/src/Panel.tsx | 10 +-- .../src/components/EmptyState.tsx | 6 +- .../src/components/Interaction.stories.tsx | 6 +- .../src/components/Interaction.tsx | 12 ++-- .../components/InteractionsPanel.stories.tsx | 10 +-- .../src/components/InteractionsPanel.tsx | 10 +-- .../interactions/src/components/List.tsx | 4 +- .../src/components/MatcherResult.stories.tsx | 5 +- .../src/components/MatcherResult.tsx | 2 + .../src/components/MethodCall.stories.tsx | 7 +- .../src/components/MethodCall.tsx | 9 ++- .../src/components/StatusBadge.stories.tsx | 1 + .../src/components/StatusBadge.tsx | 4 +- .../src/components/StatusIcon.stories.tsx | 1 + .../src/components/StatusIcon.tsx | 6 +- .../src/components/Subnav.stories.tsx | 6 +- .../interactions/src/components/Subnav.tsx | 11 ++-- code/addons/interactions/src/manager.tsx | 8 ++- code/addons/interactions/src/mocks/index.ts | 2 +- code/addons/interactions/src/preset.ts | 1 + code/addons/interactions/src/preview.ts | 1 + .../template/stories/basics.stories.ts | 2 +- code/addons/interactions/vitest.config.ts | 1 + code/addons/jest/README.md | 14 +--- code/addons/jest/src/components/Message.tsx | 1 + code/addons/jest/src/components/Panel.tsx | 9 ++- code/addons/jest/src/components/Result.tsx | 7 +- .../addons/jest/src/hoc/provideJestResult.tsx | 2 + code/addons/jest/src/index.ts | 2 + code/addons/jest/src/manager.tsx | 3 +- code/addons/jest/src/shared.test.ts | 1 + code/addons/jest/src/shared.ts | 3 +- code/addons/jest/vitest.config.ts | 1 + code/addons/links/README.md | 2 +- code/addons/links/src/preview.ts | 1 + .../links/src/react/components/link.test.tsx | 12 ++-- .../links/src/react/components/link.tsx | 5 +- code/addons/links/src/utils.test.ts | 6 +- code/addons/links/src/utils.ts | 8 ++- .../template/stories/decorator.stories.ts | 1 + .../links/template/stories/linkto.stories.ts | 1 + code/addons/links/vitest.config.ts | 1 + code/addons/measure/src/Tool.tsx | 7 +- code/addons/measure/src/box-model/canvas.ts | 1 + .../measure/src/box-model/visualizer.ts | 1 + code/addons/measure/src/manager.tsx | 3 +- code/addons/measure/src/preview.tsx | 3 +- code/addons/measure/src/withMeasure.ts | 5 +- code/addons/measure/vitest.config.ts | 1 + code/addons/onboarding/src/Onboarding.tsx | 9 +-- .../src/components/Button/Button.stories.tsx | 1 + .../src/components/Button/Button.tsx | 1 + .../components/Confetti/Confetti.stories.tsx | 4 +- .../src/components/Confetti/Confetti.tsx | 6 +- .../HighlightElement.stories.tsx | 6 +- .../src/components/List/List.stories.tsx | 3 +- .../onboarding/src/components/List/List.tsx | 1 + .../src/components/List/ListItem/ListItem.tsx | 4 +- .../src/features/GuidedTour/GuidedTour.tsx | 6 +- .../src/features/GuidedTour/Tooltip.tsx | 7 +- .../SplashScreen/SplashScreen.stories.tsx | 1 + .../features/SplashScreen/SplashScreen.tsx | 6 +- code/addons/onboarding/src/manager.tsx | 8 ++- code/addons/onboarding/src/preset.ts | 6 +- code/addons/onboarding/vitest.config.ts | 1 + code/addons/outline/src/OutlineSelector.tsx | 5 +- code/addons/outline/src/manager.tsx | 3 +- code/addons/outline/src/preview.tsx | 3 +- code/addons/outline/src/withOutline.ts | 6 +- code/addons/outline/vitest.config.ts | 1 + code/addons/storysource/src/StoryPanel.tsx | 13 ++-- code/addons/storysource/src/manager.tsx | 1 + code/addons/storysource/vitest.config.ts | 1 + code/addons/themes/docs/api.md | 5 +- .../decorators/data-attribute.decorator.tsx | 1 + code/addons/themes/src/decorators/helpers.ts | 3 +- .../src/decorators/provider.decorator.tsx | 1 + code/addons/themes/src/preview.tsx | 3 +- code/addons/themes/src/theme-switcher.tsx | 12 ++-- .../template/stories/decorators.stories.ts | 4 +- .../template/stories/globals.stories.ts | 4 +- .../template/stories/parameters.stories.ts | 4 +- code/addons/themes/vitest.config.ts | 1 + .../src/components/ToolbarManager.tsx | 8 ++- .../src/components/ToolbarMenuButton.tsx | 3 +- .../src/components/ToolbarMenuList.tsx | 10 +-- .../src/components/ToolbarMenuListItem.tsx | 2 + .../toolbars/src/hoc/withKeyboardCycle.tsx | 6 +- code/addons/toolbars/src/manager.tsx | 2 + .../toolbars/src/utils/register-shortcuts.ts | 1 + .../template/stories/globals.stories.ts | 3 +- code/addons/toolbars/vitest.config.ts | 1 + code/addons/viewport/src/components/Tool.tsx | 19 +++--- .../addons/viewport/src/legacy/ToolLegacy.tsx | 19 +++--- code/addons/viewport/src/manager.tsx | 4 +- code/addons/viewport/src/shortcuts.ts | 1 + code/addons/viewport/src/utils.tsx | 3 +- .../template/stories/globals.stories.ts | 1 + .../template/stories/parameters.stories.ts | 1 + code/addons/viewport/vitest.config.ts | 1 + code/builders/builder-vite/README.md | 4 +- code/builders/builder-vite/src/build.ts | 7 +- .../src/codegen-importfn-script.ts | 4 +- .../src/codegen-modern-iframe-script.ts | 5 +- code/builders/builder-vite/src/envs.ts | 3 +- code/builders/builder-vite/src/index.ts | 13 ++-- .../builders/builder-vite/src/list-stories.ts | 8 +-- .../builders/builder-vite/src/optimizeDeps.ts | 6 +- .../src/plugins/code-generator-plugin.ts | 9 +-- .../builder-vite/src/plugins/csf-plugin.ts | 6 +- .../plugins/external-globals-plugin.test.ts | 3 +- .../src/plugins/external-globals-plugin.ts | 5 +- .../src/plugins/strip-story-hmr-boundaries.ts | 2 +- .../src/plugins/webpack-stats-plugin.ts | 2 +- .../builder-vite/src/transform-iframe-html.ts | 2 +- code/builders/builder-vite/src/types.ts | 3 +- .../src/utils/has-vite-plugins.test.ts | 3 +- .../utils/process-preview-annotation.test.ts | 5 +- .../src/utils/process-preview-annotation.ts | 5 +- .../src/utils/without-vite-plugins.test.ts | 3 +- .../builder-vite/src/vite-config.test.ts | 5 +- code/builders/builder-vite/src/vite-config.ts | 27 ++++---- code/builders/builder-vite/src/vite-server.ts | 10 +-- code/builders/builder-vite/vitest.config.ts | 1 + code/builders/builder-webpack5/src/index.ts | 23 +++---- .../src/loaders/export-order-loader.ts | 3 +- .../src/presets/custom-webpack-preset.ts | 7 +- .../src/preview/base-webpack.config.ts | 1 + .../src/preview/iframe-webpack.config.ts | 31 +++++---- .../src/preview/virtual-module-mapping.ts | 9 ++- code/builders/builder-webpack5/src/types.ts | 4 +- .../builder-webpack5/vitest.config.ts | 1 + code/core/scripts/check.ts | 2 +- code/core/scripts/dts.ts | 5 +- code/core/scripts/helpers/dependencies.ts | 3 +- .../helpers/generatePackageJsonFile.ts | 6 +- .../scripts/helpers/generateTypesFiles.ts | 3 +- .../helpers/generateTypesMapperFiles.ts | 8 ++- code/core/scripts/helpers/modifyThemeTypes.ts | 3 +- code/core/scripts/helpers/sourcefiles.ts | 7 +- code/core/scripts/helpers/typescript.ts | 1 + code/core/scripts/prep.ts | 30 ++++----- code/core/src/ERRORS.md | 1 + code/core/src/__tests/preview-errors.test.ts | 3 +- code/core/src/__tests/server-errors.test.ts | 3 +- code/core/src/__tests/storybook-error.test.ts | 3 +- code/core/src/builder-manager/index.ts | 16 ++--- code/core/src/builder-manager/types.ts | 2 +- code/core/src/builder-manager/utils/data.ts | 6 +- .../src/builder-manager/utils/files.test.ts | 4 +- code/core/src/builder-manager/utils/files.ts | 4 +- .../builder-manager/utils/framework.test.ts | 3 +- .../src/builder-manager/utils/framework.ts | 3 +- .../builder-manager/utils/managerEntries.ts | 6 +- .../src/builder-manager/utils/template.ts | 6 +- code/core/src/channels/index.test.ts | 3 +- code/core/src/channels/index.ts | 2 +- code/core/src/channels/main.ts | 6 +- code/core/src/channels/postmessage/index.ts | 10 +-- code/core/src/channels/websocket/index.ts | 7 +- code/core/src/cli/angular/helpers.ts | 7 +- code/core/src/cli/bin/index.ts | 15 +++-- code/core/src/cli/build.ts | 6 +- code/core/src/cli/detect.test.ts | 10 ++- code/core/src/cli/detect.ts | 21 +++--- code/core/src/cli/dev.ts | 10 +-- code/core/src/cli/dirs.ts | 10 +-- code/core/src/cli/eslintPlugin.test.ts | 3 +- code/core/src/cli/eslintPlugin.ts | 16 +++-- code/core/src/cli/helpers.test.ts | 10 +-- code/core/src/cli/helpers.ts | 21 +++--- code/core/src/cli/project_types.test.ts | 5 +- code/core/src/cli/project_types.ts | 5 +- code/core/src/client-logger/index.test.ts | 3 +- code/core/src/common/config.test.ts | 3 +- code/core/src/common/index.ts | 3 +- .../js-package-manager/JsPackageManager.ts | 17 ++--- .../JsPackageManagerFactory.test.ts | 7 +- .../JsPackageManagerFactory.ts | 7 +- .../js-package-manager/NPMProxy.test.ts | 3 +- .../src/common/js-package-manager/NPMProxy.ts | 12 ++-- .../js-package-manager/PNPMProxy.test.ts | 3 +- .../common/js-package-manager/PNPMProxy.ts | 10 +-- .../js-package-manager/Yarn1Proxy.test.ts | 4 +- .../common/js-package-manager/Yarn1Proxy.ts | 6 +- .../js-package-manager/Yarn2Proxy.test.ts | 3 +- .../common/js-package-manager/Yarn2Proxy.ts | 8 ++- code/core/src/common/presets.test.ts | 10 ++- code/core/src/common/presets.ts | 18 +++-- .../utils/__tests__/check-addon-order.test.ts | 7 +- .../utils/__tests__/interpret-files.test.ts | 4 +- .../utils/__tests__/normalize-stories.test.ts | 4 +- .../src/common/utils/__tests__/paths.test.ts | 7 +- .../common/utils/__tests__/template.test.ts | 9 ++- code/core/src/common/utils/cli.test.ts | 3 +- code/core/src/common/utils/cli.ts | 17 ++--- code/core/src/common/utils/envs.ts | 1 + code/core/src/common/utils/formatter.test.ts | 6 +- .../common/utils/get-framework-name.test.ts | 1 + .../src/common/utils/get-framework-name.ts | 4 +- .../common/utils/get-renderer-name.test.ts | 1 + .../src/common/utils/get-renderer-name.ts | 5 +- .../utils/get-storybook-configuration.test.ts | 3 +- .../src/common/utils/get-storybook-info.ts | 7 +- .../src/common/utils/get-storybook-refs.ts | 10 +-- .../src/common/utils/load-custom-presets.ts | 4 +- .../core/src/common/utils/load-main-config.ts | 10 ++- .../utils/load-manager-or-addons-file.ts | 2 + .../utils/load-preview-or-config-file.ts | 1 + .../src/common/utils/normalize-path.test.ts | 3 +- .../src/common/utils/normalize-stories.ts | 9 ++- .../core/src/common/utils/notify-telemetry.ts | 1 + code/core/src/common/utils/paths.ts | 1 + code/core/src/common/utils/remove.ts | 4 +- .../common/utils/resolve-path-in-sb-cache.ts | 1 + .../utils/strip-abs-node-modules-path.ts | 1 + code/core/src/common/utils/template.ts | 2 +- .../src/common/utils/validate-config.test.ts | 3 +- code/core/src/common/utils/validate-config.ts | 4 +- .../utils/validate-configuration-files.ts | 10 +-- .../ActionBar/ActionBar.stories.tsx | 1 + .../components/Badge/Badge.stories.tsx | 1 + .../src/components/components/Badge/Badge.tsx | 2 + .../Button/Button.deprecated.stories.tsx | 6 +- .../components/Button/Button.stories.tsx | 4 +- .../components/components/Button/Button.tsx | 7 +- .../ErrorFormatter/ErrorFormatter.stories.tsx | 4 +- .../ErrorFormatter/ErrorFormatter.tsx | 4 +- .../IconButton/IconButton.stories.tsx | 4 +- .../components/IconButton/IconButton.tsx | 1 + .../components/Loader/Loader.stories.tsx | 1 + .../components/components/Loader/Loader.tsx | 9 ++- .../components/Modal/Modal.stories.tsx | 5 +- .../components/Modal/Modal.styled.tsx | 8 ++- .../src/components/components/Modal/Modal.tsx | 2 + .../ScrollArea/ScrollArea.stories.tsx | 2 + .../components/ScrollArea/ScrollArea.tsx | 2 + .../components/Zoom/Zoom.stories.tsx | 1 + .../components/Zoom/ZoomElement.tsx | 6 +- .../components/components/Zoom/ZoomIFrame.tsx | 2 +- .../components/addon-panel/addon-panel.tsx | 2 +- .../src/components/components/bar/bar.tsx | 1 + .../src/components/components/bar/button.tsx | 5 +- .../components/components/bar/separator.tsx | 1 + .../components/clipboard/ClipboardCode.tsx | 1 + .../components/form/field/field.tsx | 1 + .../components/form/form.stories.tsx | 4 +- .../src/components/components/form/index.tsx | 3 +- .../components/form/input/input.tsx | 1 + .../components/icon/icon.stories.tsx | 3 +- .../src/components/components/icon/icon.tsx | 3 +- .../placeholder/placeholder.stories.tsx | 2 +- .../components/placeholder/placeholder.tsx | 1 + .../components/spaced/Spaced.stories.tsx | 1 + .../components/components/spaced/Spaced.tsx | 3 +- .../syntaxhighlighter/formatter.test.ts | 3 +- .../components/syntaxhighlighter/formatter.ts | 2 +- .../lazy-syntaxhighlighter.tsx | 2 +- .../syntaxhighlighter-types.ts | 4 +- .../syntaxhighlighter.stories.tsx | 5 +- .../syntaxhighlighter/syntaxhighlighter.tsx | 20 +++--- .../tabs/EmptyTabContent.stories.tsx | 6 +- .../components/tabs/EmptyTabContent.tsx | 1 + .../components/tabs/tabs.helpers.tsx | 4 +- .../components/components/tabs/tabs.hooks.tsx | 7 +- .../components/tabs/tabs.stories.tsx | 15 +++-- .../src/components/components/tabs/tabs.tsx | 11 ++-- .../components/tooltip/ListItem.stories.tsx | 2 + .../components/tooltip/ListItem.tsx | 4 +- .../components/tooltip/Tooltip.stories.tsx | 2 + .../components/components/tooltip/Tooltip.tsx | 5 +- .../tooltip/TooltipLinkList.stories.tsx | 9 ++- .../components/tooltip/TooltipLinkList.tsx | 1 + .../tooltip/TooltipMessage.stories.tsx | 4 +- .../components/tooltip/TooltipMessage.tsx | 1 + .../tooltip/TooltipNote.stories.tsx | 3 +- .../components/tooltip/TooltipNote.tsx | 1 + .../tooltip/WithTooltip.stories.tsx | 6 +- .../components/tooltip/WithTooltip.tsx | 8 ++- .../components/tooltip/lazy-WithTooltip.tsx | 2 +- .../components/typography/ResetWrapper.tsx | 1 + .../components/typography/components.tsx | 13 ++-- .../components/typography/elements/A.tsx | 1 + .../typography/elements/Blockquote.tsx | 3 +- .../components/typography/elements/Code.tsx | 8 ++- .../components/typography/elements/DL.tsx | 3 +- .../components/typography/elements/Div.tsx | 1 + .../components/typography/elements/H1.tsx | 3 +- .../components/typography/elements/H2.tsx | 3 +- .../components/typography/elements/H3.tsx | 3 +- .../components/typography/elements/H4.tsx | 3 +- .../components/typography/elements/H5.tsx | 3 +- .../components/typography/elements/H6.tsx | 3 +- .../components/typography/elements/LI.tsx | 3 +- .../components/typography/elements/OL.tsx | 3 +- .../components/typography/elements/P.tsx | 3 +- .../components/typography/elements/Pre.tsx | 3 +- .../components/typography/elements/Span.tsx | 1 + .../components/typography/elements/TT.tsx | 1 + .../components/typography/elements/Table.tsx | 3 +- .../components/typography/elements/UL.tsx | 3 +- .../components/typography/lib/common.tsx | 3 +- .../typography/link/link.stories.tsx | 5 +- .../components/typography/link/link.test.tsx | 10 +-- .../components/typography/link/link.tsx | 4 +- code/core/src/components/index.ts | 2 +- code/core/src/core-events/index.test.ts | 3 +- code/core/src/core-server/build-dev.ts | 25 +++---- code/core/src/core-server/build-static.ts | 23 ++++--- code/core/src/core-server/dev-server.ts | 31 +++++---- .../presets/common-override-preset.ts | 1 + .../src/core-server/presets/common-preset.ts | 24 ++++--- .../src/core-server/presets/favicon.test.ts | 9 ++- .../create-new-story-channel.test.ts | 8 ++- .../create-new-story-channel.ts | 11 ++-- .../file-search-channel.test.ts | 7 +- .../server-channel/file-search-channel.ts | 15 +++-- code/core/src/core-server/standalone.ts | 5 +- .../utils/StoryIndexGenerator.test.ts | 9 +-- .../core-server/utils/StoryIndexGenerator.ts | 39 ++++++----- .../utils/__tests__/IndexingError.test.ts | 3 +- .../utils/__tests__/autoName.test.ts | 3 +- .../utils/__tests__/index-extraction.test.ts | 5 +- .../__tests__/remove-mdx-stories.test.ts | 12 ++-- .../utils/__tests__/server-address.test.ts | 4 +- .../utils/__tests__/server-channel.test.ts | 8 ++- .../utils/__tests__/server-statics.test.ts | 7 +- code/core/src/core-server/utils/autoName.ts | 3 +- .../utils/copy-all-static-files.ts | 10 ++- .../core/src/core-server/utils/doTelemetry.ts | 12 ++-- .../src/core-server/utils/get-builders.ts | 4 +- .../utils/get-component-variable-name.test.ts | 1 + .../utils/get-new-story-file.test.ts | 4 +- .../core-server/utils/get-new-story-file.ts | 13 ++-- .../core-server/utils/get-server-channel.ts | 5 +- .../core-server/utils/get-story-id.test.ts | 2 + .../src/core-server/utils/get-story-id.ts | 10 ++- .../utils/getStoryIndexGenerator.ts | 7 +- code/core/src/core-server/utils/metadata.ts | 5 +- code/core/src/core-server/utils/middleware.ts | 2 +- .../new-story-templates/javascript.test.ts | 1 + .../utils/new-story-templates/javascript.ts | 1 + .../new-story-templates/typescript.test.ts | 1 + .../utils/new-story-templates/typescript.ts | 1 + .../src/core-server/utils/open-in-browser.ts | 6 +- .../utils/output-startup-information.ts | 9 ++- .../src/core-server/utils/output-stats.ts | 9 ++- .../utils/parser/generic-parser.test.ts | 6 +- .../utils/parser/generic-parser.ts | 2 +- .../src/core-server/utils/parser/index.ts | 1 + code/core/src/core-server/utils/posix.test.ts | 1 + .../core-server/utils/remove-mdx-entries.ts | 8 ++- .../duplicate-story-with-new-name.test.ts | 11 ++-- .../duplicate-story-with-new-name.ts | 4 +- .../mocks/csf-variances.stories.tsx | 1 + .../mocks/data-variances.stories.tsx | 1 + .../mocks/export-variances.stories.tsx | 1 + .../mocks/typescript-constructs.stories.tsx | 1 + .../unsupported-csf-variances.stories.tsx | 1 + .../utils/save-story/save-story.ts | 14 ++-- .../update-args-in-csf-file.test.ts | 11 ++-- .../save-story/update-args-in-csf-file.ts | 5 +- .../utils/save-story/valueToAST.ts | 2 +- .../core-server/utils/search-files.test.ts | 4 +- .../core-server/utils/server-address.test.ts | 6 +- .../src/core-server/utils/server-address.ts | 4 +- .../core/src/core-server/utils/server-init.ts | 1 + .../src/core-server/utils/server-statics.ts | 10 +-- .../core-server/utils/stories-json.test.ts | 21 +++--- .../src/core-server/utils/stories-json.ts | 10 +-- .../core-server/utils/summarizeIndex.test.ts | 3 +- .../src/core-server/utils/summarizeIndex.ts | 2 +- .../core-server/utils/summarizeStats.test.ts | 3 +- .../src/core-server/utils/update-check.ts | 8 ++- .../utils/warnOnIncompatibleAddons.ts | 3 +- .../utils/warnWhenUsingArgTypesRegex.ts | 10 +-- .../utils/watch-story-specifiers.test.ts | 7 +- .../utils/watch-story-specifiers.ts | 7 +- .../core/src/core-server/utils/watchConfig.ts | 3 +- code/core/src/core-server/utils/whats-new.ts | 15 +++-- .../src/core-server/withTelemetry.test.ts | 8 ++- code/core/src/core-server/withTelemetry.ts | 10 +-- code/core/src/csf-tools/ConfigFile.test.ts | 4 +- code/core/src/csf-tools/ConfigFile.ts | 7 +- code/core/src/csf-tools/CsfFile.test.ts | 8 ++- code/core/src/csf-tools/CsfFile.ts | 24 +++---- code/core/src/csf-tools/babelParse.ts | 4 +- code/core/src/csf-tools/enrichCsf.test.ts | 4 +- code/core/src/csf-tools/enrichCsf.ts | 2 +- .../csf-tools/getStorySortParameter.test.ts | 4 +- .../src/csf-tools/getStorySortParameter.ts | 6 +- .../__testfixtures__/proptypes/arrays.js | 1 + .../__testfixtures__/proptypes/enums.js | 1 + .../__testfixtures__/proptypes/misc.js | 1 + .../__testfixtures__/proptypes/objects.js | 1 + .../__testfixtures__/proptypes/react.js | 1 + .../__testfixtures__/proptypes/scalars.js | 1 + .../argTypes/convert/convert.test.ts | 10 +-- .../argTypes/convert/flow/convert.ts | 6 +- .../src/docs-tools/argTypes/convert/index.ts | 4 +- .../argTypes/convert/proptypes/convert.ts | 6 +- .../argTypes/convert/typescript/convert.ts | 6 +- .../argTypes/docgen/createPropDef.ts | 13 ++-- .../docgen/extractDocgenProps.test.ts | 2 +- .../argTypes/docgen/extractDocgenProps.ts | 9 ++- .../docgen/flow/createDefaultValue.ts | 3 +- .../docgen/flow/createPropDef.test.ts | 5 +- .../argTypes/docgen/flow/createPropDef.ts | 4 +- .../argTypes/docgen/flow/createType.ts | 3 +- .../docgen/typeScript/createDefaultValue.ts | 3 +- .../docgen/typeScript/createPropDef.test.ts | 5 +- .../docgen/typeScript/createPropDef.ts | 4 +- .../argTypes/docgen/typeScript/createType.ts | 3 +- .../src/docs-tools/argTypes/docgen/types.ts | 3 +- .../argTypes/docgen/utils/docgenInfo.ts | 1 - .../argTypes/enhanceArgTypes.test.ts | 4 +- .../docs-tools/argTypes/enhanceArgTypes.ts | 1 + .../docs-tools/argTypes/jsdocParser.test.ts | 3 +- .../src/docs-tools/argTypes/jsdocParser.ts | 5 +- .../src/docs-tools/argTypes/utils.test.ts | 3 +- code/core/src/manager-api/context.ts | 1 + code/core/src/manager-api/initial-state.ts | 1 - code/core/src/manager-api/lib/addons.ts | 15 +++-- code/core/src/manager-api/lib/events.ts | 4 +- code/core/src/manager-api/lib/merge.ts | 6 +- code/core/src/manager-api/lib/shortcut.ts | 1 + code/core/src/manager-api/lib/store-setup.ts | 1 - code/core/src/manager-api/lib/stories.test.ts | 8 ++- code/core/src/manager-api/lib/stories.ts | 37 ++++++----- code/core/src/manager-api/lib/types.tsx | 2 +- code/core/src/manager-api/modules/addons.ts | 3 +- code/core/src/manager-api/modules/channel.ts | 4 +- code/core/src/manager-api/modules/globals.ts | 13 ++-- code/core/src/manager-api/modules/layout.ts | 14 ++-- .../src/manager-api/modules/notifications.ts | 2 + code/core/src/manager-api/modules/provider.ts | 1 + code/core/src/manager-api/modules/refs.ts | 10 +-- code/core/src/manager-api/modules/settings.ts | 1 + .../core/src/manager-api/modules/shortcuts.ts | 6 +- code/core/src/manager-api/modules/stories.ts | 65 +++++++++---------- code/core/src/manager-api/modules/url.ts | 14 ++-- code/core/src/manager-api/modules/versions.ts | 8 +-- .../core/src/manager-api/modules/whatsnew.tsx | 5 +- code/core/src/manager-api/root.tsx | 47 ++++++-------- code/core/src/manager-api/store.ts | 2 +- .../core/src/manager-api/tests/addons.test.js | 4 +- .../core/src/manager-api/tests/events.test.ts | 3 +- .../src/manager-api/tests/globals.test.ts | 22 ++++--- .../core/src/manager-api/tests/layout.test.ts | 10 +-- .../manager-api/tests/mockStoriesEntries.ts | 2 +- .../manager-api/tests/notifications.test.js | 3 +- code/core/src/manager-api/tests/refs.test.ts | 8 ++- .../src/manager-api/tests/shortcut.test.js | 1 + .../src/manager-api/tests/shortcuts.test.js | 3 +- code/core/src/manager-api/tests/store.test.js | 6 +- .../src/manager-api/tests/stories.test.ts | 32 ++++----- code/core/src/manager-api/tests/url.test.js | 5 +- .../src/manager-api/tests/versions.test.js | 3 +- code/core/src/manager/App.tsx | 7 +- code/core/src/manager/FakeProvider.tsx | 3 + code/core/src/manager/README.md | 2 +- code/core/src/manager/__tests__/index.test.ts | 2 +- .../components/layout/Layout.stories.tsx | 8 ++- .../src/manager/components/layout/Layout.tsx | 10 +-- .../components/layout/LayoutProvider.tsx | 3 +- .../manager/components/layout/useDragging.ts | 1 + .../mobile/about/MobileAbout.stories.tsx | 9 ++- .../components/mobile/about/MobileAbout.tsx | 9 ++- .../mobile/navigation/MobileAddonsDrawer.tsx | 1 + .../mobile/navigation/MobileMenuDrawer.tsx | 5 +- .../navigation/MobileNavigation.stories.tsx | 10 ++- .../mobile/navigation/MobileNavigation.tsx | 11 ++-- .../NotificationItem.stories.tsx | 9 ++- .../notifications/NotificationItem.tsx | 11 ++-- .../NotificationList.stories.tsx | 3 +- .../notifications/NotificationList.tsx | 7 +- .../components/panel/Panel.stories.tsx | 7 +- .../src/manager/components/panel/Panel.tsx | 11 ++-- .../components/preview/FramesRenderer.tsx | 11 ++-- .../src/manager/components/preview/Iframe.tsx | 3 +- .../manager/components/preview/Preview.tsx | 18 ++--- .../manager/components/preview/Toolbar.tsx | 25 ++++--- .../manager/components/preview/Wrappers.tsx | 4 +- .../components/preview/tools/addons.tsx | 6 +- .../manager/components/preview/tools/copy.tsx | 13 ++-- .../components/preview/tools/eject.tsx | 10 +-- .../manager/components/preview/tools/menu.tsx | 6 +- .../components/preview/tools/remount.tsx | 8 ++- .../manager/components/preview/tools/zoom.tsx | 5 +- .../components/preview/utils/components.ts | 2 +- .../components/preview/utils/types.tsx | 6 +- .../src/manager/components/sidebar/Brand.tsx | 2 +- .../sidebar/CreateNewStoryFileModal.tsx | 4 +- .../components/sidebar/Explorer.stories.tsx | 4 +- .../manager/components/sidebar/Explorer.tsx | 3 +- .../manager/components/sidebar/FileList.tsx | 1 + .../sidebar/FileSearchList.stories.tsx | 2 +- .../components/sidebar/FileSearchList.tsx | 24 ++++--- .../sidebar/FileSearchListSkeleton.tsx | 2 + .../sidebar/FileSearchModal.stories.tsx | 7 +- .../components/sidebar/FileSearchModal.tsx | 5 +- .../sidebar/FileSearchModal.utils.test.tsx | 4 +- .../components/sidebar/Heading.stories.tsx | 6 +- .../manager/components/sidebar/Heading.tsx | 7 +- .../components/sidebar/HighlightStyles.tsx | 5 +- .../components/sidebar/IconSymbols.tsx | 3 +- .../src/manager/components/sidebar/Loader.tsx | 1 + .../components/sidebar/Menu.stories.tsx | 10 +-- .../src/manager/components/sidebar/Menu.tsx | 8 ++- .../manager/components/sidebar/RefBlocks.tsx | 13 ++-- .../components/sidebar/RefIndicator.tsx | 15 +++-- .../components/sidebar/Refs.stories.tsx | 5 +- .../src/manager/components/sidebar/Refs.tsx | 19 +++--- .../components/sidebar/Search.stories.tsx | 9 ++- .../src/manager/components/sidebar/Search.tsx | 29 +++++---- .../sidebar/SearchResults.stories.tsx | 7 +- .../components/sidebar/SearchResults.tsx | 22 ++++--- .../components/sidebar/Sidebar.stories.tsx | 18 ++--- .../manager/components/sidebar/Sidebar.tsx | 16 ++--- .../components/sidebar/Tree.stories.tsx | 9 ++- .../src/manager/components/sidebar/Tree.tsx | 38 +++++------ .../components/sidebar/TreeNode.stories.tsx | 4 +- .../manager/components/sidebar/TreeNode.tsx | 7 +- .../sidebar/__tests__/Sidebar.test.tsx | 12 ++-- .../sidebar/components/CollapseIcon.tsx | 4 +- .../components/sidebar/mockdata.large.ts | 1 - .../src/manager/components/sidebar/types.ts | 6 +- .../manager/components/sidebar/useExpanded.ts | 15 +++-- .../components/sidebar/useHighlighted.ts | 11 ++-- .../components/sidebar/useLastViewed.ts | 3 +- .../upgrade/UpgradeBlock.stories.tsx | 7 +- .../components/upgrade/UpgradeBlock.tsx | 5 +- .../src/manager/container/Menu.stories.tsx | 7 +- code/core/src/manager/container/Menu.tsx | 5 +- code/core/src/manager/container/Panel.tsx | 7 +- code/core/src/manager/container/Preview.tsx | 17 ++--- code/core/src/manager/container/Sidebar.tsx | 3 +- code/core/src/manager/globals-runtime.ts | 2 +- .../manager/globals/globals-module-info.ts | 1 + code/core/src/manager/globals/runtime.ts | 17 ++--- code/core/src/manager/index.tsx | 14 ++-- code/core/src/manager/runtime.ts | 11 ++-- code/core/src/manager/settings/About.tsx | 3 +- .../settings/SettingsFooter.stories.tsx | 1 + .../src/manager/settings/SettingsFooter.tsx | 2 +- .../src/manager/settings/about.stories.tsx | 8 ++- code/core/src/manager/settings/index.tsx | 14 ++-- .../manager/settings/shortcuts.stories.tsx | 6 +- code/core/src/manager/settings/shortcuts.tsx | 10 +-- code/core/src/manager/settings/whats_new.tsx | 8 ++- .../settings/whats_new_footer.stories.tsx | 1 + .../src/manager/utils/prepareForTelemetry.ts | 4 +- code/core/src/manager/utils/status.test.ts | 4 +- code/core/src/manager/utils/status.tsx | 4 +- code/core/src/manager/utils/tree.test.js | 3 +- code/core/src/manager/utils/tree.ts | 9 ++- code/core/src/node-logger/index.test.ts | 4 +- code/core/src/node-logger/index.ts | 3 +- code/core/src/preview-api/Errors.stories.tsx | 1 + code/core/src/preview-api/README-store.md | 8 ++- .../preview-api/modules/addons/hooks.test.js | 3 +- .../src/preview-api/modules/addons/hooks.ts | 22 ++++--- .../src/preview-api/modules/addons/main.ts | 2 +- .../modules/addons/make-decorator.test.ts | 4 +- .../modules/preview-web/Preview.tsx | 41 ++++++------ .../PreviewWeb.integration.test.ts | 17 ++--- .../preview-web/PreviewWeb.mockdata.ts | 20 +++--- .../modules/preview-web/PreviewWeb.test.ts | 32 ++++----- .../modules/preview-web/PreviewWeb.tsx | 6 +- .../preview-web/PreviewWithSelection.tsx | 25 +++---- .../modules/preview-web/SelectionStore.ts | 1 + .../modules/preview-web/UrlStore.test.ts | 5 +- .../modules/preview-web/UrlStore.ts | 5 +- .../modules/preview-web/WebView.ts | 6 +- .../docs-context/DocsContext.test.ts | 5 +- .../preview-web/docs-context/DocsContext.ts | 9 +-- .../preview-web/parseArgsParam.test.ts | 3 +- .../modules/preview-web/parseArgsParam.ts | 8 ++- .../preview-web/render/CsfDocsRender.test.ts | 11 ++-- .../preview-web/render/CsfDocsRender.ts | 17 ++--- .../preview-web/render/MdxDocsRender.test.ts | 11 ++-- .../preview-web/render/MdxDocsRender.ts | 17 ++--- .../preview-web/render/StoryRender.test.ts | 5 +- .../modules/preview-web/render/StoryRender.ts | 25 +++---- .../preview-web/render/mount-utils.test.ts | 1 + .../preview-web/simulate-pageload.test.ts | 3 +- .../modules/store/ArgsStore.test.ts | 2 +- .../preview-api/modules/store/ArgsStore.ts | 3 +- .../modules/store/GlobalsStore.test.ts | 3 +- .../preview-api/modules/store/GlobalsStore.ts | 5 +- .../modules/store/StoryIndexStore.test.ts | 3 +- .../modules/store/StoryIndexStore.ts | 6 +- .../modules/store/StoryStore.test.ts | 9 +-- .../preview-api/modules/store/StoryStore.ts | 46 ++++++------- .../preview-api/modules/store/args.test.ts | 8 ++- .../src/preview-api/modules/store/args.ts | 10 +-- .../modules/store/autoTitle.test.ts | 3 +- .../preview-api/modules/store/autoTitle.ts | 6 +- .../modules/store/csf/beforeAll.test.ts | 1 + .../modules/store/csf/composeConfigs.test.ts | 3 +- .../modules/store/csf/composeConfigs.ts | 4 +- .../csf/normalizeComponentAnnotations.ts | 4 +- .../store/csf/normalizeInputTypes.test.ts | 2 +- .../modules/store/csf/normalizeInputTypes.ts | 1 + .../csf/normalizeProjectAnnotations.test.ts | 2 +- .../store/csf/normalizeProjectAnnotations.ts | 10 +-- .../modules/store/csf/normalizeStory.test.ts | 3 +- .../modules/store/csf/normalizeStory.ts | 15 +++-- .../store/csf/portable-stories.test.ts | 9 +-- .../modules/store/csf/portable-stories.ts | 17 +++-- .../modules/store/csf/prepareStory.test.ts | 7 +- .../modules/store/csf/prepareStory.ts | 21 +++--- .../modules/store/csf/processCSFFile.test.ts | 2 +- .../modules/store/csf/processCSFFile.ts | 7 +- .../modules/store/csf/stepRunners.test.ts | 6 +- .../modules/store/decorators.test.ts | 3 +- .../modules/store/filterArgTypes.ts | 1 + .../preview-api/modules/store/hooks.test.ts | 26 ++++---- .../src/preview-api/modules/store/hooks.ts | 14 ++-- .../modules/store/inferArgTypes.test.ts | 3 +- .../modules/store/inferArgTypes.ts | 7 +- .../modules/store/inferControls.test.ts | 6 +- .../modules/store/inferControls.ts | 11 ++-- .../modules/store/parameters.test.ts | 3 +- .../preview-api/modules/store/parameters.ts | 1 + .../preview-api/modules/store/sortStories.ts | 8 ++- .../modules/store/storySort.test.ts | 3 +- code/core/src/preview-errors.ts | 1 + code/core/src/preview/globals/runtime.ts | 6 +- code/core/src/preview/runtime.ts | 5 +- code/core/src/preview/utils.ts | 1 + code/core/src/router/router.tsx | 8 ++- code/core/src/router/types.ts | 4 +- code/core/src/router/utils.test.ts | 5 +- code/core/src/router/utils.ts | 1 + code/core/src/server-errors.ts | 1 + code/core/src/telemetry/anonymous-id.test.ts | 3 +- code/core/src/telemetry/anonymous-id.ts | 4 +- code/core/src/telemetry/event-cache.test.ts | 3 +- code/core/src/telemetry/event-cache.ts | 1 + .../telemetry/get-chromatic-version.test.ts | 3 +- .../src/telemetry/get-framework-info.test.ts | 7 +- code/core/src/telemetry/get-framework-info.ts | 6 +- .../src/telemetry/get-monorepo-type.test.ts | 6 +- code/core/src/telemetry/get-monorepo-type.ts | 6 +- .../get-portable-stories-usage.test.ts | 2 +- code/core/src/telemetry/index.ts | 7 +- code/core/src/telemetry/notify.ts | 3 +- code/core/src/telemetry/package-json.ts | 3 +- code/core/src/telemetry/sanitize.test.ts | 5 +- code/core/src/telemetry/session-id.test.ts | 9 ++- code/core/src/telemetry/session-id.ts | 3 +- .../src/telemetry/storybook-metadata.test.ts | 6 +- code/core/src/telemetry/storybook-metadata.ts | 24 +++---- code/core/src/telemetry/telemetry.test.ts | 5 +- code/core/src/telemetry/telemetry.ts | 10 +-- code/core/src/telemetry/types.ts | 1 + code/core/src/theming/convert.ts | 9 +-- code/core/src/theming/create.ts | 3 +- .../core/src/theming/emotionAugmentation.d.ts | 1 - code/core/src/theming/ensure.ts | 4 +- code/core/src/theming/global.ts | 3 +- code/core/src/theming/index.ts | 2 +- code/core/src/theming/tests/convert.test.js | 3 +- code/core/src/theming/tests/create.test.js | 3 +- code/core/src/theming/tests/util.test.js | 4 +- code/core/src/theming/themes/light.ts | 2 +- code/core/src/theming/types.ts | 5 +- code/core/src/theming/utils.ts | 3 +- code/core/src/types/modules/addons.ts | 4 +- code/core/src/types/modules/api-stories.ts | 2 +- code/core/src/types/modules/api.ts | 8 +-- code/core/src/types/modules/channelApi.ts | 6 +- code/core/src/types/modules/composedStory.ts | 1 - code/core/src/types/modules/core-common.ts | 6 +- code/core/src/types/modules/docs.ts | 9 +-- code/core/src/types/modules/indexer.ts | 2 +- code/core/src/types/modules/story.ts | 10 +-- .../template/stories/argMapping.stories.ts | 4 +- .../core/template/stories/argTypes.stories.ts | 2 +- code/core/template/stories/args.stories.ts | 10 +-- .../template/stories/autotitle.stories.ts | 2 +- .../stories/component-play.stories.ts | 4 +- .../template/stories/decorators.stories.ts | 9 +-- code/core/template/stories/globals.stories.ts | 4 +- code/core/template/stories/hooks.stories.ts | 5 +- code/core/template/stories/indexer.stories.ts | 4 +- .../stories/interleavedExports.stories.ts | 4 +- code/core/template/stories/loaders.stories.ts | 4 +- code/core/template/stories/names.stories.ts | 2 +- .../template/stories/parameters.stories.ts | 4 +- .../template/stories/rendering.stories.ts | 5 +- .../template/stories/shortcuts.stories.ts | 5 +- .../core/template/stories/tags-add.stories.ts | 4 +- .../template/stories/tags-config.stories.ts | 4 +- .../template/stories/tags-remove.stories.ts | 4 +- code/core/template/stories/title.stories.ts | 2 +- code/core/template/stories/utils.mock.ts | 1 + code/core/vitest.config.ts | 1 + code/e2e-tests/addon-actions.spec.ts | 3 +- code/e2e-tests/addon-backgrounds.spec.ts | 3 +- code/e2e-tests/addon-controls.spec.ts | 3 +- code/e2e-tests/addon-docs.spec.ts | 3 +- code/e2e-tests/addon-interactions.spec.ts | 3 +- code/e2e-tests/addon-toolbars.spec.ts | 3 +- code/e2e-tests/addon-viewport.spec.ts | 3 +- code/e2e-tests/composition.spec.ts | 3 +- code/e2e-tests/framework-nextjs.spec.ts | 3 +- code/e2e-tests/framework-svelte.spec.ts | 3 +- code/e2e-tests/json-files.spec.ts | 2 +- code/e2e-tests/manager.spec.ts | 3 +- code/e2e-tests/module-mocking.spec.ts | 3 +- code/e2e-tests/navigation.spec.ts | 3 +- code/e2e-tests/preview-api.spec.ts | 3 +- code/e2e-tests/save-from-controls.spec.ts | 1 + code/e2e-tests/storybook-hooks.spec.ts | 4 +- code/e2e-tests/tags.spec.ts | 3 +- code/e2e-tests/util.ts | 3 +- .../builders/build-storybook/index.spec.ts | 3 +- .../src/builders/build-storybook/index.ts | 26 ++++---- .../builders/start-storybook/index.spec.ts | 3 +- .../src/builders/start-storybook/index.ts | 25 +++---- .../src/builders/utils/error-handler.ts | 1 + .../src/builders/utils/run-compodoc.spec.ts | 5 +- .../src/builders/utils/run-compodoc.ts | 5 +- .../src/builders/utils/standalone-options.ts | 3 +- .../client/angular-beta/AbstractRenderer.ts | 5 +- .../src/client/angular-beta/CanvasRenderer.ts | 2 +- .../ComputesTemplateFromComponent.test.ts | 16 ++--- .../ComputesTemplateFromComponent.ts | 4 +- .../src/client/angular-beta/DocsRenderer.ts | 6 +- .../client/angular-beta/RendererFactory.ts | 2 +- .../client/angular-beta/StorybookModule.ts | 2 +- .../client/angular-beta/StorybookProvider.ts | 5 +- .../angular-beta/utils/BootstrapQueue.test.ts | 3 +- .../angular-beta/utils/NgComponentAnalyzer.ts | 2 +- .../utils/NgModulesAnalyzer.test.ts | 1 + .../utils/PropertyExtractor.test.ts | 5 +- .../angular-beta/utils/PropertyExtractor.ts | 3 +- .../angular/src/client/argsToTemplate.test.ts | 5 +- .../angular/src/client/decorateStory.ts | 4 +- .../angular/src/client/decorators.ts | 6 +- .../client/docs/angular-properties.test.ts | 2 +- .../angular/src/client/docs/compodoc.test.ts | 3 +- .../angular/src/client/docs/compodoc.ts | 9 +-- .../angular/src/client/docs/config.ts | 3 +- .../src/client/docs/sourceDecorator.ts | 5 +- code/frameworks/angular/src/client/globals.ts | 4 +- code/frameworks/angular/src/client/index.ts | 1 - code/frameworks/angular/src/client/render.ts | 7 +- code/frameworks/angular/src/client/types.ts | 5 +- code/frameworks/angular/src/preset.ts | 6 +- .../src/server/angular-cli-webpack.d.ts | 2 +- .../server/framework-preset-angular-cli.ts | 7 +- .../server/framework-preset-angular-docs.ts | 2 +- .../server/framework-preset-angular-ivy.ts | 7 +- code/frameworks/angular/src/test-setup.ts | 4 +- code/frameworks/angular/src/types.ts | 13 ++-- .../angular/template/cli/button.stories.ts | 1 + .../angular/template/cli/header.stories.ts | 2 +- .../angular/template/cli/page.stories.ts | 2 +- .../angular/template/components/index.js | 2 +- .../argTypes/doc-button/doc-button.stories.ts | 1 + .../doc-directive/doc-directive.stories.ts | 1 + .../doc-injectable/doc-injectable.stories.ts | 1 + .../argTypes/doc-pipe/doc-pipe.stories.ts | 1 + .../custom-cva-component.stories.ts | 4 +- .../attribute-selectors.component.stories.ts | 1 + .../enums.component.stories.ts | 3 +- .../base-button.stories.ts | 1 + .../icon-button.stories.ts | 1 + .../component-with-on-push/on-push.stories.ts | 1 + .../di.component.stories.ts | 1 + .../styled.component.stories.ts | 1 + .../template.stories.ts | 1 + .../without-selector.stories.ts | 5 +- .../ng-module/import-module-chip.stories.ts | 5 +- .../import-module-for-root.stories.ts | 7 +- .../basics/ng-module/import-module.stories.ts | 5 +- .../with-browser-animations.stories.ts | 6 +- .../with-noop-browser-animations.stories.ts | 6 +- .../decorators.stories.ts | 2 +- .../in-export-default.stories.ts | 5 +- .../core/moduleMetadata/in-stories.stories.ts | 3 +- .../merge-default-and-story.stories.ts | 3 +- .../core/styles/story-styles.stories.ts | 1 + .../app-initializer-use-factory.stories.ts | 6 +- .../issues/12009-unknown-component.stories.ts | 1 + .../signal/button.stories.ts | 1 + .../signal/button.stories.ts | 1 + code/frameworks/angular/vitest.config.ts | 1 + .../ember/src/client/preview/docs/config.ts | 3 +- .../ember/src/client/preview/render.ts | 7 +- code/frameworks/ember/src/preset.ts | 7 +- .../server/framework-preset-babel-ember.ts | 4 +- .../src/server/framework-preset-ember-docs.ts | 3 +- code/frameworks/ember/src/types.ts | 13 ++-- code/frameworks/ember/src/util.ts | 2 +- .../ember/template/cli/Button.stories.js | 6 +- code/frameworks/ember/vitest.config.ts | 1 + code/frameworks/html-vite/src/preset.ts | 1 + code/frameworks/html-vite/src/types.ts | 5 +- code/frameworks/html-webpack5/src/preset.ts | 3 +- code/frameworks/html-webpack5/src/types.ts | 13 ++-- .../frameworks/html-webpack5/vitest.config.ts | 1 + code/frameworks/nextjs/src/babel/loader.ts | 3 +- .../nextjs/src/babel/plugins/jsx-pragma.ts | 2 +- .../src/babel/plugins/next-page-config.ts | 2 +- .../src/babel/plugins/next-ssg-transform.ts | 2 +- .../plugins/optimize-hook-destructuring.ts | 2 +- .../babel/plugins/react-loadable-plugin.ts | 4 +- .../src/compatibility/compatibility-map.ts | 5 +- code/frameworks/nextjs/src/config/webpack.ts | 4 +- code/frameworks/nextjs/src/css/webpack.ts | 5 +- .../nextjs/src/export-mocks/cache/index.ts | 1 + .../src/export-mocks/headers/cookies.ts | 5 +- .../nextjs/src/export-mocks/headers/index.ts | 1 + .../src/export-mocks/navigation/index.ts | 6 +- .../nextjs/src/export-mocks/router/index.ts | 6 +- .../nextjs/src/export-mocks/webpack.ts | 1 + .../nextjs/src/fastRefresh/webpack.ts | 2 +- .../nextjs/src/font/babel/helpers.ts | 2 +- .../nextjs/src/font/babel/index.test.ts | 4 +- .../frameworks/nextjs/src/font/babel/index.ts | 1 + .../google/get-font-face-declarations.ts | 10 +-- .../local/get-font-face-declarations.ts | 3 +- .../loader/storybook-nextjs-font-loader.ts | 3 +- .../nextjs/src/head-manager/decorator.tsx | 1 + .../head-manager/head-manager-provider.tsx | 3 +- code/frameworks/nextjs/src/image-context.ts | 1 + .../nextjs/src/images/decorator.tsx | 3 +- .../nextjs/src/images/next-image.tsx | 12 ++-- .../nextjs/src/images/next-legacy-image.tsx | 13 ++-- code/frameworks/nextjs/src/images/webpack.ts | 5 +- code/frameworks/nextjs/src/imports/webpack.ts | 2 +- .../nextjs/src/next-image-loader-stub.ts | 7 +- .../nextjs/src/nodePolyfills/webpack.ts | 2 +- .../frameworks/nextjs/src/portable-stories.ts | 16 ++--- code/frameworks/nextjs/src/preset.ts | 32 ++++----- code/frameworks/nextjs/src/preview.tsx | 16 +++-- .../src/routing/app-router-provider.tsx | 21 +++--- .../nextjs/src/routing/decorator.tsx | 7 +- .../src/routing/page-router-provider.tsx | 8 ++- .../nextjs/src/styledJsx/webpack.ts | 1 + code/frameworks/nextjs/src/swc/loader.ts | 6 +- .../nextjs/src/swc/next-swc-loader-patch.ts | 1 - code/frameworks/nextjs/src/types.ts | 14 ++-- code/frameworks/nextjs/src/utils.ts | 9 +-- .../nextjs/template/cli/js/Button.jsx | 2 + .../nextjs/template/cli/js/Button.stories.js | 1 + .../nextjs/template/cli/js/Header.jsx | 1 + .../nextjs/template/cli/js/Header.stories.js | 1 + .../nextjs/template/cli/js/Page.stories.js | 3 +- .../template/cli/ts-3-8/Button.stories.ts | 1 + .../nextjs/template/cli/ts-3-8/Button.tsx | 1 + .../template/cli/ts-3-8/Page.stories.ts | 2 +- .../template/cli/ts-4-9/Button.stories.ts | 1 + .../nextjs/template/cli/ts-4-9/Button.tsx | 1 + .../template/cli/ts-4-9/Header.stories.ts | 1 + .../template/cli/ts-4-9/Page.stories.ts | 2 +- .../nextjs/template/stories/Image.stories.jsx | 1 + .../nextjs/template/stories/RSC.stories.jsx | 3 +- .../stories_nextjs-default-js/Font.jsx | 4 +- .../Head.stories.jsx | 6 +- .../ImageLegacy.stories.jsx | 1 + .../Link.stories.jsx | 1 + .../Link.stories.tsx | 4 +- .../Navigation.stories.tsx | 14 ++-- .../NextHeader.stories.tsx | 5 +- .../stories_nextjs-default-ts/NextHeader.tsx | 1 + .../Redirect.stories.tsx | 2 + .../Router.stories.tsx | 6 +- .../ServerActions.stories.tsx | 9 +-- .../server-actions.tsx | 2 +- code/frameworks/nextjs/vitest.config.ts | 1 + code/frameworks/preact-vite/src/preset.ts | 2 + code/frameworks/preact-vite/src/types.ts | 3 +- code/frameworks/preact-vite/vitest.config.ts | 1 + code/frameworks/preact-webpack5/src/preset.ts | 3 +- code/frameworks/preact-webpack5/src/types.ts | 13 ++-- .../preact-webpack5/vitest.config.ts | 1 + .../docgen-handlers/actualNameHandler.ts | 1 - .../src/plugins/react-docgen.test.ts | 3 +- .../react-vite/src/plugins/react-docgen.ts | 14 ++-- code/frameworks/react-vite/src/preset.ts | 2 + code/frameworks/react-vite/src/types.ts | 4 +- code/frameworks/react-vite/src/utils.ts | 2 +- code/frameworks/react-vite/vitest.config.ts | 1 + code/frameworks/react-webpack5/src/preset.ts | 4 +- code/frameworks/react-webpack5/src/types.ts | 13 ++-- .../react-webpack5/vitest.config.ts | 1 + code/frameworks/server-webpack5/src/preset.ts | 3 +- code/frameworks/server-webpack5/src/types.ts | 13 ++-- .../server-webpack5/vitest.config.ts | 1 + .../svelte-vite/src/plugins/svelte-docgen.ts | 11 ++-- code/frameworks/svelte-vite/src/preset.ts | 4 +- code/frameworks/svelte-vite/src/types.ts | 3 +- code/frameworks/svelte-vite/src/utils.ts | 6 +- code/frameworks/svelte-vite/vitest.config.ts | 1 + code/frameworks/svelte-webpack5/src/preset.ts | 3 +- code/frameworks/svelte-webpack5/src/types.ts | 15 +++-- .../svelte-webpack5/vitest.config.ts | 1 + .../src/plugins/mock-sveltekit-stores.ts | 1 + code/frameworks/sveltekit/src/preset.ts | 5 +- code/frameworks/sveltekit/src/preview.ts | 3 + code/frameworks/sveltekit/src/types.ts | 4 +- .../forms.stories.js | 1 + .../hrefs.stories.js | 1 + .../navigation.stories.js | 1 + .../environment.stories.js | 1 + .../forms.stories.js | 1 + .../hrefs.stories.js | 1 + .../navigation.stories.js | 1 + .../paths.stories.js | 1 + .../environment.stories.js | 1 + .../forms.stories.js | 1 + .../hrefs.stories.js | 1 + .../navigation.stories.js | 1 + .../paths.stories.js | 1 + code/frameworks/sveltekit/vitest.config.ts | 1 + .../src/plugins/vue-component-meta.ts | 6 +- code/frameworks/vue3-vite/src/preset.ts | 2 + code/frameworks/vue3-vite/src/types.ts | 4 +- code/frameworks/vue3-vite/vitest.config.ts | 1 + code/frameworks/vue3-webpack5/src/preset.ts | 3 +- code/frameworks/vue3-webpack5/src/types.ts | 13 ++-- .../frameworks/vue3-webpack5/vitest.config.ts | 1 + .../web-components-vite/src/preset.ts | 1 + .../web-components-vite/src/types.ts | 3 +- .../web-components-vite/vitest.config.ts | 1 + .../web-components-webpack5/src/preset.ts | 3 +- .../web-components-webpack5/src/types.ts | 1 + .../web-components-webpack5/vitest.config.ts | 1 + code/lib/blocks/src/blocks/Anchor.stories.tsx | 1 + .../blocks/src/blocks/ArgTypes.stories.tsx | 7 +- code/lib/blocks/src/blocks/ArgTypes.tsx | 12 ++-- code/lib/blocks/src/blocks/Canvas.stories.tsx | 7 +- code/lib/blocks/src/blocks/Canvas.tsx | 4 +- .../blocks/src/blocks/Controls.stories.tsx | 7 +- code/lib/blocks/src/blocks/Controls.tsx | 12 ++-- .../blocks/src/blocks/Description.stories.tsx | 8 ++- code/lib/blocks/src/blocks/Description.tsx | 3 +- code/lib/blocks/src/blocks/Docs.tsx | 5 +- code/lib/blocks/src/blocks/DocsContainer.tsx | 7 +- code/lib/blocks/src/blocks/DocsContext.ts | 3 +- .../blocks/src/blocks/DocsPage.stories.tsx | 1 + code/lib/blocks/src/blocks/DocsPage.test.ts | 2 +- code/lib/blocks/src/blocks/DocsPage.tsx | 7 +- code/lib/blocks/src/blocks/DocsStory.tsx | 7 +- code/lib/blocks/src/blocks/Heading.tsx | 2 + .../blocks/src/blocks/Markdown.stories.tsx | 2 +- code/lib/blocks/src/blocks/Markdown.tsx | 2 + code/lib/blocks/src/blocks/Meta.tsx | 1 + .../lib/blocks/src/blocks/Primary.stories.tsx | 3 +- code/lib/blocks/src/blocks/Primary.tsx | 5 +- code/lib/blocks/src/blocks/Source.stories.tsx | 7 +- code/lib/blocks/src/blocks/Source.tsx | 5 +- .../lib/blocks/src/blocks/SourceContainer.tsx | 6 +- .../lib/blocks/src/blocks/Stories.stories.tsx | 1 + code/lib/blocks/src/blocks/Stories.tsx | 2 + code/lib/blocks/src/blocks/Story.stories.tsx | 5 +- code/lib/blocks/src/blocks/Story.tsx | 5 +- code/lib/blocks/src/blocks/Subheading.tsx | 4 +- .../blocks/src/blocks/Subtitle.stories.tsx | 6 +- code/lib/blocks/src/blocks/Subtitle.tsx | 1 + code/lib/blocks/src/blocks/Title.stories.tsx | 3 +- code/lib/blocks/src/blocks/Title.tsx | 4 +- .../src/blocks/external/ExternalDocs.tsx | 3 +- .../blocks/external/ExternalDocsContainer.tsx | 2 +- .../blocks/external/ExternalDocsContext.ts | 2 +- .../src/blocks/external/ExternalPreview.ts | 6 +- code/lib/blocks/src/blocks/mdx.tsx | 7 +- code/lib/blocks/src/blocks/useArgs.ts | 5 +- code/lib/blocks/src/blocks/useGlobals.ts | 6 +- code/lib/blocks/src/blocks/useOf.ts | 6 +- code/lib/blocks/src/blocks/useStory.ts | 5 +- .../src/components/ArgsTable/ArgControl.tsx | 5 +- .../src/components/ArgsTable/ArgJsDoc.tsx | 4 +- .../components/ArgsTable/ArgRow.stories.tsx | 2 + .../src/components/ArgsTable/ArgRow.tsx | 14 ++-- .../src/components/ArgsTable/ArgValue.tsx | 12 ++-- .../ArgsTable/ArgsTable.stories.tsx | 8 ++- .../src/components/ArgsTable/ArgsTable.tsx | 20 +++--- .../blocks/src/components/ArgsTable/Empty.tsx | 4 +- .../ArgsTable/SectionRow.stories.tsx | 4 +- .../src/components/ArgsTable/SectionRow.tsx | 5 +- .../src/components/ArgsTable/Skeleton.tsx | 3 +- .../ArgsTable/TabbedArgsTable.stories.tsx | 2 +- .../components/ArgsTable/TabbedArgsTable.tsx | 1 + .../src/components/ColorPalette.stories.tsx | 1 + .../blocks/src/components/ColorPalette.tsx | 6 +- .../src/components/DocsPage.stories.tsx | 12 ++-- code/lib/blocks/src/components/DocsPage.tsx | 4 +- .../src/components/EmptyBlock.stories.tsx | 1 + code/lib/blocks/src/components/EmptyBlock.tsx | 6 +- code/lib/blocks/src/components/IFrame.tsx | 1 + .../src/components/IconGallery.stories.tsx | 4 +- .../lib/blocks/src/components/IconGallery.tsx | 3 +- .../blocks/src/components/Preview.stories.tsx | 11 ++-- code/lib/blocks/src/components/Preview.tsx | 11 ++-- .../blocks/src/components/Source.stories.tsx | 1 + code/lib/blocks/src/components/Source.tsx | 9 +-- .../blocks/src/components/Story.stories.tsx | 16 +++-- code/lib/blocks/src/components/Story.tsx | 11 ++-- .../blocks/src/components/TableOfContents.tsx | 2 + code/lib/blocks/src/components/Title.tsx | 2 +- code/lib/blocks/src/components/Toolbar.tsx | 4 +- .../blocks/src/components/Typeset.stories.tsx | 1 + code/lib/blocks/src/components/Typeset.tsx | 7 +- .../blocks/src/controls/Boolean.stories.tsx | 8 ++- code/lib/blocks/src/controls/Boolean.tsx | 8 +-- .../lib/blocks/src/controls/Color.stories.tsx | 1 + code/lib/blocks/src/controls/Color.tsx | 15 +++-- code/lib/blocks/src/controls/Date.stories.tsx | 1 + code/lib/blocks/src/controls/Date.test.ts | 4 +- code/lib/blocks/src/controls/Date.tsx | 9 +-- .../lib/blocks/src/controls/Files.stories.tsx | 1 + code/lib/blocks/src/controls/Files.tsx | 5 +- .../blocks/src/controls/Number.stories.tsx | 1 + code/lib/blocks/src/controls/Number.tsx | 11 ++-- .../blocks/src/controls/Object.stories.tsx | 3 +- code/lib/blocks/src/controls/Object.tsx | 18 +++-- .../lib/blocks/src/controls/Range.stories.tsx | 1 + code/lib/blocks/src/controls/Range.tsx | 8 +-- code/lib/blocks/src/controls/Text.stories.tsx | 1 + code/lib/blocks/src/controls/Text.tsx | 9 +-- code/lib/blocks/src/controls/helpers.test.ts | 3 +- code/lib/blocks/src/controls/index.tsx | 3 +- .../controls/options/CheckOptions.stories.tsx | 1 + .../blocks/src/controls/options/Checkbox.tsx | 12 ++-- .../blocks/src/controls/options/Options.tsx | 5 +- .../lib/blocks/src/controls/options/Radio.tsx | 8 +-- .../controls/options/RadioOptions.stories.tsx | 1 + .../blocks/src/controls/options/Select.tsx | 11 ++-- .../options/SelectOptions.stories.tsx | 1 + .../react-editable-json-tree/JsonNodes.tsx | 5 +- .../react-editable-json-tree/index.tsx | 6 +- .../examples/ArgTypesParameters.stories.tsx | 1 + ...pesWithSubcomponentsParameters.stories.tsx | 1 + .../blocks/src/examples/Button.stories.tsx | 6 +- code/lib/blocks/src/examples/Button.tsx | 1 + .../src/examples/ButtonNoAutodocs.stories.tsx | 1 + .../src/examples/ButtonReadonly.stories.tsx | 1 + .../examples/ButtonSomeAutodocs.stories.tsx | 1 + ...uttonWithMetaDescriptionAsBoth.stories.tsx | 1 + ...onWithMetaDescriptionAsComment.stories.tsx | 1 + ...WithMetaDescriptionAsParameter.stories.tsx | 1 + .../ButtonWithMetaSubtitleAsBoth.stories.tsx | 1 + ...etaSubtitleAsComponentSubtitle.stories.tsx | 1 + ...WithMetaSubtitleAsDocsSubtitle.stories.tsx | 1 + .../examples/ControlsParameters.stories.tsx | 1 + ...olsWithSubcomponentsParameters.stories.tsx | 1 + .../src/examples/EmptyArgTypes.stories.tsx | 4 +- .../src/examples/SourceParameters.stories.tsx | 5 +- .../src/examples/StoryParameters.stories.tsx | 1 + code/lib/blocks/vitest.config.ts | 1 + code/lib/cli-sb/vitest.config.ts | 1 + code/lib/cli-storybook/src/add.test.ts | 1 + code/lib/cli-storybook/src/add.ts | 8 ++- .../autoblock/block-dependencies-versions.ts | 7 +- .../src/autoblock/block-node-version.ts | 7 +- .../src/autoblock/block-storystorev6.ts | 6 +- .../cli-storybook/src/autoblock/index.test.ts | 7 +- code/lib/cli-storybook/src/autoblock/index.ts | 6 +- .../automigrate/fixes/addon-postcss.test.ts | 8 ++- .../src/automigrate/fixes/addon-postcss.ts | 3 +- .../src/automigrate/fixes/addons-api.test.ts | 8 ++- .../src/automigrate/fixes/addons-api.ts | 1 + .../angular-builders-multiproject.test.ts | 8 ++- .../fixes/angular-builders-multiproject.ts | 10 +-- .../fixes/angular-builders.test.ts | 8 ++- .../src/automigrate/fixes/angular-builders.ts | 10 +-- .../automigrate/fixes/autodocs-tags.test.ts | 2 + .../src/automigrate/fixes/autodocs-tags.ts | 8 ++- .../automigrate/fixes/autodocs-true.test.ts | 6 +- .../src/automigrate/fixes/autodocs-true.ts | 2 +- .../automigrate/fixes/builder-vite.test.ts | 6 +- .../src/automigrate/fixes/builder-vite.ts | 10 +-- .../src/automigrate/fixes/cra5.test.ts | 6 +- .../src/automigrate/fixes/cra5.ts | 5 +- .../automigrate/fixes/eslint-plugin.test.ts | 14 ++-- .../src/automigrate/fixes/eslint-plugin.ts | 8 +-- .../src/automigrate/fixes/index.ts | 49 +++++++------- .../automigrate/fixes/initial-globals.test.ts | 6 +- .../src/automigrate/fixes/initial-globals.ts | 10 +-- .../src/automigrate/fixes/mdx-1-to-3.test.ts | 5 +- .../src/automigrate/fixes/mdx-1-to-3.ts | 5 +- .../src/automigrate/fixes/mdx-gfm.test.ts | 4 +- .../src/automigrate/fixes/mdx-gfm.ts | 8 ++- .../src/automigrate/fixes/mdx-to-csf.test.ts | 5 +- .../src/automigrate/fixes/mdx-to-csf.ts | 11 ++-- .../missing-storybook-dependencies.test.ts | 4 +- .../fixes/missing-storybook-dependencies.ts | 9 ++- .../automigrate/fixes/new-frameworks.test.ts | 7 +- .../src/automigrate/fixes/new-frameworks.ts | 25 +++---- .../fixes/prompt-remove-react.test.ts | 7 +- .../automigrate/fixes/prompt-remove-react.ts | 1 + .../automigrate/fixes/react-docgen.test.ts | 4 +- .../src/automigrate/fixes/react-docgen.ts | 3 +- .../fixes/remove-argtypes-regex.ts | 9 ++- .../fixes/remove-global-client-apis.test.ts | 8 ++- .../fixes/remove-global-client-apis.ts | 3 +- .../fixes/remove-jest-testing-library.test.ts | 6 +- .../fixes/remove-jest-testing-library.ts | 9 ++- .../automigrate/fixes/remove-legacymdx1.ts | 6 +- .../src/automigrate/fixes/sb-binary.test.ts | 4 +- .../src/automigrate/fixes/sb-binary.ts | 6 +- .../src/automigrate/fixes/sb-scripts.test.ts | 4 +- .../src/automigrate/fixes/sb-scripts.ts | 8 ++- .../fixes/storyshots-migration.test.ts | 5 +- .../automigrate/fixes/storyshots-migration.ts | 1 + ...ade-storybook-related-dependencies.test.ts | 7 +- .../upgrade-storybook-related-dependencies.ts | 10 +-- .../src/automigrate/fixes/vite-config-file.ts | 10 +-- .../src/automigrate/fixes/vta.test.ts | 2 + .../src/automigrate/fixes/vta.ts | 3 +- .../src/automigrate/fixes/vue3.test.ts | 6 +- .../src/automigrate/fixes/vue3.ts | 5 +- .../fixes/webpack5-compiler-setup.test.ts | 8 ++- .../fixes/webpack5-compiler-setup.ts | 26 ++++---- .../src/automigrate/fixes/webpack5.test.ts | 6 +- .../src/automigrate/fixes/webpack5.ts | 5 +- .../automigrate/fixes/wrap-require-utils.ts | 3 +- .../automigrate/fixes/wrap-require.test.ts | 6 +- .../src/automigrate/fixes/wrap-require.ts | 8 ++- .../helpers/checkWebpack5Builder.test.ts | 4 +- .../helpers/checkWebpack5Builder.ts | 4 +- .../src/automigrate/helpers/detectRenderer.ts | 3 +- .../helpers/getMigrationSummary.test.ts | 8 ++- .../helpers/getMigrationSummary.ts | 6 +- .../helpers/mainConfigFile.test.ts | 3 +- .../src/automigrate/helpers/mainConfigFile.ts | 17 ++--- .../helpers/new-frameworks-utils.test.ts | 7 +- .../helpers/new-frameworks-utils.ts | 4 +- .../automigrate/helpers/testing-helpers.ts | 1 + .../src/automigrate/index.test.ts | 6 +- .../cli-storybook/src/automigrate/index.ts | 29 ++++----- code/lib/cli-storybook/src/bin/index.ts | 28 ++++---- .../src/doctor/getDuplicatedDepsWarnings.ts | 4 +- .../getIncompatibleStorybookPackages.test.ts | 10 +-- .../getIncompatibleStorybookPackages.ts | 5 +- .../doctor/getMismatchingVersionsWarning.ts | 5 +- code/lib/cli-storybook/src/doctor/index.ts | 15 +++-- code/lib/cli-storybook/src/link.ts | 7 +- code/lib/cli-storybook/src/migrate.ts | 5 +- .../cli-storybook/src/sandbox-templates.ts | 2 +- code/lib/cli-storybook/src/sandbox.ts | 23 +++---- code/lib/cli-storybook/src/upgrade.test.ts | 4 +- code/lib/cli-storybook/src/upgrade.ts | 31 ++++----- code/lib/cli-storybook/src/warn.test.ts | 4 +- code/lib/cli-storybook/src/window.d.ts | 2 +- code/lib/cli-storybook/vitest.config.ts | 1 + code/lib/cli/scripts/update-core-portal.ts | 5 +- code/lib/cli/scripts/utils.ts | 2 +- code/lib/cli/src/proxy.ts | 3 +- code/lib/cli/vitest.config.ts | 1 + code/lib/codemod/README.md | 2 + code/lib/codemod/src/index.ts | 3 +- code/lib/codemod/src/lib/utils.test.js | 3 +- .../transforms/__tests__/csf-2-to-3.test.ts | 8 ++- .../__tests__/find-implicit-spies.test.ts | 6 +- .../transforms/__tests__/mdx-to-csf.test.ts | 5 +- .../__tests__/migrate-to-test-package.test.ts | 4 +- .../transforms/__tests__/transforms.tests.js | 5 +- .../upgrade-deprecated-types.test.ts | 6 +- code/lib/codemod/src/transforms/csf-2-to-3.ts | 10 +-- .../src/transforms/find-implicit-spies.ts | 3 +- code/lib/codemod/src/transforms/mdx-to-csf.ts | 28 ++++---- .../src/transforms/migrate-to-test-package.ts | 3 +- .../src/transforms/storiesof-to-csf.js | 9 ++- .../transforms/upgrade-deprecated-types.ts | 7 +- code/lib/codemod/vitest.config.ts | 1 + .../core-webpack/src/check-webpack-version.ts | 1 + .../core-webpack/src/importPipeline.test.ts | 3 +- .../src/load-custom-webpack-config.ts | 3 +- .../src/merge-webpack-config.test.ts | 4 +- code/lib/core-webpack/src/to-importFn.test.ts | 1 + code/lib/core-webpack/src/to-importFn.ts | 5 +- .../src/to-require-context.test.ts | 6 +- .../core-webpack/src/to-require-context.ts | 2 +- code/lib/core-webpack/vitest.config.ts | 1 + code/lib/create-storybook/src/bin/index.ts | 5 +- .../src/generators/ANGULAR/index.ts | 10 +-- .../src/generators/EMBER/index.ts | 1 + .../src/generators/HTML/index.ts | 1 + .../src/generators/NEXTJS/index.ts | 6 +- .../src/generators/PREACT/index.ts | 1 + .../src/generators/REACT/index.ts | 1 + .../src/generators/REACT_NATIVE/index.ts | 2 +- .../src/generators/REACT_SCRIPTS/index.ts | 5 +- .../src/generators/SERVER/index.ts | 1 + .../src/generators/SOLID/index.ts | 1 + .../src/generators/SVELTEKIT/index.ts | 1 + .../src/generators/VUE3/index.ts | 1 + .../src/generators/WEB-COMPONENTS/index.ts | 1 + .../src/generators/WEBPACK_REACT/index.ts | 1 + .../src/generators/baseGenerator.ts | 24 +++---- .../src/generators/configure.test.ts | 7 +- .../src/generators/configure.ts | 5 +- .../create-storybook/src/generators/types.ts | 3 +- code/lib/create-storybook/src/initiate.ts | 45 ++++++------- .../src/scaffold-new-project.ts | 11 ++-- code/lib/create-storybook/vitest.config.ts | 1 + code/lib/csf-plugin/src/index.ts | 6 +- .../lib/csf-plugin/src/rollup-based-plugin.ts | 4 +- code/lib/csf-plugin/src/webpack-loader.ts | 5 +- code/lib/csf-plugin/vitest.config.ts | 1 + .../lib/instrumenter/src/instrumenter.test.ts | 6 +- code/lib/instrumenter/src/instrumenter.ts | 8 ++- code/lib/instrumenter/vitest.config.ts | 1 + code/lib/react-dom-shim/src/preset.ts | 3 +- .../abstract-syntax-tree/generate-helpers.js | 12 ++-- .../inject-decorator.csf.test.js | 4 +- .../abstract-syntax-tree/inject-decorator.js | 7 +- .../inject-decorator.test.js | 4 +- .../src/abstract-syntax-tree/parsers/index.js | 2 +- .../abstract-syntax-tree/traverse-helpers.js | 4 +- code/lib/source-loader/src/build.js | 3 +- .../src/dependencies-lookup/readAsObject.js | 2 +- code/lib/source-loader/vitest.config.ts | 1 + code/lib/test/README.md | 2 +- code/lib/test/src/expect.ts | 12 ++-- code/lib/test/src/index.test.ts | 3 +- code/lib/test/src/index.ts | 6 +- code/lib/test/src/spy.test.ts | 3 +- code/lib/test/src/spy.ts | 10 +-- code/lib/test/src/testing-library.ts | 10 ++- .../template/stories/before-each.stories.ts | 2 +- .../destructuring-not-transpiled.stories.ts | 2 +- .../stories/loader-enhancements.stories.ts | 2 +- .../stories/module-mocking.stories.ts | 4 +- .../template/stories/mount-in-play.stories.ts | 2 +- code/lib/test/template/stories/utils.mock.ts | 1 + code/lib/test/vitest.config.ts | 1 + .../src/helpers/checkPresets.ts | 1 + .../src/helpers/getReactScriptsPath.ts | 4 +- .../src/helpers/mergePlugins.ts | 2 +- .../src/helpers/processCraConfig.ts | 5 +- code/presets/create-react-app/src/index.ts | 13 ++-- code/presets/preact-webpack/src/index.ts | 4 +- .../react-webpack/src/cra-config.test.ts | 4 +- code/presets/react-webpack/src/cra-config.ts | 3 +- .../react-webpack/src/framework-preset-cra.ts | 2 + .../src/framework-preset-react-docs.test.ts | 7 +- .../src/framework-preset-react-docs.ts | 3 +- .../src/loaders/react-docgen-loader.test.ts | 3 +- .../src/loaders/react-docgen-loader.ts | 15 +++-- code/presets/react-webpack/src/types.ts | 2 +- .../server-webpack/src/lib/compiler/index.ts | 3 +- .../lib/compiler/json-to-csf-compiler.test.ts | 6 +- .../src/lib/compiler/stringifier.ts | 3 +- code/presets/server-webpack/vitest.config.ts | 1 + .../src/framework-preset-svelte-docs.ts | 1 + .../src/framework-preset-svelte.ts | 1 + .../src/svelte-docgen-loader.ts | 9 +-- .../src/framework-preset-vue3-docs.ts | 3 +- .../vue3-webpack/src/framework-preset-vue3.ts | 3 +- .../html/src/docs/sourceDecorator.test.ts | 6 +- .../html/src/docs/sourceDecorator.ts | 5 +- code/renderers/html/src/entry-preview-docs.ts | 2 +- code/renderers/html/src/index.ts | 1 - code/renderers/html/src/preset.ts | 1 + code/renderers/html/src/public-types.ts | 5 +- code/renderers/html/src/render.ts | 6 +- code/renderers/html/src/types.ts | 2 +- .../html/template/cli/js/Button.stories.js | 1 + code/renderers/html/template/cli/js/Header.js | 2 +- .../html/template/cli/js/Header.stories.js | 1 + code/renderers/html/template/cli/js/Page.js | 2 +- .../html/template/cli/js/Page.stories.js | 3 +- .../template/cli/ts-3-8/Button.stories.ts | 3 +- .../template/cli/ts-3-8/Header.stories.ts | 1 + .../html/template/cli/ts-3-8/Header.ts | 2 +- .../html/template/cli/ts-3-8/Page.stories.ts | 3 +- .../html/template/cli/ts-3-8/Page.ts | 2 +- .../template/cli/ts-4-9/Button.stories.ts | 3 +- .../template/cli/ts-4-9/Header.stories.ts | 1 + .../html/template/cli/ts-4-9/Header.ts | 2 +- .../html/template/cli/ts-4-9/Page.stories.ts | 3 +- .../html/template/cli/ts-4-9/Page.ts | 2 +- .../html/template/components/index.js | 2 +- code/renderers/html/vitest.config.ts | 1 + code/renderers/preact/src/index.ts | 1 - code/renderers/preact/src/preset.ts | 1 + code/renderers/preact/src/public-types.ts | 7 +- code/renderers/preact/src/render.tsx | 5 +- code/renderers/preact/src/types.ts | 1 + .../preact/template/cli/Button.stories.jsx | 1 + .../preact/template/cli/Header.stories.jsx | 1 + code/renderers/preact/template/cli/Page.jsx | 1 + .../preact/template/cli/Page.stories.jsx | 2 +- .../preact/template/components/index.js | 2 +- .../template/stories/react-compat.stories.jsx | 2 +- code/renderers/preact/vitest.config.ts | 1 + .../react/src/__test__/Button.stories.tsx | 12 ++-- code/renderers/react/src/__test__/Button.tsx | 1 + .../__test__/portable-stories-legacy.test.tsx | 12 ++-- .../src/__test__/portable-stories.test.tsx | 12 ++-- .../react/src/docs/applyDecorators.ts | 3 +- .../react/src/docs/extractArgTypes.test.ts | 16 ++--- .../react/src/docs/extractArgTypes.ts | 2 +- code/renderers/react/src/docs/extractProps.ts | 8 +-- .../react/src/docs/jsxDecorator.test.tsx | 12 ++-- .../renderers/react/src/docs/jsxDecorator.tsx | 14 ++-- .../lib/defaultValues/createDefaultValue.ts | 13 ++-- .../defaultValues/createFromRawDefaultProp.ts | 17 +++-- .../docs/lib/defaultValues/generateArray.ts | 4 +- .../docs/lib/defaultValues/generateObject.ts | 5 +- .../lib/defaultValues/prettyIdentifier.ts | 2 +- .../docs/lib/inspection/acornParser.test.ts | 8 +-- .../src/docs/lib/inspection/acornParser.ts | 12 ++-- .../react/src/docs/propTypes/createType.ts | 24 +++---- .../propTypes/generateFuncSignature.test.ts | 2 +- .../src/docs/propTypes/handleProp.test.tsx | 9 ++- .../react/src/docs/propTypes/handleProp.ts | 6 +- .../docs/propTypes/rawDefaultPropResolvers.ts | 4 +- .../src/docs/typeScript/handleProp.test.tsx | 7 +- .../react/src/docs/typeScript/handleProp.ts | 2 +- .../renderers/react/src/entry-preview-docs.ts | 4 +- .../renderers/react/src/entry-preview-rsc.tsx | 5 +- code/renderers/react/src/index.ts | 1 - code/renderers/react/src/mount.ts | 3 +- code/renderers/react/src/portable-stories.tsx | 13 ++-- .../renderers/react/src/public-types.test.tsx | 13 ++-- code/renderers/react/src/public-types.ts | 9 ++- code/renderers/react/src/renderToCanvas.tsx | 5 +- code/renderers/react/src/types.ts | 1 + .../react/template/cli/js/Button.jsx | 2 + .../react/template/cli/js/Button.stories.js | 1 + .../react/template/cli/js/Header.jsx | 1 + .../react/template/cli/js/Header.stories.js | 3 +- .../react/template/cli/js/Page.stories.js | 2 +- .../react/template/cli/ts-3-8/Button.tsx | 1 + .../react/template/cli/ts-3-8/Page.stories.ts | 2 +- .../template/cli/ts-4-9/Button.stories.ts | 1 + .../react/template/cli/ts-4-9/Button.tsx | 1 + .../react/template/cli/ts-4-9/Page.stories.ts | 2 +- .../react/template/components/Button.jsx | 1 + .../react/template/components/Form.jsx | 1 + .../react/template/components/Html.jsx | 1 + .../react/template/components/Pre.jsx | 1 + .../react/template/components/index.js | 2 +- .../template/stories/decorators.stories.tsx | 5 +- .../8140-js-prop-types-oneof/input.jsx | 1 + .../8143-ts-imported-types/input.tsx | 1 + .../8428-js-static-prop-types/input.jsx | 1 + .../docgen-components/9023-js-hoc/input.jsx | 1 + .../9399-js-proptypes-shape/input.jsx | 1 + .../9586-js-react-memo/input.jsx | 1 + .../9591-ts-import-types/input.tsx | 1 + .../9668-js-proptypes-no-jsdoc/input.jsx | 1 + .../9922-ts-component-props/input.tsx | 2 +- .../js-class-component/input.jsx | 1 + .../input.jsx | 1 + .../js-function-component/input.jsx | 1 + .../docgen-components/js-proptypes/input.jsx | 4 +- .../stories/docgen-components/jsdoc/input.jsx | 1 + .../template/stories/js-argtypes.stories.jsx | 33 +++++----- .../stories/mount-in-play.stories.tsx | 1 + .../template/stories/ts-argtypes.stories.tsx | 31 +++++---- code/renderers/react/vitest.config.ts | 1 + code/renderers/server/src/index.ts | 1 - code/renderers/server/src/preset.ts | 6 +- code/renderers/server/src/public-types.ts | 7 +- code/renderers/server/src/render.ts | 8 ++- code/renderers/server/vitest.config.ts | 1 + .../__test__/composeStories/Button.stories.ts | 11 ++-- .../composeStories/portable-stories.test.ts | 9 +-- code/renderers/svelte/src/decorators.ts | 4 +- .../svelte/src/docs/extractArgTypes.test.ts | 2 +- .../svelte/src/docs/extractArgTypes.ts | 9 ++- .../svelte/src/docs/sourceDecorator.ts | 5 +- .../svelte/src/entry-preview-docs.ts | 3 +- code/renderers/svelte/src/index.ts | 1 - code/renderers/svelte/src/mount.ts | 3 +- code/renderers/svelte/src/portable-stories.ts | 17 ++--- code/renderers/svelte/src/preset.ts | 1 + .../renderers/svelte/src/public-types.test.ts | 6 +- code/renderers/svelte/src/public-types.ts | 7 +- code/renderers/svelte/src/render.ts | 6 +- code/renderers/svelte/src/types.ts | 1 + .../svelte/template/cli/js/Page.stories.js | 2 +- .../template/cli/ts-3-8/Button.stories.ts | 1 + .../template/cli/ts-3-8/Header.stories.ts | 1 + .../template/cli/ts-3-8/Page.stories.ts | 2 +- .../template/cli/ts-4-9/Button.stories.ts | 1 + .../template/cli/ts-4-9/Header.stories.ts | 1 + .../template/cli/ts-4-9/Page.stories.ts | 2 +- .../svelte/template/components/index.js | 2 +- .../svelte/template/stories/args.stories.js | 6 +- .../template/stories/mount-in-play.stories.ts | 3 +- .../stories/slot-decorators.stories.js | 4 +- code/renderers/svelte/vitest.config.ts | 1 + .../composeStories/Button.stories.ts | 4 +- .../composeStories/portable-stories.test.ts | 10 +-- code/renderers/vue3/src/decorateStory.ts | 6 +- .../vue3/src/docs/extractArgTypes.test.ts | 2 +- .../vue3/src/docs/extractArgTypes.ts | 4 +- code/renderers/vue3/src/entry-preview-docs.ts | 3 +- code/renderers/vue3/src/globals.ts | 2 + code/renderers/vue3/src/index.ts | 1 - code/renderers/vue3/src/mount.ts | 6 +- code/renderers/vue3/src/portable-stories.ts | 9 +-- code/renderers/vue3/src/preset.ts | 1 + code/renderers/vue3/src/public-types.test.ts | 9 ++- code/renderers/vue3/src/public-types.ts | 4 +- code/renderers/vue3/src/render.test.ts | 3 +- code/renderers/vue3/src/render.ts | 5 +- code/renderers/vue3/src/types.ts | 1 + code/renderers/vue3/src/typings.d.ts | 2 + .../vue3/template/cli/js/Button.stories.js | 1 + .../vue3/template/cli/js/Header.stories.js | 1 + .../vue3/template/cli/js/Page.stories.js | 3 +- .../template/cli/ts-3-8/Button.stories.ts | 3 +- .../vue3/template/cli/ts-3-8/Page.stories.ts | 3 +- .../template/cli/ts-4-9/Button.stories.ts | 3 +- .../template/cli/ts-4-9/Header.stories.ts | 2 +- .../vue3/template/cli/ts-4-9/Page.stories.ts | 3 +- .../vue3/template/components/index.js | 2 +- .../vue3/template/stories/preview.js | 1 - ...CustomRenderFunctionalComponent.stories.ts | 4 +- ...CustomRenderOptionsArgsFromData.stories.ts | 4 +- .../GlobalSetup.stories.ts | 4 +- .../ReactiveArgs.stories.ts | 11 ++-- .../ReactiveDecorators.stories.ts | 11 ++-- .../ReactiveSlots.stories.ts | 11 ++-- .../ScopedSlots.stories.ts | 9 +-- .../SourceCode.stories.ts | 2 + .../SourceDecorator.stories.ts | 2 +- .../component-meta/DefineModel.stories.ts | 1 + .../component-meta/DefineSlots.stories.ts | 1 + .../component-meta/OptionApi.stories.ts | 1 + .../ReferenceTypeEvents.stories.ts | 1 + .../ReferenceTypeExposed.stories.ts | 1 + .../ReferenceTypeProps.stories.ts | 1 + .../component-meta/TemplateSlots.stories.ts | 1 + .../component-meta/TsComponent.stories.ts | 1 + .../component-meta/TsNameExport.stories.ts | 1 + .../decorators.stories.ts | 2 + .../mount-in-play.stories.ts | 1 + code/renderers/vue3/vitest.config.ts | 2 + .../lit-element-demo-card/input.js | 3 +- .../src/docs/custom-elements.test.ts | 4 +- .../src/docs/custom-elements.ts | 4 +- .../src/docs/sourceDecorator.test.ts | 9 ++- .../src/docs/sourceDecorator.ts | 7 +- .../docs/web-components-properties.test.ts | 7 +- .../web-components/src/entry-preview-docs.ts | 3 +- .../web-components/src/framework-api.ts | 1 - code/renderers/web-components/src/index.ts | 1 - code/renderers/web-components/src/preset.ts | 1 + .../web-components/src/public-types.ts | 5 +- code/renderers/web-components/src/render.ts | 8 +-- code/renderers/web-components/src/types.ts | 3 +- .../web-components/template/cli/js/Button.js | 1 + .../template/cli/js/Button.stories.js | 1 + .../template/cli/js/Header.stories.js | 1 + .../web-components/template/cli/js/Page.js | 1 + .../template/cli/js/Page.stories.js | 2 +- .../template/cli/ts-3-8/Button.stories.ts | 4 +- .../template/cli/ts-3-8/Button.ts | 1 + .../template/cli/ts-3-8/Header.stories.ts | 4 +- .../template/cli/ts-3-8/Page.stories.ts | 2 +- .../template/cli/ts-3-8/Page.ts | 1 + .../template/cli/ts-4-9/Button.stories.ts | 4 +- .../template/cli/ts-4-9/Button.ts | 1 + .../template/cli/ts-4-9/Header.stories.ts | 4 +- .../template/cli/ts-4-9/Page.stories.ts | 2 +- .../template/cli/ts-4-9/Page.ts | 1 + .../template/components/Button.js | 3 +- .../template/components/Form.js | 3 +- .../template/components/Html.js | 1 + .../web-components/template/components/Pre.js | 2 +- .../template/stories/demo-wc-card.stories.js | 1 + .../stories/demo-wc-card/DemoWcCard.js | 1 + .../renderers/web-components/vitest.config.ts | 1 + code/vitest-setup.ts | 2 +- 1564 files changed, 5108 insertions(+), 3337 deletions(-) diff --git a/code/.eslintrc.js b/code/.eslintrc.js index efb47a4e193f..baac3337d8d6 100644 --- a/code/.eslintrc.js +++ b/code/.eslintrc.js @@ -19,6 +19,10 @@ module.exports = { }, plugins: ['local-rules'], rules: { + 'import/no-extraneous-dependencies': [ + 'error', + { devDependencies: true, peerDependencies: true }, + ], 'import/no-unresolved': 'off', // covered by typescript 'eslint-comments/disable-enable-pair': ['error', { allowWholeFile: true }], 'eslint-comments/no-unused-disable': 'error', @@ -55,7 +59,13 @@ module.exports = { }, }, { - files: ['**/template/**/*', '**/vitest.config.ts', '**/addons/docs/**/*'], + files: [ + '*.test.*', + '*.spec.*', + '**/template/**/*', + '**/vitest.config.ts', + '**/addons/docs/**/*', + ], rules: { 'import/no-extraneous-dependencies': 'off', }, diff --git a/code/.storybook/main.ts b/code/.storybook/main.ts index 6a1f51f62f7c..b72d89e61a67 100644 --- a/code/.storybook/main.ts +++ b/code/.storybook/main.ts @@ -1,6 +1,7 @@ import path from 'path'; // eslint-disable-next-line @typescript-eslint/no-restricted-imports import { mergeConfig } from 'vite'; + import type { StorybookConfig } from '../frameworks/react-vite'; const componentsPath = path.join(__dirname, '../core/src/components'); diff --git a/code/.storybook/manager.tsx b/code/.storybook/manager.tsx index 0bf39f832e2e..b6c5ed75c345 100644 --- a/code/.storybook/manager.tsx +++ b/code/.storybook/manager.tsx @@ -1,4 +1,5 @@ import { addons } from 'storybook/internal/manager-api'; + import startCase from 'lodash/startCase.js'; addons.setConfig({ diff --git a/code/.storybook/preview-head.html b/code/.storybook/preview-head.html index 4037d732ffec..6bd5bc77dbe2 100644 --- a/code/.storybook/preview-head.html +++ b/code/.storybook/preview-head.html @@ -1,3 +1,2 @@ - +; diff --git a/code/.storybook/preview.tsx b/code/.storybook/preview.tsx index 548f29473efc..07d79f194746 100644 --- a/code/.storybook/preview.tsx +++ b/code/.storybook/preview.tsx @@ -1,24 +1,26 @@ -import { global } from '@storybook/global'; import React, { Fragment, useEffect } from 'react'; -import { isChromatic } from './isChromatic'; + +import type { Channel } from 'storybook/internal/channels'; +import { DocsContext as DocsContextProps, useArgs } from 'storybook/internal/preview-api'; +import type { PreviewWeb } from 'storybook/internal/preview-api'; import { Global, ThemeProvider, - themes, - createReset, convert, + createReset, styled, + themes, useTheme, } from 'storybook/internal/theming'; -import { useArgs, DocsContext as DocsContextProps } from 'storybook/internal/preview-api'; -import type { PreviewWeb } from 'storybook/internal/preview-api'; -import type { ReactRenderer, Decorator } from '@storybook/react'; -import type { Channel } from 'storybook/internal/channels'; import { DocsContext } from '@storybook/blocks'; +import { global } from '@storybook/global'; +import type { Decorator, ReactRenderer } from '@storybook/react'; + import { MINIMAL_VIEWPORTS } from '@storybook/addon-viewport'; import { DocsPageWrapper } from '../lib/blocks/src/components'; +import { isChromatic } from './isChromatic'; const { document } = global; diff --git a/code/addons/a11y/README.md b/code/addons/a11y/README.md index 64730ef61033..a6c984d21f65 100755 --- a/code/addons/a11y/README.md +++ b/code/addons/a11y/README.md @@ -168,7 +168,7 @@ You can override these options [at story level too](https://storybook.js.org/doc ```js import React from 'react'; -import { storiesOf, addDecorator, addParameters } from '@storybook/react'; +import { addDecorator, addParameters, storiesOf } from '@storybook/react'; export default { title: 'button', diff --git a/code/addons/a11y/src/a11yRunner.test.ts b/code/addons/a11y/src/a11yRunner.test.ts index 15d99c41002d..402ff24f6cb9 100644 --- a/code/addons/a11y/src/a11yRunner.test.ts +++ b/code/addons/a11y/src/a11yRunner.test.ts @@ -1,6 +1,8 @@ import type { Mock } from 'vitest'; -import { describe, beforeEach, it, expect, vi } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; + import { addons } from 'storybook/internal/preview-api'; + import { EVENTS } from './constants'; vi.mock('storybook/internal/preview-api'); diff --git a/code/addons/a11y/src/a11yRunner.ts b/code/addons/a11y/src/a11yRunner.ts index 44bac1ee093d..e1cae2ec96b2 100644 --- a/code/addons/a11y/src/a11yRunner.ts +++ b/code/addons/a11y/src/a11yRunner.ts @@ -1,5 +1,7 @@ -import { global } from '@storybook/global'; import { addons } from 'storybook/internal/preview-api'; + +import { global } from '@storybook/global'; + import { EVENTS } from './constants'; import type { A11yParameters } from './params'; diff --git a/code/addons/a11y/src/components/A11YPanel.test.tsx b/code/addons/a11y/src/components/A11YPanel.test.tsx index 7c621b6a377d..a88e3b678288 100644 --- a/code/addons/a11y/src/components/A11YPanel.test.tsx +++ b/code/addons/a11y/src/components/A11YPanel.test.tsx @@ -1,14 +1,14 @@ // @vitest-environment happy-dom +import { act, cleanup, fireEvent, render, waitFor } from '@testing-library/react'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; -import { describe, beforeEach, afterEach, it, expect, vi } from 'vitest'; import React from 'react'; -import { render, waitFor, fireEvent, act, cleanup } from '@testing-library/react'; -import { ThemeProvider, themes, convert } from 'storybook/internal/theming'; import * as api from 'storybook/internal/manager-api'; +import { ThemeProvider, convert, themes } from 'storybook/internal/theming'; -import { A11YPanel } from './A11YPanel'; import { EVENTS } from '../constants'; +import { A11YPanel } from './A11YPanel'; vi.mock('storybook/internal/manager-api'); diff --git a/code/addons/a11y/src/components/A11YPanel.tsx b/code/addons/a11y/src/components/A11YPanel.tsx index 0931bb5cc65d..4e259c4c155a 100644 --- a/code/addons/a11y/src/components/A11YPanel.tsx +++ b/code/addons/a11y/src/components/A11YPanel.tsx @@ -1,25 +1,23 @@ import React, { useCallback, useMemo, useState } from 'react'; -import { styled } from 'storybook/internal/theming'; - import { ActionBar, ScrollArea } from 'storybook/internal/components'; -import { SyncIcon, CheckIcon } from '@storybook/icons'; - -import type { AxeResults } from 'axe-core'; import { useChannel, useParameter, useStorybookApi, useStorybookState, } from 'storybook/internal/manager-api'; +import { styled } from 'storybook/internal/theming'; -import { Report } from './Report'; +import { CheckIcon, SyncIcon } from '@storybook/icons'; -import { Tabs } from './Tabs'; +import type { AxeResults } from 'axe-core'; -import { useA11yContext } from './A11yContext'; import { EVENTS } from '../constants'; import type { A11yParameters } from '../params'; +import { useA11yContext } from './A11yContext'; +import { Report } from './Report'; +import { Tabs } from './Tabs'; export enum RuleType { VIOLATION, diff --git a/code/addons/a11y/src/components/A11yContext.test.tsx b/code/addons/a11y/src/components/A11yContext.test.tsx index c65143106789..1a1aab3412b2 100644 --- a/code/addons/a11y/src/components/A11yContext.test.tsx +++ b/code/addons/a11y/src/components/A11yContext.test.tsx @@ -1,15 +1,18 @@ // @vitest-environment happy-dom +import { act, cleanup, render } from '@testing-library/react'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; -import { describe, beforeEach, afterEach, it, expect, vi } from 'vitest'; import * as React from 'react'; -import type { AxeResults } from 'axe-core'; -import { render, act, cleanup } from '@testing-library/react'; -import * as api from 'storybook/internal/manager-api'; + import { STORY_CHANGED } from 'storybook/internal/core-events'; +import * as api from 'storybook/internal/manager-api'; + import { HIGHLIGHT } from '@storybook/addon-highlight'; -import { A11yContextProvider, useA11yContext } from './A11yContext'; +import type { AxeResults } from 'axe-core'; + import { EVENTS } from '../constants'; +import { A11yContextProvider, useA11yContext } from './A11yContext'; vi.mock('storybook/internal/manager-api'); const mockedApi = vi.mocked(api); diff --git a/code/addons/a11y/src/components/A11yContext.tsx b/code/addons/a11y/src/components/A11yContext.tsx index 80c74518bc1a..35bc476328b1 100644 --- a/code/addons/a11y/src/components/A11yContext.tsx +++ b/code/addons/a11y/src/components/A11yContext.tsx @@ -1,9 +1,13 @@ import * as React from 'react'; -import { themes, convert } from 'storybook/internal/theming'; -import type { Result } from 'axe-core'; -import { useChannel, useAddonState, useStorybookApi } from 'storybook/internal/manager-api'; + import { STORY_CHANGED, STORY_RENDERED } from 'storybook/internal/core-events'; +import { useAddonState, useChannel, useStorybookApi } from 'storybook/internal/manager-api'; +import { convert, themes } from 'storybook/internal/theming'; + import { HIGHLIGHT } from '@storybook/addon-highlight'; + +import type { Result } from 'axe-core'; + import { ADDON_ID, EVENTS } from '../constants'; export interface Results { diff --git a/code/addons/a11y/src/components/Report/Elements.tsx b/code/addons/a11y/src/components/Report/Elements.tsx index d17697f66f88..6f1bf8f203b1 100644 --- a/code/addons/a11y/src/components/Report/Elements.tsx +++ b/code/addons/a11y/src/components/Report/Elements.tsx @@ -4,10 +4,10 @@ import React from 'react'; import { styled } from 'storybook/internal/theming'; import type { NodeResult } from 'axe-core'; -import { Rules } from './Rules'; import type { RuleType } from '../A11YPanel'; import HighlightToggle from './HighlightToggle'; +import { Rules } from './Rules'; const Item = styled.li({ fontWeight: 600, diff --git a/code/addons/a11y/src/components/Report/HighlightToggle.test.tsx b/code/addons/a11y/src/components/Report/HighlightToggle.test.tsx index b01b1d731202..4bfc197395a9 100644 --- a/code/addons/a11y/src/components/Report/HighlightToggle.test.tsx +++ b/code/addons/a11y/src/components/Report/HighlightToggle.test.tsx @@ -1,11 +1,13 @@ // @vitest-environment happy-dom +import { cleanup, fireEvent, render } from '@testing-library/react'; +import { afterEach, describe, expect, it, vi } from 'vitest'; -import { describe, it, expect, afterEach, vi } from 'vitest'; import React from 'react'; -import { render, fireEvent, cleanup } from '@testing-library/react'; + import type { NodeResult } from 'axe-core'; -import HighlightToggle from './HighlightToggle'; + import { A11yContext } from '../A11yContext'; +import HighlightToggle from './HighlightToggle'; const nodeResult = (target: string): NodeResult => ({ html: '', diff --git a/code/addons/a11y/src/components/Report/HighlightToggle.tsx b/code/addons/a11y/src/components/Report/HighlightToggle.tsx index 40f08966add8..acbd1159945d 100644 --- a/code/addons/a11y/src/components/Report/HighlightToggle.tsx +++ b/code/addons/a11y/src/components/Report/HighlightToggle.tsx @@ -1,7 +1,9 @@ import React from 'react'; + import { styled } from 'storybook/internal/theming'; import type { NodeResult } from 'axe-core'; + import { useA11yContext } from '../A11yContext'; interface ToggleProps { diff --git a/code/addons/a11y/src/components/Report/Info.tsx b/code/addons/a11y/src/components/Report/Info.tsx index 052cfb8de6b7..e85bac76ff6b 100644 --- a/code/addons/a11y/src/components/Report/Info.tsx +++ b/code/addons/a11y/src/components/Report/Info.tsx @@ -2,6 +2,7 @@ import type { FC } from 'react'; import React from 'react'; import { styled } from 'storybook/internal/theming'; + import type { Result } from 'axe-core'; const Wrapper = styled.div({ diff --git a/code/addons/a11y/src/components/Report/Item.tsx b/code/addons/a11y/src/components/Report/Item.tsx index 2089da0f63a3..54f564d1ed34 100644 --- a/code/addons/a11y/src/components/Report/Item.tsx +++ b/code/addons/a11y/src/components/Report/Item.tsx @@ -2,15 +2,15 @@ import React, { Fragment, useState } from 'react'; import { styled } from 'storybook/internal/theming'; -import type { Result } from 'axe-core'; -import { Info } from './Info'; +import { ChevronSmallDownIcon } from '@storybook/icons'; -import { Elements } from './Elements'; -import { Tags } from './Tags'; +import type { Result } from 'axe-core'; import type { RuleType } from '../A11YPanel'; +import { Elements } from './Elements'; import HighlightToggle from './HighlightToggle'; -import { ChevronSmallDownIcon } from '@storybook/icons'; +import { Info } from './Info'; +import { Tags } from './Tags'; const Wrapper = styled.div(({ theme }) => ({ display: 'flex', diff --git a/code/addons/a11y/src/components/Report/Rules.tsx b/code/addons/a11y/src/components/Report/Rules.tsx index a24ded693da7..4c4a9ed037cd 100644 --- a/code/addons/a11y/src/components/Report/Rules.tsx +++ b/code/addons/a11y/src/components/Report/Rules.tsx @@ -1,7 +1,9 @@ import type { FC } from 'react'; import React from 'react'; -import { styled } from 'storybook/internal/theming'; + import { Badge } from 'storybook/internal/components'; +import { styled } from 'storybook/internal/theming'; + import type { CheckResult } from 'axe-core'; import { useResizeDetector } from 'react-resize-detector'; diff --git a/code/addons/a11y/src/components/Report/Tags.tsx b/code/addons/a11y/src/components/Report/Tags.tsx index 4d8c2e81a386..e16c4d52f51f 100644 --- a/code/addons/a11y/src/components/Report/Tags.tsx +++ b/code/addons/a11y/src/components/Report/Tags.tsx @@ -2,6 +2,7 @@ import type { FC } from 'react'; import React from 'react'; import { styled } from 'storybook/internal/theming'; + import type { TagValue } from 'axe-core'; const Wrapper = styled.div({ diff --git a/code/addons/a11y/src/components/Report/index.tsx b/code/addons/a11y/src/components/Report/index.tsx index 0644488614f1..0de6a7d8f582 100644 --- a/code/addons/a11y/src/components/Report/index.tsx +++ b/code/addons/a11y/src/components/Report/index.tsx @@ -1,11 +1,12 @@ import type { FC } from 'react'; import React, { Fragment } from 'react'; + import { EmptyTabContent } from 'storybook/internal/components'; -import type { Result } from 'axe-core'; -import { Item } from './Item'; +import type { Result } from 'axe-core'; import type { RuleType } from '../A11YPanel'; +import { Item } from './Item'; export interface ReportProps { items: Result[]; diff --git a/code/addons/a11y/src/components/Tabs.tsx b/code/addons/a11y/src/components/Tabs.tsx index 6a3fbecbd46a..08ae46714dbd 100644 --- a/code/addons/a11y/src/components/Tabs.tsx +++ b/code/addons/a11y/src/components/Tabs.tsx @@ -1,12 +1,13 @@ import * as React from 'react'; import { styled } from 'storybook/internal/theming'; + import type { NodeResult, Result } from 'axe-core'; import { useResizeDetector } from 'react-resize-detector'; -import HighlightToggle from './Report/HighlightToggle'; import type { RuleType } from './A11YPanel'; import { useA11yContext } from './A11yContext'; +import HighlightToggle from './Report/HighlightToggle'; // TODO: reuse the Tabs component from @storybook/theming instead of re-building identical functionality diff --git a/code/addons/a11y/src/components/VisionSimulator.test.tsx b/code/addons/a11y/src/components/VisionSimulator.test.tsx index 4fb2e127e0b0..5db1d38e7973 100644 --- a/code/addons/a11y/src/components/VisionSimulator.test.tsx +++ b/code/addons/a11y/src/components/VisionSimulator.test.tsx @@ -1,11 +1,13 @@ // @vitest-environment happy-dom - /// ; -import { describe, it, expect } from 'vitest'; -import React from 'react'; -import { render, fireEvent, screen, waitFor } from '@testing-library/react'; +import { fireEvent, render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import { ThemeProvider, themes, convert } from 'storybook/internal/theming'; +import { describe, expect, it } from 'vitest'; + +import React from 'react'; + +import { ThemeProvider, convert, themes } from 'storybook/internal/theming'; + import { VisionSimulator, baseList } from './VisionSimulator'; const getOptionByNameAndPercentage = (option: string, percentage?: number) => diff --git a/code/addons/a11y/src/components/VisionSimulator.tsx b/code/addons/a11y/src/components/VisionSimulator.tsx index 419da70240a6..2acc66b21c71 100644 --- a/code/addons/a11y/src/components/VisionSimulator.tsx +++ b/code/addons/a11y/src/components/VisionSimulator.tsx @@ -1,9 +1,11 @@ import type { ReactNode } from 'react'; import React, { useState } from 'react'; + +import { IconButton, TooltipLinkList, WithTooltip } from 'storybook/internal/components'; import { Global, styled } from 'storybook/internal/theming'; -import { IconButton, WithTooltip, TooltipLinkList } from 'storybook/internal/components'; import { AccessibilityIcon } from '@storybook/icons'; + import { Filters } from './ColorFilters'; const iframeId = 'storybook-preview-iframe'; diff --git a/code/addons/a11y/src/manager.test.tsx b/code/addons/a11y/src/manager.test.tsx index 546551ff9467..c95bdf629d0f 100644 --- a/code/addons/a11y/src/manager.test.tsx +++ b/code/addons/a11y/src/manager.test.tsx @@ -1,8 +1,9 @@ // @vitest-environment happy-dom +import { describe, expect, it, vi } from 'vitest'; -import { describe, it, expect, vi } from 'vitest'; import * as api from 'storybook/internal/manager-api'; import type { Addon_BaseType } from 'storybook/internal/types'; + import { PANEL_ID } from './constants'; import './manager'; diff --git a/code/addons/a11y/src/manager.tsx b/code/addons/a11y/src/manager.tsx index b423e029b310..41e79b3061df 100644 --- a/code/addons/a11y/src/manager.tsx +++ b/code/addons/a11y/src/manager.tsx @@ -1,11 +1,13 @@ import React from 'react'; -import { addons, types, useAddonState } from 'storybook/internal/manager-api'; + import { Badge, Spaced } from 'storybook/internal/components'; -import { ADDON_ID, PANEL_ID, PARAM_KEY } from './constants'; -import { VisionSimulator } from './components/VisionSimulator'; +import { addons, types, useAddonState } from 'storybook/internal/manager-api'; + import { A11YPanel } from './components/A11YPanel'; import type { Results } from './components/A11yContext'; import { A11yContextProvider } from './components/A11yContext'; +import { VisionSimulator } from './components/VisionSimulator'; +import { ADDON_ID, PANEL_ID, PARAM_KEY } from './constants'; const Title = () => { const [addonState] = useAddonState(ADDON_ID); diff --git a/code/addons/a11y/src/params.ts b/code/addons/a11y/src/params.ts index 4d529eac8503..2428b38add45 100644 --- a/code/addons/a11y/src/params.ts +++ b/code/addons/a11y/src/params.ts @@ -1,4 +1,4 @@ -import type { ElementContext, Spec, RunOptions } from 'axe-core'; +import type { ElementContext, RunOptions, Spec } from 'axe-core'; export interface Setup { element?: ElementContext; diff --git a/code/addons/a11y/vitest.config.ts b/code/addons/a11y/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/a11y/vitest.config.ts +++ b/code/addons/a11y/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/actions/src/addArgs.ts b/code/addons/actions/src/addArgs.ts index 1a114fa22222..f0ee718ed28a 100644 --- a/code/addons/actions/src/addArgs.ts +++ b/code/addons/actions/src/addArgs.ts @@ -1,4 +1,5 @@ import type { ArgsEnhancer } from 'storybook/internal/types'; + import { addActionsFromArgTypes, inferActionsFromArgTypesRegex } from './addArgsHelpers'; export const argsEnhancers: ArgsEnhancer[] = [ diff --git a/code/addons/actions/src/addArgsHelpers.test.ts b/code/addons/actions/src/addArgsHelpers.test.ts index 4ad092c93b9c..99b8da579089 100644 --- a/code/addons/actions/src/addArgsHelpers.test.ts +++ b/code/addons/actions/src/addArgsHelpers.test.ts @@ -1,6 +1,8 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import type { StoryContext } from 'storybook/internal/types'; -import { inferActionsFromArgTypesRegex, addActionsFromArgTypes } from './addArgsHelpers'; + +import { addActionsFromArgTypes, inferActionsFromArgTypesRegex } from './addArgsHelpers'; describe('actions parameter enhancers', () => { describe('actions.argTypesRegex parameter', () => { diff --git a/code/addons/actions/src/addArgsHelpers.ts b/code/addons/actions/src/addArgsHelpers.ts index f86400fdaab0..f13b98274df4 100644 --- a/code/addons/actions/src/addArgsHelpers.ts +++ b/code/addons/actions/src/addArgsHelpers.ts @@ -1,4 +1,5 @@ -import type { Args, Renderer, ArgsEnhancer } from 'storybook/internal/types'; +import type { Args, ArgsEnhancer, Renderer } from 'storybook/internal/types'; + import { action } from './runtime/action'; // interface ActionsParameter { diff --git a/code/addons/actions/src/components/ActionLogger/index.tsx b/code/addons/actions/src/components/ActionLogger/index.tsx index afff6535f047..25ab0da611ac 100644 --- a/code/addons/actions/src/components/ActionLogger/index.tsx +++ b/code/addons/actions/src/components/ActionLogger/index.tsx @@ -1,13 +1,14 @@ import type { ElementRef, ReactNode } from 'react'; -import React, { forwardRef, Fragment, useEffect, useRef } from 'react'; +import React, { Fragment, forwardRef, useEffect, useRef } from 'react'; + +import { ActionBar, ScrollArea } from 'storybook/internal/components'; import type { Theme } from 'storybook/internal/theming'; import { styled, withTheme } from 'storybook/internal/theming'; import { Inspector } from 'react-inspector'; -import { ActionBar, ScrollArea } from 'storybook/internal/components'; -import { Action, Counter, InspectorContainer } from './style'; import type { ActionDisplay } from '../../models'; +import { Action, Counter, InspectorContainer } from './style'; const UnstyledWrapped = forwardRef( ({ children, className }, ref) => ( diff --git a/code/addons/actions/src/components/ActionLogger/style.tsx b/code/addons/actions/src/components/ActionLogger/style.tsx index 351cda9a95a2..77e5e30e910e 100644 --- a/code/addons/actions/src/components/ActionLogger/style.tsx +++ b/code/addons/actions/src/components/ActionLogger/style.tsx @@ -1,4 +1,5 @@ import { styled } from 'storybook/internal/theming'; + import { opacify } from 'polished'; export const Action = styled.div({ diff --git a/code/addons/actions/src/containers/ActionLogger/index.tsx b/code/addons/actions/src/containers/ActionLogger/index.tsx index ff9e50302633..075ba94af565 100644 --- a/code/addons/actions/src/containers/ActionLogger/index.tsx +++ b/code/addons/actions/src/containers/ActionLogger/index.tsx @@ -1,12 +1,13 @@ import React, { Component } from 'react'; -import { dequal as deepEqual } from 'dequal'; -import type { API } from 'storybook/internal/manager-api'; import { STORY_CHANGED } from 'storybook/internal/core-events'; +import type { API } from 'storybook/internal/manager-api'; + +import { dequal as deepEqual } from 'dequal'; import { ActionLogger as ActionLoggerComponent } from '../../components/ActionLogger'; -import type { ActionDisplay } from '../../models'; import { CLEAR_ID, EVENT_ID } from '../../constants'; +import type { ActionDisplay } from '../../models'; interface ActionLoggerProps { active: boolean; diff --git a/code/addons/actions/src/decorator.ts b/code/addons/actions/src/decorator.ts index 6e8319680cd3..e0eb6148f216 100644 --- a/code/addons/actions/src/decorator.ts +++ b/code/addons/actions/src/decorator.ts @@ -1,9 +1,10 @@ -import { global } from '@storybook/global'; -import { useEffect, makeDecorator } from 'storybook/internal/preview-api'; +import { makeDecorator, useEffect } from 'storybook/internal/preview-api'; import type { PartialStoryFn, Renderer } from 'storybook/internal/types'; -import { actions } from './runtime/actions'; + +import { global } from '@storybook/global'; import { PARAM_KEY } from './constants'; +import { actions } from './runtime/actions'; const { document, Element } = global; diff --git a/code/addons/actions/src/loaders.ts b/code/addons/actions/src/loaders.ts index 93bc938cb652..585d8e3815b7 100644 --- a/code/addons/actions/src/loaders.ts +++ b/code/addons/actions/src/loaders.ts @@ -1,7 +1,9 @@ /* eslint-disable no-underscore-dangle */ import type { LoaderFunction } from 'storybook/internal/types'; + import { global } from '@storybook/global'; import type { onMockCall as onMockCallType } from '@storybook/test'; + import { action } from './runtime'; let subscribed = false; diff --git a/code/addons/actions/src/manager.tsx b/code/addons/actions/src/manager.tsx index 944f5e4e5971..341d9c1f423f 100644 --- a/code/addons/actions/src/manager.tsx +++ b/code/addons/actions/src/manager.tsx @@ -1,9 +1,11 @@ import React from 'react'; -import { addons, types, useAddonState, useChannel } from 'storybook/internal/manager-api'; -import { STORY_CHANGED } from 'storybook/internal/core-events'; + import { Badge, Spaced } from 'storybook/internal/components'; -import ActionLogger from './containers/ActionLogger'; +import { STORY_CHANGED } from 'storybook/internal/core-events'; +import { addons, types, useAddonState, useChannel } from 'storybook/internal/manager-api'; + import { ADDON_ID, CLEAR_ID, EVENT_ID, PANEL_ID, PARAM_KEY } from './constants'; +import ActionLogger from './containers/ActionLogger'; function Title() { const [{ count }, setCount] = useAddonState(ADDON_ID, { count: 0 }); diff --git a/code/addons/actions/src/runtime/__tests__/action.test.js b/code/addons/actions/src/runtime/__tests__/action.test.js index 5276d7a75e51..cd6e695304f5 100644 --- a/code/addons/actions/src/runtime/__tests__/action.test.js +++ b/code/addons/actions/src/runtime/__tests__/action.test.js @@ -1,5 +1,7 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import { addons } from 'storybook/internal/preview-api'; + import { action, configureActions } from '../..'; vi.mock('storybook/internal/preview-api'); diff --git a/code/addons/actions/src/runtime/__tests__/actions.test.js b/code/addons/actions/src/runtime/__tests__/actions.test.js index 04cf68b9e79b..3e524d827a08 100644 --- a/code/addons/actions/src/runtime/__tests__/actions.test.js +++ b/code/addons/actions/src/runtime/__tests__/actions.test.js @@ -1,5 +1,7 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import { addons } from 'storybook/internal/preview-api'; + import { actions } from '../..'; vi.mock('storybook/internal/preview-api'); diff --git a/code/addons/actions/src/runtime/__tests__/configureActions.test.js b/code/addons/actions/src/runtime/__tests__/configureActions.test.js index 7034904a2a5c..acd29ac33166 100644 --- a/code/addons/actions/src/runtime/__tests__/configureActions.test.js +++ b/code/addons/actions/src/runtime/__tests__/configureActions.test.js @@ -1,6 +1,7 @@ -import { describe, it, expect } from 'vitest'; -import { config } from '../configureActions'; +import { describe, expect, it } from 'vitest'; + import { configureActions } from '../..'; +import { config } from '../configureActions'; describe('Configure Actions', () => { it('can configure actions', () => { diff --git a/code/addons/actions/src/runtime/action.ts b/code/addons/actions/src/runtime/action.ts index a5b39c3e340a..00295c007e8d 100644 --- a/code/addons/actions/src/runtime/action.ts +++ b/code/addons/actions/src/runtime/action.ts @@ -1,9 +1,12 @@ -import { v4 as uuidv4 } from 'uuid'; import type { PreviewWeb } from 'storybook/internal/preview-api'; import { addons } from 'storybook/internal/preview-api'; +import { ImplicitActionsDuringRendering } from 'storybook/internal/preview-errors'; import type { Renderer } from 'storybook/internal/types'; + import { global } from '@storybook/global'; -import { ImplicitActionsDuringRendering } from 'storybook/internal/preview-errors'; + +import { v4 as uuidv4 } from 'uuid'; + import { EVENT_ID } from '../constants'; import type { ActionDisplay, ActionOptions, HandlerFunction } from '../models'; import { config } from './configureActions'; diff --git a/code/addons/actions/src/runtime/actions.ts b/code/addons/actions/src/runtime/actions.ts index 3deeb185e641..9cbb57c4198b 100644 --- a/code/addons/actions/src/runtime/actions.ts +++ b/code/addons/actions/src/runtime/actions.ts @@ -1,5 +1,5 @@ +import type { ActionOptions, ActionsFunction, ActionsMap } from '../models'; import { action } from './action'; -import type { ActionsFunction, ActionOptions, ActionsMap } from '../models'; import { config } from './configureActions'; export const actions: ActionsFunction = (...args: any[]) => { diff --git a/code/addons/actions/template/stories/parameters.stories.ts b/code/addons/actions/template/stories/parameters.stories.ts index e4a5bf0ef9dd..f184f89a1538 100644 --- a/code/addons/actions/template/stories/parameters.stories.ts +++ b/code/addons/actions/template/stories/parameters.stories.ts @@ -1,4 +1,5 @@ import { global as globalThis } from '@storybook/global'; + import { withActions } from '@storybook/addon-actions/decorator'; export default { diff --git a/code/addons/actions/vitest.config.ts b/code/addons/actions/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/actions/vitest.config.ts +++ b/code/addons/actions/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/backgrounds/src/components/Tool.tsx b/code/addons/backgrounds/src/components/Tool.tsx index e214780714e4..5f94606d0614 100644 --- a/code/addons/backgrounds/src/components/Tool.tsx +++ b/code/addons/backgrounds/src/components/Tool.tsx @@ -1,9 +1,10 @@ -import React, { useState, memo, Fragment, useCallback } from 'react'; +import React, { Fragment, memo, useCallback, useState } from 'react'; +import { IconButton, TooltipLinkList, WithTooltip } from 'storybook/internal/components'; import { useGlobals, useParameter } from 'storybook/internal/manager-api'; -import { IconButton, WithTooltip, TooltipLinkList } from 'storybook/internal/components'; import { CircleIcon, GridIcon, PhotoIcon, RefreshIcon } from '@storybook/icons'; + import { PARAM_KEY as KEY } from '../constants'; import type { Background, BackgroundMap, Config, GlobalStateUpdate } from '../types'; diff --git a/code/addons/backgrounds/src/decorator.ts b/code/addons/backgrounds/src/decorator.ts index bdee2f2ea19b..ecaccb44c99d 100644 --- a/code/addons/backgrounds/src/decorator.ts +++ b/code/addons/backgrounds/src/decorator.ts @@ -1,13 +1,13 @@ import { useEffect } from 'storybook/internal/preview-api'; import type { Renderer, - PartialStoryFn as StoryFunction, StoryContext, + PartialStoryFn as StoryFunction, } from 'storybook/internal/types'; import { PARAM_KEY as KEY } from './constants'; -import { clearStyles, addBackgroundStyle, isReduceMotionEnabled, addGridStyle } from './utils'; import type { Config, GridConfig } from './types'; +import { addBackgroundStyle, addGridStyle, clearStyles, isReduceMotionEnabled } from './utils'; const defaultGrid: GridConfig = { cellSize: 100, diff --git a/code/addons/backgrounds/src/legacy/BackgroundSelectorLegacy.tsx b/code/addons/backgrounds/src/legacy/BackgroundSelectorLegacy.tsx index dcc8ffb8e658..cc5bc3d00b7b 100644 --- a/code/addons/backgrounds/src/legacy/BackgroundSelectorLegacy.tsx +++ b/code/addons/backgrounds/src/legacy/BackgroundSelectorLegacy.tsx @@ -1,15 +1,17 @@ import type { FC, ReactElement } from 'react'; -import React, { useState, useCallback, useMemo, memo } from 'react'; -import memoize from 'memoizerific'; +import React, { memo, useCallback, useMemo, useState } from 'react'; -import { useParameter, useGlobals } from 'storybook/internal/manager-api'; import { logger } from 'storybook/internal/client-logger'; -import { IconButton, WithTooltip, TooltipLinkList } from 'storybook/internal/components'; +import { IconButton, TooltipLinkList, WithTooltip } from 'storybook/internal/components'; +import { useGlobals, useParameter } from 'storybook/internal/manager-api'; import { PhotoIcon } from '@storybook/icons'; + +import memoize from 'memoizerific'; + import { PARAM_KEY as BACKGROUNDS_PARAM_KEY } from '../constants'; -import { ColorIcon } from './ColorIcon'; import type { Background } from '../types'; +import { ColorIcon } from './ColorIcon'; import { getBackgroundColorByName } from './getBackgroundColorByName'; export interface DeprecatedGlobalState { diff --git a/code/addons/backgrounds/src/legacy/GridSelectorLegacy.tsx b/code/addons/backgrounds/src/legacy/GridSelectorLegacy.tsx index e061fd4f2311..2cb6e192574c 100644 --- a/code/addons/backgrounds/src/legacy/GridSelectorLegacy.tsx +++ b/code/addons/backgrounds/src/legacy/GridSelectorLegacy.tsx @@ -1,10 +1,11 @@ import type { FC } from 'react'; import React, { memo } from 'react'; -import { useGlobals, useParameter } from 'storybook/internal/manager-api'; import { IconButton } from 'storybook/internal/components'; +import { useGlobals, useParameter } from 'storybook/internal/manager-api'; import { GridIcon } from '@storybook/icons'; + import { PARAM_KEY as BACKGROUNDS_PARAM_KEY } from '../constants'; export const GridToolLegacy: FC = memo(function GridSelector() { diff --git a/code/addons/backgrounds/src/legacy/getBackgroundColorByName.ts b/code/addons/backgrounds/src/legacy/getBackgroundColorByName.ts index 95b5296752c1..e5fea7ee637d 100644 --- a/code/addons/backgrounds/src/legacy/getBackgroundColorByName.ts +++ b/code/addons/backgrounds/src/legacy/getBackgroundColorByName.ts @@ -1,5 +1,7 @@ -import { dedent } from 'ts-dedent'; import { logger } from 'storybook/internal/client-logger'; + +import { dedent } from 'ts-dedent'; + import type { Background } from '../types'; export const getBackgroundColorByName = ( diff --git a/code/addons/backgrounds/src/legacy/withBackgroundLegacy.ts b/code/addons/backgrounds/src/legacy/withBackgroundLegacy.ts index ba649a0a1d36..a7d42e9d46b0 100644 --- a/code/addons/backgrounds/src/legacy/withBackgroundLegacy.ts +++ b/code/addons/backgrounds/src/legacy/withBackgroundLegacy.ts @@ -1,12 +1,12 @@ -import { useMemo, useEffect } from 'storybook/internal/preview-api'; +import { useEffect, useMemo } from 'storybook/internal/preview-api'; import type { Renderer, - PartialStoryFn as StoryFunction, StoryContext, + PartialStoryFn as StoryFunction, } from 'storybook/internal/types'; import { PARAM_KEY as BACKGROUNDS_PARAM_KEY } from '../constants'; -import { clearStyles, addBackgroundStyle, isReduceMotionEnabled } from '../utils'; +import { addBackgroundStyle, clearStyles, isReduceMotionEnabled } from '../utils'; import { getBackgroundColorByName } from './getBackgroundColorByName'; export const withBackground = ( diff --git a/code/addons/backgrounds/src/legacy/withGridLegacy.ts b/code/addons/backgrounds/src/legacy/withGridLegacy.ts index 801a1962d926..3fb711c772e2 100644 --- a/code/addons/backgrounds/src/legacy/withGridLegacy.ts +++ b/code/addons/backgrounds/src/legacy/withGridLegacy.ts @@ -1,12 +1,12 @@ -import { useMemo, useEffect } from 'storybook/internal/preview-api'; +import { useEffect, useMemo } from 'storybook/internal/preview-api'; import type { Renderer, - PartialStoryFn as StoryFunction, StoryContext, + PartialStoryFn as StoryFunction, } from 'storybook/internal/types'; -import { clearStyles, addGridStyle } from '../utils'; import { PARAM_KEY as BACKGROUNDS_PARAM_KEY } from '../constants'; +import { addGridStyle, clearStyles } from '../utils'; export const withGrid = (StoryFn: StoryFunction, context: StoryContext) => { const { globals, parameters } = context; diff --git a/code/addons/backgrounds/src/manager.tsx b/code/addons/backgrounds/src/manager.tsx index 3f8ab23da58d..a1cc71c46ea4 100644 --- a/code/addons/backgrounds/src/manager.tsx +++ b/code/addons/backgrounds/src/manager.tsx @@ -1,10 +1,11 @@ import React, { Fragment } from 'react'; + import { addons, types } from 'storybook/internal/manager-api'; +import { BackgroundTool } from './components/Tool'; import { ADDON_ID } from './constants'; import { BackgroundToolLegacy } from './legacy/BackgroundSelectorLegacy'; import { GridToolLegacy } from './legacy/GridSelectorLegacy'; -import { BackgroundTool } from './components/Tool'; addons.register(ADDON_ID, () => { addons.add(ADDON_ID, { diff --git a/code/addons/backgrounds/src/preview.ts b/code/addons/backgrounds/src/preview.ts index dad8dad077bb..9d773da2d48e 100644 --- a/code/addons/backgrounds/src/preview.ts +++ b/code/addons/backgrounds/src/preview.ts @@ -1,8 +1,9 @@ import type { Addon_DecoratorFunction } from 'storybook/internal/types'; -import { withBackground } from './legacy/withBackgroundLegacy'; -import { withGrid } from './legacy/withGridLegacy'; + import { PARAM_KEY as KEY } from './constants'; import { withBackgroundAndGrid } from './decorator'; +import { withBackground } from './legacy/withBackgroundLegacy'; +import { withGrid } from './legacy/withGridLegacy'; import type { Config, GlobalState } from './types'; export const decorators: Addon_DecoratorFunction[] = FEATURES?.backgroundsStoryGlobals diff --git a/code/addons/backgrounds/vitest.config.ts b/code/addons/backgrounds/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/backgrounds/vitest.config.ts +++ b/code/addons/backgrounds/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/controls/src/ControlsPanel.tsx b/code/addons/controls/src/ControlsPanel.tsx index 20d3e695c2bd..a84591aefb41 100644 --- a/code/addons/controls/src/ControlsPanel.tsx +++ b/code/addons/controls/src/ControlsPanel.tsx @@ -1,19 +1,22 @@ -import { dequal as deepEqual } from 'dequal'; import React, { useEffect, useMemo, useState } from 'react'; -import { global } from '@storybook/global'; + import { + useArgTypes, useArgs, useGlobals, - useArgTypes, useParameter, useStorybookState, } from 'storybook/internal/manager-api'; -import { PureArgsTable as ArgsTable, type PresetColor, type SortType } from '@storybook/blocks'; import { styled } from 'storybook/internal/theming'; import type { ArgTypes } from 'storybook/internal/types'; -import { PARAM_KEY } from './constants'; +import { PureArgsTable as ArgsTable, type PresetColor, type SortType } from '@storybook/blocks'; +import { global } from '@storybook/global'; + +import { dequal as deepEqual } from 'dequal'; + import { SaveStory } from './SaveStory'; +import { PARAM_KEY } from './constants'; // Remove undefined values (top-level only) const clean = (obj: { [key: string]: any }) => diff --git a/code/addons/controls/src/SaveStory.stories.tsx b/code/addons/controls/src/SaveStory.stories.tsx index 9dbe620da7fb..9c39f6746e04 100644 --- a/code/addons/controls/src/SaveStory.stories.tsx +++ b/code/addons/controls/src/SaveStory.stories.tsx @@ -1,9 +1,11 @@ import React from 'react'; -import { action } from '@storybook/addon-actions'; + import type { Meta, StoryObj } from '@storybook/react'; +import { expect, fireEvent, fn, userEvent, within } from '@storybook/test'; + +import { action } from '@storybook/addon-actions'; import { SaveStory } from './SaveStory'; -import { expect, fireEvent, fn, userEvent, within } from '@storybook/test'; const meta = { component: SaveStory, diff --git a/code/addons/controls/src/SaveStory.tsx b/code/addons/controls/src/SaveStory.tsx index 8cb9bf716a3f..56e50a0f0326 100644 --- a/code/addons/controls/src/SaveStory.tsx +++ b/code/addons/controls/src/SaveStory.tsx @@ -1,3 +1,5 @@ +import React from 'react'; + import { Bar as BaseBar, Button, @@ -7,9 +9,9 @@ import { TooltipNote, WithTooltip, } from 'storybook/internal/components'; -import { AddIcon, CheckIcon, UndoIcon } from '@storybook/icons'; import { keyframes, styled } from 'storybook/internal/theming'; -import React from 'react'; + +import { AddIcon, CheckIcon, UndoIcon } from '@storybook/icons'; const slideIn = keyframes({ from: { transform: 'translateY(40px)' }, diff --git a/code/addons/controls/src/manager.tsx b/code/addons/controls/src/manager.tsx index 31640963a522..b745bad9eb16 100644 --- a/code/addons/controls/src/manager.tsx +++ b/code/addons/controls/src/manager.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { dequal as deepEqual } from 'dequal'; + import { AddonPanel, Badge, Spaced } from 'storybook/internal/components'; import type { ResponseData, @@ -14,9 +14,13 @@ import { useArgTypes, } from 'storybook/internal/manager-api'; import { color } from 'storybook/internal/theming'; + +import type { Args } from '@storybook/csf'; + +import { dequal as deepEqual } from 'dequal'; + import { ControlsPanel } from './ControlsPanel'; import { ADDON_ID, PARAM_KEY } from './constants'; -import type { Args } from '@storybook/csf'; function Title() { const rows = useArgTypes(); diff --git a/code/addons/controls/src/preset/checkDocsLoaded.ts b/code/addons/controls/src/preset/checkDocsLoaded.ts index bd801324a1ee..ff29457f59f1 100644 --- a/code/addons/controls/src/preset/checkDocsLoaded.ts +++ b/code/addons/controls/src/preset/checkDocsLoaded.ts @@ -1,4 +1,5 @@ import { checkAddonOrder, serverRequire } from 'storybook/internal/common'; + import path from 'path'; export const checkDocsLoaded = (configDir: string) => { diff --git a/code/addons/controls/template/stories/basics.stories.ts b/code/addons/controls/template/stories/basics.stories.ts index a75abbf2fb4d..bcd5cd147aae 100644 --- a/code/addons/controls/template/stories/basics.stories.ts +++ b/code/addons/controls/template/stories/basics.stories.ts @@ -1,6 +1,7 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, StoryContext } from 'storybook/internal/types'; +import { global as globalThis } from '@storybook/global'; + export default { component: globalThis.Components.Pre, decorators: [ diff --git a/code/addons/controls/template/stories/conditional.stories.ts b/code/addons/controls/template/stories/conditional.stories.ts index ed3c51d8ba8e..56d43aa7366f 100644 --- a/code/addons/controls/template/stories/conditional.stories.ts +++ b/code/addons/controls/template/stories/conditional.stories.ts @@ -1,6 +1,7 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, StoryContext } from 'storybook/internal/types'; +import { global as globalThis } from '@storybook/global'; + export default { component: globalThis.Components.Pre, decorators: [ diff --git a/code/addons/controls/template/stories/disable.stories.ts b/code/addons/controls/template/stories/disable.stories.ts index 653840df5de8..2402d982e451 100644 --- a/code/addons/controls/template/stories/disable.stories.ts +++ b/code/addons/controls/template/stories/disable.stories.ts @@ -1,6 +1,7 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, StoryContext } from 'storybook/internal/types'; +import { global as globalThis } from '@storybook/global'; + export default { component: globalThis.Components.Pre, decorators: [ diff --git a/code/addons/controls/template/stories/filters.stories.ts b/code/addons/controls/template/stories/filters.stories.ts index 983e58905243..e2378d6d0cad 100644 --- a/code/addons/controls/template/stories/filters.stories.ts +++ b/code/addons/controls/template/stories/filters.stories.ts @@ -1,6 +1,7 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, StoryContext } from 'storybook/internal/types'; +import { global as globalThis } from '@storybook/global'; + export default { component: globalThis.Components.Pre, decorators: [ diff --git a/code/addons/controls/template/stories/issues.stories.ts b/code/addons/controls/template/stories/issues.stories.ts index b320f54b1eba..636baf38d531 100644 --- a/code/addons/controls/template/stories/issues.stories.ts +++ b/code/addons/controls/template/stories/issues.stories.ts @@ -1,6 +1,7 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, StoryContext } from 'storybook/internal/types'; +import { global as globalThis } from '@storybook/global'; + export default { component: globalThis.Components.Pre, decorators: [ diff --git a/code/addons/controls/template/stories/matchers.stories.ts b/code/addons/controls/template/stories/matchers.stories.ts index bc5a896d4f6e..b54703120f72 100644 --- a/code/addons/controls/template/stories/matchers.stories.ts +++ b/code/addons/controls/template/stories/matchers.stories.ts @@ -1,6 +1,7 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, StoryContext } from 'storybook/internal/types'; +import { global as globalThis } from '@storybook/global'; + export default { component: globalThis.Components.Pre, decorators: [ diff --git a/code/addons/controls/template/stories/sorting.stories.ts b/code/addons/controls/template/stories/sorting.stories.ts index dc6a66acdc31..c3b7b831dec6 100644 --- a/code/addons/controls/template/stories/sorting.stories.ts +++ b/code/addons/controls/template/stories/sorting.stories.ts @@ -1,6 +1,7 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, StoryContext } from 'storybook/internal/types'; +import { global as globalThis } from '@storybook/global'; + export default { component: globalThis.Components.Pre, decorators: [ diff --git a/code/addons/controls/vitest.config.ts b/code/addons/controls/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/controls/vitest.config.ts +++ b/code/addons/controls/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/docs/docs/docspage.md b/code/addons/docs/docs/docspage.md index ea50050f6b94..478b674609b9 100644 --- a/code/addons/docs/docs/docspage.md +++ b/code/addons/docs/docs/docspage.md @@ -70,6 +70,7 @@ You can replace DocsPage at any level by overriding the `docs.page` parameter: ```js import { addParameters } from '@storybook/react'; + addParameters({ docs: { page: null } }); ``` @@ -77,6 +78,7 @@ addParameters({ docs: { page: null } }); ```js import { Button } from './Button'; + export default { title: 'Demo/Button', component: Button, @@ -101,7 +103,7 @@ Here's an example of rebuilding `DocsPage` out of doc blocks: ```js import React from 'react'; -import { Title, Subtitle, Description, Primary, ArgsTable, Stories } from '@storybook/addon-docs'; +import { ArgsTable, Description, Primary, Stories, Subtitle, Title } from '@storybook/addon-docs'; import { DocgenButton } from '../../components/DocgenButton'; export default { @@ -140,9 +142,9 @@ That being said, there is a system in place to remove the necessity of this trad ```js import React from 'react'; -import { render } from 'react-dom'; -import toReact from '@egoist/vue-to-react'; import { addParameters } from '@storybook/vue'; +import toReact from '@egoist/vue-to-react'; +import { render } from 'react-dom'; addParameters({ docs: { diff --git a/code/addons/docs/docs/multiframework.md b/code/addons/docs/docs/multiframework.md index 070d94089b00..c68201aabdc3 100644 --- a/code/addons/docs/docs/multiframework.md +++ b/code/addons/docs/docs/multiframework.md @@ -113,7 +113,7 @@ This dynamic rendering is framework-specific, meaning it needs a custom implemen Let's take a look at the React framework implementation of `dynamic` snippets as a reference for implementing this feature in other frameworks: ```tsx -import { addons, StoryContext } from '@storybook/preview-api'; +import { StoryContext, addons } from '@storybook/preview-api'; import { SNIPPET_RENDERED } from '../../shared'; export const jsxDecorator = (storyFn: any, context: StoryContext) => { @@ -150,6 +150,7 @@ Now we need a way to configure how it's displayed in the UI: ```tsx import { jsxDecorator } from './jsxDecorator'; + export const decorators = [jsxDecorator]; ``` diff --git a/code/addons/docs/docs/props-tables.md b/code/addons/docs/docs/props-tables.md index 8dd5e8f7a285..7a44a6c653ae 100644 --- a/code/addons/docs/docs/props-tables.md +++ b/code/addons/docs/docs/props-tables.md @@ -104,6 +104,7 @@ Consider the following input: // Button.js import React from 'react'; import PropTypes from 'prop-types'; + export const Button = ({ label }) => ; Button.propTypes = { /** demo description */ diff --git a/code/addons/docs/docs/recipes.md b/code/addons/docs/docs/recipes.md index 0a982974f390..e760a61e08f4 100644 --- a/code/addons/docs/docs/recipes.md +++ b/code/addons/docs/docs/recipes.md @@ -106,6 +106,7 @@ And I can also embed arbitrary markdown & JSX in this file. import React from 'react'; import { Button } from './Button'; import mdx from './Button.mdx'; + export default { title: 'Demo/Button', parameters: { diff --git a/code/addons/docs/docs/theming.md b/code/addons/docs/docs/theming.md index 6f66a2d37267..6c4c8ac13082 100644 --- a/code/addons/docs/docs/theming.md +++ b/code/addons/docs/docs/theming.md @@ -14,9 +14,9 @@ Storybook theming is the **recommended way** to theme your docs. Docs uses the s Supposing you have a Storybook theme defined for the main UI in `.storybook/manager.js`: ```js -import { addons } from '@storybook/manager-api'; // or a custom theme import { themes } from '@storybook/theming'; +import { addons } from '@storybook/manager-api'; addons.setConfig({ theme: themes.dark, diff --git a/code/addons/docs/ember/README.md b/code/addons/docs/ember/README.md index 7491de442845..9418707e31b1 100644 --- a/code/addons/docs/ember/README.md +++ b/code/addons/docs/ember/README.md @@ -52,6 +52,7 @@ Next, add the following to your `.storybook/preview.js` to load the generated js ```js import { setJSONDoc } from '@storybook/addon-docs/ember'; import docJson from '../dist/storybook-docgen/index.json'; + setJSONDoc(docJson); ``` diff --git a/code/addons/docs/src/DocsRenderer.tsx b/code/addons/docs/src/DocsRenderer.tsx index 0124bf4dabe6..238cfbb27bba 100644 --- a/code/addons/docs/src/DocsRenderer.tsx +++ b/code/addons/docs/src/DocsRenderer.tsx @@ -1,13 +1,13 @@ import type { PropsWithChildren } from 'react'; import React, { Component } from 'react'; -import { renderElement, unmountElement } from '@storybook/react-dom-shim'; import type { - Renderer, - Parameters, DocsContextProps, DocsRenderFunction, + Parameters, + Renderer, } from 'storybook/internal/types'; -import { Docs, CodeOrSourceMdx, AnchorMdx, HeadersMdx } from '@storybook/blocks'; +import { AnchorMdx, CodeOrSourceMdx, Docs, HeadersMdx } from '@storybook/blocks'; +import { renderElement, unmountElement } from '@storybook/react-dom-shim'; // TS doesn't like that we export a component with types that it doesn't know about (TS4203) export const defaultComponents: Record = { diff --git a/code/addons/docs/src/compiler/index.test.ts b/code/addons/docs/src/compiler/index.test.ts index 54ea2c2d2911..4bac552fdff6 100644 --- a/code/addons/docs/src/compiler/index.test.ts +++ b/code/addons/docs/src/compiler/index.test.ts @@ -1,6 +1,6 @@ -import { expect, describe, it } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { dedent } from 'ts-dedent'; -import { compileSync, compile } from './index'; +import { compile, compileSync } from './index'; expect.addSnapshotSerializer({ serialize: (val: any) => (typeof val === 'string' ? val : val.toString()), diff --git a/code/addons/docs/src/plugins/mdx-plugin.ts b/code/addons/docs/src/plugins/mdx-plugin.ts index 84ce92afeacc..1f9aa4116897 100644 --- a/code/addons/docs/src/plugins/mdx-plugin.ts +++ b/code/addons/docs/src/plugins/mdx-plugin.ts @@ -1,9 +1,9 @@ import type { Options } from 'storybook/internal/types'; -import type { Plugin } from 'vite'; -import rehypeSlug from 'rehype-slug'; -import rehypeExternalLinks from 'rehype-external-links'; import { createFilter } from '@rollup/pluginutils'; import { dirname, join } from 'path'; +import rehypeExternalLinks from 'rehype-external-links'; +import rehypeSlug from 'rehype-slug'; +import type { Plugin } from 'vite'; import type { CompileOptions } from '../compiler'; import { compile } from '../compiler'; diff --git a/code/addons/docs/src/preset.ts b/code/addons/docs/src/preset.ts index 8d359204c227..3c5d4fe554ba 100644 --- a/code/addons/docs/src/preset.ts +++ b/code/addons/docs/src/preset.ts @@ -1,10 +1,9 @@ -import { dirname, join, isAbsolute } from 'path'; -import rehypeSlug from 'rehype-slug'; -import rehypeExternalLinks from 'rehype-external-links'; - +import { logger } from 'storybook/internal/node-logger'; import type { DocsOptions, Options, PresetProperty } from 'storybook/internal/types'; import type { CsfPluginOptions } from '@storybook/csf-plugin'; -import { logger } from 'storybook/internal/node-logger'; +import { dirname, isAbsolute, join } from 'path'; +import rehypeExternalLinks from 'rehype-external-links'; +import rehypeSlug from 'rehype-slug'; import type { CompileOptions } from './compiler'; /** diff --git a/code/addons/docs/template/stories/docs2/resolved-react.stories.ts b/code/addons/docs/template/stories/docs2/resolved-react.stories.ts index 20095ec6164b..27b6ba557441 100644 --- a/code/addons/docs/template/stories/docs2/resolved-react.stories.ts +++ b/code/addons/docs/template/stories/docs2/resolved-react.stories.ts @@ -1,5 +1,5 @@ -import { within, expect } from '@storybook/test'; import * as ReactExport from 'react'; +import { expect, within } from '@storybook/test'; import * as ReactDom from 'react-dom'; import * as ReactDomServer from 'react-dom/server'; diff --git a/code/addons/docs/template/stories/docspage/source.stories.ts b/code/addons/docs/template/stories/docspage/source.stories.ts index 2c92512198dd..373120eb005e 100644 --- a/code/addons/docs/template/stories/docspage/source.stories.ts +++ b/code/addons/docs/template/stories/docspage/source.stories.ts @@ -1,5 +1,5 @@ -import { global as globalThis } from '@storybook/global'; import type { StoryContext } from 'storybook/internal/types'; +import { global as globalThis } from '@storybook/global'; import { dedent } from 'ts-dedent'; export default { diff --git a/code/addons/essentials/src/index.ts b/code/addons/essentials/src/index.ts index d2b1ca20785c..fdae10f376b8 100644 --- a/code/addons/essentials/src/index.ts +++ b/code/addons/essentials/src/index.ts @@ -1,6 +1,7 @@ -import path from 'path'; -import { logger } from 'storybook/internal/node-logger'; import { serverRequire } from 'storybook/internal/common'; +import { logger } from 'storybook/internal/node-logger'; + +import path from 'path'; interface PresetOptions { /** diff --git a/code/addons/essentials/vitest.config.ts b/code/addons/essentials/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/essentials/vitest.config.ts +++ b/code/addons/essentials/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/gfm/src/index.ts b/code/addons/gfm/src/index.ts index 2ae1e565529a..08b13e81842f 100644 --- a/code/addons/gfm/src/index.ts +++ b/code/addons/gfm/src/index.ts @@ -1,7 +1,7 @@ -import { dedent } from 'ts-dedent'; import { deprecate } from 'storybook/internal/node-logger'; import remarkGfm from 'remark-gfm'; +import { dedent } from 'ts-dedent'; export const mdxLoaderOptions = async (config: any) => { config.mdxCompileOptions.remarkPlugins = config.mdxCompileOptions.remarkPlugins || []; diff --git a/code/addons/gfm/vitest.config.ts b/code/addons/gfm/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/gfm/vitest.config.ts +++ b/code/addons/gfm/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/highlight/README.md b/code/addons/highlight/README.md index 5f7ffbe0c3a9..6f27d1fda606 100644 --- a/code/addons/highlight/README.md +++ b/code/addons/highlight/README.md @@ -32,7 +32,6 @@ Add `"@storybook/addon-highlight"` to the addons array in your `.storybook/main. ```ts // .storybook/main.ts - // Replace your-framework with the framework you are using (e.g., react-webpack5, vue3-vite) import type { StorybookConfig } from '@storybook/your-framework'; @@ -49,11 +48,9 @@ Highlight DOM nodes by emitting the `HIGHLIGHT` event from within a story or an ```ts // MyComponent.stories.ts - import type { Meta, StoryObj } from '@storybook/react'; import { useChannel } from '@storybook/preview-api'; import { HIGHLIGHT } from '@storybook/addon-highlight'; - import { MyComponent } from './MyComponent'; const meta: Meta = { @@ -82,11 +79,9 @@ Highlights are automatically cleared when the story changes. You can also manual ```ts // MyComponent.stories.ts|tsx - import type { Meta, StoryObj } from '@storybook/react'; import { useChannel } from '@storybook/preview-api'; import { HIGHLIGHT, RESET_HIGHLIGHT } from '@storybook/addon-highlight'; - import { MyComponent } from './MyComponent'; const meta: Meta = { @@ -116,11 +111,9 @@ The addon applies a standard style to the highlighted elements you've enabled fo ```ts // MyComponent.stories.ts - import type { Meta, StoryObj } from '@storybook/react'; import { useChannel } from '@storybook/preview-api'; import { HIGHLIGHT } from '@storybook/addon-highlight'; - import { MyComponent } from './MyComponent'; const meta: Meta = { diff --git a/code/addons/highlight/src/preview.ts b/code/addons/highlight/src/preview.ts index 5d38b0aa87b9..7d7d43bd14d4 100644 --- a/code/addons/highlight/src/preview.ts +++ b/code/addons/highlight/src/preview.ts @@ -1,8 +1,10 @@ /* eslint-env browser */ -import { global } from '@storybook/global'; -import { addons } from 'storybook/internal/preview-api'; import { STORY_CHANGED } from 'storybook/internal/core-events'; -import { HIGHLIGHT, RESET_HIGHLIGHT, HIGHLIGHT_STYLE_ID } from './constants'; +import { addons } from 'storybook/internal/preview-api'; + +import { global } from '@storybook/global'; + +import { HIGHLIGHT, HIGHLIGHT_STYLE_ID, RESET_HIGHLIGHT } from './constants'; const { document } = global; diff --git a/code/addons/highlight/vitest.config.ts b/code/addons/highlight/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/highlight/vitest.config.ts +++ b/code/addons/highlight/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/interactions/README.md b/code/addons/interactions/README.md index 815a83b1804d..8e97267a65d3 100644 --- a/code/addons/interactions/README.md +++ b/code/addons/interactions/README.md @@ -27,8 +27,8 @@ Note that `@storybook/addon-interactions` must be listed **after** `@storybook/a Interactions relies on "instrumented" versions of Vitest and Testing Library, that you import from `@storybook/test` instead of their original package. You can then use these libraries in your `play` function. ```js +import { expect, fn, userEvent, within } from '@storybook/test'; import { Button } from './Button'; -import { within, userEvent, expect, fn } from '@storybook/test'; export default { title: 'Button', diff --git a/code/addons/interactions/src/Panel.test.ts b/code/addons/interactions/src/Panel.test.ts index bb05a875e29d..1d25d154dadc 100644 --- a/code/addons/interactions/src/Panel.test.ts +++ b/code/addons/interactions/src/Panel.test.ts @@ -1,7 +1,8 @@ // @vitest-environment happy-dom +import { describe, expect, it } from 'vitest'; -import { describe, it, expect } from 'vitest'; import { type Call, CallStates, type LogItem } from '@storybook/instrumenter'; + import { getInteractions } from './Panel'; describe('Panel', () => { diff --git a/code/addons/interactions/src/Panel.tsx b/code/addons/interactions/src/Panel.tsx index f6e1b06b8619..eec7d8a80e96 100644 --- a/code/addons/interactions/src/Panel.tsx +++ b/code/addons/interactions/src/Panel.tsx @@ -1,15 +1,17 @@ -import { global } from '@storybook/global'; import type { Dispatch, SetStateAction } from 'react'; import React, { Fragment, memo, useEffect, useMemo, useRef, useState } from 'react'; -import { useAddonState, useChannel, useParameter } from 'storybook/internal/manager-api'; + import { FORCE_REMOUNT, + PLAY_FUNCTION_THREW_EXCEPTION, STORY_RENDER_PHASE_CHANGED, STORY_THREW_EXCEPTION, - PLAY_FUNCTION_THREW_EXCEPTION, UNHANDLED_ERRORS_WHILE_PLAYING, } from 'storybook/internal/core-events'; -import { EVENTS, type Call, CallStates, type LogItem } from '@storybook/instrumenter'; +import { useAddonState, useChannel, useParameter } from 'storybook/internal/manager-api'; + +import { global } from '@storybook/global'; +import { type Call, CallStates, EVENTS, type LogItem } from '@storybook/instrumenter'; import { InteractionsPanel } from './components/InteractionsPanel'; import { ADDON_ID } from './constants'; diff --git a/code/addons/interactions/src/components/EmptyState.tsx b/code/addons/interactions/src/components/EmptyState.tsx index effaabee839e..5c0ee95a1bc7 100644 --- a/code/addons/interactions/src/components/EmptyState.tsx +++ b/code/addons/interactions/src/components/EmptyState.tsx @@ -1,9 +1,11 @@ import React, { useEffect, useState } from 'react'; -import { Link, EmptyTabContent } from 'storybook/internal/components'; -import { DocumentIcon, VideoIcon } from '@storybook/icons'; + +import { EmptyTabContent, Link } from 'storybook/internal/components'; import { useStorybookApi } from 'storybook/internal/manager-api'; import { styled } from 'storybook/internal/theming'; +import { DocumentIcon, VideoIcon } from '@storybook/icons'; + import { DOCUMENTATION_LINK, TUTORIAL_VIDEO_LINK } from '../constants'; const Links = styled.div(({ theme }) => ({ diff --git a/code/addons/interactions/src/components/Interaction.stories.tsx b/code/addons/interactions/src/components/Interaction.stories.tsx index 98f579090986..784c5251bf34 100644 --- a/code/addons/interactions/src/components/Interaction.stories.tsx +++ b/code/addons/interactions/src/components/Interaction.stories.tsx @@ -1,8 +1,8 @@ -import type { StoryObj, Meta } from '@storybook/react'; import { CallStates } from '@storybook/instrumenter'; -import { userEvent, within, expect } from '@storybook/test'; -import { getCalls } from '../mocks'; +import type { Meta, StoryObj } from '@storybook/react'; +import { expect, userEvent, within } from '@storybook/test'; +import { getCalls } from '../mocks'; import { Interaction } from './Interaction'; import SubnavStories from './Subnav.stories'; diff --git a/code/addons/interactions/src/components/Interaction.tsx b/code/addons/interactions/src/components/Interaction.tsx index 6b4682f61bea..3e613391e856 100644 --- a/code/addons/interactions/src/components/Interaction.tsx +++ b/code/addons/interactions/src/components/Interaction.tsx @@ -1,17 +1,19 @@ import * as React from 'react'; + import { IconButton, TooltipNote, WithTooltip } from 'storybook/internal/components'; -import { type Call, CallStates, type ControlStates } from '@storybook/instrumenter'; import { styled, typography } from 'storybook/internal/theming'; -import { transparentize } from 'polished'; import { ListUnorderedIcon } from '@storybook/icons'; +import { type Call, CallStates, type ControlStates } from '@storybook/instrumenter'; + +import { transparentize } from 'polished'; + +import { isChaiError, isJestError } from '../utils'; +import type { Controls } from './InteractionsPanel'; import { MatcherResult } from './MatcherResult'; import { MethodCall } from './MethodCall'; import { StatusIcon } from './StatusIcon'; -import type { Controls } from './InteractionsPanel'; -import { isChaiError, isJestError } from '../utils'; - const MethodCallWrapper = styled.div(() => ({ fontFamily: typography.fonts.mono, fontSize: typography.size.s1, diff --git a/code/addons/interactions/src/components/InteractionsPanel.stories.tsx b/code/addons/interactions/src/components/InteractionsPanel.stories.tsx index 9105ea7f2a3a..c2fb2b9af2ac 100644 --- a/code/addons/interactions/src/components/InteractionsPanel.stories.tsx +++ b/code/addons/interactions/src/components/InteractionsPanel.stories.tsx @@ -1,10 +1,12 @@ import React from 'react'; -import type { StoryObj, Meta } from '@storybook/react'; -import { CallStates } from '@storybook/instrumenter'; + import { styled } from 'storybook/internal/theming'; -import { userEvent, within, waitFor, expect } from '@storybook/test'; -import { isChromatic } from '../../../../.storybook/isChromatic'; +import { CallStates } from '@storybook/instrumenter'; +import type { Meta, StoryObj } from '@storybook/react'; +import { expect, userEvent, waitFor, within } from '@storybook/test'; + +import { isChromatic } from '../../../../.storybook/isChromatic'; import { getCalls, getInteractions } from '../mocks'; import { InteractionsPanel } from './InteractionsPanel'; import SubnavStories from './Subnav.stories'; diff --git a/code/addons/interactions/src/components/InteractionsPanel.tsx b/code/addons/interactions/src/components/InteractionsPanel.tsx index 56165d5e3769..c86a1df8ffde 100644 --- a/code/addons/interactions/src/components/InteractionsPanel.tsx +++ b/code/addons/interactions/src/components/InteractionsPanel.tsx @@ -1,13 +1,15 @@ import * as React from 'react'; -import { type Call, CallStates, type ControlStates } from '@storybook/instrumenter'; + import { styled } from 'storybook/internal/theming'; -import { transparentize } from 'polished'; -import { Subnav } from './Subnav'; +import { type Call, CallStates, type ControlStates } from '@storybook/instrumenter'; + +import { transparentize } from 'polished'; -import { Interaction } from './Interaction'; import { isTestAssertionError } from '../utils'; import { Empty } from './EmptyState'; +import { Interaction } from './Interaction'; +import { Subnav } from './Subnav'; export interface Controls { start: (args: any) => void; diff --git a/code/addons/interactions/src/components/List.tsx b/code/addons/interactions/src/components/List.tsx index e3a435ffa535..dece58b465ea 100644 --- a/code/addons/interactions/src/components/List.tsx +++ b/code/addons/interactions/src/components/List.tsx @@ -1,5 +1,7 @@ import React, { Fragment, useState } from 'react'; -import { styled, themes, convert } from 'storybook/internal/theming'; + +import { convert, styled, themes } from 'storybook/internal/theming'; + import { ChevronSmallDownIcon } from '@storybook/icons'; const ListWrapper = styled.ul({ diff --git a/code/addons/interactions/src/components/MatcherResult.stories.tsx b/code/addons/interactions/src/components/MatcherResult.stories.tsx index 9e812673f6b6..516aaed5cd63 100644 --- a/code/addons/interactions/src/components/MatcherResult.stories.tsx +++ b/code/addons/interactions/src/components/MatcherResult.stories.tsx @@ -1,6 +1,9 @@ import React from 'react'; -import { dedent } from 'ts-dedent'; + import { styled } from 'storybook/internal/theming'; + +import { dedent } from 'ts-dedent'; + import { MatcherResult } from './MatcherResult'; const StyledWrapper = styled.div(({ theme }) => ({ diff --git a/code/addons/interactions/src/components/MatcherResult.tsx b/code/addons/interactions/src/components/MatcherResult.tsx index f1bc83d56ec1..a56f96abf627 100644 --- a/code/addons/interactions/src/components/MatcherResult.tsx +++ b/code/addons/interactions/src/components/MatcherResult.tsx @@ -1,5 +1,7 @@ import React from 'react'; + import { styled, typography } from 'storybook/internal/theming'; + import { Node } from './MethodCall'; const getParams = (line: string, fromIndex = 0): string => { diff --git a/code/addons/interactions/src/components/MethodCall.stories.tsx b/code/addons/interactions/src/components/MethodCall.stories.tsx index 3c9354d44c8e..1ab027dd5dec 100644 --- a/code/addons/interactions/src/components/MethodCall.stories.tsx +++ b/code/addons/interactions/src/components/MethodCall.stories.tsx @@ -1,7 +1,10 @@ -import type { Call } from '@storybook/instrumenter'; import React from 'react'; + import { styled, typography } from 'storybook/internal/theming'; -import { Node, MethodCall } from './MethodCall'; + +import type { Call } from '@storybook/instrumenter'; + +import { MethodCall, Node } from './MethodCall'; const StyledWrapper = styled.div(({ theme }) => ({ backgroundColor: theme.background.content, diff --git a/code/addons/interactions/src/components/MethodCall.tsx b/code/addons/interactions/src/components/MethodCall.tsx index 4b6896eb4bf5..8e19ea9e6549 100644 --- a/code/addons/interactions/src/components/MethodCall.tsx +++ b/code/addons/interactions/src/components/MethodCall.tsx @@ -1,9 +1,12 @@ -import { ObjectInspector } from '@devtools-ds/object-inspector'; -import type { Call, CallRef, ElementRef } from '@storybook/instrumenter'; -import { useTheme } from 'storybook/internal/theming'; import type { ReactElement } from 'react'; import React, { Fragment } from 'react'; +import { useTheme } from 'storybook/internal/theming'; + +import type { Call, CallRef, ElementRef } from '@storybook/instrumenter'; + +import { ObjectInspector } from '@devtools-ds/object-inspector'; + const colorsLight = { base: '#444', nullish: '#7D99AA', diff --git a/code/addons/interactions/src/components/StatusBadge.stories.tsx b/code/addons/interactions/src/components/StatusBadge.stories.tsx index 8fa3f91ae3a3..afac03be0a11 100644 --- a/code/addons/interactions/src/components/StatusBadge.stories.tsx +++ b/code/addons/interactions/src/components/StatusBadge.stories.tsx @@ -1,4 +1,5 @@ import { CallStates } from '@storybook/instrumenter'; + import { StatusBadge } from './StatusBadge'; export default { diff --git a/code/addons/interactions/src/components/StatusBadge.tsx b/code/addons/interactions/src/components/StatusBadge.tsx index 3a989492f1b3..d730b8ef985c 100644 --- a/code/addons/interactions/src/components/StatusBadge.tsx +++ b/code/addons/interactions/src/components/StatusBadge.tsx @@ -1,7 +1,9 @@ import React from 'react'; -import { type Call, CallStates } from '@storybook/instrumenter'; + import { styled, typography } from 'storybook/internal/theming'; +import { type Call, CallStates } from '@storybook/instrumenter'; + export interface StatusBadgeProps { status: Call['status']; } diff --git a/code/addons/interactions/src/components/StatusIcon.stories.tsx b/code/addons/interactions/src/components/StatusIcon.stories.tsx index 4e8ea4217489..7d465dc64001 100644 --- a/code/addons/interactions/src/components/StatusIcon.stories.tsx +++ b/code/addons/interactions/src/components/StatusIcon.stories.tsx @@ -1,4 +1,5 @@ import { CallStates } from '@storybook/instrumenter'; + import { StatusIcon } from './StatusIcon'; export default { diff --git a/code/addons/interactions/src/components/StatusIcon.tsx b/code/addons/interactions/src/components/StatusIcon.tsx index c09a9e3c9c8f..1e9ec4c9aa99 100644 --- a/code/addons/interactions/src/components/StatusIcon.tsx +++ b/code/addons/interactions/src/components/StatusIcon.tsx @@ -1,9 +1,11 @@ import React from 'react'; -import { type Call, CallStates } from '@storybook/instrumenter'; + import { styled, useTheme } from 'storybook/internal/theming'; -import { transparentize } from 'polished'; import { CheckIcon, CircleIcon, PlayIcon, StopAltIcon } from '@storybook/icons'; +import { type Call, CallStates } from '@storybook/instrumenter'; + +import { transparentize } from 'polished'; export interface StatusIconProps { status: Call['status']; diff --git a/code/addons/interactions/src/components/Subnav.stories.tsx b/code/addons/interactions/src/components/Subnav.stories.tsx index bdaa5fae2831..e19f86fc9847 100644 --- a/code/addons/interactions/src/components/Subnav.stories.tsx +++ b/code/addons/interactions/src/components/Subnav.stories.tsx @@ -1,7 +1,9 @@ -import { action } from '@storybook/addon-actions'; import { CallStates } from '@storybook/instrumenter'; -import { Subnav } from './Subnav'; + +import { action } from '@storybook/addon-actions'; + import { parameters } from '../preview'; +import { Subnav } from './Subnav'; export default { title: 'Subnav', diff --git a/code/addons/interactions/src/components/Subnav.tsx b/code/addons/interactions/src/components/Subnav.tsx index 8818248e2b5b..59564dab2b67 100644 --- a/code/addons/interactions/src/components/Subnav.tsx +++ b/code/addons/interactions/src/components/Subnav.tsx @@ -1,16 +1,15 @@ import type { ComponentProps } from 'react'; import React from 'react'; + import { + Bar, Button, IconButton, - Separator, P, + Separator, TooltipNote, WithTooltip, - Bar, } from 'storybook/internal/components'; -import type { Call, ControlStates } from '@storybook/instrumenter'; -import { CallStates } from '@storybook/instrumenter'; import { styled } from 'storybook/internal/theming'; import { @@ -20,9 +19,11 @@ import { RewindIcon, SyncIcon, } from '@storybook/icons'; -import { StatusBadge } from './StatusBadge'; +import type { Call, ControlStates } from '@storybook/instrumenter'; +import { CallStates } from '@storybook/instrumenter'; import type { Controls } from './InteractionsPanel'; +import { StatusBadge } from './StatusBadge'; const SubnavWrapper = styled.div(({ theme }) => ({ background: theme.background.app, diff --git a/code/addons/interactions/src/manager.tsx b/code/addons/interactions/src/manager.tsx index 2de5d48d8fa6..e2d9c50f8758 100644 --- a/code/addons/interactions/src/manager.tsx +++ b/code/addons/interactions/src/manager.tsx @@ -1,9 +1,11 @@ import React, { useCallback } from 'react'; -import type { Combo } from 'storybook/internal/manager-api'; -import { addons, Consumer, types, useAddonState } from 'storybook/internal/manager-api'; + import { AddonPanel, Badge, Spaced } from 'storybook/internal/components'; -import { ADDON_ID, PANEL_ID } from './constants'; +import type { Combo } from 'storybook/internal/manager-api'; +import { Consumer, addons, types, useAddonState } from 'storybook/internal/manager-api'; + import { Panel } from './Panel'; +import { ADDON_ID, PANEL_ID } from './constants'; function Title() { const [addonState = {}] = useAddonState(ADDON_ID); diff --git a/code/addons/interactions/src/mocks/index.ts b/code/addons/interactions/src/mocks/index.ts index cffabc3352bc..02760bce429d 100644 --- a/code/addons/interactions/src/mocks/index.ts +++ b/code/addons/interactions/src/mocks/index.ts @@ -1,4 +1,4 @@ -import { CallStates, type Call } from '@storybook/instrumenter'; +import { type Call, CallStates } from '@storybook/instrumenter'; export const getCalls = (finalStatus: CallStates) => { const calls: Call[] = [ diff --git a/code/addons/interactions/src/preset.ts b/code/addons/interactions/src/preset.ts index fa827d0e86d0..2c60d293c666 100644 --- a/code/addons/interactions/src/preset.ts +++ b/code/addons/interactions/src/preset.ts @@ -1,4 +1,5 @@ import { checkAddonOrder, serverRequire } from 'storybook/internal/common'; + import path from 'path'; export const checkActionsLoaded = (configDir: string) => { diff --git a/code/addons/interactions/src/preview.ts b/code/addons/interactions/src/preview.ts index c74a3aa742d6..6abc30f63b93 100644 --- a/code/addons/interactions/src/preview.ts +++ b/code/addons/interactions/src/preview.ts @@ -1,4 +1,5 @@ import type { PlayFunction, StepLabel, StoryContext } from 'storybook/internal/types'; + import { instrument } from '@storybook/instrumenter'; export const { step: runStep } = instrument( diff --git a/code/addons/interactions/template/stories/basics.stories.ts b/code/addons/interactions/template/stories/basics.stories.ts index 459471817711..e208654602ea 100644 --- a/code/addons/interactions/template/stories/basics.stories.ts +++ b/code/addons/interactions/template/stories/basics.stories.ts @@ -1,8 +1,8 @@ import { global as globalThis } from '@storybook/global'; import { expect, - fn, fireEvent, + fn, userEvent, waitFor, waitForElementToBeRemoved, diff --git a/code/addons/interactions/vitest.config.ts b/code/addons/interactions/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/interactions/vitest.config.ts +++ b/code/addons/interactions/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/jest/README.md b/code/addons/jest/README.md index ec2cc8a34c6c..73b37e6dc21c 100644 --- a/code/addons/jest/README.md +++ b/code/addons/jest/README.md @@ -88,12 +88,9 @@ In your story file, add a [decorator](https://storybook.js.org/docs/react/writin ```js // MyComponent.stories.js|jsx - -import MyComponent from './MyComponent'; - -import results from '../.jest-test-results.json'; - import { withTests } from '@storybook/addon-jest'; +import results from '../.jest-test-results.json'; +import MyComponent from './MyComponent'; export default { component: MyComponent, @@ -137,9 +134,7 @@ your [`.storybook/preview.js`](https://storybook.js.org/docs/react/configure/#co ```js // .storybook/preview.js - import { withTests } from '@storybook/addon-jest'; - import results from '../.jest-test-results.json'; export const decorators = [ @@ -181,7 +176,6 @@ You can disable the addon for a single story by setting the `jest` parameter to ```js // MyComponent.stories.js|jsx - import MyComponent from './MyComponent'; export default { @@ -209,9 +203,7 @@ Then, in your `.storybook/preview.js`, you'll need to add a decorator with the f ```js // .storybook/preview.js - import { withTests } from '@storybook/addon-jest'; - import results from '../.jest-test-results.json'; export const decorators = [ @@ -226,9 +218,7 @@ Finally, in your story, you'll need to include the following: ```ts // MyComponent.stories.ts - import type { Meta, StoryFn } from '@storybook/angular'; - import MyComponent from './MyComponent.component'; export default { diff --git a/code/addons/jest/src/components/Message.tsx b/code/addons/jest/src/components/Message.tsx index 13c38a1d5074..2fdfcd41e46a 100644 --- a/code/addons/jest/src/components/Message.tsx +++ b/code/addons/jest/src/components/Message.tsx @@ -1,5 +1,6 @@ import type { FC, ReactElement } from 'react'; import React, { Fragment } from 'react'; + import { styled } from 'storybook/internal/theming'; const positiveConsoleRegex = /\[32m(.*?)\[39m/; diff --git a/code/addons/jest/src/components/Panel.tsx b/code/addons/jest/src/components/Panel.tsx index 5b2024ca4258..27be5cbf7a5c 100644 --- a/code/addons/jest/src/components/Panel.tsx +++ b/code/addons/jest/src/components/Panel.tsx @@ -1,11 +1,14 @@ import type { FC } from 'react'; import React, { Fragment } from 'react'; -import { styled, themes, convert } from 'storybook/internal/theming'; -import { ScrollArea, TabsState, Link, Placeholder } from 'storybook/internal/components'; + +import { Link, Placeholder, ScrollArea, TabsState } from 'storybook/internal/components'; +import { convert, styled, themes } from 'storybook/internal/theming'; + import { useResizeDetector } from 'react-resize-detector'; -import { Result } from './Result'; + import type { Test } from '../hoc/provideJestResult'; import { provideTests as provideJestResult } from '../hoc/provideJestResult'; +import { Result } from './Result'; const StatusTypes = { PASSED_TYPE: 'passed', diff --git a/code/addons/jest/src/components/Result.tsx b/code/addons/jest/src/components/Result.tsx index 832bc3b988f9..332178a32bed 100644 --- a/code/addons/jest/src/components/Result.tsx +++ b/code/addons/jest/src/components/Result.tsx @@ -1,8 +1,11 @@ import React, { Fragment, useState } from 'react'; -import { styled, themes, convert } from 'storybook/internal/theming'; + +import { convert, styled, themes } from 'storybook/internal/theming'; + +import { ChevronSmallDownIcon } from '@storybook/icons'; + // eslint-disable-next-line import/no-named-as-default import Message from './Message'; -import { ChevronSmallDownIcon } from '@storybook/icons'; const Wrapper = styled.div<{ status: string }>(({ theme, status }) => ({ display: 'flex', diff --git a/code/addons/jest/src/hoc/provideJestResult.tsx b/code/addons/jest/src/hoc/provideJestResult.tsx index c1af585d2709..f2c891c647b6 100644 --- a/code/addons/jest/src/hoc/provideJestResult.tsx +++ b/code/addons/jest/src/hoc/provideJestResult.tsx @@ -1,7 +1,9 @@ import type { ComponentType } from 'react'; import React, { Component as ReactComponent } from 'react'; + import { STORY_CHANGED } from 'storybook/internal/core-events'; import type { API } from 'storybook/internal/manager-api'; + import { ADD_TESTS } from '../shared'; // TODO: import type from @types/jest diff --git a/code/addons/jest/src/index.ts b/code/addons/jest/src/index.ts index ca96f5bf9148..0ec5000c1b48 100644 --- a/code/addons/jest/src/index.ts +++ b/code/addons/jest/src/index.ts @@ -1,5 +1,7 @@ import { addons } from 'storybook/internal/preview-api'; + import { normalize, sep } from 'upath'; + import { ADD_TESTS, defineJestParameter } from './shared'; const findTestResults = ( diff --git a/code/addons/jest/src/manager.tsx b/code/addons/jest/src/manager.tsx index 60b3c9fb0f0b..ca1b84bb60ee 100644 --- a/code/addons/jest/src/manager.tsx +++ b/code/addons/jest/src/manager.tsx @@ -1,8 +1,9 @@ import * as React from 'react'; + import { addons, types } from 'storybook/internal/manager-api'; -import { ADDON_ID, PANEL_ID, PARAM_KEY } from './shared'; import Panel from './components/Panel'; +import { ADDON_ID, PANEL_ID, PARAM_KEY } from './shared'; addons.register(ADDON_ID, (api) => { addons.add(PANEL_ID, { diff --git a/code/addons/jest/src/shared.test.ts b/code/addons/jest/src/shared.test.ts index 599276a12355..6ef232fe5a32 100644 --- a/code/addons/jest/src/shared.test.ts +++ b/code/addons/jest/src/shared.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from 'vitest'; + import { defineJestParameter } from './shared'; describe('defineJestParameter', () => { diff --git a/code/addons/jest/src/shared.ts b/code/addons/jest/src/shared.ts index 69c7930102b7..32107bdf23ef 100644 --- a/code/addons/jest/src/shared.ts +++ b/code/addons/jest/src/shared.ts @@ -1,6 +1,7 @@ -import invariant from 'tiny-invariant'; import type { StorybookInternalParameters } from 'storybook/internal/types'; +import invariant from 'tiny-invariant'; + // addons, panels and events get unique names using a prefix export const PARAM_KEY = 'test'; export const ADDON_ID = 'storybookjs/test'; diff --git a/code/addons/jest/vitest.config.ts b/code/addons/jest/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/jest/vitest.config.ts +++ b/code/addons/jest/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/links/README.md b/code/addons/links/README.md index 8b8d94afff28..cc50832328fa 100644 --- a/code/addons/links/README.md +++ b/code/addons/links/README.md @@ -80,8 +80,8 @@ export const third = () => Go back; If you want to get an URL for a particular story, you may use `hrefTo` function. It returns a promise, which resolves to string containing a relative URL: ```js -import { hrefTo } from '@storybook/addon-links'; import { action } from '@storybook/addon-actions'; +import { hrefTo } from '@storybook/addon-links'; export default { title: 'Href', diff --git a/code/addons/links/src/preview.ts b/code/addons/links/src/preview.ts index c0da77c598b7..6270d133ab77 100644 --- a/code/addons/links/src/preview.ts +++ b/code/addons/links/src/preview.ts @@ -1,4 +1,5 @@ import type { Addon_DecoratorFunction } from 'storybook/internal/types'; + import { withLinks } from './index'; export const decorators: Addon_DecoratorFunction[] = [withLinks]; diff --git a/code/addons/links/src/react/components/link.test.tsx b/code/addons/links/src/react/components/link.test.tsx index 78b8bb3876a4..e0b87be09dca 100644 --- a/code/addons/links/src/react/components/link.test.tsx +++ b/code/addons/links/src/react/components/link.test.tsx @@ -1,12 +1,14 @@ // @vitest-environment happy-dom - /// ; -import { describe, it, expect, afterEach, vi } from 'vitest'; -import React from 'react'; -import { addons } from 'storybook/internal/preview-api'; -import { render, screen, waitFor, cleanup, act } from '@testing-library/react'; +import { act, cleanup, render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; +import { afterEach, describe, expect, it, vi } from 'vitest'; + +import React from 'react'; + import { SELECT_STORY } from 'storybook/internal/core-events'; +import { addons } from 'storybook/internal/preview-api'; + import LinkTo from './link'; vi.mock('storybook/internal/preview-api'); diff --git a/code/addons/links/src/react/components/link.tsx b/code/addons/links/src/react/components/link.tsx index 12437029ba67..0f1f5d34718f 100644 --- a/code/addons/links/src/react/components/link.tsx +++ b/code/addons/links/src/react/components/link.tsx @@ -1,8 +1,9 @@ -import type { ComponentTitle, StoryKind, StoryName } from 'storybook/internal/types'; import type { MouseEvent, ReactNode } from 'react'; import React, { PureComponent } from 'react'; -import { navigate, hrefTo } from '../../utils'; +import type { ComponentTitle, StoryKind, StoryName } from 'storybook/internal/types'; + +import { hrefTo, navigate } from '../../utils'; // FIXME: copied from Typography.Link. Code is duplicated to // avoid emotion dependency which breaks React 15.x back-compat diff --git a/code/addons/links/src/utils.test.ts b/code/addons/links/src/utils.test.ts index 3ca7c0c4631a..44a6601d36e2 100644 --- a/code/addons/links/src/utils.test.ts +++ b/code/addons/links/src/utils.test.ts @@ -1,10 +1,10 @@ // @vitest-environment happy-dom +import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; -import { describe, beforeAll, beforeEach, it, expect, vi } from 'vitest'; -import { addons } from 'storybook/internal/preview-api'; import { SELECT_STORY } from 'storybook/internal/core-events'; +import { addons } from 'storybook/internal/preview-api'; -import { linkTo, hrefTo } from './utils'; +import { hrefTo, linkTo } from './utils'; vi.mock('storybook/internal/preview-api'); vi.mock('@storybook/global', () => ({ diff --git a/code/addons/links/src/utils.ts b/code/addons/links/src/utils.ts index 93eb4dc19b94..86aa75c4fc4a 100644 --- a/code/addons/links/src/utils.ts +++ b/code/addons/links/src/utils.ts @@ -1,8 +1,10 @@ -import { global } from '@storybook/global'; +import { SELECT_STORY, STORY_CHANGED } from 'storybook/internal/core-events'; import { addons, makeDecorator } from 'storybook/internal/preview-api'; -import { STORY_CHANGED, SELECT_STORY } from 'storybook/internal/core-events'; -import type { StoryId, StoryName, ComponentTitle, StoryKind } from 'storybook/internal/types'; +import type { ComponentTitle, StoryId, StoryKind, StoryName } from 'storybook/internal/types'; + import { toId } from '@storybook/csf'; +import { global } from '@storybook/global'; + import { PARAM_KEY } from './constants'; const { document, HTMLElement } = global; diff --git a/code/addons/links/template/stories/decorator.stories.ts b/code/addons/links/template/stories/decorator.stories.ts index 53a05f380e74..afe2cd34a6a1 100644 --- a/code/addons/links/template/stories/decorator.stories.ts +++ b/code/addons/links/template/stories/decorator.stories.ts @@ -1,4 +1,5 @@ import { global as globalThis } from '@storybook/global'; + import { withLinks } from '@storybook/addon-links'; export default { diff --git a/code/addons/links/template/stories/linkto.stories.ts b/code/addons/links/template/stories/linkto.stories.ts index 502509a8d5aa..07df223f009e 100644 --- a/code/addons/links/template/stories/linkto.stories.ts +++ b/code/addons/links/template/stories/linkto.stories.ts @@ -1,4 +1,5 @@ import { global as globalThis } from '@storybook/global'; + import { linkTo } from '@storybook/addon-links'; export default { diff --git a/code/addons/links/vitest.config.ts b/code/addons/links/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/links/vitest.config.ts +++ b/code/addons/links/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/measure/src/Tool.tsx b/code/addons/measure/src/Tool.tsx index 8662a32beec4..b6e9cbf21caa 100644 --- a/code/addons/measure/src/Tool.tsx +++ b/code/addons/measure/src/Tool.tsx @@ -1,8 +1,11 @@ import React, { useCallback, useEffect } from 'react'; -import { useGlobals, useStorybookApi } from 'storybook/internal/manager-api'; + import { IconButton } from 'storybook/internal/components'; +import { useGlobals, useStorybookApi } from 'storybook/internal/manager-api'; + import { RulerIcon } from '@storybook/icons'; -import { TOOL_ID, ADDON_ID } from './constants'; + +import { ADDON_ID, TOOL_ID } from './constants'; export const Tool = () => { const [globals, updateGlobals] = useGlobals(); diff --git a/code/addons/measure/src/box-model/canvas.ts b/code/addons/measure/src/box-model/canvas.ts index 09c769c6d244..80d0f1d3b10a 100644 --- a/code/addons/measure/src/box-model/canvas.ts +++ b/code/addons/measure/src/box-model/canvas.ts @@ -1,4 +1,5 @@ import { global } from '@storybook/global'; + import invariant from 'tiny-invariant'; interface Size { diff --git a/code/addons/measure/src/box-model/visualizer.ts b/code/addons/measure/src/box-model/visualizer.ts index 5d07189cedbd..00b1425f7f13 100644 --- a/code/addons/measure/src/box-model/visualizer.ts +++ b/code/addons/measure/src/box-model/visualizer.ts @@ -2,6 +2,7 @@ * Based on https://gist.github.com/awestbro/e668c12662ad354f02a413205b65fce7 */ import { global } from '@storybook/global'; + import { draw } from './canvas'; import type { Label, LabelStack } from './labels'; import { labelStacks } from './labels'; diff --git a/code/addons/measure/src/manager.tsx b/code/addons/measure/src/manager.tsx index 0b6aa66a74cc..df36d8211718 100644 --- a/code/addons/measure/src/manager.tsx +++ b/code/addons/measure/src/manager.tsx @@ -1,8 +1,9 @@ import React from 'react'; + import { addons, types } from 'storybook/internal/manager-api'; -import { ADDON_ID, TOOL_ID } from './constants'; import { Tool } from './Tool'; +import { ADDON_ID, TOOL_ID } from './constants'; addons.register(ADDON_ID, () => { addons.add(TOOL_ID, { diff --git a/code/addons/measure/src/preview.tsx b/code/addons/measure/src/preview.tsx index 596823c3b905..8898eb58dd6b 100644 --- a/code/addons/measure/src/preview.tsx +++ b/code/addons/measure/src/preview.tsx @@ -1,6 +1,7 @@ import type { Addon_DecoratorFunction } from 'storybook/internal/types'; -import { withMeasure } from './withMeasure'; + import { PARAM_KEY } from './constants'; +import { withMeasure } from './withMeasure'; export const decorators: Addon_DecoratorFunction[] = [withMeasure]; diff --git a/code/addons/measure/src/withMeasure.ts b/code/addons/measure/src/withMeasure.ts index c9c9a8c57a2c..8524a7f71fce 100644 --- a/code/addons/measure/src/withMeasure.ts +++ b/code/addons/measure/src/withMeasure.ts @@ -2,11 +2,12 @@ import { useEffect } from 'storybook/internal/preview-api'; import type { Renderer, - PartialStoryFn as StoryFunction, StoryContext, + PartialStoryFn as StoryFunction, } from 'storybook/internal/types'; + +import { destroy, init, rescale } from './box-model/canvas'; import { drawSelectedElement } from './box-model/visualizer'; -import { init, rescale, destroy } from './box-model/canvas'; import { deepElementFromPoint } from './util'; let nodeAtPointerRef; diff --git a/code/addons/measure/vitest.config.ts b/code/addons/measure/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/measure/vitest.config.ts +++ b/code/addons/measure/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/onboarding/src/Onboarding.tsx b/code/addons/onboarding/src/Onboarding.tsx index fde1526aa483..2fe360db7e93 100644 --- a/code/addons/onboarding/src/Onboarding.tsx +++ b/code/addons/onboarding/src/Onboarding.tsx @@ -1,16 +1,17 @@ +import React, { useCallback, useEffect, useState } from 'react'; + import { SyntaxHighlighter } from 'storybook/internal/components'; import { SAVE_STORY_RESPONSE } from 'storybook/internal/core-events'; import { type API } from 'storybook/internal/manager-api'; import { ThemeProvider, convert, styled, themes } from 'storybook/internal/theming'; -import React, { useCallback, useEffect, useState } from 'react'; + import type { Step } from 'react-joyride'; -import { GuidedTour } from './features/GuidedTour/GuidedTour'; import { Confetti } from './components/Confetti/Confetti'; +import { HighlightElement } from './components/HighlightElement/HighlightElement'; import type { STORYBOOK_ADDON_ONBOARDING_STEPS } from './constants'; import { STORYBOOK_ADDON_ONBOARDING_CHANNEL } from './constants'; - -import { HighlightElement } from './components/HighlightElement/HighlightElement'; +import { GuidedTour } from './features/GuidedTour/GuidedTour'; import { SplashScreen } from './features/SplashScreen/SplashScreen'; const SpanHighlight = styled.span(({ theme }) => ({ diff --git a/code/addons/onboarding/src/components/Button/Button.stories.tsx b/code/addons/onboarding/src/components/Button/Button.stories.tsx index cf8a824713fb..1d4396a29c63 100644 --- a/code/addons/onboarding/src/components/Button/Button.stories.tsx +++ b/code/addons/onboarding/src/components/Button/Button.stories.tsx @@ -1,4 +1,5 @@ import type { Meta, StoryObj } from '@storybook/react'; + import { Button } from './Button'; const meta: Meta = { diff --git a/code/addons/onboarding/src/components/Button/Button.tsx b/code/addons/onboarding/src/components/Button/Button.tsx index b4836f8bd93b..e8cc30d4cbd6 100644 --- a/code/addons/onboarding/src/components/Button/Button.tsx +++ b/code/addons/onboarding/src/components/Button/Button.tsx @@ -1,5 +1,6 @@ import type { ComponentProps } from 'react'; import React, { forwardRef } from 'react'; + import { styled } from 'storybook/internal/theming'; export interface ButtonProps extends ComponentProps<'button'> { diff --git a/code/addons/onboarding/src/components/Confetti/Confetti.stories.tsx b/code/addons/onboarding/src/components/Confetti/Confetti.stories.tsx index 80b01c7e31d8..b55fdf783b34 100644 --- a/code/addons/onboarding/src/components/Confetti/Confetti.stories.tsx +++ b/code/addons/onboarding/src/components/Confetti/Confetti.stories.tsx @@ -1,6 +1,8 @@ +import React from 'react'; + import type { Meta, StoryObj } from '@storybook/react'; + import { Confetti } from './Confetti'; -import React from 'react'; const meta: Meta = { component: Confetti, diff --git a/code/addons/onboarding/src/components/Confetti/Confetti.tsx b/code/addons/onboarding/src/components/Confetti/Confetti.tsx index e913712c170a..4b48eac08e07 100644 --- a/code/addons/onboarding/src/components/Confetti/Confetti.tsx +++ b/code/addons/onboarding/src/components/Confetti/Confetti.tsx @@ -1,8 +1,10 @@ -import ReactConfetti from 'react-confetti'; import React, { useEffect } from 'react'; +import { useState } from 'react'; + import { styled } from 'storybook/internal/theming'; + +import ReactConfetti from 'react-confetti'; import { createPortal } from 'react-dom'; -import { useState } from 'react'; interface ConfettiProps extends Omit, 'drawShape'> { top?: number; diff --git a/code/addons/onboarding/src/components/HighlightElement/HighlightElement.stories.tsx b/code/addons/onboarding/src/components/HighlightElement/HighlightElement.stories.tsx index 44d894260a20..0a6cb70831b9 100644 --- a/code/addons/onboarding/src/components/HighlightElement/HighlightElement.stories.tsx +++ b/code/addons/onboarding/src/components/HighlightElement/HighlightElement.stories.tsx @@ -1,7 +1,9 @@ +import React from 'react'; + import type { Meta, StoryObj } from '@storybook/react'; +import { expect, within } from '@storybook/test'; + import { HighlightElement } from './HighlightElement'; -import React from 'react'; -import { within, expect } from '@storybook/test'; const meta: Meta = { component: HighlightElement, diff --git a/code/addons/onboarding/src/components/List/List.stories.tsx b/code/addons/onboarding/src/components/List/List.stories.tsx index 9ff667586fc3..8e7667d8a12e 100644 --- a/code/addons/onboarding/src/components/List/List.stories.tsx +++ b/code/addons/onboarding/src/components/List/List.stories.tsx @@ -1,6 +1,7 @@ import React, { useState } from 'react'; + import type { Meta, StoryObj } from '@storybook/react'; -import { userEvent, waitFor, within, expect } from '@storybook/test'; +import { expect, userEvent, waitFor, within } from '@storybook/test'; import { List } from './List'; import { ListItem } from './ListItem/ListItem'; diff --git a/code/addons/onboarding/src/components/List/List.tsx b/code/addons/onboarding/src/components/List/List.tsx index 0b9640f7d909..69467f1101ce 100644 --- a/code/addons/onboarding/src/components/List/List.tsx +++ b/code/addons/onboarding/src/components/List/List.tsx @@ -1,4 +1,5 @@ import React from 'react'; + import { ListWrapper } from './List.styled'; interface ListProps { diff --git a/code/addons/onboarding/src/components/List/ListItem/ListItem.tsx b/code/addons/onboarding/src/components/List/ListItem/ListItem.tsx index e8a9945c0bbe..2b493b456157 100644 --- a/code/addons/onboarding/src/components/List/ListItem/ListItem.tsx +++ b/code/addons/onboarding/src/components/List/ListItem/ListItem.tsx @@ -1,7 +1,9 @@ import React from 'react'; -import { ListItemContentWrapper, ListItemIndexWrapper, ListItemWrapper } from './ListItem.styled'; + import { CheckIcon } from '@storybook/icons'; +import { ListItemContentWrapper, ListItemIndexWrapper, ListItemWrapper } from './ListItem.styled'; + interface ListItemProps { children: React.ReactNode; index: number; diff --git a/code/addons/onboarding/src/features/GuidedTour/GuidedTour.tsx b/code/addons/onboarding/src/features/GuidedTour/GuidedTour.tsx index 38fd595bdc25..a61e44a420a9 100644 --- a/code/addons/onboarding/src/features/GuidedTour/GuidedTour.tsx +++ b/code/addons/onboarding/src/features/GuidedTour/GuidedTour.tsx @@ -1,10 +1,12 @@ import React, { useEffect, useState } from 'react'; + +import { useTheme } from 'storybook/internal/theming'; + import type { CallBackProps } from 'react-joyride'; import Joyride, { ACTIONS } from 'react-joyride'; -import { useTheme } from 'storybook/internal/theming'; -import { Tooltip } from './Tooltip'; import type { StepDefinition, StepKey } from '../../Onboarding'; +import { Tooltip } from './Tooltip'; export function GuidedTour({ step, diff --git a/code/addons/onboarding/src/features/GuidedTour/Tooltip.tsx b/code/addons/onboarding/src/features/GuidedTour/Tooltip.tsx index a20554757654..34ba2593b560 100644 --- a/code/addons/onboarding/src/features/GuidedTour/Tooltip.tsx +++ b/code/addons/onboarding/src/features/GuidedTour/Tooltip.tsx @@ -1,9 +1,12 @@ import type { FC } from 'react'; import React, { useEffect } from 'react'; -import type { Step, TooltipRenderProps } from 'react-joyride'; + import { IconButton } from 'storybook/internal/components'; +import { color, styled } from 'storybook/internal/theming'; + import { CloseAltIcon } from '@storybook/icons'; -import { styled, color } from 'storybook/internal/theming'; + +import type { Step, TooltipRenderProps } from 'react-joyride'; import { Button } from '../../components/Button/Button'; diff --git a/code/addons/onboarding/src/features/SplashScreen/SplashScreen.stories.tsx b/code/addons/onboarding/src/features/SplashScreen/SplashScreen.stories.tsx index fffa7ce4d3a9..7e83cd3e6558 100644 --- a/code/addons/onboarding/src/features/SplashScreen/SplashScreen.stories.tsx +++ b/code/addons/onboarding/src/features/SplashScreen/SplashScreen.stories.tsx @@ -1,4 +1,5 @@ import type { Meta, StoryObj } from '@storybook/react'; + import { SplashScreen } from './SplashScreen'; const meta = { diff --git a/code/addons/onboarding/src/features/SplashScreen/SplashScreen.tsx b/code/addons/onboarding/src/features/SplashScreen/SplashScreen.tsx index 683bca455289..0e373f63e16e 100644 --- a/code/addons/onboarding/src/features/SplashScreen/SplashScreen.tsx +++ b/code/addons/onboarding/src/features/SplashScreen/SplashScreen.tsx @@ -1,7 +1,9 @@ -import { ArrowRightIcon } from '@storybook/icons'; -import { styled, keyframes } from 'storybook/internal/theming'; import React, { useCallback, useEffect, useState } from 'react'; +import { keyframes, styled } from 'storybook/internal/theming'; + +import { ArrowRightIcon } from '@storybook/icons'; + const fadeIn = keyframes({ from: { opacity: 0, diff --git a/code/addons/onboarding/src/manager.tsx b/code/addons/onboarding/src/manager.tsx index 07c543be8bc2..40b1436420bb 100644 --- a/code/addons/onboarding/src/manager.tsx +++ b/code/addons/onboarding/src/manager.tsx @@ -1,7 +1,9 @@ -import ReactDOM from 'react-dom'; -import React, { lazy, Suspense } from 'react'; -import { addons } from 'storybook/internal/manager-api'; +import React, { Suspense, lazy } from 'react'; + import { STORY_SPECIFIED } from 'storybook/internal/core-events'; +import { addons } from 'storybook/internal/manager-api'; + +import ReactDOM from 'react-dom'; const Onboarding = lazy(() => import('./Onboarding')); diff --git a/code/addons/onboarding/src/preset.ts b/code/addons/onboarding/src/preset.ts index c88501d0a3e2..171d26baccb8 100644 --- a/code/addons/onboarding/src/preset.ts +++ b/code/addons/onboarding/src/preset.ts @@ -1,9 +1,11 @@ -import type { CoreConfig, Options } from 'storybook/internal/types'; import type { Channel } from 'storybook/internal/channels'; -import { STORYBOOK_ADDON_ONBOARDING_CHANNEL } from './constants'; import { telemetry } from 'storybook/internal/telemetry'; +import type { CoreConfig, Options } from 'storybook/internal/types'; + import fs from 'fs'; +import { STORYBOOK_ADDON_ONBOARDING_CHANNEL } from './constants'; + type Event = { type: 'telemetry'; step: string; diff --git a/code/addons/onboarding/vitest.config.ts b/code/addons/onboarding/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/onboarding/vitest.config.ts +++ b/code/addons/onboarding/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/outline/src/OutlineSelector.tsx b/code/addons/outline/src/OutlineSelector.tsx index 54fb87eda53e..a8fb501ca851 100644 --- a/code/addons/outline/src/OutlineSelector.tsx +++ b/code/addons/outline/src/OutlineSelector.tsx @@ -1,7 +1,10 @@ import React, { memo, useCallback, useEffect } from 'react'; -import { useGlobals, useStorybookApi } from 'storybook/internal/manager-api'; + import { IconButton } from 'storybook/internal/components'; +import { useGlobals, useStorybookApi } from 'storybook/internal/manager-api'; + import { OutlineIcon } from '@storybook/icons'; + import { ADDON_ID, PARAM_KEY } from './constants'; export const OutlineSelector = memo(function OutlineSelector() { diff --git a/code/addons/outline/src/manager.tsx b/code/addons/outline/src/manager.tsx index 708ee358a61c..61084e2c6abd 100644 --- a/code/addons/outline/src/manager.tsx +++ b/code/addons/outline/src/manager.tsx @@ -1,8 +1,9 @@ import React from 'react'; + import { addons, types } from 'storybook/internal/manager-api'; -import { ADDON_ID } from './constants'; import { OutlineSelector } from './OutlineSelector'; +import { ADDON_ID } from './constants'; addons.register(ADDON_ID, () => { addons.add(ADDON_ID, { diff --git a/code/addons/outline/src/preview.tsx b/code/addons/outline/src/preview.tsx index 394a6fbabe60..19deb3a9afe0 100644 --- a/code/addons/outline/src/preview.tsx +++ b/code/addons/outline/src/preview.tsx @@ -1,6 +1,7 @@ import type { Addon_DecoratorFunction } from 'storybook/internal/types'; -import { withOutline } from './withOutline'; + import { PARAM_KEY } from './constants'; +import { withOutline } from './withOutline'; export const decorators: Addon_DecoratorFunction[] = [withOutline]; diff --git a/code/addons/outline/src/withOutline.ts b/code/addons/outline/src/withOutline.ts index 5a9185e7ea02..219b93a3acd2 100644 --- a/code/addons/outline/src/withOutline.ts +++ b/code/addons/outline/src/withOutline.ts @@ -1,12 +1,12 @@ -import { useMemo, useEffect } from 'storybook/internal/preview-api'; +import { useEffect, useMemo } from 'storybook/internal/preview-api'; import type { Renderer, - PartialStoryFn as StoryFunction, StoryContext, + PartialStoryFn as StoryFunction, } from 'storybook/internal/types'; -import { clearStyles, addOutlineStyles } from './helpers'; import { PARAM_KEY } from './constants'; +import { addOutlineStyles, clearStyles } from './helpers'; import outlineCSS from './outlineCSS'; export const withOutline = (StoryFn: StoryFunction, context: StoryContext) => { diff --git a/code/addons/outline/vitest.config.ts b/code/addons/outline/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/outline/vitest.config.ts +++ b/code/addons/outline/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/storysource/src/StoryPanel.tsx b/code/addons/storysource/src/StoryPanel.tsx index 3800837778d9..aada383782ea 100644 --- a/code/addons/storysource/src/StoryPanel.tsx +++ b/code/addons/storysource/src/StoryPanel.tsx @@ -1,18 +1,19 @@ import React from 'react'; -import { type API, useParameter } from 'storybook/internal/manager-api'; -import { styled } from 'storybook/internal/theming'; -import { Link } from 'storybook/internal/router'; + import { SyntaxHighlighter, type SyntaxHighlighterProps, type SyntaxHighlighterRendererProps, } from 'storybook/internal/components'; -import invariant from 'tiny-invariant'; +import { type API, useParameter } from 'storybook/internal/manager-api'; +import { Link } from 'storybook/internal/router'; +import { styled } from 'storybook/internal/theming'; + +import type { LocationsMap, SourceBlock } from '@storybook/source-loader'; // @ts-expect-error Typedefs don't currently expose `createElement` even though it exists import { createElement as createSyntaxHighlighterElement } from 'react-syntax-highlighter'; - -import type { SourceBlock, LocationsMap } from '@storybook/source-loader'; +import invariant from 'tiny-invariant'; const StyledStoryLink = styled(Link)<{ to: string; key: string }>(({ theme }) => ({ display: 'block', diff --git a/code/addons/storysource/src/manager.tsx b/code/addons/storysource/src/manager.tsx index d08e2480fcac..7e07f90b595e 100644 --- a/code/addons/storysource/src/manager.tsx +++ b/code/addons/storysource/src/manager.tsx @@ -1,4 +1,5 @@ import React from 'react'; + import { addons, types } from 'storybook/internal/manager-api'; import { StoryPanel } from './StoryPanel'; diff --git a/code/addons/storysource/vitest.config.ts b/code/addons/storysource/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/storysource/vitest.config.ts +++ b/code/addons/storysource/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/themes/docs/api.md b/code/addons/themes/docs/api.md index 0c8fc32996dd..143178b00047 100644 --- a/code/addons/themes/docs/api.md +++ b/code/addons/themes/docs/api.md @@ -95,6 +95,7 @@ Pulls the selected theme from storybook's global state. ```js import { DecoratorHelpers } from '@storybook/addon-themes'; + const { pluckThemeFromContext } = DecoratorHelpers; export const myCustomDecorator = @@ -112,6 +113,7 @@ Returns the theme parameters for this addon. ```js import { DecoratorHelpers } from '@storybook/addon-themes'; + const { useThemeParameters } = DecoratorHelpers; export const myCustomDecorator = @@ -129,6 +131,7 @@ Used to register the themes and defaultTheme with the addon state. ```js import { DecoratorHelpers } from '@storybook/addon-themes'; + const { initializeThemeState } = DecoratorHelpers; export const myCustomDecorator = ({ themes, defaultState, ...rest }) => { @@ -146,7 +149,6 @@ Let's use Vuetify as an example. Vuetify uses it's own global state to know whic ```js // .storybook/withVeutifyTheme.decorator.js - import { DecoratorHelpers } from '@storybook/addon-themes'; import { useTheme } from 'vuetify'; @@ -182,7 +184,6 @@ This can then be provided to Storybook in `.storybook/preview.js`: ```js // .storybook/preview.js - import { setup } from '@storybook/vue3'; import { registerPlugins } from '../src/plugins'; import { withVuetifyTheme } from './withVuetifyTheme.decorator'; diff --git a/code/addons/themes/src/decorators/data-attribute.decorator.tsx b/code/addons/themes/src/decorators/data-attribute.decorator.tsx index 05ad62792e7c..6d4b1cfe26f9 100644 --- a/code/addons/themes/src/decorators/data-attribute.decorator.tsx +++ b/code/addons/themes/src/decorators/data-attribute.decorator.tsx @@ -1,5 +1,6 @@ import { useEffect } from 'storybook/internal/preview-api'; import type { DecoratorFunction, Renderer } from 'storybook/internal/types'; + import { initializeThemeState, pluckThemeFromContext, useThemeParameters } from './helpers'; export interface DataAttributeStrategyConfiguration { diff --git a/code/addons/themes/src/decorators/helpers.ts b/code/addons/themes/src/decorators/helpers.ts index d26ce0410320..396f0d257f24 100644 --- a/code/addons/themes/src/decorators/helpers.ts +++ b/code/addons/themes/src/decorators/helpers.ts @@ -1,7 +1,8 @@ import { addons, useParameter } from 'storybook/internal/preview-api'; import type { StoryContext } from 'storybook/internal/types'; + import type { ThemeParameters } from '../constants'; -import { GLOBAL_KEY, PARAM_KEY, THEMING_EVENTS, DEFAULT_THEME_PARAMETERS } from '../constants'; +import { DEFAULT_THEME_PARAMETERS, GLOBAL_KEY, PARAM_KEY, THEMING_EVENTS } from '../constants'; /** * diff --git a/code/addons/themes/src/decorators/provider.decorator.tsx b/code/addons/themes/src/decorators/provider.decorator.tsx index f8b477810035..3cc1bce2fdb3 100644 --- a/code/addons/themes/src/decorators/provider.decorator.tsx +++ b/code/addons/themes/src/decorators/provider.decorator.tsx @@ -1,4 +1,5 @@ import React from 'react'; + import { useMemo } from 'storybook/internal/preview-api'; import type { DecoratorFunction, Renderer } from 'storybook/internal/types'; diff --git a/code/addons/themes/src/preview.tsx b/code/addons/themes/src/preview.tsx index 6f4a444e7f7c..5d33f51b94f7 100644 --- a/code/addons/themes/src/preview.tsx +++ b/code/addons/themes/src/preview.tsx @@ -1,4 +1,5 @@ -import type { Renderer, ProjectAnnotations } from 'storybook/internal/types'; +import type { ProjectAnnotations, Renderer } from 'storybook/internal/types'; + import { GLOBAL_KEY as KEY } from './constants'; export const initialGlobals: ProjectAnnotations['initialGlobals'] = { diff --git a/code/addons/themes/src/theme-switcher.tsx b/code/addons/themes/src/theme-switcher.tsx index d57b9ce1e5e8..2af5530a0a86 100644 --- a/code/addons/themes/src/theme-switcher.tsx +++ b/code/addons/themes/src/theme-switcher.tsx @@ -1,23 +1,25 @@ import React from 'react'; + +import { IconButton, TooltipLinkList, WithTooltip } from 'storybook/internal/components'; import { + addons, useAddonState, useChannel, useGlobals, useParameter, - addons, } from 'storybook/internal/manager-api'; import { styled } from 'storybook/internal/theming'; -import { IconButton, WithTooltip, TooltipLinkList } from 'storybook/internal/components'; import { PaintBrushIcon } from '@storybook/icons'; + import type { ThemeAddonState, ThemeParameters } from './constants'; import { - PARAM_KEY, - THEME_SWITCHER_ID, - THEMING_EVENTS, DEFAULT_ADDON_STATE, DEFAULT_THEME_PARAMETERS, GLOBAL_KEY as KEY, + PARAM_KEY, + THEME_SWITCHER_ID, + THEMING_EVENTS, } from './constants'; const IconButtonLabel = styled.div(({ theme }) => ({ diff --git a/code/addons/themes/template/stories/decorators.stories.ts b/code/addons/themes/template/stories/decorators.stories.ts index aba8f17d0e79..f4308ba9e02b 100644 --- a/code/addons/themes/template/stories/decorators.stories.ts +++ b/code/addons/themes/template/stories/decorators.stories.ts @@ -1,10 +1,12 @@ +import { useEffect } from 'storybook/internal/preview-api'; + import { global as globalThis } from '@storybook/global'; + import { withThemeByClassName, withThemeByDataAttribute, withThemeFromJSXProvider, } from '@storybook/addon-themes'; -import { useEffect } from 'storybook/internal/preview-api'; const cleanup = () => { const existing = globalThis.document.querySelector('style[data-theme-css]'); diff --git a/code/addons/themes/template/stories/globals.stories.ts b/code/addons/themes/template/stories/globals.stories.ts index 3d193d1fa71a..e2d5aed08aec 100644 --- a/code/addons/themes/template/stories/globals.stories.ts +++ b/code/addons/themes/template/stories/globals.stories.ts @@ -1,6 +1,8 @@ +import { useEffect } from 'storybook/internal/preview-api'; + import { global as globalThis } from '@storybook/global'; + import { withThemeByClassName } from '@storybook/addon-themes'; -import { useEffect } from 'storybook/internal/preview-api'; const cleanup = () => { const existing = globalThis.document.querySelector('style[data-theme-css]'); diff --git a/code/addons/themes/template/stories/parameters.stories.ts b/code/addons/themes/template/stories/parameters.stories.ts index f2906696859f..2c243e085e62 100644 --- a/code/addons/themes/template/stories/parameters.stories.ts +++ b/code/addons/themes/template/stories/parameters.stories.ts @@ -1,6 +1,8 @@ +import { useEffect } from 'storybook/internal/preview-api'; + import { global as globalThis } from '@storybook/global'; + import { withThemeByClassName } from '@storybook/addon-themes'; -import { useEffect } from 'storybook/internal/preview-api'; const cleanup = () => { const existing = globalThis.document.querySelector('style[data-theme-css]'); diff --git a/code/addons/themes/vitest.config.ts b/code/addons/themes/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/themes/vitest.config.ts +++ b/code/addons/themes/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/toolbars/src/components/ToolbarManager.tsx b/code/addons/toolbars/src/components/ToolbarManager.tsx index 1570b72883f6..79ce101cb027 100644 --- a/code/addons/toolbars/src/components/ToolbarManager.tsx +++ b/code/addons/toolbars/src/components/ToolbarManager.tsx @@ -1,10 +1,12 @@ import type { FC } from 'react'; import React from 'react'; -import { useGlobalTypes } from 'storybook/internal/manager-api'; + import { Separator } from 'storybook/internal/components'; -import { ToolbarMenuList } from './ToolbarMenuList'; -import { normalizeArgType } from '../utils/normalize-toolbar-arg-type'; +import { useGlobalTypes } from 'storybook/internal/manager-api'; + import type { ToolbarArgType } from '../types'; +import { normalizeArgType } from '../utils/normalize-toolbar-arg-type'; +import { ToolbarMenuList } from './ToolbarMenuList'; /** * A smart component for handling manager-preview interactions. diff --git a/code/addons/toolbars/src/components/ToolbarMenuButton.tsx b/code/addons/toolbars/src/components/ToolbarMenuButton.tsx index bc093fabfade..30e4aa5365a8 100644 --- a/code/addons/toolbars/src/components/ToolbarMenuButton.tsx +++ b/code/addons/toolbars/src/components/ToolbarMenuButton.tsx @@ -1,6 +1,7 @@ import type { FC } from 'react'; import React from 'react'; -import { Icons, IconButton, type IconsProps } from 'storybook/internal/components'; + +import { IconButton, Icons, type IconsProps } from 'storybook/internal/components'; interface ToolbarMenuButtonProps { active: boolean; diff --git a/code/addons/toolbars/src/components/ToolbarMenuList.tsx b/code/addons/toolbars/src/components/ToolbarMenuList.tsx index b54f0df44e59..032cccdca4f5 100644 --- a/code/addons/toolbars/src/components/ToolbarMenuList.tsx +++ b/code/addons/toolbars/src/components/ToolbarMenuList.tsx @@ -1,12 +1,14 @@ import type { FC } from 'react'; -import React, { useState, useCallback } from 'react'; +import React, { useCallback, useState } from 'react'; + +import { TooltipLinkList, WithTooltip } from 'storybook/internal/components'; import { useGlobals } from 'storybook/internal/manager-api'; -import { WithTooltip, TooltipLinkList } from 'storybook/internal/components'; -import { ToolbarMenuButton } from './ToolbarMenuButton'; + import type { WithKeyboardCycleProps } from '../hoc/withKeyboardCycle'; import { withKeyboardCycle } from '../hoc/withKeyboardCycle'; -import { getSelectedIcon, getSelectedTitle } from '../utils/get-selected'; import type { ToolbarMenuProps } from '../types'; +import { getSelectedIcon, getSelectedTitle } from '../utils/get-selected'; +import { ToolbarMenuButton } from './ToolbarMenuButton'; import { ToolbarMenuListItem } from './ToolbarMenuListItem'; type ToolbarMenuListProps = ToolbarMenuProps & WithKeyboardCycleProps; diff --git a/code/addons/toolbars/src/components/ToolbarMenuListItem.tsx b/code/addons/toolbars/src/components/ToolbarMenuListItem.tsx index 39fa7df5dace..829829de4b25 100644 --- a/code/addons/toolbars/src/components/ToolbarMenuListItem.tsx +++ b/code/addons/toolbars/src/components/ToolbarMenuListItem.tsx @@ -1,6 +1,8 @@ import React from 'react'; + import type { TooltipLinkListLink } from 'storybook/internal/components'; import { Icons } from 'storybook/internal/components'; + import type { ToolbarItem } from '../types'; export type ToolbarMenuListItemProps = { diff --git a/code/addons/toolbars/src/hoc/withKeyboardCycle.tsx b/code/addons/toolbars/src/hoc/withKeyboardCycle.tsx index 9bdcc8e8b6a5..15b2e75eb60c 100644 --- a/code/addons/toolbars/src/hoc/withKeyboardCycle.tsx +++ b/code/addons/toolbars/src/hoc/withKeyboardCycle.tsx @@ -1,8 +1,10 @@ -import React, { useRef, useEffect, useCallback } from 'react'; +import React, { useCallback, useEffect, useRef } from 'react'; + import { useGlobals, useStorybookApi } from 'storybook/internal/manager-api'; + +import type { ToolbarMenuProps } from '../types'; import { createCycleValueArray } from '../utils/create-cycle-value-array'; import { registerShortcuts } from '../utils/register-shortcuts'; -import type { ToolbarMenuProps } from '../types'; export type WithKeyboardCycleProps = { cycleValues?: string[]; diff --git a/code/addons/toolbars/src/manager.tsx b/code/addons/toolbars/src/manager.tsx index 306e857544b0..7b63e9e7b52e 100644 --- a/code/addons/toolbars/src/manager.tsx +++ b/code/addons/toolbars/src/manager.tsx @@ -1,5 +1,7 @@ import React from 'react'; + import { addons, types } from 'storybook/internal/manager-api'; + import { ToolbarManager } from './components/ToolbarManager'; import { ADDON_ID } from './constants'; diff --git a/code/addons/toolbars/src/utils/register-shortcuts.ts b/code/addons/toolbars/src/utils/register-shortcuts.ts index 98ef5cc03f5b..423543db6944 100644 --- a/code/addons/toolbars/src/utils/register-shortcuts.ts +++ b/code/addons/toolbars/src/utils/register-shortcuts.ts @@ -1,4 +1,5 @@ import type { API } from 'storybook/internal/manager-api'; + import { ADDON_ID } from '../constants'; import type { ToolbarShortcutConfig } from '../types'; diff --git a/code/addons/toolbars/template/stories/globals.stories.ts b/code/addons/toolbars/template/stories/globals.stories.ts index dd5b52ddece0..8c8ec6a5f0f5 100644 --- a/code/addons/toolbars/template/stories/globals.stories.ts +++ b/code/addons/toolbars/template/stories/globals.stories.ts @@ -1,6 +1,7 @@ -import { global as globalThis } from '@storybook/global'; import type { DecoratorFunction } from 'storybook/internal/types'; +import { global as globalThis } from '@storybook/global'; + const greetingForLocale = (locale: string) => { switch (locale) { case 'es': diff --git a/code/addons/toolbars/vitest.config.ts b/code/addons/toolbars/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/toolbars/vitest.config.ts +++ b/code/addons/toolbars/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/addons/viewport/src/components/Tool.tsx b/code/addons/viewport/src/components/Tool.tsx index 8ee3c3bfb966..3564ecad2c08 100644 --- a/code/addons/viewport/src/components/Tool.tsx +++ b/code/addons/viewport/src/components/Tool.tsx @@ -1,22 +1,23 @@ -import React, { useState, Fragment, useEffect, type FC, useCallback } from 'react'; +import React, { type FC, Fragment, useCallback, useEffect, useState } from 'react'; +import { IconButton, TooltipLinkList, WithTooltip } from 'storybook/internal/components'; +import { type API, useGlobals, useParameter } from 'storybook/internal/manager-api'; import { Global } from 'storybook/internal/theming'; -import { IconButton, WithTooltip, TooltipLinkList } from 'storybook/internal/components'; -import { useGlobals, type API, useParameter } from 'storybook/internal/manager-api'; import { GrowIcon, RefreshIcon, TransferIcon } from '@storybook/icons'; + import { PARAM_KEY as KEY } from '../constants'; +import { responsiveViewport } from '../responsiveViewport'; import { registerShortcuts } from '../shortcuts'; +import type { Config, GlobalState, GlobalStateUpdate, Viewport, ViewportMap } from '../types'; import { - IconButtonWithLabel, - IconButtonLabel, - ActiveViewportSize, ActiveViewportLabel, - iconsMap, + ActiveViewportSize, + IconButtonLabel, + IconButtonWithLabel, emptyViewportMap, + iconsMap, } from '../utils'; -import { responsiveViewport } from '../responsiveViewport'; -import type { Config, Viewport, ViewportMap, GlobalState, GlobalStateUpdate } from '../types'; interface PureProps { item: Viewport; diff --git a/code/addons/viewport/src/legacy/ToolLegacy.tsx b/code/addons/viewport/src/legacy/ToolLegacy.tsx index c3eb3f59f7ae..7035bd79789d 100644 --- a/code/addons/viewport/src/legacy/ToolLegacy.tsx +++ b/code/addons/viewport/src/legacy/ToolLegacy.tsx @@ -1,17 +1,18 @@ -import type { ReactNode, FC } from 'react'; -import React, { useState, Fragment, useEffect, useRef, memo } from 'react'; -import memoize from 'memoizerific'; - -import { styled, Global } from 'storybook/internal/theming'; +import type { FC, ReactNode } from 'react'; +import React, { Fragment, memo, useEffect, useRef, useState } from 'react'; -import { IconButton, WithTooltip, TooltipLinkList } from 'storybook/internal/components'; +import { IconButton, TooltipLinkList, WithTooltip } from 'storybook/internal/components'; +import { useGlobals, useParameter, useStorybookApi } from 'storybook/internal/manager-api'; +import { Global, styled } from 'storybook/internal/theming'; -import { useStorybookApi, useParameter, useGlobals } from 'storybook/internal/manager-api'; import { GrowIcon, TransferIcon } from '@storybook/icons'; -import { registerShortcuts } from '../shortcuts'; + +import memoize from 'memoizerific'; + import { PARAM_KEY } from '../constants'; import { MINIMAL_VIEWPORTS } from '../defaults'; -import type { ViewportMap, ViewportStyles, Styles } from '../types'; +import { registerShortcuts } from '../shortcuts'; +import type { Styles, ViewportMap, ViewportStyles } from '../types'; import type { ViewportAddonParameter } from './ViewportAddonParameter'; interface ViewportItem { diff --git a/code/addons/viewport/src/manager.tsx b/code/addons/viewport/src/manager.tsx index e7425aff76d3..df05367498f8 100644 --- a/code/addons/viewport/src/manager.tsx +++ b/code/addons/viewport/src/manager.tsx @@ -1,10 +1,10 @@ import * as React from 'react'; + import { addons, types } from 'storybook/internal/manager-api'; +import { ViewportTool } from './components/Tool'; import { ADDON_ID } from './constants'; - import { ViewportToolLegacy } from './legacy/ToolLegacy'; -import { ViewportTool } from './components/Tool'; addons.register(ADDON_ID, (api) => { addons.add(ADDON_ID, { diff --git a/code/addons/viewport/src/shortcuts.ts b/code/addons/viewport/src/shortcuts.ts index f53d460b81bd..59ef7787e208 100644 --- a/code/addons/viewport/src/shortcuts.ts +++ b/code/addons/viewport/src/shortcuts.ts @@ -1,4 +1,5 @@ import { type API } from 'storybook/internal/manager-api'; + import { ADDON_ID } from './constants'; import { initialGlobals as defaultGlobals } from './preview'; diff --git a/code/addons/viewport/src/utils.tsx b/code/addons/viewport/src/utils.tsx index be4f3cb16096..e83572e89628 100644 --- a/code/addons/viewport/src/utils.tsx +++ b/code/addons/viewport/src/utils.tsx @@ -1,9 +1,10 @@ import React, { Fragment } from 'react'; -import { styled } from 'storybook/internal/theming'; import { IconButton } from 'storybook/internal/components'; +import { styled } from 'storybook/internal/theming'; import { BrowserIcon, MobileIcon, TabletIcon } from '@storybook/icons'; + import type { Viewport, ViewportMap } from './types'; export const ActiveViewportSize = styled.div(() => ({ diff --git a/code/addons/viewport/template/stories/globals.stories.ts b/code/addons/viewport/template/stories/globals.stories.ts index 621bf0b02c62..ebfcc11f9b6b 100644 --- a/code/addons/viewport/template/stories/globals.stories.ts +++ b/code/addons/viewport/template/stories/globals.stories.ts @@ -1,4 +1,5 @@ import { global as globalThis } from '@storybook/global'; + import { MINIMAL_VIEWPORTS } from '@storybook/addon-viewport'; const first = Object.keys(MINIMAL_VIEWPORTS)[0]; diff --git a/code/addons/viewport/template/stories/parameters.stories.ts b/code/addons/viewport/template/stories/parameters.stories.ts index f98de1eda0c4..b715564e1753 100644 --- a/code/addons/viewport/template/stories/parameters.stories.ts +++ b/code/addons/viewport/template/stories/parameters.stories.ts @@ -1,4 +1,5 @@ import { global as globalThis } from '@storybook/global'; + import { MINIMAL_VIEWPORTS } from '@storybook/addon-viewport'; // these stories only work with `viewportStoryGlobals` set to false diff --git a/code/addons/viewport/vitest.config.ts b/code/addons/viewport/vitest.config.ts index 03172200442f..7420176b2e46 100644 --- a/code/addons/viewport/vitest.config.ts +++ b/code/addons/viewport/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/builders/builder-vite/README.md b/code/builders/builder-vite/README.md index 18a2e0ec6df3..d6116b3c30fe 100644 --- a/code/builders/builder-vite/README.md +++ b/code/builders/builder-vite/README.md @@ -117,7 +117,9 @@ The function should return the updated Vite configuration. Configure your `.storybook/main.ts` to use TypeScript: ```typescript -import type { StorybookConfig } from '@storybook/react-vite'; // (or whatever framework you are using) +import type { StorybookConfig } from '@storybook/react-vite'; + +// (or whatever framework you are using) const config: StorybookConfig = { // other storybook options..., diff --git a/code/builders/builder-vite/src/build.ts b/code/builders/builder-vite/src/build.ts index f55423e0e979..581ce74a7569 100644 --- a/code/builders/builder-vite/src/build.ts +++ b/code/builders/builder-vite/src/build.ts @@ -1,13 +1,14 @@ -import type { Options } from 'storybook/internal/types'; import { logger } from 'storybook/internal/node-logger'; +import type { Options } from 'storybook/internal/types'; + import { dedent } from 'ts-dedent'; +import type { InlineConfig } from 'vite'; -import { commonConfig } from './vite-config'; import { sanitizeEnvVars } from './envs'; import type { WebpackStatsPlugin } from './plugins'; -import type { InlineConfig } from 'vite'; import { hasVitePlugins } from './utils/has-vite-plugins'; import { withoutVitePlugins } from './utils/without-vite-plugins'; +import { commonConfig } from './vite-config'; function findPlugin(config: InlineConfig, name: string) { return config.plugins?.find((p) => p && 'name' in p && p.name === name); diff --git a/code/builders/builder-vite/src/codegen-importfn-script.ts b/code/builders/builder-vite/src/codegen-importfn-script.ts index 48ce451b74f8..678468b447ff 100644 --- a/code/builders/builder-vite/src/codegen-importfn-script.ts +++ b/code/builders/builder-vite/src/codegen-importfn-script.ts @@ -1,7 +1,7 @@ -import * as path from 'path'; - import type { Options } from 'storybook/internal/types'; +import * as path from 'path'; + import { listStories } from './list-stories'; /** diff --git a/code/builders/builder-vite/src/codegen-modern-iframe-script.ts b/code/builders/builder-vite/src/codegen-modern-iframe-script.ts index bcafede02125..86a39776ddeb 100644 --- a/code/builders/builder-vite/src/codegen-modern-iframe-script.ts +++ b/code/builders/builder-vite/src/codegen-modern-iframe-script.ts @@ -1,7 +1,8 @@ -import { loadPreviewOrConfigFile, getFrameworkName } from 'storybook/internal/common'; +import { getFrameworkName, loadPreviewOrConfigFile } from 'storybook/internal/common'; import type { Options, PreviewAnnotation } from 'storybook/internal/types'; -import { virtualStoriesFile, virtualAddonSetupFile } from './virtual-file-names'; + import { processPreviewAnnotation } from './utils/process-preview-annotation'; +import { virtualAddonSetupFile, virtualStoriesFile } from './virtual-file-names'; export async function generateModernIframeScriptCode(options: Options, projectRoot: string) { const { presets, configDir } = options; diff --git a/code/builders/builder-vite/src/envs.ts b/code/builders/builder-vite/src/envs.ts index 1b9495d78828..422ce3ae28bf 100644 --- a/code/builders/builder-vite/src/envs.ts +++ b/code/builders/builder-vite/src/envs.ts @@ -1,7 +1,8 @@ import { stringifyEnvs } from 'storybook/internal/common'; -import type { UserConfig as ViteConfig } from 'vite'; import type { Builder_EnvsRaw, Options } from 'storybook/internal/types'; +import type { UserConfig as ViteConfig } from 'vite'; + // Allowed env variables on the client const allowedEnvVariables = [ 'STORYBOOK', diff --git a/code/builders/builder-vite/src/index.ts b/code/builders/builder-vite/src/index.ts index d62d230b676c..edc6a98843d0 100644 --- a/code/builders/builder-vite/src/index.ts +++ b/code/builders/builder-vite/src/index.ts @@ -1,17 +1,18 @@ // noinspection JSUnusedGlobalSymbols +import { NoStatsForViteDevError } from 'storybook/internal/server-errors'; +import type { Options } from 'storybook/internal/types'; -import * as fs from 'fs-extra'; import type { RequestHandler } from 'express'; -import type { ViteDevServer } from 'vite'; import express from 'express'; +import * as fs from 'fs-extra'; import { join, parse } from 'path'; -import { NoStatsForViteDevError } from 'storybook/internal/server-errors'; -import type { Options } from 'storybook/internal/types'; import { corePath } from 'storybook/core-path'; -import { transformIframeHtml } from './transform-iframe-html'; -import { createViteServer } from './vite-server'; +import type { ViteDevServer } from 'vite'; + import { build as viteBuild } from './build'; +import { transformIframeHtml } from './transform-iframe-html'; import type { ViteBuilder } from './types'; +import { createViteServer } from './vite-server'; export { withoutVitePlugins } from './utils/without-vite-plugins'; export { hasVitePlugins } from './utils/has-vite-plugins'; diff --git a/code/builders/builder-vite/src/list-stories.ts b/code/builders/builder-vite/src/list-stories.ts index e484ba6cc0c4..98916fb994b1 100644 --- a/code/builders/builder-vite/src/list-stories.ts +++ b/code/builders/builder-vite/src/list-stories.ts @@ -1,9 +1,9 @@ +import { commonGlobOptions, normalizeStories } from 'storybook/internal/common'; +import type { Options } from 'storybook/internal/types'; + +import { glob } from 'glob'; import * as path from 'path'; import slash from 'slash'; -import { glob } from 'glob'; -import { normalizeStories, commonGlobOptions } from 'storybook/internal/common'; - -import type { Options } from 'storybook/internal/types'; export async function listStories(options: Options) { const { normalizePath } = await import('vite'); diff --git a/code/builders/builder-vite/src/optimizeDeps.ts b/code/builders/builder-vite/src/optimizeDeps.ts index 2b0cb4ad9049..c3899075e1ee 100644 --- a/code/builders/builder-vite/src/optimizeDeps.ts +++ b/code/builders/builder-vite/src/optimizeDeps.ts @@ -1,6 +1,8 @@ -import * as path from 'path'; -import type { InlineConfig as ViteInlineConfig, UserConfig } from 'vite'; import type { Options } from 'storybook/internal/types'; + +import * as path from 'path'; +import type { UserConfig, InlineConfig as ViteInlineConfig } from 'vite'; + import { listStories } from './list-stories'; // It ensures that vite converts cjs deps into esm without vite having to find them during startup and then having to log a message about them and restart diff --git a/code/builders/builder-vite/src/plugins/code-generator-plugin.ts b/code/builders/builder-vite/src/plugins/code-generator-plugin.ts index 65015129cb3f..d4d6bfc1e4f2 100644 --- a/code/builders/builder-vite/src/plugins/code-generator-plugin.ts +++ b/code/builders/builder-vite/src/plugins/code-generator-plugin.ts @@ -1,11 +1,12 @@ +import type { Options } from 'storybook/internal/types'; + import * as fs from 'fs'; import type { Plugin } from 'vite'; -import type { Options } from 'storybook/internal/types'; -import { transformIframeHtml } from '../transform-iframe-html'; -import { generateModernIframeScriptCode } from '../codegen-modern-iframe-script'; + import { generateImportFnScriptCode } from '../codegen-importfn-script'; +import { generateModernIframeScriptCode } from '../codegen-modern-iframe-script'; import { generateAddonSetupCode } from '../codegen-set-addon-channel'; - +import { transformIframeHtml } from '../transform-iframe-html'; import { virtualAddonSetupFile, virtualFileId, diff --git a/code/builders/builder-vite/src/plugins/csf-plugin.ts b/code/builders/builder-vite/src/plugins/csf-plugin.ts index cb549f165b89..2541f7b74758 100644 --- a/code/builders/builder-vite/src/plugins/csf-plugin.ts +++ b/code/builders/builder-vite/src/plugins/csf-plugin.ts @@ -1,7 +1,9 @@ -import type { Plugin } from 'vite'; -import { vite } from '@storybook/csf-plugin'; import type { Options } from 'storybook/internal/types'; +import { vite } from '@storybook/csf-plugin'; + +import type { Plugin } from 'vite'; + export async function csfPlugin(config: Options): Promise { const { presets } = config; diff --git a/code/builders/builder-vite/src/plugins/external-globals-plugin.test.ts b/code/builders/builder-vite/src/plugins/external-globals-plugin.test.ts index fc9ec9e47abc..9555a4dd6b86 100644 --- a/code/builders/builder-vite/src/plugins/external-globals-plugin.test.ts +++ b/code/builders/builder-vite/src/plugins/external-globals-plugin.test.ts @@ -1,4 +1,5 @@ -import { it, expect } from 'vitest'; +import { expect, it } from 'vitest'; + import { rewriteImport } from './external-globals-plugin'; const packageName = '@storybook/package'; diff --git a/code/builders/builder-vite/src/plugins/external-globals-plugin.ts b/code/builders/builder-vite/src/plugins/external-globals-plugin.ts index 94af1a74999c..8fbe95669f1d 100644 --- a/code/builders/builder-vite/src/plugins/external-globals-plugin.ts +++ b/code/builders/builder-vite/src/plugins/external-globals-plugin.ts @@ -1,8 +1,9 @@ import { join } from 'node:path'; -import findCacheDirectory from 'find-cache-dir'; + import { init, parse } from 'es-module-lexer'; -import MagicString from 'magic-string'; +import findCacheDirectory from 'find-cache-dir'; import { ensureFile, writeFile } from 'fs-extra'; +import MagicString from 'magic-string'; import type { Alias, Plugin } from 'vite'; const escapeKeys = (key: string) => key.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&'); diff --git a/code/builders/builder-vite/src/plugins/strip-story-hmr-boundaries.ts b/code/builders/builder-vite/src/plugins/strip-story-hmr-boundaries.ts index c249fc523d1a..d393d41476b1 100644 --- a/code/builders/builder-vite/src/plugins/strip-story-hmr-boundaries.ts +++ b/code/builders/builder-vite/src/plugins/strip-story-hmr-boundaries.ts @@ -1,5 +1,5 @@ -import type { Plugin } from 'vite'; import MagicString from 'magic-string'; +import type { Plugin } from 'vite'; /** * This plugin removes HMR `accept` calls in story files. Stories should not be treated diff --git a/code/builders/builder-vite/src/plugins/webpack-stats-plugin.ts b/code/builders/builder-vite/src/plugins/webpack-stats-plugin.ts index 672ff4531a6d..a318a0d1fbd9 100644 --- a/code/builders/builder-vite/src/plugins/webpack-stats-plugin.ts +++ b/code/builders/builder-vite/src/plugins/webpack-stats-plugin.ts @@ -1,6 +1,6 @@ // This plugin is a direct port of https://github.com/IanVS/vite-plugin-turbosnap - import type { BuilderStats } from 'storybook/internal/types'; + import path from 'path'; import slash from 'slash'; import type { Plugin } from 'vite'; diff --git a/code/builders/builder-vite/src/transform-iframe-html.ts b/code/builders/builder-vite/src/transform-iframe-html.ts index 0cf17c2cd8d7..6f864b5e4189 100644 --- a/code/builders/builder-vite/src/transform-iframe-html.ts +++ b/code/builders/builder-vite/src/transform-iframe-html.ts @@ -1,5 +1,5 @@ import { normalizeStories } from 'storybook/internal/common'; -import type { DocsOptions, TagsOptions, Options } from 'storybook/internal/types'; +import type { DocsOptions, Options, TagsOptions } from 'storybook/internal/types'; export type PreviewHtml = string | undefined; diff --git a/code/builders/builder-vite/src/types.ts b/code/builders/builder-vite/src/types.ts index a6579ed938cf..404a259243a5 100644 --- a/code/builders/builder-vite/src/types.ts +++ b/code/builders/builder-vite/src/types.ts @@ -1,6 +1,7 @@ -import type { InlineConfig, UserConfig } from 'vite'; import type { Builder, Options } from 'storybook/internal/types'; +import type { InlineConfig, UserConfig } from 'vite'; + // Storybook's Stats are optional Webpack related property type ViteStats = { toJson: () => any; diff --git a/code/builders/builder-vite/src/utils/has-vite-plugins.test.ts b/code/builders/builder-vite/src/utils/has-vite-plugins.test.ts index 8070b69220be..b8d5a3e44617 100644 --- a/code/builders/builder-vite/src/utils/has-vite-plugins.test.ts +++ b/code/builders/builder-vite/src/utils/has-vite-plugins.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { hasVitePlugins } from './has-vite-plugins'; describe('hasVitePlugins', () => { diff --git a/code/builders/builder-vite/src/utils/process-preview-annotation.test.ts b/code/builders/builder-vite/src/utils/process-preview-annotation.test.ts index 4d211fd5fafb..3a01623919d5 100644 --- a/code/builders/builder-vite/src/utils/process-preview-annotation.test.ts +++ b/code/builders/builder-vite/src/utils/process-preview-annotation.test.ts @@ -1,6 +1,7 @@ -import { describe, it, expect } from 'vitest'; -import { processPreviewAnnotation } from './process-preview-annotation'; +import { describe, expect, it } from 'vitest'; + import { onlyWindows, skipWindows } from '../../../../vitest.helpers'; +import { processPreviewAnnotation } from './process-preview-annotation'; describe('processPreviewAnnotation()', () => { it('should pull the `bare` value from an object', () => { diff --git a/code/builders/builder-vite/src/utils/process-preview-annotation.ts b/code/builders/builder-vite/src/utils/process-preview-annotation.ts index e87259d00941..c7e3db8c23ab 100644 --- a/code/builders/builder-vite/src/utils/process-preview-annotation.ts +++ b/code/builders/builder-vite/src/utils/process-preview-annotation.ts @@ -1,7 +1,8 @@ +import { stripAbsNodeModulesPath } from 'storybook/internal/common'; import type { PreviewAnnotation } from 'storybook/internal/types'; -import { resolve, isAbsolute, relative } from 'path'; + +import { isAbsolute, relative, resolve } from 'path'; import slash from 'slash'; -import { stripAbsNodeModulesPath } from 'storybook/internal/common'; /** * Preview annotations can take several forms, and vite needs them to be diff --git a/code/builders/builder-vite/src/utils/without-vite-plugins.test.ts b/code/builders/builder-vite/src/utils/without-vite-plugins.test.ts index dea82e6af9cb..e0efee13036b 100644 --- a/code/builders/builder-vite/src/utils/without-vite-plugins.test.ts +++ b/code/builders/builder-vite/src/utils/without-vite-plugins.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { withoutVitePlugins } from './without-vite-plugins'; describe('withoutVitePlugins', () => { diff --git a/code/builders/builder-vite/src/vite-config.test.ts b/code/builders/builder-vite/src/vite-config.test.ts index 6f83d67b5479..d88da0305397 100644 --- a/code/builders/builder-vite/src/vite-config.test.ts +++ b/code/builders/builder-vite/src/vite-config.test.ts @@ -1,7 +1,10 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import type { Options, Presets } from 'storybook/internal/types'; + // eslint-disable-next-line @typescript-eslint/no-restricted-imports import { loadConfigFromFile } from 'vite'; + import { commonConfig } from './vite-config'; vi.mock('vite', async (importOriginal) => ({ diff --git a/code/builders/builder-vite/src/vite-config.ts b/code/builders/builder-vite/src/vite-config.ts index 2a965dbacffc..e7c5b874c4ff 100644 --- a/code/builders/builder-vite/src/vite-config.ts +++ b/code/builders/builder-vite/src/vite-config.ts @@ -1,28 +1,29 @@ -import * as path from 'path'; -import type { - ConfigEnv, - InlineConfig as ViteInlineConfig, - PluginOption, - UserConfig as ViteConfig, - InlineConfig, -} from 'vite'; import { - isPreservingSymlinks, - getFrameworkName, getBuilderOptions, + getFrameworkName, + isPreservingSymlinks, resolvePathInStorybookCache, } from 'storybook/internal/common'; import { globalsNameReferenceMap } from 'storybook/internal/preview/globals'; import type { Options } from 'storybook/internal/types'; + +import * as path from 'path'; +import type { + ConfigEnv, + InlineConfig, + PluginOption, + UserConfig as ViteConfig, + InlineConfig as ViteInlineConfig, +} from 'vite'; + import { codeGeneratorPlugin, csfPlugin, - injectExportOrderPlugin, - stripStoryHMRBoundary, externalGlobalsPlugin, + injectExportOrderPlugin, pluginWebpackStats, + stripStoryHMRBoundary, } from './plugins'; - import type { BuilderOptions } from './types'; export type PluginConfigType = 'build' | 'development'; diff --git a/code/builders/builder-vite/src/vite-server.ts b/code/builders/builder-vite/src/vite-server.ts index 41cc40ed9470..ff235aa93833 100644 --- a/code/builders/builder-vite/src/vite-server.ts +++ b/code/builders/builder-vite/src/vite-server.ts @@ -1,9 +1,11 @@ -import type { Server } from 'http'; import type { Options } from 'storybook/internal/types'; -import { commonConfig } from './vite-config'; -import { getOptimizeDeps } from './optimizeDeps'; -import { sanitizeEnvVars } from './envs'; + +import type { Server } from 'http'; + import { getAssetsInclude } from './assetsInclude'; +import { sanitizeEnvVars } from './envs'; +import { getOptimizeDeps } from './optimizeDeps'; +import { commonConfig } from './vite-config'; export async function createViteServer(options: Options, devServer: Server) { const { presets } = options; diff --git a/code/builders/builder-vite/vitest.config.ts b/code/builders/builder-vite/vitest.config.ts index ea8b4ef14350..edf3cc3ea035 100644 --- a/code/builders/builder-vite/vitest.config.ts +++ b/code/builders/builder-vite/vitest.config.ts @@ -1,5 +1,6 @@ // eslint-disable-next-line import/no-extraneous-dependencies import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/builders/builder-webpack5/src/index.ts b/code/builders/builder-webpack5/src/index.ts index 635643626e62..c19779de2f75 100644 --- a/code/builders/builder-webpack5/src/index.ts +++ b/code/builders/builder-webpack5/src/index.ts @@ -1,22 +1,23 @@ -import type { Stats, Configuration, StatsOptions } from 'webpack'; -import webpack, { ProgressPlugin } from 'webpack'; -import webpackDevMiddleware from 'webpack-dev-middleware'; -import webpackHotMiddleware from 'webpack-hot-middleware'; -import { logger } from 'storybook/internal/node-logger'; -import type { Builder, Options } from 'storybook/internal/types'; -import { corePath } from 'storybook/core-path'; -import { checkWebpackVersion } from '@storybook/core-webpack'; -import { join, parse } from 'path'; -import express from 'express'; -import fs from 'fs-extra'; import { PREVIEW_BUILDER_PROGRESS } from 'storybook/internal/core-events'; +import { logger } from 'storybook/internal/node-logger'; import { WebpackCompilationError, WebpackInvocationError, WebpackMissingStatsError, } from 'storybook/internal/server-errors'; +import type { Builder, Options } from 'storybook/internal/types'; + +import { checkWebpackVersion } from '@storybook/core-webpack'; +import express from 'express'; +import fs from 'fs-extra'; +import { join, parse } from 'path'; import prettyTime from 'pretty-hrtime'; +import { corePath } from 'storybook/core-path'; +import type { Configuration, Stats, StatsOptions } from 'webpack'; +import webpack, { ProgressPlugin } from 'webpack'; +import webpackDevMiddleware from 'webpack-dev-middleware'; +import webpackHotMiddleware from 'webpack-hot-middleware'; export * from './types'; export * from './preview/virtual-module-mapping'; diff --git a/code/builders/builder-webpack5/src/loaders/export-order-loader.ts b/code/builders/builder-webpack5/src/loaders/export-order-loader.ts index ef3149a424c1..43f5fd00db42 100644 --- a/code/builders/builder-webpack5/src/loaders/export-order-loader.ts +++ b/code/builders/builder-webpack5/src/loaders/export-order-loader.ts @@ -1,5 +1,6 @@ import assert from 'node:assert'; -import { parse as parseCjs, init as initCjsParser } from 'cjs-module-lexer'; + +import { init as initCjsParser, parse as parseCjs } from 'cjs-module-lexer'; import { parse as parseEs } from 'es-module-lexer'; import MagicString from 'magic-string'; import type { LoaderContext } from 'webpack'; diff --git a/code/builders/builder-webpack5/src/presets/custom-webpack-preset.ts b/code/builders/builder-webpack5/src/presets/custom-webpack-preset.ts index f8978d512973..31a90cf794f9 100644 --- a/code/builders/builder-webpack5/src/presets/custom-webpack-preset.ts +++ b/code/builders/builder-webpack5/src/presets/custom-webpack-preset.ts @@ -1,8 +1,11 @@ -import * as webpackReal from 'webpack'; import { logger } from 'storybook/internal/node-logger'; import type { Options, PresetProperty } from 'storybook/internal/types'; -import type { Configuration } from 'webpack'; + import { loadCustomWebpackConfig } from '@storybook/core-webpack'; + +import * as webpackReal from 'webpack'; +import type { Configuration } from 'webpack'; + import { createDefaultWebpackConfig } from '../preview/base-webpack.config'; export const swc: PresetProperty<'swc'> = (config: Record): Record => { diff --git a/code/builders/builder-webpack5/src/preview/base-webpack.config.ts b/code/builders/builder-webpack5/src/preview/base-webpack.config.ts index e99fab6b769f..d53b437989ee 100644 --- a/code/builders/builder-webpack5/src/preview/base-webpack.config.ts +++ b/code/builders/builder-webpack5/src/preview/base-webpack.config.ts @@ -1,5 +1,6 @@ import { logger } from 'storybook/internal/node-logger'; import type { Options } from 'storybook/internal/types'; + import type { Configuration } from 'webpack'; export async function createDefaultWebpackConfig( diff --git a/code/builders/builder-webpack5/src/preview/iframe-webpack.config.ts b/code/builders/builder-webpack5/src/preview/iframe-webpack.config.ts index c594b12978de..0cea3b15737f 100644 --- a/code/builders/builder-webpack5/src/preview/iframe-webpack.config.ts +++ b/code/builders/builder-webpack5/src/preview/iframe-webpack.config.ts @@ -1,23 +1,26 @@ -import { dirname, join, resolve } from 'path'; -import { DefinePlugin, HotModuleReplacementPlugin, ProgressPlugin, ProvidePlugin } from 'webpack'; -import type { Configuration } from 'webpack'; -import HtmlWebpackPlugin from 'html-webpack-plugin'; -// @ts-expect-error (I removed this on purpose, because it's incorrect) -import CaseSensitivePathsPlugin from 'case-sensitive-paths-webpack-plugin'; -import TerserWebpackPlugin from 'terser-webpack-plugin'; -import VirtualModulePlugin from 'webpack-virtual-modules'; -import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; -import type { TransformOptions as EsbuildOptions } from 'esbuild'; -import type { Options } from 'storybook/internal/types'; -import { globalsNameReferenceMap } from 'storybook/internal/preview/globals'; import { getBuilderOptions, - stringifyProcessEnvs, - normalizeStories, isPreservingSymlinks, + normalizeStories, + stringifyProcessEnvs, } from 'storybook/internal/common'; +import { globalsNameReferenceMap } from 'storybook/internal/preview/globals'; +import type { Options } from 'storybook/internal/types'; + import { type BuilderOptions } from '@storybook/core-webpack'; + +// @ts-expect-error (I removed this on purpose, because it's incorrect) +import CaseSensitivePathsPlugin from 'case-sensitive-paths-webpack-plugin'; +import type { TransformOptions as EsbuildOptions } from 'esbuild'; +import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; +import HtmlWebpackPlugin from 'html-webpack-plugin'; +import { dirname, join, resolve } from 'path'; +import TerserWebpackPlugin from 'terser-webpack-plugin'; import { dedent } from 'ts-dedent'; +import { DefinePlugin, HotModuleReplacementPlugin, ProgressPlugin, ProvidePlugin } from 'webpack'; +import type { Configuration } from 'webpack'; +import VirtualModulePlugin from 'webpack-virtual-modules'; + import type { TypescriptOptions } from '../types'; import { getVirtualModules } from './virtual-module-mapping'; diff --git a/code/builders/builder-webpack5/src/preview/virtual-module-mapping.ts b/code/builders/builder-webpack5/src/preview/virtual-module-mapping.ts index 69f64ad41921..8c43fff17194 100644 --- a/code/builders/builder-webpack5/src/preview/virtual-module-mapping.ts +++ b/code/builders/builder-webpack5/src/preview/virtual-module-mapping.ts @@ -1,5 +1,3 @@ -import type { Options, PreviewAnnotation } from 'storybook/internal/types'; -import { join, resolve } from 'path'; import { getBuilderOptions, handlebars, @@ -7,8 +5,13 @@ import { normalizeStories, readTemplate, } from 'storybook/internal/common'; -import slash from 'slash'; +import type { Options, PreviewAnnotation } from 'storybook/internal/types'; + import { toImportFn } from '@storybook/core-webpack'; + +import { join, resolve } from 'path'; +import slash from 'slash'; + import type { BuilderOptions } from '../types'; export const getVirtualModules = async (options: Options) => { diff --git a/code/builders/builder-webpack5/src/types.ts b/code/builders/builder-webpack5/src/types.ts index 38621af56274..1064cdb485f6 100644 --- a/code/builders/builder-webpack5/src/types.ts +++ b/code/builders/builder-webpack5/src/types.ts @@ -1,12 +1,12 @@ -import type { Configuration, Stats } from 'webpack'; import type { - Options, BuilderResult as BuilderResultBase, + Options, StorybookConfig, TypescriptOptions as WebpackTypescriptOptions, } from '@storybook/core-webpack'; import type ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin'; +import type { Configuration, Stats } from 'webpack'; type TypeScriptOptionsBase = Partial; diff --git a/code/builders/builder-webpack5/vitest.config.ts b/code/builders/builder-webpack5/vitest.config.ts index ea8b4ef14350..edf3cc3ea035 100644 --- a/code/builders/builder-webpack5/vitest.config.ts +++ b/code/builders/builder-webpack5/vitest.config.ts @@ -1,5 +1,6 @@ // eslint-disable-next-line import/no-extraneous-dependencies import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../../vitest.workspace'; export default mergeConfig( diff --git a/code/core/scripts/check.ts b/code/core/scripts/check.ts index ca51bcf847f5..945fe125c138 100644 --- a/code/core/scripts/check.ts +++ b/code/core/scripts/check.ts @@ -1,4 +1,4 @@ -import { getTSFilesAndConfig, getTSProgramAndHost, getTSDiagnostics } from './helpers/typescript'; +import { getTSDiagnostics, getTSFilesAndConfig, getTSProgramAndHost } from './helpers/typescript'; const tsconfigPath = 'tsconfig.json'; diff --git a/code/core/scripts/dts.ts b/code/core/scripts/dts.ts index fc291e2a2349..93458c07dfac 100644 --- a/code/core/scripts/dts.ts +++ b/code/core/scripts/dts.ts @@ -1,7 +1,8 @@ import { join } from 'node:path'; -import { process, dts, nodeInternals } from '../../../scripts/prepare/tools'; -import { getEntries } from './entries'; + +import { dts, nodeInternals, process } from '../../../scripts/prepare/tools'; import pkg from '../package.json'; +import { getEntries } from './entries'; async function run() { const cwd = process.cwd(); diff --git a/code/core/scripts/helpers/dependencies.ts b/code/core/scripts/helpers/dependencies.ts index a02b8ca41d83..82b22a022ad4 100644 --- a/code/core/scripts/helpers/dependencies.ts +++ b/code/core/scripts/helpers/dependencies.ts @@ -1,6 +1,7 @@ -import { readJson } from 'fs-extra'; import { join } from 'node:path'; +import { readJson } from 'fs-extra'; + export async function flattenDependencies( list: string[], output: string[] = [], diff --git a/code/core/scripts/helpers/generatePackageJsonFile.ts b/code/core/scripts/helpers/generatePackageJsonFile.ts index 437d34c461a2..08a7975e3d9b 100644 --- a/code/core/scripts/helpers/generatePackageJsonFile.ts +++ b/code/core/scripts/helpers/generatePackageJsonFile.ts @@ -1,9 +1,11 @@ +import { writeFile } from 'node:fs/promises'; import { join, relative } from 'node:path'; + +import { readJSON } from 'fs-extra'; import slash from 'slash'; + import { sortPackageJson } from '../../../../scripts/prepare/tools'; import type { getEntries } from '../entries'; -import { readJSON } from 'fs-extra'; -import { writeFile } from 'node:fs/promises'; const cwd = process.cwd(); diff --git a/code/core/scripts/helpers/generateTypesFiles.ts b/code/core/scripts/helpers/generateTypesFiles.ts index 8a5e5767b22d..a657c6fbd8a7 100644 --- a/code/core/scripts/helpers/generateTypesFiles.ts +++ b/code/core/scripts/helpers/generateTypesFiles.ts @@ -1,6 +1,7 @@ import { join, relative } from 'node:path'; + import { spawn } from '../../../../scripts/prepare/tools'; -import { process, chalk, limit } from '../../../../scripts/prepare/tools'; +import { chalk, limit, process } from '../../../../scripts/prepare/tools'; import type { getEntries } from '../entries'; export async function generateTypesFiles( diff --git a/code/core/scripts/helpers/generateTypesMapperFiles.ts b/code/core/scripts/helpers/generateTypesMapperFiles.ts index 82cadc3dc8a7..11423eaa0b58 100644 --- a/code/core/scripts/helpers/generateTypesMapperFiles.ts +++ b/code/core/scripts/helpers/generateTypesMapperFiles.ts @@ -1,9 +1,11 @@ -import type { getEntries } from '../entries'; -import { join, relative } from 'node:path'; -import { dedent } from '../../../../scripts/prepare/tools'; import { writeFile } from 'node:fs/promises'; +import { join, relative } from 'node:path'; + import { ensureFile } from 'fs-extra'; +import { dedent } from '../../../../scripts/prepare/tools'; +import type { getEntries } from '../entries'; + const cwd = process.cwd(); async function generateTypesMapperContent(filePath: string) { diff --git a/code/core/scripts/helpers/modifyThemeTypes.ts b/code/core/scripts/helpers/modifyThemeTypes.ts index 14a0b4c0dd8d..5e586f4763bc 100644 --- a/code/core/scripts/helpers/modifyThemeTypes.ts +++ b/code/core/scripts/helpers/modifyThemeTypes.ts @@ -1,6 +1,7 @@ +import { readFile, writeFile } from 'node:fs/promises'; import { join } from 'node:path'; + import { dedent } from '../../../../scripts/prepare/tools'; -import { readFile, writeFile } from 'node:fs/promises'; export async function modifyThemeTypes() { /** diff --git a/code/core/scripts/helpers/sourcefiles.ts b/code/core/scripts/helpers/sourcefiles.ts index d5a8c0508bf7..7b38a00e025e 100644 --- a/code/core/scripts/helpers/sourcefiles.ts +++ b/code/core/scripts/helpers/sourcefiles.ts @@ -1,10 +1,11 @@ -import { join } from 'node:path'; import { readdir, writeFile } from 'node:fs/promises'; -import { dedent, prettier, getWorkspace, esbuild } from '../../../../scripts/prepare/tools'; -import { temporaryFile } from '../../src/common/utils/cli'; +import { join } from 'node:path'; import { GlobalRegistrator } from '@happy-dom/global-registrator'; +import { dedent, esbuild, getWorkspace, prettier } from '../../../../scripts/prepare/tools'; +import { temporaryFile } from '../../src/common/utils/cli'; + GlobalRegistrator.register({ url: 'http://localhost:3000', width: 1920, height: 1080 }); // read code/frameworks subfolders and generate a list of available frameworks diff --git a/code/core/scripts/helpers/typescript.ts b/code/core/scripts/helpers/typescript.ts index 474a64e8bc7e..13d26b9be642 100644 --- a/code/core/scripts/helpers/typescript.ts +++ b/code/core/scripts/helpers/typescript.ts @@ -1,4 +1,5 @@ import { join } from 'node:path'; + import { typescript } from '../../../../scripts/prepare/tools'; export function getTSDiagnostics( diff --git a/code/core/scripts/prep.ts b/code/core/scripts/prep.ts index 7fb69f15f3c3..a24980b296f5 100644 --- a/code/core/scripts/prep.ts +++ b/code/core/scripts/prep.ts @@ -1,30 +1,28 @@ /* eslint-disable local-rules/no-uncategorized-errors */ - import { watch } from 'node:fs'; import { mkdir, rm } from 'node:fs/promises'; -import { join, dirname } from 'node:path'; +import { dirname, join } from 'node:path'; + import { - esbuild, - process, - merge, - measure, chalk, - prettyTime, - nodeInternals, dedent, + esbuild, globalExternals, + measure, + merge, + nodeInternals, + prettyTime, + process, } from '../../../scripts/prepare/tools'; -import { getBundles, getEntries, getFinals } from './entries'; - -import { globalsModuleInfoMap } from '../src/manager/globals-module-info'; - import pkg from '../package.json'; -import { generateSourceFiles } from './helpers/sourcefiles'; -import { modifyThemeTypes } from './helpers/modifyThemeTypes'; +import { globalsModuleInfoMap } from '../src/manager/globals-module-info'; +import { getBundles, getEntries, getFinals } from './entries'; import { generatePackageJsonFile } from './helpers/generatePackageJsonFile'; -import { generateTypesMapperFiles } from './helpers/generateTypesMapperFiles'; import { generateTypesFiles } from './helpers/generateTypesFiles'; -import { isNode, noExternals, isBrowser } from './helpers/isEntryType'; +import { generateTypesMapperFiles } from './helpers/generateTypesMapperFiles'; +import { isBrowser, isNode, noExternals } from './helpers/isEntryType'; +import { modifyThemeTypes } from './helpers/modifyThemeTypes'; +import { generateSourceFiles } from './helpers/sourcefiles'; async function run() { const flags = process.argv.slice(2); diff --git a/code/core/src/ERRORS.md b/code/core/src/ERRORS.md index 3638cb7e4780..bba4fbbc6a9b 100644 --- a/code/core/src/ERRORS.md +++ b/code/core/src/ERRORS.md @@ -26,6 +26,7 @@ Second use the `StorybookError` class to define custom errors with specific code ```typescript import { StorybookError } from './storybook-error'; + export class YourCustomError extends StorybookError { constructor() { super({ diff --git a/code/core/src/__tests/preview-errors.test.ts b/code/core/src/__tests/preview-errors.test.ts index ae573d0f4eaf..6c780167947f 100644 --- a/code/core/src/__tests/preview-errors.test.ts +++ b/code/core/src/__tests/preview-errors.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { UnknownArgTypesError } from '../preview-errors'; describe('UnknownFlowArgTypesError', () => { diff --git a/code/core/src/__tests/server-errors.test.ts b/code/core/src/__tests/server-errors.test.ts index e5a23d7054c5..e268a8b43e55 100644 --- a/code/core/src/__tests/server-errors.test.ts +++ b/code/core/src/__tests/server-errors.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { WebpackCompilationError } from '../server-errors'; describe('WebpackCompilationError', () => { diff --git a/code/core/src/__tests/storybook-error.test.ts b/code/core/src/__tests/storybook-error.test.ts index dfbec1546375..770997b00fe9 100644 --- a/code/core/src/__tests/storybook-error.test.ts +++ b/code/core/src/__tests/storybook-error.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { StorybookError } from '../storybook-error'; describe('StorybookError', () => { diff --git a/code/core/src/builder-manager/index.ts b/code/core/src/builder-manager/index.ts index 01755fbdef2c..e23d3bb89ac0 100644 --- a/code/core/src/builder-manager/index.ts +++ b/code/core/src/builder-manager/index.ts @@ -1,17 +1,16 @@ import { dirname, join, parse } from 'node:path'; -import fs from 'fs-extra'; -import express from 'express'; +import { stringifyProcessEnvs } from '@storybook/core/common'; + +import { globalsModuleInfoMap } from '@storybook/core/manager/globals-module-info'; import { logger } from '@storybook/core/node-logger'; import { globalExternals } from '@fal-works/esbuild-plugin-global-externals'; import { pnpPlugin } from '@yarnpkg/esbuild-plugin-pnp'; import aliasPlugin from 'esbuild-plugin-alias'; +import express from 'express'; +import fs from 'fs-extra'; -import { stringifyProcessEnvs } from '@storybook/core/common'; -import { globalsModuleInfoMap } from '@storybook/core/manager/globals-module-info'; -import { getTemplatePath, renderHTML } from './utils/template'; -import { wrapManagerEntries } from './utils/managerEntries'; import type { BuilderBuildResult, BuilderFunction, @@ -20,11 +19,12 @@ import type { ManagerBuilder, StarterFunction, } from './types'; - import { getData } from './utils/data'; -import { safeResolve } from './utils/safeResolve'; import { readOrderedFiles } from './utils/files'; import { buildFrameworkGlobalsFromOptions } from './utils/framework'; +import { wrapManagerEntries } from './utils/managerEntries'; +import { safeResolve } from './utils/safeResolve'; +import { getTemplatePath, renderHTML } from './utils/template'; let compilation: Compilation; let asyncIterator: ReturnType | ReturnType; diff --git a/code/core/src/builder-manager/types.ts b/code/core/src/builder-manager/types.ts index a56481f2c5e8..e7541dced4bc 100644 --- a/code/core/src/builder-manager/types.ts +++ b/code/core/src/builder-manager/types.ts @@ -1,8 +1,8 @@ import type { Builder, - Builder_WithRequiredProperty, BuilderStats, Builder_Unpromise, + Builder_WithRequiredProperty, } from '@storybook/core/types'; import type { BuildOptions, BuildResult } from 'esbuild'; diff --git a/code/core/src/builder-manager/utils/data.ts b/code/core/src/builder-manager/utils/data.ts index fc21a933c499..233d3186c38e 100644 --- a/code/core/src/builder-manager/utils/data.ts +++ b/code/core/src/builder-manager/utils/data.ts @@ -1,10 +1,10 @@ import { basename } from 'node:path'; -import type { Options } from '@storybook/core/types'; -import { getRefs } from '@storybook/core/common'; -import { readTemplate } from './template'; +import { getRefs } from '@storybook/core/common'; +import type { Options } from '@storybook/core/types'; import { executor, getConfig } from '../index'; +import { readTemplate } from './template'; export const getData = async (options: Options) => { const refs = getRefs(options); diff --git a/code/core/src/builder-manager/utils/files.test.ts b/code/core/src/builder-manager/utils/files.test.ts index ed902f1d391f..4d37bbd3af6c 100644 --- a/code/core/src/builder-manager/utils/files.test.ts +++ b/code/core/src/builder-manager/utils/files.test.ts @@ -1,6 +1,8 @@ -import { it, expect } from 'vitest'; +import { expect, it } from 'vitest'; + import type { OutputFile } from 'esbuild'; import { platform } from 'os'; + import { sanitizePath } from './files'; const os = platform(); diff --git a/code/core/src/builder-manager/utils/files.ts b/code/core/src/builder-manager/utils/files.ts index 15e7d1838e27..94ec31677c4a 100644 --- a/code/core/src/builder-manager/utils/files.ts +++ b/code/core/src/builder-manager/utils/files.ts @@ -1,7 +1,9 @@ +import { join, normalize } from 'node:path'; + import type { OutputFile } from 'esbuild'; import fs from 'fs-extra'; -import { join, normalize } from 'node:path'; import slash from 'slash'; + import type { Compilation } from '../types'; export async function readOrderedFiles( diff --git a/code/core/src/builder-manager/utils/framework.test.ts b/code/core/src/builder-manager/utils/framework.test.ts index ecdcb42ead50..8b2af6f9a6c0 100644 --- a/code/core/src/builder-manager/utils/framework.test.ts +++ b/code/core/src/builder-manager/utils/framework.test.ts @@ -1,5 +1,6 @@ import path from 'node:path'; -import { describe, it, expect } from 'vitest'; + +import { describe, expect, it } from 'vitest'; import { pluckNameFromConfigProperty, diff --git a/code/core/src/builder-manager/utils/framework.ts b/code/core/src/builder-manager/utils/framework.ts index a40c72ae9042..f29d0bd05065 100644 --- a/code/core/src/builder-manager/utils/framework.ts +++ b/code/core/src/builder-manager/utils/framework.ts @@ -1,6 +1,7 @@ import path from 'node:path'; -import type { Options } from '@storybook/core/types'; + import { extractProperRendererNameFromFramework, getFrameworkName } from '@storybook/core/common'; +import type { Options } from '@storybook/core/types'; interface PropertyObject { name: string; diff --git a/code/core/src/builder-manager/utils/managerEntries.ts b/code/core/src/builder-manager/utils/managerEntries.ts index 8d60a077759d..a30fbab4a4bd 100644 --- a/code/core/src/builder-manager/utils/managerEntries.ts +++ b/code/core/src/builder-manager/utils/managerEntries.ts @@ -1,6 +1,8 @@ -import fs from 'fs-extra'; -import { resolvePathInStorybookCache } from '@storybook/core/common'; import { join, parse, relative, sep } from 'node:path'; + +import { resolvePathInStorybookCache } from '@storybook/core/common'; + +import fs from 'fs-extra'; import slash from 'slash'; const sanitizeBase = (path: string) => { diff --git a/code/core/src/builder-manager/utils/template.ts b/code/core/src/builder-manager/utils/template.ts index 222bb80a0a64..b264a3d5e02e 100644 --- a/code/core/src/builder-manager/utils/template.ts +++ b/code/core/src/builder-manager/utils/template.ts @@ -1,9 +1,9 @@ import { dirname, join } from 'node:path'; -import fs from 'fs-extra'; -import { render } from 'ejs'; +import type { DocsOptions, Options, Ref, TagsOptions } from '@storybook/core/types'; -import type { DocsOptions, TagsOptions, Options, Ref } from '@storybook/core/types'; +import { render } from 'ejs'; +import fs from 'fs-extra'; export const getTemplatePath = async (template: string) => { return join(dirname(require.resolve('@storybook/core/package.json')), 'assets/server', template); diff --git a/code/core/src/channels/index.test.ts b/code/core/src/channels/index.test.ts index f99e04f6099c..44a9aba61090 100644 --- a/code/core/src/channels/index.test.ts +++ b/code/core/src/channels/index.test.ts @@ -1,4 +1,5 @@ -import { describe, beforeEach, it, expect, vi } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; + import type { ChannelTransport, Listener } from '.'; import { Channel, WebsocketTransport } from '.'; diff --git a/code/core/src/channels/index.ts b/code/core/src/channels/index.ts index 1823011d8b8f..ab2d311b097f 100644 --- a/code/core/src/channels/index.ts +++ b/code/core/src/channels/index.ts @@ -1,6 +1,6 @@ /// - import { global } from '@storybook/global'; + import { Channel } from './main'; import { PostMessageTransport } from './postmessage'; import type { ChannelTransport, Config } from './types'; diff --git a/code/core/src/channels/main.ts b/code/core/src/channels/main.ts index 795e9eaa2f60..62bebb4dd54b 100644 --- a/code/core/src/channels/main.ts +++ b/code/core/src/channels/main.ts @@ -1,11 +1,11 @@ import type { ChannelArgs, ChannelArgsMulti, - EventsKeyValue, - ChannelTransport, ChannelArgsSingle, - Listener, ChannelEvent, + ChannelTransport, + EventsKeyValue, + Listener, } from './types'; const isMulti = (args: ChannelArgs): args is ChannelArgsMulti => { diff --git a/code/core/src/channels/postmessage/index.ts b/code/core/src/channels/postmessage/index.ts index 7d2bb67baf7b..a60ba16a47b4 100644 --- a/code/core/src/channels/postmessage/index.ts +++ b/code/core/src/channels/postmessage/index.ts @@ -1,16 +1,18 @@ /// - import { global } from '@storybook/global'; -import * as EVENTS from '@storybook/core/core-events'; + import { logger, pretty } from '@storybook/core/client-logger'; +import * as EVENTS from '@storybook/core/core-events'; + import { isJSON, parse, stringify } from 'telejson'; import invariant from 'tiny-invariant'; + import type { - ChannelTransport, BufferedEvent, + ChannelEvent, ChannelHandler, + ChannelTransport, Config, - ChannelEvent, } from '../types'; import { getEventSourceUrl } from './getEventSourceUrl'; diff --git a/code/core/src/channels/websocket/index.ts b/code/core/src/channels/websocket/index.ts index 989b53862683..15033296512b 100644 --- a/code/core/src/channels/websocket/index.ts +++ b/code/core/src/channels/websocket/index.ts @@ -1,11 +1,12 @@ /// - import { global } from '@storybook/global'; + +import * as EVENTS from '@storybook/core/core-events'; + import { isJSON, parse, stringify } from 'telejson'; import invariant from 'tiny-invariant'; -import * as EVENTS from '@storybook/core/core-events'; -import type { ChannelTransport, ChannelHandler, Config } from '../types'; +import type { ChannelHandler, ChannelTransport, Config } from '../types'; const { WebSocket } = global; diff --git a/code/core/src/cli/angular/helpers.ts b/code/core/src/cli/angular/helpers.ts index 9d651fa60cae..ac7f88b713e4 100644 --- a/code/core/src/cli/angular/helpers.ts +++ b/code/core/src/cli/angular/helpers.ts @@ -1,10 +1,11 @@ +import { logger } from '@storybook/core/node-logger'; +import { MissingAngularJsonError } from '@storybook/core/server-errors'; + +import boxen from 'boxen'; import fs from 'fs'; import { join } from 'path'; import prompts from 'prompts'; import { dedent } from 'ts-dedent'; -import { MissingAngularJsonError } from '@storybook/core/server-errors'; -import boxen from 'boxen'; -import { logger } from '@storybook/core/node-logger'; export const ANGULAR_JSON_PATH = 'angular.json'; diff --git a/code/core/src/cli/bin/index.ts b/code/core/src/cli/bin/index.ts index 512dc963924b..38cbce23efb1 100644 --- a/code/core/src/cli/bin/index.ts +++ b/code/core/src/cli/bin/index.ts @@ -1,15 +1,16 @@ -import program from 'commander'; +import { getEnvConfig, parseList, versions } from '@storybook/core/common'; +import { addToGlobalContext } from '@storybook/core/telemetry'; + +import { logger } from '@storybook/core/node-logger'; + import chalk from 'chalk'; -import leven from 'leven'; +import program from 'commander'; import { findPackageSync } from 'fd-package-json'; +import leven from 'leven'; import invariant from 'tiny-invariant'; -import { logger } from '@storybook/core/node-logger'; -import { addToGlobalContext } from '@storybook/core/telemetry'; -import { parseList, getEnvConfig, versions } from '@storybook/core/common'; - -import { dev } from '../dev'; import { build } from '../build'; +import { dev } from '../dev'; addToGlobalContext('cliVersion', versions.storybook); diff --git a/code/core/src/cli/build.ts b/code/core/src/cli/build.ts index a596eb6278d1..2a8594cf76ed 100644 --- a/code/core/src/cli/build.ts +++ b/code/core/src/cli/build.ts @@ -1,6 +1,8 @@ -import { findPackage } from 'fd-package-json'; -import { buildStaticStandalone, withTelemetry } from '@storybook/core/core-server'; import { cache } from '@storybook/core/common'; + +import { buildStaticStandalone, withTelemetry } from '@storybook/core/core-server'; + +import { findPackage } from 'fd-package-json'; import invariant from 'tiny-invariant'; export const build = async (cliOptions: any) => { diff --git a/code/core/src/cli/detect.test.ts b/code/core/src/cli/detect.test.ts index cf21f8bc423c..9a3041cecfa6 100644 --- a/code/core/src/cli/detect.test.ts +++ b/code/core/src/cli/detect.test.ts @@ -1,9 +1,13 @@ -import { describe, afterEach, it, expect, vi } from 'vitest'; -import * as fs from 'fs'; +import { afterEach, describe, expect, it, vi } from 'vitest'; + +import type { JsPackageManager, PackageJsonWithMaybeDeps } from '@storybook/core/common'; + import { logger } from '@storybook/core/node-logger'; + +import * as fs from 'fs'; + import { detect, detectFrameworkPreset, detectLanguage } from './detect'; import { ProjectType, SupportedLanguage } from './project_types'; -import type { JsPackageManager, PackageJsonWithMaybeDeps } from '@storybook/core/common'; vi.mock('./helpers', () => ({ isNxProject: vi.fn(), diff --git a/code/core/src/cli/detect.ts b/code/core/src/cli/detect.ts index 83b90237aa9b..1aef0ed2062d 100644 --- a/code/core/src/cli/detect.ts +++ b/code/core/src/cli/detect.ts @@ -1,21 +1,24 @@ -import * as fs from 'fs'; -import { findUpSync } from 'find-up'; -import semver from 'semver'; +import { resolve } from 'node:path'; + +import type { JsPackageManager, PackageJsonWithMaybeDeps } from '@storybook/core/common'; +import { HandledError, commandLog } from '@storybook/core/common'; + import { logger } from '@storybook/core/node-logger'; -import { resolve } from 'node:path'; +import { findUpSync } from 'find-up'; +import * as fs from 'fs'; import prompts from 'prompts'; +import semver from 'semver'; + +import { isNxProject } from './helpers'; import type { TemplateConfiguration, TemplateMatcher } from './project_types'; import { + CoreBuilder, ProjectType, - supportedTemplates, SupportedLanguage, + supportedTemplates, unsupportedTemplate, - CoreBuilder, } from './project_types'; -import { isNxProject } from './helpers'; -import type { JsPackageManager, PackageJsonWithMaybeDeps } from '@storybook/core/common'; -import { commandLog, HandledError } from '@storybook/core/common'; const viteConfigFiles = ['vite.config.ts', 'vite.config.js', 'vite.config.mjs']; const webpackConfigFiles = ['webpack.config.js']; diff --git a/code/core/src/cli/dev.ts b/code/core/src/cli/dev.ts index f8c7ecbcd112..6d05f140fa38 100644 --- a/code/core/src/cli/dev.ts +++ b/code/core/src/cli/dev.ts @@ -1,10 +1,12 @@ -import { dedent } from 'ts-dedent'; -import { findPackage } from 'fd-package-json'; -import { logger, instance as npmLog } from '@storybook/core/node-logger'; -import { buildDevStandalone, withTelemetry } from '@storybook/core/core-server'; import { cache } from '@storybook/core/common'; import type { CLIOptions } from '@storybook/core/types'; + +import { buildDevStandalone, withTelemetry } from '@storybook/core/core-server'; +import { logger, instance as npmLog } from '@storybook/core/node-logger'; + +import { findPackage } from 'fd-package-json'; import invariant from 'tiny-invariant'; +import { dedent } from 'ts-dedent'; function printError(error: any) { // this is a weird bugfix, somehow 'node-pre-gyp' is polluting the npmLog header diff --git a/code/core/src/cli/dirs.ts b/code/core/src/cli/dirs.ts index 88515e6b6683..37fcca50bfc7 100644 --- a/code/core/src/cli/dirs.ts +++ b/code/core/src/cli/dirs.ts @@ -1,14 +1,14 @@ -import { dirname, join } from 'path'; +import type { JsPackageManager } from '@storybook/core/common'; +import { temporaryDirectory, versions } from '@storybook/core/common'; +import type { SupportedFrameworks } from '@storybook/core/types'; import downloadTarball from '@ndelangen/get-tarball'; import getNpmTarballUrl from 'get-npm-tarball-url'; - +import { dirname, join } from 'path'; import invariant from 'tiny-invariant'; + import { externalFrameworks } from './project_types'; import type { SupportedRenderers } from './project_types'; -import type { JsPackageManager } from '@storybook/core/common'; -import { temporaryDirectory, versions } from '@storybook/core/common'; -import type { SupportedFrameworks } from '@storybook/core/types'; const resolveUsingBranchInstall = async (packageManager: JsPackageManager, request: string) => { const tempDirectory = await temporaryDirectory(); diff --git a/code/core/src/cli/eslintPlugin.test.ts b/code/core/src/cli/eslintPlugin.test.ts index cb428df7d27b..4752f8734ebf 100644 --- a/code/core/src/cli/eslintPlugin.test.ts +++ b/code/core/src/cli/eslintPlugin.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { normalizeExtends } from './eslintPlugin'; describe('normalizeExtends', () => { diff --git a/code/core/src/cli/eslintPlugin.ts b/code/core/src/cli/eslintPlugin.ts index 75fcaa96bb4c..3e37b41b5267 100644 --- a/code/core/src/cli/eslintPlugin.ts +++ b/code/core/src/cli/eslintPlugin.ts @@ -1,13 +1,15 @@ -import fse, { readFile, readJson, writeJson } from 'fs-extra'; -import { dedent } from 'ts-dedent'; -import detectIndent from 'detect-indent'; -import prompts from 'prompts'; -import chalk from 'chalk'; +import fs from 'node:fs'; -import { readConfig, writeConfig } from '@storybook/core/csf-tools'; import type { JsPackageManager } from '@storybook/core/common'; import { paddedLog } from '@storybook/core/common'; -import fs from 'node:fs'; + +import { readConfig, writeConfig } from '@storybook/core/csf-tools'; + +import chalk from 'chalk'; +import detectIndent from 'detect-indent'; +import { readFile, readJson, writeJson } from 'fs-extra'; +import prompts from 'prompts'; +import { dedent } from 'ts-dedent'; export const SUPPORTED_ESLINT_EXTENSIONS = ['js', 'cjs', 'json']; const UNSUPPORTED_ESLINT_EXTENSIONS = ['yaml', 'yml']; diff --git a/code/core/src/cli/helpers.test.ts b/code/core/src/cli/helpers.test.ts index 9464c8551a9f..71661e5cafa4 100644 --- a/code/core/src/cli/helpers.test.ts +++ b/code/core/src/cli/helpers.test.ts @@ -1,10 +1,12 @@ -import { describe, beforeEach, it, expect, vi } from 'vitest'; -import fse from 'fs-extra'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; + +import type { JsPackageManager } from '@storybook/core/common'; +import fse from 'fs-extra'; import { sep } from 'path'; -import * as helpers from './helpers'; + import { IS_WINDOWS } from '../../../vitest.helpers'; -import type { JsPackageManager } from '@storybook/core/common'; +import * as helpers from './helpers'; import type { SupportedRenderers } from './project_types'; import { SupportedLanguage } from './project_types'; diff --git a/code/core/src/cli/helpers.ts b/code/core/src/cli/helpers.ts index e0af5f76af9f..c1dfae542c0a 100644 --- a/code/core/src/cli/helpers.ts +++ b/code/core/src/cli/helpers.ts @@ -1,22 +1,23 @@ +import { + frameworkToRenderer as CoreFrameworkToRenderer, + type JsPackageManager, + type PackageJson, + type PackageJsonWithDepsAndDevDeps, +} from '@storybook/core/common'; +import { versions as storybookMonorepoPackages } from '@storybook/core/common'; +import type { SupportedFrameworks, SupportedRenderers } from '@storybook/core/types'; + import chalk from 'chalk'; +import { findUpSync } from 'find-up'; import fs from 'fs'; import fse from 'fs-extra'; import path, { join } from 'path'; import { coerce, satisfies } from 'semver'; import stripJsonComments from 'strip-json-comments'; - -import { findUpSync } from 'find-up'; import invariant from 'tiny-invariant'; + import { getRendererDir } from './dirs'; -import { - type JsPackageManager, - type PackageJson, - type PackageJsonWithDepsAndDevDeps, - frameworkToRenderer as CoreFrameworkToRenderer, -} from '@storybook/core/common'; -import type { SupportedFrameworks, SupportedRenderers } from '@storybook/core/types'; import { CoreBuilder, SupportedLanguage } from './project_types'; -import { versions as storybookMonorepoPackages } from '@storybook/core/common'; const logger = console; diff --git a/code/core/src/cli/project_types.test.ts b/code/core/src/cli/project_types.test.ts index 95bca595dfc7..c5b6e4adc82f 100644 --- a/code/core/src/cli/project_types.test.ts +++ b/code/core/src/cli/project_types.test.ts @@ -1,5 +1,6 @@ -import { describe, it, expect } from 'vitest'; -import { installableProjectTypes, SUPPORTED_RENDERERS } from './project_types'; +import { describe, expect, it } from 'vitest'; + +import { SUPPORTED_RENDERERS, installableProjectTypes } from './project_types'; describe('installableProjectTypes should have an entry for the supported framework', () => { SUPPORTED_RENDERERS.forEach((framework) => { diff --git a/code/core/src/cli/project_types.ts b/code/core/src/cli/project_types.ts index b0f6c889c7c5..1efeba6cc52f 100644 --- a/code/core/src/cli/project_types.ts +++ b/code/core/src/cli/project_types.ts @@ -1,9 +1,10 @@ -import { minVersion, validRange } from 'semver'; import type { - SupportedFrameworks, SupportedRenderers as CoreSupportedFrameworks, + SupportedFrameworks, } from '@storybook/core/types'; +import { minVersion, validRange } from 'semver'; + function eqMajor(versionRange: string, major: number) { // Uses validRange to avoid a throw from minVersion if an invalid range gets passed if (validRange(versionRange)) { diff --git a/code/core/src/client-logger/index.test.ts b/code/core/src/client-logger/index.test.ts index 8574cef5066d..c46f70f2fd00 100644 --- a/code/core/src/client-logger/index.test.ts +++ b/code/core/src/client-logger/index.test.ts @@ -1,4 +1,5 @@ -import { describe, beforeEach, afterAll, it, expect, vi } from 'vitest'; +import { afterAll, beforeEach, describe, expect, it, vi } from 'vitest'; + import { logger } from '.'; vi.mock('@storybook/global', () => ({ global: { ...global, LOGLEVEL: 'debug' } })); diff --git a/code/core/src/common/config.test.ts b/code/core/src/common/config.test.ts index 3e75aeb0396f..de70dd7fe9a4 100644 --- a/code/core/src/common/config.test.ts +++ b/code/core/src/common/config.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { filterPresetsConfig } from './presets'; describe('filterPresetsConfig', () => { diff --git a/code/core/src/common/index.ts b/code/core/src/common/index.ts index d16c9118ae8b..107ce9b6d98f 100644 --- a/code/core/src/common/index.ts +++ b/code/core/src/common/index.ts @@ -1,3 +1,5 @@ +import versions from './versions'; + /// export * from './presets'; @@ -40,7 +42,6 @@ export * from './utils/strip-abs-node-modules-path'; export * from './utils/formatter'; export * from './js-package-manager'; -import versions from './versions'; export { versions }; export { createFileSystemCache } from './utils/file-cache'; diff --git a/code/core/src/common/js-package-manager/JsPackageManager.ts b/code/core/src/common/js-package-manager/JsPackageManager.ts index 5a18b572f248..6f1b6f6b79df 100644 --- a/code/core/src/common/js-package-manager/JsPackageManager.ts +++ b/code/core/src/common/js-package-manager/JsPackageManager.ts @@ -1,17 +1,18 @@ +import { existsSync, readFileSync } from 'node:fs'; +import { readFile, writeFile } from 'node:fs/promises'; +import path from 'node:path'; + import chalk from 'chalk'; -import { gt, satisfies } from 'semver'; import type { CommonOptions } from 'execa'; import { execaCommand, execaCommandSync } from 'execa'; -import path from 'node:path'; - -import { dedent } from 'ts-dedent'; -import { existsSync, readFileSync } from 'node:fs'; -import { readFile, writeFile } from 'node:fs/promises'; +import { gt, satisfies } from 'semver'; import invariant from 'tiny-invariant'; -import type { PackageJson, PackageJsonWithDepsAndDevDeps } from './PackageJson'; +import { dedent } from 'ts-dedent'; + +import { HandledError } from '../utils/HandledError'; import storybookPackagesVersions from '../versions'; +import type { PackageJson, PackageJsonWithDepsAndDevDeps } from './PackageJson'; import type { InstallationMetadata } from './types'; -import { HandledError } from '../utils/HandledError'; const logger = console; diff --git a/code/core/src/common/js-package-manager/JsPackageManagerFactory.test.ts b/code/core/src/common/js-package-manager/JsPackageManagerFactory.test.ts index 0a5e6e626731..0a3a2a813413 100644 --- a/code/core/src/common/js-package-manager/JsPackageManagerFactory.test.ts +++ b/code/core/src/common/js-package-manager/JsPackageManagerFactory.test.ts @@ -1,7 +1,10 @@ -import { describe, beforeEach, it, expect, vi } from 'vitest'; +import path from 'node:path'; + +import { beforeEach, describe, expect, it, vi } from 'vitest'; + import { sync as spawnSync } from 'cross-spawn'; import { findUpSync } from 'find-up'; -import path from 'node:path'; + import { JsPackageManagerFactory } from './JsPackageManagerFactory'; import { NPMProxy } from './NPMProxy'; import { PNPMProxy } from './PNPMProxy'; diff --git a/code/core/src/common/js-package-manager/JsPackageManagerFactory.ts b/code/core/src/common/js-package-manager/JsPackageManagerFactory.ts index badd60ea6cf7..c6ad21626404 100644 --- a/code/core/src/common/js-package-manager/JsPackageManagerFactory.ts +++ b/code/core/src/common/js-package-manager/JsPackageManagerFactory.ts @@ -1,14 +1,13 @@ import path, { parse, relative } from 'node:path'; + import { sync as spawnSync } from 'cross-spawn'; import { findUpSync } from 'find-up'; +import type { JsPackageManager, PackageManagerName } from './JsPackageManager'; import { NPMProxy } from './NPMProxy'; import { PNPMProxy } from './PNPMProxy'; - -import type { JsPackageManager, PackageManagerName } from './JsPackageManager'; - -import { Yarn2Proxy } from './Yarn2Proxy'; import { Yarn1Proxy } from './Yarn1Proxy'; +import { Yarn2Proxy } from './Yarn2Proxy'; const NPM_LOCKFILE = 'package-lock.json'; const PNPM_LOCKFILE = 'pnpm-lock.yaml'; diff --git a/code/core/src/common/js-package-manager/NPMProxy.test.ts b/code/core/src/common/js-package-manager/NPMProxy.test.ts index 9c88ea60af45..4a783017d917 100644 --- a/code/core/src/common/js-package-manager/NPMProxy.test.ts +++ b/code/core/src/common/js-package-manager/NPMProxy.test.ts @@ -1,4 +1,5 @@ -import { describe, beforeEach, it, expect, vi } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; + import { NPMProxy } from './NPMProxy'; // mock createLogStream diff --git a/code/core/src/common/js-package-manager/NPMProxy.ts b/code/core/src/common/js-package-manager/NPMProxy.ts index 3cdadeb17ff3..24ad9cfd794b 100644 --- a/code/core/src/common/js-package-manager/NPMProxy.ts +++ b/code/core/src/common/js-package-manager/NPMProxy.ts @@ -1,16 +1,18 @@ -import sort from 'semver/functions/sort.js'; -import { platform } from 'os'; -import dedent from 'ts-dedent'; -import { findUpSync } from 'find-up'; import { existsSync, readFileSync } from 'node:fs'; import path from 'node:path'; + import { logger } from '@storybook/core/node-logger'; import { FindPackageVersionsError } from '@storybook/core/server-errors'; +import { findUpSync } from 'find-up'; +import { platform } from 'os'; +import sort from 'semver/functions/sort.js'; +import dedent from 'ts-dedent'; + +import { createLogStream } from '../utils/cli'; import { JsPackageManager } from './JsPackageManager'; import type { PackageJson } from './PackageJson'; import type { InstallationMetadata, PackageMetadata } from './types'; -import { createLogStream } from '../utils/cli'; type NpmDependency = { version: string; diff --git a/code/core/src/common/js-package-manager/PNPMProxy.test.ts b/code/core/src/common/js-package-manager/PNPMProxy.test.ts index cca2ca4ea364..f869dcb8181d 100644 --- a/code/core/src/common/js-package-manager/PNPMProxy.test.ts +++ b/code/core/src/common/js-package-manager/PNPMProxy.test.ts @@ -1,4 +1,5 @@ -import { describe, beforeEach, it, expect, vi } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; + import { PNPMProxy } from './PNPMProxy'; describe('PNPM Proxy', () => { diff --git a/code/core/src/common/js-package-manager/PNPMProxy.ts b/code/core/src/common/js-package-manager/PNPMProxy.ts index 652310bf87b3..d04f78a71b09 100644 --- a/code/core/src/common/js-package-manager/PNPMProxy.ts +++ b/code/core/src/common/js-package-manager/PNPMProxy.ts @@ -1,14 +1,16 @@ -import { pathExistsSync } from 'fs-extra'; -import dedent from 'ts-dedent'; import { existsSync, readFileSync } from 'node:fs'; -import { findUpSync } from 'find-up'; import path from 'node:path'; + import { FindPackageVersionsError } from '@storybook/core/server-errors'; +import { findUpSync } from 'find-up'; +import { pathExistsSync } from 'fs-extra'; +import dedent from 'ts-dedent'; + +import { createLogStream } from '../utils/cli'; import { JsPackageManager } from './JsPackageManager'; import type { PackageJson } from './PackageJson'; import type { InstallationMetadata, PackageMetadata } from './types'; -import { createLogStream } from '../utils/cli'; type PnpmDependency = { from: string; diff --git a/code/core/src/common/js-package-manager/Yarn1Proxy.test.ts b/code/core/src/common/js-package-manager/Yarn1Proxy.test.ts index c20f496fed80..69bbc046aaf0 100644 --- a/code/core/src/common/js-package-manager/Yarn1Proxy.test.ts +++ b/code/core/src/common/js-package-manager/Yarn1Proxy.test.ts @@ -1,5 +1,7 @@ -import { describe, beforeEach, it, expect, vi } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; + import { dedent } from 'ts-dedent'; + import { Yarn1Proxy } from './Yarn1Proxy'; describe('Yarn 1 Proxy', () => { diff --git a/code/core/src/common/js-package-manager/Yarn1Proxy.ts b/code/core/src/common/js-package-manager/Yarn1Proxy.ts index a6387bc34176..97ca04b63641 100644 --- a/code/core/src/common/js-package-manager/Yarn1Proxy.ts +++ b/code/core/src/common/js-package-manager/Yarn1Proxy.ts @@ -1,9 +1,11 @@ import { existsSync, readFileSync } from 'node:fs'; -import dedent from 'ts-dedent'; -import { findUpSync } from 'find-up'; import path from 'node:path'; + import { FindPackageVersionsError } from '@storybook/core/server-errors'; +import { findUpSync } from 'find-up'; +import dedent from 'ts-dedent'; + import { createLogStream } from '../utils/cli'; import { JsPackageManager } from './JsPackageManager'; import type { PackageJson } from './PackageJson'; diff --git a/code/core/src/common/js-package-manager/Yarn2Proxy.test.ts b/code/core/src/common/js-package-manager/Yarn2Proxy.test.ts index c7265e12f18b..fad7e829d180 100644 --- a/code/core/src/common/js-package-manager/Yarn2Proxy.test.ts +++ b/code/core/src/common/js-package-manager/Yarn2Proxy.test.ts @@ -1,4 +1,5 @@ -import { describe, beforeEach, it, expect, vi } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; + import { Yarn2Proxy } from './Yarn2Proxy'; describe('Yarn 2 Proxy', () => { diff --git a/code/core/src/common/js-package-manager/Yarn2Proxy.ts b/code/core/src/common/js-package-manager/Yarn2Proxy.ts index 5036afed4345..cf81284b1c25 100644 --- a/code/core/src/common/js-package-manager/Yarn2Proxy.ts +++ b/code/core/src/common/js-package-manager/Yarn2Proxy.ts @@ -1,10 +1,12 @@ -import { dedent } from 'ts-dedent'; -import { findUpSync } from 'find-up'; import { existsSync, readFileSync } from 'node:fs'; import path from 'node:path'; + +import { FindPackageVersionsError } from '@storybook/core/server-errors'; + import { PosixFS, VirtualFS, ZipOpenFS } from '@yarnpkg/fslib'; import { getLibzipSync } from '@yarnpkg/libzip'; -import { FindPackageVersionsError } from '@storybook/core/server-errors'; +import { findUpSync } from 'find-up'; +import { dedent } from 'ts-dedent'; import { createLogStream } from '../utils/cli'; import { JsPackageManager } from './JsPackageManager'; diff --git a/code/core/src/common/presets.test.ts b/code/core/src/common/presets.test.ts index d7a847949f5c..7c22e514fc26 100644 --- a/code/core/src/common/presets.test.ts +++ b/code/core/src/common/presets.test.ts @@ -1,8 +1,12 @@ -import mockRequire from 'mock-require'; -import { describe, beforeEach, afterEach, it, expect, vi } from 'vitest'; import path from 'node:path'; + +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; + import { logger } from '@storybook/core/node-logger'; -import { getPresets, resolveAddonName, loadPreset } from './presets'; + +import mockRequire from 'mock-require'; + +import { getPresets, loadPreset, resolveAddonName } from './presets'; function wrapPreset(basePresets: any): { babel: Function; webpack: Function } { return { diff --git a/code/core/src/common/presets.ts b/code/core/src/common/presets.ts index 593d60051192..5651aa3e6a1f 100644 --- a/code/core/src/common/presets.ts +++ b/code/core/src/common/presets.ts @@ -1,11 +1,5 @@ -import { dedent } from 'ts-dedent'; -import { logger } from '@storybook/core/node-logger'; import { join, parse } from 'node:path'; -import { CriticalPresetLoadError } from '@storybook/core/server-errors'; -import { loadCustomPresets } from './utils/load-custom-presets'; -import { safeResolve, safeResolveFrom } from './utils/safeResolve'; -import { interopRequireDefault } from './utils/interpret-require'; -import { stripAbsNodeModulesPath } from './utils/strip-abs-node-modules-path'; + import type { BuilderOptions, CLIOptions, @@ -18,6 +12,16 @@ import type { StorybookConfigRaw, } from '@storybook/core/types'; +import { logger } from '@storybook/core/node-logger'; +import { CriticalPresetLoadError } from '@storybook/core/server-errors'; + +import { dedent } from 'ts-dedent'; + +import { interopRequireDefault } from './utils/interpret-require'; +import { loadCustomPresets } from './utils/load-custom-presets'; +import { safeResolve, safeResolveFrom } from './utils/safeResolve'; +import { stripAbsNodeModulesPath } from './utils/strip-abs-node-modules-path'; + type InterPresetOptions = Omit< CLIOptions & LoadOptions & diff --git a/code/core/src/common/utils/__tests__/check-addon-order.test.ts b/code/core/src/common/utils/__tests__/check-addon-order.test.ts index 9b22f83b98f2..c9f67ffd3631 100644 --- a/code/core/src/common/utils/__tests__/check-addon-order.test.ts +++ b/code/core/src/common/utils/__tests__/check-addon-order.test.ts @@ -1,10 +1,13 @@ -import { afterEach, it, expect, vi, describe } from 'vitest'; -import { logger } from '@storybook/core/node-logger'; +import { afterEach, describe, expect, it, vi } from 'vitest'; + import type { CoreCommon_AddonEntry, CoreCommon_AddonInfo, CoreCommon_OptionsEntry, } from '@storybook/core/types'; + +import { logger } from '@storybook/core/node-logger'; + import { checkAddonOrder } from '../check-addon-order'; const configFile = './main.js'; diff --git a/code/core/src/common/utils/__tests__/interpret-files.test.ts b/code/core/src/common/utils/__tests__/interpret-files.test.ts index fff12806dfb1..aae6c0bc7c87 100644 --- a/code/core/src/common/utils/__tests__/interpret-files.test.ts +++ b/code/core/src/common/utils/__tests__/interpret-files.test.ts @@ -1,5 +1,7 @@ -import { describe, afterEach, it, expect } from 'vitest'; +import { afterEach, describe, expect, it } from 'vitest'; + import mock from 'mock-fs'; + import { getInterpretedFile } from '../interpret-files'; describe('interpret-files', () => { diff --git a/code/core/src/common/utils/__tests__/normalize-stories.test.ts b/code/core/src/common/utils/__tests__/normalize-stories.test.ts index d16479ee6e73..26e5f1bcc3c8 100644 --- a/code/core/src/common/utils/__tests__/normalize-stories.test.ts +++ b/code/core/src/common/utils/__tests__/normalize-stories.test.ts @@ -1,8 +1,10 @@ /// ; -import { describe, it, expect, vi } from 'vitest'; import { sep } from 'node:path'; +import { describe, expect, it, vi } from 'vitest'; + import { InvalidStoriesEntryError } from '@storybook/core/server-errors'; + import { getDirectoryFromWorkingDir, normalizeStories, diff --git a/code/core/src/common/utils/__tests__/paths.test.ts b/code/core/src/common/utils/__tests__/paths.test.ts index 71b6b2a1efa0..bef3959dfcb5 100644 --- a/code/core/src/common/utils/__tests__/paths.test.ts +++ b/code/core/src/common/utils/__tests__/paths.test.ts @@ -1,8 +1,11 @@ -import { describe, it, expect, vi } from 'vitest'; import path from 'node:path'; + +import { describe, expect, it, vi } from 'vitest'; + import { findUpSync } from 'find-up'; import slash from 'slash'; -import { normalizeStoryPath, getProjectRoot } from '../paths'; + +import { getProjectRoot, normalizeStoryPath } from '../paths'; vi.mock('find-up'); diff --git a/code/core/src/common/utils/__tests__/template.test.ts b/code/core/src/common/utils/__tests__/template.test.ts index 53a43e84909e..d3b7567ae65f 100644 --- a/code/core/src/common/utils/__tests__/template.test.ts +++ b/code/core/src/common/utils/__tests__/template.test.ts @@ -1,8 +1,11 @@ -import { describe, beforeEach, afterEach, it, expect } from 'vitest'; -import mock from 'mock-fs'; -import { getPreviewHeadTemplate, getPreviewBodyTemplate } from '../template'; import { dirname } from 'node:path'; +import { afterEach, beforeEach, describe, expect, it } from 'vitest'; + +import mock from 'mock-fs'; + +import { getPreviewBodyTemplate, getPreviewHeadTemplate } from '../template'; + const HEAD_HTML_CONTENTS = ''; const BASE_HTML_CONTENTS = ''; diff --git a/code/core/src/common/utils/cli.test.ts b/code/core/src/common/utils/cli.test.ts index 47bcf7d19b3b..eecfcc648889 100644 --- a/code/core/src/common/utils/cli.test.ts +++ b/code/core/src/common/utils/cli.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { isCorePackage } from './cli'; describe('UTILS', () => { diff --git a/code/core/src/common/utils/cli.ts b/code/core/src/common/utils/cli.ts index 40a686df486f..5061d81905c3 100644 --- a/code/core/src/common/utils/cli.ts +++ b/code/core/src/common/utils/cli.ts @@ -1,12 +1,15 @@ -import type { WriteStream } from 'fs-extra'; -import { move, remove, writeFile, readFile, createWriteStream, mkdirSync } from 'fs-extra'; +import { realpath } from 'node:fs/promises'; +import os from 'node:os'; import { join } from 'node:path'; -import { rendererPackages } from './get-storybook-info'; + +import type { WriteStream } from 'fs-extra'; +import { createWriteStream, mkdirSync, move, readFile, remove, writeFile } from 'fs-extra'; +import { type MergeExclusive } from 'type-fest'; +import uniqueString from 'unique-string'; + import type { JsPackageManager } from '../js-package-manager'; import versions from '../versions'; -import uniqueString from 'unique-string'; -import os from 'node:os'; -import { realpath } from 'node:fs/promises'; +import { rendererPackages } from './get-storybook-info'; const tempDir = () => realpath(os.tmpdir()); @@ -18,8 +21,6 @@ export async function temporaryDirectory({ prefix = '' } = {}) { return directory; } -import { type MergeExclusive } from 'type-fest'; - export type FileOptions = MergeExclusive< { /** diff --git a/code/core/src/common/utils/envs.ts b/code/core/src/common/utils/envs.ts index 46401309cea5..adf1297f686f 100644 --- a/code/core/src/common/utils/envs.ts +++ b/code/core/src/common/utils/envs.ts @@ -1,6 +1,7 @@ // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - Needed for Angular sandbox running without --no-link option. Do NOT convert to @ts-expect-error! import { getEnvironment } from 'lazy-universal-dotenv'; + import { nodePathsToArray } from './paths'; // Load environment variables starts with STORYBOOK_ to the client side. diff --git a/code/core/src/common/utils/formatter.test.ts b/code/core/src/common/utils/formatter.test.ts index 53dfbfb51483..647ada8b404a 100644 --- a/code/core/src/common/utils/formatter.test.ts +++ b/code/core/src/common/utils/formatter.test.ts @@ -1,7 +1,9 @@ -import { formatFileContent } from './formatter'; -import { describe, it, expect, vi } from 'vitest'; import path from 'node:path'; +import { describe, expect, it, vi } from 'vitest'; + +import { formatFileContent } from './formatter'; + const mockPrettier = vi.hoisted(() => ({ resolveConfig: vi.fn(), format: vi.fn(), diff --git a/code/core/src/common/utils/get-framework-name.test.ts b/code/core/src/common/utils/get-framework-name.test.ts index 9f6a95ba19e7..b0dba5027e01 100644 --- a/code/core/src/common/utils/get-framework-name.test.ts +++ b/code/core/src/common/utils/get-framework-name.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from 'vitest'; + import { extractProperFrameworkName } from './get-framework-name'; describe('get-framework-name', () => { diff --git a/code/core/src/common/utils/get-framework-name.ts b/code/core/src/common/utils/get-framework-name.ts index 984de13b7d07..b4fcc57ee344 100644 --- a/code/core/src/common/utils/get-framework-name.ts +++ b/code/core/src/common/utils/get-framework-name.ts @@ -1,7 +1,9 @@ +import type { Options } from '@storybook/core/types'; + import { dedent } from 'ts-dedent'; + import { frameworkPackages } from './get-storybook-info'; import { normalizePath } from './normalize-path'; -import type { Options } from '@storybook/core/types'; /** * Framework can be a string or an object. This utility always returns the string name. diff --git a/code/core/src/common/utils/get-renderer-name.test.ts b/code/core/src/common/utils/get-renderer-name.test.ts index 09c31f36b4f1..5ae7fef96f35 100644 --- a/code/core/src/common/utils/get-renderer-name.test.ts +++ b/code/core/src/common/utils/get-renderer-name.test.ts @@ -1,4 +1,5 @@ import { describe, expect, test } from 'vitest'; + import { extractProperRendererNameFromFramework } from './get-renderer-name'; describe('get-renderer-name', () => { diff --git a/code/core/src/common/utils/get-renderer-name.ts b/code/core/src/common/utils/get-renderer-name.ts index df1380632360..867fa94f3775 100644 --- a/code/core/src/common/utils/get-renderer-name.ts +++ b/code/core/src/common/utils/get-renderer-name.ts @@ -1,7 +1,8 @@ +import type { Options } from '@storybook/core/types'; + +import { frameworkToRenderer } from './framework-to-renderer'; import { extractProperFrameworkName, getFrameworkName } from './get-framework-name'; import { frameworkPackages } from './get-storybook-info'; -import { frameworkToRenderer } from './framework-to-renderer'; -import type { Options } from '@storybook/core/types'; /** * Render is set as a string on core. It must be set by the framework diff --git a/code/core/src/common/utils/get-storybook-configuration.test.ts b/code/core/src/common/utils/get-storybook-configuration.test.ts index aa821e38e594..1bb377f79d94 100644 --- a/code/core/src/common/utils/get-storybook-configuration.test.ts +++ b/code/core/src/common/utils/get-storybook-configuration.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { getStorybookConfiguration } from './get-storybook-configuration'; describe('getStorybookConfiguration', () => { diff --git a/code/core/src/common/utils/get-storybook-info.ts b/code/core/src/common/utils/get-storybook-info.ts index b61f1fd4914a..669b1b2c1d10 100644 --- a/code/core/src/common/utils/get-storybook-info.ts +++ b/code/core/src/common/utils/get-storybook-info.ts @@ -1,9 +1,12 @@ import path from 'node:path'; -import { pathExistsSync } from 'fs-extra'; -import { getStorybookConfiguration } from './get-storybook-configuration'; + import type { SupportedFrameworks } from '@storybook/core/types'; import type { CoreCommon_StorybookInfo, PackageJson } from '@storybook/core/types'; +import { pathExistsSync } from 'fs-extra'; + +import { getStorybookConfiguration } from './get-storybook-configuration'; + export const rendererPackages: Record = { '@storybook/react': 'react', '@storybook/vue3': 'vue3', diff --git a/code/core/src/common/utils/get-storybook-refs.ts b/code/core/src/common/utils/get-storybook-refs.ts index b24fde29dea5..053ae17abc93 100644 --- a/code/core/src/common/utils/get-storybook-refs.ts +++ b/code/core/src/common/utils/get-storybook-refs.ts @@ -1,11 +1,13 @@ -import { readJSON } from 'fs-extra'; import { dirname, join } from 'node:path'; -import { findUp } from 'find-up'; -import resolveFrom from 'resolve-from'; -import { logger } from '@storybook/core/node-logger'; import type { Options, Ref } from '@storybook/core/types'; +import { logger } from '@storybook/core/node-logger'; + +import { findUp } from 'find-up'; +import { readJSON } from 'fs-extra'; +import resolveFrom from 'resolve-from'; + export const getAutoRefs = async (options: Options): Promise> => { const location = await findUp('package.json', { cwd: options.configDir }); if (!location) { diff --git a/code/core/src/common/utils/load-custom-presets.ts b/code/core/src/common/utils/load-custom-presets.ts index 16923ec1a6f0..5d8a99ce4c8a 100644 --- a/code/core/src/common/utils/load-custom-presets.ts +++ b/code/core/src/common/utils/load-custom-presets.ts @@ -1,7 +1,9 @@ import path from 'node:path'; + +import type { PresetConfig } from '@storybook/core/types'; + import { serverRequire, serverResolve } from './interpret-require'; import { validateConfigurationFiles } from './validate-configuration-files'; -import type { PresetConfig } from '@storybook/core/types'; export function loadCustomPresets({ configDir }: { configDir: string }): PresetConfig[] { validateConfigurationFiles(configDir); diff --git a/code/core/src/common/utils/load-main-config.ts b/code/core/src/common/utils/load-main-config.ts index 37d9789afcfb..5a3e0925aedd 100644 --- a/code/core/src/common/utils/load-main-config.ts +++ b/code/core/src/common/utils/load-main-config.ts @@ -1,9 +1,13 @@ import path, { relative } from 'node:path'; + +import type { StorybookConfig } from '@storybook/core/types'; + +import { MainFileESMOnlyImportError, MainFileEvaluationError } from '@storybook/core/server-errors'; + +import { readFile } from 'fs/promises'; + import { serverRequire, serverResolve } from './interpret-require'; import { validateConfigurationFiles } from './validate-configuration-files'; -import { readFile } from 'fs/promises'; -import { MainFileESMOnlyImportError, MainFileEvaluationError } from '@storybook/core/server-errors'; -import type { StorybookConfig } from '@storybook/core/types'; export async function loadMainConfig({ configDir = '.storybook', diff --git a/code/core/src/common/utils/load-manager-or-addons-file.ts b/code/core/src/common/utils/load-manager-or-addons-file.ts index 78c10958269c..2ffe9e476706 100644 --- a/code/core/src/common/utils/load-manager-or-addons-file.ts +++ b/code/core/src/common/utils/load-manager-or-addons-file.ts @@ -1,5 +1,7 @@ import path from 'node:path'; + import { logger } from '@storybook/core/node-logger'; + import { dedent } from 'ts-dedent'; import { getInterpretedFile } from './interpret-files'; diff --git a/code/core/src/common/utils/load-preview-or-config-file.ts b/code/core/src/common/utils/load-preview-or-config-file.ts index a6af14cfae16..09124397f860 100644 --- a/code/core/src/common/utils/load-preview-or-config-file.ts +++ b/code/core/src/common/utils/load-preview-or-config-file.ts @@ -1,4 +1,5 @@ import path from 'node:path'; + import { dedent } from 'ts-dedent'; import { getInterpretedFile } from './interpret-files'; diff --git a/code/core/src/common/utils/normalize-path.test.ts b/code/core/src/common/utils/normalize-path.test.ts index b2688660b6ef..41c5b1dbbf34 100644 --- a/code/core/src/common/utils/normalize-path.test.ts +++ b/code/core/src/common/utils/normalize-path.test.ts @@ -1,6 +1,7 @@ -import { normalizePath } from './normalize-path'; import { describe, expect, it } from 'vitest'; +import { normalizePath } from './normalize-path'; + describe('normalize-path', () => { it('should normalize paths', () => { expect(normalizePath('path/to/../file')).toBe('path/file'); diff --git a/code/core/src/common/utils/normalize-stories.ts b/code/core/src/common/utils/normalize-stories.ts index 44e2bb38f64a..35361e172291 100644 --- a/code/core/src/common/utils/normalize-stories.ts +++ b/code/core/src/common/utils/normalize-stories.ts @@ -1,12 +1,15 @@ import { lstatSync } from 'node:fs'; import path from 'node:path'; + +import type { NormalizedStoriesSpecifier, StoriesEntry } from '@storybook/core/types'; + +import { InvalidStoriesEntryError } from '@storybook/core/server-errors'; + import * as pico from 'picomatch'; import slash from 'slash'; -import { InvalidStoriesEntryError } from '@storybook/core/server-errors'; -import { normalizeStoryPath } from './paths'; import { globToRegexp } from './glob-to-regexp'; -import type { NormalizedStoriesSpecifier, StoriesEntry } from '@storybook/core/types'; +import { normalizeStoryPath } from './paths'; const DEFAULT_TITLE_PREFIX = ''; const DEFAULT_FILES_PATTERN = '**/*.@(mdx|stories.@(js|jsx|mjs|ts|tsx))'; diff --git a/code/core/src/common/utils/notify-telemetry.ts b/code/core/src/common/utils/notify-telemetry.ts index 53b291b4b6a8..bb39028dedeb 100644 --- a/code/core/src/common/utils/notify-telemetry.ts +++ b/code/core/src/common/utils/notify-telemetry.ts @@ -1,4 +1,5 @@ import chalk from 'chalk'; + import { cache } from './cache'; const TELEMETRY_KEY_NOTIFY_DATE = 'telemetry-notification-date'; diff --git a/code/core/src/common/utils/paths.ts b/code/core/src/common/utils/paths.ts index b2260be135f4..e92d46d78041 100644 --- a/code/core/src/common/utils/paths.ts +++ b/code/core/src/common/utils/paths.ts @@ -1,4 +1,5 @@ import path from 'node:path'; + import { findUpSync } from 'find-up'; export const getProjectRoot = () => { diff --git a/code/core/src/common/utils/remove.ts b/code/core/src/common/utils/remove.ts index f20a9d9f66af..a1be0176cca2 100644 --- a/code/core/src/common/utils/remove.ts +++ b/code/core/src/common/utils/remove.ts @@ -1,5 +1,7 @@ -import { dedent } from 'ts-dedent'; import { readConfig, writeConfig } from '@storybook/core/csf-tools'; + +import { dedent } from 'ts-dedent'; + import type { PackageManagerName } from '../js-package-manager'; import { JsPackageManagerFactory } from '../js-package-manager'; import { getStorybookInfo } from './get-storybook-info'; diff --git a/code/core/src/common/utils/resolve-path-in-sb-cache.ts b/code/core/src/common/utils/resolve-path-in-sb-cache.ts index 4ba6e762ba1b..a7df27dc41a8 100644 --- a/code/core/src/common/utils/resolve-path-in-sb-cache.ts +++ b/code/core/src/common/utils/resolve-path-in-sb-cache.ts @@ -1,4 +1,5 @@ import path from 'node:path'; + import findCacheDirectory from 'find-cache-dir'; /** diff --git a/code/core/src/common/utils/strip-abs-node-modules-path.ts b/code/core/src/common/utils/strip-abs-node-modules-path.ts index b3d83198f1e7..cb0950715e4e 100644 --- a/code/core/src/common/utils/strip-abs-node-modules-path.ts +++ b/code/core/src/common/utils/strip-abs-node-modules-path.ts @@ -1,4 +1,5 @@ import path from 'node:path'; + import slash from 'slash'; function normalizePath(id: string) { diff --git a/code/core/src/common/utils/template.ts b/code/core/src/common/utils/template.ts index 367ea32afe71..eb32545b7ea2 100644 --- a/code/core/src/common/utils/template.ts +++ b/code/core/src/common/utils/template.ts @@ -1,5 +1,5 @@ -import { dirname, resolve } from 'node:path'; import { existsSync, readFileSync } from 'node:fs'; +import { dirname, resolve } from 'node:path'; const interpolate = (string: string, data: Record = {}) => Object.entries(data).reduce((acc, [k, v]) => acc.replace(new RegExp(`%${k}%`, 'g'), v), string); diff --git a/code/core/src/common/utils/validate-config.test.ts b/code/core/src/common/utils/validate-config.test.ts index d945f374002f..891b5daa63fb 100644 --- a/code/core/src/common/utils/validate-config.test.ts +++ b/code/core/src/common/utils/validate-config.test.ts @@ -1,4 +1,5 @@ -import { describe, afterEach, it, expect, vi } from 'vitest'; +import { afterEach, describe, expect, it, vi } from 'vitest'; + import { validateFrameworkName } from './validate-config'; describe('validateFrameworkName', () => { diff --git a/code/core/src/common/utils/validate-config.ts b/code/core/src/common/utils/validate-config.ts index 4ca2856d02b9..221ea9235522 100644 --- a/code/core/src/common/utils/validate-config.ts +++ b/code/core/src/common/utils/validate-config.ts @@ -1,9 +1,11 @@ import { join } from 'node:path'; + import { CouldNotEvaluateFrameworkError, - MissingFrameworkFieldError, InvalidFrameworkNameError, + MissingFrameworkFieldError, } from '@storybook/core/server-errors'; + import { frameworkPackages } from './get-storybook-info'; const renderers = ['html', 'preact', 'react', 'server', 'svelte', 'vue', 'vue3', 'web-components']; diff --git a/code/core/src/common/utils/validate-configuration-files.ts b/code/core/src/common/utils/validate-configuration-files.ts index f177bc84901b..9bf6a8b68c0a 100644 --- a/code/core/src/common/utils/validate-configuration-files.ts +++ b/code/core/src/common/utils/validate-configuration-files.ts @@ -1,11 +1,13 @@ -import { dedent } from 'ts-dedent'; -import { glob } from 'glob'; import path from 'node:path'; -import slash from 'slash'; + import { once } from '@storybook/core/node-logger'; +import { MainFileMissingError } from '@storybook/core/server-errors'; + +import { glob } from 'glob'; +import slash from 'slash'; +import { dedent } from 'ts-dedent'; import { boost } from './interpret-files'; -import { MainFileMissingError } from '@storybook/core/server-errors'; export async function validateConfigurationFiles(configDir: string) { const extensionsPattern = `{${Array.from(boost).join(',')}}`; diff --git a/code/core/src/components/components/ActionBar/ActionBar.stories.tsx b/code/core/src/components/components/ActionBar/ActionBar.stories.tsx index 48fa2d56f47a..d5598a36ec1f 100644 --- a/code/core/src/components/components/ActionBar/ActionBar.stories.tsx +++ b/code/core/src/components/components/ActionBar/ActionBar.stories.tsx @@ -1,5 +1,6 @@ import type { ReactNode } from 'react'; import React from 'react'; + import { action } from '@storybook/addon-actions'; import { ActionBar } from './ActionBar'; diff --git a/code/core/src/components/components/Badge/Badge.stories.tsx b/code/core/src/components/components/Badge/Badge.stories.tsx index 974dc64f8be1..4f51422c0f0e 100644 --- a/code/core/src/components/components/Badge/Badge.stories.tsx +++ b/code/core/src/components/components/Badge/Badge.stories.tsx @@ -1,4 +1,5 @@ import type { Meta, StoryObj } from '@storybook/react'; + import { Badge } from './Badge'; const meta = { diff --git a/code/core/src/components/components/Badge/Badge.tsx b/code/core/src/components/components/Badge/Badge.tsx index f5e111cd4c69..a76cbd1121cc 100644 --- a/code/core/src/components/components/Badge/Badge.tsx +++ b/code/core/src/components/components/Badge/Badge.tsx @@ -1,5 +1,7 @@ import React from 'react'; + import { styled } from '@storybook/core/theming'; + import { transparentize } from 'polished'; const BadgeWrapper = styled.div( diff --git a/code/core/src/components/components/Button/Button.deprecated.stories.tsx b/code/core/src/components/components/Button/Button.deprecated.stories.tsx index 009ea9627ab5..ee10af77e39b 100644 --- a/code/core/src/components/components/Button/Button.deprecated.stories.tsx +++ b/code/core/src/components/components/Button/Button.deprecated.stories.tsx @@ -1,8 +1,10 @@ -import type { Meta, StoryObj } from '@storybook/react'; import React from 'react'; + import { LinkIcon } from '@storybook/icons'; -import { Button } from './Button'; +import type { Meta, StoryObj } from '@storybook/react'; + import { Form } from '../form'; +import { Button } from './Button'; const meta: Meta = { title: 'Button (Deprecated)', diff --git a/code/core/src/components/components/Button/Button.stories.tsx b/code/core/src/components/components/Button/Button.stories.tsx index a74ce9e308a6..93407ce8cc8d 100644 --- a/code/core/src/components/components/Button/Button.stories.tsx +++ b/code/core/src/components/components/Button/Button.stories.tsx @@ -1,7 +1,9 @@ -import type { Meta, StoryObj } from '@storybook/react'; import type { ReactNode } from 'react'; import React from 'react'; + import { FaceHappyIcon } from '@storybook/icons'; +import type { Meta, StoryObj } from '@storybook/react'; + import { Button } from './Button'; const meta = { diff --git a/code/core/src/components/components/Button/Button.tsx b/code/core/src/components/components/Button/Button.tsx index 5c9eb88b693f..4e91549a9874 100644 --- a/code/core/src/components/components/Button/Button.tsx +++ b/code/core/src/components/components/Button/Button.tsx @@ -1,10 +1,13 @@ import type { ButtonHTMLAttributes, SyntheticEvent } from 'react'; import React, { forwardRef, useEffect, useState } from 'react'; + import { isPropValid, styled } from '@storybook/core/theming'; -import { darken, lighten, rgba, transparentize } from 'polished'; -import { Slot } from '@radix-ui/react-slot'; + import { deprecate } from '@storybook/core/client-logger'; +import { Slot } from '@radix-ui/react-slot'; +import { darken, lighten, rgba, transparentize } from 'polished'; + export interface ButtonProps extends ButtonHTMLAttributes { asChild?: boolean; size?: 'small' | 'medium'; diff --git a/code/core/src/components/components/ErrorFormatter/ErrorFormatter.stories.tsx b/code/core/src/components/components/ErrorFormatter/ErrorFormatter.stories.tsx index 9038928d27a2..3ffc4e68381d 100644 --- a/code/core/src/components/components/ErrorFormatter/ErrorFormatter.stories.tsx +++ b/code/core/src/components/components/ErrorFormatter/ErrorFormatter.stories.tsx @@ -1,5 +1,7 @@ import React from 'react'; -import type { StoryObj, Meta } from '@storybook/react'; + +import type { Meta, StoryObj } from '@storybook/react'; + import { dedent } from 'ts-dedent'; import { ErrorFormatter } from './ErrorFormatter'; diff --git a/code/core/src/components/components/ErrorFormatter/ErrorFormatter.tsx b/code/core/src/components/components/ErrorFormatter/ErrorFormatter.tsx index 422d0a0ff5ad..b33a4c2f4040 100644 --- a/code/core/src/components/components/ErrorFormatter/ErrorFormatter.tsx +++ b/code/core/src/components/components/ErrorFormatter/ErrorFormatter.tsx @@ -1,7 +1,7 @@ -import { global } from '@storybook/global'; - import React, { Fragment } from 'react'; + import { styled } from '@storybook/core/theming'; +import { global } from '@storybook/global'; const { document } = global; diff --git a/code/core/src/components/components/IconButton/IconButton.stories.tsx b/code/core/src/components/components/IconButton/IconButton.stories.tsx index c3341ac44c92..b7c8584cc150 100644 --- a/code/core/src/components/components/IconButton/IconButton.stories.tsx +++ b/code/core/src/components/components/IconButton/IconButton.stories.tsx @@ -1,6 +1,8 @@ -import type { Meta, StoryObj } from '@storybook/react'; import React from 'react'; + import { FaceHappyIcon } from '@storybook/icons'; +import type { Meta, StoryObj } from '@storybook/react'; + import { IconButton } from './IconButton'; const meta = { diff --git a/code/core/src/components/components/IconButton/IconButton.tsx b/code/core/src/components/components/IconButton/IconButton.tsx index 87088d342b52..31bf06902b36 100644 --- a/code/core/src/components/components/IconButton/IconButton.tsx +++ b/code/core/src/components/components/IconButton/IconButton.tsx @@ -1,4 +1,5 @@ import React, { forwardRef } from 'react'; + import type { ButtonProps } from '../Button/Button'; import { Button } from '../Button/Button'; diff --git a/code/core/src/components/components/Loader/Loader.stories.tsx b/code/core/src/components/components/Loader/Loader.stories.tsx index c4d7b5eb0019..35b3f4cc14a3 100644 --- a/code/core/src/components/components/Loader/Loader.stories.tsx +++ b/code/core/src/components/components/Loader/Loader.stories.tsx @@ -1,4 +1,5 @@ import React from 'react'; + import { Loader } from './Loader'; const withBackground = (storyFn: any) => ( diff --git a/code/core/src/components/components/Loader/Loader.tsx b/code/core/src/components/components/Loader/Loader.tsx index c29130e86b5e..e30812e27286 100644 --- a/code/core/src/components/components/Loader/Loader.tsx +++ b/code/core/src/components/components/Loader/Loader.tsx @@ -1,9 +1,12 @@ -import { transparentize } from 'polished'; import React from 'react'; -import { styled, keyframes } from '@storybook/core/theming'; -import { rotate360 } from '../shared/animation'; + +import { keyframes, styled } from '@storybook/core/theming'; import { LightningOffIcon } from '@storybook/icons'; +import { transparentize } from 'polished'; + +import { rotate360 } from '../shared/animation'; + const LoaderWrapper = styled.div<{ size?: number }>(({ size = 32 }) => ({ borderRadius: '50%', cursor: 'progress', diff --git a/code/core/src/components/components/Modal/Modal.stories.tsx b/code/core/src/components/components/Modal/Modal.stories.tsx index 658683e6368b..0793d24c8db5 100644 --- a/code/core/src/components/components/Modal/Modal.stories.tsx +++ b/code/core/src/components/components/Modal/Modal.stories.tsx @@ -1,9 +1,10 @@ import React, { useState } from 'react'; + import type { Meta, StoryObj } from '@storybook/react'; -import { userEvent, within, expect } from '@storybook/test'; +import { expect, userEvent, within } from '@storybook/test'; -import { Modal } from './Modal'; import { Button } from '../Button/Button'; +import { Modal } from './Modal'; type Story = StoryObj; diff --git a/code/core/src/components/components/Modal/Modal.styled.tsx b/code/core/src/components/components/Modal/Modal.styled.tsx index 4636eea89d80..ca56fb05627e 100644 --- a/code/core/src/components/components/Modal/Modal.styled.tsx +++ b/code/core/src/components/components/Modal/Modal.styled.tsx @@ -1,11 +1,13 @@ -import { keyframes, styled } from '@storybook/core/theming'; -import * as Dialog from '@radix-ui/react-dialog'; import type { ComponentProps } from 'react'; import React from 'react'; -import { IconButton } from '../IconButton/IconButton'; +import { keyframes, styled } from '@storybook/core/theming'; import { CrossIcon } from '@storybook/icons'; +import * as Dialog from '@radix-ui/react-dialog'; + +import { IconButton } from '../IconButton/IconButton'; + const fadeIn = keyframes({ from: { opacity: 0 }, to: { opacity: 1 }, diff --git a/code/core/src/components/components/Modal/Modal.tsx b/code/core/src/components/components/Modal/Modal.tsx index ad5ddaa85b4e..a31f5aa838b6 100644 --- a/code/core/src/components/components/Modal/Modal.tsx +++ b/code/core/src/components/components/Modal/Modal.tsx @@ -1,5 +1,7 @@ import React from 'react'; + import * as Dialog from '@radix-ui/react-dialog'; + import * as Components from './Modal.styled'; type ContentProps = React.ComponentProps; diff --git a/code/core/src/components/components/ScrollArea/ScrollArea.stories.tsx b/code/core/src/components/components/ScrollArea/ScrollArea.stories.tsx index b353f644cec7..134088a66eda 100644 --- a/code/core/src/components/components/ScrollArea/ScrollArea.stories.tsx +++ b/code/core/src/components/components/ScrollArea/ScrollArea.stories.tsx @@ -1,6 +1,8 @@ import type { ReactElement } from 'react'; import React, { Fragment } from 'react'; + import { styled } from '@storybook/core/theming'; + import { ScrollArea } from './ScrollArea'; const Block = styled.span({ diff --git a/code/core/src/components/components/ScrollArea/ScrollArea.tsx b/code/core/src/components/components/ScrollArea/ScrollArea.tsx index 836294b51f3e..aa1dff7b5c24 100644 --- a/code/core/src/components/components/ScrollArea/ScrollArea.tsx +++ b/code/core/src/components/components/ScrollArea/ScrollArea.tsx @@ -1,5 +1,7 @@ import React, { forwardRef } from 'react'; + import { styled } from '@storybook/core/theming'; + import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'; export interface ScrollAreaProps { diff --git a/code/core/src/components/components/Zoom/Zoom.stories.tsx b/code/core/src/components/components/Zoom/Zoom.stories.tsx index f4632ece0e4e..b480b78b1925 100644 --- a/code/core/src/components/components/Zoom/Zoom.stories.tsx +++ b/code/core/src/components/components/Zoom/Zoom.stories.tsx @@ -1,5 +1,6 @@ import type { CSSProperties } from 'react'; import React, { useEffect, useState } from 'react'; + import { Zoom } from './Zoom'; export default { diff --git a/code/core/src/components/components/Zoom/ZoomElement.tsx b/code/core/src/components/components/Zoom/ZoomElement.tsx index e67a5f821817..7fb8068a3d60 100644 --- a/code/core/src/components/components/Zoom/ZoomElement.tsx +++ b/code/core/src/components/components/Zoom/ZoomElement.tsx @@ -1,8 +1,10 @@ import type { ReactElement } from 'react'; -import React, { useEffect, useRef, useState, useCallback } from 'react'; +import React, { useCallback, useEffect, useRef, useState } from 'react'; + +import { styled } from '@storybook/core/theming'; + import type { ResizeHandler } from 'use-resize-observer'; import useResizeObserver from 'use-resize-observer'; -import { styled } from '@storybook/core/theming'; const ZoomElementWrapper = styled.div<{ scale: number; elementHeight: number }>( ({ scale = 1, elementHeight }) => ({ diff --git a/code/core/src/components/components/Zoom/ZoomIFrame.tsx b/code/core/src/components/components/Zoom/ZoomIFrame.tsx index 370b2c4e22de..d166d3b96c28 100644 --- a/code/core/src/components/components/Zoom/ZoomIFrame.tsx +++ b/code/core/src/components/components/Zoom/ZoomIFrame.tsx @@ -1,4 +1,4 @@ -import type { RefObject, ReactElement } from 'react'; +import type { ReactElement, RefObject } from 'react'; import React, { Component } from 'react'; export type IZoomIFrameProps = { diff --git a/code/core/src/components/components/addon-panel/addon-panel.tsx b/code/core/src/components/components/addon-panel/addon-panel.tsx index 89e32c0b8592..a34ac48e9efb 100644 --- a/code/core/src/components/components/addon-panel/addon-panel.tsx +++ b/code/core/src/components/components/addon-panel/addon-panel.tsx @@ -1,5 +1,5 @@ import type { ReactNode } from 'react'; -import React, { useRef, useEffect } from 'react'; +import React, { useEffect, useRef } from 'react'; const usePrevious = (value: any) => { const ref = useRef(); diff --git a/code/core/src/components/components/bar/bar.tsx b/code/core/src/components/components/bar/bar.tsx index 933cd65cb524..571d84016620 100644 --- a/code/core/src/components/components/bar/bar.tsx +++ b/code/core/src/components/components/bar/bar.tsx @@ -1,5 +1,6 @@ import type { ComponentProps } from 'react'; import React, { Children } from 'react'; + import { styled } from '@storybook/core/theming'; import type { ScrollAreaProps } from '../ScrollArea/ScrollArea'; diff --git a/code/core/src/components/components/bar/button.tsx b/code/core/src/components/components/bar/button.tsx index 2561f19fa2ae..ef64b7e60647 100644 --- a/code/core/src/components/components/bar/button.tsx +++ b/code/core/src/components/components/bar/button.tsx @@ -2,13 +2,14 @@ import type { AnchorHTMLAttributes, ButtonHTMLAttributes, DetailedHTMLProps, - ForwardedRef, ForwardRefExoticComponent, + ForwardedRef, ReactElement, RefAttributes, } from 'react'; import React, { forwardRef } from 'react'; -import { styled, isPropValid } from '@storybook/core/theming'; + +import { isPropValid, styled } from '@storybook/core/theming'; interface ButtonProps extends DetailedHTMLProps, HTMLButtonElement> { diff --git a/code/core/src/components/components/bar/separator.tsx b/code/core/src/components/components/bar/separator.tsx index 039c4257ad65..dd06697e9af0 100644 --- a/code/core/src/components/components/bar/separator.tsx +++ b/code/core/src/components/components/bar/separator.tsx @@ -1,4 +1,5 @@ import React, { Fragment } from 'react'; + import { styled } from '@storybook/core/theming'; export interface SeparatorProps { diff --git a/code/core/src/components/components/clipboard/ClipboardCode.tsx b/code/core/src/components/components/clipboard/ClipboardCode.tsx index 5954e466f62d..bb9ffd1bf736 100644 --- a/code/core/src/components/components/clipboard/ClipboardCode.tsx +++ b/code/core/src/components/components/clipboard/ClipboardCode.tsx @@ -1,4 +1,5 @@ import React from 'react'; + import { color, styled, typography } from '@storybook/core/theming'; const Code = styled.pre` diff --git a/code/core/src/components/components/form/field/field.tsx b/code/core/src/components/components/form/field/field.tsx index 6ff17740691a..ad43a1388781 100644 --- a/code/core/src/components/components/form/field/field.tsx +++ b/code/core/src/components/components/form/field/field.tsx @@ -1,5 +1,6 @@ import type { ReactNode } from 'react'; import React from 'react'; + import { styled } from '@storybook/core/theming'; const Wrapper = styled.label(({ theme }) => ({ diff --git a/code/core/src/components/components/form/form.stories.tsx b/code/core/src/components/components/form/form.stories.tsx index 45470d60c848..a081368f6db9 100644 --- a/code/core/src/components/components/form/form.stories.tsx +++ b/code/core/src/components/components/form/form.stories.tsx @@ -1,9 +1,11 @@ import React from 'react'; + import { styled } from '@storybook/core/theming'; + import { action } from '@storybook/addon-actions'; -import * as InputComponents from './input/input'; import { Field as FieldComponent } from './field/field'; +import * as InputComponents from './input/input'; const Flexed = styled(FieldComponent)({ display: 'flex' }); diff --git a/code/core/src/components/components/form/index.tsx b/code/core/src/components/components/form/index.tsx index 3407f342a862..4eba4e779f11 100644 --- a/code/core/src/components/components/form/index.tsx +++ b/code/core/src/components/components/form/index.tsx @@ -1,7 +1,8 @@ import { styled } from '@storybook/core/theming'; + +import { Button } from '../Button/Button'; import { Field } from './field/field'; import { Input, Select, Textarea } from './input/input'; -import { Button } from '../Button/Button'; export const Form = Object.assign( styled.form({ diff --git a/code/core/src/components/components/form/input/input.tsx b/code/core/src/components/components/form/input/input.tsx index 423da39326a0..5e037b38fb4f 100644 --- a/code/core/src/components/components/form/input/input.tsx +++ b/code/core/src/components/components/form/input/input.tsx @@ -1,5 +1,6 @@ import type { HTMLProps, SelectHTMLAttributes } from 'react'; import React, { forwardRef } from 'react'; + import type { CSSObject, StorybookTheme } from '@storybook/core/theming'; import { styled } from '@storybook/core/theming'; diff --git a/code/core/src/components/components/icon/icon.stories.tsx b/code/core/src/components/components/icon/icon.stories.tsx index 929319b346a7..acafe6af4425 100644 --- a/code/core/src/components/components/icon/icon.stories.tsx +++ b/code/core/src/components/components/icon/icon.stories.tsx @@ -1,6 +1,7 @@ import type { ComponentProps } from 'react'; import React from 'react'; -import { styled, css } from '@storybook/core/theming'; + +import { css, styled } from '@storybook/core/theming'; import type { IconType } from './icon'; import { Icons, icons } from './icon'; diff --git a/code/core/src/components/components/icon/icon.tsx b/code/core/src/components/components/icon/icon.tsx index ca80a0700954..9e2a52405cd5 100644 --- a/code/core/src/components/components/icon/icon.tsx +++ b/code/core/src/components/components/icon/icon.tsx @@ -1,8 +1,9 @@ import type { ComponentProps } from 'react'; import React, { memo } from 'react'; -import * as StorybookIcons from '@storybook/icons'; import { styled } from '@storybook/core/theming'; +import * as StorybookIcons from '@storybook/icons'; + import { deprecate, logger } from '@storybook/core/client-logger'; export type IconType = keyof typeof icons; diff --git a/code/core/src/components/components/placeholder/placeholder.stories.tsx b/code/core/src/components/components/placeholder/placeholder.stories.tsx index 4e7c53172449..071610125b7f 100644 --- a/code/core/src/components/components/placeholder/placeholder.stories.tsx +++ b/code/core/src/components/components/placeholder/placeholder.stories.tsx @@ -1,7 +1,7 @@ import React, { Fragment } from 'react'; -import { Placeholder } from './placeholder'; import { Link } from '../typography/link/link'; +import { Placeholder } from './placeholder'; export default { component: Placeholder, diff --git a/code/core/src/components/components/placeholder/placeholder.tsx b/code/core/src/components/components/placeholder/placeholder.tsx index 68f1c026d4d2..faa7d1df78b7 100644 --- a/code/core/src/components/components/placeholder/placeholder.tsx +++ b/code/core/src/components/components/placeholder/placeholder.tsx @@ -1,4 +1,5 @@ import React, { Children } from 'react'; + import { styled } from '@storybook/core/theming'; const Title = styled.div(({ theme }) => ({ diff --git a/code/core/src/components/components/spaced/Spaced.stories.tsx b/code/core/src/components/components/spaced/Spaced.stories.tsx index 4c84f6811661..3f342022e3b5 100644 --- a/code/core/src/components/components/spaced/Spaced.stories.tsx +++ b/code/core/src/components/components/spaced/Spaced.stories.tsx @@ -1,5 +1,6 @@ import type { ComponentProps } from 'react'; import React from 'react'; + import { styled } from '@storybook/core/theming'; import { Spaced } from './Spaced'; diff --git a/code/core/src/components/components/spaced/Spaced.tsx b/code/core/src/components/components/spaced/Spaced.tsx index b4a79a919203..4c0afcfb9bfd 100644 --- a/code/core/src/components/components/spaced/Spaced.tsx +++ b/code/core/src/components/components/spaced/Spaced.tsx @@ -1,5 +1,6 @@ import React from 'react'; -import { styled, ignoreSsrWarning } from '@storybook/core/theming'; + +import { ignoreSsrWarning, styled } from '@storybook/core/theming'; const toNumber = (input: any) => (typeof input === 'number' ? input : Number(input)); diff --git a/code/core/src/components/components/syntaxhighlighter/formatter.test.ts b/code/core/src/components/components/syntaxhighlighter/formatter.test.ts index 041cf2148ee1..4c215c977154 100644 --- a/code/core/src/components/components/syntaxhighlighter/formatter.test.ts +++ b/code/core/src/components/components/syntaxhighlighter/formatter.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { dedent } from 'ts-dedent'; import { formatter } from './formatter'; diff --git a/code/core/src/components/components/syntaxhighlighter/formatter.ts b/code/core/src/components/components/syntaxhighlighter/formatter.ts index c0ec2d7ad183..7ff96626bc0e 100644 --- a/code/core/src/components/components/syntaxhighlighter/formatter.ts +++ b/code/core/src/components/components/syntaxhighlighter/formatter.ts @@ -1,8 +1,8 @@ import memoize from 'memoizerific'; - import prettierHtml from 'prettier/plugins/html'; import prettier from 'prettier/standalone'; import { dedent } from 'ts-dedent'; + import type { SyntaxHighlighterFormatTypes } from './syntaxhighlighter-types'; export const formatter = memoize(2)(async (type: SyntaxHighlighterFormatTypes, source: string) => { diff --git a/code/core/src/components/components/syntaxhighlighter/lazy-syntaxhighlighter.tsx b/code/core/src/components/components/syntaxhighlighter/lazy-syntaxhighlighter.tsx index 822034aca219..25aacedaafb5 100644 --- a/code/core/src/components/components/syntaxhighlighter/lazy-syntaxhighlighter.tsx +++ b/code/core/src/components/components/syntaxhighlighter/lazy-syntaxhighlighter.tsx @@ -1,6 +1,6 @@ import React, { Suspense, lazy } from 'react'; - import type { ComponentProps } from 'react'; + import type ReactSyntaxHighlighter from './syntaxhighlighter'; let languages: Parameters[] = []; diff --git a/code/core/src/components/components/syntaxhighlighter/syntaxhighlighter-types.ts b/code/core/src/components/components/syntaxhighlighter/syntaxhighlighter-types.ts index d7ec7832df8a..389f966e4968 100644 --- a/code/core/src/components/components/syntaxhighlighter/syntaxhighlighter-types.ts +++ b/code/core/src/components/components/syntaxhighlighter/syntaxhighlighter-types.ts @@ -1,5 +1,7 @@ -import type { BuiltInParserName } from 'prettier'; import type { ReactNode } from 'react'; + +import type { BuiltInParserName } from 'prettier'; + import type { supportedLanguages } from './syntaxhighlighter'; export interface SyntaxHighlighterRendererProps { diff --git a/code/core/src/components/components/syntaxhighlighter/syntaxhighlighter.stories.tsx b/code/core/src/components/components/syntaxhighlighter/syntaxhighlighter.stories.tsx index 4b817b756c79..cd1fbe7af16b 100644 --- a/code/core/src/components/components/syntaxhighlighter/syntaxhighlighter.stories.tsx +++ b/code/core/src/components/components/syntaxhighlighter/syntaxhighlighter.stories.tsx @@ -1,7 +1,8 @@ -import { ThemeProvider, ensure, themes } from '@storybook/core/theming'; - import type { ComponentProps } from 'react'; import React from 'react'; + +import { ThemeProvider, ensure, themes } from '@storybook/core/theming'; + import { SyntaxHighlighter } from './lazy-syntaxhighlighter'; export default { diff --git a/code/core/src/components/components/syntaxhighlighter/syntaxhighlighter.tsx b/code/core/src/components/components/syntaxhighlighter/syntaxhighlighter.tsx index 08a424fe31a0..1c6db28aca22 100644 --- a/code/core/src/components/components/syntaxhighlighter/syntaxhighlighter.tsx +++ b/code/core/src/components/components/syntaxhighlighter/syntaxhighlighter.tsx @@ -1,31 +1,31 @@ import type { MouseEvent } from 'react'; import React, { useCallback, useEffect, useState } from 'react'; -import { logger } from '@storybook/core/client-logger'; + import { styled } from '@storybook/core/theming'; import { global } from '@storybook/global'; -import memoize from 'memoizerific'; -import jsx from 'react-syntax-highlighter/dist/esm/languages/prism/jsx'; +import { logger } from '@storybook/core/client-logger'; + +import memoize from 'memoizerific'; +// @ts-expect-error (Converted from ts-ignore) +import { createElement } from 'react-syntax-highlighter/dist/esm/index'; import bash from 'react-syntax-highlighter/dist/esm/languages/prism/bash'; import css from 'react-syntax-highlighter/dist/esm/languages/prism/css'; +import graphql from 'react-syntax-highlighter/dist/esm/languages/prism/graphql'; // @ts-expect-error (Converted from ts-ignore) import jsExtras from 'react-syntax-highlighter/dist/esm/languages/prism/js-extras'; import json from 'react-syntax-highlighter/dist/esm/languages/prism/json'; -import graphql from 'react-syntax-highlighter/dist/esm/languages/prism/graphql'; -import html from 'react-syntax-highlighter/dist/esm/languages/prism/markup'; +import jsx from 'react-syntax-highlighter/dist/esm/languages/prism/jsx'; import md from 'react-syntax-highlighter/dist/esm/languages/prism/markdown'; -import yml from 'react-syntax-highlighter/dist/esm/languages/prism/yaml'; +import html from 'react-syntax-highlighter/dist/esm/languages/prism/markup'; import tsx from 'react-syntax-highlighter/dist/esm/languages/prism/tsx'; import typescript from 'react-syntax-highlighter/dist/esm/languages/prism/typescript'; - +import yml from 'react-syntax-highlighter/dist/esm/languages/prism/yaml'; import ReactSyntaxHighlighter from 'react-syntax-highlighter/dist/esm/prism-light'; -// @ts-expect-error (Converted from ts-ignore) -import { createElement } from 'react-syntax-highlighter/dist/esm/index'; import { ActionBar } from '../ActionBar/ActionBar'; import type { ScrollAreaProps } from '../ScrollArea/ScrollArea'; import { ScrollArea } from '../ScrollArea/ScrollArea'; - import type { SyntaxHighlighterProps, SyntaxHighlighterRenderer, diff --git a/code/core/src/components/components/tabs/EmptyTabContent.stories.tsx b/code/core/src/components/components/tabs/EmptyTabContent.stories.tsx index e03fa329532b..9c291b9e6299 100644 --- a/code/core/src/components/components/tabs/EmptyTabContent.stories.tsx +++ b/code/core/src/components/components/tabs/EmptyTabContent.stories.tsx @@ -1,9 +1,11 @@ import React from 'react'; -import { EmptyTabContent } from './EmptyTabContent'; -import { DocumentIcon } from '@storybook/icons'; + import { Link } from '@storybook/core/components'; +import { DocumentIcon } from '@storybook/icons'; import type { Meta, StoryObj } from '@storybook/react'; +import { EmptyTabContent } from './EmptyTabContent'; + export default { title: 'TabContentEmpty', component: EmptyTabContent, diff --git a/code/core/src/components/components/tabs/EmptyTabContent.tsx b/code/core/src/components/components/tabs/EmptyTabContent.tsx index 1ce8d5e5a9f8..cdb191e59716 100644 --- a/code/core/src/components/components/tabs/EmptyTabContent.tsx +++ b/code/core/src/components/components/tabs/EmptyTabContent.tsx @@ -1,4 +1,5 @@ import React from 'react'; + import { styled } from '@storybook/core/theming'; const Wrapper = styled.div(({ theme }) => ({ diff --git a/code/core/src/components/components/tabs/tabs.helpers.tsx b/code/core/src/components/components/tabs/tabs.helpers.tsx index 2a26b6651139..90ae4c2c10ab 100644 --- a/code/core/src/components/components/tabs/tabs.helpers.tsx +++ b/code/core/src/components/components/tabs/tabs.helpers.tsx @@ -1,7 +1,9 @@ -import { styled } from '@storybook/core/theming'; import type { FC, PropsWithChildren, ReactChild, ReactElement, ReactNode } from 'react'; import React, { Children } from 'react'; + +import { styled } from '@storybook/core/theming'; import type { Addon_RenderOptions } from '@storybook/core/types'; + import type { TabsProps } from './tabs'; export interface VisuallyHiddenProps { diff --git a/code/core/src/components/components/tabs/tabs.hooks.tsx b/code/core/src/components/components/tabs/tabs.hooks.tsx index d2606644d5a4..be3a8f2060a7 100644 --- a/code/core/src/components/components/tabs/tabs.hooks.tsx +++ b/code/core/src/components/components/tabs/tabs.hooks.tsx @@ -1,12 +1,15 @@ import React, { useCallback, useLayoutEffect, useRef, useState } from 'react'; -import { sanitize } from '@storybook/csf'; + import { styled } from '@storybook/core/theming'; +import { sanitize } from '@storybook/csf'; + import useResizeObserver from 'use-resize-observer'; + import { TabButton } from '../bar/button'; import { TooltipLinkList } from '../tooltip/TooltipLinkList'; +import type { Link } from '../tooltip/TooltipLinkList'; import { WithTooltip } from '../tooltip/WithTooltip'; import type { ChildrenListComplete } from './tabs.helpers'; -import type { Link } from '../tooltip/TooltipLinkList'; const CollapseIcon = styled.span<{ isActive: boolean }>(({ theme, isActive }) => ({ display: 'inline-block', diff --git a/code/core/src/components/components/tabs/tabs.stories.tsx b/code/core/src/components/components/tabs/tabs.stories.tsx index 1958c3e18555..5e23fd7ecb7b 100644 --- a/code/core/src/components/components/tabs/tabs.stories.tsx +++ b/code/core/src/components/components/tabs/tabs.stories.tsx @@ -1,12 +1,15 @@ -import { expect } from '@storybook/test'; import React from 'react'; -import { action } from '@storybook/addon-actions'; -import type { Meta, StoryObj } from '@storybook/react'; -import { within, fireEvent, waitFor, screen, userEvent, findByText } from '@storybook/test'; + import { BottomBarIcon, CloseIcon } from '@storybook/icons'; -import { Tabs, TabsState, TabWrapper } from './tabs'; -import type { ChildrenList } from './tabs.helpers'; +import type { Meta, StoryObj } from '@storybook/react'; +import { expect } from '@storybook/test'; +import { findByText, fireEvent, screen, userEvent, waitFor, within } from '@storybook/test'; + +import { action } from '@storybook/addon-actions'; + import { IconButton } from '../IconButton/IconButton'; +import { TabWrapper, Tabs, TabsState } from './tabs'; +import type { ChildrenList } from './tabs.helpers'; const colours = Array.from(new Array(15), (val, index) => index).map((i) => Math.floor((1 / 15) * i * 16777215) diff --git a/code/core/src/components/components/tabs/tabs.tsx b/code/core/src/components/components/tabs/tabs.tsx index 318fc31c033a..3c8c46c45c1b 100644 --- a/code/core/src/components/components/tabs/tabs.tsx +++ b/code/core/src/components/components/tabs/tabs.tsx @@ -1,14 +1,15 @@ import type { FC, PropsWithChildren, ReactElement, ReactNode, SyntheticEvent } from 'react'; -import React, { useMemo, Component, memo } from 'react'; +import React, { Component, memo, useMemo } from 'react'; + import { styled } from '@storybook/core/theming'; +import type { Addon_RenderOptions } from '@storybook/core/types'; import { sanitize } from '@storybook/csf'; -import type { Addon_RenderOptions } from '@storybook/core/types'; -import { TabButton } from '../bar/button'; import { FlexBar } from '../bar/bar'; -import { childrenToList, VisuallyHidden } from './tabs.helpers'; -import { useList } from './tabs.hooks'; +import { TabButton } from '../bar/button'; import { EmptyTabContent } from './EmptyTabContent'; +import { VisuallyHidden, childrenToList } from './tabs.helpers'; +import { useList } from './tabs.hooks'; const ignoreSsrWarning = '/* emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */'; diff --git a/code/core/src/components/components/tooltip/ListItem.stories.tsx b/code/core/src/components/components/tooltip/ListItem.stories.tsx index ab68b8444ba8..b85d3ba4c1ab 100644 --- a/code/core/src/components/components/tooltip/ListItem.stories.tsx +++ b/code/core/src/components/components/tooltip/ListItem.stories.tsx @@ -1,5 +1,7 @@ import React, { Fragment } from 'react'; + import { EyeIcon } from '@storybook/icons'; + import ListItem from './ListItem'; export default { diff --git a/code/core/src/components/components/tooltip/ListItem.tsx b/code/core/src/components/components/tooltip/ListItem.tsx index 58528169f165..9e4dc9d75f9b 100644 --- a/code/core/src/components/components/tooltip/ListItem.tsx +++ b/code/core/src/components/components/tooltip/ListItem.tsx @@ -1,6 +1,8 @@ -import type { ReactNode, ComponentProps } from 'react'; +import type { ComponentProps, ReactNode } from 'react'; import React from 'react'; + import { styled } from '@storybook/core/theming'; + import memoize from 'memoizerific'; import { transparentize } from 'polished'; diff --git a/code/core/src/components/components/tooltip/Tooltip.stories.tsx b/code/core/src/components/components/tooltip/Tooltip.stories.tsx index 3ca9e21cfc11..35385c1b447f 100644 --- a/code/core/src/components/components/tooltip/Tooltip.stories.tsx +++ b/code/core/src/components/components/tooltip/Tooltip.stories.tsx @@ -1,6 +1,8 @@ import type { ComponentProps } from 'react'; import React from 'react'; + import { styled } from '@storybook/core/theming'; + import { Tooltip } from './Tooltip'; // Popper would position the tooltip absolutely. We just need to make sure we are pos:rel diff --git a/code/core/src/components/components/tooltip/Tooltip.tsx b/code/core/src/components/components/tooltip/Tooltip.tsx index 83fbebfd1c9c..77a6d4fc9c25 100644 --- a/code/core/src/components/components/tooltip/Tooltip.tsx +++ b/code/core/src/components/components/tooltip/Tooltip.tsx @@ -1,7 +1,8 @@ import React from 'react'; -import memoize from 'memoizerific'; -import { styled, type Color, lighten } from '@storybook/core/theming'; +import { type Color, lighten, styled } from '@storybook/core/theming'; + +import memoize from 'memoizerific'; const match = memoize(1000)((requests, actual, value, fallback = 0) => actual.split('-')[0] === requests ? value : fallback diff --git a/code/core/src/components/components/tooltip/TooltipLinkList.stories.tsx b/code/core/src/components/components/tooltip/TooltipLinkList.stories.tsx index 84186de35444..07f870cc1f24 100644 --- a/code/core/src/components/components/tooltip/TooltipLinkList.stories.tsx +++ b/code/core/src/components/components/tooltip/TooltipLinkList.stories.tsx @@ -1,10 +1,13 @@ import type { FunctionComponent, MouseEvent, PropsWithChildren, ReactElement } from 'react'; import React, { Children, cloneElement } from 'react'; -import { action } from '@storybook/addon-actions'; -import type { Meta, StoryObj } from '@storybook/react'; + import { LinkIcon, LinuxIcon } from '@storybook/icons'; -import { WithTooltip } from './WithTooltip'; +import type { Meta, StoryObj } from '@storybook/react'; + +import { action } from '@storybook/addon-actions'; + import { TooltipLinkList } from './TooltipLinkList'; +import { WithTooltip } from './WithTooltip'; import ellipseUrl from './assets/ellipse.png'; const onLinkClick = action('onLinkClick'); diff --git a/code/core/src/components/components/tooltip/TooltipLinkList.tsx b/code/core/src/components/components/tooltip/TooltipLinkList.tsx index 6f05bf2ec90d..7ab5fabf1961 100644 --- a/code/core/src/components/components/tooltip/TooltipLinkList.tsx +++ b/code/core/src/components/components/tooltip/TooltipLinkList.tsx @@ -1,5 +1,6 @@ import type { SyntheticEvent } from 'react'; import React, { useCallback } from 'react'; + import { styled } from '@storybook/core/theming'; import type { LinkWrapperType, ListItemProps } from './ListItem'; diff --git a/code/core/src/components/components/tooltip/TooltipMessage.stories.tsx b/code/core/src/components/components/tooltip/TooltipMessage.stories.tsx index 9c210eb90bab..c84eb4dcc401 100644 --- a/code/core/src/components/components/tooltip/TooltipMessage.stories.tsx +++ b/code/core/src/components/components/tooltip/TooltipMessage.stories.tsx @@ -1,7 +1,9 @@ import React from 'react'; + import type { Meta } from '@storybook/react'; -import { WithTooltip } from './WithTooltip'; + import { TooltipMessage } from './TooltipMessage'; +import { WithTooltip } from './WithTooltip'; export default { component: TooltipMessage, diff --git a/code/core/src/components/components/tooltip/TooltipMessage.tsx b/code/core/src/components/components/tooltip/TooltipMessage.tsx index 8af15a915013..3882e428fab7 100644 --- a/code/core/src/components/components/tooltip/TooltipMessage.tsx +++ b/code/core/src/components/components/tooltip/TooltipMessage.tsx @@ -1,5 +1,6 @@ import type { ReactNode } from 'react'; import React from 'react'; + import { styled } from '@storybook/core/theming'; import { Link } from '../typography/link/link'; diff --git a/code/core/src/components/components/tooltip/TooltipNote.stories.tsx b/code/core/src/components/components/tooltip/TooltipNote.stories.tsx index 6c1e533edc77..fac7e72347eb 100644 --- a/code/core/src/components/components/tooltip/TooltipNote.stories.tsx +++ b/code/core/src/components/components/tooltip/TooltipNote.stories.tsx @@ -1,6 +1,7 @@ import React from 'react'; -import { WithTooltip } from './WithTooltip'; + import { TooltipNote } from './TooltipNote'; +import { WithTooltip } from './WithTooltip'; export default { component: TooltipNote, diff --git a/code/core/src/components/components/tooltip/TooltipNote.tsx b/code/core/src/components/components/tooltip/TooltipNote.tsx index 2366525b0a5a..6bfde56693d6 100644 --- a/code/core/src/components/components/tooltip/TooltipNote.tsx +++ b/code/core/src/components/components/tooltip/TooltipNote.tsx @@ -1,4 +1,5 @@ import React from 'react'; + import { styled } from '@storybook/core/theming'; const Note = styled.div(({ theme }) => ({ diff --git a/code/core/src/components/components/tooltip/WithTooltip.stories.tsx b/code/core/src/components/components/tooltip/WithTooltip.stories.tsx index 4bfae3be6aad..e5651c50bf7e 100644 --- a/code/core/src/components/components/tooltip/WithTooltip.stories.tsx +++ b/code/core/src/components/components/tooltip/WithTooltip.stories.tsx @@ -1,8 +1,10 @@ -import type { FunctionComponent, ComponentProps } from 'react'; +import type { ComponentProps, FunctionComponent } from 'react'; import React from 'react'; + +import { styled } from '@storybook/core/theming'; import type { StoryObj } from '@storybook/react'; import { expect, screen } from '@storybook/test'; -import { styled } from '@storybook/core/theming'; + import { TooltipMessage } from './TooltipMessage'; import { WithToolTipState as WithTooltip } from './WithTooltip'; diff --git a/code/core/src/components/components/tooltip/WithTooltip.tsx b/code/core/src/components/components/tooltip/WithTooltip.tsx index 63cb4e5d5d74..28576bf6c20c 100644 --- a/code/core/src/components/components/tooltip/WithTooltip.tsx +++ b/code/core/src/components/components/tooltip/WithTooltip.tsx @@ -1,11 +1,13 @@ import type { ComponentProps, ReactNode } from 'react'; -import React, { useCallback, useState, useEffect } from 'react'; -import ReactDOM from 'react-dom'; +import React, { useCallback, useEffect, useState } from 'react'; + import { styled } from '@storybook/core/theming'; import { global } from '@storybook/global'; -import type { Config as ReactPopperTooltipConfig, PopperOptions } from 'react-popper-tooltip'; +import ReactDOM from 'react-dom'; +import type { PopperOptions, Config as ReactPopperTooltipConfig } from 'react-popper-tooltip'; import { usePopperTooltip } from 'react-popper-tooltip'; + import { Tooltip } from './Tooltip'; const { document } = global; diff --git a/code/core/src/components/components/tooltip/lazy-WithTooltip.tsx b/code/core/src/components/components/tooltip/lazy-WithTooltip.tsx index 4bf90edb5f13..336ffdfacf49 100644 --- a/code/core/src/components/components/tooltip/lazy-WithTooltip.tsx +++ b/code/core/src/components/components/tooltip/lazy-WithTooltip.tsx @@ -1,5 +1,5 @@ import type { ComponentProps } from 'react'; -import React, { lazy, Suspense } from 'react'; +import React, { Suspense, lazy } from 'react'; const LazyWithTooltip = lazy(() => import('./WithTooltip').then((mod) => ({ default: mod.WithTooltip })) diff --git a/code/core/src/components/components/typography/ResetWrapper.tsx b/code/core/src/components/components/typography/ResetWrapper.tsx index 5f639a3fa093..09791ce4c325 100644 --- a/code/core/src/components/components/typography/ResetWrapper.tsx +++ b/code/core/src/components/components/typography/ResetWrapper.tsx @@ -1,4 +1,5 @@ import { styled } from '@storybook/core/theming'; + import { withReset } from './lib/common'; /** diff --git a/code/core/src/components/components/typography/components.tsx b/code/core/src/components/components/typography/components.tsx index 4f324b3f7a5c..790a8c025013 100644 --- a/code/core/src/components/components/typography/components.tsx +++ b/code/core/src/components/components/typography/components.tsx @@ -1,20 +1,22 @@ import type { - HTMLAttributes, - DetailedHTMLProps, AnchorHTMLAttributes, BlockquoteHTMLAttributes, + DetailedHTMLProps, + HTMLAttributes, ImgHTMLAttributes, - TableHTMLAttributes, LiHTMLAttributes, OlHTMLAttributes, + TableHTMLAttributes, } from 'react'; import React from 'react'; + import { nameSpaceClassNames } from './DocumentFormatting'; +import { ResetWrapper } from './ResetWrapper'; import { A } from './elements/A'; import { Blockquote } from './elements/Blockquote'; import { Code } from './elements/Code'; -import { Div } from './elements/Div'; import { DL } from './elements/DL'; +import { Div } from './elements/Div'; import { H1 } from './elements/H1'; import { H2 } from './elements/H2'; import { H3 } from './elements/H3'; @@ -28,10 +30,9 @@ import { OL } from './elements/OL'; import { P } from './elements/P'; import { Pre } from './elements/Pre'; import { Span } from './elements/Span'; -import { Table } from './elements/Table'; import { TT } from './elements/TT'; +import { Table } from './elements/Table'; import { UL } from './elements/UL'; -import { ResetWrapper } from './ResetWrapper'; export const components = { h1: (props: DetailedHTMLProps, HTMLHeadingElement>) => ( diff --git a/code/core/src/components/components/typography/elements/A.tsx b/code/core/src/components/components/typography/elements/A.tsx index 28e8ccc082d6..2eb9cdb4d87a 100644 --- a/code/core/src/components/components/typography/elements/A.tsx +++ b/code/core/src/components/components/typography/elements/A.tsx @@ -1,4 +1,5 @@ import { styled } from '@storybook/core/theming'; + import { withReset } from '../lib/common'; import { Link } from './Link'; diff --git a/code/core/src/components/components/typography/elements/Blockquote.tsx b/code/core/src/components/components/typography/elements/Blockquote.tsx index 5692a72aa9f0..b4e06b210ed0 100644 --- a/code/core/src/components/components/typography/elements/Blockquote.tsx +++ b/code/core/src/components/components/typography/elements/Blockquote.tsx @@ -1,5 +1,6 @@ import { styled } from '@storybook/core/theming'; -import { withReset, withMargin } from '../lib/common'; + +import { withMargin, withReset } from '../lib/common'; export const Blockquote = styled.blockquote(withReset, withMargin, ({ theme }) => ({ borderLeft: `4px solid ${theme.color.medium}`, diff --git a/code/core/src/components/components/typography/elements/Code.tsx b/code/core/src/components/components/typography/elements/Code.tsx index 7f67c12e645b..e22b3cca9134 100644 --- a/code/core/src/components/components/typography/elements/Code.tsx +++ b/code/core/src/components/components/typography/elements/Code.tsx @@ -1,10 +1,12 @@ -import { styled } from '@storybook/core/theming'; import type { ComponentProps } from 'react'; import React, { Children } from 'react'; + +import { styled } from '@storybook/core/theming'; + import { SyntaxHighlighter } from '../../syntaxhighlighter/syntaxhighlighter'; -import { isReactChildString } from '../lib/isReactChildString'; -import { codeCommon } from '../lib/common'; import type { SupportedLanguage } from '../../syntaxhighlighter/syntaxhighlighter-types'; +import { codeCommon } from '../lib/common'; +import { isReactChildString } from '../lib/isReactChildString'; const isInlineCodeRegex = /[\n\r]/g; diff --git a/code/core/src/components/components/typography/elements/DL.tsx b/code/core/src/components/components/typography/elements/DL.tsx index 792df46878c3..840dbc0bbede 100644 --- a/code/core/src/components/components/typography/elements/DL.tsx +++ b/code/core/src/components/components/typography/elements/DL.tsx @@ -1,5 +1,6 @@ import { styled } from '@storybook/core/theming'; -import { withReset, withMargin } from '../lib/common'; + +import { withMargin, withReset } from '../lib/common'; export const DL = styled.dl(withReset, withMargin, { padding: 0, diff --git a/code/core/src/components/components/typography/elements/Div.tsx b/code/core/src/components/components/typography/elements/Div.tsx index bf70948dfa1d..7e8b9b6765d4 100644 --- a/code/core/src/components/components/typography/elements/Div.tsx +++ b/code/core/src/components/components/typography/elements/Div.tsx @@ -1,4 +1,5 @@ import { styled } from '@storybook/core/theming'; + import { withReset } from '../lib/common'; export const Div = styled.div(withReset); diff --git a/code/core/src/components/components/typography/elements/H1.tsx b/code/core/src/components/components/typography/elements/H1.tsx index 9b306ab1343b..6ede5882351d 100644 --- a/code/core/src/components/components/typography/elements/H1.tsx +++ b/code/core/src/components/components/typography/elements/H1.tsx @@ -1,5 +1,6 @@ import { styled } from '@storybook/core/theming'; -import { withReset, headerCommon } from '../lib/common'; + +import { headerCommon, withReset } from '../lib/common'; export const H1 = styled.h1(withReset, headerCommon, ({ theme }) => ({ fontSize: `${theme.typography.size.l1}px`, diff --git a/code/core/src/components/components/typography/elements/H2.tsx b/code/core/src/components/components/typography/elements/H2.tsx index 9d17758aefbe..f2c070827ede 100644 --- a/code/core/src/components/components/typography/elements/H2.tsx +++ b/code/core/src/components/components/typography/elements/H2.tsx @@ -1,5 +1,6 @@ import { styled } from '@storybook/core/theming'; -import { withReset, headerCommon } from '../lib/common'; + +import { headerCommon, withReset } from '../lib/common'; export const H2 = styled.h2(withReset, headerCommon, ({ theme }) => ({ fontSize: `${theme.typography.size.m2}px`, diff --git a/code/core/src/components/components/typography/elements/H3.tsx b/code/core/src/components/components/typography/elements/H3.tsx index 6eea8bd27af1..150474aa427e 100644 --- a/code/core/src/components/components/typography/elements/H3.tsx +++ b/code/core/src/components/components/typography/elements/H3.tsx @@ -1,5 +1,6 @@ import { styled } from '@storybook/core/theming'; -import { withReset, headerCommon } from '../lib/common'; + +import { headerCommon, withReset } from '../lib/common'; export const H3 = styled.h3(withReset, headerCommon, ({ theme }) => ({ fontSize: `${theme.typography.size.m1}px`, diff --git a/code/core/src/components/components/typography/elements/H4.tsx b/code/core/src/components/components/typography/elements/H4.tsx index edd0b2639224..f0933727d8ca 100644 --- a/code/core/src/components/components/typography/elements/H4.tsx +++ b/code/core/src/components/components/typography/elements/H4.tsx @@ -1,5 +1,6 @@ import { styled } from '@storybook/core/theming'; -import { withReset, headerCommon } from '../lib/common'; + +import { headerCommon, withReset } from '../lib/common'; export const H4 = styled.h4(withReset, headerCommon, ({ theme }) => ({ fontSize: `${theme.typography.size.s3}px`, diff --git a/code/core/src/components/components/typography/elements/H5.tsx b/code/core/src/components/components/typography/elements/H5.tsx index e06405f19092..637b64cad8f2 100644 --- a/code/core/src/components/components/typography/elements/H5.tsx +++ b/code/core/src/components/components/typography/elements/H5.tsx @@ -1,5 +1,6 @@ import { styled } from '@storybook/core/theming'; -import { withReset, headerCommon } from '../lib/common'; + +import { headerCommon, withReset } from '../lib/common'; export const H5 = styled.h5(withReset, headerCommon, ({ theme }) => ({ fontSize: `${theme.typography.size.s2}px`, diff --git a/code/core/src/components/components/typography/elements/H6.tsx b/code/core/src/components/components/typography/elements/H6.tsx index bbf7b7cbb435..b862026ede75 100644 --- a/code/core/src/components/components/typography/elements/H6.tsx +++ b/code/core/src/components/components/typography/elements/H6.tsx @@ -1,5 +1,6 @@ import { styled } from '@storybook/core/theming'; -import { withReset, headerCommon } from '../lib/common'; + +import { headerCommon, withReset } from '../lib/common'; export const H6 = styled.h6(withReset, headerCommon, ({ theme }) => ({ fontSize: `${theme.typography.size.s2}px`, diff --git a/code/core/src/components/components/typography/elements/LI.tsx b/code/core/src/components/components/typography/elements/LI.tsx index 4b18e602272d..9361defda4e3 100644 --- a/code/core/src/components/components/typography/elements/LI.tsx +++ b/code/core/src/components/components/typography/elements/LI.tsx @@ -1,6 +1,7 @@ import type { CSSObject } from '@storybook/core/theming'; import { styled } from '@storybook/core/theming'; -import { withReset, codeCommon } from '../lib/common'; + +import { codeCommon, withReset } from '../lib/common'; export const LI = styled.li(withReset, ({ theme }) => ({ fontSize: theme.typography.size.s2, diff --git a/code/core/src/components/components/typography/elements/OL.tsx b/code/core/src/components/components/typography/elements/OL.tsx index 50d171003582..dd6c328c72ba 100644 --- a/code/core/src/components/components/typography/elements/OL.tsx +++ b/code/core/src/components/components/typography/elements/OL.tsx @@ -1,6 +1,7 @@ import { styled } from '@storybook/core/theming'; import type { Interpolation } from '@storybook/core/theming'; -import { withReset, withMargin } from '../lib/common'; + +import { withMargin, withReset } from '../lib/common'; const listCommon: Interpolation = { paddingLeft: 30, diff --git a/code/core/src/components/components/typography/elements/P.tsx b/code/core/src/components/components/typography/elements/P.tsx index c24405d69a5c..3039d8592270 100644 --- a/code/core/src/components/components/typography/elements/P.tsx +++ b/code/core/src/components/components/typography/elements/P.tsx @@ -1,6 +1,7 @@ import type { CSSObject } from '@storybook/core/theming'; import { styled } from '@storybook/core/theming'; -import { withReset, withMargin, codeCommon } from '../lib/common'; + +import { codeCommon, withMargin, withReset } from '../lib/common'; export const P = styled.p(withReset, withMargin, ({ theme }) => ({ fontSize: theme.typography.size.s2, diff --git a/code/core/src/components/components/typography/elements/Pre.tsx b/code/core/src/components/components/typography/elements/Pre.tsx index 4792fe8b387b..d2c3a1258cc4 100644 --- a/code/core/src/components/components/typography/elements/Pre.tsx +++ b/code/core/src/components/components/typography/elements/Pre.tsx @@ -1,5 +1,6 @@ import { styled } from '@storybook/core/theming'; -import { withReset, withMargin } from '../lib/common'; + +import { withMargin, withReset } from '../lib/common'; export const Pre = styled.pre(withReset, withMargin, ({ theme }) => ({ // reset diff --git a/code/core/src/components/components/typography/elements/Span.tsx b/code/core/src/components/components/typography/elements/Span.tsx index 3c3a8a119576..35d9e45bd609 100644 --- a/code/core/src/components/components/typography/elements/Span.tsx +++ b/code/core/src/components/components/typography/elements/Span.tsx @@ -1,4 +1,5 @@ import { styled } from '@storybook/core/theming'; + import { withReset } from '../lib/common'; export const Span = styled.span(withReset, ({ theme }) => ({ diff --git a/code/core/src/components/components/typography/elements/TT.tsx b/code/core/src/components/components/typography/elements/TT.tsx index af32c5954423..4544a0b6ded1 100644 --- a/code/core/src/components/components/typography/elements/TT.tsx +++ b/code/core/src/components/components/typography/elements/TT.tsx @@ -1,4 +1,5 @@ import { styled } from '@storybook/core/theming'; + import { codeCommon } from '../lib/common'; export const TT = styled.title(codeCommon); diff --git a/code/core/src/components/components/typography/elements/Table.tsx b/code/core/src/components/components/typography/elements/Table.tsx index d09639884f64..262adddd3f36 100644 --- a/code/core/src/components/components/typography/elements/Table.tsx +++ b/code/core/src/components/components/typography/elements/Table.tsx @@ -1,5 +1,6 @@ import { styled } from '@storybook/core/theming'; -import { withReset, withMargin } from '../lib/common'; + +import { withMargin, withReset } from '../lib/common'; export const Table = styled.table(withReset, withMargin, ({ theme }) => ({ fontSize: theme.typography.size.s2, diff --git a/code/core/src/components/components/typography/elements/UL.tsx b/code/core/src/components/components/typography/elements/UL.tsx index 75bb7d5c9dab..1aeb5b10bb66 100644 --- a/code/core/src/components/components/typography/elements/UL.tsx +++ b/code/core/src/components/components/typography/elements/UL.tsx @@ -1,6 +1,7 @@ import { styled } from '@storybook/core/theming'; import type { Interpolation } from '@storybook/core/theming'; -import { withReset, withMargin } from '../lib/common'; + +import { withMargin, withReset } from '../lib/common'; const listCommon: Interpolation = { paddingLeft: 30, diff --git a/code/core/src/components/components/typography/lib/common.tsx b/code/core/src/components/components/typography/lib/common.tsx index 1cf1ccd9e93c..fc0d32f128b1 100644 --- a/code/core/src/components/components/typography/lib/common.tsx +++ b/code/core/src/components/components/typography/lib/common.tsx @@ -1,6 +1,7 @@ -import { transparentize } from 'polished'; import type { CSSObject, FunctionInterpolation } from '@storybook/core/theming'; +import { transparentize } from 'polished'; + export const headerCommon: FunctionInterpolation = ({ theme }) => ({ margin: '20px 0 8px', padding: 0, diff --git a/code/core/src/components/components/typography/link/link.stories.tsx b/code/core/src/components/components/typography/link/link.stories.tsx index 0ee21b793143..9ac42ec35816 100644 --- a/code/core/src/components/components/typography/link/link.stories.tsx +++ b/code/core/src/components/components/typography/link/link.stories.tsx @@ -1,7 +1,10 @@ import type { ComponentProps } from 'react'; import React from 'react'; -import { action } from '@storybook/addon-actions'; + import { DiscordIcon, SidebarIcon } from '@storybook/icons'; + +import { action } from '@storybook/addon-actions'; + import { Link } from './link'; const onClick = action('onClick'); diff --git a/code/core/src/components/components/typography/link/link.test.tsx b/code/core/src/components/components/typography/link/link.test.tsx index ccf004e87657..5e0af1da2096 100644 --- a/code/core/src/components/components/typography/link/link.test.tsx +++ b/code/core/src/components/components/typography/link/link.test.tsx @@ -1,11 +1,13 @@ // @vitest-environment happy-dom +import { cleanup, render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { afterEach, describe, expect, it, vi } from 'vitest'; -import { vi, describe, afterEach, it, expect } from 'vitest'; import type { AnchorHTMLAttributes } from 'react'; import React from 'react'; -import { cleanup, render, screen } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; -import { ThemeProvider, themes, convert } from '@storybook/core/theming'; + +import { ThemeProvider, convert, themes } from '@storybook/core/theming'; + import type { LinkProps } from './link'; import { Link } from './link'; diff --git a/code/core/src/components/components/typography/link/link.tsx b/code/core/src/components/components/typography/link/link.tsx index adb92701af28..2ce80ec9612e 100644 --- a/code/core/src/components/components/typography/link/link.tsx +++ b/code/core/src/components/components/typography/link/link.tsx @@ -1,9 +1,11 @@ import type { AnchorHTMLAttributes, MouseEvent } from 'react'; import React from 'react'; + import { styled } from '@storybook/core/theming'; -import { darken } from 'polished'; import { ChevronRightIcon } from '@storybook/icons'; +import { darken } from 'polished'; + // Cmd/Ctrl/Shift/Alt + Click should trigger default browser behavior. Same applies to non-left clicks const LEFT_BUTTON = 0; diff --git a/code/core/src/components/index.ts b/code/core/src/components/index.ts index ad14eb46e728..eaf6fef4f609 100644 --- a/code/core/src/components/index.ts +++ b/code/core/src/components/index.ts @@ -1,7 +1,7 @@ /// - import type { ElementType } from 'react'; import { createElement, forwardRef } from 'react'; + import * as typography from './components/typography/components'; export { A } from './components/typography/elements/A'; diff --git a/code/core/src/core-events/index.test.ts b/code/core/src/core-events/index.test.ts index 9ee5d1b0669d..bc3401a71861 100644 --- a/code/core/src/core-events/index.test.ts +++ b/code/core/src/core-events/index.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import * as EventsPackageExport from './index'; import EventsDefaultExport, { CHANNEL_CREATED } from './index'; diff --git a/code/core/src/core-server/build-dev.ts b/code/core/src/core-server/build-dev.ts index f1c8cd8468c1..fc07aa11ab95 100644 --- a/code/core/src/core-server/build-dev.ts +++ b/code/core/src/core-server/build-dev.ts @@ -1,4 +1,5 @@ -import type { BuilderOptions, CLIOptions, LoadOptions, Options } from '@storybook/core/types'; +import { join, relative, resolve } from 'node:path'; + import { getProjectRoot, loadAllPresets, @@ -8,25 +9,27 @@ import { serverResolve, validateFrameworkName, } from '@storybook/core/common'; -import prompts from 'prompts'; -import invariant from 'tiny-invariant'; -import { global } from '@storybook/global'; import { oneWayHash, telemetry } from '@storybook/core/telemetry'; +import type { BuilderOptions, CLIOptions, LoadOptions, Options } from '@storybook/core/types'; +import { global } from '@storybook/global'; -import { join, relative, resolve } from 'node:path'; import { deprecate } from '@storybook/core/node-logger'; -import { dedent } from 'ts-dedent'; -import { readFile } from 'fs-extra'; import { MissingBuilderError, NoStatsForViteDevError } from '@storybook/core/server-errors'; + +import { readFile } from 'fs-extra'; +import prompts from 'prompts'; +import invariant from 'tiny-invariant'; +import { dedent } from 'ts-dedent'; + import { storybookDevServer } from './dev-server'; -import { outputStats } from './utils/output-stats'; +import { buildOrThrow } from './utils/build-or-throw'; +import { getManagerBuilder, getPreviewBuilder } from './utils/get-builders'; import { outputStartupInformation } from './utils/output-startup-information'; -import { updateCheck } from './utils/update-check'; +import { outputStats } from './utils/output-stats'; import { getServerChannelUrl, getServerPort } from './utils/server-address'; -import { getManagerBuilder, getPreviewBuilder } from './utils/get-builders'; +import { updateCheck } from './utils/update-check'; import { warnOnIncompatibleAddons } from './utils/warnOnIncompatibleAddons'; import { warnWhenUsingArgTypesRegex } from './utils/warnWhenUsingArgTypesRegex'; -import { buildOrThrow } from './utils/build-or-throw'; export async function buildDevStandalone( options: CLIOptions & LoadOptions & BuilderOptions diff --git a/code/core/src/core-server/build-static.ts b/code/core/src/core-server/build-static.ts index 16d7de1036bf..248b2746ea8c 100644 --- a/code/core/src/core-server/build-static.ts +++ b/code/core/src/core-server/build-static.ts @@ -1,10 +1,5 @@ -import chalk from 'chalk'; -import { copy, emptyDir, ensureDir } from 'fs-extra'; import { dirname, join, relative, resolve } from 'node:path'; -import { global } from '@storybook/global'; -import { logger } from '@storybook/core/node-logger'; -import { getPrecedingUpgrade, telemetry } from '@storybook/core/telemetry'; -import type { BuilderOptions, CLIOptions, LoadOptions, Options } from '@storybook/core/types'; + import { loadAllPresets, loadMainConfig, @@ -12,15 +7,23 @@ import { normalizeStories, resolveAddonName, } from '@storybook/core/common'; +import { getPrecedingUpgrade, telemetry } from '@storybook/core/telemetry'; +import type { BuilderOptions, CLIOptions, LoadOptions, Options } from '@storybook/core/types'; +import { global } from '@storybook/global'; -import { outputStats } from './utils/output-stats'; +import { logger } from '@storybook/core/node-logger'; + +import chalk from 'chalk'; +import { copy, emptyDir, ensureDir } from 'fs-extra'; + +import { StoryIndexGenerator } from './utils/StoryIndexGenerator'; +import { buildOrThrow } from './utils/build-or-throw'; import { copyAllStaticFilesRelativeToMain } from './utils/copy-all-static-files'; import { getBuilders } from './utils/get-builders'; -import { extractStoriesJson } from './utils/stories-json'; import { extractStorybookMetadata } from './utils/metadata'; -import { StoryIndexGenerator } from './utils/StoryIndexGenerator'; +import { outputStats } from './utils/output-stats'; +import { extractStoriesJson } from './utils/stories-json'; import { summarizeIndex } from './utils/summarizeIndex'; -import { buildOrThrow } from './utils/build-or-throw'; export type BuildStaticStandaloneOptions = CLIOptions & LoadOptions & diff --git a/code/core/src/core-server/dev-server.ts b/code/core/src/core-server/dev-server.ts index 1639e754fe04..cdf1027d1872 100644 --- a/code/core/src/core-server/dev-server.ts +++ b/code/core/src/core-server/dev-server.ts @@ -1,27 +1,26 @@ -import express from 'express'; -import compression from 'compression'; -import invariant from 'tiny-invariant'; - +import { logConfig } from '@storybook/core/common'; import type { Options } from '@storybook/core/types'; -import { logConfig } from '@storybook/core/common'; import { logger } from '@storybook/core/node-logger'; - import { MissingBuilderError } from '@storybook/core/server-errors'; -import { getMiddleware } from './utils/middleware'; -import { getServerAddresses } from './utils/server-address'; -import { getServer } from './utils/server-init'; -import { useStatics } from './utils/server-statics'; -import { getServerChannel } from './utils/get-server-channel'; -import { openInBrowser } from './utils/open-in-browser'; -import { getManagerBuilder, getPreviewBuilder } from './utils/get-builders'; +import compression from 'compression'; +import express from 'express'; +import invariant from 'tiny-invariant'; + import type { StoryIndexGenerator } from './utils/StoryIndexGenerator'; -import { getStoryIndexGenerator } from './utils/getStoryIndexGenerator'; import { doTelemetry } from './utils/doTelemetry'; -import { router } from './utils/router'; -import { getAccessControlMiddleware } from './utils/getAccessControlMiddleware'; +import { getManagerBuilder, getPreviewBuilder } from './utils/get-builders'; import { getCachingMiddleware } from './utils/get-caching-middleware'; +import { getServerChannel } from './utils/get-server-channel'; +import { getAccessControlMiddleware } from './utils/getAccessControlMiddleware'; +import { getStoryIndexGenerator } from './utils/getStoryIndexGenerator'; +import { getMiddleware } from './utils/middleware'; +import { openInBrowser } from './utils/open-in-browser'; +import { router } from './utils/router'; +import { getServerAddresses } from './utils/server-address'; +import { getServer } from './utils/server-init'; +import { useStatics } from './utils/server-statics'; export async function storybookDevServer(options: Options) { const app = express(); diff --git a/code/core/src/core-server/presets/common-override-preset.ts b/code/core/src/core-server/presets/common-override-preset.ts index 83e6ed022ce6..2566bee53593 100644 --- a/code/core/src/core-server/presets/common-override-preset.ts +++ b/code/core/src/core-server/presets/common-override-preset.ts @@ -1,4 +1,5 @@ import type { PresetProperty, TestBuildFlags } from '@storybook/core/types'; + import { removeMDXEntries } from '../utils/remove-mdx-entries'; export const framework: PresetProperty<'framework'> = async (config) => { diff --git a/code/core/src/core-server/presets/common-preset.ts b/code/core/src/core-server/presets/common-preset.ts index 177944e34534..c1b8ca68f88a 100644 --- a/code/core/src/core-server/presets/common-preset.ts +++ b/code/core/src/core-server/presets/common-preset.ts @@ -1,6 +1,6 @@ -import { pathExists, readFile } from 'fs-extra'; -import { logger } from '@storybook/core/node-logger'; -import { telemetry } from '@storybook/core/telemetry'; +import { dirname, isAbsolute, join } from 'node:path'; + +import type { Channel } from '@storybook/core/channels'; import { getDirectoryFromWorkingDir, getPreviewBodyTemplate, @@ -8,24 +8,28 @@ import { loadEnvs, removeAddon as removeAddonBase, } from '@storybook/core/common'; +import { telemetry } from '@storybook/core/telemetry'; import type { CLIOptions, CoreConfig, Indexer, Options, - PresetPropertyFn, PresetProperty, + PresetPropertyFn, } from '@storybook/core/types'; + import { readCsf } from '@storybook/core/csf-tools'; -import { join, dirname, isAbsolute } from 'node:path'; +import { logger } from '@storybook/core/node-logger'; + +import { pathExists, readFile } from 'fs-extra'; import { dedent } from 'ts-dedent'; -import type { Channel } from '@storybook/core/channels'; -import { parseStaticDir } from '../utils/server-statics'; + +import { initCreateNewStoryChannel } from '../server-channel/create-new-story-channel'; +import { initFileSearchChannel } from '../server-channel/file-search-channel'; import { defaultStaticDirs } from '../utils/constants'; -import { initializeWhatsNew, type OptionsWithRequiredCache } from '../utils/whats-new'; import { initializeSaveStory } from '../utils/save-story/save-story'; -import { initFileSearchChannel } from '../server-channel/file-search-channel'; -import { initCreateNewStoryChannel } from '../server-channel/create-new-story-channel'; +import { parseStaticDir } from '../utils/server-statics'; +import { type OptionsWithRequiredCache, initializeWhatsNew } from '../utils/whats-new'; const interpolate = (string: string, data: Record = {}) => Object.entries(data).reduce((acc, [k, v]) => acc.replace(new RegExp(`%${k}%`, 'g'), v), string); diff --git a/code/core/src/core-server/presets/favicon.test.ts b/code/core/src/core-server/presets/favicon.test.ts index 2ba8666cc6a6..7af2bfbfb34d 100644 --- a/code/core/src/core-server/presets/favicon.test.ts +++ b/code/core/src/core-server/presets/favicon.test.ts @@ -1,8 +1,11 @@ -import { expect, vi, it } from 'vitest'; - import { dirname, join } from 'node:path'; -import * as fs from 'fs-extra'; + +import { expect, it, vi } from 'vitest'; + import { logger } from '@storybook/core/node-logger'; + +import * as fs from 'fs-extra'; + import * as m from './common-preset'; const defaultFavicon = join( diff --git a/code/core/src/core-server/server-channel/create-new-story-channel.test.ts b/code/core/src/core-server/server-channel/create-new-story-channel.test.ts index 81b9d74fce93..a8cecafca561 100644 --- a/code/core/src/core-server/server-channel/create-new-story-channel.test.ts +++ b/code/core/src/core-server/server-channel/create-new-story-channel.test.ts @@ -1,14 +1,18 @@ -import { describe, it, expect, vi, beforeEach } from 'vitest'; -import { initCreateNewStoryChannel } from './create-new-story-channel'; import path from 'node:path'; + +import { beforeEach, describe, expect, it, vi } from 'vitest'; + import type { ChannelTransport } from '@storybook/core/channels'; import { Channel } from '@storybook/core/channels'; + import type { CreateNewStoryRequestPayload, RequestData } from '@storybook/core/core-events'; import { CREATE_NEW_STORYFILE_REQUEST, CREATE_NEW_STORYFILE_RESPONSE, } from '@storybook/core/core-events'; +import { initCreateNewStoryChannel } from './create-new-story-channel'; + vi.mock('@storybook/core/common', async (importOriginal) => { const actual = await importOriginal(); return { diff --git a/code/core/src/core-server/server-channel/create-new-story-channel.ts b/code/core/src/core-server/server-channel/create-new-story-channel.ts index f30fdf2d57a3..8362b8ff161b 100644 --- a/code/core/src/core-server/server-channel/create-new-story-channel.ts +++ b/code/core/src/core-server/server-channel/create-new-story-channel.ts @@ -1,6 +1,11 @@ -import type { CoreConfig, Options } from '@storybook/core/types'; +import { existsSync } from 'node:fs'; +import { writeFile } from 'node:fs/promises'; +import path from 'node:path'; + import type { Channel } from '@storybook/core/channels'; import { telemetry } from '@storybook/core/telemetry'; +import type { CoreConfig, Options } from '@storybook/core/types'; + import type { CreateNewStoryErrorPayload, CreateNewStoryRequestPayload, @@ -12,11 +17,9 @@ import { CREATE_NEW_STORYFILE_REQUEST, CREATE_NEW_STORYFILE_RESPONSE, } from '@storybook/core/core-events'; -import { writeFile } from 'node:fs/promises'; -import { existsSync } from 'node:fs'; + import { getNewStoryFile } from '../utils/get-new-story-file'; import { getStoryId } from '../utils/get-story-id'; -import path from 'node:path'; export function initCreateNewStoryChannel( channel: Channel, diff --git a/code/core/src/core-server/server-channel/file-search-channel.test.ts b/code/core/src/core-server/server-channel/file-search-channel.test.ts index bb27cfcb1e0d..5594b8a844b4 100644 --- a/code/core/src/core-server/server-channel/file-search-channel.test.ts +++ b/code/core/src/core-server/server-channel/file-search-channel.test.ts @@ -1,13 +1,14 @@ // @vitest-environment happy-dom +import { beforeEach, describe, expect, it, vi } from 'vitest'; import type { ChannelTransport } from '@storybook/core/channels'; import { Channel } from '@storybook/core/channels'; -import type { RequestData, FileComponentSearchRequestPayload } from '@storybook/core/core-events'; + +import type { FileComponentSearchRequestPayload, RequestData } from '@storybook/core/core-events'; import { - FILE_COMPONENT_SEARCH_RESPONSE, FILE_COMPONENT_SEARCH_REQUEST, + FILE_COMPONENT_SEARCH_RESPONSE, } from '@storybook/core/core-events'; -import { beforeEach, describe, expect, vi, it } from 'vitest'; import { initFileSearchChannel } from './file-search-channel'; diff --git a/code/core/src/core-server/server-channel/file-search-channel.ts b/code/core/src/core-server/server-channel/file-search-channel.ts index aaf6af62af35..f3d0655d8cae 100644 --- a/code/core/src/core-server/server-channel/file-search-channel.ts +++ b/code/core/src/core-server/server-channel/file-search-channel.ts @@ -1,15 +1,14 @@ -import type { CoreConfig, Options, SupportedRenderers } from '@storybook/core/types'; +import path from 'node:path'; + import type { Channel } from '@storybook/core/channels'; import { extractProperRendererNameFromFramework, getFrameworkName, getProjectRoot, } from '@storybook/core/common'; -import path from 'node:path'; -import fs from 'fs/promises'; +import { telemetry } from '@storybook/core/telemetry'; +import type { CoreConfig, Options, SupportedRenderers } from '@storybook/core/types'; -import { getParser } from '../utils/parser'; -import { searchFiles } from '../utils/search-files'; import type { FileComponentSearchRequestPayload, FileComponentSearchResponsePayload, @@ -20,8 +19,12 @@ import { FILE_COMPONENT_SEARCH_REQUEST, FILE_COMPONENT_SEARCH_RESPONSE, } from '@storybook/core/core-events'; + +import fs from 'fs/promises'; + import { doesStoryFileExist, getStoryMetadata } from '../utils/get-new-story-file'; -import { telemetry } from '@storybook/core/telemetry'; +import { getParser } from '../utils/parser'; +import { searchFiles } from '../utils/search-files'; export async function initFileSearchChannel( channel: Channel, diff --git a/code/core/src/core-server/standalone.ts b/code/core/src/core-server/standalone.ts index 72a98d617112..d79463578146 100644 --- a/code/core/src/core-server/standalone.ts +++ b/code/core/src/core-server/standalone.ts @@ -1,7 +1,8 @@ -import { buildStaticStandalone } from './build-static'; -import { buildDevStandalone } from './build-dev'; import { dirname } from 'node:path'; +import { buildDevStandalone } from './build-dev'; +import { buildStaticStandalone } from './build-static'; + async function build(options: any = {}, frameworkOptions: any = {}) { const { mode = 'dev' } = options; const packageJsonDir = dirname(require.resolve('@storybook/core/package.json')); diff --git a/code/core/src/core-server/utils/StoryIndexGenerator.test.ts b/code/core/src/core-server/utils/StoryIndexGenerator.test.ts index 1d0b479f459b..94a169c2a9f3 100644 --- a/code/core/src/core-server/utils/StoryIndexGenerator.test.ts +++ b/code/core/src/core-server/utils/StoryIndexGenerator.test.ts @@ -1,17 +1,18 @@ /* eslint-disable @typescript-eslint/no-shadow */ +import path from 'node:path'; -import { describe, beforeEach, it, expect, vi } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; -import path from 'node:path'; import { normalizeStoriesEntry } from '@storybook/core/common'; import type { NormalizedStoriesSpecifier, StoryIndexEntry } from '@storybook/core/types'; -import { readCsf, getStorySortParameter } from '@storybook/core/csf-tools'; import { toId } from '@storybook/csf'; + +import { getStorySortParameter, readCsf } from '@storybook/core/csf-tools'; import { logger, once } from '@storybook/core/node-logger'; +import { csfIndexer } from '../presets/common-preset'; import type { StoryIndexGeneratorOptions } from './StoryIndexGenerator'; import { StoryIndexGenerator } from './StoryIndexGenerator'; -import { csfIndexer } from '../presets/common-preset'; vi.mock('@storybook/csf', async (importOriginal) => { const csf = await importOriginal(); diff --git a/code/core/src/core-server/utils/StoryIndexGenerator.ts b/code/core/src/core-server/utils/StoryIndexGenerator.ts index 64aa9744e00e..cb880449ab59 100644 --- a/code/core/src/core-server/utils/StoryIndexGenerator.ts +++ b/code/core/src/core-server/utils/StoryIndexGenerator.ts @@ -1,34 +1,37 @@ /* eslint-disable no-underscore-dangle */ import path from 'node:path'; -import chalk from 'chalk'; -import fs from 'fs-extra'; -import slash from 'slash'; -import invariant from 'tiny-invariant'; -import * as TsconfigPaths from 'tsconfig-paths'; -import { findUp } from 'find-up'; +import { commonGlobOptions, normalizeStoryPath } from '@storybook/core/common'; import type { - IndexEntry, - StoryIndexEntry, DocsIndexEntry, - NormalizedStoriesSpecifier, DocsOptions, + IndexEntry, + IndexInputStats, + Indexer, + NormalizedStoriesSpecifier, Path, - Tag, StoryIndex, - Indexer, + StoryIndexEntry, StorybookConfigRaw, - IndexInputStats, + Tag, } from '@storybook/core/types'; -import { userOrAutoTitleFromSpecifier, sortStoriesV7 } from '@storybook/core/preview-api'; -import { commonGlobOptions, normalizeStoryPath } from '@storybook/core/common'; -import { logger, once } from '@storybook/core/node-logger'; +import { combineTags, storyNameFromExport, toId } from '@storybook/csf'; + import { getStorySortParameter, loadConfig } from '@storybook/core/csf-tools'; -import { storyNameFromExport, toId, combineTags } from '@storybook/csf'; +import { logger, once } from '@storybook/core/node-logger'; +import { sortStoriesV7, userOrAutoTitleFromSpecifier } from '@storybook/core/preview-api'; + +import chalk from 'chalk'; +import { findUp } from 'find-up'; +import fs from 'fs-extra'; +import slash from 'slash'; +import invariant from 'tiny-invariant'; import { dedent } from 'ts-dedent'; -import { autoName } from './autoName'; +import * as TsconfigPaths from 'tsconfig-paths'; + import { IndexingError, MultipleIndexingError } from './IndexingError'; -import { addStats, type IndexStatsSummary } from './summarizeStats'; +import { autoName } from './autoName'; +import { type IndexStatsSummary, addStats } from './summarizeStats'; // Extended type to keep track of the csf meta id so we know the component id when referencing docs in `extractDocs` type StoryIndexEntryWithExtra = StoryIndexEntry & { diff --git a/code/core/src/core-server/utils/__tests__/IndexingError.test.ts b/code/core/src/core-server/utils/__tests__/IndexingError.test.ts index 20154aa4250b..ad228d2dbb22 100644 --- a/code/core/src/core-server/utils/__tests__/IndexingError.test.ts +++ b/code/core/src/core-server/utils/__tests__/IndexingError.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { IndexingError, MultipleIndexingError } from '../IndexingError'; it('formats single file errors', () => { diff --git a/code/core/src/core-server/utils/__tests__/autoName.test.ts b/code/core/src/core-server/utils/__tests__/autoName.test.ts index 64954fc55d17..273178340f2a 100644 --- a/code/core/src/core-server/utils/__tests__/autoName.test.ts +++ b/code/core/src/core-server/utils/__tests__/autoName.test.ts @@ -1,4 +1,5 @@ -import { it, expect } from 'vitest'; +import { expect, it } from 'vitest'; + import { autoName } from '../autoName'; it('pulls name from named MDX files', () => { diff --git a/code/core/src/core-server/utils/__tests__/index-extraction.test.ts b/code/core/src/core-server/utils/__tests__/index-extraction.test.ts index 6fbbdeb41c6c..beb16cc73a27 100644 --- a/code/core/src/core-server/utils/__tests__/index-extraction.test.ts +++ b/code/core/src/core-server/utils/__tests__/index-extraction.test.ts @@ -1,6 +1,7 @@ -import { describe, it, expect, vi } from 'vitest'; - import path from 'node:path'; + +import { describe, expect, it, vi } from 'vitest'; + import { normalizeStoriesEntry } from '@storybook/core/common'; import type { NormalizedStoriesSpecifier } from '@storybook/core/types'; diff --git a/code/core/src/core-server/utils/__tests__/remove-mdx-stories.test.ts b/code/core/src/core-server/utils/__tests__/remove-mdx-stories.test.ts index 2dff9f7810e4..f1342ad48a9a 100644 --- a/code/core/src/core-server/utils/__tests__/remove-mdx-stories.test.ts +++ b/code/core/src/core-server/utils/__tests__/remove-mdx-stories.test.ts @@ -1,9 +1,13 @@ -import { glob as globOriginal } from 'glob'; -import { type StoriesEntry } from '@storybook/core/types'; -import { normalizeStoriesEntry } from '@storybook/core/common'; import { join } from 'node:path'; + +import { describe, expect, it, vi } from 'vitest'; + +import { normalizeStoriesEntry } from '@storybook/core/common'; +import { type StoriesEntry } from '@storybook/core/types'; + +import { glob as globOriginal } from 'glob'; import slash from 'slash'; -import { vi, it, describe, expect } from 'vitest'; + import { removeMDXEntries } from '../remove-mdx-entries'; const configDir = '/configDir/'; diff --git a/code/core/src/core-server/utils/__tests__/server-address.test.ts b/code/core/src/core-server/utils/__tests__/server-address.test.ts index 4b3636ee9e84..cc9b3dfa6f53 100644 --- a/code/core/src/core-server/utils/__tests__/server-address.test.ts +++ b/code/core/src/core-server/utils/__tests__/server-address.test.ts @@ -1,5 +1,7 @@ -import { describe, beforeEach, it, expect, vi } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; + import os, { type NetworkInterfaceInfoIPv4 } from 'os'; + import { getServerAddresses } from '../server-address'; vi.mock('os'); diff --git a/code/core/src/core-server/utils/__tests__/server-channel.test.ts b/code/core/src/core-server/utils/__tests__/server-channel.test.ts index 0078b6d78cfa..c43955bd5886 100644 --- a/code/core/src/core-server/utils/__tests__/server-channel.test.ts +++ b/code/core/src/core-server/utils/__tests__/server-channel.test.ts @@ -1,10 +1,12 @@ -import { describe, expect, vi, it } from 'vitest'; -import type { Server } from 'http'; +import { describe, expect, it, vi } from 'vitest'; + import { Channel } from '@storybook/core/channels'; import { EventEmitter } from 'events'; +import type { Server } from 'http'; import { stringify } from 'telejson'; -import { getServerChannel, ServerChannelTransport } from '../get-server-channel'; + +import { ServerChannelTransport, getServerChannel } from '../get-server-channel'; describe('getServerChannel', () => { it('should return a channel', () => { diff --git a/code/core/src/core-server/utils/__tests__/server-statics.test.ts b/code/core/src/core-server/utils/__tests__/server-statics.test.ts index 7033bec57704..c739e4ac5fef 100644 --- a/code/core/src/core-server/utils/__tests__/server-statics.test.ts +++ b/code/core/src/core-server/utils/__tests__/server-statics.test.ts @@ -1,6 +1,9 @@ -import { describe, it, expect, vi, beforeEach } from 'vitest'; -import fs from 'fs-extra'; import path from 'node:path'; + +import { beforeEach, describe, expect, it, vi } from 'vitest'; + +import fs from 'fs-extra'; + import { onlyWindows, skipWindows } from '../../../../../vitest.helpers'; import { parseStaticDir } from '../server-statics'; diff --git a/code/core/src/core-server/utils/autoName.ts b/code/core/src/core-server/utils/autoName.ts index aa916c865664..953124f7db0f 100644 --- a/code/core/src/core-server/utils/autoName.ts +++ b/code/core/src/core-server/utils/autoName.ts @@ -1,6 +1,7 @@ -import type { Path } from '@storybook/core/types'; import { basename } from 'node:path'; +import type { Path } from '@storybook/core/types'; + /** * Calculate a name to use for a docs entry if not specified. The rule is: * diff --git a/code/core/src/core-server/utils/copy-all-static-files.ts b/code/core/src/core-server/utils/copy-all-static-files.ts index 344bc12eeb72..b17ceaa1f8dd 100644 --- a/code/core/src/core-server/utils/copy-all-static-files.ts +++ b/code/core/src/core-server/utils/copy-all-static-files.ts @@ -1,8 +1,12 @@ -import chalk from 'chalk'; -import fs from 'fs-extra'; import { join, relative } from 'node:path'; -import { logger } from '@storybook/core/node-logger'; + import { getDirectoryFromWorkingDir } from '@storybook/core/common'; + +import { logger } from '@storybook/core/node-logger'; + +import chalk from 'chalk'; +import fs from 'fs-extra'; + import { parseStaticDir } from './server-statics'; export async function copyAllStaticFiles(staticDirs: any[] | undefined, outputDir: string) { diff --git a/code/core/src/core-server/utils/doTelemetry.ts b/code/core/src/core-server/utils/doTelemetry.ts index be9479cf3348..c7d92c324d86 100644 --- a/code/core/src/core-server/utils/doTelemetry.ts +++ b/code/core/src/core-server/utils/doTelemetry.ts @@ -1,12 +1,14 @@ -import invariant from 'tiny-invariant'; +import { getPrecedingUpgrade, telemetry } from '@storybook/core/telemetry'; import type { CoreConfig, Options, StoryIndex } from '@storybook/core/types'; -import { telemetry, getPrecedingUpgrade } from '@storybook/core/telemetry'; -import { useStorybookMetadata } from './metadata'; + +import invariant from 'tiny-invariant'; + +import { sendTelemetryError } from '../withTelemetry'; import type { StoryIndexGenerator } from './StoryIndexGenerator'; -import { summarizeIndex } from './summarizeIndex'; +import { useStorybookMetadata } from './metadata'; import { router } from './router'; +import { summarizeIndex } from './summarizeIndex'; import { versionStatus } from './versionStatus'; -import { sendTelemetryError } from '../withTelemetry'; export async function doTelemetry( core: CoreConfig, diff --git a/code/core/src/core-server/utils/get-builders.ts b/code/core/src/core-server/utils/get-builders.ts index 13a5365c91e2..5b654a14c955 100644 --- a/code/core/src/core-server/utils/get-builders.ts +++ b/code/core/src/core-server/utils/get-builders.ts @@ -1,6 +1,8 @@ +import { pathToFileURL } from 'node:url'; + import type { Builder, Options } from '@storybook/core/types'; + import { MissingBuilderError } from '@storybook/core/server-errors'; -import { pathToFileURL } from 'node:url'; export async function getManagerBuilder(): Promise> { return import('@storybook/core/builder-manager'); diff --git a/code/core/src/core-server/utils/get-component-variable-name.test.ts b/code/core/src/core-server/utils/get-component-variable-name.test.ts index 07b2fb5599aa..222f97226d5d 100644 --- a/code/core/src/core-server/utils/get-component-variable-name.test.ts +++ b/code/core/src/core-server/utils/get-component-variable-name.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from 'vitest'; + import { getComponentVariableName } from './get-component-variable-name'; describe('get-variable-name', () => { diff --git a/code/core/src/core-server/utils/get-new-story-file.test.ts b/code/core/src/core-server/utils/get-new-story-file.test.ts index c1a4e5e083de..354e4470cfa4 100644 --- a/code/core/src/core-server/utils/get-new-story-file.test.ts +++ b/code/core/src/core-server/utils/get-new-story-file.test.ts @@ -1,6 +1,8 @@ +import path from 'node:path'; + import { describe, expect, it, vi } from 'vitest'; + import { getNewStoryFile } from './get-new-story-file'; -import path from 'node:path'; vi.mock('@storybook/core/common', async (importOriginal) => { const actual = await importOriginal(); diff --git a/code/core/src/core-server/utils/get-new-story-file.ts b/code/core/src/core-server/utils/get-new-story-file.ts index 61de20234995..969bca510067 100644 --- a/code/core/src/core-server/utils/get-new-story-file.ts +++ b/code/core/src/core-server/utils/get-new-story-file.ts @@ -1,16 +1,19 @@ -import type { Options } from '@storybook/core/types'; +import fs from 'node:fs'; +import path from 'node:path'; + import { extractProperRendererNameFromFramework, getFrameworkName, getProjectRoot, rendererPackages, } from '@storybook/core/common'; -import path from 'node:path'; -import fs from 'node:fs'; -import { getTypeScriptTemplateForNewStoryFile } from './new-story-templates/typescript'; -import { getJavaScriptTemplateForNewStoryFile } from './new-story-templates/javascript'; +import type { Options } from '@storybook/core/types'; + import type { CreateNewStoryRequestPayload } from '@storybook/core/core-events'; +import { getJavaScriptTemplateForNewStoryFile } from './new-story-templates/javascript'; +import { getTypeScriptTemplateForNewStoryFile } from './new-story-templates/typescript'; + export async function getNewStoryFile( { componentFilePath, diff --git a/code/core/src/core-server/utils/get-server-channel.ts b/code/core/src/core-server/utils/get-server-channel.ts index d7f8c4721de7..ce5844e6235d 100644 --- a/code/core/src/core-server/utils/get-server-channel.ts +++ b/code/core/src/core-server/utils/get-server-channel.ts @@ -1,8 +1,9 @@ -import WebSocket, { WebSocketServer } from 'ws'; -import { isJSON, parse, stringify } from 'telejson'; import type { ChannelHandler } from '@storybook/core/channels'; import { Channel } from '@storybook/core/channels'; +import { isJSON, parse, stringify } from 'telejson'; +import WebSocket, { WebSocketServer } from 'ws'; + type Server = NonNullable[0]>['server']>; /** diff --git a/code/core/src/core-server/utils/get-story-id.test.ts b/code/core/src/core-server/utils/get-story-id.test.ts index 26fedcbe03e9..7132aeea13ef 100644 --- a/code/core/src/core-server/utils/get-story-id.test.ts +++ b/code/core/src/core-server/utils/get-story-id.test.ts @@ -1,5 +1,7 @@ import path from 'node:path'; + import { describe, expect, it } from 'vitest'; + import { getStoryId } from './get-story-id'; describe('getStoryId', () => { diff --git a/code/core/src/core-server/utils/get-story-id.ts b/code/core/src/core-server/utils/get-story-id.ts index ef44c263f094..5abbb799a483 100644 --- a/code/core/src/core-server/utils/get-story-id.ts +++ b/code/core/src/core-server/utils/get-story-id.ts @@ -1,9 +1,13 @@ -import type { Options } from '@storybook/core/types'; -import { dedent } from 'ts-dedent'; -import { normalizeStories, normalizeStoryPath } from '@storybook/core/common'; import path from 'node:path'; + +import { normalizeStories, normalizeStoryPath } from '@storybook/core/common'; +import type { Options } from '@storybook/core/types'; import { sanitize, storyNameFromExport, toId } from '@storybook/csf'; + import { userOrAutoTitleFromSpecifier } from '@storybook/core/preview-api'; + +import { dedent } from 'ts-dedent'; + import { posix } from './posix'; interface StoryIdData { diff --git a/code/core/src/core-server/utils/getStoryIndexGenerator.ts b/code/core/src/core-server/utils/getStoryIndexGenerator.ts index b61a5490c3b4..6e5e4960b132 100644 --- a/code/core/src/core-server/utils/getStoryIndexGenerator.ts +++ b/code/core/src/core-server/utils/getStoryIndexGenerator.ts @@ -1,9 +1,10 @@ -import type { DocsOptions, Options } from '@storybook/core/types'; import { normalizeStories } from '@storybook/core/common'; -import { useStoriesJson } from './stories-json'; -import type { ServerChannel } from './get-server-channel'; +import type { DocsOptions, Options } from '@storybook/core/types'; + import { StoryIndexGenerator } from './StoryIndexGenerator'; +import type { ServerChannel } from './get-server-channel'; import { router } from './router'; +import { useStoriesJson } from './stories-json'; export async function getStoryIndexGenerator( features: { diff --git a/code/core/src/core-server/utils/metadata.ts b/code/core/src/core-server/utils/metadata.ts index a3a2c755b33b..cc047d841768 100644 --- a/code/core/src/core-server/utils/metadata.ts +++ b/code/core/src/core-server/utils/metadata.ts @@ -1,7 +1,8 @@ -import { writeJSON } from 'fs-extra'; -import type { Request, Response, Router } from 'express'; import { getStorybookMetadata } from '@storybook/core/telemetry'; +import type { Request, Response, Router } from 'express'; +import { writeJSON } from 'fs-extra'; + export async function extractStorybookMetadata(outputFile: string, configDir: string) { const storybookMetadata = await getStorybookMetadata(configDir); diff --git a/code/core/src/core-server/utils/middleware.ts b/code/core/src/core-server/utils/middleware.ts index 33ad1e641771..a583c5c70297 100644 --- a/code/core/src/core-server/utils/middleware.ts +++ b/code/core/src/core-server/utils/middleware.ts @@ -1,5 +1,5 @@ -import path from 'node:path'; import fs from 'node:fs'; +import path from 'node:path'; const fileExists = (basename: string) => ['.js', '.cjs'].reduce((found: string, ext: string) => { diff --git a/code/core/src/core-server/utils/new-story-templates/javascript.test.ts b/code/core/src/core-server/utils/new-story-templates/javascript.test.ts index 525c0fe25f4c..31d7f7686030 100644 --- a/code/core/src/core-server/utils/new-story-templates/javascript.test.ts +++ b/code/core/src/core-server/utils/new-story-templates/javascript.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from 'vitest'; + import { getJavaScriptTemplateForNewStoryFile } from './javascript'; describe('javascript', () => { diff --git a/code/core/src/core-server/utils/new-story-templates/javascript.ts b/code/core/src/core-server/utils/new-story-templates/javascript.ts index cc59e78cf34c..12742502b413 100644 --- a/code/core/src/core-server/utils/new-story-templates/javascript.ts +++ b/code/core/src/core-server/utils/new-story-templates/javascript.ts @@ -1,4 +1,5 @@ import { dedent } from 'ts-dedent'; + import { getComponentVariableName } from '../get-component-variable-name'; interface JavaScriptTemplateData { diff --git a/code/core/src/core-server/utils/new-story-templates/typescript.test.ts b/code/core/src/core-server/utils/new-story-templates/typescript.test.ts index 338b3209ce95..b470cf0699b1 100644 --- a/code/core/src/core-server/utils/new-story-templates/typescript.test.ts +++ b/code/core/src/core-server/utils/new-story-templates/typescript.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from 'vitest'; + import { getTypeScriptTemplateForNewStoryFile } from './typescript'; describe('typescript', () => { diff --git a/code/core/src/core-server/utils/new-story-templates/typescript.ts b/code/core/src/core-server/utils/new-story-templates/typescript.ts index d9e0acaa12cc..892772f06f2d 100644 --- a/code/core/src/core-server/utils/new-story-templates/typescript.ts +++ b/code/core/src/core-server/utils/new-story-templates/typescript.ts @@ -1,4 +1,5 @@ import { dedent } from 'ts-dedent'; + import { getComponentVariableName } from '../get-component-variable-name'; interface TypeScriptTemplateData { diff --git a/code/core/src/core-server/utils/open-in-browser.ts b/code/core/src/core-server/utils/open-in-browser.ts index b4fe5d77d961..aa5f745b8ce6 100644 --- a/code/core/src/core-server/utils/open-in-browser.ts +++ b/code/core/src/core-server/utils/open-in-browser.ts @@ -1,7 +1,9 @@ import { logger } from '@storybook/core/node-logger'; -import betterOpn from 'better-opn'; // betterOpn alias used because also loading open -import open from 'open'; + import getDefaultBrowser from '@aw-web-design/x-default-browser'; +import betterOpn from 'better-opn'; +// betterOpn alias used because also loading open +import open from 'open'; import { dedent } from 'ts-dedent'; export function openInBrowser(address: string) { diff --git a/code/core/src/core-server/utils/output-startup-information.ts b/code/core/src/core-server/utils/output-startup-information.ts index 092a29671aa4..cfe60bef6cc9 100644 --- a/code/core/src/core-server/utils/output-startup-information.ts +++ b/code/core/src/core-server/utils/output-startup-information.ts @@ -1,10 +1,13 @@ -import chalk from 'chalk'; +import type { VersionCheck } from '@storybook/core/types'; + import { colors } from '@storybook/core/node-logger'; + import boxen from 'boxen'; -import { dedent } from 'ts-dedent'; +import chalk from 'chalk'; import Table from 'cli-table3'; import prettyTime from 'pretty-hrtime'; -import type { VersionCheck } from '@storybook/core/types'; +import { dedent } from 'ts-dedent'; + import { createUpdateMessage } from './update-check'; export function outputStartupInformation(options: { diff --git a/code/core/src/core-server/utils/output-stats.ts b/code/core/src/core-server/utils/output-stats.ts index 0b99ef1f4eb3..d54bc6938b44 100644 --- a/code/core/src/core-server/utils/output-stats.ts +++ b/code/core/src/core-server/utils/output-stats.ts @@ -1,9 +1,12 @@ -import { stringifyStream } from '@discoveryjs/json-ext'; -import { logger } from '@storybook/core/node-logger'; +import path from 'node:path'; + import type { Stats } from '@storybook/core/types'; + +import { logger } from '@storybook/core/node-logger'; + +import { stringifyStream } from '@discoveryjs/json-ext'; import chalk from 'chalk'; import fs from 'fs-extra'; -import path from 'node:path'; export async function outputStats(directory: string, previewStats?: any, managerStats?: any) { if (previewStats) { diff --git a/code/core/src/core-server/utils/parser/generic-parser.test.ts b/code/core/src/core-server/utils/parser/generic-parser.test.ts index 17995e7ec0f0..3a0002dde4a9 100644 --- a/code/core/src/core-server/utils/parser/generic-parser.test.ts +++ b/code/core/src/core-server/utils/parser/generic-parser.test.ts @@ -1,7 +1,9 @@ -import { describe, expect, it } from 'vitest'; +import fs from 'node:fs'; import path from 'node:path'; + +import { describe, expect, it } from 'vitest'; + import { GenericParser } from './generic-parser'; -import fs from 'node:fs'; const genericParser = new GenericParser(); diff --git a/code/core/src/core-server/utils/parser/generic-parser.ts b/code/core/src/core-server/utils/parser/generic-parser.ts index e3c4754fab44..cbce263ac9ec 100644 --- a/code/core/src/core-server/utils/parser/generic-parser.ts +++ b/code/core/src/core-server/utils/parser/generic-parser.ts @@ -1,5 +1,5 @@ -import * as babelParser from '@babel/parser'; import { types } from '@babel/core'; +import * as babelParser from '@babel/parser'; import type { Parser, ParserResult } from './types'; diff --git a/code/core/src/core-server/utils/parser/index.ts b/code/core/src/core-server/utils/parser/index.ts index 5e3aa13fd866..753e2c1d8afd 100644 --- a/code/core/src/core-server/utils/parser/index.ts +++ b/code/core/src/core-server/utils/parser/index.ts @@ -1,4 +1,5 @@ import type { SupportedRenderers } from '@storybook/core/types'; + import { GenericParser } from './generic-parser'; import type { Parser } from './types'; diff --git a/code/core/src/core-server/utils/posix.test.ts b/code/core/src/core-server/utils/posix.test.ts index 23c8d2ca3bec..960d799e30b1 100644 --- a/code/core/src/core-server/utils/posix.test.ts +++ b/code/core/src/core-server/utils/posix.test.ts @@ -1,4 +1,5 @@ import { describe, expect, it } from 'vitest'; + import { posix } from './posix'; describe('posix', () => { diff --git a/code/core/src/core-server/utils/remove-mdx-entries.ts b/code/core/src/core-server/utils/remove-mdx-entries.ts index d9d5a285dcc6..f71488712a49 100644 --- a/code/core/src/core-server/utils/remove-mdx-entries.ts +++ b/code/core/src/core-server/utils/remove-mdx-entries.ts @@ -1,8 +1,10 @@ -import type { Options, StoriesEntry } from '@storybook/core/types'; -import { normalizeStories, commonGlobOptions } from '@storybook/core/common'; import { isAbsolute, join, relative } from 'node:path'; -import slash from 'slash'; + +import { commonGlobOptions, normalizeStories } from '@storybook/core/common'; +import type { Options, StoriesEntry } from '@storybook/core/types'; + import { glob } from 'glob'; +import slash from 'slash'; export async function removeMDXEntries( entries: StoriesEntry[], diff --git a/code/core/src/core-server/utils/save-story/duplicate-story-with-new-name.test.ts b/code/core/src/core-server/utils/save-story/duplicate-story-with-new-name.test.ts index da4b26eabb25..2bdb98544d22 100644 --- a/code/core/src/core-server/utils/save-story/duplicate-story-with-new-name.test.ts +++ b/code/core/src/core-server/utils/save-story/duplicate-story-with-new-name.test.ts @@ -1,11 +1,14 @@ /* eslint-disable no-underscore-dangle */ -import { describe, test, expect } from 'vitest'; -import { readCsf, printCsf } from '@storybook/core/csf-tools'; +import { join } from 'node:path'; + +import { describe, expect, test } from 'vitest'; + +import { printCsf, readCsf } from '@storybook/core/csf-tools'; -import { duplicateStoryWithNewName } from './duplicate-story-with-new-name'; import { readFile } from 'fs/promises'; -import { join } from 'node:path'; import { format } from 'prettier'; + +import { duplicateStoryWithNewName } from './duplicate-story-with-new-name'; import { getDiff } from './getDiff'; const makeTitle = (userTitle: string) => userTitle; diff --git a/code/core/src/core-server/utils/save-story/duplicate-story-with-new-name.ts b/code/core/src/core-server/utils/save-story/duplicate-story-with-new-name.ts index f93c02d12afe..25e634a0faf4 100644 --- a/code/core/src/core-server/utils/save-story/duplicate-story-with-new-name.ts +++ b/code/core/src/core-server/utils/save-story/duplicate-story-with-new-name.ts @@ -1,7 +1,9 @@ /* eslint-disable no-underscore-dangle */ import type { CsfFile } from '@storybook/core/csf-tools'; -import * as t from '@babel/types'; + import bt from '@babel/traverse'; +import * as t from '@babel/types'; + import { SaveStoryError } from './utils'; // @ts-expect-error (needed due to it's use of `exports.default`) diff --git a/code/core/src/core-server/utils/save-story/mocks/csf-variances.stories.tsx b/code/core/src/core-server/utils/save-story/mocks/csf-variances.stories.tsx index 9fcbc4bd4df3..35081f422ae3 100644 --- a/code/core/src/core-server/utils/save-story/mocks/csf-variances.stories.tsx +++ b/code/core/src/core-server/utils/save-story/mocks/csf-variances.stories.tsx @@ -1,5 +1,6 @@ import React from 'react'; import type { FC } from 'react'; + import type { Meta, StoryObj } from '@storybook/react'; export default { diff --git a/code/core/src/core-server/utils/save-story/mocks/data-variances.stories.tsx b/code/core/src/core-server/utils/save-story/mocks/data-variances.stories.tsx index ea2f79bdcc3b..e049efd5339f 100644 --- a/code/core/src/core-server/utils/save-story/mocks/data-variances.stories.tsx +++ b/code/core/src/core-server/utils/save-story/mocks/data-variances.stories.tsx @@ -1,5 +1,6 @@ import React from 'react'; import type { FC } from 'react'; + import type { Meta, StoryObj } from '@storybook/react'; export default { diff --git a/code/core/src/core-server/utils/save-story/mocks/export-variances.stories.tsx b/code/core/src/core-server/utils/save-story/mocks/export-variances.stories.tsx index 7c853f484468..3fc94bcceaab 100644 --- a/code/core/src/core-server/utils/save-story/mocks/export-variances.stories.tsx +++ b/code/core/src/core-server/utils/save-story/mocks/export-variances.stories.tsx @@ -1,5 +1,6 @@ import React from 'react'; import type { FC } from 'react'; + import type { Meta, StoryObj } from '@storybook/react'; export default { diff --git a/code/core/src/core-server/utils/save-story/mocks/typescript-constructs.stories.tsx b/code/core/src/core-server/utils/save-story/mocks/typescript-constructs.stories.tsx index d44c95c446be..0d4aa951ad89 100644 --- a/code/core/src/core-server/utils/save-story/mocks/typescript-constructs.stories.tsx +++ b/code/core/src/core-server/utils/save-story/mocks/typescript-constructs.stories.tsx @@ -1,5 +1,6 @@ import React from 'react'; import type { FC } from 'react'; + import type { Meta, StoryObj } from '@storybook/react'; export default { diff --git a/code/core/src/core-server/utils/save-story/mocks/unsupported-csf-variances.stories.tsx b/code/core/src/core-server/utils/save-story/mocks/unsupported-csf-variances.stories.tsx index b86095381faa..7a300959e0a8 100644 --- a/code/core/src/core-server/utils/save-story/mocks/unsupported-csf-variances.stories.tsx +++ b/code/core/src/core-server/utils/save-story/mocks/unsupported-csf-variances.stories.tsx @@ -1,5 +1,6 @@ import React from 'react'; import type { FC } from 'react'; + import type { Meta } from '@storybook/react'; export default { diff --git a/code/core/src/core-server/utils/save-story/save-story.ts b/code/core/src/core-server/utils/save-story/save-story.ts index 5369d99a4cba..c912647770db 100644 --- a/code/core/src/core-server/utils/save-story/save-story.ts +++ b/code/core/src/core-server/utils/save-story/save-story.ts @@ -1,6 +1,13 @@ /* eslint-disable no-underscore-dangle */ import fs from 'node:fs/promises'; +import { basename, join } from 'node:path'; + import type { Channel } from '@storybook/core/channels'; +import { formatFileContent } from '@storybook/core/common'; +import { telemetry } from '@storybook/core/telemetry'; +import type { CoreConfig, Options } from '@storybook/core/types'; +import { storyNameFromExport, toId } from '@storybook/csf'; + import type { RequestData, ResponseData, @@ -12,16 +19,11 @@ import { SAVE_STORY_RESPONSE, STORY_RENDERED, } from '@storybook/core/core-events'; -import { storyNameFromExport, toId } from '@storybook/csf'; import { printCsf, readCsf } from '@storybook/core/csf-tools'; import { logger } from '@storybook/core/node-logger'; -import type { CoreConfig, Options } from '@storybook/core/types'; -import { telemetry } from '@storybook/core/telemetry'; -import { basename, join } from 'node:path'; -import { updateArgsInCsfFile } from './update-args-in-csf-file'; import { duplicateStoryWithNewName } from './duplicate-story-with-new-name'; -import { formatFileContent } from '@storybook/core/common'; +import { updateArgsInCsfFile } from './update-args-in-csf-file'; import { SaveStoryError } from './utils'; const parseArgs = (args: string): Record => diff --git a/code/core/src/core-server/utils/save-story/update-args-in-csf-file.test.ts b/code/core/src/core-server/utils/save-story/update-args-in-csf-file.test.ts index c06f71de482f..4a87fbeff6c1 100644 --- a/code/core/src/core-server/utils/save-story/update-args-in-csf-file.test.ts +++ b/code/core/src/core-server/utils/save-story/update-args-in-csf-file.test.ts @@ -1,12 +1,15 @@ /* eslint-disable no-underscore-dangle */ -import { describe, test, expect } from 'vitest'; -import { readCsf, printCsf } from '@storybook/core/csf-tools'; +import { join } from 'node:path'; + +import { describe, expect, test } from 'vitest'; + +import { printCsf, readCsf } from '@storybook/core/csf-tools'; -import { updateArgsInCsfFile } from './update-args-in-csf-file'; import { readFile } from 'fs/promises'; -import { join } from 'node:path'; import { format } from 'prettier'; + import { getDiff } from './getDiff'; +import { updateArgsInCsfFile } from './update-args-in-csf-file'; const makeTitle = (userTitle: string) => userTitle; diff --git a/code/core/src/core-server/utils/save-story/update-args-in-csf-file.ts b/code/core/src/core-server/utils/save-story/update-args-in-csf-file.ts index 8446594f1c71..9f7466ccfc07 100644 --- a/code/core/src/core-server/utils/save-story/update-args-in-csf-file.ts +++ b/code/core/src/core-server/utils/save-story/update-args-in-csf-file.ts @@ -1,7 +1,8 @@ -import * as t from '@babel/types'; import bt from '@babel/traverse'; -import { valueToAST } from './valueToAST'; +import * as t from '@babel/types'; + import { SaveStoryError } from './utils'; +import { valueToAST } from './valueToAST'; // @ts-expect-error (needed due to it's use of `exports.default`) const traverse = (bt.default || bt) as typeof bt; diff --git a/code/core/src/core-server/utils/save-story/valueToAST.ts b/code/core/src/core-server/utils/save-story/valueToAST.ts index f09dd7b65a64..b1227d8619ae 100644 --- a/code/core/src/core-server/utils/save-story/valueToAST.ts +++ b/code/core/src/core-server/utils/save-story/valueToAST.ts @@ -1,5 +1,5 @@ -import * as t from '@babel/types'; import * as babylon from '@babel/parser'; +import * as t from '@babel/types'; export function valueToAST(literal: T): any { if (literal === null) { diff --git a/code/core/src/core-server/utils/search-files.test.ts b/code/core/src/core-server/utils/search-files.test.ts index 58899c35d35f..81ecfe45079f 100644 --- a/code/core/src/core-server/utils/search-files.test.ts +++ b/code/core/src/core-server/utils/search-files.test.ts @@ -1,5 +1,7 @@ -import { describe, expect, it } from 'vitest'; import path from 'node:path'; + +import { describe, expect, it } from 'vitest'; + import { searchFiles } from './search-files'; describe('search-files', () => { diff --git a/code/core/src/core-server/utils/server-address.test.ts b/code/core/src/core-server/utils/server-address.test.ts index 81f228c9abdf..114fbfd9608a 100644 --- a/code/core/src/core-server/utils/server-address.test.ts +++ b/code/core/src/core-server/utils/server-address.test.ts @@ -1,6 +1,8 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import detectPort from 'detect-port'; -import { getServerAddresses, getServerPort, getServerChannelUrl } from './server-address'; + +import { getServerAddresses, getServerChannelUrl, getServerPort } from './server-address'; vi.mock('os', () => ({ default: { release: () => '' }, diff --git a/code/core/src/core-server/utils/server-address.ts b/code/core/src/core-server/utils/server-address.ts index a7c8f9f2d28a..7fc59312a084 100644 --- a/code/core/src/core-server/utils/server-address.ts +++ b/code/core/src/core-server/utils/server-address.ts @@ -1,7 +1,7 @@ -import os from 'os'; - import { logger } from '@storybook/core/node-logger'; + import detectFreePort from 'detect-port'; +import os from 'os'; export function getServerAddresses( port: number, diff --git a/code/core/src/core-server/utils/server-init.ts b/code/core/src/core-server/utils/server-init.ts index 0888c37fde4a..b63d663e6857 100644 --- a/code/core/src/core-server/utils/server-init.ts +++ b/code/core/src/core-server/utils/server-init.ts @@ -1,4 +1,5 @@ import { logger } from '@storybook/core/node-logger'; + import type { Express } from 'express'; import { readFile } from 'fs-extra'; import http from 'http'; diff --git a/code/core/src/core-server/utils/server-statics.ts b/code/core/src/core-server/utils/server-statics.ts index a2fd5cc8a25f..d359e13653cd 100644 --- a/code/core/src/core-server/utils/server-statics.ts +++ b/code/core/src/core-server/utils/server-statics.ts @@ -1,12 +1,14 @@ -import { logger } from '@storybook/core/node-logger'; -import type { Options } from '@storybook/core/types'; +import path, { basename, isAbsolute } from 'node:path'; + import { getDirectoryFromWorkingDir } from '@storybook/core/common'; +import type { Options } from '@storybook/core/types'; + +import { logger } from '@storybook/core/node-logger'; + import chalk from 'chalk'; import type { Router } from 'express'; import express from 'express'; import { pathExists } from 'fs-extra'; -import path, { basename, isAbsolute } from 'node:path'; - import { dedent } from 'ts-dedent'; export async function useStatics(router: Router, options: Options) { diff --git a/code/core/src/core-server/utils/stories-json.test.ts b/code/core/src/core-server/utils/stories-json.test.ts index a4ad0fa780b7..b28c2cc95a58 100644 --- a/code/core/src/core-server/utils/stories-json.test.ts +++ b/code/core/src/core-server/utils/stories-json.test.ts @@ -1,17 +1,20 @@ -import { describe, beforeEach, it, expect, vi } from 'vitest'; - -import type { Router, Request, Response } from 'express'; -import Watchpack from 'watchpack'; import path from 'node:path'; -import debounce from 'lodash/debounce.js'; -import { STORY_INDEX_INVALIDATED } from '@storybook/core/core-events'; + +import { beforeEach, describe, expect, it, vi } from 'vitest'; + import { normalizeStoriesEntry } from '@storybook/core/common'; -import { useStoriesJson, DEBOUNCE } from './stories-json'; -import type { ServerChannel } from './get-server-channel'; +import { STORY_INDEX_INVALIDATED } from '@storybook/core/core-events'; + +import type { Request, Response, Router } from 'express'; +import debounce from 'lodash/debounce.js'; +import Watchpack from 'watchpack'; + +import { csfIndexer } from '../presets/common-preset'; import type { StoryIndexGeneratorOptions } from './StoryIndexGenerator'; import { StoryIndexGenerator } from './StoryIndexGenerator'; -import { csfIndexer } from '../presets/common-preset'; +import type { ServerChannel } from './get-server-channel'; +import { DEBOUNCE, useStoriesJson } from './stories-json'; vi.mock('watchpack'); vi.mock('lodash/debounce'); diff --git a/code/core/src/core-server/utils/stories-json.ts b/code/core/src/core-server/utils/stories-json.ts index a85791dd6a9b..8956a4ed7ab1 100644 --- a/code/core/src/core-server/utils/stories-json.ts +++ b/code/core/src/core-server/utils/stories-json.ts @@ -1,15 +1,17 @@ import { basename } from 'node:path'; -import type { Router, Request, Response } from 'express'; -import { writeJSON } from 'fs-extra'; import type { NormalizedStoriesSpecifier, StoryIndex } from '@storybook/core/types'; -import debounce from 'lodash/debounce.js'; import { STORY_INDEX_INVALIDATED } from '@storybook/core/core-events'; + +import type { Request, Response, Router } from 'express'; +import { writeJSON } from 'fs-extra'; +import debounce from 'lodash/debounce.js'; + import type { StoryIndexGenerator } from './StoryIndexGenerator'; +import type { ServerChannel } from './get-server-channel'; import { watchStorySpecifiers } from './watch-story-specifiers'; import { watchConfig } from './watchConfig'; -import type { ServerChannel } from './get-server-channel'; export const DEBOUNCE = 100; diff --git a/code/core/src/core-server/utils/summarizeIndex.test.ts b/code/core/src/core-server/utils/summarizeIndex.test.ts index e1be61027c22..5307f05252df 100644 --- a/code/core/src/core-server/utils/summarizeIndex.test.ts +++ b/code/core/src/core-server/utils/summarizeIndex.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { isPageStory, summarizeIndex } from './summarizeIndex'; describe('isPageStory', () => { diff --git a/code/core/src/core-server/utils/summarizeIndex.ts b/code/core/src/core-server/utils/summarizeIndex.ts index 56b4b27ad929..fa6ac93bcf51 100644 --- a/code/core/src/core-server/utils/summarizeIndex.ts +++ b/code/core/src/core-server/utils/summarizeIndex.ts @@ -1,6 +1,6 @@ import type { IndexEntry, StoryIndex } from '@storybook/core/types'; -import { isMdxEntry, AUTODOCS_TAG, PLAY_FN_TAG } from './StoryIndexGenerator'; +import { AUTODOCS_TAG, PLAY_FN_TAG, isMdxEntry } from './StoryIndexGenerator'; const PAGE_REGEX = /(page|screen)/i; diff --git a/code/core/src/core-server/utils/summarizeStats.test.ts b/code/core/src/core-server/utils/summarizeStats.test.ts index e1e342e94260..735671fb3c58 100644 --- a/code/core/src/core-server/utils/summarizeStats.test.ts +++ b/code/core/src/core-server/utils/summarizeStats.test.ts @@ -1,4 +1,5 @@ -import { it, expect } from 'vitest'; +import { expect, it } from 'vitest'; + import { summarizeStats } from './summarizeStats'; it('should summarize stats', () => { diff --git a/code/core/src/core-server/utils/update-check.ts b/code/core/src/core-server/utils/update-check.ts index 93bf3ac96688..4d1fe03c685c 100644 --- a/code/core/src/core-server/utils/update-check.ts +++ b/code/core/src/core-server/utils/update-check.ts @@ -1,9 +1,11 @@ -import chalk from 'chalk'; +import { cache } from '@storybook/core/common'; +import type { VersionCheck } from '@storybook/core/types'; + import { colors } from '@storybook/core/node-logger'; + +import chalk from 'chalk'; import semver from 'semver'; import { dedent } from 'ts-dedent'; -import { cache } from '@storybook/core/common'; -import type { VersionCheck } from '@storybook/core/types'; const { STORYBOOK_VERSION_BASE = 'https://storybook.js.org', CI } = process.env; diff --git a/code/core/src/core-server/utils/warnOnIncompatibleAddons.ts b/code/core/src/core-server/utils/warnOnIncompatibleAddons.ts index a921f4ba3645..aaf64313fd61 100644 --- a/code/core/src/core-server/utils/warnOnIncompatibleAddons.ts +++ b/code/core/src/core-server/utils/warnOnIncompatibleAddons.ts @@ -1,7 +1,8 @@ import { logger } from '@storybook/core/node-logger'; + import { - getIncompatibleStorybookPackages, getIncompatiblePackagesSummary, + getIncompatibleStorybookPackages, } from '../../../../lib/cli-storybook/src/doctor/getIncompatibleStorybookPackages'; export const warnOnIncompatibleAddons = async (currentStorybookVersion: string) => { diff --git a/code/core/src/core-server/utils/warnWhenUsingArgTypesRegex.ts b/code/core/src/core-server/utils/warnWhenUsingArgTypesRegex.ts index c4ab825e51a0..b36755fcd6ab 100644 --- a/code/core/src/core-server/utils/warnWhenUsingArgTypesRegex.ts +++ b/code/core/src/core-server/utils/warnWhenUsingArgTypesRegex.ts @@ -1,11 +1,13 @@ -import type { PackageJson, StorybookConfig } from '@storybook/core/types'; import { getConfigInfo } from '@storybook/core/common'; -import { readFile } from 'fs-extra'; +import type { PackageJson, StorybookConfig } from '@storybook/core/types'; + +import { babelParse } from '@storybook/core/csf-tools'; + import * as babel from '@babel/core'; import type { BabelFile } from '@babel/core'; -import { babelParse } from '@storybook/core/csf-tools'; -import { dedent } from 'ts-dedent'; import chalk from 'chalk'; +import { readFile } from 'fs-extra'; +import { dedent } from 'ts-dedent'; export async function warnWhenUsingArgTypesRegex( packageJson: PackageJson, diff --git a/code/core/src/core-server/utils/watch-story-specifiers.test.ts b/code/core/src/core-server/utils/watch-story-specifiers.test.ts index 7d93002ab37f..0a9f3f367ff3 100644 --- a/code/core/src/core-server/utils/watch-story-specifiers.test.ts +++ b/code/core/src/core-server/utils/watch-story-specifiers.test.ts @@ -1,6 +1,9 @@ -import { describe, afterEach, it, expect, vi } from 'vitest'; -import { normalizeStoriesEntry } from '@storybook/core/common'; import path from 'node:path'; + +import { afterEach, describe, expect, it, vi } from 'vitest'; + +import { normalizeStoriesEntry } from '@storybook/core/common'; + import Watchpack from 'watchpack'; import { watchStorySpecifiers } from './watch-story-specifiers'; diff --git a/code/core/src/core-server/utils/watch-story-specifiers.ts b/code/core/src/core-server/utils/watch-story-specifiers.ts index 068d626d8ad8..e7fba3290a79 100644 --- a/code/core/src/core-server/utils/watch-story-specifiers.ts +++ b/code/core/src/core-server/utils/watch-story-specifiers.ts @@ -1,10 +1,11 @@ -import Watchpack from 'watchpack'; -import slash from 'slash'; import fs from 'node:fs'; import path from 'node:path'; -import type { NormalizedStoriesSpecifier, Path } from '@storybook/core/types'; import { commonGlobOptions } from '@storybook/core/common'; +import type { NormalizedStoriesSpecifier, Path } from '@storybook/core/types'; + +import slash from 'slash'; +import Watchpack from 'watchpack'; const isDirectory = (directory: Path) => { try { diff --git a/code/core/src/core-server/utils/watchConfig.ts b/code/core/src/core-server/utils/watchConfig.ts index 614504a1b958..bf8e055c8ced 100644 --- a/code/core/src/core-server/utils/watchConfig.ts +++ b/code/core/src/core-server/utils/watchConfig.ts @@ -1,6 +1,7 @@ -import Watchpack from 'watchpack'; import type { Path } from '@storybook/core/types'; +import Watchpack from 'watchpack'; + // copied from './watch-story-specifiers.ts' /** Watch the .storybook dir for changes */ export function watchConfig( diff --git a/code/core/src/core-server/utils/whats-new.ts b/code/core/src/core-server/utils/whats-new.ts index 024889025d00..324680c8e0c4 100644 --- a/code/core/src/core-server/utils/whats-new.ts +++ b/code/core/src/core-server/utils/whats-new.ts @@ -1,19 +1,22 @@ -import fs from 'fs-extra'; -import { logger } from '@storybook/core/node-logger'; -import { telemetry } from '@storybook/core/telemetry'; +import type { Channel } from '@storybook/core/channels'; import { findConfigFile } from '@storybook/core/common'; +import { telemetry } from '@storybook/core/telemetry'; import type { CoreConfig, Options } from '@storybook/core/types'; -import { printConfig, readConfig } from '@storybook/core/csf-tools'; -import type { Channel } from '@storybook/core/channels'; + import type { WhatsNewCache, WhatsNewData } from '@storybook/core/core-events'; import { REQUEST_WHATS_NEW_DATA, RESULT_WHATS_NEW_DATA, - TELEMETRY_ERROR, SET_WHATS_NEW_CACHE, + TELEMETRY_ERROR, TOGGLE_WHATS_NEW_NOTIFICATIONS, } from '@storybook/core/core-events'; +import { printConfig, readConfig } from '@storybook/core/csf-tools'; +import { logger } from '@storybook/core/node-logger'; + +import fs from 'fs-extra'; import invariant from 'tiny-invariant'; + import { sendTelemetryError } from '../withTelemetry'; export type OptionsWithRequiredCache = Exclude & Required>; diff --git a/code/core/src/core-server/withTelemetry.test.ts b/code/core/src/core-server/withTelemetry.test.ts index 6c085b6dc9e9..6c0628ec4e1e 100644 --- a/code/core/src/core-server/withTelemetry.test.ts +++ b/code/core/src/core-server/withTelemetry.test.ts @@ -1,7 +1,9 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest'; + +import { cache, loadAllPresets } from '@storybook/core/common'; +import { oneWayHash, telemetry } from '@storybook/core/telemetry'; + import prompts from 'prompts'; -import { describe, beforeEach, it, expect, vi } from 'vitest'; -import { loadAllPresets, cache } from '@storybook/core/common'; -import { telemetry, oneWayHash } from '@storybook/core/telemetry'; import { getErrorLevel, sendTelemetryError, withTelemetry } from './withTelemetry'; diff --git a/code/core/src/core-server/withTelemetry.ts b/code/core/src/core-server/withTelemetry.ts index 7be18cbe15fd..af38bed50a23 100644 --- a/code/core/src/core-server/withTelemetry.ts +++ b/code/core/src/core-server/withTelemetry.ts @@ -1,10 +1,12 @@ -import prompts from 'prompts'; -import type { CLIOptions } from '@storybook/core/types'; -import { loadAllPresets, cache } from '@storybook/core/common'; -import { telemetry, getPrecedingUpgrade, oneWayHash } from '@storybook/core/telemetry'; +import { cache, loadAllPresets } from '@storybook/core/common'; +import { getPrecedingUpgrade, oneWayHash, telemetry } from '@storybook/core/telemetry'; import type { EventType } from '@storybook/core/telemetry'; +import type { CLIOptions } from '@storybook/core/types'; + import { logger } from '@storybook/core/node-logger'; +import prompts from 'prompts'; + type TelemetryOptions = { cliOptions: CLIOptions; presetOptions?: Parameters[0]; diff --git a/code/core/src/csf-tools/ConfigFile.test.ts b/code/core/src/csf-tools/ConfigFile.test.ts index b43e98c93d53..9846837cac44 100644 --- a/code/core/src/csf-tools/ConfigFile.test.ts +++ b/code/core/src/csf-tools/ConfigFile.test.ts @@ -1,5 +1,7 @@ +import { describe, expect, it } from 'vitest'; + import { dedent } from 'ts-dedent'; -import { describe, it, expect } from 'vitest'; + import { loadConfig, printConfig } from './ConfigFile'; import { babelPrint } from './babelParse'; diff --git a/code/core/src/csf-tools/ConfigFile.ts b/code/core/src/csf-tools/ConfigFile.ts index b13e42175a45..a56e3ecf098e 100644 --- a/code/core/src/csf-tools/ConfigFile.ts +++ b/code/core/src/csf-tools/ConfigFile.ts @@ -1,16 +1,15 @@ /* eslint-disable no-underscore-dangle */ import { readFile, writeFile } from 'node:fs/promises'; -import { dedent } from 'ts-dedent'; -import * as t from '@babel/types'; import bg from '@babel/generator'; import bt from '@babel/traverse'; - +import * as t from '@babel/types'; import type { Options } from 'recast'; import * as recast from 'recast'; +import { dedent } from 'ts-dedent'; -import { babelParse } from './babelParse'; import type { PrintResultType } from './PrintResultType'; +import { babelParse } from './babelParse'; // @ts-expect-error (needed due to it's use of `exports.default`) const traverse = (bt.default || bt) as typeof bt; diff --git a/code/core/src/csf-tools/CsfFile.test.ts b/code/core/src/csf-tools/CsfFile.test.ts index 34be1e2dbbf8..f90f25d209f2 100644 --- a/code/core/src/csf-tools/CsfFile.test.ts +++ b/code/core/src/csf-tools/CsfFile.test.ts @@ -1,8 +1,10 @@ /* eslint-disable no-underscore-dangle */ -import { dedent } from 'ts-dedent'; -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import yaml from 'js-yaml'; -import { loadCsf, isModuleMock } from './CsfFile'; +import { dedent } from 'ts-dedent'; + +import { isModuleMock, loadCsf } from './CsfFile'; expect.addSnapshotSerializer({ print: (val: any) => yaml.dump(val).trimEnd(), diff --git a/code/core/src/csf-tools/CsfFile.ts b/code/core/src/csf-tools/CsfFile.ts index 70d9b5b10067..de422f321333 100644 --- a/code/core/src/csf-tools/CsfFile.ts +++ b/code/core/src/csf-tools/CsfFile.ts @@ -1,26 +1,26 @@ /* eslint-disable no-underscore-dangle */ import { readFile, writeFile } from 'node:fs/promises'; -import { dedent } from 'ts-dedent'; - -import * as t from '@babel/types'; -import bg, { type GeneratorOptions } from '@babel/generator'; -import bt from '@babel/traverse'; -import * as recast from 'recast'; - -import { toId, isExportStory, storyNameFromExport } from '@storybook/csf'; import type { - Tag, - StoryAnnotations, ComponentAnnotations, - IndexedCSFFile, IndexInput, IndexInputStats, + IndexedCSFFile, + StoryAnnotations, + Tag, } from '@storybook/core/types'; +import { isExportStory, storyNameFromExport, toId } from '@storybook/csf'; + +import bg, { type GeneratorOptions } from '@babel/generator'; +import bt from '@babel/traverse'; +import * as t from '@babel/types'; +import * as recast from 'recast'; import type { Options } from 'recast'; +import { dedent } from 'ts-dedent'; + +import type { PrintResultType } from './PrintResultType'; import { babelParse } from './babelParse'; import { findVarInitialization } from './findVarInitialization'; -import type { PrintResultType } from './PrintResultType'; // @ts-expect-error (needed due to it's use of `exports.default`) const traverse = (bt.default || bt) as typeof bt; diff --git a/code/core/src/csf-tools/babelParse.ts b/code/core/src/csf-tools/babelParse.ts index 9e3aaf8b53de..c802734ef675 100644 --- a/code/core/src/csf-tools/babelParse.ts +++ b/code/core/src/csf-tools/babelParse.ts @@ -1,7 +1,7 @@ -import type * as t from '@babel/types'; import * as babelParser from '@babel/parser'; -import * as recast from 'recast'; import type { ParserOptions } from '@babel/parser'; +import type * as t from '@babel/types'; +import * as recast from 'recast'; function parseWithFlowOrTypescript(source: string, parserOptions: babelParser.ParserOptions) { const flowCommentPattern = /^\s*\/\/\s*@flow/; diff --git a/code/core/src/csf-tools/enrichCsf.test.ts b/code/core/src/csf-tools/enrichCsf.test.ts index 562cacd8c04b..e8c0ce6250eb 100644 --- a/code/core/src/csf-tools/enrichCsf.test.ts +++ b/code/core/src/csf-tools/enrichCsf.test.ts @@ -1,6 +1,8 @@ /* eslint-disable no-underscore-dangle */ +import { describe, expect, it } from 'vitest'; + import { dedent } from 'ts-dedent'; -import { describe, it, expect } from 'vitest'; + import { formatCsf, loadCsf } from './CsfFile'; import type { EnrichCsfOptions } from './enrichCsf'; import { enrichCsf, extractSource } from './enrichCsf'; diff --git a/code/core/src/csf-tools/enrichCsf.ts b/code/core/src/csf-tools/enrichCsf.ts index dc267458854d..b14e146b1d31 100644 --- a/code/core/src/csf-tools/enrichCsf.ts +++ b/code/core/src/csf-tools/enrichCsf.ts @@ -1,7 +1,7 @@ /* eslint-disable no-underscore-dangle */ +import bg from '@babel/generator'; import * as t from '@babel/types'; -import bg from '@babel/generator'; import type { CsfFile } from './CsfFile'; // @ts-expect-error (needed due to it's use of `exports.default`) diff --git a/code/core/src/csf-tools/getStorySortParameter.test.ts b/code/core/src/csf-tools/getStorySortParameter.test.ts index b2672bb0198c..565e0e10fdf2 100644 --- a/code/core/src/csf-tools/getStorySortParameter.test.ts +++ b/code/core/src/csf-tools/getStorySortParameter.test.ts @@ -1,5 +1,7 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { dedent } from 'ts-dedent'; + import { getStorySortParameter } from './getStorySortParameter'; describe('getStorySortParameter', () => { diff --git a/code/core/src/csf-tools/getStorySortParameter.ts b/code/core/src/csf-tools/getStorySortParameter.ts index 07202029aba7..7766b114935f 100644 --- a/code/core/src/csf-tools/getStorySortParameter.ts +++ b/code/core/src/csf-tools/getStorySortParameter.ts @@ -1,8 +1,8 @@ -import * as t from '@babel/types'; -import bt from '@babel/traverse'; import bg from '@babel/generator'; - +import bt from '@babel/traverse'; +import * as t from '@babel/types'; import { dedent } from 'ts-dedent'; + import { babelParse } from './babelParse'; import { findVarInitialization } from './findVarInitialization'; diff --git a/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/arrays.js b/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/arrays.js index 0f1ebcdae092..b3cb9649b70c 100644 --- a/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/arrays.js +++ b/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/arrays.js @@ -1,4 +1,5 @@ import React from 'react'; + import PropTypes from 'prop-types'; export const Component = (props) => <>JSON.stringify(props); diff --git a/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/enums.js b/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/enums.js index d8baae693125..2bfa6a5e7417 100644 --- a/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/enums.js +++ b/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/enums.js @@ -1,4 +1,5 @@ import React from 'react'; + import PropTypes from 'prop-types'; export const Component = (props) => <>JSON.stringify(props); diff --git a/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/misc.js b/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/misc.js index e662474d1ab1..a5e0d60dcf70 100644 --- a/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/misc.js +++ b/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/misc.js @@ -1,4 +1,5 @@ import React from 'react'; + import PropTypes from 'prop-types'; export const Component = (props) => <>JSON.stringify(props); diff --git a/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/objects.js b/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/objects.js index 09036cf88088..12d81862672a 100644 --- a/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/objects.js +++ b/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/objects.js @@ -1,4 +1,5 @@ import React from 'react'; + import PropTypes from 'prop-types'; export const Component = (props) => <>JSON.stringify(props); diff --git a/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/react.js b/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/react.js index fd54e9307663..0b772151166a 100644 --- a/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/react.js +++ b/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/react.js @@ -1,4 +1,5 @@ import React from 'react'; + import PropTypes from 'prop-types'; export const Component = (props) => <>JSON.stringify(props); diff --git a/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/scalars.js b/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/scalars.js index 7e74151596b0..c28a4e4bb991 100644 --- a/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/scalars.js +++ b/code/core/src/docs-tools/argTypes/convert/__testfixtures__/proptypes/scalars.js @@ -1,4 +1,5 @@ import React from 'react'; + import PropTypes from 'prop-types'; export const Component = (props) => <>JSON.stringify(props); diff --git a/code/core/src/docs-tools/argTypes/convert/convert.test.ts b/code/core/src/docs-tools/argTypes/convert/convert.test.ts index 3d33efd5ea73..a541f876e542 100644 --- a/code/core/src/docs-tools/argTypes/convert/convert.test.ts +++ b/code/core/src/docs-tools/argTypes/convert/convert.test.ts @@ -1,11 +1,13 @@ -import { describe, it, expect } from 'vitest'; -import mapValues from 'lodash/mapValues.js'; +import fs from 'node:fs'; + +import { describe, expect, it } from 'vitest'; + import { transformSync } from '@babel/core'; +import mapValues from 'lodash/mapValues.js'; import requireFromString from 'require-from-string'; -import fs from 'node:fs'; -import { convert } from './index'; import { normalizeNewlines } from '../utils'; +import { convert } from './index'; expect.addSnapshotSerializer({ print: (val: any) => JSON.stringify(val, null, 2), diff --git a/code/core/src/docs-tools/argTypes/convert/flow/convert.ts b/code/core/src/docs-tools/argTypes/convert/flow/convert.ts index 0166ccfb86da..fe5ecc6a8b7c 100644 --- a/code/core/src/docs-tools/argTypes/convert/flow/convert.ts +++ b/code/core/src/docs-tools/argTypes/convert/flow/convert.ts @@ -1,6 +1,8 @@ -import { UnknownArgTypesError } from '@storybook/core/preview-errors'; import type { SBType } from '@storybook/core/types'; -import type { FlowType, FlowSigType, FlowLiteralType } from './types'; + +import { UnknownArgTypesError } from '@storybook/core/preview-errors'; + +import type { FlowLiteralType, FlowSigType, FlowType } from './types'; const isLiteral = (type: FlowType): type is FlowLiteralType => type.name === 'literal'; const toEnumOption = (element: FlowLiteralType) => element.value.replace(/['|"]/g, ''); diff --git a/code/core/src/docs-tools/argTypes/convert/index.ts b/code/core/src/docs-tools/argTypes/convert/index.ts index 812fcf517896..1076e9950e97 100644 --- a/code/core/src/docs-tools/argTypes/convert/index.ts +++ b/code/core/src/docs-tools/argTypes/convert/index.ts @@ -1,9 +1,9 @@ import type { DocgenInfo } from '../docgen/types'; -import type { TSType } from './typescript'; -import { convert as tsConvert } from './typescript'; import type { FlowType } from './flow'; import { convert as flowConvert } from './flow'; import { convert as propTypesConvert } from './proptypes'; +import type { TSType } from './typescript'; +import { convert as tsConvert } from './typescript'; export const convert = (docgenInfo: DocgenInfo) => { const { type, tsType, flowType } = docgenInfo; diff --git a/code/core/src/docs-tools/argTypes/convert/proptypes/convert.ts b/code/core/src/docs-tools/argTypes/convert/proptypes/convert.ts index 895b275e244c..4934af202b49 100644 --- a/code/core/src/docs-tools/argTypes/convert/proptypes/convert.ts +++ b/code/core/src/docs-tools/argTypes/convert/proptypes/convert.ts @@ -1,7 +1,9 @@ -import mapValues from 'lodash/mapValues.js'; import type { SBType } from '@storybook/core/types'; -import type { PTType } from './types'; + +import mapValues from 'lodash/mapValues.js'; + import { parseLiteral } from '../utils'; +import type { PTType } from './types'; const SIGNATURE_REGEXP = /^\(.*\) => /; diff --git a/code/core/src/docs-tools/argTypes/convert/typescript/convert.ts b/code/core/src/docs-tools/argTypes/convert/typescript/convert.ts index 248dfba4f2b2..bfb8312d2043 100644 --- a/code/core/src/docs-tools/argTypes/convert/typescript/convert.ts +++ b/code/core/src/docs-tools/argTypes/convert/typescript/convert.ts @@ -1,7 +1,9 @@ -import { UnknownArgTypesError } from '@storybook/core/preview-errors'; import type { SBType } from '@storybook/core/types'; -import type { TSType, TSSigType } from './types'; + +import { UnknownArgTypesError } from '@storybook/core/preview-errors'; + import { parseLiteral } from '../utils'; +import type { TSSigType, TSType } from './types'; const convertSig = (type: TSSigType) => { switch (type.type) { diff --git a/code/core/src/docs-tools/argTypes/docgen/createPropDef.ts b/code/core/src/docs-tools/argTypes/docgen/createPropDef.ts index 4fd5b7f48b04..ea903a9378df 100644 --- a/code/core/src/docs-tools/argTypes/docgen/createPropDef.ts +++ b/code/core/src/docs-tools/argTypes/docgen/createPropDef.ts @@ -1,15 +1,12 @@ -import type { JsDocParam, PropDefaultValue } from './PropDef'; -import type { PropDef, DocgenInfo, DocgenType, DocgenPropDefaultValue } from './types'; -import { TypeSystem } from './types'; +import { convert } from '../convert'; import type { JsDocParsingResult } from '../jsdocParser'; - import { createSummaryValue } from '../utils'; - +import type { JsDocParam, PropDefaultValue } from './PropDef'; import { createFlowPropDef } from './flow/createPropDef'; -import { isDefaultValueBlacklisted } from './utils/defaultValue'; - import { createTsPropDef } from './typeScript/createPropDef'; -import { convert } from '../convert'; +import type { DocgenInfo, DocgenPropDefaultValue, DocgenType, PropDef } from './types'; +import { TypeSystem } from './types'; +import { isDefaultValueBlacklisted } from './utils/defaultValue'; export type PropDefFactory = ( propName: string, diff --git a/code/core/src/docs-tools/argTypes/docgen/extractDocgenProps.test.ts b/code/core/src/docs-tools/argTypes/docgen/extractDocgenProps.test.ts index 3a8cdc650bf1..83e8f09b8675 100644 --- a/code/core/src/docs-tools/argTypes/docgen/extractDocgenProps.test.ts +++ b/code/core/src/docs-tools/argTypes/docgen/extractDocgenProps.test.ts @@ -1,5 +1,5 @@ /* eslint-disable no-underscore-dangle */ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; import type { Component } from '../types'; import { extractComponentProps } from './extractDocgenProps'; diff --git a/code/core/src/docs-tools/argTypes/docgen/extractDocgenProps.ts b/code/core/src/docs-tools/argTypes/docgen/extractDocgenProps.ts index 3ed22e31d224..1a4d595ad844 100644 --- a/code/core/src/docs-tools/argTypes/docgen/extractDocgenProps.ts +++ b/code/core/src/docs-tools/argTypes/docgen/extractDocgenProps.ts @@ -1,12 +1,11 @@ -import type { Component } from '../types'; import type { ExtractedJsDoc } from '../jsdocParser'; import { parseJsDoc } from '../jsdocParser'; -import type { PropDef, DocgenInfo } from './types'; -import { TypeSystem } from './types'; -import { getDocgenSection, isValidDocgenSection, getDocgenDescription } from './utils'; - +import type { Component } from '../types'; import type { PropDefFactory } from './createPropDef'; import { getPropDefFactory } from './createPropDef'; +import type { DocgenInfo, PropDef } from './types'; +import { TypeSystem } from './types'; +import { getDocgenDescription, getDocgenSection, isValidDocgenSection } from './utils'; export interface ExtractedProp { propDef: PropDef; diff --git a/code/core/src/docs-tools/argTypes/docgen/flow/createDefaultValue.ts b/code/core/src/docs-tools/argTypes/docgen/flow/createDefaultValue.ts index 3bb55aec2c6c..00645488910a 100644 --- a/code/core/src/docs-tools/argTypes/docgen/flow/createDefaultValue.ts +++ b/code/core/src/docs-tools/argTypes/docgen/flow/createDefaultValue.ts @@ -1,7 +1,6 @@ +import { createSummaryValue, isTooLongForDefaultValueSummary } from '../../utils'; import type { PropDefaultValue } from '../PropDef'; import type { DocgenPropDefaultValue, DocgenPropType } from '../types'; - -import { createSummaryValue, isTooLongForDefaultValueSummary } from '../../utils'; import { isDefaultValueBlacklisted } from '../utils/defaultValue'; export function createDefaultValue( diff --git a/code/core/src/docs-tools/argTypes/docgen/flow/createPropDef.test.ts b/code/core/src/docs-tools/argTypes/docgen/flow/createPropDef.test.ts index 50cc5d8e95ee..95959caec2f1 100644 --- a/code/core/src/docs-tools/argTypes/docgen/flow/createPropDef.test.ts +++ b/code/core/src/docs-tools/argTypes/docgen/flow/createPropDef.test.ts @@ -1,6 +1,7 @@ -import { describe, it, expect } from 'vitest'; -import { createFlowPropDef } from './createPropDef'; +import { describe, expect, it } from 'vitest'; + import type { DocgenInfo } from '../types'; +import { createFlowPropDef } from './createPropDef'; const PROP_NAME = 'propName'; diff --git a/code/core/src/docs-tools/argTypes/docgen/flow/createPropDef.ts b/code/core/src/docs-tools/argTypes/docgen/flow/createPropDef.ts index edbad170e702..53c07e365513 100644 --- a/code/core/src/docs-tools/argTypes/docgen/flow/createPropDef.ts +++ b/code/core/src/docs-tools/argTypes/docgen/flow/createPropDef.ts @@ -1,8 +1,6 @@ import type { PropDefFactory } from '../createPropDef'; - -import { createType } from './createType'; - import { createDefaultValue } from './createDefaultValue'; +import { createType } from './createType'; export const createFlowPropDef: PropDefFactory = (propName, docgenInfo) => { const { flowType, description, required, defaultValue } = docgenInfo; diff --git a/code/core/src/docs-tools/argTypes/docgen/flow/createType.ts b/code/core/src/docs-tools/argTypes/docgen/flow/createType.ts index d4c4bb358f29..03a4dc7885f2 100644 --- a/code/core/src/docs-tools/argTypes/docgen/flow/createType.ts +++ b/code/core/src/docs-tools/argTypes/docgen/flow/createType.ts @@ -1,8 +1,7 @@ +import { createSummaryValue, isTooLongForTypeSummary } from '../../utils'; import type { PropType } from '../PropDef'; import type { DocgenFlowType } from '../types'; -import { createSummaryValue, isTooLongForTypeSummary } from '../../utils'; - enum FlowTypesType { UNION = 'union', SIGNATURE = 'signature', diff --git a/code/core/src/docs-tools/argTypes/docgen/typeScript/createDefaultValue.ts b/code/core/src/docs-tools/argTypes/docgen/typeScript/createDefaultValue.ts index 79dc5bcc1c55..de1d5335063e 100644 --- a/code/core/src/docs-tools/argTypes/docgen/typeScript/createDefaultValue.ts +++ b/code/core/src/docs-tools/argTypes/docgen/typeScript/createDefaultValue.ts @@ -1,7 +1,6 @@ +import { createSummaryValue } from '../../utils'; import type { PropDefaultValue } from '../PropDef'; import type { DocgenInfo } from '../types'; - -import { createSummaryValue } from '../../utils'; import { isDefaultValueBlacklisted } from '../utils/defaultValue'; export function createDefaultValue({ defaultValue }: DocgenInfo): PropDefaultValue | null { diff --git a/code/core/src/docs-tools/argTypes/docgen/typeScript/createPropDef.test.ts b/code/core/src/docs-tools/argTypes/docgen/typeScript/createPropDef.test.ts index 12fe6c24b514..e816d87ecc1e 100644 --- a/code/core/src/docs-tools/argTypes/docgen/typeScript/createPropDef.test.ts +++ b/code/core/src/docs-tools/argTypes/docgen/typeScript/createPropDef.test.ts @@ -1,6 +1,7 @@ -import { describe, it, expect } from 'vitest'; -import { createTsPropDef } from './createPropDef'; +import { describe, expect, it } from 'vitest'; + import type { DocgenInfo } from '../types'; +import { createTsPropDef } from './createPropDef'; const PROP_NAME = 'propName'; diff --git a/code/core/src/docs-tools/argTypes/docgen/typeScript/createPropDef.ts b/code/core/src/docs-tools/argTypes/docgen/typeScript/createPropDef.ts index c6a7f904e3b0..fd81a7a6ed69 100644 --- a/code/core/src/docs-tools/argTypes/docgen/typeScript/createPropDef.ts +++ b/code/core/src/docs-tools/argTypes/docgen/typeScript/createPropDef.ts @@ -1,8 +1,6 @@ import type { PropDefFactory } from '../createPropDef'; - -import { createType } from './createType'; - import { createDefaultValue } from './createDefaultValue'; +import { createType } from './createType'; export const createTsPropDef: PropDefFactory = (propName, docgenInfo) => { const { description, required } = docgenInfo; diff --git a/code/core/src/docs-tools/argTypes/docgen/typeScript/createType.ts b/code/core/src/docs-tools/argTypes/docgen/typeScript/createType.ts index af37d97e1dc0..c7408df13b39 100644 --- a/code/core/src/docs-tools/argTypes/docgen/typeScript/createType.ts +++ b/code/core/src/docs-tools/argTypes/docgen/typeScript/createType.ts @@ -1,8 +1,7 @@ +import { createSummaryValue } from '../../utils'; import type { PropType } from '../PropDef'; import type { DocgenInfo } from '../types'; -import { createSummaryValue } from '../../utils'; - export function createType({ tsType, required }: DocgenInfo): PropType | null { // A type could be null if a defaultProp has been provided without a type definition. if (tsType == null) { diff --git a/code/core/src/docs-tools/argTypes/docgen/types.ts b/code/core/src/docs-tools/argTypes/docgen/types.ts index dc059af40ed5..9639be964e00 100644 --- a/code/core/src/docs-tools/argTypes/docgen/types.ts +++ b/code/core/src/docs-tools/argTypes/docgen/types.ts @@ -1,6 +1,7 @@ import type { StrictArgTypes } from '@storybook/core/types'; -import type { PropDef } from './PropDef'; + import type { Component } from '../types'; +import type { PropDef } from './PropDef'; export type PropsExtractor = (component: Component) => { rows?: PropDef[] } | null; diff --git a/code/core/src/docs-tools/argTypes/docgen/utils/docgenInfo.ts b/code/core/src/docs-tools/argTypes/docgen/utils/docgenInfo.ts index 6d1a7005ca0c..03cd442cf805 100644 --- a/code/core/src/docs-tools/argTypes/docgen/utils/docgenInfo.ts +++ b/code/core/src/docs-tools/argTypes/docgen/utils/docgenInfo.ts @@ -1,5 +1,4 @@ /* eslint-disable no-underscore-dangle */ - import type { Component } from '../../types'; import { str } from './string'; diff --git a/code/core/src/docs-tools/argTypes/enhanceArgTypes.test.ts b/code/core/src/docs-tools/argTypes/enhanceArgTypes.test.ts index a3a83ab2c93c..55b70ef2ea52 100644 --- a/code/core/src/docs-tools/argTypes/enhanceArgTypes.test.ts +++ b/code/core/src/docs-tools/argTypes/enhanceArgTypes.test.ts @@ -1,5 +1,7 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import type { ArgTypes, StrictInputType } from '@storybook/core/types'; + import { enhanceArgTypes } from './enhanceArgTypes'; expect.addSnapshotSerializer({ diff --git a/code/core/src/docs-tools/argTypes/enhanceArgTypes.ts b/code/core/src/docs-tools/argTypes/enhanceArgTypes.ts index 09736e160ce1..96cc2ce44d67 100644 --- a/code/core/src/docs-tools/argTypes/enhanceArgTypes.ts +++ b/code/core/src/docs-tools/argTypes/enhanceArgTypes.ts @@ -1,4 +1,5 @@ import type { Renderer, StoryContextForEnhancers } from '@storybook/core/types'; + import { combineParameters } from '@storybook/core/preview-api'; export const enhanceArgTypes = ( diff --git a/code/core/src/docs-tools/argTypes/jsdocParser.test.ts b/code/core/src/docs-tools/argTypes/jsdocParser.test.ts index e0f83617605d..899736513476 100644 --- a/code/core/src/docs-tools/argTypes/jsdocParser.test.ts +++ b/code/core/src/docs-tools/argTypes/jsdocParser.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { parseJsDoc } from './jsdocParser'; describe('parseJsDoc', () => { diff --git a/code/core/src/docs-tools/argTypes/jsdocParser.ts b/code/core/src/docs-tools/argTypes/jsdocParser.ts index 0990865a14c4..887bab58c719 100644 --- a/code/core/src/docs-tools/argTypes/jsdocParser.ts +++ b/code/core/src/docs-tools/argTypes/jsdocParser.ts @@ -1,11 +1,12 @@ import type { Block, Spec } from 'comment-parser'; -import type { RootResult as JSDocType } from 'jsdoc-type-pratt-parser'; import { parse as parseJSDoc } from 'comment-parser'; +import type { RootResult as JSDocType } from 'jsdoc-type-pratt-parser'; import { parse as parseJSDocType, - transform as transformJSDocType, stringifyRules, + transform as transformJSDocType, } from 'jsdoc-type-pratt-parser'; + import type { JsDocParam, JsDocReturns } from './docgen'; export interface ExtractedJsDocParam extends JsDocParam { diff --git a/code/core/src/docs-tools/argTypes/utils.test.ts b/code/core/src/docs-tools/argTypes/utils.test.ts index fc0a204a531c..4ebfba015844 100644 --- a/code/core/src/docs-tools/argTypes/utils.test.ts +++ b/code/core/src/docs-tools/argTypes/utils.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { createSummaryValue } from './utils'; describe('createSummaryValue', () => { diff --git a/code/core/src/manager-api/context.ts b/code/core/src/manager-api/context.ts index c0e2053c4ff0..2344d8361ac6 100644 --- a/code/core/src/manager-api/context.ts +++ b/code/core/src/manager-api/context.ts @@ -1,4 +1,5 @@ import { createContext as ReactCreateContext } from 'react'; + import type { Combo } from './root'; export const createContext = ({ api, state }: Combo) => ReactCreateContext({ api, state }); diff --git a/code/core/src/manager-api/initial-state.ts b/code/core/src/manager-api/initial-state.ts index fa862a9b5892..583944b81be8 100644 --- a/code/core/src/manager-api/initial-state.ts +++ b/code/core/src/manager-api/initial-state.ts @@ -1,5 +1,4 @@ import merge from './lib/merge'; - import type { State } from './root'; interface Addition { diff --git a/code/core/src/manager-api/lib/addons.ts b/code/core/src/manager-api/lib/addons.ts index c463a9ca4744..f782e80713ed 100644 --- a/code/core/src/manager-api/lib/addons.ts +++ b/code/core/src/manager-api/lib/addons.ts @@ -1,23 +1,24 @@ -import { global } from '@storybook/global'; - import type { Channel } from '@storybook/core/channels'; -import { SET_CONFIG } from '@storybook/core/core-events'; import type { + Addon_BaseType, Addon_Collection, Addon_Config, Addon_Elements, Addon_Loaders, - Addon_Type, - Addon_BaseType, Addon_PageType, + Addon_SidebarBottomType, + Addon_SidebarTopType, + Addon_Type, Addon_Types, Addon_TypesMapping, Addon_WrapperType, - Addon_SidebarBottomType, - Addon_SidebarTopType, } from '@storybook/core/types'; import { Addon_TypesEnum } from '@storybook/core/types'; +import { global } from '@storybook/global'; + import { logger } from '@storybook/core/client-logger'; +import { SET_CONFIG } from '@storybook/core/core-events'; + import type { API } from '../root'; import { mockChannel } from './storybook-channel-mock'; diff --git a/code/core/src/manager-api/lib/events.ts b/code/core/src/manager-api/lib/events.ts index b896961187c3..f964626ac8ef 100644 --- a/code/core/src/manager-api/lib/events.ts +++ b/code/core/src/manager-api/lib/events.ts @@ -1,7 +1,7 @@ -import { logger } from '@storybook/core/client-logger'; - import type { API_ComposedRef } from '@storybook/core/types'; +import { logger } from '@storybook/core/client-logger'; + import { getSourceType } from '../modules/refs'; import type { API } from '../root'; diff --git a/code/core/src/manager-api/lib/merge.ts b/code/core/src/manager-api/lib/merge.ts index e6b7eabf8e9e..ec4c474942b0 100644 --- a/code/core/src/manager-api/lib/merge.ts +++ b/code/core/src/manager-api/lib/merge.ts @@ -1,8 +1,8 @@ -import mergeWith from 'lodash/mergeWith.js'; -import isEqual from 'lodash/isEqual.js'; - import { logger } from '@storybook/core/client-logger'; +import isEqual from 'lodash/isEqual.js'; +import mergeWith from 'lodash/mergeWith.js'; + export default (a: TObj, b: Partial) => mergeWith({}, a, b, (objValue: TObj, srcValue: Partial) => { if (Array.isArray(srcValue) && Array.isArray(objValue)) { diff --git a/code/core/src/manager-api/lib/shortcut.ts b/code/core/src/manager-api/lib/shortcut.ts index 9ca5b2d7afe5..0db5c65f6596 100644 --- a/code/core/src/manager-api/lib/shortcut.ts +++ b/code/core/src/manager-api/lib/shortcut.ts @@ -1,4 +1,5 @@ import { global } from '@storybook/global'; + import type { API_KeyCollection } from '../modules/shortcuts'; const { navigator } = global; diff --git a/code/core/src/manager-api/lib/store-setup.ts b/code/core/src/manager-api/lib/store-setup.ts index 805b3237ab0e..291898bede0a 100644 --- a/code/core/src/manager-api/lib/store-setup.ts +++ b/code/core/src/manager-api/lib/store-setup.ts @@ -1,5 +1,4 @@ /* eslint-disable no-underscore-dangle */ - import { parse, stringify } from 'telejson'; // setting up the store, overriding set and get to use telejson diff --git a/code/core/src/manager-api/lib/stories.test.ts b/code/core/src/manager-api/lib/stories.test.ts index 5f005eef9e26..76aaadd7f99d 100644 --- a/code/core/src/manager-api/lib/stories.test.ts +++ b/code/core/src/manager-api/lib/stories.test.ts @@ -1,11 +1,13 @@ -import { describe, it, expect } from 'vitest'; -import type { StoryIndexV2, StoryIndexV3, API_PreparedStoryIndex } from '@storybook/core/types'; +import { describe, expect, it } from 'vitest'; + +import type { API_PreparedStoryIndex, StoryIndexV2, StoryIndexV3 } from '@storybook/core/types'; + +import { mockEntries } from '../tests/mockStoriesEntries'; import { transformStoryIndexV2toV3, transformStoryIndexV3toV4, transformStoryIndexV4toV5, } from './stories'; -import { mockEntries } from '../tests/mockStoriesEntries'; const baseV2: StoryIndexV2['stories'][0] = { id: '1', diff --git a/code/core/src/manager-api/lib/stories.ts b/code/core/src/manager-api/lib/stories.ts index 52366345ca08..139b6acaf851 100644 --- a/code/core/src/manager-api/lib/stories.ts +++ b/code/core/src/manager-api/lib/stories.ts @@ -1,29 +1,30 @@ -import memoize from 'memoizerific'; -import { dedent } from 'ts-dedent'; -import countBy from 'lodash/countBy.js'; -import mapValues from 'lodash/mapValues.js'; -import { sanitize } from '@storybook/csf'; import type { - StoryId, - Parameters, - DocsOptions, - API_Provider, - SetStoriesStoryData, - API_PreparedStoryIndex, - StoryIndexV3, - IndexEntry, - API_RootEntry, - API_GroupEntry, API_ComponentEntry, - API_IndexHash, API_DocsEntry, - API_StoryEntry, + API_GroupEntry, API_HashEntry, + API_IndexHash, + API_PreparedStoryIndex, + API_Provider, + API_RootEntry, + API_StoryEntry, + DocsOptions, + IndexEntry, + Parameters, SetStoriesPayload, + SetStoriesStoryData, + StoryId, StoryIndexV2, + StoryIndexV3, } from '@storybook/core/types'; +import { sanitize } from '@storybook/csf'; + +import countBy from 'lodash/countBy.js'; +import mapValues from 'lodash/mapValues.js'; +import memoize from 'memoizerific'; +import { dedent } from 'ts-dedent'; -import { type API, combineParameters, type State } from '../root'; +import { type API, type State, combineParameters } from '../root'; import merge from './merge'; const TITLE_PATH_SEPARATOR = /\s*\/\s*/; diff --git a/code/core/src/manager-api/lib/types.tsx b/code/core/src/manager-api/lib/types.tsx index 2b7a31e2498c..1579954f7e17 100644 --- a/code/core/src/manager-api/lib/types.tsx +++ b/code/core/src/manager-api/lib/types.tsx @@ -1,5 +1,5 @@ -import type { API_ProviderData } from '@storybook/core/types'; import type { RouterData } from '@storybook/core/router'; +import type { API_ProviderData } from '@storybook/core/types'; import type { API, State } from '../root'; import type Store from '../store'; diff --git a/code/core/src/manager-api/modules/addons.ts b/code/core/src/manager-api/modules/addons.ts index 2cefd4d9b39c..61e65084f955 100644 --- a/code/core/src/manager-api/modules/addons.ts +++ b/code/core/src/manager-api/modules/addons.ts @@ -1,11 +1,12 @@ import type { + API_StateMerger, Addon_BaseType, Addon_Collection, Addon_Types, Addon_TypesMapping, - API_StateMerger, } from '@storybook/core/types'; import { Addon_TypesEnum } from '@storybook/core/types'; + import type { ModuleFn } from '../lib/types'; import type { Options } from '../store'; diff --git a/code/core/src/manager-api/modules/channel.ts b/code/core/src/manager-api/modules/channel.ts index 8fdc688cf81b..6621aafa2ea4 100644 --- a/code/core/src/manager-api/modules/channel.ts +++ b/code/core/src/manager-api/modules/channel.ts @@ -1,8 +1,8 @@ import type { Listener } from '@storybook/core/channels'; - import type { API_Provider } from '@storybook/core/types'; -import type { API } from '../root'; + import type { ModuleFn } from '../lib/types'; +import type { API } from '../root'; export interface SubAPI { /** diff --git a/code/core/src/manager-api/modules/globals.ts b/code/core/src/manager-api/modules/globals.ts index cd990975ad10..0d3c790cf411 100644 --- a/code/core/src/manager-api/modules/globals.ts +++ b/code/core/src/manager-api/modules/globals.ts @@ -1,16 +1,17 @@ -import { SET_GLOBALS, UPDATE_GLOBALS, GLOBALS_UPDATED } from '@storybook/core/core-events'; -import { logger } from '@storybook/core/client-logger'; -import { dequal as deepEqual } from 'dequal'; import type { - SetGlobalsPayload, - Globals, GlobalTypes, + Globals, GlobalsUpdatedPayload, + SetGlobalsPayload, } from '@storybook/core/types'; -import type { ModuleFn } from '../lib/types'; +import { logger } from '@storybook/core/client-logger'; +import { GLOBALS_UPDATED, SET_GLOBALS, UPDATE_GLOBALS } from '@storybook/core/core-events'; + +import { dequal as deepEqual } from 'dequal'; import { getEventMetadata } from '../lib/events'; +import type { ModuleFn } from '../lib/types'; export interface SubState { globals?: Globals; diff --git a/code/core/src/manager-api/modules/layout.ts b/code/core/src/manager-api/modules/layout.ts index 89bd0ab19afd..de5ea65e1f56 100644 --- a/code/core/src/manager-api/modules/layout.ts +++ b/code/core/src/manager-api/modules/layout.ts @@ -1,14 +1,16 @@ -import { global } from '@storybook/global'; -import pick from 'lodash/pick.js'; -import { dequal as deepEqual } from 'dequal'; +import type { ThemeVars } from '@storybook/core/theming'; import { create } from '@storybook/core/theming/create'; +import type { API_Layout, API_PanelPositions, API_UI } from '@storybook/core/types'; +import { global } from '@storybook/global'; + import { SET_CONFIG } from '@storybook/core/core-events'; -import type { ThemeVars } from '@storybook/core/theming'; -import type { API_Layout, API_PanelPositions, API_UI } from '@storybook/core/types'; +import { dequal as deepEqual } from 'dequal'; +import pick from 'lodash/pick.js'; + import merge from '../lib/merge'; -import type { State } from '../root'; import type { ModuleFn } from '../lib/types'; +import type { State } from '../root'; const { document } = global; diff --git a/code/core/src/manager-api/modules/notifications.ts b/code/core/src/manager-api/modules/notifications.ts index dcabddd628ec..c234191d0148 100644 --- a/code/core/src/manager-api/modules/notifications.ts +++ b/code/core/src/manager-api/modules/notifications.ts @@ -1,5 +1,7 @@ import type { API_Notification } from '@storybook/core/types'; + import partition from 'lodash/partition.js'; + import type { ModuleFn } from '../lib/types'; export interface SubState { diff --git a/code/core/src/manager-api/modules/provider.ts b/code/core/src/manager-api/modules/provider.ts index 730195392fcf..0e22115369e1 100644 --- a/code/core/src/manager-api/modules/provider.ts +++ b/code/core/src/manager-api/modules/provider.ts @@ -1,4 +1,5 @@ import type { API_IframeRenderer } from '@storybook/core/types'; + import type { ModuleFn } from '../lib/types'; export interface SubAPI { diff --git a/code/core/src/manager-api/modules/refs.ts b/code/core/src/manager-api/modules/refs.ts index 50901f281901..29b03eadf11c 100644 --- a/code/core/src/manager-api/modules/refs.ts +++ b/code/core/src/manager-api/modules/refs.ts @@ -1,21 +1,21 @@ -import { global } from '@storybook/global'; -import { dedent } from 'ts-dedent'; import type { API_ComposedRef, API_ComposedRefUpdate, + API_IndexHash, API_Refs, API_SetRefData, - SetStoriesStoryData, - API_IndexHash, API_StoryMapper, + SetStoriesStoryData, StoryIndex, } from '@storybook/core/types'; +import { global } from '@storybook/global'; + +import { dedent } from 'ts-dedent'; import { transformSetStoriesStoryDataToPreparedStoryIndex, transformStoryIndexToStoriesHash, } from '../lib/stories'; - import type { ModuleFn } from '../lib/types'; const { location, fetch } = global; diff --git a/code/core/src/manager-api/modules/settings.ts b/code/core/src/manager-api/modules/settings.ts index 24bd16c327d8..59fdab207063 100644 --- a/code/core/src/manager-api/modules/settings.ts +++ b/code/core/src/manager-api/modules/settings.ts @@ -1,4 +1,5 @@ import type { API_Settings, StoryId } from '@storybook/core/types'; + import type { ModuleFn } from '../lib/types'; export interface SubAPI { diff --git a/code/core/src/manager-api/modules/shortcuts.ts b/code/core/src/manager-api/modules/shortcuts.ts index e65a7767faa9..58d2c2d642d6 100644 --- a/code/core/src/manager-api/modules/shortcuts.ts +++ b/code/core/src/manager-api/modules/shortcuts.ts @@ -1,5 +1,6 @@ /* eslint-disable @typescript-eslint/naming-convention */ import { global } from '@storybook/global'; + import { FORCE_REMOUNT, PREVIEW_KEYDOWN, @@ -7,10 +8,9 @@ import { STORIES_EXPAND_ALL, } from '@storybook/core/core-events'; -import type { ModuleFn } from '../lib/types'; - import type { KeyboardEventLike } from '../lib/shortcut'; -import { shortcutMatchesShortcut, eventToShortcut } from '../lib/shortcut'; +import { eventToShortcut, shortcutMatchesShortcut } from '../lib/shortcut'; +import type { ModuleFn } from '../lib/types'; import { focusableUIElements } from './layout'; const { navigator, document } = global; diff --git a/code/core/src/manager-api/modules/stories.ts b/code/core/src/manager-api/modules/stories.ts index 23edae60ad95..20bfdee92db0 100644 --- a/code/core/src/manager-api/modules/stories.ts +++ b/code/core/src/manager-api/modules/stories.ts @@ -1,61 +1,60 @@ -import { global } from '@storybook/global'; -import { toId, sanitize } from '@storybook/csf'; import type { - StoryKind, - ComponentTitle, - StoryName, - StoryId, - Args, API_ComposedRef, + API_DocsEntry, + API_FilterFunction, API_HashEntry, + API_IndexHash, API_LeafEntry, + API_LoadedRefData, API_PreparedStoryIndex, - SetStoriesPayload, + API_StatusState, + API_StatusUpdate, API_StoryEntry, + API_ViewMode, + Args, + ComponentTitle, + DocsPreparedPayload, + SetStoriesPayload, + StoryId, StoryIndex, - API_LoadedRefData, - API_IndexHash, + StoryKind, + StoryName, StoryPreparedPayload, - DocsPreparedPayload, - API_DocsEntry, - API_ViewMode, - API_StatusState, - API_StatusUpdate, - API_FilterFunction, } from '@storybook/core/types'; +import { sanitize, toId } from '@storybook/csf'; +import { global } from '@storybook/global'; + +import { logger } from '@storybook/core/client-logger'; import { + CONFIG_ERROR, + CURRENT_STORY_WAS_SET, + DOCS_PREPARED, PRELOAD_ENTRIES, - STORY_PREPARED, - UPDATE_STORY_ARGS, RESET_STORY_ARGS, - STORY_ARGS_UPDATED, - STORY_CHANGED, SELECT_STORY, - SET_STORIES, + SET_CONFIG, + SET_CURRENT_STORY, SET_INDEX, - STORY_SPECIFIED, + SET_STORIES, + STORY_ARGS_UPDATED, + STORY_CHANGED, STORY_INDEX_INVALIDATED, - CONFIG_ERROR, - CURRENT_STORY_WAS_SET, STORY_MISSING, - DOCS_PREPARED, - SET_CURRENT_STORY, - SET_CONFIG, + STORY_PREPARED, + STORY_SPECIFIED, + UPDATE_STORY_ARGS, } from '@storybook/core/core-events'; -import { logger } from '@storybook/core/client-logger'; import { getEventMetadata } from '../lib/events'; - import { + addPreparedStories, denormalizeStoryParameters, - transformStoryIndexToStoriesHash, getComponentLookupList, getStoriesLookupList, - addPreparedStories, + transformStoryIndexToStoriesHash, } from '../lib/stories'; - -import type { ComposedRef } from '../root'; import type { ModuleFn } from '../lib/types'; +import type { ComposedRef } from '../root'; const { fetch } = global; const STORY_INDEX_PATH = './index.json'; diff --git a/code/core/src/manager-api/modules/url.ts b/code/core/src/manager-api/modules/url.ts index d69e194a6947..c5a23e57a4fc 100644 --- a/code/core/src/manager-api/modules/url.ts +++ b/code/core/src/manager-api/modules/url.ts @@ -1,16 +1,18 @@ +import type { NavigateOptions } from '@storybook/core/router'; +import { buildArgsParam, queryFromLocation } from '@storybook/core/router'; +import type { API_Layout, API_UI, Args } from '@storybook/core/types'; +import { global } from '@storybook/global'; + import { + GLOBALS_UPDATED, NAVIGATE_URL, - STORY_ARGS_UPDATED, SET_CURRENT_STORY, - GLOBALS_UPDATED, + STORY_ARGS_UPDATED, UPDATE_QUERY_PARAMS, } from '@storybook/core/core-events'; -import type { NavigateOptions } from '@storybook/core/router'; -import { queryFromLocation, buildArgsParam } from '@storybook/core/router'; + import { dequal as deepEqual } from 'dequal'; -import { global } from '@storybook/global'; -import type { API_Layout, API_UI, Args } from '@storybook/core/types'; import type { ModuleArgs, ModuleFn } from '../lib/types'; import { defaultLayoutState } from './layout'; diff --git a/code/core/src/manager-api/modules/versions.ts b/code/core/src/manager-api/modules/versions.ts index 16015cde837d..734ba0442838 100644 --- a/code/core/src/manager-api/modules/versions.ts +++ b/code/core/src/manager-api/modules/versions.ts @@ -1,11 +1,11 @@ +import type { API_UnknownEntries, API_Version, API_Versions } from '@storybook/core/types'; import { global } from '@storybook/global'; -import semver from 'semver'; -import memoize from 'memoizerific'; -import type { API_UnknownEntries, API_Version, API_Versions } from '@storybook/core/types'; -import { version as currentVersion } from '../version'; +import memoize from 'memoizerific'; +import semver from 'semver'; import type { ModuleFn } from '../lib/types'; +import { version as currentVersion } from '../version'; const { VERSIONCHECK } = global; diff --git a/code/core/src/manager-api/modules/whatsnew.tsx b/code/core/src/manager-api/modules/whatsnew.tsx index 71e6b9e03d85..7878f5920066 100644 --- a/code/core/src/manager-api/modules/whatsnew.tsx +++ b/code/core/src/manager-api/modules/whatsnew.tsx @@ -1,5 +1,8 @@ import React from 'react'; + import { global } from '@storybook/global'; +import { StorybookIcon } from '@storybook/icons'; + import type { WhatsNewCache, WhatsNewData } from '@storybook/core/core-events'; import { REQUEST_WHATS_NEW_DATA, @@ -7,8 +10,8 @@ import { SET_WHATS_NEW_CACHE, TOGGLE_WHATS_NEW_NOTIFICATIONS, } from '@storybook/core/core-events'; + import type { ModuleFn } from '../lib/types'; -import { StorybookIcon } from '@storybook/icons'; export type SubState = { whatsNewData?: WhatsNewData; diff --git a/code/core/src/manager-api/root.tsx b/code/core/src/manager-api/root.tsx index 8d23d1d8fcd2..0a1fad42c3e1 100644 --- a/code/core/src/manager-api/root.tsx +++ b/code/core/src/manager-api/root.tsx @@ -9,10 +9,10 @@ import React, { useMemo, useRef, } from 'react'; -import mergeWith from 'lodash/mergeWith.js'; + +import type { Listener } from '@storybook/core/channels'; +import type { RouterData } from '@storybook/core/router'; import type { - Args, - ArgTypes, API_ComponentEntry, API_ComposedRef, API_DocsEntry, @@ -26,49 +26,42 @@ import type { API_RootEntry, API_StateMerger, API_StoryEntry, + ArgTypes, + Args, + Globals, Parameters, StoryId, - Globals, } from '@storybook/core/types'; +import { deprecate } from '@storybook/core/client-logger'; import { - STORY_CHANGED, + SET_STORIES, SHARED_STATE_CHANGED, SHARED_STATE_SET, - SET_STORIES, + STORY_CHANGED, } from '@storybook/core/core-events'; -import type { RouterData } from '@storybook/core/router'; -import type { Listener } from '@storybook/core/channels'; -import { deprecate } from '@storybook/core/client-logger'; + +import mergeWith from 'lodash/mergeWith.js'; import { createContext } from './context'; -import type { Options } from './store'; -import Store from './store'; import getInitialState from './initial-state'; - -import * as provider from './modules/provider'; - +import { types } from './lib/addons'; +import type { ModuleFn } from './lib/types'; import * as addons from './modules/addons'; - import * as channel from './modules/channel'; - +import * as globals from './modules/globals'; +import * as layout from './modules/layout'; import * as notifications from './modules/notifications'; -import * as settings from './modules/settings'; - -import * as stories from './modules/stories'; - +import * as provider from './modules/provider'; import * as refs from './modules/refs'; -import * as layout from './modules/layout'; +import * as settings from './modules/settings'; import * as shortcuts from './modules/shortcuts'; - +import * as stories from './modules/stories'; import * as url from './modules/url'; import * as version from './modules/versions'; import * as whatsnew from './modules/whatsnew'; - -import * as globals from './modules/globals'; -import type { ModuleFn } from './lib/types'; - -import { types } from './lib/addons'; +import type { Options } from './store'; +import Store from './store'; export * from './lib/request-response'; export * from './lib/shortcut'; diff --git a/code/core/src/manager-api/store.ts b/code/core/src/manager-api/store.ts index ffb3b43dbc83..ca19eb4f4293 100644 --- a/code/core/src/manager-api/store.ts +++ b/code/core/src/manager-api/store.ts @@ -1,7 +1,7 @@ import type { StoreAPI } from 'store2'; import store from 'store2'; -import storeSetup from './lib/store-setup'; +import storeSetup from './lib/store-setup'; import type { State } from './root'; // setting up the store, overriding set and get to use telejson diff --git a/code/core/src/manager-api/tests/addons.test.js b/code/core/src/manager-api/tests/addons.test.js index 8d0928d9f82d..4d64ecc95224 100644 --- a/code/core/src/manager-api/tests/addons.test.js +++ b/code/core/src/manager-api/tests/addons.test.js @@ -1,5 +1,7 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import { Addon_TypesEnum as types } from '@storybook/core/types'; + import { init as initAddons } from '../modules/addons'; const PANELS = { diff --git a/code/core/src/manager-api/tests/events.test.ts b/code/core/src/manager-api/tests/events.test.ts index ac0c4ed7887f..9adc7a06eb1a 100644 --- a/code/core/src/manager-api/tests/events.test.ts +++ b/code/core/src/manager-api/tests/events.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import { getEventMetadata } from '../lib/events'; import type { API } from '../root'; diff --git a/code/core/src/manager-api/tests/globals.test.ts b/code/core/src/manager-api/tests/globals.test.ts index 52f3fa379472..96da32051f2b 100644 --- a/code/core/src/manager-api/tests/globals.test.ts +++ b/code/core/src/manager-api/tests/globals.test.ts @@ -1,20 +1,22 @@ -import { describe, beforeEach, it, expect, vi } from 'vitest'; -import { EventEmitter } from 'events'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; + +import type { GlobalsUpdatedPayload, SetGlobalsPayload } from '@storybook/core/types'; + +import { logger as _logger } from '@storybook/core/client-logger'; import { - SET_STORIES, + GLOBALS_UPDATED, SET_GLOBALS, + SET_STORIES, UPDATE_GLOBALS, - GLOBALS_UPDATED, } from '@storybook/core/core-events'; -import { logger as _logger } from '@storybook/core/client-logger'; -import type { API } from '../root'; -import type { SubAPI } from '../modules/globals'; -import { init as initModule } from '../modules/globals'; -import type { ModuleArgs } from '../lib/types'; +import { EventEmitter } from 'events'; import { getEventMetadata as _getEventData } from '../lib/events'; -import type { GlobalsUpdatedPayload, SetGlobalsPayload } from '@storybook/core/types'; +import type { ModuleArgs } from '../lib/types'; +import type { SubAPI } from '../modules/globals'; +import { init as initModule } from '../modules/globals'; +import type { API } from '../root'; const getEventMetadata = vi.mocked(_getEventData, true); const logger = vi.mocked(_logger, true); diff --git a/code/core/src/manager-api/tests/layout.test.ts b/code/core/src/manager-api/tests/layout.test.ts index a9ced49e1ac3..7b1c7361f254 100644 --- a/code/core/src/manager-api/tests/layout.test.ts +++ b/code/core/src/manager-api/tests/layout.test.ts @@ -1,15 +1,17 @@ import type { Mock } from 'vitest'; -import { expect, describe, beforeEach, it, vi } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; import { themes } from '@storybook/core/theming'; import type { API_Provider } from '@storybook/core/types'; + import EventEmitter from 'events'; -import type { SubAPI, SubState } from '../modules/layout'; + +import type { ModuleArgs } from '../lib/types'; import type { SubState as AddonsSubState } from '../modules/addons'; +import type { SubAPI, SubState } from '../modules/layout'; import { defaultLayoutState, init as initLayout } from '../modules/layout'; -import type Store from '../store'; import type { API, State } from '../root'; -import type { ModuleArgs } from '../lib/types'; +import type Store from '../store'; describe('layout API', () => { let layoutApi: SubAPI; diff --git a/code/core/src/manager-api/tests/mockStoriesEntries.ts b/code/core/src/manager-api/tests/mockStoriesEntries.ts index 0bb2df381aa6..2bccab057186 100644 --- a/code/core/src/manager-api/tests/mockStoriesEntries.ts +++ b/code/core/src/manager-api/tests/mockStoriesEntries.ts @@ -1,4 +1,4 @@ -import type { StoryIndex, API_PreparedStoryIndex } from '@storybook/core/types'; +import type { API_PreparedStoryIndex, StoryIndex } from '@storybook/core/types'; export const mockEntries: StoryIndex['entries'] = { 'component-a--docs': { diff --git a/code/core/src/manager-api/tests/notifications.test.js b/code/core/src/manager-api/tests/notifications.test.js index 8d2005db6837..95ccbe1f1187 100644 --- a/code/core/src/manager-api/tests/notifications.test.js +++ b/code/core/src/manager-api/tests/notifications.test.js @@ -1,4 +1,5 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import { init as initNotifications } from '../modules/notifications'; describe('notifications API', () => { diff --git a/code/core/src/manager-api/tests/refs.test.ts b/code/core/src/manager-api/tests/refs.test.ts index 96d2b3b8d84f..c8d65baafc57 100644 --- a/code/core/src/manager-api/tests/refs.test.ts +++ b/code/core/src/manager-api/tests/refs.test.ts @@ -1,9 +1,11 @@ -import { describe, it, expect, vi } from 'vitest'; -import { global } from '@storybook/global'; +import { describe, expect, it, vi } from 'vitest'; + import type { StoryIndex } from '@storybook/core/types'; -import type { State } from '../root'; +import { global } from '@storybook/global'; + import { transformStoryIndexToStoriesHash } from '../lib/stories'; import { getSourceType, init as initRefs } from '../modules/refs'; +import type { State } from '../root'; import type Store from '../store'; const { fetch } = global; diff --git a/code/core/src/manager-api/tests/shortcut.test.js b/code/core/src/manager-api/tests/shortcut.test.js index 5b0db8e39672..d45d50afb182 100644 --- a/code/core/src/manager-api/tests/shortcut.test.js +++ b/code/core/src/manager-api/tests/shortcut.test.js @@ -2,6 +2,7 @@ import { describe, expect, it } from 'vitest'; import { global } from '@storybook/global'; + import { eventToShortcut, keyToSymbol } from '../lib/shortcut'; const { KeyboardEvent } = global; diff --git a/code/core/src/manager-api/tests/shortcuts.test.js b/code/core/src/manager-api/tests/shortcuts.test.js index 9aba57c756f7..be1efd4063d9 100644 --- a/code/core/src/manager-api/tests/shortcuts.test.js +++ b/code/core/src/manager-api/tests/shortcuts.test.js @@ -1,4 +1,5 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import { init as initShortcuts } from '../modules/shortcuts'; function createMockStore() { diff --git a/code/core/src/manager-api/tests/store.test.js b/code/core/src/manager-api/tests/store.test.js index c0f88f586409..e77bc1cd289e 100644 --- a/code/core/src/manager-api/tests/store.test.js +++ b/code/core/src/manager-api/tests/store.test.js @@ -1,6 +1,8 @@ -import { describe, it, expect, vi } from 'vitest'; -import store2 from 'store2'; +import { describe, expect, it, vi } from 'vitest'; + import flushPromises from 'flush-promises'; +import store2 from 'store2'; + import Store, { STORAGE_KEY } from '../store'; vi.mock('store2', () => ({ diff --git a/code/core/src/manager-api/tests/stories.test.ts b/code/core/src/manager-api/tests/stories.test.ts index ea02cdfd464b..16b5c926c9c2 100644 --- a/code/core/src/manager-api/tests/stories.test.ts +++ b/code/core/src/manager-api/tests/stories.test.ts @@ -1,30 +1,32 @@ import type { Mocked } from 'vitest'; -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + +import type { API_StoryEntry } from '@storybook/core/types'; +import { global } from '@storybook/global'; + import { - STORY_ARGS_UPDATED, - UPDATE_STORY_ARGS, + CONFIG_ERROR, + CURRENT_STORY_WAS_SET, + DOCS_PREPARED, RESET_STORY_ARGS, + SET_INDEX, SET_STORIES, - STORY_SPECIFIED, - STORY_PREPARED, + STORY_ARGS_UPDATED, STORY_INDEX_INVALIDATED, - CONFIG_ERROR, - SET_INDEX, - CURRENT_STORY_WAS_SET, STORY_MISSING, - DOCS_PREPARED, + STORY_PREPARED, + STORY_SPECIFIED, + UPDATE_STORY_ARGS, } from '@storybook/core/core-events'; + import { EventEmitter } from 'events'; -import { global } from '@storybook/global'; -import type { API_StoryEntry } from '@storybook/core/types'; import { getEventMetadata as getEventMetadataOriginal } from '../lib/events'; - +import type { ModuleArgs } from '../lib/types'; import { init as initStories } from '../modules/stories'; -import type Store from '../store'; import type { API, State } from '../root'; -import { mockEntries, docsEntries, preparedEntries, navigationEntries } from './mockStoriesEntries'; -import type { ModuleArgs } from '../lib/types'; +import type Store from '../store'; +import { docsEntries, mockEntries, navigationEntries, preparedEntries } from './mockStoriesEntries'; const mockGetEntries = vi.fn(); const fetch = vi.mocked(global.fetch); diff --git a/code/core/src/manager-api/tests/url.test.js b/code/core/src/manager-api/tests/url.test.js index a4a9de83ba75..a3612650530c 100644 --- a/code/core/src/manager-api/tests/url.test.js +++ b/code/core/src/manager-api/tests/url.test.js @@ -1,12 +1,13 @@ -import { describe, beforeEach, it, expect, vi } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; import { - SET_CURRENT_STORY, GLOBALS_UPDATED, + SET_CURRENT_STORY, UPDATE_QUERY_PARAMS, } from '@storybook/core/core-events'; import EventEmitter from 'events'; + import { init as initURL } from '../modules/url'; vi.mock('@storybook/core/client-logger'); diff --git a/code/core/src/manager-api/tests/versions.test.js b/code/core/src/manager-api/tests/versions.test.js index 4ed44dc50595..280deaeed2ae 100644 --- a/code/core/src/manager-api/tests/versions.test.js +++ b/code/core/src/manager-api/tests/versions.test.js @@ -1,4 +1,5 @@ -import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; + import { global } from '@storybook/global'; import { init as initVersions } from '../modules/versions'; diff --git a/code/core/src/manager/App.tsx b/code/core/src/manager/App.tsx index c4679ffe43ca..287f9736cc71 100644 --- a/code/core/src/manager/App.tsx +++ b/code/core/src/manager/App.tsx @@ -1,13 +1,14 @@ import type { ComponentProps } from 'react'; import React from 'react'; + import { Global, createGlobal } from '@storybook/core/theming'; import type { Addon_PageType } from '@storybook/core/types'; -import Sidebar from './container/Sidebar'; -import Preview from './container/Preview'; -import Panel from './container/Panel'; import { Layout } from './components/layout/Layout'; import { useLayout } from './components/layout/LayoutProvider'; +import Panel from './container/Panel'; +import Preview from './container/Preview'; +import Sidebar from './container/Sidebar'; type Props = { managerLayoutState: ComponentProps['managerLayoutState']; diff --git a/code/core/src/manager/FakeProvider.tsx b/code/core/src/manager/FakeProvider.tsx index 397a91b86a62..dc66dedf0f6f 100644 --- a/code/core/src/manager/FakeProvider.tsx +++ b/code/core/src/manager/FakeProvider.tsx @@ -1,6 +1,9 @@ import React from 'react'; + import { styled } from '@storybook/core/theming'; + import { addons } from '@storybook/core/manager-api'; + import Provider from './provider'; export class FakeProvider extends Provider { diff --git a/code/core/src/manager/README.md b/code/core/src/manager/README.md index c91e4b2cb06a..ff55e2830fdf 100644 --- a/code/core/src/manager/README.md +++ b/code/core/src/manager/README.md @@ -55,8 +55,8 @@ export default class MyProvider extends Provider { Then you need to initialize the UI like this: ```js -import global from 'global'; import { renderStorybookUI } from '@storybook/manager'; +import global from 'global'; import Provider from './provider'; const { document } = global; diff --git a/code/core/src/manager/__tests__/index.test.ts b/code/core/src/manager/__tests__/index.test.ts index ce85a45e293b..792484347ad1 100644 --- a/code/core/src/manager/__tests__/index.test.ts +++ b/code/core/src/manager/__tests__/index.test.ts @@ -1,6 +1,6 @@ // @vitest-environment happy-dom +import { describe, expect, it } from 'vitest'; -import { describe, it, expect } from 'vitest'; import { renderStorybookUI } from '..'; describe('Main API', () => { diff --git a/code/core/src/manager/components/layout/Layout.stories.tsx b/code/core/src/manager/components/layout/Layout.stories.tsx index 8282d8434587..6a133d6c492f 100644 --- a/code/core/src/manager/components/layout/Layout.stories.tsx +++ b/code/core/src/manager/components/layout/Layout.stories.tsx @@ -1,14 +1,16 @@ -import { action } from '@storybook/addon-actions'; import type { FC, PropsWithChildren } from 'react'; import React, { useState } from 'react'; +import { LocationProvider } from '@storybook/core/router'; import { styled } from '@storybook/core/theming'; import type { Meta, StoryObj } from '@storybook/react'; import { fn } from '@storybook/test'; + +import { action } from '@storybook/addon-actions'; + +import MobileNavigationStoriesMeta from '../mobile/navigation/MobileNavigation.stories'; import { Layout } from './Layout'; import { LayoutProvider } from './LayoutProvider'; -import { LocationProvider } from '@storybook/core/router'; -import MobileNavigationStoriesMeta from '../mobile/navigation/MobileNavigation.stories'; const PlaceholderBlock = styled.div({ width: '100%', diff --git a/code/core/src/manager/components/layout/Layout.tsx b/code/core/src/manager/components/layout/Layout.tsx index 82e6b532c9ae..a984a5a266d5 100644 --- a/code/core/src/manager/components/layout/Layout.tsx +++ b/code/core/src/manager/components/layout/Layout.tsx @@ -1,12 +1,14 @@ import React, { useEffect, useLayoutEffect, useState } from 'react'; + +import { Match } from '@storybook/core/router'; import { styled } from '@storybook/core/theming'; import type { API_Layout, API_ViewMode } from '@storybook/core/types'; -import { useDragging } from './useDragging'; -import { MobileNavigation } from '../mobile/navigation/MobileNavigation'; + import { MEDIA_DESKTOP_BREAKPOINT } from '../../constants'; -import { useLayout } from './LayoutProvider'; import { Notifications } from '../../container/Notifications'; -import { Match } from '@storybook/core/router'; +import { MobileNavigation } from '../mobile/navigation/MobileNavigation'; +import { useLayout } from './LayoutProvider'; +import { useDragging } from './useDragging'; interface InternalLayoutState { isDragging: boolean; diff --git a/code/core/src/manager/components/layout/LayoutProvider.tsx b/code/core/src/manager/components/layout/LayoutProvider.tsx index 81c342e0546c..88f3b7a781f6 100644 --- a/code/core/src/manager/components/layout/LayoutProvider.tsx +++ b/code/core/src/manager/components/layout/LayoutProvider.tsx @@ -1,7 +1,8 @@ import type { FC, PropsWithChildren } from 'react'; import React, { createContext, useContext, useMemo, useState } from 'react'; -import { useMediaQuery } from '../hooks/useMedia'; + import { BREAKPOINT } from '../../constants'; +import { useMediaQuery } from '../hooks/useMedia'; type LayoutContextType = { isMobileMenuOpen: boolean; diff --git a/code/core/src/manager/components/layout/useDragging.ts b/code/core/src/manager/components/layout/useDragging.ts index 1c00f516c234..a62f6c29e4ac 100644 --- a/code/core/src/manager/components/layout/useDragging.ts +++ b/code/core/src/manager/components/layout/useDragging.ts @@ -1,5 +1,6 @@ import type { Dispatch, SetStateAction } from 'react'; import { useEffect, useRef } from 'react'; + import type { LayoutState } from './Layout'; // the distance from the edge of the screen at which the panel/sidebar will snap to the edge diff --git a/code/core/src/manager/components/mobile/about/MobileAbout.stories.tsx b/code/core/src/manager/components/mobile/about/MobileAbout.stories.tsx index e552171cca4b..ee13d985f3cc 100644 --- a/code/core/src/manager/components/mobile/about/MobileAbout.stories.tsx +++ b/code/core/src/manager/components/mobile/about/MobileAbout.stories.tsx @@ -1,9 +1,12 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { ManagerContext } from '@storybook/core/manager-api'; import React, { useEffect } from 'react'; + +import type { Meta, StoryObj } from '@storybook/react'; import { within } from '@storybook/test'; -import { MobileAbout } from './MobileAbout'; + +import { ManagerContext } from '@storybook/core/manager-api'; + import { LayoutProvider, useLayout } from '../../layout/LayoutProvider'; +import { MobileAbout } from './MobileAbout'; /** * A helper component to open the about page via the MobileLayoutContext diff --git a/code/core/src/manager/components/mobile/about/MobileAbout.tsx b/code/core/src/manager/components/mobile/about/MobileAbout.tsx index 2b65bf59c5a0..a794ba00ea9f 100644 --- a/code/core/src/manager/components/mobile/about/MobileAbout.tsx +++ b/code/core/src/manager/components/mobile/about/MobileAbout.tsx @@ -1,12 +1,15 @@ import type { FC } from 'react'; import React, { useRef } from 'react'; -import { Transition, type TransitionStatus } from 'react-transition-group'; -import { styled } from '@storybook/core/theming'; + import { Link } from '@storybook/core/components'; +import { styled } from '@storybook/core/theming'; import { ArrowLeftIcon, GithubIcon, ShareAltIcon, StorybookIcon } from '@storybook/icons'; -import { UpgradeBlock } from '../../upgrade/UpgradeBlock'; + +import { Transition, type TransitionStatus } from 'react-transition-group'; + import { MOBILE_TRANSITION_DURATION } from '../../../constants'; import { useLayout } from '../../layout/LayoutProvider'; +import { UpgradeBlock } from '../../upgrade/UpgradeBlock'; export const MobileAbout: FC = () => { const { isMobileAboutOpen, setMobileAboutOpen } = useLayout(); diff --git a/code/core/src/manager/components/mobile/navigation/MobileAddonsDrawer.tsx b/code/core/src/manager/components/mobile/navigation/MobileAddonsDrawer.tsx index b17ec5e55c5e..def0c9e2bdf8 100644 --- a/code/core/src/manager/components/mobile/navigation/MobileAddonsDrawer.tsx +++ b/code/core/src/manager/components/mobile/navigation/MobileAddonsDrawer.tsx @@ -1,5 +1,6 @@ import type { FC, ReactNode } from 'react'; import React from 'react'; + import { styled } from '@storybook/core/theming'; interface MobileAddonsDrawerProps { diff --git a/code/core/src/manager/components/mobile/navigation/MobileMenuDrawer.tsx b/code/core/src/manager/components/mobile/navigation/MobileMenuDrawer.tsx index 8c3ac21152b6..8e3de4b51581 100644 --- a/code/core/src/manager/components/mobile/navigation/MobileMenuDrawer.tsx +++ b/code/core/src/manager/components/mobile/navigation/MobileMenuDrawer.tsx @@ -1,11 +1,14 @@ import type { FC } from 'react'; import React, { useRef } from 'react'; + import { styled } from '@storybook/core/theming'; + import { Transition } from 'react-transition-group'; import type { TransitionStatus } from 'react-transition-group/Transition'; -import { MobileAbout } from '../about/MobileAbout'; + import { MOBILE_TRANSITION_DURATION } from '../../../constants'; import { useLayout } from '../../layout/LayoutProvider'; +import { MobileAbout } from '../about/MobileAbout'; interface MobileMenuDrawerProps { children?: React.ReactNode; diff --git a/code/core/src/manager/components/mobile/navigation/MobileNavigation.stories.tsx b/code/core/src/manager/components/mobile/navigation/MobileNavigation.stories.tsx index 552556add58c..e445d73dea23 100644 --- a/code/core/src/manager/components/mobile/navigation/MobileNavigation.stories.tsx +++ b/code/core/src/manager/components/mobile/navigation/MobileNavigation.stories.tsx @@ -1,10 +1,14 @@ -import type { Meta, StoryObj } from '@storybook/react'; import React from 'react'; -import { ManagerContext } from '@storybook/core/manager-api'; + +import type { Meta, StoryObj } from '@storybook/react'; import { within } from '@storybook/test'; + +import { ManagerContext } from '@storybook/core/manager-api'; + import { startCase } from 'lodash'; -import { MobileNavigation } from './MobileNavigation'; + import { LayoutProvider, useLayout } from '../../layout/LayoutProvider'; +import { MobileNavigation } from './MobileNavigation'; const MockPanel = () => { const { setMobilePanelOpen } = useLayout(); diff --git a/code/core/src/manager/components/mobile/navigation/MobileNavigation.tsx b/code/core/src/manager/components/mobile/navigation/MobileNavigation.tsx index 963c56360f19..cef5b139b625 100644 --- a/code/core/src/manager/components/mobile/navigation/MobileNavigation.tsx +++ b/code/core/src/manager/components/mobile/navigation/MobileNavigation.tsx @@ -1,12 +1,15 @@ import type { FC } from 'react'; import React from 'react'; -import { styled } from '@storybook/core/theming'; + import { IconButton } from '@storybook/core/components'; -import { useStorybookApi, useStorybookState } from '@storybook/core/manager-api'; +import { styled } from '@storybook/core/theming'; import { BottomBarToggleIcon, MenuIcon } from '@storybook/icons'; -import { MobileMenuDrawer } from './MobileMenuDrawer'; -import { MobileAddonsDrawer } from './MobileAddonsDrawer'; + +import { useStorybookApi, useStorybookState } from '@storybook/core/manager-api'; + import { useLayout } from '../../layout/LayoutProvider'; +import { MobileAddonsDrawer } from './MobileAddonsDrawer'; +import { MobileMenuDrawer } from './MobileMenuDrawer'; interface MobileNavigationProps { menu?: React.ReactNode; diff --git a/code/core/src/manager/components/notifications/NotificationItem.stories.tsx b/code/core/src/manager/components/notifications/NotificationItem.stories.tsx index 93588e4a5353..1914a0fe7987 100644 --- a/code/core/src/manager/components/notifications/NotificationItem.stories.tsx +++ b/code/core/src/manager/components/notifications/NotificationItem.stories.tsx @@ -1,15 +1,18 @@ import React from 'react'; -import { action } from '@storybook/addon-actions'; + import { LocationProvider } from '@storybook/core/router'; -import type { Meta, StoryObj } from '@storybook/react'; -import NotificationItem from './NotificationItem'; import { AccessibilityIcon as AccessibilityIconIcon, BookIcon as BookIconIcon, FaceHappyIcon, } from '@storybook/icons'; +import type { Meta, StoryObj } from '@storybook/react'; import { expect, fn, userEvent, waitFor, within } from '@storybook/test'; +import { action } from '@storybook/addon-actions'; + +import NotificationItem from './NotificationItem'; + const meta = { component: NotificationItem, title: 'Notifications/NotificationItem', diff --git a/code/core/src/manager/components/notifications/NotificationItem.tsx b/code/core/src/manager/components/notifications/NotificationItem.tsx index f912828783a2..66a8cef66bf3 100644 --- a/code/core/src/manager/components/notifications/NotificationItem.tsx +++ b/code/core/src/manager/components/notifications/NotificationItem.tsx @@ -1,13 +1,16 @@ import type { FC, SyntheticEvent } from 'react'; import React, { useCallback, useEffect, useRef } from 'react'; -import { type State } from '@storybook/core/manager-api'; -import { Link } from '@storybook/core/router'; -import { keyframes, styled, useTheme } from '@storybook/core/theming'; + import type { IconsProps } from '@storybook/core/components'; import { IconButton, Icons } from '@storybook/core/components'; -import { transparentize } from 'polished'; +import { Link } from '@storybook/core/router'; +import { keyframes, styled, useTheme } from '@storybook/core/theming'; import { CloseAltIcon } from '@storybook/icons'; +import { type State } from '@storybook/core/manager-api'; + +import { transparentize } from 'polished'; + const slideIn = keyframes({ '0%': { opacity: 0, diff --git a/code/core/src/manager/components/notifications/NotificationList.stories.tsx b/code/core/src/manager/components/notifications/NotificationList.stories.tsx index d2842e5eb872..60554232747c 100644 --- a/code/core/src/manager/components/notifications/NotificationList.stories.tsx +++ b/code/core/src/manager/components/notifications/NotificationList.stories.tsx @@ -1,9 +1,10 @@ import React from 'react'; + import { LocationProvider } from '@storybook/core/router'; import type { Meta, StoryObj } from '@storybook/react'; -import { NotificationList } from './NotificationList'; import * as itemStories from './NotificationItem.stories'; +import { NotificationList } from './NotificationList'; const meta = { component: NotificationList, diff --git a/code/core/src/manager/components/notifications/NotificationList.tsx b/code/core/src/manager/components/notifications/NotificationList.tsx index 604ed50c5101..a0c8fabd13c6 100644 --- a/code/core/src/manager/components/notifications/NotificationList.tsx +++ b/code/core/src/manager/components/notifications/NotificationList.tsx @@ -1,10 +1,13 @@ import type { FC } from 'react'; import React from 'react'; -import type { State } from '@storybook/core/manager-api'; + import { styled } from '@storybook/core/theming'; import type { CSSObject } from '@storybook/core/theming'; -import NotificationItem from './NotificationItem'; + +import type { State } from '@storybook/core/manager-api'; + import { MEDIA_DESKTOP_BREAKPOINT } from '../../constants'; +import NotificationItem from './NotificationItem'; interface NotificationListProps { notifications: State['notifications']; diff --git a/code/core/src/manager/components/panel/Panel.stories.tsx b/code/core/src/manager/components/panel/Panel.stories.tsx index 7b6691c314cd..3caa6a3c0fb1 100644 --- a/code/core/src/manager/components/panel/Panel.stories.tsx +++ b/code/core/src/manager/components/panel/Panel.stories.tsx @@ -1,12 +1,15 @@ import type { EventHandler, FocusEvent, MouseEvent } from 'react'; import React, { useCallback, useRef, useState } from 'react'; -import { action } from '@storybook/addon-actions'; + import { Badge, Spaced } from '@storybook/core/components'; import type { Addon_BaseType, Addon_Collection } from '@storybook/core/types'; import { Addon_TypesEnum } from '@storybook/core/types'; import { BellIcon } from '@storybook/icons'; -import { AddonPanel } from './Panel'; + +import { action } from '@storybook/addon-actions'; + import { defaultShortcuts } from '../../settings/defaultShortcuts'; +import { AddonPanel } from './Panel'; const onSelect = action('onSelect'); const toggleVisibility = action('toggleVisibility'); diff --git a/code/core/src/manager/components/panel/Panel.tsx b/code/core/src/manager/components/panel/Panel.tsx index dad5d7f9b85d..701cd94925e3 100644 --- a/code/core/src/manager/components/panel/Panel.tsx +++ b/code/core/src/manager/components/panel/Panel.tsx @@ -1,10 +1,13 @@ import React, { Component } from 'react'; -import { Tabs, IconButton, Link, EmptyTabContent } from '@storybook/core/components'; -import type { State } from '@storybook/core/manager-api'; -import { shortcutToHumanString } from '@storybook/core/manager-api'; -import type { Addon_BaseType } from '@storybook/core/types'; + +import { EmptyTabContent, IconButton, Link, Tabs } from '@storybook/core/components'; import { styled } from '@storybook/core/theming'; +import type { Addon_BaseType } from '@storybook/core/types'; import { BottomBarIcon, CloseIcon, DocumentIcon, SidebarAltIcon } from '@storybook/icons'; + +import type { State } from '@storybook/core/manager-api'; +import { shortcutToHumanString } from '@storybook/core/manager-api'; + import { useLayout } from '../layout/LayoutProvider'; export interface SafeTabProps { diff --git a/code/core/src/manager/components/preview/FramesRenderer.tsx b/code/core/src/manager/components/preview/FramesRenderer.tsx index ecf627be9df9..40a42c3fbe98 100644 --- a/code/core/src/manager/components/preview/FramesRenderer.tsx +++ b/code/core/src/manager/components/preview/FramesRenderer.tsx @@ -1,13 +1,16 @@ import type { FC } from 'react'; -import React, { useRef, Fragment } from 'react'; -import type { Combo } from '@storybook/core/manager-api'; -import { Consumer } from '@storybook/core/manager-api'; +import React, { Fragment, useRef } from 'react'; + import { Button, getStoryHref } from '@storybook/core/components'; import { Global, styled } from '@storybook/core/theming'; import type { CSSObject } from '@storybook/core/theming'; + +import type { Combo } from '@storybook/core/manager-api'; +import { Consumer } from '@storybook/core/manager-api'; + import { IFrame } from './Iframe'; -import type { FramesRendererProps } from './utils/types'; import { stringifyQueryParams } from './utils/stringifyQueryParams'; +import type { FramesRendererProps } from './utils/types'; const getActive = (refId: FramesRendererProps['refId'], refs: FramesRendererProps['refs']) => { if (refId && refs[refId]) { diff --git a/code/core/src/manager/components/preview/Iframe.tsx b/code/core/src/manager/components/preview/Iframe.tsx index e7f0df251147..13fd65261ec2 100644 --- a/code/core/src/manager/components/preview/Iframe.tsx +++ b/code/core/src/manager/components/preview/Iframe.tsx @@ -1,7 +1,8 @@ import type { IframeHTMLAttributes } from 'react'; import React from 'react'; -import { styled } from '@storybook/core/theming'; + import { Zoom } from '@storybook/core/components'; +import { styled } from '@storybook/core/theming'; const StyledIframe = styled.iframe(({ theme }) => ({ backgroundColor: theme.background.preview, diff --git a/code/core/src/manager/components/preview/Preview.tsx b/code/core/src/manager/components/preview/Preview.tsx index 2350b58f1b3f..8a459276f0e7 100644 --- a/code/core/src/manager/components/preview/Preview.tsx +++ b/code/core/src/manager/components/preview/Preview.tsx @@ -1,20 +1,20 @@ import type { FC } from 'react'; import React, { Fragment, useEffect, useRef, useState } from 'react'; -import { Helmet } from 'react-helmet-async'; -import { global } from '@storybook/global'; -import { Consumer, type Combo, merge, addons, types } from '@storybook/core/manager-api'; +import { Loader } from '@storybook/core/components'; import type { Addon_BaseType, Addon_WrapperType } from '@storybook/core/types'; +import { global } from '@storybook/global'; + import { PREVIEW_BUILDER_PROGRESS, SET_CURRENT_STORY } from '@storybook/core/core-events'; +import { type Combo, Consumer, addons, merge, types } from '@storybook/core/manager-api'; -import { Loader } from '@storybook/core/components'; +import { Helmet } from 'react-helmet-async'; -import * as S from './utils/components'; -import { ZoomProvider, ZoomConsumer } from './tools/zoom'; -import { ApplyWrappers } from './Wrappers'; -import { ToolbarComp } from './Toolbar'; import { FramesRenderer } from './FramesRenderer'; - +import { ToolbarComp } from './Toolbar'; +import { ApplyWrappers } from './Wrappers'; +import { ZoomConsumer, ZoomProvider } from './tools/zoom'; +import * as S from './utils/components'; import type { PreviewProps } from './utils/types'; const canvasMapper = ({ state, api }: Combo) => ({ diff --git a/code/core/src/manager/components/preview/Toolbar.tsx b/code/core/src/manager/components/preview/Toolbar.tsx index 297764e3983f..de8c1aab066f 100644 --- a/code/core/src/manager/components/preview/Toolbar.tsx +++ b/code/core/src/manager/components/preview/Toolbar.tsx @@ -1,30 +1,29 @@ import React, { Fragment } from 'react'; +import { IconButton, Separator, TabBar, TabButton } from '@storybook/core/components'; import { styled } from '@storybook/core/theming'; +import { type Addon_BaseType, Addon_TypesEnum } from '@storybook/core/types'; +import { CloseIcon, ExpandIcon } from '@storybook/icons'; -import { IconButton, Separator, TabButton, TabBar } from '@storybook/core/components'; import { - shortcutToHumanString, - Consumer, - type Combo, type API, - type State, - merge, + type Combo, + Consumer, type LeafEntry, + type State, addons, + merge, + shortcutToHumanString, types, } from '@storybook/core/manager-api'; -import { Addon_TypesEnum, type Addon_BaseType } from '@storybook/core/types'; -import { CloseIcon, ExpandIcon } from '@storybook/icons'; -import { zoomTool } from './tools/zoom'; - -import type { PreviewProps } from './utils/types'; +import { useLayout } from '../layout/LayoutProvider'; +import { addonsTool } from './tools/addons'; import { copyTool } from './tools/copy'; import { ejectTool } from './tools/eject'; -import { addonsTool } from './tools/addons'; import { remountTool } from './tools/remount'; -import { useLayout } from '../layout/LayoutProvider'; +import { zoomTool } from './tools/zoom'; +import type { PreviewProps } from './utils/types'; export const getTools = (getFn: API['getElements']) => Object.values(getFn(types.TOOL)); export const getToolsExtra = (getFn: API['getElements']) => Object.values(getFn(types.TOOLEXTRA)); diff --git a/code/core/src/manager/components/preview/Wrappers.tsx b/code/core/src/manager/components/preview/Wrappers.tsx index a6ecc04a4afa..299db428b1d9 100644 --- a/code/core/src/manager/components/preview/Wrappers.tsx +++ b/code/core/src/manager/components/preview/Wrappers.tsx @@ -1,9 +1,11 @@ import type { FC, PropsWithChildren } from 'react'; import React, { Fragment } from 'react'; + import type { Addon_WrapperType } from '@storybook/core/types'; import { Addon_TypesEnum } from '@storybook/core/types'; -import type { ApplyWrappersProps } from './utils/types'; + import { IframeWrapper } from './utils/components'; +import type { ApplyWrappersProps } from './utils/types'; export const ApplyWrappers: FC> = ({ wrappers, diff --git a/code/core/src/manager/components/preview/tools/addons.tsx b/code/core/src/manager/components/preview/tools/addons.tsx index a0beb24f768a..46d45f6eac07 100644 --- a/code/core/src/manager/components/preview/tools/addons.tsx +++ b/code/core/src/manager/components/preview/tools/addons.tsx @@ -1,10 +1,12 @@ import React from 'react'; + import { IconButton } from '@storybook/core/components'; -import { Consumer, types } from '@storybook/core/manager-api'; -import type { Combo } from '@storybook/core/manager-api'; import type { Addon_BaseType } from '@storybook/core/types'; import { BottomBarIcon, SidebarAltIcon } from '@storybook/icons'; +import { Consumer, types } from '@storybook/core/manager-api'; +import type { Combo } from '@storybook/core/manager-api'; + const menuMapper = ({ api, state }: Combo) => ({ isVisible: api.getIsPanelShown(), singleStory: state.singleStory, diff --git a/code/core/src/manager/components/preview/tools/copy.tsx b/code/core/src/manager/components/preview/tools/copy.tsx index 2fdc098cffe4..adf9b54efd24 100644 --- a/code/core/src/manager/components/preview/tools/copy.tsx +++ b/code/core/src/manager/components/preview/tools/copy.tsx @@ -1,12 +1,15 @@ -import { global } from '@storybook/global'; import React from 'react'; -import copy from 'copy-to-clipboard'; -import { getStoryHref, IconButton } from '@storybook/core/components'; -import { Consumer, types } from '@storybook/core/manager-api'; -import type { Combo } from '@storybook/core/manager-api'; + +import { IconButton, getStoryHref } from '@storybook/core/components'; import type { Addon_BaseType } from '@storybook/core/types'; +import { global } from '@storybook/global'; import { LinkIcon } from '@storybook/icons'; +import { Consumer, types } from '@storybook/core/manager-api'; +import type { Combo } from '@storybook/core/manager-api'; + +import copy from 'copy-to-clipboard'; + const { PREVIEW_URL, document } = global; const copyMapper = ({ state }: Combo) => { diff --git a/code/core/src/manager/components/preview/tools/eject.tsx b/code/core/src/manager/components/preview/tools/eject.tsx index 25bf9676c8d7..dda18c7db1f9 100644 --- a/code/core/src/manager/components/preview/tools/eject.tsx +++ b/code/core/src/manager/components/preview/tools/eject.tsx @@ -1,11 +1,13 @@ -import { global } from '@storybook/global'; import React from 'react'; -import { getStoryHref, IconButton } from '@storybook/core/components'; -import { Consumer, types } from '@storybook/core/manager-api'; -import type { Combo } from '@storybook/core/manager-api'; + +import { IconButton, getStoryHref } from '@storybook/core/components'; import type { Addon_BaseType } from '@storybook/core/types'; +import { global } from '@storybook/global'; import { ShareAltIcon } from '@storybook/icons'; +import { Consumer, types } from '@storybook/core/manager-api'; +import type { Combo } from '@storybook/core/manager-api'; + const { PREVIEW_URL } = global; const ejectMapper = ({ state }: Combo) => { diff --git a/code/core/src/manager/components/preview/tools/menu.tsx b/code/core/src/manager/components/preview/tools/menu.tsx index 9cf7a3a1ea64..f61f8955c541 100644 --- a/code/core/src/manager/components/preview/tools/menu.tsx +++ b/code/core/src/manager/components/preview/tools/menu.tsx @@ -1,10 +1,12 @@ import React from 'react'; + import { IconButton, Separator } from '@storybook/core/components'; -import { Consumer, types } from '@storybook/core/manager-api'; -import type { Combo } from '@storybook/core/manager-api'; import type { Addon_BaseType } from '@storybook/core/types'; import { MenuIcon } from '@storybook/icons'; +import { Consumer, types } from '@storybook/core/manager-api'; +import type { Combo } from '@storybook/core/manager-api'; + const menuMapper = ({ api, state }: Combo) => ({ isVisible: api.getIsNavShown(), singleStory: state.singleStory, diff --git a/code/core/src/manager/components/preview/tools/remount.tsx b/code/core/src/manager/components/preview/tools/remount.tsx index 1d8735b7dec3..2facd7a8465e 100644 --- a/code/core/src/manager/components/preview/tools/remount.tsx +++ b/code/core/src/manager/components/preview/tools/remount.tsx @@ -1,13 +1,15 @@ import type { ComponentProps } from 'react'; import React, { useState } from 'react'; + import { IconButton } from '@storybook/core/components'; -import { Consumer, types } from '@storybook/core/manager-api'; -import type { Combo } from '@storybook/core/manager-api'; import { styled } from '@storybook/core/theming'; -import { FORCE_REMOUNT } from '@storybook/core/core-events'; import type { Addon_BaseType } from '@storybook/core/types'; import { SyncIcon } from '@storybook/icons'; +import { FORCE_REMOUNT } from '@storybook/core/core-events'; +import { Consumer, types } from '@storybook/core/manager-api'; +import type { Combo } from '@storybook/core/manager-api'; + interface AnimatedButtonProps { animating?: boolean; } diff --git a/code/core/src/manager/components/preview/tools/zoom.tsx b/code/core/src/manager/components/preview/tools/zoom.tsx index 9af3c17d9c39..aba59a2da272 100644 --- a/code/core/src/manager/components/preview/tools/zoom.tsx +++ b/code/core/src/manager/components/preview/tools/zoom.tsx @@ -1,11 +1,12 @@ -import type { SyntheticEvent, MouseEventHandler, PropsWithChildren } from 'react'; +import type { MouseEventHandler, PropsWithChildren, SyntheticEvent } from 'react'; import React, { Component, createContext, memo, useCallback } from 'react'; import { IconButton, Separator } from '@storybook/core/components'; import type { Addon_BaseType } from '@storybook/core/types'; -import { types } from '@storybook/core/manager-api'; import { ZoomIcon, ZoomOutIcon, ZoomResetIcon } from '@storybook/icons'; +import { types } from '@storybook/core/manager-api'; + const initialZoom = 1 as const; const Context = createContext({ value: initialZoom, set: (v: number) => {} }); diff --git a/code/core/src/manager/components/preview/utils/components.ts b/code/core/src/manager/components/preview/utils/components.ts index b9cd39b097a0..e38f44164e51 100644 --- a/code/core/src/manager/components/preview/utils/components.ts +++ b/code/core/src/manager/components/preview/utils/components.ts @@ -1,5 +1,5 @@ -import { styled } from '@storybook/core/theming'; import { Link } from '@storybook/core/router'; +import { styled } from '@storybook/core/theming'; export const PreviewContainer = styled.main({ display: 'flex', diff --git a/code/core/src/manager/components/preview/utils/types.tsx b/code/core/src/manager/components/preview/utils/types.tsx index 2a1fd83c2e6d..6c18cb6bdddc 100644 --- a/code/core/src/manager/components/preview/utils/types.tsx +++ b/code/core/src/manager/components/preview/utils/types.tsx @@ -1,12 +1,14 @@ import type { ReactElement } from 'react'; -import type { State, API, LeafEntry } from '@storybook/core/manager-api'; + import type { + API_ViewMode, Addon_BaseType, Addon_WrapperType, - API_ViewMode, StoryId, } from '@storybook/core/types'; +import type { API, LeafEntry, State } from '@storybook/core/manager-api'; + export interface PreviewProps { api: API; viewMode: API_ViewMode; diff --git a/code/core/src/manager/components/sidebar/Brand.tsx b/code/core/src/manager/components/sidebar/Brand.tsx index f3c0a89c046a..05ff72a23c0a 100644 --- a/code/core/src/manager/components/sidebar/Brand.tsx +++ b/code/core/src/manager/components/sidebar/Brand.tsx @@ -1,7 +1,7 @@ import React from 'react'; -import { styled, withTheme } from '@storybook/core/theming'; import { StorybookLogo } from '@storybook/core/components'; +import { styled, withTheme } from '@storybook/core/theming'; export const StorybookLogoStyled = styled(StorybookLogo)(({ theme }) => ({ width: 'auto', diff --git a/code/core/src/manager/components/sidebar/CreateNewStoryFileModal.tsx b/code/core/src/manager/components/sidebar/CreateNewStoryFileModal.tsx index 4c45bcc51645..70ad346fbdbb 100644 --- a/code/core/src/manager/components/sidebar/CreateNewStoryFileModal.tsx +++ b/code/core/src/manager/components/sidebar/CreateNewStoryFileModal.tsx @@ -1,5 +1,7 @@ import React, { useCallback, useDeferredValue, useEffect, useRef, useState } from 'react'; + import { CheckIcon } from '@storybook/icons'; + import type { ArgTypesRequestPayload, ArgTypesResponsePayload, @@ -28,8 +30,8 @@ import { addons, experimental_requestResponse, useStorybookApi } from '@storyboo import { useDebounce } from '../../hooks/useDebounce'; import type { NewStoryPayload, SearchResult } from './FileSearchList'; -import { extractSeededRequiredArgs, trySelectNewStory } from './FileSearchModal.utils'; import { FileSearchModal } from './FileSearchModal'; +import { extractSeededRequiredArgs, trySelectNewStory } from './FileSearchModal.utils'; interface CreateNewStoryFileModalProps { open: boolean; diff --git a/code/core/src/manager/components/sidebar/Explorer.stories.tsx b/code/core/src/manager/components/sidebar/Explorer.stories.tsx index 9cf8c887397f..908ead2be9f3 100644 --- a/code/core/src/manager/components/sidebar/Explorer.stories.tsx +++ b/code/core/src/manager/components/sidebar/Explorer.stories.tsx @@ -1,10 +1,10 @@ import React from 'react'; import { Explorer } from './Explorer'; +import { IconSymbols } from './IconSymbols'; +import * as RefStories from './Refs.stories'; import { mockDataset } from './mockdata'; import type { RefType } from './types'; -import * as RefStories from './Refs.stories'; -import { IconSymbols } from './IconSymbols'; export default { component: Explorer, diff --git a/code/core/src/manager/components/sidebar/Explorer.tsx b/code/core/src/manager/components/sidebar/Explorer.tsx index dae74f34e21c..1c4a93825ebe 100644 --- a/code/core/src/manager/components/sidebar/Explorer.tsx +++ b/code/core/src/manager/components/sidebar/Explorer.tsx @@ -1,11 +1,10 @@ import type { FC } from 'react'; import React, { useRef } from 'react'; +import { HighlightStyles } from './HighlightStyles'; import { Ref } from './Refs'; import type { CombinedDataset, Selection } from './types'; - import { useHighlighted } from './useHighlighted'; -import { HighlightStyles } from './HighlightStyles'; export interface ExplorerProps { isLoading: boolean; diff --git a/code/core/src/manager/components/sidebar/FileList.tsx b/code/core/src/manager/components/sidebar/FileList.tsx index 9f7cc75c290a..bc2d46eee829 100644 --- a/code/core/src/manager/components/sidebar/FileList.tsx +++ b/code/core/src/manager/components/sidebar/FileList.tsx @@ -1,4 +1,5 @@ import { styled } from '@storybook/core/theming'; + import { rgba } from 'polished'; export const FileListWrapper = styled('div')(({ theme }) => ({ diff --git a/code/core/src/manager/components/sidebar/FileSearchList.stories.tsx b/code/core/src/manager/components/sidebar/FileSearchList.stories.tsx index a1f9ca9d9df6..2c5ec140ee86 100644 --- a/code/core/src/manager/components/sidebar/FileSearchList.stories.tsx +++ b/code/core/src/manager/components/sidebar/FileSearchList.stories.tsx @@ -1,5 +1,5 @@ import type { Meta, StoryObj } from '@storybook/react'; -import { fn, fireEvent, findByText, expect } from '@storybook/test'; +import { expect, findByText, fireEvent, fn } from '@storybook/test'; import { FileSearchList } from './FileSearchList'; diff --git a/code/core/src/manager/components/sidebar/FileSearchList.tsx b/code/core/src/manager/components/sidebar/FileSearchList.tsx index 9ba2fd205c47..3a4eacbbf03c 100644 --- a/code/core/src/manager/components/sidebar/FileSearchList.tsx +++ b/code/core/src/manager/components/sidebar/FileSearchList.tsx @@ -1,7 +1,18 @@ import React, { memo, useCallback, useMemo, useState } from 'react'; -import { ChevronDownIcon, ChevronRightIcon, ComponentIcon } from '@storybook/icons'; + +import { TooltipNote, WithTooltip } from '@storybook/core/components'; import { styled } from '@storybook/core/theming'; -import { FileSearchListLoadingSkeleton } from './FileSearchListSkeleton'; +import { ChevronDownIcon, ChevronRightIcon, ComponentIcon } from '@storybook/icons'; + +import type { + CreateNewStoryRequestPayload, + FileComponentSearchResponsePayload, +} from '@storybook/core/core-events'; + +import type { VirtualItem } from '@tanstack/react-virtual'; +import { useVirtualizer } from '@tanstack/react-virtual'; + +import { useArrowKeyNavigation } from './FIleSearchList.utils'; import { DefaultExport, FileList, @@ -21,14 +32,7 @@ import { NoResults, NoResultsDescription, } from './FileList'; -import type { VirtualItem } from '@tanstack/react-virtual'; -import { useVirtualizer } from '@tanstack/react-virtual'; -import type { - CreateNewStoryRequestPayload, - FileComponentSearchResponsePayload, -} from '@storybook/core/core-events'; -import { WithTooltip, TooltipNote } from '@storybook/core/components'; -import { useArrowKeyNavigation } from './FIleSearchList.utils'; +import { FileSearchListLoadingSkeleton } from './FileSearchListSkeleton'; export type SearchResult = NonNullable[0]; diff --git a/code/core/src/manager/components/sidebar/FileSearchListSkeleton.tsx b/code/core/src/manager/components/sidebar/FileSearchListSkeleton.tsx index ddbb757e1fee..33e6e0dd890b 100644 --- a/code/core/src/manager/components/sidebar/FileSearchListSkeleton.tsx +++ b/code/core/src/manager/components/sidebar/FileSearchListSkeleton.tsx @@ -1,5 +1,7 @@ import React from 'react'; + import { styled } from '@storybook/core/theming'; + import { FileList, FileListItem } from './FileList'; const FileListItemContentWrapperSkeleton = styled('div')(({ theme }) => ({ diff --git a/code/core/src/manager/components/sidebar/FileSearchModal.stories.tsx b/code/core/src/manager/components/sidebar/FileSearchModal.stories.tsx index 8d6d2b7e9c3a..a2a10005b887 100644 --- a/code/core/src/manager/components/sidebar/FileSearchModal.stories.tsx +++ b/code/core/src/manager/components/sidebar/FileSearchModal.stories.tsx @@ -1,8 +1,9 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { findByText, fireEvent, fn, expect } from '@storybook/test'; -import { WithResults } from './FileSearchList.stories'; import React, { useState } from 'react'; +import type { Meta, StoryObj } from '@storybook/react'; +import { expect, findByText, fireEvent, fn } from '@storybook/test'; + +import { WithResults } from './FileSearchList.stories'; import { FileSearchModal } from './FileSearchModal'; const meta = { diff --git a/code/core/src/manager/components/sidebar/FileSearchModal.tsx b/code/core/src/manager/components/sidebar/FileSearchModal.tsx index 9762c8222633..469493744d43 100644 --- a/code/core/src/manager/components/sidebar/FileSearchModal.tsx +++ b/code/core/src/manager/components/sidebar/FileSearchModal.tsx @@ -1,11 +1,12 @@ import React, { useEffect, useState, useTransition } from 'react'; -import { Modal, Form } from '@storybook/core/components'; + +import { Form, Modal } from '@storybook/core/components'; import { styled } from '@storybook/core/theming'; import { CloseAltIcon, SearchIcon, SyncIcon } from '@storybook/icons'; +import { useMeasure } from '../../hooks/useMeasure'; import type { NewStoryPayload, SearchResult } from './FileSearchList'; import { FileSearchList } from './FileSearchList'; -import { useMeasure } from '../../hooks/useMeasure'; const MODAL_HEIGHT = 418; diff --git a/code/core/src/manager/components/sidebar/FileSearchModal.utils.test.tsx b/code/core/src/manager/components/sidebar/FileSearchModal.utils.test.tsx index d86a9c208d68..34f1f4ec8a68 100644 --- a/code/core/src/manager/components/sidebar/FileSearchModal.utils.test.tsx +++ b/code/core/src/manager/components/sidebar/FileSearchModal.utils.test.tsx @@ -1,7 +1,9 @@ import { describe, expect, it } from 'vitest'; -import { extractSeededRequiredArgs } from './FileSearchModal.utils'; + import type { ArgTypes } from '@storybook/csf'; +import { extractSeededRequiredArgs } from './FileSearchModal.utils'; + describe('FileSearchModal.utils', () => { describe('extractSeededRequiredArgs', () => { it('should extract seeded required args', () => { diff --git a/code/core/src/manager/components/sidebar/Heading.stories.tsx b/code/core/src/manager/components/sidebar/Heading.stories.tsx index 0308cae7dd50..678a6c8e2ae5 100644 --- a/code/core/src/manager/components/sidebar/Heading.stories.tsx +++ b/code/core/src/manager/components/sidebar/Heading.stories.tsx @@ -1,11 +1,13 @@ // @TODO: use addon-interactions and remove the rule disable above import React from 'react'; -import type { Meta, StoryObj, StoryFn } from '@storybook/react'; + import { ThemeProvider, useTheme } from '@storybook/core/theming'; import type { Theme } from '@storybook/core/theming'; -import { action } from '@storybook/addon-actions'; +import type { Meta, StoryFn, StoryObj } from '@storybook/react'; import { screen } from '@storybook/test'; +import { action } from '@storybook/addon-actions'; + import { Heading } from './Heading'; type Story = StoryFn; diff --git a/code/core/src/manager/components/sidebar/Heading.tsx b/code/core/src/manager/components/sidebar/Heading.tsx index 962e91bbc8a5..905ae1f61081 100644 --- a/code/core/src/manager/components/sidebar/Heading.tsx +++ b/code/core/src/manager/components/sidebar/Heading.tsx @@ -1,9 +1,10 @@ -import type { FC, ComponentProps } from 'react'; +import type { ComponentProps, FC } from 'react'; import React from 'react'; -import { styled } from '@storybook/core/theming'; -import { Button } from '@storybook/core/components'; +import { Button } from '@storybook/core/components'; +import { styled } from '@storybook/core/theming'; import type { Addon_SidebarTopType } from '@storybook/core/types'; + import { Brand } from './Brand'; import type { MenuList, SidebarMenuProps } from './Menu'; import { SidebarMenu } from './Menu'; diff --git a/code/core/src/manager/components/sidebar/HighlightStyles.tsx b/code/core/src/manager/components/sidebar/HighlightStyles.tsx index 0683a04c9550..71f853666865 100644 --- a/code/core/src/manager/components/sidebar/HighlightStyles.tsx +++ b/code/core/src/manager/components/sidebar/HighlightStyles.tsx @@ -1,7 +1,10 @@ -import { transparentize } from 'polished'; import type { FC } from 'react'; import React from 'react'; + import { Global } from '@storybook/core/theming'; + +import { transparentize } from 'polished'; + import type { Highlight } from './types'; // @ts-expect-error (non strict) diff --git a/code/core/src/manager/components/sidebar/IconSymbols.tsx b/code/core/src/manager/components/sidebar/IconSymbols.tsx index 8dec99d6e248..20101343e7b2 100644 --- a/code/core/src/manager/components/sidebar/IconSymbols.tsx +++ b/code/core/src/manager/components/sidebar/IconSymbols.tsx @@ -1,7 +1,8 @@ -import { styled } from '@storybook/core/theming'; import type { FC } from 'react'; import React from 'react'; +import { styled } from '@storybook/core/theming'; + const Svg = styled.svg` position: absolute; width: 0; diff --git a/code/core/src/manager/components/sidebar/Loader.tsx b/code/core/src/manager/components/sidebar/Loader.tsx index 254626aa0b79..96499c4b2ad8 100644 --- a/code/core/src/manager/components/sidebar/Loader.tsx +++ b/code/core/src/manager/components/sidebar/Loader.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react'; import React, { Fragment } from 'react'; + import { styled } from '@storybook/core/theming'; const LOADER_SEQUENCE = [0, 0, 1, 1, 2, 3, 3, 3, 1, 1, 1, 2, 2, 2, 3]; diff --git a/code/core/src/manager/components/sidebar/Menu.stories.tsx b/code/core/src/manager/components/sidebar/Menu.stories.tsx index e4873e751b05..663bd4caa3b4 100644 --- a/code/core/src/manager/components/sidebar/Menu.stories.tsx +++ b/code/core/src/manager/components/sidebar/Menu.stories.tsx @@ -1,15 +1,17 @@ import type { ComponentProps } from 'react'; import React from 'react'; -import type { Meta, StoryObj } from '@storybook/react'; import { TooltipLinkList } from '@storybook/core/components'; import { styled } from '@storybook/core/theming'; -import { screen, userEvent, within, expect } from '@storybook/test'; -import type { State } from '@storybook/core/manager-api'; import { LinkIcon } from '@storybook/icons'; -import { SidebarMenu } from './Menu'; +import type { Meta, StoryObj } from '@storybook/react'; +import { expect, screen, userEvent, within } from '@storybook/test'; + +import type { State } from '@storybook/core/manager-api'; + import { useMenu } from '../../container/Menu'; import { LayoutProvider } from '../layout/LayoutProvider'; +import { SidebarMenu } from './Menu'; const fakemenu: ComponentProps['links'] = [ { title: 'has icon', icon: , id: 'icon' }, diff --git a/code/core/src/manager/components/sidebar/Menu.tsx b/code/core/src/manager/components/sidebar/Menu.tsx index 960fa8b58844..d24656aa7079 100644 --- a/code/core/src/manager/components/sidebar/Menu.tsx +++ b/code/core/src/manager/components/sidebar/Menu.tsx @@ -1,11 +1,13 @@ import type { ComponentProps, FC } from 'react'; import React, { useMemo, useState } from 'react'; -import { styled } from '@storybook/core/theming'; -import { transparentize } from 'polished'; import type { Button, TooltipLinkListLink } from '@storybook/core/components'; -import { WithTooltip, TooltipLinkList, IconButton } from '@storybook/core/components'; +import { IconButton, TooltipLinkList, WithTooltip } from '@storybook/core/components'; +import { styled } from '@storybook/core/theming'; import { CloseIcon, CogIcon } from '@storybook/icons'; + +import { transparentize } from 'polished'; + import { useLayout } from '../layout/LayoutProvider'; export type MenuList = ComponentProps['links']; diff --git a/code/core/src/manager/components/sidebar/RefBlocks.tsx b/code/core/src/manager/components/sidebar/RefBlocks.tsx index d4fd979129ba..16af958a8a02 100644 --- a/code/core/src/manager/components/sidebar/RefBlocks.tsx +++ b/code/core/src/manager/components/sidebar/RefBlocks.tsx @@ -1,13 +1,14 @@ -import { global } from '@storybook/global'; import type { FC } from 'react'; -import React, { useState, useCallback, Fragment } from 'react'; +import React, { Fragment, useCallback, useState } from 'react'; -import { WithTooltip, Spaced, Button, Link, ErrorFormatter } from '@storybook/core/components'; -import { logger } from '@storybook/core/client-logger'; +import { Button, ErrorFormatter, Link, Spaced, WithTooltip } from '@storybook/core/components'; import { styled } from '@storybook/core/theming'; - +import { global } from '@storybook/global'; import { ChevronDownIcon, LockIcon, SyncIcon } from '@storybook/icons'; -import { Loader, Contained } from './Loader'; + +import { logger } from '@storybook/core/client-logger'; + +import { Contained, Loader } from './Loader'; const { window: globalWindow } = global; diff --git a/code/core/src/manager/components/sidebar/RefIndicator.tsx b/code/core/src/manager/components/sidebar/RefIndicator.tsx index 6fca6687effe..7c49c95105cd 100644 --- a/code/core/src/manager/components/sidebar/RefIndicator.tsx +++ b/code/core/src/manager/components/sidebar/RefIndicator.tsx @@ -1,13 +1,10 @@ -import { global } from '@storybook/global'; import type { FC, MouseEventHandler } from 'react'; -import React, { useMemo, useCallback, forwardRef } from 'react'; +import React, { forwardRef, useCallback, useMemo } from 'react'; import type { TooltipLinkListLink } from '@storybook/core/components'; -import { WithTooltip, Spaced, TooltipLinkList } from '@storybook/core/components'; +import { Spaced, TooltipLinkList, WithTooltip } from '@storybook/core/components'; import { styled, useTheme } from '@storybook/core/theming'; -import { transparentize } from 'polished'; -import { useStorybookApi } from '@storybook/core/manager-api'; - +import { global } from '@storybook/global'; import { AlertIcon, ChevronDownIcon, @@ -18,9 +15,13 @@ import { MarkupIcon, TimeIcon, } from '@storybook/icons'; -import type { RefType } from './types'; + +import { useStorybookApi } from '@storybook/core/manager-api'; + +import { transparentize } from 'polished'; import type { getStateType } from '../../utils/tree'; +import type { RefType } from './types'; const { document, window: globalWindow } = global; diff --git a/code/core/src/manager/components/sidebar/Refs.stories.tsx b/code/core/src/manager/components/sidebar/Refs.stories.tsx index 6b89f1b13a57..a26cad976dcb 100644 --- a/code/core/src/manager/components/sidebar/Refs.stories.tsx +++ b/code/core/src/manager/components/sidebar/Refs.stories.tsx @@ -1,11 +1,12 @@ import React from 'react'; + import { ManagerContext } from '@storybook/core/manager-api'; -import { Ref } from './Refs'; import { standardData as standardHeaderData } from './Heading.stories'; +import { IconSymbols } from './IconSymbols'; +import { Ref } from './Refs'; import { mockDataset } from './mockdata'; import type { RefType } from './types'; -import { IconSymbols } from './IconSymbols'; export default { component: Ref, diff --git a/code/core/src/manager/components/sidebar/Refs.tsx b/code/core/src/manager/components/sidebar/Refs.tsx index 756080d63ec2..7412a627e889 100644 --- a/code/core/src/manager/components/sidebar/Refs.tsx +++ b/code/core/src/manager/components/sidebar/Refs.tsx @@ -1,21 +1,20 @@ import type { FC, MutableRefObject } from 'react'; -import React, { useEffect, useMemo, useState, useRef, useCallback } from 'react'; +import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; + +import { styled } from '@storybook/core/theming'; + import type { State } from '@storybook/core/manager-api'; import { useStorybookApi, useStorybookState } from '@storybook/core/manager-api'; -import { styled } from '@storybook/core/theming'; -import { transparentize } from 'polished'; -import { AuthBlock, ErrorBlock, LoaderBlock, EmptyBlock } from './RefBlocks'; +import { transparentize } from 'polished'; +import { getStateType } from '../../utils/tree'; +import { AuthBlock, EmptyBlock, ErrorBlock, LoaderBlock } from './RefBlocks'; import { RefIndicator } from './RefIndicator'; - -import { Tree } from './Tree'; - import { DEFAULT_REF_ID } from './Sidebar'; -import type { Highlight, RefType } from './types'; - -import { getStateType } from '../../utils/tree'; +import { Tree } from './Tree'; import { CollapseIcon } from './components/CollapseIcon'; +import type { Highlight, RefType } from './types'; export interface RefProps { isLoading: boolean; diff --git a/code/core/src/manager/components/sidebar/Search.stories.tsx b/code/core/src/manager/components/sidebar/Search.stories.tsx index 8de58e633373..5c70863735e0 100644 --- a/code/core/src/manager/components/sidebar/Search.stories.tsx +++ b/code/core/src/manager/components/sidebar/Search.stories.tsx @@ -1,16 +1,19 @@ import React from 'react'; -import type { StoryFn, Meta } from '@storybook/react'; + +import type { Meta, StoryFn } from '@storybook/react'; + import type { API } from '@storybook/core/manager-api'; import { ManagerContext } from '@storybook/core/manager-api'; + import { action } from '@storybook/addon-actions'; -import { index } from './mockdata.large'; +import { IconSymbols } from './IconSymbols'; import { Search } from './Search'; import { SearchResults } from './SearchResults'; import { noResults } from './SearchResults.stories'; import { DEFAULT_REF_ID } from './Sidebar'; +import { index } from './mockdata.large'; import type { Selection } from './types'; -import { IconSymbols } from './IconSymbols'; const refId = DEFAULT_REF_ID; const data = { [refId]: { id: refId, url: '/', index, previewInitialized: true } }; diff --git a/code/core/src/manager/components/sidebar/Search.tsx b/code/core/src/manager/components/sidebar/Search.tsx index 48abe7637de1..470002f85ef3 100644 --- a/code/core/src/manager/components/sidebar/Search.tsx +++ b/code/core/src/manager/components/sidebar/Search.tsx @@ -1,28 +1,31 @@ -import { useStorybookApi, shortcutToHumanString } from '@storybook/core/manager-api'; +import React, { useCallback, useRef, useState } from 'react'; + +import { IconButton, TooltipNote, WithTooltip } from '@storybook/core/components'; import { styled } from '@storybook/core/theming'; +import { global } from '@storybook/global'; +import { CloseIcon, PlusIcon, SearchIcon } from '@storybook/icons'; + +import { shortcutToHumanString, useStorybookApi } from '@storybook/core/manager-api'; + import type { DownshiftState, StateChangeOptions } from 'downshift'; import Downshift from 'downshift'; import type { FuseOptions } from 'fuse.js'; import Fuse from 'fuse.js'; -import { global } from '@storybook/global'; -import React, { useRef, useState, useCallback } from 'react'; -import { CloseIcon, PlusIcon, SearchIcon } from '@storybook/icons'; -import { IconButton, TooltipNote, WithTooltip } from '@storybook/core/components'; + +import { getGroupStatus, getHighestStatus } from '../../utils/status'; +import { scrollIntoView, searchItem } from '../../utils/tree'; +import { useLayout } from '../layout/LayoutProvider'; +import { CreateNewStoryFileModal } from './CreateNewStoryFileModal'; import { DEFAULT_REF_ID } from './Sidebar'; import type { CombinedDataset, - SearchItem, - SearchResult, DownshiftItem, SearchChildrenFn, + SearchItem, + SearchResult, Selection, } from './types'; -import { isSearchResult, isExpandType } from './types'; - -import { scrollIntoView, searchItem } from '../../utils/tree'; -import { getGroupStatus, getHighestStatus } from '../../utils/status'; -import { useLayout } from '../layout/LayoutProvider'; -import { CreateNewStoryFileModal } from './CreateNewStoryFileModal'; +import { isExpandType, isSearchResult } from './types'; const { document } = global; diff --git a/code/core/src/manager/components/sidebar/SearchResults.stories.tsx b/code/core/src/manager/components/sidebar/SearchResults.stories.tsx index c45473a9c3d3..114f529bcd85 100644 --- a/code/core/src/manager/components/sidebar/SearchResults.stories.tsx +++ b/code/core/src/manager/components/sidebar/SearchResults.stories.tsx @@ -1,11 +1,12 @@ import React from 'react'; + import type { StoriesHash } from '@storybook/core/manager-api'; -import { mockDataset } from './mockdata'; -import { SearchResults } from './SearchResults'; -import type { CombinedDataset, Refs, SearchItem } from './types'; import { searchItem } from '../../utils/tree'; import { IconSymbols } from './IconSymbols'; +import { SearchResults } from './SearchResults'; +import { mockDataset } from './mockdata'; +import type { CombinedDataset, Refs, SearchItem } from './types'; export default { component: SearchResults, diff --git a/code/core/src/manager/components/sidebar/SearchResults.tsx b/code/core/src/manager/components/sidebar/SearchResults.tsx index 0259bd2a92e9..4c7793ef9b8d 100644 --- a/code/core/src/manager/components/sidebar/SearchResults.tsx +++ b/code/core/src/manager/components/sidebar/SearchResults.tsx @@ -1,21 +1,23 @@ -import { styled } from '@storybook/core/theming'; -import { Button, IconButton } from '@storybook/core/components'; -import { global } from '@storybook/global'; import type { FC, MouseEventHandler, PropsWithChildren, ReactNode } from 'react'; import React, { useCallback, useEffect } from 'react'; -import type { ControllerStateAndHelpers } from 'downshift'; -import { useStorybookApi } from '@storybook/core/manager-api'; +import { Button, IconButton } from '@storybook/core/components'; +import { styled } from '@storybook/core/theming'; +import { global } from '@storybook/global'; +import { TrashIcon } from '@storybook/icons'; + import { PRELOAD_ENTRIES } from '@storybook/core/core-events'; +import { useStorybookApi } from '@storybook/core/manager-api'; + +import type { ControllerStateAndHelpers } from 'downshift'; import { transparentize } from 'polished'; -import { TrashIcon } from '@storybook/icons'; -import { TypeIcon } from './TreeNode'; -import type { Match, DownshiftItem, SearchResult } from './types'; -import { isExpandType } from './types'; -import { matchesKeyCode, matchesModifiers } from '../../keybinding'; +import { matchesKeyCode, matchesModifiers } from '../../keybinding'; import { statusMapping } from '../../utils/status'; import { UseSymbol } from './IconSymbols'; +import { TypeIcon } from './TreeNode'; +import type { DownshiftItem, Match, SearchResult } from './types'; +import { isExpandType } from './types'; const { document } = global; diff --git a/code/core/src/manager/components/sidebar/Sidebar.stories.tsx b/code/core/src/manager/components/sidebar/Sidebar.stories.tsx index 3179587c2123..230e68ee203f 100644 --- a/code/core/src/manager/components/sidebar/Sidebar.stories.tsx +++ b/code/core/src/manager/components/sidebar/Sidebar.stories.tsx @@ -1,18 +1,20 @@ import React from 'react'; -import type { IndexHash, State } from '@storybook/core/manager-api'; -import { ManagerContext, types } from '@storybook/core/manager-api'; -import type { StoryObj, Meta } from '@storybook/react'; -import { within, userEvent, expect, fn } from '@storybook/test'; -import type { Addon_SidebarTopType } from '@storybook/core/types'; import { Button, IconButton } from '@storybook/core/components'; +import type { Addon_SidebarTopType } from '@storybook/core/types'; import { FaceHappyIcon } from '@storybook/icons'; -import { Sidebar, DEFAULT_REF_ID } from './Sidebar'; +import type { Meta, StoryObj } from '@storybook/react'; +import { expect, fn, userEvent, within } from '@storybook/test'; + +import type { IndexHash, State } from '@storybook/core/manager-api'; +import { ManagerContext, types } from '@storybook/core/manager-api'; + +import { LayoutProvider } from '../layout/LayoutProvider'; import { standardData as standardHeaderData } from './Heading.stories'; +import { IconSymbols } from './IconSymbols'; +import { DEFAULT_REF_ID, Sidebar } from './Sidebar'; import { mockDataset } from './mockdata'; import type { RefType } from './types'; -import { LayoutProvider } from '../layout/LayoutProvider'; -import { IconSymbols } from './IconSymbols'; const wait = (ms: number) => new Promise((resolve) => { diff --git a/code/core/src/manager/components/sidebar/Sidebar.tsx b/code/core/src/manager/components/sidebar/Sidebar.tsx index 583c11518fc9..5cc306d796fb 100644 --- a/code/core/src/manager/components/sidebar/Sidebar.tsx +++ b/code/core/src/manager/components/sidebar/Sidebar.tsx @@ -1,25 +1,23 @@ import React, { useMemo } from 'react'; -import { styled } from '@storybook/core/theming'; import { ScrollArea, Spaced } from '@storybook/core/components'; -import type { State } from '@storybook/core/manager-api'; - +import { styled } from '@storybook/core/theming'; import type { + API_LoadedRefData, Addon_SidebarBottomType, Addon_SidebarTopType, - API_LoadedRefData, } from '@storybook/core/types'; -import type { HeadingProps } from './Heading'; -import { Heading } from './Heading'; -import { Explorer } from './Explorer'; +import type { State } from '@storybook/core/manager-api'; +import { MEDIA_DESKTOP_BREAKPOINT } from '../../constants'; +import { Explorer } from './Explorer'; +import type { HeadingProps } from './Heading'; +import { Heading } from './Heading'; import { Search } from './Search'; - import { SearchResults } from './SearchResults'; import type { CombinedDataset, Selection } from './types'; import { useLastViewed } from './useLastViewed'; -import { MEDIA_DESKTOP_BREAKPOINT } from '../../constants'; export const DEFAULT_REF_ID = 'storybook_internal'; diff --git a/code/core/src/manager/components/sidebar/Tree.stories.tsx b/code/core/src/manager/components/sidebar/Tree.stories.tsx index ab965dfb7d51..aed8dbd4648c 100644 --- a/code/core/src/manager/components/sidebar/Tree.stories.tsx +++ b/code/core/src/manager/components/sidebar/Tree.stories.tsx @@ -1,13 +1,16 @@ // @TODO: use addon-interactions and remove the rule disable above import React, { useState } from 'react'; + +import type { Meta, StoryObj } from '@storybook/react'; +import { expect, within } from '@storybook/test'; + import type { ComponentEntry, IndexHash } from '@storybook/core/manager-api'; + import { action } from '@storybook/addon-actions'; -import type { StoryObj, Meta } from '@storybook/react'; -import { within, expect } from '@storybook/test'; +import { DEFAULT_REF_ID } from './Sidebar'; import { Tree } from './Tree'; import { index } from './mockdata.large'; -import { DEFAULT_REF_ID } from './Sidebar'; const meta = { component: Tree, diff --git a/code/core/src/manager/components/sidebar/Tree.tsx b/code/core/src/manager/components/sidebar/Tree.tsx index f9adf1e16334..41699290cacc 100644 --- a/code/core/src/manager/components/sidebar/Tree.tsx +++ b/code/core/src/manager/components/sidebar/Tree.tsx @@ -1,38 +1,38 @@ +import type { MutableRefObject } from 'react'; +import React, { useCallback, useMemo, useRef } from 'react'; + +import { Button, IconButton, TooltipLinkList, WithTooltip } from '@storybook/core/components'; +import { styled } from '@storybook/core/theming'; +import { CollapseIcon as CollapseIconSvg, ExpandAltIcon } from '@storybook/icons'; + +import { PRELOAD_ENTRIES } from '@storybook/core/core-events'; import { useStorybookApi } from '@storybook/core/manager-api'; import type { - StoriesHash, - GroupEntry, + API, ComponentEntry, - StoryEntry, + GroupEntry, State, - API, + StoriesHash, + StoryEntry, } from '@storybook/core/manager-api'; -import { styled } from '@storybook/core/theming'; -import { Button, IconButton, TooltipLinkList, WithTooltip } from '@storybook/core/components'; -import { transparentize } from 'polished'; -import type { MutableRefObject } from 'react'; -import React, { useCallback, useMemo, useRef } from 'react'; -import { PRELOAD_ENTRIES } from '@storybook/core/core-events'; -import { ExpandAltIcon, CollapseIcon as CollapseIconSvg } from '@storybook/icons'; -import { ComponentNode, DocumentNode, GroupNode, RootNode, StoryNode } from './TreeNode'; - -import type { ExpandAction, ExpandedState } from './useExpanded'; - -import { useExpanded } from './useExpanded'; -import type { Highlight, Item } from './types'; +import { transparentize } from 'polished'; +import { getGroupStatus, getHighestStatus, statusMapping } from '../../utils/status'; import { - isStoryHoistable, createId, getAncestorIds, getDescendantIds, getLink, + isStoryHoistable, } from '../../utils/tree'; -import { statusMapping, getHighestStatus, getGroupStatus } from '../../utils/status'; import { useLayout } from '../layout/LayoutProvider'; import { IconSymbols } from './IconSymbols'; +import { ComponentNode, DocumentNode, GroupNode, RootNode, StoryNode } from './TreeNode'; import { CollapseIcon } from './components/CollapseIcon'; +import type { Highlight, Item } from './types'; +import type { ExpandAction, ExpandedState } from './useExpanded'; +import { useExpanded } from './useExpanded'; const Container = styled.div<{ hasOrphans: boolean }>((props) => ({ marginTop: props.hasOrphans ? 20 : 0, diff --git a/code/core/src/manager/components/sidebar/TreeNode.stories.tsx b/code/core/src/manager/components/sidebar/TreeNode.stories.tsx index b78a9b704773..d35daf9060f6 100644 --- a/code/core/src/manager/components/sidebar/TreeNode.stories.tsx +++ b/code/core/src/manager/components/sidebar/TreeNode.stories.tsx @@ -1,9 +1,9 @@ import React from 'react'; + import { HighlightStyles } from './HighlightStyles'; +import { IconSymbols } from './IconSymbols'; import { LeafNodeStyleWrapper } from './Tree'; - import { ComponentNode, DocumentNode, GroupNode, StoryNode } from './TreeNode'; -import { IconSymbols } from './IconSymbols'; export default { title: 'Sidebar/TreeNode', diff --git a/code/core/src/manager/components/sidebar/TreeNode.tsx b/code/core/src/manager/components/sidebar/TreeNode.tsx index 7c42a42a8f3d..59dd02f04b10 100644 --- a/code/core/src/manager/components/sidebar/TreeNode.tsx +++ b/code/core/src/manager/components/sidebar/TreeNode.tsx @@ -1,7 +1,10 @@ +import type { ComponentProps, FC } from 'react'; +import React from 'react'; + import { styled } from '@storybook/core/theming'; + import { transparentize } from 'polished'; -import type { FC, ComponentProps } from 'react'; -import React from 'react'; + import { UseSymbol } from './IconSymbols'; import { CollapseIcon } from './components/CollapseIcon'; diff --git a/code/core/src/manager/components/sidebar/__tests__/Sidebar.test.tsx b/code/core/src/manager/components/sidebar/__tests__/Sidebar.test.tsx index a24f59333ef5..adc05cb07a55 100644 --- a/code/core/src/manager/components/sidebar/__tests__/Sidebar.test.tsx +++ b/code/core/src/manager/components/sidebar/__tests__/Sidebar.test.tsx @@ -1,14 +1,16 @@ // @vitest-environment happy-dom +import { cleanup, fireEvent, render, screen } from '@testing-library/react'; +import type { RenderResult } from '@testing-library/react'; +import { afterEach, describe, expect, test } from 'vitest'; -import { afterEach, describe, test, expect } from 'vitest'; import React from 'react'; -import { render, screen, fireEvent, cleanup } from '@testing-library/react'; -import { ThemeProvider, ensure, themes } from '@storybook/core/theming'; -import type { HashEntry, Refs } from '@storybook/core/manager-api'; +import { ThemeProvider, ensure, themes } from '@storybook/core/theming'; import type { Theme } from '@storybook/core/theming'; -import type { RenderResult } from '@testing-library/react'; import type { API_IndexHash } from '@storybook/core/types'; + +import type { HashEntry, Refs } from '@storybook/core/manager-api'; + import { Sidebar } from '../Sidebar'; import type { SidebarProps } from '../Sidebar'; diff --git a/code/core/src/manager/components/sidebar/components/CollapseIcon.tsx b/code/core/src/manager/components/sidebar/components/CollapseIcon.tsx index fd3bd67752a4..f4de9e9cd46b 100644 --- a/code/core/src/manager/components/sidebar/components/CollapseIcon.tsx +++ b/code/core/src/manager/components/sidebar/components/CollapseIcon.tsx @@ -1,6 +1,8 @@ -import { styled } from '@storybook/core/theming'; import type { FC } from 'react'; import React from 'react'; + +import { styled } from '@storybook/core/theming'; + import { transparentize } from 'polished'; interface CollapseIconProps { diff --git a/code/core/src/manager/components/sidebar/mockdata.large.ts b/code/core/src/manager/components/sidebar/mockdata.large.ts index b4c2a0b99399..6fb9d233379e 100644 --- a/code/core/src/manager/components/sidebar/mockdata.large.ts +++ b/code/core/src/manager/components/sidebar/mockdata.large.ts @@ -10,7 +10,6 @@ * return acc; * }, {}), null, 2) */ - import type { Dataset } from './types'; // @ts-expect-error (TODO) diff --git a/code/core/src/manager/components/sidebar/types.ts b/code/core/src/manager/components/sidebar/types.ts index b9eac9bf8062..abf0c686b374 100644 --- a/code/core/src/manager/components/sidebar/types.ts +++ b/code/core/src/manager/components/sidebar/types.ts @@ -1,7 +1,9 @@ -import type { StoriesHash, State } from '@storybook/core/manager-api'; -import type { ControllerStateAndHelpers } from 'downshift'; import type { API_StatusState, API_StatusValue } from '@storybook/core/types'; +import type { State, StoriesHash } from '@storybook/core/manager-api'; + +import type { ControllerStateAndHelpers } from 'downshift'; + export type Refs = State['refs']; export type RefType = Refs[keyof Refs] & { status?: API_StatusState }; export type Item = StoriesHash[keyof StoriesHash]; diff --git a/code/core/src/manager/components/sidebar/useExpanded.ts b/code/core/src/manager/components/sidebar/useExpanded.ts index 3af0ed908b8d..dcf49137c968 100644 --- a/code/core/src/manager/components/sidebar/useExpanded.ts +++ b/code/core/src/manager/components/sidebar/useExpanded.ts @@ -1,15 +1,18 @@ +import type { Dispatch, MutableRefObject, Reducer } from 'react'; +import { useCallback, useEffect, useReducer } from 'react'; + +import { global } from '@storybook/global'; + +import { STORIES_COLLAPSE_ALL, STORIES_EXPAND_ALL } from '@storybook/core/core-events'; import type { StoriesHash } from '@storybook/core/manager-api'; import { useStorybookApi } from '@storybook/core/manager-api'; -import { STORIES_COLLAPSE_ALL, STORIES_EXPAND_ALL } from '@storybook/core/core-events'; -import { global } from '@storybook/global'; + import throttle from 'lodash/throttle.js'; -import type { Dispatch, MutableRefObject, Reducer } from 'react'; -import { useCallback, useEffect, useReducer } from 'react'; + import { matchesKeyCode, matchesModifiers } from '../../keybinding'; +import { getAncestorIds, getDescendantIds, isAncestor, scrollIntoView } from '../../utils/tree'; import type { Highlight } from './types'; -import { isAncestor, getAncestorIds, getDescendantIds, scrollIntoView } from '../../utils/tree'; - const { document } = global; export type ExpandedState = Record; diff --git a/code/core/src/manager/components/sidebar/useHighlighted.ts b/code/core/src/manager/components/sidebar/useHighlighted.ts index 5f9df6c2297b..1ca9ed1f6b3c 100644 --- a/code/core/src/manager/components/sidebar/useHighlighted.ts +++ b/code/core/src/manager/components/sidebar/useHighlighted.ts @@ -1,13 +1,14 @@ -import { global } from '@storybook/global'; import type { Dispatch, MutableRefObject, SetStateAction } from 'react'; import { useCallback, useEffect, useRef, useState } from 'react'; -import { useStorybookApi } from '@storybook/core/manager-api'; -import { PRELOAD_ENTRIES } from '@storybook/core/core-events'; -import { matchesKeyCode, matchesModifiers } from '../../keybinding'; -import type { CombinedDataset, Highlight, Selection } from './types'; +import { global } from '@storybook/global'; +import { PRELOAD_ENTRIES } from '@storybook/core/core-events'; +import { useStorybookApi } from '@storybook/core/manager-api'; + +import { matchesKeyCode, matchesModifiers } from '../../keybinding'; import { cycle, isAncestor, scrollIntoView } from '../../utils/tree'; +import type { CombinedDataset, Highlight, Selection } from './types'; const { document, window: globalWindow } = global; diff --git a/code/core/src/manager/components/sidebar/useLastViewed.ts b/code/core/src/manager/components/sidebar/useLastViewed.ts index 1bc8d679883a..0b2f6eddc760 100644 --- a/code/core/src/manager/components/sidebar/useLastViewed.ts +++ b/code/core/src/manager/components/sidebar/useLastViewed.ts @@ -1,5 +1,6 @@ -import debounce from 'lodash/debounce.js'; import { useCallback, useEffect, useMemo, useRef } from 'react'; + +import debounce from 'lodash/debounce.js'; import store from 'store2'; import type { Selection, StoryRef } from './types'; diff --git a/code/core/src/manager/components/upgrade/UpgradeBlock.stories.tsx b/code/core/src/manager/components/upgrade/UpgradeBlock.stories.tsx index 35c180911b2b..1ed8698aad0c 100644 --- a/code/core/src/manager/components/upgrade/UpgradeBlock.stories.tsx +++ b/code/core/src/manager/components/upgrade/UpgradeBlock.stories.tsx @@ -1,8 +1,11 @@ +import React from 'react'; + import type { Meta, StoryObj } from '@storybook/react'; +import { fn } from '@storybook/test'; + import { ManagerContext } from '@storybook/core/manager-api'; -import React from 'react'; + import { UpgradeBlock } from './UpgradeBlock'; -import { fn } from '@storybook/test'; const meta = { component: UpgradeBlock, diff --git a/code/core/src/manager/components/upgrade/UpgradeBlock.tsx b/code/core/src/manager/components/upgrade/UpgradeBlock.tsx index 023dc81ced08..207b9fcef6b1 100644 --- a/code/core/src/manager/components/upgrade/UpgradeBlock.tsx +++ b/code/core/src/manager/components/upgrade/UpgradeBlock.tsx @@ -1,8 +1,11 @@ import type { FC } from 'react'; import React, { useState } from 'react'; + +import { Link } from '@storybook/core/components'; import { styled } from '@storybook/core/theming'; + import { useStorybookApi } from '@storybook/core/manager-api'; -import { Link } from '@storybook/core/components'; + import { MEDIA_DESKTOP_BREAKPOINT } from '../../constants'; interface UpgradeBlockProps { diff --git a/code/core/src/manager/container/Menu.stories.tsx b/code/core/src/manager/container/Menu.stories.tsx index 401a39e7e545..0a2fd0c6b4d8 100644 --- a/code/core/src/manager/container/Menu.stories.tsx +++ b/code/core/src/manager/container/Menu.stories.tsx @@ -1,8 +1,11 @@ import type { FC, MouseEvent, PropsWithChildren, ReactElement } from 'react'; import React, { Children, cloneElement } from 'react'; -import { action } from '@storybook/addon-actions'; -import type { Meta, StoryObj } from '@storybook/react'; + import { TooltipLinkList, WithTooltip } from '@storybook/core/components'; +import type { Meta, StoryObj } from '@storybook/react'; + +import { action } from '@storybook/addon-actions'; + import { Shortcut } from './Menu'; const onLinkClick = action('onLinkClick'); diff --git a/code/core/src/manager/container/Menu.tsx b/code/core/src/manager/container/Menu.tsx index ce1cce434226..b2b92ef17ad1 100644 --- a/code/core/src/manager/container/Menu.tsx +++ b/code/core/src/manager/container/Menu.tsx @@ -2,11 +2,12 @@ import type { FC } from 'react'; import React, { useCallback, useMemo } from 'react'; import { Badge } from '@storybook/core/components'; -import type { API, State } from '@storybook/core/manager-api'; -import { shortcutToHumanString } from '@storybook/core/manager-api'; import { styled, useTheme } from '@storybook/core/theming'; import { CheckIcon, InfoIcon, ShareAltIcon, WandIcon } from '@storybook/icons'; + import { STORIES_COLLAPSE_ALL } from '@storybook/core/core-events'; +import type { API, State } from '@storybook/core/manager-api'; +import { shortcutToHumanString } from '@storybook/core/manager-api'; const focusableUIElements = { storySearchField: 'storybook-explorer-searchfield', diff --git a/code/core/src/manager/container/Panel.tsx b/code/core/src/manager/container/Panel.tsx index c8accbb6c4e2..c81e489d8f68 100644 --- a/code/core/src/manager/container/Panel.tsx +++ b/code/core/src/manager/container/Panel.tsx @@ -1,9 +1,12 @@ import type { FC } from 'react'; import React from 'react'; -import memoize from 'memoizerific'; + +import { Addon_TypesEnum } from '@storybook/core/types'; + import { Consumer } from '@storybook/core/manager-api'; import type { API, Combo } from '@storybook/core/manager-api'; -import { Addon_TypesEnum } from '@storybook/core/types'; + +import memoize from 'memoizerific'; import { AddonPanel } from '../components/panel/Panel'; diff --git a/code/core/src/manager/container/Preview.tsx b/code/core/src/manager/container/Preview.tsx index 9d824b408cc9..fabda783bf64 100644 --- a/code/core/src/manager/container/Preview.tsx +++ b/code/core/src/manager/container/Preview.tsx @@ -1,24 +1,25 @@ -import { global } from '@storybook/global'; -import type { Addon_BaseType, Addon_Collection, Addon_WrapperType } from '@storybook/core/types'; -import { Addon_TypesEnum } from '@storybook/core/types'; import type { ComponentProps } from 'react'; import React from 'react'; -import memoizerific from 'memoizerific'; +import type { Addon_BaseType, Addon_Collection, Addon_WrapperType } from '@storybook/core/types'; +import { Addon_TypesEnum } from '@storybook/core/types'; +import { global } from '@storybook/global'; import type { State, StoriesHash } from '@storybook/core/manager-api'; import { Consumer } from '@storybook/core/manager-api'; +import memoizerific from 'memoizerific'; + import { Preview, createCanvasTab, filterTabs } from '../components/preview/Preview'; -import { defaultWrappers } from '../components/preview/Wrappers'; import { filterToolsSide, fullScreenTool } from '../components/preview/Toolbar'; +import { defaultWrappers } from '../components/preview/Wrappers'; +import { addonsTool } from '../components/preview/tools/addons'; +import { copyTool } from '../components/preview/tools/copy'; +import { ejectTool } from '../components/preview/tools/eject'; import { menuTool } from '../components/preview/tools/menu'; import { remountTool } from '../components/preview/tools/remount'; import { zoomTool } from '../components/preview/tools/zoom'; import type { PreviewProps } from '../components/preview/utils/types'; -import { addonsTool } from '../components/preview/tools/addons'; -import { copyTool } from '../components/preview/tools/copy'; -import { ejectTool } from '../components/preview/tools/eject'; const defaultTabs = [createCanvasTab()]; const defaultTools = [menuTool, remountTool, zoomTool]; diff --git a/code/core/src/manager/container/Sidebar.tsx b/code/core/src/manager/container/Sidebar.tsx index 058361de9afb..61f0ff57c76d 100755 --- a/code/core/src/manager/container/Sidebar.tsx +++ b/code/core/src/manager/container/Sidebar.tsx @@ -1,8 +1,9 @@ import React, { useMemo } from 'react'; +import { Addon_TypesEnum } from '@storybook/core/types'; + import type { Combo, StoriesHash } from '@storybook/core/manager-api'; import { Consumer } from '@storybook/core/manager-api'; -import { Addon_TypesEnum } from '@storybook/core/types'; import type { SidebarProps as SidebarComponentProps } from '../components/sidebar/Sidebar'; import { Sidebar as SidebarComponent } from '../components/sidebar/Sidebar'; diff --git a/code/core/src/manager/globals-runtime.ts b/code/core/src/manager/globals-runtime.ts index 25ce25d7581e..7e4c07eccb28 100644 --- a/code/core/src/manager/globals-runtime.ts +++ b/code/core/src/manager/globals-runtime.ts @@ -2,8 +2,8 @@ import { global } from '@storybook/global'; import { TELEMETRY_ERROR } from '@storybook/core/core-events'; -import { globalsNameValueMap } from './globals/runtime'; import { globalPackages, globalsNameReferenceMap } from './globals/globals'; +import { globalsNameValueMap } from './globals/runtime'; import { prepareForTelemetry, shouldSkipError } from './utils/prepareForTelemetry'; // Apply all the globals diff --git a/code/core/src/manager/globals/globals-module-info.ts b/code/core/src/manager/globals/globals-module-info.ts index 193ee13d615f..ff5e8f0b9ecb 100644 --- a/code/core/src/manager/globals/globals-module-info.ts +++ b/code/core/src/manager/globals/globals-module-info.ts @@ -1,4 +1,5 @@ import type { ModuleInfo } from '@fal-works/esbuild-plugin-global-externals'; + import Exports from './exports'; import { globalPackages, globalsNameReferenceMap } from './globals'; diff --git a/code/core/src/manager/globals/runtime.ts b/code/core/src/manager/globals/runtime.ts index fcca6ea55a5c..50fa1568e853 100644 --- a/code/core/src/manager/globals/runtime.ts +++ b/code/core/src/manager/globals/runtime.ts @@ -1,19 +1,20 @@ import * as REACT from 'react'; -import * as REACT_DOM from 'react-dom'; -import * as REACT_DOM_CLIENT from 'react-dom/client'; - -import * as COMPONENTS from '@storybook/core/components'; -import * as ICONS from '@storybook/icons'; -import * as MANAGER_API from '@storybook/core/manager-api'; import * as CHANNELS from '@storybook/core/channels'; -import * as EVENTS from '@storybook/core/core-events'; -import * as EVENTS_MANAGER_ERRORS from '@storybook/core/manager-errors'; +import * as COMPONENTS from '@storybook/core/components'; import * as ROUTER from '@storybook/core/router'; import * as THEMING from '@storybook/core/theming'; import * as THEMINGCREATE from '@storybook/core/theming/create'; import * as TYPES from '@storybook/core/types'; +import * as ICONS from '@storybook/icons'; + import * as CLIENT_LOGGER from '@storybook/core/client-logger'; +import * as EVENTS from '@storybook/core/core-events'; +import * as MANAGER_API from '@storybook/core/manager-api'; +import * as EVENTS_MANAGER_ERRORS from '@storybook/core/manager-errors'; + +import * as REACT_DOM from 'react-dom'; +import * as REACT_DOM_CLIENT from 'react-dom/client'; import type { globalsNameReferenceMap } from './globals'; diff --git a/code/core/src/manager/index.tsx b/code/core/src/manager/index.tsx index 4d01da8e8253..fcdca0fa2348 100644 --- a/code/core/src/manager/index.tsx +++ b/code/core/src/manager/index.tsx @@ -1,23 +1,23 @@ -import { global } from '@storybook/global'; import type { ComponentProps, FC } from 'react'; -import { createRoot } from 'react-dom/client'; import React, { useCallback, useMemo } from 'react'; import { Location, LocationProvider, useNavigate } from '@storybook/core/router'; +import { ThemeProvider, ensure as ensureTheme } from '@storybook/core/theming'; +import type { Addon_PageType } from '@storybook/core/types'; +import { global } from '@storybook/global'; + import { Provider as ManagerProvider, types } from '@storybook/core/manager-api'; import type { Combo } from '@storybook/core/manager-api'; -import { ThemeProvider, ensure as ensureTheme } from '@storybook/core/theming'; import { ProviderDoesNotExtendBaseProviderError } from '@storybook/core/manager-errors'; +import { createRoot } from 'react-dom/client'; import { HelmetProvider } from 'react-helmet-async'; -import type { Addon_PageType } from '@storybook/core/types'; import { App } from './App'; - +import type { Layout } from './components/layout/Layout'; +import { LayoutProvider } from './components/layout/LayoutProvider'; import Provider from './provider'; import { settingsPageAddon } from './settings/index'; -import { LayoutProvider } from './components/layout/LayoutProvider'; -import type { Layout } from './components/layout/Layout'; // @ts-expect-error (Converted from ts-ignore) ThemeProvider.displayName = 'ThemeProvider'; diff --git a/code/core/src/manager/runtime.ts b/code/core/src/manager/runtime.ts index f73515f425d8..2ae3fede77ca 100644 --- a/code/core/src/manager/runtime.ts +++ b/code/core/src/manager/runtime.ts @@ -1,13 +1,14 @@ +import type { Channel } from '@storybook/core/channels'; +import { createBrowserChannel } from '@storybook/core/channels'; +import type { Addon_Config, Addon_Types } from '@storybook/core/types'; import { global } from '@storybook/global'; -import type { Channel } from '@storybook/core/channels'; +import { CHANNEL_CREATED } from '@storybook/core/core-events'; import type { AddonStore } from '@storybook/core/manager-api'; import { addons } from '@storybook/core/manager-api'; -import type { Addon_Types, Addon_Config } from '@storybook/core/types'; -import { createBrowserChannel } from '@storybook/core/channels'; -import { CHANNEL_CREATED } from '@storybook/core/core-events'; -import Provider from './provider'; + import { renderStorybookUI } from './index'; +import Provider from './provider'; class ReactProvider extends Provider { addons: AddonStore; diff --git a/code/core/src/manager/settings/About.tsx b/code/core/src/manager/settings/About.tsx index d6b3aae8aa68..4f9001fb7c3f 100644 --- a/code/core/src/manager/settings/About.tsx +++ b/code/core/src/manager/settings/About.tsx @@ -1,9 +1,10 @@ import type { FC } from 'react'; import React from 'react'; -import { styled } from '@storybook/core/theming'; import { Button, Link, StorybookLogo } from '@storybook/core/components'; +import { styled } from '@storybook/core/theming'; import { DocumentIcon, GithubIcon } from '@storybook/icons'; + import { UpgradeBlock } from '../components/upgrade/UpgradeBlock'; const Container = styled.div({ diff --git a/code/core/src/manager/settings/SettingsFooter.stories.tsx b/code/core/src/manager/settings/SettingsFooter.stories.tsx index 5bd0bb8f3b82..fb138e96b689 100644 --- a/code/core/src/manager/settings/SettingsFooter.stories.tsx +++ b/code/core/src/manager/settings/SettingsFooter.stories.tsx @@ -1,6 +1,7 @@ import React from 'react'; import type { Decorator } from '@storybook/react'; + import SettingsFooter from './SettingsFooter'; export default { diff --git a/code/core/src/manager/settings/SettingsFooter.tsx b/code/core/src/manager/settings/SettingsFooter.tsx index 8bc273f8e95c..308e9e2dd2fe 100644 --- a/code/core/src/manager/settings/SettingsFooter.tsx +++ b/code/core/src/manager/settings/SettingsFooter.tsx @@ -1,8 +1,8 @@ import type { FC } from 'react'; import React from 'react'; -import { styled } from '@storybook/core/theming'; import { Link } from '@storybook/core/components'; +import { styled } from '@storybook/core/theming'; const Footer = styled.div(({ theme }) => ({ display: 'flex', diff --git a/code/core/src/manager/settings/about.stories.tsx b/code/core/src/manager/settings/about.stories.tsx index 45891544227b..d63d246d447a 100644 --- a/code/core/src/manager/settings/about.stories.tsx +++ b/code/core/src/manager/settings/about.stories.tsx @@ -1,9 +1,11 @@ -import type { Meta, StoryObj } from '@storybook/react'; import React from 'react'; -import { AboutScreen } from './About'; -import UpgradeBlockStoriesMeta from '../components/upgrade/UpgradeBlock.stories'; + +import type { Meta, StoryObj } from '@storybook/react'; import { fn } from '@storybook/test'; +import UpgradeBlockStoriesMeta from '../components/upgrade/UpgradeBlock.stories'; +import { AboutScreen } from './About'; + const meta = { component: AboutScreen, title: 'Settings/AboutScreen', diff --git a/code/core/src/manager/settings/index.tsx b/code/core/src/manager/settings/index.tsx index 0bd3c661f602..5ae202f65ea2 100644 --- a/code/core/src/manager/settings/index.tsx +++ b/code/core/src/manager/settings/index.tsx @@ -1,17 +1,19 @@ -import { useStorybookApi, useStorybookState, types } from '@storybook/core/manager-api'; -import { IconButton, TabBar, TabButton, ScrollArea } from '@storybook/core/components'; -import { Location, Route } from '@storybook/core/router'; -import { styled } from '@storybook/core/theming'; -import { global } from '@storybook/global'; import type { FC, SyntheticEvent } from 'react'; import React, { Fragment } from 'react'; +import { IconButton, ScrollArea, TabBar, TabButton } from '@storybook/core/components'; +import { Location, Route } from '@storybook/core/router'; +import { styled } from '@storybook/core/theming'; import type { Addon_PageType } from '@storybook/core/types'; +import { global } from '@storybook/global'; import { CloseIcon } from '@storybook/icons'; + +import { types, useStorybookApi, useStorybookState } from '@storybook/core/manager-api'; + +import { matchesKeyCode, matchesModifiers } from '../keybinding'; import { AboutPage } from './AboutPage'; import { ShortcutsPage } from './ShortcutsPage'; import { WhatsNewPage } from './whats_new_page'; -import { matchesModifiers, matchesKeyCode } from '../keybinding'; const { document } = global; diff --git a/code/core/src/manager/settings/shortcuts.stories.tsx b/code/core/src/manager/settings/shortcuts.stories.tsx index 555f5b6b0b6a..67f3b97a149d 100644 --- a/code/core/src/manager/settings/shortcuts.stories.tsx +++ b/code/core/src/manager/settings/shortcuts.stories.tsx @@ -1,9 +1,11 @@ import React from 'react'; -import { actions as makeActions } from '@storybook/addon-actions'; import type { Decorator } from '@storybook/react'; -import { ShortcutsScreen } from './shortcuts'; + +import { actions as makeActions } from '@storybook/addon-actions'; + import { defaultShortcuts } from './defaultShortcuts'; +import { ShortcutsScreen } from './shortcuts'; const actions = makeActions( 'setShortcut', diff --git a/code/core/src/manager/settings/shortcuts.tsx b/code/core/src/manager/settings/shortcuts.tsx index 74d716faf4ab..9befc68ea3a4 100644 --- a/code/core/src/manager/settings/shortcuts.tsx +++ b/code/core/src/manager/settings/shortcuts.tsx @@ -1,15 +1,17 @@ import type { ComponentProps, FC } from 'react'; import React, { Component } from 'react'; -import { styled, keyframes } from '@storybook/core/theming'; + +import { Button, Form } from '@storybook/core/components'; +import { keyframes, styled } from '@storybook/core/theming'; +import { CheckIcon } from '@storybook/icons'; import { eventToShortcut, - shortcutToHumanString, shortcutMatchesShortcut, + shortcutToHumanString, } from '@storybook/core/manager-api'; -import { Button, Form } from '@storybook/core/components'; + import SettingsFooter from './SettingsFooter'; -import { CheckIcon } from '@storybook/icons'; const Header = styled.header(({ theme }) => ({ marginBottom: 20, diff --git a/code/core/src/manager/settings/whats_new.tsx b/code/core/src/manager/settings/whats_new.tsx index cbf00ce7817c..aa483334e0ce 100644 --- a/code/core/src/manager/settings/whats_new.tsx +++ b/code/core/src/manager/settings/whats_new.tsx @@ -1,10 +1,12 @@ import type { ComponentProps, FC } from 'react'; import React, { Fragment, useEffect, useState } from 'react'; -import { styled, useTheme } from '@storybook/core/theming'; + import { Button, Loader } from '@storybook/core/components'; -import { useStorybookApi, useStorybookState } from '@storybook/core/manager-api'; +import { styled, useTheme } from '@storybook/core/theming'; import { global } from '@storybook/global'; -import { EyeCloseIcon, EyeIcon, HeartIcon, AlertIcon as AlertIconSvg } from '@storybook/icons'; +import { AlertIcon as AlertIconSvg, EyeCloseIcon, EyeIcon, HeartIcon } from '@storybook/icons'; + +import { useStorybookApi, useStorybookState } from '@storybook/core/manager-api'; const Centered = styled.div({ top: '50%', diff --git a/code/core/src/manager/settings/whats_new_footer.stories.tsx b/code/core/src/manager/settings/whats_new_footer.stories.tsx index 8815eb0ec1c2..9e0a88c04562 100644 --- a/code/core/src/manager/settings/whats_new_footer.stories.tsx +++ b/code/core/src/manager/settings/whats_new_footer.stories.tsx @@ -1,4 +1,5 @@ import type { Meta, StoryObj } from '@storybook/react'; + import { WhatsNewFooter } from './whats_new'; const meta = { diff --git a/code/core/src/manager/utils/prepareForTelemetry.ts b/code/core/src/manager/utils/prepareForTelemetry.ts index 959251c9260d..ccbb8bf236ba 100644 --- a/code/core/src/manager/utils/prepareForTelemetry.ts +++ b/code/core/src/manager/utils/prepareForTelemetry.ts @@ -1,6 +1,8 @@ /* eslint-disable local-rules/no-uncategorized-errors */ -import { UncaughtManagerError } from '@storybook/core/manager-errors'; import { global } from '@storybook/global'; + +import { UncaughtManagerError } from '@storybook/core/manager-errors'; + import type { BrowserInfo } from 'browser-dtector'; import BrowserDetector from 'browser-dtector'; diff --git a/code/core/src/manager/utils/status.test.ts b/code/core/src/manager/utils/status.test.ts index c45b14063db1..5bedc3571e8c 100644 --- a/code/core/src/manager/utils/status.test.ts +++ b/code/core/src/manager/utils/status.test.ts @@ -1,8 +1,8 @@ // @vitest-environment happy-dom +import { describe, expect, it } from 'vitest'; -import { describe, it, expect } from 'vitest'; -import { getHighestStatus, getGroupStatus } from './status'; import { mockDataset } from '../components/sidebar/mockdata'; +import { getGroupStatus, getHighestStatus } from './status'; describe('getHighestStatus', () => { it('default value', () => { diff --git a/code/core/src/manager/utils/status.tsx b/code/core/src/manager/utils/status.tsx index 05092844bdc3..3474ba64b393 100644 --- a/code/core/src/manager/utils/status.tsx +++ b/code/core/src/manager/utils/status.tsx @@ -1,11 +1,11 @@ import React from 'react'; import type { ReactElement } from 'react'; -import type { API_HashEntry, API_StatusState, API_StatusValue } from '@storybook/core/types'; import { styled } from '@storybook/core/theming'; +import type { API_HashEntry, API_StatusState, API_StatusValue } from '@storybook/core/types'; +import { CircleIcon } from '@storybook/icons'; import { getDescendantIds } from './tree'; -import { CircleIcon } from '@storybook/icons'; const SmallIcons = styled(CircleIcon)({ // specificity hack diff --git a/code/core/src/manager/utils/tree.test.js b/code/core/src/manager/utils/tree.test.js index 57761f7c18a1..061e7dbc8e26 100644 --- a/code/core/src/manager/utils/tree.test.js +++ b/code/core/src/manager/utils/tree.test.js @@ -1,8 +1,7 @@ // @vitest-environment happy-dom +import { describe, expect, it } from 'vitest'; -import { describe, it, expect } from 'vitest'; import { mockDataset, mockExpanded, mockSelected } from '../components/sidebar/mockdata'; - import * as utils from './tree'; const noRoot = { diff --git a/code/core/src/manager/utils/tree.ts b/code/core/src/manager/utils/tree.ts index 8b6190bd3e8b..cb0bd8cb67ce 100644 --- a/code/core/src/manager/utils/tree.ts +++ b/code/core/src/manager/utils/tree.ts @@ -1,10 +1,13 @@ -import memoize from 'memoizerific'; -import { global } from '@storybook/global'; import type { SyntheticEvent } from 'react'; + +import { global } from '@storybook/global'; + import type { HashEntry, IndexHash } from '@storybook/core/manager-api'; +import memoize from 'memoizerific'; + import { DEFAULT_REF_ID } from '../components/sidebar/Sidebar'; -import type { Item, RefType, Dataset, SearchItem } from '../components/sidebar/types'; +import type { Dataset, Item, RefType, SearchItem } from '../components/sidebar/types'; const { document, window: globalWindow } = global; diff --git a/code/core/src/node-logger/index.test.ts b/code/core/src/node-logger/index.test.ts index 50cce3a88b71..c7948363545e 100644 --- a/code/core/src/node-logger/index.test.ts +++ b/code/core/src/node-logger/index.test.ts @@ -1,5 +1,7 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import npmlog from 'npmlog'; + import { logger } from '.'; globalThis.console = { log: vi.fn() } as any; diff --git a/code/core/src/node-logger/index.ts b/code/core/src/node-logger/index.ts index 61234e4b8fcd..38df1d3df5d2 100644 --- a/code/core/src/node-logger/index.ts +++ b/code/core/src/node-logger/index.ts @@ -1,8 +1,7 @@ /// - +import chalk from 'chalk'; import npmLog from 'npmlog'; import prettyTime from 'pretty-hrtime'; -import chalk from 'chalk'; // The default is stderr, which can cause some tools (like rush.js) to think // there are issues with the build: https://github.com/storybookjs/storybook/issues/14621 diff --git a/code/core/src/preview-api/Errors.stories.tsx b/code/core/src/preview-api/Errors.stories.tsx index 231905e9bca5..2782999de392 100644 --- a/code/core/src/preview-api/Errors.stories.tsx +++ b/code/core/src/preview-api/Errors.stories.tsx @@ -1,4 +1,5 @@ import React from 'react'; + import AnsiToHtml from 'ansi-to-html'; import { dedent } from 'ts-dedent'; diff --git a/code/core/src/preview-api/README-store.md b/code/core/src/preview-api/README-store.md index 8e261bf30e65..cea82a905649 100644 --- a/code/core/src/preview-api/README-store.md +++ b/code/core/src/preview-api/README-store.md @@ -78,7 +78,9 @@ Note that arg values are passed directly to a story -- you should only store the Both `@storybook/preview-api` and `@storybook/manager-api` export a `useArgs()` hook that you can use to access args in decorators or addon panels. The API is as follows: ```js -import { useArgs } from '@storybook/preview-api'; // or '@storybook/manager-api' +import { useArgs } from '@storybook/preview-api'; + +// or '@storybook/manager-api' // `args` is the args of the currently rendered story // `updateArgs` will update its args. You can pass a subset of the args; other args will not be changed. @@ -110,7 +112,9 @@ To set initial values of globals, `export const globals = {...}` from `preview.j Similar to args, globals are synchronized to the manager and can be accessed via the `useGlobals` hook. ```js -import { useGlobals } from '@storybook/preview-api'; // or '@storybook/manager-api' +import { useGlobals } from '@storybook/preview-api'; + +// or '@storybook/manager-api' const [globals, updateGlobals] = useGlobals(); ``` diff --git a/code/core/src/preview-api/modules/addons/hooks.test.js b/code/core/src/preview-api/modules/addons/hooks.test.js index 2fc21ff88b85..2e716d8b10b1 100644 --- a/code/core/src/preview-api/modules/addons/hooks.test.js +++ b/code/core/src/preview-api/modules/addons/hooks.test.js @@ -1,4 +1,5 @@ -import { describe, beforeEach, afterEach, expect, it } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it } from 'vitest'; + import { useParameter, useStoryContext } from './hooks'; describe('addons/hooks', () => { diff --git a/code/core/src/preview-api/modules/addons/hooks.ts b/code/core/src/preview-api/modules/addons/hooks.ts index 0c80bdd07dc9..b956f45e9dce 100644 --- a/code/core/src/preview-api/modules/addons/hooks.ts +++ b/code/core/src/preview-api/modules/addons/hooks.ts @@ -1,13 +1,3 @@ -import { global } from '@storybook/global'; -import { logger } from '@storybook/core/client-logger'; -import { - FORCE_RE_RENDER, - STORY_RENDERED, - UPDATE_STORY_ARGS, - RESET_STORY_ARGS, - UPDATE_GLOBALS, -} from '@storybook/core/core-events'; -import { addons } from './main'; import type { Args, DecoratorApplicator, @@ -17,6 +7,18 @@ import type { StoryContext, StoryId, } from '@storybook/core/types'; +import { global } from '@storybook/global'; + +import { logger } from '@storybook/core/client-logger'; +import { + FORCE_RE_RENDER, + RESET_STORY_ARGS, + STORY_RENDERED, + UPDATE_GLOBALS, + UPDATE_STORY_ARGS, +} from '@storybook/core/core-events'; + +import { addons } from './main'; interface Hook { name: string; diff --git a/code/core/src/preview-api/modules/addons/main.ts b/code/core/src/preview-api/modules/addons/main.ts index bd4061b618ae..f2012bab9f07 100644 --- a/code/core/src/preview-api/modules/addons/main.ts +++ b/code/core/src/preview-api/modules/addons/main.ts @@ -1,6 +1,6 @@ +import type { Channel } from '@storybook/core/channels'; import { global } from '@storybook/global'; -import type { Channel } from '@storybook/core/channels'; import { mockChannel } from './storybook-channel-mock'; export class AddonStore { diff --git a/code/core/src/preview-api/modules/addons/make-decorator.test.ts b/code/core/src/preview-api/modules/addons/make-decorator.test.ts index 316a5dc9d1a9..d926c9f5da81 100644 --- a/code/core/src/preview-api/modules/addons/make-decorator.test.ts +++ b/code/core/src/preview-api/modules/addons/make-decorator.test.ts @@ -1,5 +1,7 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import type { Addon_StoryContext } from '@storybook/core/types'; + import { makeDecorator } from './make-decorator'; // Copy & paste from internal api: client-api/src/client_api diff --git a/code/core/src/preview-api/modules/preview-web/Preview.tsx b/code/core/src/preview-api/modules/preview-web/Preview.tsx index 681d0c47c935..8f03cad2b04e 100644 --- a/code/core/src/preview-api/modules/preview-web/Preview.tsx +++ b/code/core/src/preview-api/modules/preview-web/Preview.tsx @@ -1,4 +1,22 @@ +import type { Channel } from '@storybook/core/channels'; +import type { + Args, + Globals, + GlobalsUpdatedPayload, + ModuleImportFn, + PreparedStory, + ProjectAnnotations, + RenderContextCallbacks, + RenderToCanvas, + Renderer, + SetGlobalsPayload, + StoryId, + StoryIndex, + StoryRenderOptions, +} from '@storybook/core/types'; +import type { CleanupCallback } from '@storybook/csf'; import { global } from '@storybook/global'; + import { deprecate, logger } from '@storybook/core/client-logger'; import type { ArgTypesRequestPayload, @@ -20,35 +38,18 @@ import { UPDATE_GLOBALS, UPDATE_STORY_ARGS, } from '@storybook/core/core-events'; -import type { CleanupCallback } from '@storybook/csf'; -import type { Channel } from '@storybook/core/channels'; -import type { - Renderer, - Args, - Globals, - ModuleImportFn, - RenderContextCallbacks, - RenderToCanvas, - PreparedStory, - StoryIndex, - ProjectAnnotations, - StoryId, - StoryRenderOptions, - SetGlobalsPayload, - GlobalsUpdatedPayload, -} from '@storybook/core/types'; import { CalledPreviewMethodBeforeInitializationError, MissingRenderToCanvasError, StoryIndexFetchError, StoryStoreAccessedBeforeInitializationError, } from '@storybook/core/preview-errors'; -import { addons } from '../addons'; -import { StoryStore } from '../../store'; -import { StoryRender } from './render/StoryRender'; +import { StoryStore } from '../../store'; +import { addons } from '../addons'; import type { CsfDocsRender } from './render/CsfDocsRender'; import type { MdxDocsRender } from './render/MdxDocsRender'; +import { StoryRender } from './render/StoryRender'; const { fetch } = global; diff --git a/code/core/src/preview-api/modules/preview-web/PreviewWeb.integration.test.ts b/code/core/src/preview-api/modules/preview-web/PreviewWeb.integration.test.ts index d4818c162a3f..6c86c2d86385 100644 --- a/code/core/src/preview-api/modules/preview-web/PreviewWeb.integration.test.ts +++ b/code/core/src/preview-api/modules/preview-web/PreviewWeb.integration.test.ts @@ -1,23 +1,24 @@ // @vitest-environment happy-dom -import { describe, beforeEach, it, expect, vi } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; import React from 'react'; -import { global } from '@storybook/global'; + import type { RenderContext } from '@storybook/core/types'; -import { addons } from '../addons'; +import { global } from '@storybook/global'; +import { addons } from '../addons'; import { PreviewWeb } from './PreviewWeb'; -import { WebView } from './WebView'; import { componentOneExports, - importFn, - projectAnnotations, - getProjectAnnotations, emitter, + getProjectAnnotations, + importFn, mockChannel, - waitForRender, storyIndex as mockStoryIndex, + projectAnnotations, + waitForRender, } from './PreviewWeb.mockdata'; +import { WebView } from './WebView'; // PreviewWeb.test mocks out all rendering // - ie. from`renderToCanvas()` (stories) or`ReactDOM.render()` (docs) in. diff --git a/code/core/src/preview-api/modules/preview-web/PreviewWeb.mockdata.ts b/code/core/src/preview-api/modules/preview-web/PreviewWeb.mockdata.ts index 64b083d1b7b7..30abd5df7d15 100644 --- a/code/core/src/preview-api/modules/preview-web/PreviewWeb.mockdata.ts +++ b/code/core/src/preview-api/modules/preview-web/PreviewWeb.mockdata.ts @@ -1,7 +1,14 @@ import type { Mock, Mocked } from 'vitest'; import { vi } from 'vitest'; -import { EventEmitter } from 'events'; +import type { + ModuleImportFn, + ProjectAnnotations, + Renderer, + StoryIndex, + TeardownRenderToCanvas, +} from '@storybook/core/types'; + import { DOCS_RENDERED, STORY_ERRORED, @@ -11,15 +18,10 @@ import { STORY_THREW_EXCEPTION, } from '@storybook/core/core-events'; -import type { - ModuleImportFn, - ProjectAnnotations, - Renderer, - StoryIndex, - TeardownRenderToCanvas, -} from '@storybook/core/types'; -import type { RenderPhase } from './render/StoryRender'; +import { EventEmitter } from 'events'; + import { composeConfigs } from '../store'; +import type { RenderPhase } from './render/StoryRender'; export const componentOneExports = { default: { diff --git a/code/core/src/preview-api/modules/preview-web/PreviewWeb.test.ts b/code/core/src/preview-api/modules/preview-web/PreviewWeb.test.ts index ae11cb3f7221..7994173c2d07 100644 --- a/code/core/src/preview-api/modules/preview-web/PreviewWeb.test.ts +++ b/code/core/src/preview-api/modules/preview-web/PreviewWeb.test.ts @@ -1,15 +1,19 @@ // @vitest-environment happy-dom -import { describe, beforeEach, afterEach, it, expect, vi } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import type { ModuleImportFn, ProjectAnnotations, Renderer } from '@storybook/core/types'; import { global } from '@storybook/global'; -import merge from 'lodash/merge.js'; + +import { logger } from '@storybook/core/client-logger'; import { CONFIG_ERROR, CURRENT_STORY_WAS_SET, + DOCS_PREPARED, DOCS_RENDERED, FORCE_REMOUNT, FORCE_RE_RENDER, GLOBALS_UPDATED, + PLAY_FUNCTION_THREW_EXCEPTION, PREVIEW_KEYDOWN, RESET_STORY_ARGS, SET_CURRENT_STORY, @@ -22,36 +26,34 @@ import { STORY_RENDERED, STORY_SPECIFIED, STORY_THREW_EXCEPTION, - PLAY_FUNCTION_THREW_EXCEPTION, STORY_UNCHANGED, UPDATE_GLOBALS, UPDATE_STORY_ARGS, - DOCS_PREPARED, } from '@storybook/core/core-events'; -import { logger } from '@storybook/core/client-logger'; -import type { Renderer, ModuleImportFn, ProjectAnnotations } from '@storybook/core/types'; -import { addons } from '../addons'; +import merge from 'lodash/merge.js'; + +import { addons } from '../addons'; +import type { StoryStore } from '../store'; import { PreviewWeb } from './PreviewWeb'; import { componentOneExports, componentTwoExports, + docsRenderer, + emitter, + getProjectAnnotations, importFn, + mockChannel, projectAnnotations, - getProjectAnnotations, storyIndex, - emitter, - mockChannel, + teardownrenderToCanvas, + unattachedDocsExports, waitForEvents, - waitForRender, waitForQuiescence, + waitForRender, waitForRenderPhase, - docsRenderer, - unattachedDocsExports, - teardownrenderToCanvas, } from './PreviewWeb.mockdata'; import { WebView } from './WebView'; -import type { StoryStore } from '../store'; const { history, document } = global; diff --git a/code/core/src/preview-api/modules/preview-web/PreviewWeb.tsx b/code/core/src/preview-api/modules/preview-web/PreviewWeb.tsx index 0ee61fac402a..cb2931350b91 100644 --- a/code/core/src/preview-api/modules/preview-web/PreviewWeb.tsx +++ b/code/core/src/preview-api/modules/preview-web/PreviewWeb.tsx @@ -1,12 +1,12 @@ /* eslint-disable no-underscore-dangle */ +import type { Renderer } from '@storybook/core/types'; +import type { ModuleImportFn, ProjectAnnotations } from '@storybook/core/types'; import { global } from '@storybook/global'; +import type { MaybePromise } from './Preview'; import { PreviewWithSelection } from './PreviewWithSelection'; import { UrlStore } from './UrlStore'; import { WebView } from './WebView'; -import type { MaybePromise } from './Preview'; -import type { Renderer } from '@storybook/core/types'; -import type { ModuleImportFn, ProjectAnnotations } from '@storybook/core/types'; export class PreviewWeb extends PreviewWithSelection { constructor( diff --git a/code/core/src/preview-api/modules/preview-web/PreviewWithSelection.tsx b/code/core/src/preview-api/modules/preview-web/PreviewWithSelection.tsx index 9bed42b07ea6..711e3ac0f187 100644 --- a/code/core/src/preview-api/modules/preview-web/PreviewWithSelection.tsx +++ b/code/core/src/preview-api/modules/preview-web/PreviewWithSelection.tsx @@ -1,4 +1,8 @@ -import invariant from 'tiny-invariant'; +import type { DocsIndexEntry, StoryIndex } from '@storybook/core/types'; +import type { Args, Globals, Renderer, StoryId, ViewMode } from '@storybook/core/types'; +import type { ModuleImportFn, ProjectAnnotations } from '@storybook/core/types'; + +import { logger } from '@storybook/core/client-logger'; import { CURRENT_STORY_WAS_SET, DOCS_PREPARED, @@ -16,27 +20,24 @@ import { STORY_UNCHANGED, UPDATE_QUERY_PARAMS, } from '@storybook/core/core-events'; -import { logger } from '@storybook/core/client-logger'; - import { CalledPreviewMethodBeforeInitializationError, EmptyIndexError, MdxFileWithNoCsfReferencesError, NoStoryMatchError, } from '@storybook/core/preview-errors'; + +import invariant from 'tiny-invariant'; + +import type { StorySpecifier } from '../store/StoryIndexStore'; import type { MaybePromise } from './Preview'; import { Preview } from './Preview'; - -import { PREPARE_ABORTED } from './render/Render'; -import { StoryRender } from './render/StoryRender'; -import { CsfDocsRender } from './render/CsfDocsRender'; -import { MdxDocsRender } from './render/MdxDocsRender'; import type { Selection, SelectionStore } from './SelectionStore'; import type { View } from './View'; -import type { StorySpecifier } from '../store/StoryIndexStore'; -import type { DocsIndexEntry, StoryIndex } from '@storybook/core/types'; -import type { Args, Globals, Renderer, StoryId, ViewMode } from '@storybook/core/types'; -import type { ModuleImportFn, ProjectAnnotations } from '@storybook/core/types'; +import { CsfDocsRender } from './render/CsfDocsRender'; +import { MdxDocsRender } from './render/MdxDocsRender'; +import { PREPARE_ABORTED } from './render/Render'; +import { StoryRender } from './render/StoryRender'; const globalWindow = globalThis; diff --git a/code/core/src/preview-api/modules/preview-web/SelectionStore.ts b/code/core/src/preview-api/modules/preview-web/SelectionStore.ts index fe75097ef325..439fb7a219b1 100644 --- a/code/core/src/preview-api/modules/preview-web/SelectionStore.ts +++ b/code/core/src/preview-api/modules/preview-web/SelectionStore.ts @@ -1,4 +1,5 @@ import type { Args, StoryId, ViewMode } from '@storybook/core/types'; + import type { StorySpecifier } from '../store/StoryIndexStore'; export interface SelectionSpecifier { diff --git a/code/core/src/preview-api/modules/preview-web/UrlStore.test.ts b/code/core/src/preview-api/modules/preview-web/UrlStore.test.ts index cc6e57171968..09c6e8925743 100644 --- a/code/core/src/preview-api/modules/preview-web/UrlStore.test.ts +++ b/code/core/src/preview-api/modules/preview-web/UrlStore.test.ts @@ -1,7 +1,8 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import { global } from '@storybook/global'; -import { pathToId, setPath, getSelectionSpecifierFromPath } from './UrlStore'; +import { getSelectionSpecifierFromPath, pathToId, setPath } from './UrlStore'; const { history, document } = global; diff --git a/code/core/src/preview-api/modules/preview-web/UrlStore.ts b/code/core/src/preview-api/modules/preview-web/UrlStore.ts index 3bd6de1a4a4b..85b0c79279cf 100644 --- a/code/core/src/preview-api/modules/preview-web/UrlStore.ts +++ b/code/core/src/preview-api/modules/preview-web/UrlStore.ts @@ -1,9 +1,10 @@ +import type { ViewMode } from '@storybook/core/types'; import { global } from '@storybook/global'; + import qs from 'qs'; +import type { Selection, SelectionSpecifier, SelectionStore } from './SelectionStore'; import { parseArgsParam } from './parseArgsParam'; -import type { SelectionSpecifier, SelectionStore, Selection } from './SelectionStore'; -import type { ViewMode } from '@storybook/core/types'; const { history, document } = global; diff --git a/code/core/src/preview-api/modules/preview-web/WebView.ts b/code/core/src/preview-api/modules/preview-web/WebView.ts index e36a9f6494d0..1e7ae240b9aa 100644 --- a/code/core/src/preview-api/modules/preview-web/WebView.ts +++ b/code/core/src/preview-api/modules/preview-web/WebView.ts @@ -1,11 +1,13 @@ +import type { PreparedStory } from '@storybook/core/types'; import { global } from '@storybook/global'; + import { logger } from '@storybook/core/client-logger'; + import AnsiToHtml from 'ansi-to-html'; -import { dedent } from 'ts-dedent'; import qs from 'qs'; +import { dedent } from 'ts-dedent'; import type { View } from './View'; -import type { PreparedStory } from '@storybook/core/types'; const { document } = global; diff --git a/code/core/src/preview-api/modules/preview-web/docs-context/DocsContext.test.ts b/code/core/src/preview-api/modules/preview-web/docs-context/DocsContext.test.ts index d1b2595ce7ce..f79da3152f0e 100644 --- a/code/core/src/preview-api/modules/preview-web/docs-context/DocsContext.test.ts +++ b/code/core/src/preview-api/modules/preview-web/docs-context/DocsContext.test.ts @@ -1,8 +1,9 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import { Channel } from '@storybook/core/channels'; import type { CSFFile, Renderer } from '@storybook/core/types'; -import type { StoryStore } from '../../store'; +import type { StoryStore } from '../../store'; import { DocsContext } from './DocsContext'; import { csfFileParts } from './test-utils'; diff --git a/code/core/src/preview-api/modules/preview-web/docs-context/DocsContext.ts b/code/core/src/preview-api/modules/preview-web/docs-context/DocsContext.ts index ec74033b4b07..f53e08083d31 100644 --- a/code/core/src/preview-api/modules/preview-web/docs-context/DocsContext.ts +++ b/code/core/src/preview-api/modules/preview-web/docs-context/DocsContext.ts @@ -1,8 +1,4 @@ import type { Channel } from '@storybook/core/channels'; - -import { dedent } from 'ts-dedent'; -import type { StoryStore } from '../../store'; -import type { DocsContextProps } from './DocsContextProps'; import type { CSFFile, ModuleExport, @@ -15,6 +11,11 @@ import type { StoryName, } from '@storybook/core/types'; +import { dedent } from 'ts-dedent'; + +import type { StoryStore } from '../../store'; +import type { DocsContextProps } from './DocsContextProps'; + export class DocsContext implements DocsContextProps { private componentStoriesValue: PreparedStory[]; diff --git a/code/core/src/preview-api/modules/preview-web/parseArgsParam.test.ts b/code/core/src/preview-api/modules/preview-web/parseArgsParam.test.ts index f72df087ddcd..28879b3464df 100644 --- a/code/core/src/preview-api/modules/preview-web/parseArgsParam.test.ts +++ b/code/core/src/preview-api/modules/preview-web/parseArgsParam.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import { parseArgsParam } from './parseArgsParam'; vi.mock('@storybook/core/client-logger', () => ({ diff --git a/code/core/src/preview-api/modules/preview-web/parseArgsParam.ts b/code/core/src/preview-api/modules/preview-web/parseArgsParam.ts index a2cd2eb30806..89ec237c0a19 100644 --- a/code/core/src/preview-api/modules/preview-web/parseArgsParam.ts +++ b/code/core/src/preview-api/modules/preview-web/parseArgsParam.ts @@ -1,8 +1,10 @@ -import qs from 'qs'; -import { dedent } from 'ts-dedent'; +import type { Args } from '@storybook/core/types'; + import { once } from '@storybook/core/client-logger'; + import isPlainObject from 'lodash/isPlainObject.js'; -import type { Args } from '@storybook/core/types'; +import qs from 'qs'; +import { dedent } from 'ts-dedent'; // Keep this in sync with validateArgs in router/src/utils.ts const VALIDATION_REGEXP = /^[a-zA-Z0-9 _-]*$/; diff --git a/code/core/src/preview-api/modules/preview-web/render/CsfDocsRender.test.ts b/code/core/src/preview-api/modules/preview-web/render/CsfDocsRender.test.ts index 03f04b3bf63a..aa428572219c 100644 --- a/code/core/src/preview-api/modules/preview-web/render/CsfDocsRender.test.ts +++ b/code/core/src/preview-api/modules/preview-web/render/CsfDocsRender.test.ts @@ -1,11 +1,12 @@ -import { it, expect, vi } from 'vitest'; +import { expect, it, vi } from 'vitest'; + import { Channel } from '@storybook/core/channels'; -import type { Renderer, DocsIndexEntry, RenderContextCallbacks } from '@storybook/core/types'; -import type { StoryStore } from '../../store'; -import { PREPARE_ABORTED } from './Render'; +import type { DocsIndexEntry, RenderContextCallbacks, Renderer } from '@storybook/core/types'; -import { CsfDocsRender } from './CsfDocsRender'; +import type { StoryStore } from '../../store'; import { csfFileParts } from '../docs-context/test-utils'; +import { CsfDocsRender } from './CsfDocsRender'; +import { PREPARE_ABORTED } from './Render'; const entry = { type: 'docs', diff --git a/code/core/src/preview-api/modules/preview-web/render/CsfDocsRender.ts b/code/core/src/preview-api/modules/preview-web/render/CsfDocsRender.ts index 048c5a367ca3..6a95017605e0 100644 --- a/code/core/src/preview-api/modules/preview-web/render/CsfDocsRender.ts +++ b/code/core/src/preview-api/modules/preview-web/render/CsfDocsRender.ts @@ -1,17 +1,18 @@ import type { Channel } from '@storybook/core/channels'; -import { DOCS_RENDERED } from '@storybook/core/core-events'; -import type { StoryStore } from '../../../store'; - -import type { Render, RenderType } from './Render'; -import { PREPARE_ABORTED } from './Render'; -import type { DocsContextProps } from '../docs-context/DocsContextProps'; -import type { DocsRenderFunction } from '../docs-context/DocsRenderFunction'; -import { DocsContext } from '../docs-context/DocsContext'; import type { Renderer, StoryId } from '@storybook/core/types'; import type { CSFFile, PreparedStory } from '@storybook/core/types'; import type { IndexEntry } from '@storybook/core/types'; import type { RenderContextCallbacks } from '@storybook/core/types'; +import { DOCS_RENDERED } from '@storybook/core/core-events'; + +import type { StoryStore } from '../../../store'; +import { DocsContext } from '../docs-context/DocsContext'; +import type { DocsContextProps } from '../docs-context/DocsContextProps'; +import type { DocsRenderFunction } from '../docs-context/DocsRenderFunction'; +import type { Render, RenderType } from './Render'; +import { PREPARE_ABORTED } from './Render'; + /** * A CsfDocsRender is a render of a docs entry that is rendered based on a CSF file. * diff --git a/code/core/src/preview-api/modules/preview-web/render/MdxDocsRender.test.ts b/code/core/src/preview-api/modules/preview-web/render/MdxDocsRender.test.ts index 58aff6acf9de..86a172013e9d 100644 --- a/code/core/src/preview-api/modules/preview-web/render/MdxDocsRender.test.ts +++ b/code/core/src/preview-api/modules/preview-web/render/MdxDocsRender.test.ts @@ -1,11 +1,12 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import { Channel } from '@storybook/core/channels'; -import type { Renderer, DocsIndexEntry, RenderContextCallbacks } from '@storybook/core/types'; -import type { StoryStore } from '../../store'; -import { PREPARE_ABORTED } from './Render'; +import type { DocsIndexEntry, RenderContextCallbacks, Renderer } from '@storybook/core/types'; -import { MdxDocsRender } from './MdxDocsRender'; +import type { StoryStore } from '../../store'; import { csfFileParts } from '../docs-context/test-utils'; +import { MdxDocsRender } from './MdxDocsRender'; +import { PREPARE_ABORTED } from './Render'; const entry = { type: 'docs', diff --git a/code/core/src/preview-api/modules/preview-web/render/MdxDocsRender.ts b/code/core/src/preview-api/modules/preview-web/render/MdxDocsRender.ts index b7751e69df1b..596900c3f4ef 100644 --- a/code/core/src/preview-api/modules/preview-web/render/MdxDocsRender.ts +++ b/code/core/src/preview-api/modules/preview-web/render/MdxDocsRender.ts @@ -1,17 +1,18 @@ import type { Channel } from '@storybook/core/channels'; -import { DOCS_RENDERED } from '@storybook/core/core-events'; -import type { StoryStore } from '../../store'; - -import type { Render, RenderType } from './Render'; -import { PREPARE_ABORTED } from './Render'; -import type { DocsContextProps } from '../docs-context/DocsContextProps'; -import type { DocsRenderFunction } from '../docs-context/DocsRenderFunction'; -import { DocsContext } from '../docs-context/DocsContext'; import type { Renderer, StoryId } from '@storybook/core/types'; import type { CSFFile, ModuleExports } from '@storybook/core/types'; import type { IndexEntry } from '@storybook/core/types'; import type { RenderContextCallbacks } from '@storybook/core/types'; +import { DOCS_RENDERED } from '@storybook/core/core-events'; + +import type { StoryStore } from '../../store'; +import { DocsContext } from '../docs-context/DocsContext'; +import type { DocsContextProps } from '../docs-context/DocsContextProps'; +import type { DocsRenderFunction } from '../docs-context/DocsRenderFunction'; +import type { Render, RenderType } from './Render'; +import { PREPARE_ABORTED } from './Render'; + /** * A MdxDocsRender is a render of a docs entry that comes from a true MDX file, * that is a `.mdx` file that doesn't get compiled to a CSF file. diff --git a/code/core/src/preview-api/modules/preview-web/render/StoryRender.test.ts b/code/core/src/preview-api/modules/preview-web/render/StoryRender.test.ts index 0b84b76c2866..2bd3a9ca3830 100644 --- a/code/core/src/preview-api/modules/preview-web/render/StoryRender.test.ts +++ b/code/core/src/preview-api/modules/preview-web/render/StoryRender.test.ts @@ -1,10 +1,11 @@ // @vitest-environment happy-dom -import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; + import { Channel } from '@storybook/core/channels'; import type { PreparedStory, Renderer, StoryContext, StoryIndexEntry } from '@storybook/core/types'; + import type { StoryStore } from '../../store'; import { PREPARE_ABORTED } from './Render'; - import { StoryRender } from './StoryRender'; const entry = { diff --git a/code/core/src/preview-api/modules/preview-web/render/StoryRender.ts b/code/core/src/preview-api/modules/preview-web/render/StoryRender.ts index 5f4503877fc2..cd12e2dc3b6b 100644 --- a/code/core/src/preview-api/modules/preview-web/render/StoryRender.ts +++ b/code/core/src/preview-api/modules/preview-web/render/StoryRender.ts @@ -1,28 +1,29 @@ import type { Channel } from '@storybook/core/channels'; -import { - STORY_RENDER_PHASE_CHANGED, - STORY_RENDERED, - PLAY_FUNCTION_THREW_EXCEPTION, - UNHANDLED_ERRORS_WHILE_PLAYING, -} from '@storybook/core/core-events'; -import type { StoryStore } from '../../store'; -import type { Render, RenderType } from './Render'; -import { PREPARE_ABORTED } from './Render'; -import { MountMustBeDestructuredError, NoStoryMountedError } from '@storybook/core/preview-errors'; - import type { Canvas, PreparedStory, RenderContext, RenderContextCallbacks, - Renderer, RenderToCanvas, + Renderer, StoryContext, StoryId, StoryRenderOptions, TeardownRenderToCanvas, } from '@storybook/core/types'; +import { + PLAY_FUNCTION_THREW_EXCEPTION, + STORY_RENDERED, + STORY_RENDER_PHASE_CHANGED, + UNHANDLED_ERRORS_WHILE_PLAYING, +} from '@storybook/core/core-events'; +import { MountMustBeDestructuredError, NoStoryMountedError } from '@storybook/core/preview-errors'; + +import type { StoryStore } from '../../store'; +import type { Render, RenderType } from './Render'; +import { PREPARE_ABORTED } from './Render'; + const { AbortController } = globalThis; export type RenderPhase = diff --git a/code/core/src/preview-api/modules/preview-web/render/mount-utils.test.ts b/code/core/src/preview-api/modules/preview-web/render/mount-utils.test.ts index 4fe7b4ac8832..80c1a56211b1 100644 --- a/code/core/src/preview-api/modules/preview-web/render/mount-utils.test.ts +++ b/code/core/src/preview-api/modules/preview-web/render/mount-utils.test.ts @@ -1,4 +1,5 @@ import { expect, test } from 'vitest'; + import { getUsedProps } from './mount-utils'; const StoryWithContext = { diff --git a/code/core/src/preview-api/modules/preview-web/simulate-pageload.test.ts b/code/core/src/preview-api/modules/preview-web/simulate-pageload.test.ts index 0f43ae04c54f..c15e8613034b 100644 --- a/code/core/src/preview-api/modules/preview-web/simulate-pageload.test.ts +++ b/code/core/src/preview-api/modules/preview-web/simulate-pageload.test.ts @@ -1,7 +1,8 @@ // @vitest-environment happy-dom -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { global } from '@storybook/global'; + import { simulatePageLoad } from './simulate-pageload'; const { document } = global; diff --git a/code/core/src/preview-api/modules/store/ArgsStore.test.ts b/code/core/src/preview-api/modules/store/ArgsStore.test.ts index d730aed9ece8..ad3d20c7664d 100644 --- a/code/core/src/preview-api/modules/store/ArgsStore.test.ts +++ b/code/core/src/preview-api/modules/store/ArgsStore.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import { ArgsStore } from './ArgsStore'; diff --git a/code/core/src/preview-api/modules/store/ArgsStore.ts b/code/core/src/preview-api/modules/store/ArgsStore.ts index 5c9f941b0ebd..da613e76dc81 100644 --- a/code/core/src/preview-api/modules/store/ArgsStore.ts +++ b/code/core/src/preview-api/modules/store/ArgsStore.ts @@ -1,7 +1,8 @@ import type { Args, StoryId } from '@storybook/core/types'; -import { combineArgs, mapArgsToTypes, validateOptions, deepDiff, DEEPLY_EQUAL } from './args'; import type { PreparedStory } from '@storybook/core/types'; +import { DEEPLY_EQUAL, combineArgs, deepDiff, mapArgsToTypes, validateOptions } from './args'; + function deleteUndefined(obj: Record) { Object.keys(obj).forEach((key) => obj[key] === undefined && delete obj[key]); return obj; diff --git a/code/core/src/preview-api/modules/store/GlobalsStore.test.ts b/code/core/src/preview-api/modules/store/GlobalsStore.test.ts index 85f99d5be0d6..eda822e40c64 100644 --- a/code/core/src/preview-api/modules/store/GlobalsStore.test.ts +++ b/code/core/src/preview-api/modules/store/GlobalsStore.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import { GlobalsStore } from './GlobalsStore'; vi.mock('@storybook/core/client-logger', () => ({ diff --git a/code/core/src/preview-api/modules/store/GlobalsStore.ts b/code/core/src/preview-api/modules/store/GlobalsStore.ts index 0ec64390b516..dd15417d9143 100644 --- a/code/core/src/preview-api/modules/store/GlobalsStore.ts +++ b/code/core/src/preview-api/modules/store/GlobalsStore.ts @@ -1,8 +1,9 @@ +import type { GlobalTypes, Globals } from '@storybook/core/types'; + import { logger } from '@storybook/core/client-logger'; -import { deepDiff, DEEPLY_EQUAL } from './args'; +import { DEEPLY_EQUAL, deepDiff } from './args'; import { getValuesFromArgTypes } from './csf/getValuesFromArgTypes'; -import type { Globals, GlobalTypes } from '@storybook/core/types'; export class GlobalsStore { // We use ! here because TS doesn't analyse the .set() function to see if it actually get set diff --git a/code/core/src/preview-api/modules/store/StoryIndexStore.test.ts b/code/core/src/preview-api/modules/store/StoryIndexStore.test.ts index 11da69623139..1cfdd553ea33 100644 --- a/code/core/src/preview-api/modules/store/StoryIndexStore.test.ts +++ b/code/core/src/preview-api/modules/store/StoryIndexStore.test.ts @@ -1,6 +1,7 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; import type { StoryIndex } from '@storybook/core/types'; + import { StoryIndexStore } from './StoryIndexStore'; vi.mock('@storybook/channel-websocket', () => () => ({ on: vi.fn() })); diff --git a/code/core/src/preview-api/modules/store/StoryIndexStore.ts b/code/core/src/preview-api/modules/store/StoryIndexStore.ts index f608932b6121..d6812e736f5f 100644 --- a/code/core/src/preview-api/modules/store/StoryIndexStore.ts +++ b/code/core/src/preview-api/modules/store/StoryIndexStore.ts @@ -1,8 +1,10 @@ -import memoize from 'memoizerific'; -import { MissingStoryAfterHmrError } from '@storybook/core/preview-errors'; import type { ComponentTitle, Path, StoryId, StoryName } from '@storybook/core/types'; import type { IndexEntry, StoryIndex } from '@storybook/core/types'; +import { MissingStoryAfterHmrError } from '@storybook/core/preview-errors'; + +import memoize from 'memoizerific'; + export type StorySpecifier = StoryId | { name: StoryName; title: ComponentTitle } | '*'; const getImportPathMap = memoize(1)((entries: StoryIndex['entries']) => diff --git a/code/core/src/preview-api/modules/store/StoryStore.test.ts b/code/core/src/preview-api/modules/store/StoryStore.test.ts index abb6c158c76e..4cc27210c5af 100644 --- a/code/core/src/preview-api/modules/store/StoryStore.test.ts +++ b/code/core/src/preview-api/modules/store/StoryStore.test.ts @@ -1,11 +1,12 @@ -import { describe, it, expect, vi } from 'vitest'; -import type { Renderer, ProjectAnnotations, StoryIndex } from '@storybook/core/types'; +import { describe, expect, it, vi } from 'vitest'; +import type { ProjectAnnotations, Renderer, StoryIndex } from '@storybook/core/types'; + +import { StoryStore } from './StoryStore'; +import { composeConfigs } from './csf/composeConfigs'; import { prepareStory } from './csf/prepareStory'; import { processCSFFile } from './csf/processCSFFile'; -import { StoryStore } from './StoryStore'; import type { HooksContext } from './hooks'; -import { composeConfigs } from './csf/composeConfigs'; // Spy on prepareStory/processCSFFile vi.mock('./csf/prepareStory', async (importOriginal) => { diff --git a/code/core/src/preview-api/modules/store/StoryStore.ts b/code/core/src/preview-api/modules/store/StoryStore.ts index c5414d7956cf..99d6efd5f8bd 100644 --- a/code/core/src/preview-api/modules/store/StoryStore.ts +++ b/code/core/src/preview-api/modules/store/StoryStore.ts @@ -1,33 +1,12 @@ -import memoize from 'memoizerific'; import type { - Renderer, ComponentTitle, Parameters, Path, + Renderer, StoryContext, StoryContextForEnhancers, StoryId, } from '@storybook/core/types'; -import mapValues from 'lodash/mapValues.js'; -import pick from 'lodash/pick.js'; - -import { - CalledExtractOnStoreError, - MissingStoryFromCsfFileError, -} from '@storybook/core/preview-errors'; -import { deprecate } from '@storybook/core/client-logger'; -import { HooksContext } from '../addons'; -import { StoryIndexStore } from './StoryIndexStore'; -import { ArgsStore } from './ArgsStore'; -import { GlobalsStore } from './GlobalsStore'; -import { - processCSFFile, - prepareStory, - prepareMeta, - normalizeProjectAnnotations, - prepareContext, -} from './csf'; -import type { Canvas, CleanupCallback } from '@storybook/csf'; import type { BoundStory, CSFFile, @@ -44,6 +23,29 @@ import type { StoryIndexV3, V3CompatIndexEntry, } from '@storybook/core/types'; +import type { Canvas, CleanupCallback } from '@storybook/csf'; + +import { deprecate } from '@storybook/core/client-logger'; +import { + CalledExtractOnStoreError, + MissingStoryFromCsfFileError, +} from '@storybook/core/preview-errors'; + +import mapValues from 'lodash/mapValues.js'; +import pick from 'lodash/pick.js'; +import memoize from 'memoizerific'; + +import { HooksContext } from '../addons'; +import { ArgsStore } from './ArgsStore'; +import { GlobalsStore } from './GlobalsStore'; +import { StoryIndexStore } from './StoryIndexStore'; +import { + normalizeProjectAnnotations, + prepareContext, + prepareMeta, + prepareStory, + processCSFFile, +} from './csf'; // TODO -- what are reasonable values for these? const CSF_CACHE_SIZE = 1000; diff --git a/code/core/src/preview-api/modules/store/args.test.ts b/code/core/src/preview-api/modules/store/args.test.ts index 3d6e82c53313..d40d989cebc7 100644 --- a/code/core/src/preview-api/modules/store/args.test.ts +++ b/code/core/src/preview-api/modules/store/args.test.ts @@ -1,12 +1,14 @@ -import { describe, it, expect, vi } from 'vitest'; -import { once } from '@storybook/core/client-logger'; +import { describe, expect, it, vi } from 'vitest'; + import type { SBType } from '@storybook/core/types'; +import { once } from '@storybook/core/client-logger'; + import { + UNTARGETED, combineArgs, groupArgsByTarget, mapArgsToTypes, - UNTARGETED, validateOptions, } from './args'; diff --git a/code/core/src/preview-api/modules/store/args.ts b/code/core/src/preview-api/modules/store/args.ts index 213de81df96f..ca856dd6bc11 100644 --- a/code/core/src/preview-api/modules/store/args.ts +++ b/code/core/src/preview-api/modules/store/args.ts @@ -1,7 +1,3 @@ -import { dequal as deepEqual } from 'dequal'; -import { once } from '@storybook/core/client-logger'; -import isPlainObject from 'lodash/isPlainObject.js'; -import { dedent } from 'ts-dedent'; import type { ArgTypes, Args, @@ -11,6 +7,12 @@ import type { StoryContext, } from '@storybook/core/types'; +import { once } from '@storybook/core/client-logger'; + +import { dequal as deepEqual } from 'dequal'; +import isPlainObject from 'lodash/isPlainObject.js'; +import { dedent } from 'ts-dedent'; + const INCOMPATIBLE = Symbol('incompatible'); const map = (arg: unknown, argType: InputType): any => { const type = argType.type as SBType; diff --git a/code/core/src/preview-api/modules/store/autoTitle.test.ts b/code/core/src/preview-api/modules/store/autoTitle.test.ts index e45c0a035654..3289261dd8bc 100644 --- a/code/core/src/preview-api/modules/store/autoTitle.test.ts +++ b/code/core/src/preview-api/modules/store/autoTitle.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { normalizeStoriesEntry } from '@storybook/core/common'; import { userOrAutoTitleFromSpecifier as userOrAuto } from './autoTitle'; diff --git a/code/core/src/preview-api/modules/store/autoTitle.ts b/code/core/src/preview-api/modules/store/autoTitle.ts index 8c8064208b09..175f6c107ae1 100644 --- a/code/core/src/preview-api/modules/store/autoTitle.ts +++ b/code/core/src/preview-api/modules/store/autoTitle.ts @@ -1,7 +1,9 @@ +import type { NormalizedStoriesSpecifier } from '@storybook/core/types'; + +import { once } from '@storybook/core/client-logger'; + import slash from 'slash'; import { dedent } from 'ts-dedent'; -import { once } from '@storybook/core/client-logger'; -import type { NormalizedStoriesSpecifier } from '@storybook/core/types'; // FIXME: types duplicated type from `core-common', to be // removed when we remove v6 back-compat. diff --git a/code/core/src/preview-api/modules/store/csf/beforeAll.test.ts b/code/core/src/preview-api/modules/store/csf/beforeAll.test.ts index e3f0200dd19a..30f066e8ac00 100644 --- a/code/core/src/preview-api/modules/store/csf/beforeAll.test.ts +++ b/code/core/src/preview-api/modules/store/csf/beforeAll.test.ts @@ -1,4 +1,5 @@ import { beforeEach, describe, expect, it } from 'vitest'; + import { composeBeforeAllHooks } from './beforeAll'; const calls: string[] = []; diff --git a/code/core/src/preview-api/modules/store/csf/composeConfigs.test.ts b/code/core/src/preview-api/modules/store/csf/composeConfigs.test.ts index 0d8f0e2912b0..035aa60e7e14 100644 --- a/code/core/src/preview-api/modules/store/csf/composeConfigs.test.ts +++ b/code/core/src/preview-api/modules/store/csf/composeConfigs.test.ts @@ -1,4 +1,5 @@ -import { describe, beforeEach, afterEach, it, expect, vi } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; + import { global } from '@storybook/global'; import { composeConfigs } from './composeConfigs'; diff --git a/code/core/src/preview-api/modules/store/csf/composeConfigs.ts b/code/core/src/preview-api/modules/store/csf/composeConfigs.ts index 29eb8ec56c36..7ccec5685659 100644 --- a/code/core/src/preview-api/modules/store/csf/composeConfigs.ts +++ b/code/core/src/preview-api/modules/store/csf/composeConfigs.ts @@ -3,9 +3,9 @@ import type { Renderer } from '@storybook/core/types'; import { global } from '@storybook/global'; import { combineParameters } from '../parameters'; -import { composeStepRunners } from './stepRunners'; -import { normalizeArrays } from './normalizeArrays'; import { composeBeforeAllHooks } from './beforeAll'; +import { normalizeArrays } from './normalizeArrays'; +import { composeStepRunners } from './stepRunners'; export function getField( moduleExportList: ModuleExports[], diff --git a/code/core/src/preview-api/modules/store/csf/normalizeComponentAnnotations.ts b/code/core/src/preview-api/modules/store/csf/normalizeComponentAnnotations.ts index d9da3d5ed8e5..b314a89d31bf 100644 --- a/code/core/src/preview-api/modules/store/csf/normalizeComponentAnnotations.ts +++ b/code/core/src/preview-api/modules/store/csf/normalizeComponentAnnotations.ts @@ -1,8 +1,8 @@ +import type { ModuleExports, NormalizedComponentAnnotations } from '@storybook/core/types'; +import type { Renderer } from '@storybook/core/types'; import { sanitize } from '@storybook/csf'; import { normalizeInputTypes } from './normalizeInputTypes'; -import type { ModuleExports, NormalizedComponentAnnotations } from '@storybook/core/types'; -import type { Renderer } from '@storybook/core/types'; export function normalizeComponentAnnotations( defaultExport: ModuleExports['default'], diff --git a/code/core/src/preview-api/modules/store/csf/normalizeInputTypes.test.ts b/code/core/src/preview-api/modules/store/csf/normalizeInputTypes.test.ts index 58f38ea79324..33b8f26e9625 100644 --- a/code/core/src/preview-api/modules/store/csf/normalizeInputTypes.test.ts +++ b/code/core/src/preview-api/modules/store/csf/normalizeInputTypes.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { normalizeInputType, normalizeInputTypes } from './normalizeInputTypes'; diff --git a/code/core/src/preview-api/modules/store/csf/normalizeInputTypes.ts b/code/core/src/preview-api/modules/store/csf/normalizeInputTypes.ts index a34c0aaaaaaa..0b9b0dc2c311 100644 --- a/code/core/src/preview-api/modules/store/csf/normalizeInputTypes.ts +++ b/code/core/src/preview-api/modules/store/csf/normalizeInputTypes.ts @@ -6,6 +6,7 @@ import type { StrictGlobalTypes, StrictInputType, } from '@storybook/core/types'; + import mapValues from 'lodash/mapValues.js'; const normalizeType = (type: InputType['type']): StrictInputType['type'] => { diff --git a/code/core/src/preview-api/modules/store/csf/normalizeProjectAnnotations.test.ts b/code/core/src/preview-api/modules/store/csf/normalizeProjectAnnotations.test.ts index a6aa1a2f7a83..bfb2a4c067b4 100644 --- a/code/core/src/preview-api/modules/store/csf/normalizeProjectAnnotations.test.ts +++ b/code/core/src/preview-api/modules/store/csf/normalizeProjectAnnotations.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; import { normalizeProjectAnnotations } from './normalizeProjectAnnotations'; diff --git a/code/core/src/preview-api/modules/store/csf/normalizeProjectAnnotations.ts b/code/core/src/preview-api/modules/store/csf/normalizeProjectAnnotations.ts index adc3282d9933..26711a130106 100644 --- a/code/core/src/preview-api/modules/store/csf/normalizeProjectAnnotations.ts +++ b/code/core/src/preview-api/modules/store/csf/normalizeProjectAnnotations.ts @@ -1,17 +1,19 @@ import type { - Renderer, ArgTypes, - ProjectAnnotations, NormalizedProjectAnnotations, + ProjectAnnotations, + Renderer, } from '@storybook/core/types'; + import { deprecate } from '@storybook/core/client-logger'; + import { dedent } from 'ts-dedent'; import { inferArgTypes } from '../inferArgTypes'; import { inferControls } from '../inferControls'; -import { normalizeInputTypes } from './normalizeInputTypes'; -import { normalizeArrays } from './normalizeArrays'; import { combineParameters } from '../parameters'; +import { normalizeArrays } from './normalizeArrays'; +import { normalizeInputTypes } from './normalizeInputTypes'; // TODO(kasperpeulen) Consolidate this function with composeConfigs // As composeConfigs is the real normalizer, and always run before normalizeProjectAnnotations diff --git a/code/core/src/preview-api/modules/store/csf/normalizeStory.test.ts b/code/core/src/preview-api/modules/store/csf/normalizeStory.test.ts index a8dc553cf0e0..ddacda230514 100644 --- a/code/core/src/preview-api/modules/store/csf/normalizeStory.test.ts +++ b/code/core/src/preview-api/modules/store/csf/normalizeStory.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import type { Renderer, StoryAnnotationsOrFn } from '@storybook/core/types'; import { normalizeStory } from './normalizeStory'; diff --git a/code/core/src/preview-api/modules/store/csf/normalizeStory.ts b/code/core/src/preview-api/modules/store/csf/normalizeStory.ts index d4c710b2eb03..2dd2ae957390 100644 --- a/code/core/src/preview-api/modules/store/csf/normalizeStory.ts +++ b/code/core/src/preview-api/modules/store/csf/normalizeStory.ts @@ -1,20 +1,23 @@ import type { - Renderer, ArgTypes, LegacyStoryAnnotationsOrFn, + Renderer, StoryAnnotations, StoryFn, StoryId, } from '@storybook/core/types'; -import { storyNameFromExport, toId } from '@storybook/csf'; -import { dedent } from 'ts-dedent'; -import { logger, deprecate } from '@storybook/core/client-logger'; -import { normalizeInputTypes } from './normalizeInputTypes'; -import { normalizeArrays } from './normalizeArrays'; import type { NormalizedComponentAnnotations, NormalizedStoryAnnotations, } from '@storybook/core/types'; +import { storyNameFromExport, toId } from '@storybook/csf'; + +import { deprecate, logger } from '@storybook/core/client-logger'; + +import { dedent } from 'ts-dedent'; + +import { normalizeArrays } from './normalizeArrays'; +import { normalizeInputTypes } from './normalizeInputTypes'; const deprecatedStoryAnnotation = dedent` CSF .story annotations deprecated; annotate story functions directly: diff --git a/code/core/src/preview-api/modules/store/csf/portable-stories.test.ts b/code/core/src/preview-api/modules/store/csf/portable-stories.test.ts index c13f9c931487..6c85760cbd4e 100644 --- a/code/core/src/preview-api/modules/store/csf/portable-stories.test.ts +++ b/code/core/src/preview-api/modules/store/csf/portable-stories.test.ts @@ -1,15 +1,16 @@ // @vitest-environment node -import { describe, expect, vi, it } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import type { ComponentAnnotations as Meta, - StoryAnnotationsOrFn as Story, Store_CSFExports, + StoryAnnotationsOrFn as Story, } from '@storybook/core/types'; +import type { ProjectAnnotations } from '@storybook/csf'; -import { composeStory, composeStories, setProjectAnnotations } from './portable-stories'; import * as defaultExportAnnotations from './__mocks__/defaultExportAnnotations.mockfile'; import * as namedExportAnnotations from './__mocks__/namedExportAnnotations.mockfile'; -import type { ProjectAnnotations } from '@storybook/csf'; +import { composeStories, composeStory, setProjectAnnotations } from './portable-stories'; type StoriesModule = Store_CSFExports & Record; diff --git a/code/core/src/preview-api/modules/store/csf/portable-stories.ts b/code/core/src/preview-api/modules/store/csf/portable-stories.ts index bd18285d456d..877901fecea4 100644 --- a/code/core/src/preview-api/modules/store/csf/portable-stories.ts +++ b/code/core/src/preview-api/modules/store/csf/portable-stories.ts @@ -1,13 +1,12 @@ /* eslint-disable no-underscore-dangle */ + /* eslint-disable @typescript-eslint/naming-convention */ -import { type CleanupCallback, isExportStory } from '@storybook/csf'; -import { dedent } from 'ts-dedent'; import type { Args, Canvas, ComponentAnnotations, - ComposedStoryFn, ComposeStoryFn, + ComposedStoryFn, LegacyStoryAnnotationsOrFn, NamedOrDefaultProjectAnnotations, Parameters, @@ -19,15 +18,19 @@ import type { StoryContext, StrictArgTypes, } from '@storybook/core/types'; +import { type CleanupCallback, isExportStory } from '@storybook/csf'; + +import { MountMustBeDestructuredError } from '@storybook/core/preview-errors'; + +import { dedent } from 'ts-dedent'; import { HooksContext } from '../../../addons'; import { composeConfigs } from './composeConfigs'; -import { prepareContext, prepareStory } from './prepareStory'; -import { normalizeStory } from './normalizeStory'; -import { normalizeComponentAnnotations } from './normalizeComponentAnnotations'; import { getValuesFromArgTypes } from './getValuesFromArgTypes'; +import { normalizeComponentAnnotations } from './normalizeComponentAnnotations'; import { normalizeProjectAnnotations } from './normalizeProjectAnnotations'; -import { MountMustBeDestructuredError } from '@storybook/core/preview-errors'; +import { normalizeStory } from './normalizeStory'; +import { prepareContext, prepareStory } from './prepareStory'; let globalProjectAnnotations: ProjectAnnotations = {}; diff --git a/code/core/src/preview-api/modules/store/csf/prepareStory.test.ts b/code/core/src/preview-api/modules/store/csf/prepareStory.test.ts index e9fd7f3228be..e91a6fcfea05 100644 --- a/code/core/src/preview-api/modules/store/csf/prepareStory.test.ts +++ b/code/core/src/preview-api/modules/store/csf/prepareStory.test.ts @@ -1,5 +1,5 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'; -import { global } from '@storybook/global'; + import type { ArgsEnhancer, NormalizedComponentAnnotations, @@ -10,12 +10,13 @@ import type { SBScalarType, StoryContext, } from '@storybook/core/types'; -import { addons, HooksContext } from '../../addons'; +import { global } from '@storybook/global'; +import { HooksContext, addons } from '../../addons'; import { UNTARGETED } from '../args'; -import { prepareMeta, prepareStory as realPrepareStory, prepareContext } from './prepareStory'; import { composeConfigs } from './composeConfigs'; import { normalizeProjectAnnotations } from './normalizeProjectAnnotations'; +import { prepareContext, prepareMeta, prepareStory as realPrepareStory } from './prepareStory'; vi.mock('@storybook/global', async (importOriginal) => ({ global: { diff --git a/code/core/src/preview-api/modules/store/csf/prepareStory.ts b/code/core/src/preview-api/modules/store/csf/prepareStory.ts index 77bbb4f26759..80f4fbd82f7b 100644 --- a/code/core/src/preview-api/modules/store/csf/prepareStory.ts +++ b/code/core/src/preview-api/modules/store/csf/prepareStory.ts @@ -1,5 +1,4 @@ /* eslint-disable no-underscore-dangle */ -import { global } from '@storybook/global'; import type { Args, ArgsStoryFn, @@ -13,23 +12,25 @@ import type { StoryContextForLoaders, StrictArgTypes, } from '@storybook/core/types'; -import { type CleanupCallback, includeConditionalArg, combineTags } from '@storybook/csf'; -import { global as globalThis } from '@storybook/global'; - -import { applyHooks } from '../../addons'; -import { combineParameters } from '../parameters'; -import { defaultDecorateStory } from '../decorators'; -import { groupArgsByTarget, UNTARGETED } from '../args'; -import { normalizeArrays } from './normalizeArrays'; import type { ModuleExport, NormalizedComponentAnnotations, NormalizedProjectAnnotations, NormalizedStoryAnnotations, } from '@storybook/core/types'; -import { mountDestructured } from '../../preview-web/render/mount-utils'; +import { type CleanupCallback, combineTags, includeConditionalArg } from '@storybook/csf'; +import { global } from '@storybook/global'; +import { global as globalThis } from '@storybook/global'; + import { NoRenderFunctionError } from '@storybook/core/preview-errors'; +import { applyHooks } from '../../addons'; +import { mountDestructured } from '../../preview-web/render/mount-utils'; +import { UNTARGETED, groupArgsByTarget } from '../args'; +import { defaultDecorateStory } from '../decorators'; +import { combineParameters } from '../parameters'; +import { normalizeArrays } from './normalizeArrays'; + // Combine all the metadata about a story (both direct and inherited from the component/global scope) // into a "render-able" story function, with all decorators applied, parameters passed as context etc // diff --git a/code/core/src/preview-api/modules/store/csf/processCSFFile.test.ts b/code/core/src/preview-api/modules/store/csf/processCSFFile.test.ts index 8ff880caed3a..a8382e660988 100644 --- a/code/core/src/preview-api/modules/store/csf/processCSFFile.test.ts +++ b/code/core/src/preview-api/modules/store/csf/processCSFFile.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { processCSFFile } from './processCSFFile'; diff --git a/code/core/src/preview-api/modules/store/csf/processCSFFile.ts b/code/core/src/preview-api/modules/store/csf/processCSFFile.ts index 3f5b9ebacd0a..fa1e3aecb508 100644 --- a/code/core/src/preview-api/modules/store/csf/processCSFFile.ts +++ b/code/core/src/preview-api/modules/store/csf/processCSFFile.ts @@ -1,10 +1,11 @@ -import type { Renderer, ComponentTitle, Parameters, Path } from '@storybook/core/types'; +import type { ComponentTitle, Parameters, Path, Renderer } from '@storybook/core/types'; +import type { CSFFile, ModuleExports, NormalizedComponentAnnotations } from '@storybook/core/types'; import { isExportStory } from '@storybook/csf'; + import { logger } from '@storybook/core/client-logger'; -import { normalizeStory } from './normalizeStory'; import { normalizeComponentAnnotations } from './normalizeComponentAnnotations'; -import type { CSFFile, ModuleExports, NormalizedComponentAnnotations } from '@storybook/core/types'; +import { normalizeStory } from './normalizeStory'; const checkGlobals = (parameters: Parameters) => { const { globals, globalTypes } = parameters; diff --git a/code/core/src/preview-api/modules/store/csf/stepRunners.test.ts b/code/core/src/preview-api/modules/store/csf/stepRunners.test.ts index d67055c05d69..aacfa0d4dd5a 100644 --- a/code/core/src/preview-api/modules/store/csf/stepRunners.test.ts +++ b/code/core/src/preview-api/modules/store/csf/stepRunners.test.ts @@ -1,5 +1,7 @@ -import { describe, it, expect, vi } from 'vitest'; -import type { StoryContext, StepRunner } from '@storybook/core/types'; +import { describe, expect, it, vi } from 'vitest'; + +import type { StepRunner, StoryContext } from '@storybook/core/types'; + import { composeStepRunners } from './stepRunners'; describe('stepRunners', () => { diff --git a/code/core/src/preview-api/modules/store/decorators.test.ts b/code/core/src/preview-api/modules/store/decorators.test.ts index c61415afb797..ae3cd2bb8c3c 100644 --- a/code/core/src/preview-api/modules/store/decorators.test.ts +++ b/code/core/src/preview-api/modules/store/decorators.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import type { Renderer, StoryContext } from '@storybook/core/types'; import { defaultDecorateStory } from './decorators'; diff --git a/code/core/src/preview-api/modules/store/filterArgTypes.ts b/code/core/src/preview-api/modules/store/filterArgTypes.ts index b77cc79d20ea..274489a67cf4 100644 --- a/code/core/src/preview-api/modules/store/filterArgTypes.ts +++ b/code/core/src/preview-api/modules/store/filterArgTypes.ts @@ -1,4 +1,5 @@ import type { StrictArgTypes } from '@storybook/core/types'; + import pickBy from 'lodash/pickBy.js'; export type PropDescriptor = string[] | RegExp; diff --git a/code/core/src/preview-api/modules/store/hooks.test.ts b/code/core/src/preview-api/modules/store/hooks.test.ts index 898367d24ba6..cac2600ac72d 100644 --- a/code/core/src/preview-api/modules/store/hooks.test.ts +++ b/code/core/src/preview-api/modules/store/hooks.test.ts @@ -1,29 +1,31 @@ -import { describe, beforeEach, it, expect, vi } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; + +import type { DecoratorFunction, StoryContext } from '@storybook/core/types'; + import { FORCE_RE_RENDER, - STORY_RENDERED, - UPDATE_STORY_ARGS, RESET_STORY_ARGS, + STORY_RENDERED, UPDATE_GLOBALS, + UPDATE_STORY_ARGS, } from '@storybook/core/core-events'; -import type { DecoratorFunction, StoryContext } from '@storybook/core/types'; + import { + HooksContext, addons, applyHooks, + useArgs, + useCallback, + useChannel, useEffect, + useGlobals, useMemo, - useCallback, + useParameter, + useReducer, useRef, useState, - useReducer, - useChannel, - useParameter, useStoryContext, - HooksContext, - useArgs, - useGlobals, } from '../addons'; - import { defaultDecorateStory } from './decorators'; vi.mock('@storybook/core/client-logger', () => ({ diff --git a/code/core/src/preview-api/modules/store/hooks.ts b/code/core/src/preview-api/modules/store/hooks.ts index 857845c9b3d7..690e091775b6 100644 --- a/code/core/src/preview-api/modules/store/hooks.ts +++ b/code/core/src/preview-api/modules/store/hooks.ts @@ -1,17 +1,17 @@ import { HooksContext, applyHooks, - useMemo, + useArgs, useCallback, + useChannel, + useEffect, + useGlobals, + useMemo, + useParameter, + useReducer, useRef, useState, - useReducer, - useEffect, - useChannel, useStoryContext, - useParameter, - useArgs, - useGlobals, } from '../addons'; export { diff --git a/code/core/src/preview-api/modules/store/inferArgTypes.test.ts b/code/core/src/preview-api/modules/store/inferArgTypes.test.ts index db7d168301b2..fa374441a4ec 100644 --- a/code/core/src/preview-api/modules/store/inferArgTypes.test.ts +++ b/code/core/src/preview-api/modules/store/inferArgTypes.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect, vi } from 'vitest'; +import { describe, expect, it, vi } from 'vitest'; + import { logger } from '@storybook/core/client-logger'; import { inferArgTypes } from './inferArgTypes'; diff --git a/code/core/src/preview-api/modules/store/inferArgTypes.ts b/code/core/src/preview-api/modules/store/inferArgTypes.ts index 79a74de659fa..ea8b45b75609 100644 --- a/code/core/src/preview-api/modules/store/inferArgTypes.ts +++ b/code/core/src/preview-api/modules/store/inferArgTypes.ts @@ -1,8 +1,11 @@ +import type { ArgTypesEnhancer, Renderer, SBType } from '@storybook/core/types'; + +import { logger } from '@storybook/core/client-logger'; + import mapValues from 'lodash/mapValues.js'; import { dedent } from 'ts-dedent'; -import { logger } from '@storybook/core/client-logger'; + import { combineParameters } from './parameters'; -import type { ArgTypesEnhancer, Renderer, SBType } from '@storybook/core/types'; const inferType = (value: any, name: string, visited: Set): SBType => { const type = typeof value; diff --git a/code/core/src/preview-api/modules/store/inferControls.test.ts b/code/core/src/preview-api/modules/store/inferControls.test.ts index 135178439010..abe91702ec36 100644 --- a/code/core/src/preview-api/modules/store/inferControls.test.ts +++ b/code/core/src/preview-api/modules/store/inferControls.test.ts @@ -1,8 +1,10 @@ import type { MockInstance } from 'vitest'; -import { describe, beforeEach, afterEach, it, expect, vi } from 'vitest'; -import { logger } from '@storybook/core/client-logger'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; + import type { StoryContextForEnhancers } from '@storybook/core/types'; +import { logger } from '@storybook/core/client-logger'; + import { argTypesEnhancers } from './inferControls'; const getStoryContext = (overrides: any = {}): StoryContextForEnhancers => ({ diff --git a/code/core/src/preview-api/modules/store/inferControls.ts b/code/core/src/preview-api/modules/store/inferControls.ts index 2c0e2b93a9a1..c823eb24fc91 100644 --- a/code/core/src/preview-api/modules/store/inferControls.ts +++ b/code/core/src/preview-api/modules/store/inferControls.ts @@ -1,7 +1,3 @@ -import mapValues from 'lodash/mapValues.js'; -import { logger } from '@storybook/core/client-logger'; -import { filterArgTypes } from './filterArgTypes'; -import { combineParameters } from './parameters'; import type { ArgTypesEnhancer, Renderer, @@ -9,6 +5,13 @@ import type { StrictInputType, } from '@storybook/core/types'; +import { logger } from '@storybook/core/client-logger'; + +import mapValues from 'lodash/mapValues.js'; + +import { filterArgTypes } from './filterArgTypes'; +import { combineParameters } from './parameters'; + export type ControlsMatchers = { date: RegExp; color: RegExp; diff --git a/code/core/src/preview-api/modules/store/parameters.test.ts b/code/core/src/preview-api/modules/store/parameters.test.ts index d408f641a0a9..09905a6a1b6f 100644 --- a/code/core/src/preview-api/modules/store/parameters.test.ts +++ b/code/core/src/preview-api/modules/store/parameters.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { combineParameters } from './parameters'; describe('client-api.parameters', () => { diff --git a/code/core/src/preview-api/modules/store/parameters.ts b/code/core/src/preview-api/modules/store/parameters.ts index dc7b7045fe7d..271ab5eb8329 100644 --- a/code/core/src/preview-api/modules/store/parameters.ts +++ b/code/core/src/preview-api/modules/store/parameters.ts @@ -1,5 +1,6 @@ // Utilities for handling parameters import type { Parameters } from '@storybook/core/types'; + import isPlainObject from 'lodash/isPlainObject.js'; /** diff --git a/code/core/src/preview-api/modules/store/sortStories.ts b/code/core/src/preview-api/modules/store/sortStories.ts index e1a5db96a16e..39cb86efcc21 100644 --- a/code/core/src/preview-api/modules/store/sortStories.ts +++ b/code/core/src/preview-api/modules/store/sortStories.ts @@ -1,5 +1,3 @@ -import { dedent } from 'ts-dedent'; -import { storySort } from './storySort'; import type { IndexEntry, StoryIndexEntry } from '@storybook/core/types'; import type { Addon_Comparator, @@ -7,9 +5,13 @@ import type { Addon_StorySortParameterV7, IndexEntryLegacy, } from '@storybook/core/types'; -import type { Path, Renderer, Parameters } from '@storybook/core/types'; +import type { Parameters, Path, Renderer } from '@storybook/core/types'; import type { PreparedStory } from '@storybook/core/types'; +import { dedent } from 'ts-dedent'; + +import { storySort } from './storySort'; + const sortStoriesCommon = ( stories: IndexEntry[], storySortParameter: Addon_StorySortParameterV7, diff --git a/code/core/src/preview-api/modules/store/storySort.test.ts b/code/core/src/preview-api/modules/store/storySort.test.ts index f41175aa156b..104ad3bb1c8d 100644 --- a/code/core/src/preview-api/modules/store/storySort.test.ts +++ b/code/core/src/preview-api/modules/store/storySort.test.ts @@ -1,4 +1,5 @@ -import { expect, describe, it } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import type { StoryId, StoryIndexEntry } from '@storybook/core/types'; import { storySort } from './storySort'; diff --git a/code/core/src/preview-errors.ts b/code/core/src/preview-errors.ts index c1d070f7c10a..a50183f79ac4 100644 --- a/code/core/src/preview-errors.ts +++ b/code/core/src/preview-errors.ts @@ -1,4 +1,5 @@ import { dedent } from 'ts-dedent'; + import { StorybookError } from './storybook-error'; /** diff --git a/code/core/src/preview/globals/runtime.ts b/code/core/src/preview/globals/runtime.ts index a766e5cbac00..48418bc6de7e 100644 --- a/code/core/src/preview/globals/runtime.ts +++ b/code/core/src/preview/globals/runtime.ts @@ -1,11 +1,11 @@ +import * as CHANNELS from '@storybook/core/channels'; +import * as TYPES from '@storybook/core/types'; import * as GLOBAL from '@storybook/global'; -import * as CHANNELS from '@storybook/core/channels'; import * as CLIENT_LOGGER from '@storybook/core/client-logger'; import * as CORE_EVENTS from '@storybook/core/core-events'; -import * as CORE_EVENTS_PREVIEW_ERRORS from '@storybook/core/preview-errors'; import * as PREVIEW_API from '@storybook/core/preview-api'; -import * as TYPES from '@storybook/core/types'; +import * as CORE_EVENTS_PREVIEW_ERRORS from '@storybook/core/preview-errors'; import type { globalsNameReferenceMap } from './globals'; diff --git a/code/core/src/preview/runtime.ts b/code/core/src/preview/runtime.ts index 67accbf97977..45ca3083ae6b 100644 --- a/code/core/src/preview/runtime.ts +++ b/code/core/src/preview/runtime.ts @@ -1,8 +1,9 @@ -import { TELEMETRY_ERROR } from '@storybook/core/core-events'; import { global } from '@storybook/global'; + +import { TELEMETRY_ERROR } from '@storybook/core/core-events'; + import { globalPackages, globalsNameReferenceMap } from './globals/globals'; import { globalsNameValueMap } from './globals/runtime'; - import { prepareForTelemetry } from './utils'; // Apply all the globals diff --git a/code/core/src/preview/utils.ts b/code/core/src/preview/utils.ts index b3f77adc4e04..0b5e46ad91c6 100644 --- a/code/core/src/preview/utils.ts +++ b/code/core/src/preview/utils.ts @@ -1,4 +1,5 @@ import { global } from '@storybook/global'; + import type { BrowserInfo } from 'browser-dtector'; import BrowserDetector from 'browser-dtector'; diff --git a/code/core/src/router/router.tsx b/code/core/src/router/router.tsx index f2e44437b001..00834debee3e 100644 --- a/code/core/src/router/router.tsx +++ b/code/core/src/router/router.tsx @@ -1,10 +1,12 @@ -import { global } from '@storybook/global'; import React, { useCallback } from 'react'; -import type { ReactNode, ReactElement, ComponentProps } from 'react'; +import type { ComponentProps, ReactElement, ReactNode } from 'react'; + +import { global } from '@storybook/global'; import * as R from 'react-router-dom'; -import { queryFromString, parsePath, getMatch } from './utils'; + import type { LinkProps, NavigateOptions, RenderData } from './types'; +import { getMatch, parsePath, queryFromString } from './utils'; const { document } = global; diff --git a/code/core/src/router/types.ts b/code/core/src/router/types.ts index c601e68c290d..a181dafcbecc 100644 --- a/code/core/src/router/types.ts +++ b/code/core/src/router/types.ts @@ -1,5 +1,7 @@ -import type * as R from 'react-router-dom'; import type { ReactNode } from 'react'; + +import type * as R from 'react-router-dom'; + import type { StoryData } from './utils'; export interface Other extends StoryData { diff --git a/code/core/src/router/utils.test.ts b/code/core/src/router/utils.test.ts index 00df97fc4ca4..784fc204d6d6 100644 --- a/code/core/src/router/utils.test.ts +++ b/code/core/src/router/utils.test.ts @@ -1,5 +1,6 @@ -import { describe, it, expect, vi } from 'vitest'; -import { buildArgsParam, deepDiff, DEEPLY_EQUAL, getMatch, parsePath } from './utils'; +import { describe, expect, it, vi } from 'vitest'; + +import { DEEPLY_EQUAL, buildArgsParam, deepDiff, getMatch, parsePath } from './utils'; vi.mock('@storybook/core/client-logger', () => ({ once: { warn: vi.fn() }, diff --git a/code/core/src/router/utils.ts b/code/core/src/router/utils.ts index 57f3b3389b7b..fac4ecee479f 100644 --- a/code/core/src/router/utils.ts +++ b/code/core/src/router/utils.ts @@ -1,4 +1,5 @@ import { once } from '@storybook/core/client-logger'; + import { dequal as deepEqual } from 'dequal'; import isPlainObject from 'lodash/isPlainObject.js'; import memoize from 'memoizerific'; diff --git a/code/core/src/server-errors.ts b/code/core/src/server-errors.ts index 54cc3d3e0b02..23e203f27ddb 100644 --- a/code/core/src/server-errors.ts +++ b/code/core/src/server-errors.ts @@ -1,5 +1,6 @@ import chalk from 'chalk'; import { dedent } from 'ts-dedent'; + import { StorybookError } from './storybook-error'; /** diff --git a/code/core/src/telemetry/anonymous-id.test.ts b/code/core/src/telemetry/anonymous-id.test.ts index 01caff1cd1fe..6606f43cabc2 100644 --- a/code/core/src/telemetry/anonymous-id.test.ts +++ b/code/core/src/telemetry/anonymous-id.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { normalizeGitUrl } from './anonymous-id'; describe('normalizeGitUrl', () => { diff --git a/code/core/src/telemetry/anonymous-id.ts b/code/core/src/telemetry/anonymous-id.ts index 7af263c2f569..2748a2fd2a8a 100644 --- a/code/core/src/telemetry/anonymous-id.ts +++ b/code/core/src/telemetry/anonymous-id.ts @@ -1,7 +1,9 @@ import path from 'node:path'; -import { execSync } from 'child_process'; + import { getProjectRoot } from '@storybook/core/common'; +import { execSync } from 'child_process'; + import { oneWayHash } from './one-way-hash'; export function normalizeGitUrl(rawUrl: string) { diff --git a/code/core/src/telemetry/event-cache.test.ts b/code/core/src/telemetry/event-cache.test.ts index 788fb5270c64..d7ffb38d0c5d 100644 --- a/code/core/src/telemetry/event-cache.test.ts +++ b/code/core/src/telemetry/event-cache.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { getPrecedingUpgrade } from './event-cache'; expect.addSnapshotSerializer({ diff --git a/code/core/src/telemetry/event-cache.ts b/code/core/src/telemetry/event-cache.ts index 144a083dff9c..d6a0d688e626 100644 --- a/code/core/src/telemetry/event-cache.ts +++ b/code/core/src/telemetry/event-cache.ts @@ -1,4 +1,5 @@ import { cache } from '@storybook/core/common'; + import type { EventType } from './types'; interface UpgradeSummary { diff --git a/code/core/src/telemetry/get-chromatic-version.test.ts b/code/core/src/telemetry/get-chromatic-version.test.ts index 85627012c799..b99d48bc32c1 100644 --- a/code/core/src/telemetry/get-chromatic-version.test.ts +++ b/code/core/src/telemetry/get-chromatic-version.test.ts @@ -1,4 +1,5 @@ -import { it, expect } from 'vitest'; +import { expect, it } from 'vitest'; + import { getChromaticVersionSpecifier } from './get-chromatic-version'; it('works for dependencies', () => { diff --git a/code/core/src/telemetry/get-framework-info.test.ts b/code/core/src/telemetry/get-framework-info.test.ts index 4bcd80f5c6b0..6987c32ccc9b 100644 --- a/code/core/src/telemetry/get-framework-info.test.ts +++ b/code/core/src/telemetry/get-framework-info.test.ts @@ -1,6 +1,9 @@ -import { describe, it, expect, vi } from 'vitest'; -import type { StorybookConfig } from '@storybook/core/types'; import path from 'node:path'; + +import { describe, expect, it, vi } from 'vitest'; + +import type { StorybookConfig } from '@storybook/core/types'; + import { getFrameworkInfo } from './get-framework-info'; import { getActualPackageJson } from './package-json'; diff --git a/code/core/src/telemetry/get-framework-info.ts b/code/core/src/telemetry/get-framework-info.ts index 162a9cad63f5..995777e1b798 100644 --- a/code/core/src/telemetry/get-framework-info.ts +++ b/code/core/src/telemetry/get-framework-info.ts @@ -1,8 +1,10 @@ -import type { PackageJson, StorybookConfig } from '@storybook/core/types'; import path from 'node:path'; + import { frameworkPackages } from '@storybook/core/common'; -import { cleanPaths } from './sanitize'; +import type { PackageJson, StorybookConfig } from '@storybook/core/types'; + import { getActualPackageJson } from './package-json'; +import { cleanPaths } from './sanitize'; const knownRenderers = [ 'html', diff --git a/code/core/src/telemetry/get-monorepo-type.test.ts b/code/core/src/telemetry/get-monorepo-type.test.ts index 1a717d4b4fc4..6c5366b8c1aa 100644 --- a/code/core/src/telemetry/get-monorepo-type.test.ts +++ b/code/core/src/telemetry/get-monorepo-type.test.ts @@ -1,8 +1,10 @@ /* eslint-disable no-underscore-dangle */ -import { describe, it, expect, vi } from 'vitest'; -import * as fsExtra from 'fs-extra'; import path from 'node:path'; +import { describe, expect, it, vi } from 'vitest'; + +import * as fsExtra from 'fs-extra'; + import { getMonorepoType, monorepoConfigs } from './get-monorepo-type'; vi.mock('fs-extra', async () => import('../../../__mocks__/fs-extra')); diff --git a/code/core/src/telemetry/get-monorepo-type.ts b/code/core/src/telemetry/get-monorepo-type.ts index 33dfc9eea1ac..0427da90247c 100644 --- a/code/core/src/telemetry/get-monorepo-type.ts +++ b/code/core/src/telemetry/get-monorepo-type.ts @@ -1,7 +1,9 @@ -import { existsSync, readJsonSync } from 'fs-extra'; import path from 'node:path'; -import type { PackageJson } from '@storybook/core/types'; + import { getProjectRoot } from '@storybook/core/common'; +import type { PackageJson } from '@storybook/core/types'; + +import { existsSync, readJsonSync } from 'fs-extra'; export const monorepoConfigs = { Nx: 'nx.json', diff --git a/code/core/src/telemetry/get-portable-stories-usage.test.ts b/code/core/src/telemetry/get-portable-stories-usage.test.ts index b07eaec0a2e2..1711e5d03d22 100644 --- a/code/core/src/telemetry/get-portable-stories-usage.test.ts +++ b/code/core/src/telemetry/get-portable-stories-usage.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { getPortableStoriesFileCountUncached } from './get-portable-stories-usage'; diff --git a/code/core/src/telemetry/index.ts b/code/core/src/telemetry/index.ts index d8286d0b7535..82d3c0c1dacf 100644 --- a/code/core/src/telemetry/index.ts +++ b/code/core/src/telemetry/index.ts @@ -1,9 +1,10 @@ import { logger } from '@storybook/core/node-logger'; -import type { EventType, Payload, Options, TelemetryData } from './types'; -import { getStorybookMetadata } from './storybook-metadata'; -import { sendTelemetry } from './telemetry'; + import { notify } from './notify'; import { sanitizeError } from './sanitize'; +import { getStorybookMetadata } from './storybook-metadata'; +import { sendTelemetry } from './telemetry'; +import type { EventType, Options, Payload, TelemetryData } from './types'; export { oneWayHash } from './one-way-hash'; diff --git a/code/core/src/telemetry/notify.ts b/code/core/src/telemetry/notify.ts index 97ebe63d8619..171d48ae671f 100644 --- a/code/core/src/telemetry/notify.ts +++ b/code/core/src/telemetry/notify.ts @@ -1,6 +1,7 @@ -import chalk from 'chalk'; import { cache } from '@storybook/core/common'; +import chalk from 'chalk'; + const TELEMETRY_KEY_NOTIFY_DATE = 'telemetry-notification-date'; const logger = console; diff --git a/code/core/src/telemetry/package-json.ts b/code/core/src/telemetry/package-json.ts index df61f0e71a41..99c8476b64c0 100644 --- a/code/core/src/telemetry/package-json.ts +++ b/code/core/src/telemetry/package-json.ts @@ -1,6 +1,7 @@ -import { readJson } from 'fs-extra'; import path from 'node:path'; +import { readJson } from 'fs-extra'; + import type { Dependency } from './types'; export const getActualPackageVersions = async (packages: Record>) => { diff --git a/code/core/src/telemetry/sanitize.test.ts b/code/core/src/telemetry/sanitize.test.ts index 659ed647362f..d5cac7d16f5c 100644 --- a/code/core/src/telemetry/sanitize.test.ts +++ b/code/core/src/telemetry/sanitize.test.ts @@ -1,5 +1,6 @@ -import { describe, it, expect, vi } from 'vitest'; -import { sanitizeError, cleanPaths } from './sanitize'; +import { describe, expect, it, vi } from 'vitest'; + +import { cleanPaths, sanitizeError } from './sanitize'; describe(`Errors Helpers`, () => { describe(`sanitizeError`, () => { diff --git a/code/core/src/telemetry/session-id.test.ts b/code/core/src/telemetry/session-id.test.ts index 78313fefb305..cff48bfa6dda 100644 --- a/code/core/src/telemetry/session-id.test.ts +++ b/code/core/src/telemetry/session-id.test.ts @@ -1,8 +1,11 @@ import type { MockInstance } from 'vitest'; -import { describe, it, beforeEach, expect, vi } from 'vitest'; -import { nanoid } from 'nanoid'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; + import { cache } from '@storybook/core/common'; -import { resetSessionIdForTest, getSessionId, SESSION_TIMEOUT } from './session-id'; + +import { nanoid } from 'nanoid'; + +import { SESSION_TIMEOUT, getSessionId, resetSessionIdForTest } from './session-id'; vi.mock('@storybook/core/common', async (importOriginal) => ({ ...(await importOriginal()), diff --git a/code/core/src/telemetry/session-id.ts b/code/core/src/telemetry/session-id.ts index 36a92fe7cdf5..3029855c5cee 100644 --- a/code/core/src/telemetry/session-id.ts +++ b/code/core/src/telemetry/session-id.ts @@ -1,6 +1,7 @@ -import { nanoid } from 'nanoid'; import { cache } from '@storybook/core/common'; +import { nanoid } from 'nanoid'; + export const SESSION_TIMEOUT = 1000 * 60 * 60 * 2; // 2h interface Session { diff --git a/code/core/src/telemetry/storybook-metadata.test.ts b/code/core/src/telemetry/storybook-metadata.test.ts index 3476aaeff1c0..06bf355c0688 100644 --- a/code/core/src/telemetry/storybook-metadata.test.ts +++ b/code/core/src/telemetry/storybook-metadata.test.ts @@ -1,8 +1,10 @@ +import path from 'node:path'; + import type { MockInstance } from 'vitest'; -import { describe, beforeEach, afterEach, expect, vi, it } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; + import type { PackageJson, StorybookConfig } from '@storybook/core/types'; -import path from 'node:path'; import { computeStorybookMetadata, metaFrameworks, sanitizeAddonName } from './storybook-metadata'; const packageJsonMock: PackageJson = { diff --git a/code/core/src/telemetry/storybook-metadata.ts b/code/core/src/telemetry/storybook-metadata.ts index aba11c72137a..75804b813fc2 100644 --- a/code/core/src/telemetry/storybook-metadata.ts +++ b/code/core/src/telemetry/storybook-metadata.ts @@ -1,21 +1,23 @@ -import { findPackage } from 'fd-package-json'; -import { detect, getNpmVersion } from 'detect-package-manager'; import { - loadMainConfig, - getStorybookInfo, - getStorybookConfiguration, getProjectRoot, + getStorybookConfiguration, + getStorybookInfo, + loadMainConfig, } from '@storybook/core/common'; -import type { StorybookConfig, PackageJson } from '@storybook/core/types'; +import type { PackageJson, StorybookConfig } from '@storybook/core/types'; + import { readConfig } from '@storybook/core/csf-tools'; -import type { StorybookMetadata, Dependency, StorybookAddon } from './types'; -import { getActualPackageVersion, getActualPackageVersions } from './package-json'; -import { getMonorepoType } from './get-monorepo-type'; -import { cleanPaths } from './sanitize'; -import { getFrameworkInfo } from './get-framework-info'; +import { detect, getNpmVersion } from 'detect-package-manager'; +import { findPackage } from 'fd-package-json'; + import { getChromaticVersionSpecifier } from './get-chromatic-version'; +import { getFrameworkInfo } from './get-framework-info'; +import { getMonorepoType } from './get-monorepo-type'; import { getPortableStoriesFileCount } from './get-portable-stories-usage'; +import { getActualPackageVersion, getActualPackageVersions } from './package-json'; +import { cleanPaths } from './sanitize'; +import type { Dependency, StorybookAddon, StorybookMetadata } from './types'; export const metaFrameworks = { next: 'Next', diff --git a/code/core/src/telemetry/telemetry.test.ts b/code/core/src/telemetry/telemetry.test.ts index 8b13b94dcf6d..b5ff3fb4caa1 100644 --- a/code/core/src/telemetry/telemetry.test.ts +++ b/code/core/src/telemetry/telemetry.test.ts @@ -1,7 +1,6 @@ -import { fetch } from './fetch'; - -import { beforeEach, it, expect, vi } from 'vitest'; +import { beforeEach, expect, it, vi } from 'vitest'; +import { fetch } from './fetch'; import { sendTelemetry } from './telemetry'; vi.mock('./fetch'); diff --git a/code/core/src/telemetry/telemetry.ts b/code/core/src/telemetry/telemetry.ts index 6b3655201065..90b0eaa4d9dc 100644 --- a/code/core/src/telemetry/telemetry.ts +++ b/code/core/src/telemetry/telemetry.ts @@ -1,13 +1,13 @@ /// - -import * as os from 'os'; -import { nanoid } from 'nanoid'; import retry from 'fetch-retry'; -import type { Options, TelemetryData } from './types'; +import { nanoid } from 'nanoid'; +import * as os from 'os'; + import { getAnonymousProjectId } from './anonymous-id'; import { set as saveToCache } from './event-cache'; -import { getSessionId } from './session-id'; import { fetch } from './fetch'; +import { getSessionId } from './session-id'; +import type { Options, TelemetryData } from './types'; const retryingFetch = retry(fetch); diff --git a/code/core/src/telemetry/types.ts b/code/core/src/telemetry/types.ts index 4809d83c6a49..699a8da6e83b 100644 --- a/code/core/src/telemetry/types.ts +++ b/code/core/src/telemetry/types.ts @@ -1,4 +1,5 @@ import type { StorybookConfig, TypescriptOptions } from '@storybook/core/types'; + import type { PM } from 'detect-package-manager'; import type { MonorepoType } from './get-monorepo-type'; diff --git a/code/core/src/theming/convert.ts b/code/core/src/theming/convert.ts index 9765adc03d61..1336c029493f 100644 --- a/code/core/src/theming/convert.ts +++ b/code/core/src/theming/convert.ts @@ -1,10 +1,11 @@ import { opacify } from 'polished'; -import { background, typography, color } from './base'; + +import { animation, easing } from './animation'; +import { background, color, typography } from './base'; +import { themes } from './create'; +import { chromeDark, chromeLight, create as createSyntax } from './modules/syntax'; import type { Color, StorybookTheme, ThemeVars, ThemeVarsColors } from './types'; -import { easing, animation } from './animation'; -import { create as createSyntax, chromeLight, chromeDark } from './modules/syntax'; import { getPreferredColorScheme } from './utils'; -import { themes } from './create'; const lightSyntaxColors = { green1: '#008000', diff --git a/code/core/src/theming/create.ts b/code/core/src/theming/create.ts index d28769b5eb06..b5f97a34aee5 100644 --- a/code/core/src/theming/create.ts +++ b/code/core/src/theming/create.ts @@ -1,7 +1,6 @@ // This generates theme variables in the correct shape for the UI -import lightThemeVars from './themes/light'; import darkThemeVars from './themes/dark'; - +import lightThemeVars from './themes/light'; import type { ThemeVars, ThemeVarsPartial } from './types'; import { getPreferredColorScheme } from './utils'; diff --git a/code/core/src/theming/emotionAugmentation.d.ts b/code/core/src/theming/emotionAugmentation.d.ts index d5ceb8b427f6..92cfd3ccf585 100644 --- a/code/core/src/theming/emotionAugmentation.d.ts +++ b/code/core/src/theming/emotionAugmentation.d.ts @@ -1,6 +1,5 @@ // this file is only actually used in development // for prod/dist bundles we are bundling Emotion into our package - import '@emotion/react'; declare module '@emotion/react' { diff --git a/code/core/src/theming/ensure.ts b/code/core/src/theming/ensure.ts index 6ee5298e45cd..39e3ee7e9d00 100644 --- a/code/core/src/theming/ensure.ts +++ b/code/core/src/theming/ensure.ts @@ -3,9 +3,9 @@ import { logger } from '@storybook/core/client-logger'; import { deletedDiff } from 'deep-object-diff'; import { dedent } from 'ts-dedent'; -import light from './themes/light'; -import type { ThemeVars, StorybookTheme } from './types'; import { convert } from './convert'; +import light from './themes/light'; +import type { StorybookTheme, ThemeVars } from './types'; export const ensure = (input: ThemeVars): StorybookTheme => { if (!input) { diff --git a/code/core/src/theming/global.ts b/code/core/src/theming/global.ts index 499d59cb2240..2f22bcb77e0f 100644 --- a/code/core/src/theming/global.ts +++ b/code/core/src/theming/global.ts @@ -1,5 +1,6 @@ import memoize from 'memoizerific'; -import type { Color, Background, Typography } from './types'; + +import type { Background, Color, Typography } from './types'; type Value = string | number; interface Return { diff --git a/code/core/src/theming/index.ts b/code/core/src/theming/index.ts index c533e8387803..8fa92ea794f9 100644 --- a/code/core/src/theming/index.ts +++ b/code/core/src/theming/index.ts @@ -1,7 +1,7 @@ /// /// - import type { FunctionInterpolation, Interpolation } from '@emotion/react'; + import type { StorybookTheme } from './types'; export { default as styled } from '@emotion/styled'; diff --git a/code/core/src/theming/tests/convert.test.js b/code/core/src/theming/tests/convert.test.js index 80a2512cb4d1..779bbd0349d3 100644 --- a/code/core/src/theming/tests/convert.test.js +++ b/code/core/src/theming/tests/convert.test.js @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { convert } from '../convert'; import { create } from '../create'; import darkThemeVars from '../themes/dark'; diff --git a/code/core/src/theming/tests/create.test.js b/code/core/src/theming/tests/create.test.js index b5f037e0a2e0..524a424e6df0 100644 --- a/code/core/src/theming/tests/create.test.js +++ b/code/core/src/theming/tests/create.test.js @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { create } from '../create'; describe('create base', () => { diff --git a/code/core/src/theming/tests/util.test.js b/code/core/src/theming/tests/util.test.js index f3e38f694e83..c20fccd30414 100644 --- a/code/core/src/theming/tests/util.test.js +++ b/code/core/src/theming/tests/util.test.js @@ -1,7 +1,7 @@ // @vitest-environment happy-dom +import { describe, expect, it, vi } from 'vitest'; -import { describe, it, expect, vi } from 'vitest'; -import { lightenColor as lighten, darkenColor as darken, getPreferredColorScheme } from '../utils'; +import { darkenColor as darken, getPreferredColorScheme, lightenColor as lighten } from '../utils'; describe('utils', () => { it('should apply polished when valid arguments are passed', () => { diff --git a/code/core/src/theming/themes/light.ts b/code/core/src/theming/themes/light.ts index 75d83f1e740a..a5bf4def7e9c 100644 --- a/code/core/src/theming/themes/light.ts +++ b/code/core/src/theming/themes/light.ts @@ -1,4 +1,4 @@ -import { color, typography, background } from '../base'; +import { background, color, typography } from '../base'; import type { ThemeVars } from '../types'; const theme: ThemeVars = { diff --git a/code/core/src/theming/types.ts b/code/core/src/theming/types.ts index e7c2827792cb..1f386bfebd8a 100644 --- a/code/core/src/theming/types.ts +++ b/code/core/src/theming/types.ts @@ -1,6 +1,5 @@ -import type { easing, animation } from './animation'; - -import type { color, background, typography } from './base'; +import type { animation, easing } from './animation'; +import type { background, color, typography } from './base'; export interface ThemeVars extends ThemeVarsBase, ThemeVarsColors {} diff --git a/code/core/src/theming/utils.ts b/code/core/src/theming/utils.ts index 2f8cb1c82301..f51a4f3473a5 100644 --- a/code/core/src/theming/utils.ts +++ b/code/core/src/theming/utils.ts @@ -1,8 +1,9 @@ -import { rgba, lighten, darken } from 'polished'; import { global } from '@storybook/global'; import { logger } from '@storybook/core/client-logger'; +import { darken, lighten, rgba } from 'polished'; + const { window: globalWindow } = global; export const mkColor = (color: string) => ({ color }); diff --git a/code/core/src/types/modules/addons.ts b/code/core/src/types/modules/addons.ts index cc9d90251c2c..7dceb312cccc 100644 --- a/code/core/src/types/modules/addons.ts +++ b/code/core/src/types/modules/addons.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/naming-convention */ - import type { FC, PropsWithChildren, ReactElement, ReactNode } from 'react'; + import type { RenderData as RouterData } from '../../router/types'; import type { ThemeVars } from '../../theming/types'; import type { API_SidebarOptions } from './api'; @@ -9,11 +9,11 @@ import type { ArgsStoryFn as ArgsStoryFnForFramework, DecoratorFunction as DecoratorFunctionForFramework, InputType, - Renderer, LegacyStoryFn as LegacyStoryFnForFramework, LoaderFunction as LoaderFunctionForFramework, Parameters, PartialStoryFn as PartialStoryFnForFramework, + Renderer, StoryContext as StoryContextForFramework, StoryFn as StoryFnForFramework, StoryId, diff --git a/code/core/src/types/modules/api-stories.ts b/code/core/src/types/modules/api-stories.ts index 90a6962c7d1c..7bde00d74f7b 100644 --- a/code/core/src/types/modules/api-stories.ts +++ b/code/core/src/types/modules/api-stories.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/naming-convention */ import type { DocsOptions } from './core-common'; -import type { Args, ArgTypes, Parameters, ComponentTitle, StoryId, Path, Tag } from './csf'; +import type { ArgTypes, Args, ComponentTitle, Parameters, Path, StoryId, Tag } from './csf'; import type { IndexEntry } from './indexer'; export interface API_BaseEntry { diff --git a/code/core/src/types/modules/api.ts b/code/core/src/types/modules/api.ts index 86ba7bbd02dd..b338fc6ace69 100644 --- a/code/core/src/types/modules/api.ts +++ b/code/core/src/types/modules/api.ts @@ -1,13 +1,13 @@ /* eslint-disable @typescript-eslint/naming-convention */ - import type { ReactElement } from 'react'; -import type { RenderData } from '../../router/types'; + import type { Channel } from '../../channels'; +import type { RenderData } from '../../router/types'; import type { ThemeVars } from '../../theming/types'; -import type { DocsOptions } from './core-common'; +import type { Addon_RenderOptions } from './addons'; import type { API_FilterFunction, API_HashEntry, API_IndexHash } from './api-stories'; import type { SetStoriesStory, SetStoriesStoryData } from './channelApi'; -import type { Addon_RenderOptions } from './addons'; +import type { DocsOptions } from './core-common'; import type { StoryIndex } from './indexer'; type OrString = T | (string & {}); diff --git a/code/core/src/types/modules/channelApi.ts b/code/core/src/types/modules/channelApi.ts index 6c4f160a0831..6097b610854e 100644 --- a/code/core/src/types/modules/channelApi.ts +++ b/code/core/src/types/modules/channelApi.ts @@ -1,13 +1,13 @@ import type { API_ViewMode } from './api'; import type { - Args, ArgTypes, + Args, ComponentId, + GlobalTypes, + Globals, Parameters, StoryId, StoryKind, - Globals, - GlobalTypes, } from './csf'; // The data received on the (legacy) `setStories` event diff --git a/code/core/src/types/modules/composedStory.ts b/code/core/src/types/modules/composedStory.ts index ade2c302a999..7a5df854ff39 100644 --- a/code/core/src/types/modules/composedStory.ts +++ b/code/core/src/types/modules/composedStory.ts @@ -1,5 +1,4 @@ /* eslint-disable @typescript-eslint/naming-convention */ - import type { ProjectAnnotations, Renderer, diff --git a/code/core/src/types/modules/core-common.ts b/code/core/src/types/modules/core-common.ts index e7ee49c67109..1939ea25db3a 100644 --- a/code/core/src/types/modules/core-common.ts +++ b/code/core/src/types/modules/core-common.ts @@ -1,12 +1,12 @@ /* eslint-disable @typescript-eslint/naming-convention */ -import type { FileSystemCache } from 'file-system-cache'; -import type * as telejson from 'telejson'; import type { Router } from 'express'; +import type { FileSystemCache } from 'file-system-cache'; // should be node:http, but that caused the ui/manager to fail to build, might be able to switch this back once ui/manager is in the core import type { Server } from 'http'; +import type * as telejson from 'telejson'; import type { PackageJson as PackageJsonFromTypeFest } from 'type-fest'; -import type { StoriesEntry, Indexer } from './indexer'; +import type { Indexer, StoriesEntry } from './indexer'; /** * ⚠️ This file contains internal WIP types they MUST NOT be exported outside this package for now! diff --git a/code/core/src/types/modules/docs.ts b/code/core/src/types/modules/docs.ts index 9202ea64dcf4..386301e523e8 100644 --- a/code/core/src/types/modules/docs.ts +++ b/code/core/src/types/modules/docs.ts @@ -1,13 +1,14 @@ import type { Channel } from '@storybook/core/channels'; -import type { Renderer, StoryContext, StoryId, StoryName, Parameters } from './csf'; + +import type { Parameters, Renderer, StoryContext, StoryId, StoryName } from './csf'; import type { + CSFFile, ModuleExport, ModuleExports, - CSFFile, - PreparedStory, NormalizedProjectAnnotations, - RenderContext, PreparedMeta, + PreparedStory, + RenderContext, } from './story'; export type RenderContextCallbacks = Pick< diff --git a/code/core/src/types/modules/indexer.ts b/code/core/src/types/modules/indexer.ts index cafbd8f90b76..daf0ddb2a735 100644 --- a/code/core/src/types/modules/indexer.ts +++ b/code/core/src/types/modules/indexer.ts @@ -1,4 +1,4 @@ -import type { StoryId, ComponentTitle, StoryName, Parameters, Tag, Path } from './csf'; +import type { ComponentTitle, Parameters, Path, StoryId, StoryName, Tag } from './csf'; type ExportName = string; type MetaId = string; diff --git a/code/core/src/types/modules/story.ts b/code/core/src/types/modules/story.ts index 2cbd803e5637..f8deb8c522f0 100644 --- a/code/core/src/types/modules/story.ts +++ b/code/core/src/types/modules/story.ts @@ -1,13 +1,13 @@ import type { - Renderer, + BeforeAll, + Canvas, + CleanupCallback, ProjectAnnotations as CsfProjectAnnotations, DecoratorFunction, + Globals, LoaderFunction, - CleanupCallback, + Renderer, StepRunner, - Canvas, - Globals, - BeforeAll, } from '@storybook/csf'; import type { diff --git a/code/core/template/stories/argMapping.stories.ts b/code/core/template/stories/argMapping.stories.ts index 169b68de9957..41575e931239 100644 --- a/code/core/template/stories/argMapping.stories.ts +++ b/code/core/template/stories/argMapping.stories.ts @@ -1,6 +1,6 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, PlayFunctionContext, StoryContext } from '@storybook/core/types'; -import { within, expect } from '@storybook/test'; +import { global as globalThis } from '@storybook/global'; +import { expect, within } from '@storybook/test'; const arrows = { ArrowUp: { name: 'ArrowUp' }, diff --git a/code/core/template/stories/argTypes.stories.ts b/code/core/template/stories/argTypes.stories.ts index dd2a53bd68fa..6ad691324495 100644 --- a/code/core/template/stories/argTypes.stories.ts +++ b/code/core/template/stories/argTypes.stories.ts @@ -1,5 +1,5 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, PlayFunctionContext, StoryContext } from '@storybook/core/types'; +import { global as globalThis } from '@storybook/global'; import { expect, within } from '@storybook/test'; export default { diff --git a/code/core/template/stories/args.stories.ts b/code/core/template/stories/args.stories.ts index ebe10a49240f..c5beee938600 100644 --- a/code/core/template/stories/args.stories.ts +++ b/code/core/template/stories/args.stories.ts @@ -1,13 +1,15 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, PlayFunctionContext, StoryContext } from '@storybook/core/types'; -import { within, expect } from '@storybook/test'; -import pick from 'lodash/pick'; +import { global as globalThis } from '@storybook/global'; +import { expect, within } from '@storybook/test'; + import { + RESET_STORY_ARGS, STORY_ARGS_UPDATED, UPDATE_STORY_ARGS, - RESET_STORY_ARGS, } from '@storybook/core/core-events'; +import pick from 'lodash/pick'; + export default { component: globalThis.Components.Pre, args: { diff --git a/code/core/template/stories/autotitle.stories.ts b/code/core/template/stories/autotitle.stories.ts index 48997645b036..0a675faadec8 100644 --- a/code/core/template/stories/autotitle.stories.ts +++ b/code/core/template/stories/autotitle.stories.ts @@ -1,6 +1,6 @@ +import type { PlayFunctionContext } from '@storybook/core/types'; import { global as globalThis } from '@storybook/global'; import { expect } from '@storybook/test'; -import type { PlayFunctionContext } from '@storybook/core/types'; export default { component: globalThis.Components.Pre, diff --git a/code/core/template/stories/component-play.stories.ts b/code/core/template/stories/component-play.stories.ts index cff3803d85bc..0571cf37b324 100644 --- a/code/core/template/stories/component-play.stories.ts +++ b/code/core/template/stories/component-play.stories.ts @@ -1,6 +1,6 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, PlayFunctionContext, StoryContext } from '@storybook/core/types'; -import { within, expect } from '@storybook/test'; +import { global as globalThis } from '@storybook/global'; +import { expect, within } from '@storybook/test'; export default { component: globalThis.Components.Pre, diff --git a/code/core/template/stories/decorators.stories.ts b/code/core/template/stories/decorators.stories.ts index df13c1088eb7..e04fbf5e6373 100644 --- a/code/core/template/stories/decorators.stories.ts +++ b/code/core/template/stories/decorators.stories.ts @@ -1,17 +1,18 @@ -import { global as globalThis } from '@storybook/global'; import type { ArgsStoryFn, PartialStoryFn, PlayFunctionContext, StoryContext, } from '@storybook/core/types'; -import { within, expect } from '@storybook/test'; -import { useEffect } from '@storybook/core/preview-api'; +import { global as globalThis } from '@storybook/global'; +import { expect, within } from '@storybook/test'; + import { + RESET_STORY_ARGS, STORY_ARGS_UPDATED, UPDATE_STORY_ARGS, - RESET_STORY_ARGS, } from '@storybook/core/core-events'; +import { useEffect } from '@storybook/core/preview-api'; export default { component: globalThis.Components.Pre, diff --git a/code/core/template/stories/globals.stories.ts b/code/core/template/stories/globals.stories.ts index 788e4dd53bd7..84a0c86d2ee2 100644 --- a/code/core/template/stories/globals.stories.ts +++ b/code/core/template/stories/globals.stories.ts @@ -1,6 +1,6 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, PlayFunctionContext, StoryContext } from '@storybook/core/types'; -import { within, expect } from '@storybook/test'; +import { global as globalThis } from '@storybook/global'; +import { expect, within } from '@storybook/test'; export default { component: globalThis.Components.Pre, diff --git a/code/core/template/stories/hooks.stories.ts b/code/core/template/stories/hooks.stories.ts index a329903c364e..ce145288f147 100644 --- a/code/core/template/stories/hooks.stories.ts +++ b/code/core/template/stories/hooks.stories.ts @@ -1,7 +1,8 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, PlayFunctionContext } from '@storybook/core/types'; +import { global as globalThis } from '@storybook/global'; +import { userEvent, within } from '@storybook/test'; + import { useEffect, useState } from '@storybook/core/preview-api'; -import { within, userEvent } from '@storybook/test'; export default { component: globalThis.Components.Button, diff --git a/code/core/template/stories/indexer.stories.ts b/code/core/template/stories/indexer.stories.ts index 94c0d7789d06..5468e698d3cb 100644 --- a/code/core/template/stories/indexer.stories.ts +++ b/code/core/template/stories/indexer.stories.ts @@ -1,6 +1,6 @@ -import { expect } from '@storybook/test'; -import { global as globalThis } from '@storybook/global'; import type { PlayFunctionContext } from '@storybook/core/types'; +import { global as globalThis } from '@storybook/global'; +import { expect } from '@storybook/test'; export default { component: globalThis.Components.Pre, diff --git a/code/core/template/stories/interleavedExports.stories.ts b/code/core/template/stories/interleavedExports.stories.ts index 60f88e7e6abc..25931c1fd094 100644 --- a/code/core/template/stories/interleavedExports.stories.ts +++ b/code/core/template/stories/interleavedExports.stories.ts @@ -1,5 +1,7 @@ import { global as globalThis } from '@storybook/global'; +import './import'; + export default { component: globalThis.Components.Pre, args: { text: 'Check that stories are processed OK' }, @@ -7,6 +9,4 @@ export default { export const Story1 = {}; -import './import'; - export const Story2 = {}; diff --git a/code/core/template/stories/loaders.stories.ts b/code/core/template/stories/loaders.stories.ts index 34ef7ebc84d5..37a4ac62c0c8 100644 --- a/code/core/template/stories/loaders.stories.ts +++ b/code/core/template/stories/loaders.stories.ts @@ -1,6 +1,6 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, PlayFunctionContext, StoryContext } from '@storybook/core/types'; -import { within, expect } from '@storybook/test'; +import { global as globalThis } from '@storybook/global'; +import { expect, within } from '@storybook/test'; export default { component: globalThis.Components.Pre, diff --git a/code/core/template/stories/names.stories.ts b/code/core/template/stories/names.stories.ts index f81df30334dd..b89304a63f59 100644 --- a/code/core/template/stories/names.stories.ts +++ b/code/core/template/stories/names.stories.ts @@ -1,6 +1,6 @@ +import type { PlayFunctionContext } from '@storybook/core/types'; import { global as globalThis } from '@storybook/global'; import { expect } from '@storybook/test'; -import type { PlayFunctionContext } from '@storybook/core/types'; export default { component: globalThis.Components.Pre, diff --git a/code/core/template/stories/parameters.stories.ts b/code/core/template/stories/parameters.stories.ts index 702f039e9912..a4200444cd0e 100644 --- a/code/core/template/stories/parameters.stories.ts +++ b/code/core/template/stories/parameters.stories.ts @@ -1,6 +1,6 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, PlayFunctionContext, StoryContext } from '@storybook/core/types'; -import { within, expect } from '@storybook/test'; +import { global as globalThis } from '@storybook/global'; +import { expect, within } from '@storybook/test'; export default { component: globalThis.Components.Pre, diff --git a/code/core/template/stories/rendering.stories.ts b/code/core/template/stories/rendering.stories.ts index 0ca4976ec2c2..7e03897e3c02 100644 --- a/code/core/template/stories/rendering.stories.ts +++ b/code/core/template/stories/rendering.stories.ts @@ -1,6 +1,7 @@ -import { global as globalThis } from '@storybook/global'; import type { PlayFunctionContext } from '@storybook/core/types'; -import { within, waitFor, expect } from '@storybook/test'; +import { global as globalThis } from '@storybook/global'; +import { expect, waitFor, within } from '@storybook/test'; + import { FORCE_REMOUNT, RESET_STORY_ARGS, diff --git a/code/core/template/stories/shortcuts.stories.ts b/code/core/template/stories/shortcuts.stories.ts index fa121866bab9..b64df8252da1 100644 --- a/code/core/template/stories/shortcuts.stories.ts +++ b/code/core/template/stories/shortcuts.stories.ts @@ -1,7 +1,8 @@ +import type { PlayFunctionContext } from '@storybook/csf'; import { global as globalThis } from '@storybook/global'; -import { userEvent, within, expect, fn } from '@storybook/test'; +import { expect, fn, userEvent, within } from '@storybook/test'; + import { PREVIEW_KEYDOWN } from '@storybook/core/core-events'; -import type { PlayFunctionContext } from '@storybook/csf'; export default { component: globalThis.Components.Form, diff --git a/code/core/template/stories/tags-add.stories.ts b/code/core/template/stories/tags-add.stories.ts index e7ed51cb5126..9a04ebe25bd4 100644 --- a/code/core/template/stories/tags-add.stories.ts +++ b/code/core/template/stories/tags-add.stories.ts @@ -1,6 +1,6 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, PlayFunctionContext, StoryContext } from '@storybook/core/types'; -import { within, expect } from '@storybook/test'; +import { global as globalThis } from '@storybook/global'; +import { expect, within } from '@storybook/test'; export default { component: globalThis.Components.Pre, diff --git a/code/core/template/stories/tags-config.stories.ts b/code/core/template/stories/tags-config.stories.ts index 5a009e63213d..9d7b70f8478a 100644 --- a/code/core/template/stories/tags-config.stories.ts +++ b/code/core/template/stories/tags-config.stories.ts @@ -1,6 +1,6 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, PlayFunctionContext, StoryContext } from '@storybook/core/types'; -import { within, expect } from '@storybook/test'; +import { global as globalThis } from '@storybook/global'; +import { expect, within } from '@storybook/test'; export default { component: globalThis.Components.Pre, diff --git a/code/core/template/stories/tags-remove.stories.ts b/code/core/template/stories/tags-remove.stories.ts index 949dab96d68f..f0148e6fb5b5 100644 --- a/code/core/template/stories/tags-remove.stories.ts +++ b/code/core/template/stories/tags-remove.stories.ts @@ -1,6 +1,6 @@ -import { global as globalThis } from '@storybook/global'; import type { PartialStoryFn, PlayFunctionContext, StoryContext } from '@storybook/core/types'; -import { within, expect } from '@storybook/test'; +import { global as globalThis } from '@storybook/global'; +import { expect, within } from '@storybook/test'; export default { component: globalThis.Components.Pre, diff --git a/code/core/template/stories/title.stories.ts b/code/core/template/stories/title.stories.ts index cd9eed6387be..deabd76f7623 100644 --- a/code/core/template/stories/title.stories.ts +++ b/code/core/template/stories/title.stories.ts @@ -1,6 +1,6 @@ +import type { PlayFunctionContext } from '@storybook/core/types'; import { global as globalThis } from '@storybook/global'; import { expect } from '@storybook/test'; -import type { PlayFunctionContext } from '@storybook/core/types'; export default { component: globalThis.Components.Pre, diff --git a/code/core/template/stories/utils.mock.ts b/code/core/template/stories/utils.mock.ts index bd3955dc0729..93a72d03a0e2 100644 --- a/code/core/template/stories/utils.mock.ts +++ b/code/core/template/stories/utils.mock.ts @@ -1,4 +1,5 @@ import { fn } from '@storybook/test'; + import * as utils from './utils.ts'; export const foo = fn(utils.foo).mockName('foo'); diff --git a/code/core/vitest.config.ts b/code/core/vitest.config.ts index b546d2ba6a40..df83dd4dc880 100644 --- a/code/core/vitest.config.ts +++ b/code/core/vitest.config.ts @@ -1,4 +1,5 @@ import { defineConfig, mergeConfig } from 'vitest/config'; + import { vitestCommonConfig } from '../vitest.workspace'; export default mergeConfig(vitestCommonConfig, defineConfig({})); diff --git a/code/e2e-tests/addon-actions.spec.ts b/code/e2e-tests/addon-actions.spec.ts index a67aa8599ce9..6c3fa98034e6 100644 --- a/code/e2e-tests/addon-actions.spec.ts +++ b/code/e2e-tests/addon-actions.spec.ts @@ -1,5 +1,6 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import process from 'process'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; diff --git a/code/e2e-tests/addon-backgrounds.spec.ts b/code/e2e-tests/addon-backgrounds.spec.ts index 2e0a4a0825b2..d40d922f8586 100644 --- a/code/e2e-tests/addon-backgrounds.spec.ts +++ b/code/e2e-tests/addon-backgrounds.spec.ts @@ -1,5 +1,6 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import process from 'process'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; diff --git a/code/e2e-tests/addon-controls.spec.ts b/code/e2e-tests/addon-controls.spec.ts index 2c388d7ef598..6499ef6c0742 100644 --- a/code/e2e-tests/addon-controls.spec.ts +++ b/code/e2e-tests/addon-controls.spec.ts @@ -1,5 +1,6 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import process from 'process'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; diff --git a/code/e2e-tests/addon-docs.spec.ts b/code/e2e-tests/addon-docs.spec.ts index a269bec909dd..cce2c23c6082 100644 --- a/code/e2e-tests/addon-docs.spec.ts +++ b/code/e2e-tests/addon-docs.spec.ts @@ -1,6 +1,7 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import process from 'process'; import { dedent } from 'ts-dedent'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; diff --git a/code/e2e-tests/addon-interactions.spec.ts b/code/e2e-tests/addon-interactions.spec.ts index 5c86f165830b..6ef484c038c8 100644 --- a/code/e2e-tests/addon-interactions.spec.ts +++ b/code/e2e-tests/addon-interactions.spec.ts @@ -1,5 +1,6 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import process from 'process'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; diff --git a/code/e2e-tests/addon-toolbars.spec.ts b/code/e2e-tests/addon-toolbars.spec.ts index b642ebca7967..493de06ce6f3 100644 --- a/code/e2e-tests/addon-toolbars.spec.ts +++ b/code/e2e-tests/addon-toolbars.spec.ts @@ -1,5 +1,6 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import process from 'process'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; diff --git a/code/e2e-tests/addon-viewport.spec.ts b/code/e2e-tests/addon-viewport.spec.ts index 64f8eb097dfb..cf53bc89432a 100644 --- a/code/e2e-tests/addon-viewport.spec.ts +++ b/code/e2e-tests/addon-viewport.spec.ts @@ -1,5 +1,6 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import process from 'process'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; diff --git a/code/e2e-tests/composition.spec.ts b/code/e2e-tests/composition.spec.ts index 2cc2e18f42ca..25923a44791a 100644 --- a/code/e2e-tests/composition.spec.ts +++ b/code/e2e-tests/composition.spec.ts @@ -1,4 +1,5 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:6006'; diff --git a/code/e2e-tests/framework-nextjs.spec.ts b/code/e2e-tests/framework-nextjs.spec.ts index 0b98e5428853..c88d723ce465 100644 --- a/code/e2e-tests/framework-nextjs.spec.ts +++ b/code/e2e-tests/framework-nextjs.spec.ts @@ -1,6 +1,7 @@ import type { Locator } from '@playwright/test'; -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import process from 'process'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:6006'; diff --git a/code/e2e-tests/framework-svelte.spec.ts b/code/e2e-tests/framework-svelte.spec.ts index ba42745c6172..a56bb2db5f0c 100644 --- a/code/e2e-tests/framework-svelte.spec.ts +++ b/code/e2e-tests/framework-svelte.spec.ts @@ -1,5 +1,6 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import process from 'process'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:6006'; diff --git a/code/e2e-tests/json-files.spec.ts b/code/e2e-tests/json-files.spec.ts index 8cfdc966f56d..920b072c093a 100644 --- a/code/e2e-tests/json-files.spec.ts +++ b/code/e2e-tests/json-files.spec.ts @@ -1,4 +1,4 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import process from 'process'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; diff --git a/code/e2e-tests/manager.spec.ts b/code/e2e-tests/manager.spec.ts index 7131e764e635..f863b1cddf2a 100644 --- a/code/e2e-tests/manager.spec.ts +++ b/code/e2e-tests/manager.spec.ts @@ -1,5 +1,6 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import process from 'process'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; diff --git a/code/e2e-tests/module-mocking.spec.ts b/code/e2e-tests/module-mocking.spec.ts index 8b6b43713b61..7a9048e6cc2b 100644 --- a/code/e2e-tests/module-mocking.spec.ts +++ b/code/e2e-tests/module-mocking.spec.ts @@ -1,5 +1,6 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import process from 'process'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; diff --git a/code/e2e-tests/navigation.spec.ts b/code/e2e-tests/navigation.spec.ts index c7ac1a1263d7..16c72d6ffe6e 100644 --- a/code/e2e-tests/navigation.spec.ts +++ b/code/e2e-tests/navigation.spec.ts @@ -1,5 +1,6 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import process from 'process'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; diff --git a/code/e2e-tests/preview-api.spec.ts b/code/e2e-tests/preview-api.spec.ts index 9132a6de495f..bb7b3dc2be9a 100644 --- a/code/e2e-tests/preview-api.spec.ts +++ b/code/e2e-tests/preview-api.spec.ts @@ -1,5 +1,6 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; import process from 'process'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; diff --git a/code/e2e-tests/save-from-controls.spec.ts b/code/e2e-tests/save-from-controls.spec.ts index b70a1607595c..0fbc24b38592 100644 --- a/code/e2e-tests/save-from-controls.spec.ts +++ b/code/e2e-tests/save-from-controls.spec.ts @@ -1,5 +1,6 @@ import { test } from '@playwright/test'; import process from 'process'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; diff --git a/code/e2e-tests/storybook-hooks.spec.ts b/code/e2e-tests/storybook-hooks.spec.ts index 97e2926eb920..4dbb0ccf6f1e 100644 --- a/code/e2e-tests/storybook-hooks.spec.ts +++ b/code/e2e-tests/storybook-hooks.spec.ts @@ -1,7 +1,9 @@ /* eslint-disable no-underscore-dangle */ -import { join } from 'node:path'; import { promises as fs } from 'node:fs'; +import { join } from 'node:path'; + import { test } from '@playwright/test'; + import { SbPage } from './util'; declare global { diff --git a/code/e2e-tests/tags.spec.ts b/code/e2e-tests/tags.spec.ts index 2e7202357a1b..3148f166104e 100644 --- a/code/e2e-tests/tags.spec.ts +++ b/code/e2e-tests/tags.spec.ts @@ -1,4 +1,5 @@ -import { test, expect } from '@playwright/test'; +import { expect, test } from '@playwright/test'; + import { SbPage } from './util'; const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; diff --git a/code/e2e-tests/util.ts b/code/e2e-tests/util.ts index 02ecc753b5f5..c4433fa4e2a8 100644 --- a/code/e2e-tests/util.ts +++ b/code/e2e-tests/util.ts @@ -1,6 +1,7 @@ +import { toId } from '@storybook/csf'; + import type { Page } from '@playwright/test'; import { expect } from '@playwright/test'; -import { toId } from '@storybook/csf'; export class SbPage { readonly page: Page; diff --git a/code/frameworks/angular/src/builders/build-storybook/index.spec.ts b/code/frameworks/angular/src/builders/build-storybook/index.spec.ts index 964b23fe73f4..d02f927227cd 100644 --- a/code/frameworks/angular/src/builders/build-storybook/index.spec.ts +++ b/code/frameworks/angular/src/builders/build-storybook/index.spec.ts @@ -1,9 +1,8 @@ -// eslint-disable-next-line import/no-extraneous-dependencies -import { vi, describe, beforeEach, expect, it, afterEach } from 'vitest'; import { Architect, createBuilder } from '@angular-devkit/architect'; import { TestingArchitectHost } from '@angular-devkit/architect/testing'; import { schema } from '@angular-devkit/core'; import * as path from 'path'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; const buildDevStandaloneMock = vi.fn(); const buildStaticStandaloneMock = vi.fn(); diff --git a/code/frameworks/angular/src/builders/build-storybook/index.ts b/code/frameworks/angular/src/builders/build-storybook/index.ts index 0a7cdb642dc4..9b4e98ec35f4 100644 --- a/code/frameworks/angular/src/builders/build-storybook/index.ts +++ b/code/frameworks/angular/src/builders/build-storybook/index.ts @@ -1,3 +1,8 @@ +import { getEnvConfig, versions } from 'storybook/internal/common'; +import { buildStaticStandalone, withTelemetry } from 'storybook/internal/core-server'; +import { addToGlobalContext } from 'storybook/internal/telemetry'; +import { CLIOptions } from 'storybook/internal/types'; + import { BuilderContext, BuilderHandlerFn, @@ -7,26 +12,21 @@ import { createBuilder, targetFromTargetString, } from '@angular-devkit/architect'; -import { JsonObject } from '@angular-devkit/core'; -import { from, of, throwError } from 'rxjs'; -import { catchError, map, mapTo, switchMap } from 'rxjs/operators'; -import { sync as findUpSync } from 'find-up'; -import { findPackageSync } from 'fd-package-json'; import { BrowserBuilderOptions, StylePreprocessorOptions } from '@angular-devkit/build-angular'; - -import { CLIOptions } from 'storybook/internal/types'; -import { getEnvConfig, versions } from 'storybook/internal/common'; -import { addToGlobalContext } from 'storybook/internal/telemetry'; - -import { buildStaticStandalone, withTelemetry } from 'storybook/internal/core-server'; import { AssetPattern, SourceMapUnion, StyleElement, } from '@angular-devkit/build-angular/src/builders/browser/schema'; -import { StandaloneOptions } from '../utils/standalone-options'; -import { runCompodoc } from '../utils/run-compodoc'; +import { JsonObject } from '@angular-devkit/core'; +import { findPackageSync } from 'fd-package-json'; +import { sync as findUpSync } from 'find-up'; +import { from, of, throwError } from 'rxjs'; +import { catchError, map, mapTo, switchMap } from 'rxjs/operators'; + import { errorSummary, printErrorDetails } from '../utils/error-handler'; +import { runCompodoc } from '../utils/run-compodoc'; +import { StandaloneOptions } from '../utils/standalone-options'; addToGlobalContext('cliVersion', versions.storybook); diff --git a/code/frameworks/angular/src/builders/start-storybook/index.spec.ts b/code/frameworks/angular/src/builders/start-storybook/index.spec.ts index 7df20b08c5f2..e4948d77acf0 100644 --- a/code/frameworks/angular/src/builders/start-storybook/index.spec.ts +++ b/code/frameworks/angular/src/builders/start-storybook/index.spec.ts @@ -1,9 +1,8 @@ -// eslint-disable-next-line import/no-extraneous-dependencies -import { vi, describe, expect, it, beforeEach, afterEach } from 'vitest'; import { Architect, createBuilder } from '@angular-devkit/architect'; import { TestingArchitectHost } from '@angular-devkit/architect/testing'; import { schema } from '@angular-devkit/core'; import * as path from 'path'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; const buildDevStandaloneMock = vi.fn(); const buildStaticStandaloneMock = vi.fn(); diff --git a/code/frameworks/angular/src/builders/start-storybook/index.ts b/code/frameworks/angular/src/builders/start-storybook/index.ts index 3cd9804cca4a..701d3c1d683e 100644 --- a/code/frameworks/angular/src/builders/start-storybook/index.ts +++ b/code/frameworks/angular/src/builders/start-storybook/index.ts @@ -1,3 +1,8 @@ +import { getEnvConfig, versions } from 'storybook/internal/common'; +import { buildDevStandalone, withTelemetry } from 'storybook/internal/core-server'; +import { addToGlobalContext } from 'storybook/internal/telemetry'; +import { CLIOptions } from 'storybook/internal/types'; + import { BuilderContext, BuilderHandlerFn, @@ -6,25 +11,21 @@ import { createBuilder, targetFromTargetString, } from '@angular-devkit/architect'; -import { JsonObject } from '@angular-devkit/core'; import { BrowserBuilderOptions, StylePreprocessorOptions } from '@angular-devkit/build-angular'; -import { from, Observable, of } from 'rxjs'; -import { map, switchMap, mapTo } from 'rxjs/operators'; -import { sync as findUpSync } from 'find-up'; -import { findPackageSync } from 'fd-package-json'; - -import { CLIOptions } from 'storybook/internal/types'; -import { getEnvConfig, versions } from 'storybook/internal/common'; -import { addToGlobalContext } from 'storybook/internal/telemetry'; -import { buildDevStandalone, withTelemetry } from 'storybook/internal/core-server'; import { AssetPattern, SourceMapUnion, StyleElement, } from '@angular-devkit/build-angular/src/builders/browser/schema'; -import { StandaloneOptions } from '../utils/standalone-options'; +import { JsonObject } from '@angular-devkit/core'; +import { findPackageSync } from 'fd-package-json'; +import { sync as findUpSync } from 'find-up'; +import { Observable, from, of } from 'rxjs'; +import { map, mapTo, switchMap } from 'rxjs/operators'; + +import { errorSummary, printErrorDetails } from '../utils/error-handler'; import { runCompodoc } from '../utils/run-compodoc'; -import { printErrorDetails, errorSummary } from '../utils/error-handler'; +import { StandaloneOptions } from '../utils/standalone-options'; addToGlobalContext('cliVersion', versions.storybook); diff --git a/code/frameworks/angular/src/builders/utils/error-handler.ts b/code/frameworks/angular/src/builders/utils/error-handler.ts index 58094633b25a..af0aaddbfbba 100644 --- a/code/frameworks/angular/src/builders/utils/error-handler.ts +++ b/code/frameworks/angular/src/builders/utils/error-handler.ts @@ -1,4 +1,5 @@ import { logger, instance as npmLog } from 'storybook/internal/node-logger'; + import { dedent } from 'ts-dedent'; export const printErrorDetails = (error: any): void => { diff --git a/code/frameworks/angular/src/builders/utils/run-compodoc.spec.ts b/code/frameworks/angular/src/builders/utils/run-compodoc.spec.ts index 14cb43103e17..4391c939fc40 100644 --- a/code/frameworks/angular/src/builders/utils/run-compodoc.spec.ts +++ b/code/frameworks/angular/src/builders/utils/run-compodoc.spec.ts @@ -1,8 +1,7 @@ -// eslint-disable-next-line import/no-extraneous-dependencies -import { vi, describe, afterEach, it, expect } from 'vitest'; +import { BuilderContext } from '@angular-devkit/architect'; import { LoggerApi } from '@angular-devkit/core/src/logger'; import { take } from 'rxjs/operators'; -import { BuilderContext } from '@angular-devkit/architect'; +import { afterEach, describe, expect, it, vi } from 'vitest'; import { runCompodoc } from './run-compodoc'; diff --git a/code/frameworks/angular/src/builders/utils/run-compodoc.ts b/code/frameworks/angular/src/builders/utils/run-compodoc.ts index e826d4e52325..bf87f04e83b3 100644 --- a/code/frameworks/angular/src/builders/utils/run-compodoc.ts +++ b/code/frameworks/angular/src/builders/utils/run-compodoc.ts @@ -1,7 +1,8 @@ +import { JsPackageManagerFactory } from 'storybook/internal/common'; + import { BuilderContext } from '@angular-devkit/architect'; -import { Observable } from 'rxjs'; import * as path from 'path'; -import { JsPackageManagerFactory } from 'storybook/internal/common'; +import { Observable } from 'rxjs'; const hasTsConfigArg = (args: string[]) => args.indexOf('-p') !== -1; const hasOutputArg = (args: string[]) => diff --git a/code/frameworks/angular/src/builders/utils/standalone-options.ts b/code/frameworks/angular/src/builders/utils/standalone-options.ts index e4cf63841932..f96f051b5195 100644 --- a/code/frameworks/angular/src/builders/utils/standalone-options.ts +++ b/code/frameworks/angular/src/builders/utils/standalone-options.ts @@ -1,3 +1,5 @@ +import { BuilderOptions, CLIOptions, LoadOptions } from 'storybook/internal/types'; + import { BuilderContext } from '@angular-devkit/architect'; import { AssetPattern, @@ -5,7 +7,6 @@ import { StyleElement, StylePreprocessorOptions, } from '@angular-devkit/build-angular/src/builders/browser/schema'; -import { LoadOptions, CLIOptions, BuilderOptions } from 'storybook/internal/types'; export type StandaloneOptions = CLIOptions & LoadOptions & diff --git a/code/frameworks/angular/src/client/angular-beta/AbstractRenderer.ts b/code/frameworks/angular/src/client/angular-beta/AbstractRenderer.ts index 86de5a16897a..780951207cdc 100644 --- a/code/frameworks/angular/src/client/angular-beta/AbstractRenderer.ts +++ b/code/frameworks/angular/src/client/angular-beta/AbstractRenderer.ts @@ -1,14 +1,13 @@ -import { ApplicationRef, enableProdMode, NgModule } from '@angular/core'; +import { ApplicationRef, NgModule, enableProdMode } from '@angular/core'; import { bootstrapApplication } from '@angular/platform-browser'; - import { BehaviorSubject, Subject } from 'rxjs'; import { stringify } from 'telejson'; import { ICollection, StoryFnAngularReturnType } from '../types'; import { getApplication } from './StorybookModule'; import { storyPropsProvider } from './StorybookProvider'; -import { PropertyExtractor } from './utils/PropertyExtractor'; import { queueBootstrapping } from './utils/BootstrapQueue'; +import { PropertyExtractor } from './utils/PropertyExtractor'; type StoryRenderInfo = { storyFnAngular: StoryFnAngularReturnType; diff --git a/code/frameworks/angular/src/client/angular-beta/CanvasRenderer.ts b/code/frameworks/angular/src/client/angular-beta/CanvasRenderer.ts index eeb6812ddab3..e9c3178a8725 100644 --- a/code/frameworks/angular/src/client/angular-beta/CanvasRenderer.ts +++ b/code/frameworks/angular/src/client/angular-beta/CanvasRenderer.ts @@ -1,5 +1,5 @@ +import { Parameters, StoryFnAngularReturnType } from '../types'; import { AbstractRenderer } from './AbstractRenderer'; -import { StoryFnAngularReturnType, Parameters } from '../types'; export class CanvasRenderer extends AbstractRenderer { public async render(options: { diff --git a/code/frameworks/angular/src/client/angular-beta/ComputesTemplateFromComponent.test.ts b/code/frameworks/angular/src/client/angular-beta/ComputesTemplateFromComponent.test.ts index cc12902b5c05..669c4ceea209 100644 --- a/code/frameworks/angular/src/client/angular-beta/ComputesTemplateFromComponent.test.ts +++ b/code/frameworks/angular/src/client/angular-beta/ComputesTemplateFromComponent.test.ts @@ -681,10 +681,10 @@ describe('angular source decorator', () => { `a string literal with 'single quotes'`, 'a single quoted string with "double quotes"', "a double quoted string with 'single quotes'", - // eslint-disable-next-line prettier/prettier - 'a single quoted string with escaped \'single quotes\'', - // eslint-disable-next-line prettier/prettier - "a double quoted string with escaped \"double quotes\"", + + "a single quoted string with escaped 'single quotes'", + + 'a double quoted string with escaped "double quotes"', `a string literal with \'escaped single quotes\'`, @@ -717,10 +717,10 @@ describe('angular source decorator', () => { `a string literal with 'single quotes'`, 'a single quoted string with "double quotes"', "a double quoted string with 'single quotes'", - // eslint-disable-next-line prettier/prettier - 'a single quoted string with escaped \'single quotes\'', - // eslint-disable-next-line prettier/prettier - "a double quoted string with escaped \"double quotes\"", + + "a single quoted string with escaped 'single quotes'", + + 'a double quoted string with escaped "double quotes"', `a string literal with \'escaped single quotes\'`, diff --git a/code/frameworks/angular/src/client/angular-beta/ComputesTemplateFromComponent.ts b/code/frameworks/angular/src/client/angular-beta/ComputesTemplateFromComponent.ts index 9e0d38f17986..10e1781c1af8 100644 --- a/code/frameworks/angular/src/client/angular-beta/ComputesTemplateFromComponent.ts +++ b/code/frameworks/angular/src/client/angular-beta/ComputesTemplateFromComponent.ts @@ -1,5 +1,7 @@ -import { Type } from '@angular/core'; import { ArgTypes } from 'storybook/internal/types'; + +import { Type } from '@angular/core'; + import { ICollection } from '../types'; import { ComponentInputsOutputs, diff --git a/code/frameworks/angular/src/client/angular-beta/DocsRenderer.ts b/code/frameworks/angular/src/client/angular-beta/DocsRenderer.ts index 0cff02596888..449a7f1af7ec 100644 --- a/code/frameworks/angular/src/client/angular-beta/DocsRenderer.ts +++ b/code/frameworks/angular/src/client/angular-beta/DocsRenderer.ts @@ -1,9 +1,9 @@ -import { addons } from 'storybook/internal/preview-api'; import { DOCS_RENDERED, STORY_CHANGED } from 'storybook/internal/core-events'; +import { addons } from 'storybook/internal/preview-api'; -import { getNextStoryUID } from './utils/StoryUID'; +import { Parameters, StoryFnAngularReturnType } from '../types'; import { AbstractRenderer, STORY_UID_ATTRIBUTE } from './AbstractRenderer'; -import { StoryFnAngularReturnType, Parameters } from '../types'; +import { getNextStoryUID } from './utils/StoryUID'; export class DocsRenderer extends AbstractRenderer { public async render(options: { diff --git a/code/frameworks/angular/src/client/angular-beta/RendererFactory.ts b/code/frameworks/angular/src/client/angular-beta/RendererFactory.ts index d9be786f22ff..afe1ce91000b 100644 --- a/code/frameworks/angular/src/client/angular-beta/RendererFactory.ts +++ b/code/frameworks/angular/src/client/angular-beta/RendererFactory.ts @@ -1,6 +1,6 @@ import { AbstractRenderer } from './AbstractRenderer'; -import { DocsRenderer } from './DocsRenderer'; import { CanvasRenderer } from './CanvasRenderer'; +import { DocsRenderer } from './DocsRenderer'; type RenderType = 'canvas' | 'docs'; export class RendererFactory { diff --git a/code/frameworks/angular/src/client/angular-beta/StorybookModule.ts b/code/frameworks/angular/src/client/angular-beta/StorybookModule.ts index 3535a85c6988..09f558b8e055 100644 --- a/code/frameworks/angular/src/client/angular-beta/StorybookModule.ts +++ b/code/frameworks/angular/src/client/angular-beta/StorybookModule.ts @@ -1,6 +1,6 @@ import { StoryFnAngularReturnType } from '../types'; -import { createStorybookWrapperComponent } from './StorybookWrapperComponent'; import { computesTemplateFromComponent } from './ComputesTemplateFromComponent'; +import { createStorybookWrapperComponent } from './StorybookWrapperComponent'; import { PropertyExtractor } from './utils/PropertyExtractor'; export const getApplication = ({ diff --git a/code/frameworks/angular/src/client/angular-beta/StorybookProvider.ts b/code/frameworks/angular/src/client/angular-beta/StorybookProvider.ts index f40ef8d96aa7..d6c4e4603020 100644 --- a/code/frameworks/angular/src/client/angular-beta/StorybookProvider.ts +++ b/code/frameworks/angular/src/client/angular-beta/StorybookProvider.ts @@ -1,5 +1,6 @@ -import { Provider, InjectionToken, NgZone } from '@angular/core'; -import { Subject, Subscriber, Observable } from 'rxjs'; +import { InjectionToken, NgZone, Provider } from '@angular/core'; +import { Observable, Subject, Subscriber } from 'rxjs'; + import { ICollection } from '../types'; export const STORY_PROPS = new InjectionToken>('STORY_PROPS'); diff --git a/code/frameworks/angular/src/client/angular-beta/utils/BootstrapQueue.test.ts b/code/frameworks/angular/src/client/angular-beta/utils/BootstrapQueue.test.ts index fe7fbd9ec862..3b580573471d 100644 --- a/code/frameworks/angular/src/client/angular-beta/utils/BootstrapQueue.test.ts +++ b/code/frameworks/angular/src/client/angular-beta/utils/BootstrapQueue.test.ts @@ -1,7 +1,6 @@ // @vitest-environment happy-dom - import { Subject, lastValueFrom } from 'rxjs'; -import { vi, describe, it, expect, beforeEach, afterEach } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { queueBootstrapping } from './BootstrapQueue'; diff --git a/code/frameworks/angular/src/client/angular-beta/utils/NgComponentAnalyzer.ts b/code/frameworks/angular/src/client/angular-beta/utils/NgComponentAnalyzer.ts index 09b1f63211ce..3b4404b09b03 100644 --- a/code/frameworks/angular/src/client/angular-beta/utils/NgComponentAnalyzer.ts +++ b/code/frameworks/angular/src/client/angular-beta/utils/NgComponentAnalyzer.ts @@ -1,11 +1,11 @@ import { - Type, Component, Directive, Input, Output, Pipe, ɡReflectionCapabilities as ReflectionCapabilities, + Type, } from '@angular/core'; const reflectionCapabilities = new ReflectionCapabilities(); diff --git a/code/frameworks/angular/src/client/angular-beta/utils/NgModulesAnalyzer.test.ts b/code/frameworks/angular/src/client/angular-beta/utils/NgModulesAnalyzer.test.ts index 3299a6d4e290..1258638e2662 100644 --- a/code/frameworks/angular/src/client/angular-beta/utils/NgModulesAnalyzer.test.ts +++ b/code/frameworks/angular/src/client/angular-beta/utils/NgModulesAnalyzer.test.ts @@ -1,5 +1,6 @@ import { Component, NgModule } from '@angular/core'; import { describe, expect, it } from 'vitest'; + import { isComponentAlreadyDeclared } from './NgModulesAnalyzer'; const FooComponent = Component({})(class {}); diff --git a/code/frameworks/angular/src/client/angular-beta/utils/PropertyExtractor.test.ts b/code/frameworks/angular/src/client/angular-beta/utils/PropertyExtractor.test.ts index b5256a08370d..1a8c725287aa 100644 --- a/code/frameworks/angular/src/client/angular-beta/utils/PropertyExtractor.test.ts +++ b/code/frameworks/angular/src/client/angular-beta/utils/PropertyExtractor.test.ts @@ -1,4 +1,3 @@ -import { vi, describe, it, expect } from 'vitest'; import { CommonModule } from '@angular/common'; import { Component, Directive, Injectable, InjectionToken, NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; @@ -8,9 +7,11 @@ import { provideAnimations, provideNoopAnimations, } from '@angular/platform-browser/animations'; +import { describe, expect, it, vi } from 'vitest'; + import { NgModuleMetadata } from '../../types'; -import { PropertyExtractor } from './PropertyExtractor'; import { WithOfficialModule } from '../__testfixtures__/test.module'; +import { PropertyExtractor } from './PropertyExtractor'; const TEST_TOKEN = new InjectionToken('testToken'); const TestTokenProvider = { provide: TEST_TOKEN, useValue: 123 }; diff --git a/code/frameworks/angular/src/client/angular-beta/utils/PropertyExtractor.ts b/code/frameworks/angular/src/client/angular-beta/utils/PropertyExtractor.ts index 67bcd7b5e6d5..309ba09ea9eb 100644 --- a/code/frameworks/angular/src/client/angular-beta/utils/PropertyExtractor.ts +++ b/code/frameworks/angular/src/client/angular-beta/utils/PropertyExtractor.ts @@ -2,7 +2,6 @@ import { CommonModule } from '@angular/common'; import { Component, Directive, - importProvidersFrom, Injectable, InjectionToken, Input, @@ -11,6 +10,7 @@ import { Pipe, Provider, ɡReflectionCapabilities as ReflectionCapabilities, + importProvidersFrom, } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { @@ -20,6 +20,7 @@ import { provideNoopAnimations, } from '@angular/platform-browser/animations'; import { dedent } from 'ts-dedent'; + import { NgModuleMetadata } from '../../types'; import { isComponentAlreadyDeclared } from './NgModulesAnalyzer'; diff --git a/code/frameworks/angular/src/client/argsToTemplate.test.ts b/code/frameworks/angular/src/client/argsToTemplate.test.ts index 29a51acb1b9d..decb40bc3d59 100644 --- a/code/frameworks/angular/src/client/argsToTemplate.test.ts +++ b/code/frameworks/angular/src/client/argsToTemplate.test.ts @@ -1,5 +1,8 @@ import { describe, expect, it } from 'vitest'; -import { argsToTemplate, ArgsToTemplateOptions } from './argsToTemplate'; // adjust path + +import { ArgsToTemplateOptions, argsToTemplate } from './argsToTemplate'; + +// adjust path describe('argsToTemplate', () => { it('should correctly convert args to template string and exclude undefined values', () => { diff --git a/code/frameworks/angular/src/client/decorateStory.ts b/code/frameworks/angular/src/client/decorateStory.ts index 1085191e77bc..c2ac022b4a7d 100644 --- a/code/frameworks/angular/src/client/decorateStory.ts +++ b/code/frameworks/angular/src/client/decorateStory.ts @@ -1,7 +1,7 @@ -import { DecoratorFunction, LegacyStoryFn, StoryContext } from 'storybook/internal/types'; import { sanitizeStoryContextUpdate } from 'storybook/internal/preview-api'; -import { computesTemplateFromComponent } from './angular-beta/ComputesTemplateFromComponent'; +import { DecoratorFunction, LegacyStoryFn, StoryContext } from 'storybook/internal/types'; +import { computesTemplateFromComponent } from './angular-beta/ComputesTemplateFromComponent'; import { AngularRenderer } from './types'; export default function decorateStory( diff --git a/code/frameworks/angular/src/client/decorators.ts b/code/frameworks/angular/src/client/decorators.ts index b08278ebef44..d9b2917d27f1 100644 --- a/code/frameworks/angular/src/client/decorators.ts +++ b/code/frameworks/angular/src/client/decorators.ts @@ -1,9 +1,11 @@ +import { DecoratorFunction, StoryContext } from 'storybook/internal/types'; + import { Type } from '@angular/core'; import { ApplicationConfig } from '@angular/platform-browser'; -import { DecoratorFunction, StoryContext } from 'storybook/internal/types'; + import { computesTemplateFromComponent } from './angular-beta/ComputesTemplateFromComponent'; import { isComponent } from './angular-beta/utils/NgComponentAnalyzer'; -import { ICollection, NgModuleMetadata, AngularRenderer } from './types'; +import { AngularRenderer, ICollection, NgModuleMetadata } from './types'; // We use `any` here as the default type rather than `Args` because we need something that is // castable to any component-specific args type when the user is being careful. diff --git a/code/frameworks/angular/src/client/docs/angular-properties.test.ts b/code/frameworks/angular/src/client/docs/angular-properties.test.ts index 6649e9a4496d..143efa84938b 100644 --- a/code/frameworks/angular/src/client/docs/angular-properties.test.ts +++ b/code/frameworks/angular/src/client/docs/angular-properties.test.ts @@ -1,5 +1,5 @@ -import path from 'path'; import fs from 'fs'; +import path from 'path'; import { describe, expect, it } from 'vitest'; // File hierarchy: __testfixtures__ / some-test-case / input.* diff --git a/code/frameworks/angular/src/client/docs/compodoc.test.ts b/code/frameworks/angular/src/client/docs/compodoc.test.ts index ff91661c8d25..6e8d220e7e9a 100644 --- a/code/frameworks/angular/src/client/docs/compodoc.test.ts +++ b/code/frameworks/angular/src/client/docs/compodoc.test.ts @@ -1,4 +1,5 @@ -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; + import { extractType, setCompodocJson } from './compodoc'; import { CompodocJson, Decorator } from './types'; diff --git a/code/frameworks/angular/src/client/docs/compodoc.ts b/code/frameworks/angular/src/client/docs/compodoc.ts index e71d1f463ad3..076f591e8a84 100644 --- a/code/frameworks/angular/src/client/docs/compodoc.ts +++ b/code/frameworks/angular/src/client/docs/compodoc.ts @@ -1,19 +1,20 @@ /* eslint-disable no-underscore-dangle */ +import { logger } from 'storybook/internal/client-logger'; +import { ArgTypes, InputType, SBType } from 'storybook/internal/types'; + import { global } from '@storybook/global'; -import { InputType, ArgTypes, SBType } from 'storybook/internal/types'; -import { logger } from 'storybook/internal/client-logger'; import { Argument, Class, CompodocJson, Component, + Directive, Injectable, + JsDocTag, Method, Pipe, Property, - Directive, - JsDocTag, } from './types'; export const isMethod = (methodOrProp: Method | Property): methodOrProp is Method => { diff --git a/code/frameworks/angular/src/client/docs/config.ts b/code/frameworks/angular/src/client/docs/config.ts index 819e73e398e4..30dc3f20f812 100644 --- a/code/frameworks/angular/src/client/docs/config.ts +++ b/code/frameworks/angular/src/client/docs/config.ts @@ -1,5 +1,6 @@ import { SourceType, enhanceArgTypes } from 'storybook/internal/docs-tools'; -import { Parameters, DecoratorFunction, ArgTypesEnhancer } from 'storybook/internal/types'; +import { ArgTypesEnhancer, DecoratorFunction, Parameters } from 'storybook/internal/types'; + import { extractArgTypes, extractComponentDescription } from './compodoc'; import { sourceDecorator } from './sourceDecorator'; diff --git a/code/frameworks/angular/src/client/docs/sourceDecorator.ts b/code/frameworks/angular/src/client/docs/sourceDecorator.ts index 31a84d273499..09296a2a4f18 100644 --- a/code/frameworks/angular/src/client/docs/sourceDecorator.ts +++ b/code/frameworks/angular/src/client/docs/sourceDecorator.ts @@ -1,8 +1,9 @@ +import { SNIPPET_RENDERED, SourceType } from 'storybook/internal/docs-tools'; import { addons, useEffect } from 'storybook/internal/preview-api'; import { PartialStoryFn } from 'storybook/internal/types'; -import { SNIPPET_RENDERED, SourceType } from 'storybook/internal/docs-tools'; -import { StoryContext, AngularRenderer } from '../types'; + import { computesTemplateSourceFromComponent } from '../../renderer'; +import { AngularRenderer, StoryContext } from '../types'; export const skipSourceRender = (context: StoryContext) => { const sourceParams = context?.parameters.docs?.source; diff --git a/code/frameworks/angular/src/client/globals.ts b/code/frameworks/angular/src/client/globals.ts index c16095858f16..cf5c3eca103f 100644 --- a/code/frameworks/angular/src/client/globals.ts +++ b/code/frameworks/angular/src/client/globals.ts @@ -25,7 +25,9 @@ import { global } from '@storybook/global'; /** ************************************************************************************************* * Zone JS is required by Angular itself. */ -import 'zone.js'; // Included with Angular CLI. +import 'zone.js'; + +// Included with Angular CLI. /** ************************************************************************************************* * APPLICATION IMPORTS diff --git a/code/frameworks/angular/src/client/index.ts b/code/frameworks/angular/src/client/index.ts index 8f2e0a4172c0..45388bcad324 100644 --- a/code/frameworks/angular/src/client/index.ts +++ b/code/frameworks/angular/src/client/index.ts @@ -1,5 +1,4 @@ /// - import './globals'; export * from './public-types'; diff --git a/code/frameworks/angular/src/client/render.ts b/code/frameworks/angular/src/client/render.ts index b3fc38c4da04..817d985bd16b 100644 --- a/code/frameworks/angular/src/client/render.ts +++ b/code/frameworks/angular/src/client/render.ts @@ -1,10 +1,9 @@ -import '@angular/compiler'; - -import { RenderContext, ArgsStoryFn } from 'storybook/internal/types'; +import { ArgsStoryFn, RenderContext } from 'storybook/internal/types'; -import { AngularRenderer } from './types'; +import '@angular/compiler'; import { RendererFactory } from './angular-beta/RendererFactory'; +import { AngularRenderer } from './types'; export const rendererFactory = new RendererFactory(); diff --git a/code/frameworks/angular/src/client/types.ts b/code/frameworks/angular/src/client/types.ts index 33b4346c2d7f..7f65f6245b29 100644 --- a/code/frameworks/angular/src/client/types.ts +++ b/code/frameworks/angular/src/client/types.ts @@ -1,11 +1,12 @@ -import { Provider, importProvidersFrom } from '@angular/core'; -import { ApplicationConfig } from '@angular/platform-browser'; import { Parameters as DefaultParameters, StoryContext as DefaultStoryContext, WebRenderer, } from 'storybook/internal/types'; +import { Provider, importProvidersFrom } from '@angular/core'; +import { ApplicationConfig } from '@angular/platform-browser'; + export interface NgModuleMetadata { /** * List of components, directives, and pipes that belong to your component. diff --git a/code/frameworks/angular/src/preset.ts b/code/frameworks/angular/src/preset.ts index 6d32ae831c4b..31b86b2616dd 100644 --- a/code/frameworks/angular/src/preset.ts +++ b/code/frameworks/angular/src/preset.ts @@ -1,7 +1,9 @@ -import { dirname, join } from 'path'; import { PresetProperty } from 'storybook/internal/types'; -import { StorybookConfig } from './types'; + +import { dirname, join } from 'path'; + import { StandaloneOptions } from './builders/utils/standalone-options'; +import { StorybookConfig } from './types'; const getAbsolutePath = (input: I): I => dirname(require.resolve(join(input, 'package.json'))) as any; diff --git a/code/frameworks/angular/src/server/angular-cli-webpack.d.ts b/code/frameworks/angular/src/server/angular-cli-webpack.d.ts index b2f79e4d963a..ec5359716dd0 100644 --- a/code/frameworks/angular/src/server/angular-cli-webpack.d.ts +++ b/code/frameworks/angular/src/server/angular-cli-webpack.d.ts @@ -1,5 +1,5 @@ -import { JsonObject } from '@angular-devkit/core'; import { BuilderContext } from '@angular-devkit/architect'; +import { JsonObject } from '@angular-devkit/core'; export declare function getWebpackConfig( baseConfig: any, diff --git a/code/frameworks/angular/src/server/framework-preset-angular-cli.ts b/code/frameworks/angular/src/server/framework-preset-angular-cli.ts index acadb3c8e1da..7f10d33ea5f8 100644 --- a/code/frameworks/angular/src/server/framework-preset-angular-cli.ts +++ b/code/frameworks/angular/src/server/framework-preset-angular-cli.ts @@ -1,13 +1,14 @@ -import webpack from 'webpack'; import { logger } from 'storybook/internal/node-logger'; import { AngularLegacyBuildOptionsError } from 'storybook/internal/server-errors'; + import { BuilderContext, targetFromTargetString } from '@angular-devkit/architect'; -import { sync as findUpSync } from 'find-up'; import { JsonObject, logging } from '@angular-devkit/core'; +import { sync as findUpSync } from 'find-up'; +import webpack from 'webpack'; import { getWebpackConfig as getCustomWebpackConfig } from './angular-cli-webpack'; -import { moduleIsAvailable } from './utils/module-is-available'; import { PresetOptions } from './preset-options'; +import { moduleIsAvailable } from './utils/module-is-available'; export async function webpackFinal(baseConfig: webpack.Configuration, options: PresetOptions) { if (!moduleIsAvailable('@angular-devkit/build-angular')) { diff --git a/code/frameworks/angular/src/server/framework-preset-angular-docs.ts b/code/frameworks/angular/src/server/framework-preset-angular-docs.ts index 7f7c259ea4f4..291e131547ec 100644 --- a/code/frameworks/angular/src/server/framework-preset-angular-docs.ts +++ b/code/frameworks/angular/src/server/framework-preset-angular-docs.ts @@ -1,5 +1,5 @@ -import { PresetProperty } from 'storybook/internal/types'; import { hasDocsOrControls } from 'storybook/internal/docs-tools'; +import { PresetProperty } from 'storybook/internal/types'; export const previewAnnotations: PresetProperty<'previewAnnotations'> = (entry = [], options) => { if (!hasDocsOrControls(options)) return entry; diff --git a/code/frameworks/angular/src/server/framework-preset-angular-ivy.ts b/code/frameworks/angular/src/server/framework-preset-angular-ivy.ts index 31279d958aef..d5a509e2ff83 100644 --- a/code/frameworks/angular/src/server/framework-preset-angular-ivy.ts +++ b/code/frameworks/angular/src/server/framework-preset-angular-ivy.ts @@ -1,10 +1,11 @@ -import { Configuration } from 'webpack'; -import * as path from 'path'; import { Preset } from 'storybook/internal/types'; + import fs from 'fs'; +import * as path from 'path'; +import { Configuration } from 'webpack'; -import { PresetOptions } from './preset-options'; import { AngularOptions } from '../types'; +import { PresetOptions } from './preset-options'; /** * Source : https://github.com/angular/angular-cli/blob/ebccb5de4a455af813c5e82483db6af20666bdbd/packages/angular_devkit/build_angular/src/utils/load-esm.ts#L23 diff --git a/code/frameworks/angular/src/test-setup.ts b/code/frameworks/angular/src/test-setup.ts index d28182c6e7b7..5ed15c667bad 100644 --- a/code/frameworks/angular/src/test-setup.ts +++ b/code/frameworks/angular/src/test-setup.ts @@ -1,10 +1,8 @@ -// eslint-disable-next-line import/no-extraneous-dependencies import '@analogjs/vite-plugin-angular/setup-vitest'; - +import { getTestBed } from '@angular/core/testing'; import { BrowserDynamicTestingModule, platformBrowserDynamicTesting, } from '@angular/platform-browser-dynamic/testing'; -import { getTestBed } from '@angular/core/testing'; getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting()); diff --git a/code/frameworks/angular/src/types.ts b/code/frameworks/angular/src/types.ts index f2d1684b74b2..c477fd756bb5 100644 --- a/code/frameworks/angular/src/types.ts +++ b/code/frameworks/angular/src/types.ts @@ -1,13 +1,14 @@ +import { CompatibleString } from 'storybook/internal/types'; + import { - StorybookConfig as StorybookConfigBase, - TypescriptOptions as TypescriptOptionsReact, -} from '@storybook/core-webpack'; -import { - StorybookConfigWebpack, BuilderOptions, + StorybookConfigWebpack, TypescriptOptions as TypescriptOptionsBuilder, } from '@storybook/builder-webpack5'; -import { CompatibleString } from 'storybook/internal/types'; +import { + StorybookConfig as StorybookConfigBase, + TypescriptOptions as TypescriptOptionsReact, +} from '@storybook/core-webpack'; type FrameworkName = CompatibleString<'@storybook/angular'>; type BuilderName = CompatibleString<'@storybook/builder-webpack5'>; diff --git a/code/frameworks/angular/template/cli/button.stories.ts b/code/frameworks/angular/template/cli/button.stories.ts index 886310bed9ad..dedeca1f2e9b 100644 --- a/code/frameworks/angular/template/cli/button.stories.ts +++ b/code/frameworks/angular/template/cli/button.stories.ts @@ -1,5 +1,6 @@ import type { Meta, StoryObj } from '@storybook/angular'; import { fn } from '@storybook/test'; + import { ButtonComponent } from './button.component'; // More on how to set up stories at: https://storybook.js.org/docs/writing-stories diff --git a/code/frameworks/angular/template/cli/header.stories.ts b/code/frameworks/angular/template/cli/header.stories.ts index 3f3fb684e855..ea9b0894e4b4 100644 --- a/code/frameworks/angular/template/cli/header.stories.ts +++ b/code/frameworks/angular/template/cli/header.stories.ts @@ -1,7 +1,7 @@ import type { Meta, StoryObj } from '@storybook/angular'; +import { fn } from '@storybook/test'; import { HeaderComponent } from './header.component'; -import { fn } from '@storybook/test'; const meta: Meta = { title: 'Example/Header', diff --git a/code/frameworks/angular/template/cli/page.stories.ts b/code/frameworks/angular/template/cli/page.stories.ts index 5a64cdbc2ef9..74deedbfccc1 100644 --- a/code/frameworks/angular/template/cli/page.stories.ts +++ b/code/frameworks/angular/template/cli/page.stories.ts @@ -1,5 +1,5 @@ import type { Meta, StoryObj } from '@storybook/angular'; -import { within, userEvent, expect } from '@storybook/test'; +import { expect, userEvent, within } from '@storybook/test'; import { PageComponent } from './page.component'; diff --git a/code/frameworks/angular/template/components/index.js b/code/frameworks/angular/template/components/index.js index 71aafe7204fc..5e8c4f413623 100644 --- a/code/frameworks/angular/template/components/index.js +++ b/code/frameworks/angular/template/components/index.js @@ -1,8 +1,8 @@ import { global } from '@storybook/global'; import Button from './button.component'; +import Form from './form.component'; import Html from './html.component'; import Pre from './pre.component'; -import Form from './form.component'; global.Components = { Button, Html, Pre, Form }; diff --git a/code/frameworks/angular/template/stories/argTypes/doc-button/doc-button.stories.ts b/code/frameworks/angular/template/stories/argTypes/doc-button/doc-button.stories.ts index 11dc4d7cd32d..329162d2a5cf 100644 --- a/code/frameworks/angular/template/stories/argTypes/doc-button/doc-button.stories.ts +++ b/code/frameworks/angular/template/stories/argTypes/doc-button/doc-button.stories.ts @@ -1,4 +1,5 @@ import { Meta, StoryObj, argsToTemplate } from '@storybook/angular'; + import { DocButtonComponent } from './doc-button.component'; const meta: Meta> = { diff --git a/code/frameworks/angular/template/stories/argTypes/doc-directive/doc-directive.stories.ts b/code/frameworks/angular/template/stories/argTypes/doc-directive/doc-directive.stories.ts index e949d8e88252..77682191d2bf 100644 --- a/code/frameworks/angular/template/stories/argTypes/doc-directive/doc-directive.stories.ts +++ b/code/frameworks/angular/template/stories/argTypes/doc-directive/doc-directive.stories.ts @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/angular'; + import { DocDirective } from './doc-directive.directive'; const meta: Meta = { diff --git a/code/frameworks/angular/template/stories/argTypes/doc-injectable/doc-injectable.stories.ts b/code/frameworks/angular/template/stories/argTypes/doc-injectable/doc-injectable.stories.ts index 7741bca9ba88..55c8b1fe86ea 100644 --- a/code/frameworks/angular/template/stories/argTypes/doc-injectable/doc-injectable.stories.ts +++ b/code/frameworks/angular/template/stories/argTypes/doc-injectable/doc-injectable.stories.ts @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/angular'; + import { DocInjectableService } from './doc-injectable.service'; const meta: Meta = { diff --git a/code/frameworks/angular/template/stories/argTypes/doc-pipe/doc-pipe.stories.ts b/code/frameworks/angular/template/stories/argTypes/doc-pipe/doc-pipe.stories.ts index 018ab04a9951..f3f90d3196bc 100644 --- a/code/frameworks/angular/template/stories/argTypes/doc-pipe/doc-pipe.stories.ts +++ b/code/frameworks/angular/template/stories/argTypes/doc-pipe/doc-pipe.stories.ts @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/angular'; + import { DocPipe } from './doc-pipe.pipe'; const meta: Meta = { diff --git a/code/frameworks/angular/template/stories/basics/angular-forms/customControlValueAccessor/custom-cva-component.stories.ts b/code/frameworks/angular/template/stories/basics/angular-forms/customControlValueAccessor/custom-cva-component.stories.ts index 0396bae99acc..59a656bea1e2 100644 --- a/code/frameworks/angular/template/stories/basics/angular-forms/customControlValueAccessor/custom-cva-component.stories.ts +++ b/code/frameworks/angular/template/stories/basics/angular-forms/customControlValueAccessor/custom-cva-component.stories.ts @@ -1,5 +1,7 @@ -import { FormsModule } from '@angular/forms'; import { Meta, StoryFn, StoryObj, moduleMetadata } from '@storybook/angular'; + +import { FormsModule } from '@angular/forms'; + import { CustomCvaComponent } from './custom-cva.component'; const meta: Meta = { diff --git a/code/frameworks/angular/template/stories/basics/component-with-complex-selectors/attribute-selectors.component.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-complex-selectors/attribute-selectors.component.stories.ts index 73894b83b34a..8b442fa011d9 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-complex-selectors/attribute-selectors.component.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-complex-selectors/attribute-selectors.component.stories.ts @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/angular'; + import { AttributeSelectorComponent } from './attribute-selector.component'; const meta: Meta = { diff --git a/code/frameworks/angular/template/stories/basics/component-with-enums/enums.component.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-enums/enums.component.stories.ts index b79bd371baf3..bf1b632b1685 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-enums/enums.component.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-enums/enums.component.stories.ts @@ -1,9 +1,10 @@ import { Meta, StoryObj } from '@storybook/angular'; + import { - EnumsComponent, EnumNumeric, EnumNumericInitial, EnumStringValues, + EnumsComponent, } from './enums.component'; const meta: Meta = { diff --git a/code/frameworks/angular/template/stories/basics/component-with-inheritance/base-button.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-inheritance/base-button.stories.ts index 271e6a3fcc9d..37e24d9cce9f 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-inheritance/base-button.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-inheritance/base-button.stories.ts @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/angular'; + import { BaseButtonComponent } from './base-button.component'; const meta: Meta = { diff --git a/code/frameworks/angular/template/stories/basics/component-with-inheritance/icon-button.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-inheritance/icon-button.stories.ts index bb5c5fb02bcb..cc94c6d6483f 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-inheritance/icon-button.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-inheritance/icon-button.stories.ts @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/angular'; + import { IconButtonComponent } from './icon-button.component'; const meta: Meta = { diff --git a/code/frameworks/angular/template/stories/basics/component-with-on-push/on-push.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-on-push/on-push.stories.ts index cc672938a7f2..9fca26be1e55 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-on-push/on-push.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-on-push/on-push.stories.ts @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/angular'; + import { OnPushBoxComponent } from './on-push-box.component'; const meta: Meta = { diff --git a/code/frameworks/angular/template/stories/basics/component-with-provider/di.component.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-provider/di.component.stories.ts index 381c272fb96d..2311222c7567 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-provider/di.component.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-provider/di.component.stories.ts @@ -1,4 +1,5 @@ import { Args, Meta, StoryObj } from '@storybook/angular'; + import { DiComponent } from './di.component'; const meta: Meta = { diff --git a/code/frameworks/angular/template/stories/basics/component-with-style/styled.component.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-style/styled.component.stories.ts index c0cd88c09bc2..9047dcc9e4d3 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-style/styled.component.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-style/styled.component.stories.ts @@ -1,4 +1,5 @@ import { Meta, StoryObj } from '@storybook/angular'; + import { StyledComponent } from './styled.component'; const meta: Meta = { diff --git a/code/frameworks/angular/template/stories/basics/component-with-template/template.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-template/template.stories.ts index 55639870f262..75b8c4e018eb 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-template/template.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-template/template.stories.ts @@ -1,4 +1,5 @@ import { Meta, StoryObj, argsToTemplate } from '@storybook/angular'; + import { Template } from './template.component'; const meta: Meta