diff --git a/.circleci/config.yml b/.circleci/config.yml index d6ef4a750913..b2338349a82e 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -652,19 +652,19 @@ workflows: requires: - unit-tests - create-sandboxes: - parallelism: 20 + parallelism: 19 requires: - build - build-sandboxes: - parallelism: 20 + parallelism: 19 requires: - create-sandboxes - chromatic-sandboxes: - parallelism: 17 + parallelism: 16 requires: - build-sandboxes - e2e-production: - parallelism: 15 + parallelism: 14 requires: - build-sandboxes - e2e-dev: @@ -672,7 +672,7 @@ workflows: requires: - create-sandboxes - test-runner-production: - parallelism: 15 + parallelism: 14 requires: - build-sandboxes - bench: @@ -706,22 +706,22 @@ workflows: requires: - build - create-sandboxes: - parallelism: 33 + parallelism: 32 requires: - build # - smoke-test-sandboxes: # disabled for now # requires: # - create-sandboxes - build-sandboxes: - parallelism: 33 + parallelism: 32 requires: - create-sandboxes - chromatic-sandboxes: - parallelism: 30 + parallelism: 29 requires: - build-sandboxes - e2e-production: - parallelism: 28 + parallelism: 27 requires: - build-sandboxes - e2e-dev: @@ -729,7 +729,7 @@ workflows: requires: - create-sandboxes - test-runner-production: - parallelism: 28 + parallelism: 27 requires: - build-sandboxes diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ba60ca1636f..24af8968f63d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.6.5 + +- Angular: Update Angular cli templates - [#25152](https://github.com/storybookjs/storybook/pull/25152), thanks [@Marklb](https://github.com/Marklb)! +- Blocks: Fix Subtitle block for unattached docs pages - [#25157](https://github.com/storybookjs/storybook/pull/25157), thanks [@kripod](https://github.com/kripod)! +- SvelteKit: Fix missing `$app` modules - [#25132](https://github.com/storybookjs/storybook/pull/25132), thanks [@paoloricciuti](https://github.com/paoloricciuti)! + ## 7.6.4 - Angular: Fix CSF Plugin - [#25098](https://github.com/storybookjs/storybook/pull/25098), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)! diff --git a/CHANGELOG.prerelease.md b/CHANGELOG.prerelease.md index 0f95d73be3a1..b9883dc793e7 100644 --- a/CHANGELOG.prerelease.md +++ b/CHANGELOG.prerelease.md @@ -1,3 +1,18 @@ +## 8.0.0-alpha.4 + +- API: Remove stories.json support - [#25236](https://github.com/storybookjs/storybook/pull/25236), thanks [@shilman](https://github.com/shilman)! +- Addon Docs: Remove `react` peer dependency - [#24881](https://github.com/storybookjs/storybook/pull/24881), thanks [@JReinhold](https://github.com/JReinhold)! +- Addon-docs: Support `` and `` in source viewer - [#19785](https://github.com/storybookjs/storybook/pull/19785), thanks [@zhyd1997](https://github.com/zhyd1997)! +- Angular: Add random attribute to bootstrapped selector - [#24972](https://github.com/storybookjs/storybook/pull/24972), thanks [@Marklb](https://github.com/Marklb)! +- Angular: Reduce the warnings from `ts-loader` via stricter list of `includes` - [#24531](https://github.com/storybookjs/storybook/pull/24531), thanks [@ndelangen](https://github.com/ndelangen)! +- Blocks: Render colors in the same order as provided - [#25001](https://github.com/storybookjs/storybook/pull/25001), thanks [@kaelig](https://github.com/kaelig)! +- CLI: Add prompt-only automigrate asking for react-removal - [#25215](https://github.com/storybookjs/storybook/pull/25215), thanks [@ndelangen](https://github.com/ndelangen)! +- CLI: No longer add react in init - [#25196](https://github.com/storybookjs/storybook/pull/25196), thanks [@ndelangen](https://github.com/ndelangen)! +- Core: Set bundle target to `node18` - [#25239](https://github.com/storybookjs/storybook/pull/25239), thanks [@shilman](https://github.com/shilman)! +- SvelteKit: Fix missing `$app` modules - [#25132](https://github.com/storybookjs/storybook/pull/25132), thanks [@paoloricciuti](https://github.com/paoloricciuti)! +- SvelteKit: Support 2.0 modules with mocks - [#25244](https://github.com/storybookjs/storybook/pull/25244), thanks [@paoloricciuti](https://github.com/paoloricciuti)! +- UI: Embed `react-textarea-autosize` types - [#25235](https://github.com/storybookjs/storybook/pull/25235), thanks [@ndelangen](https://github.com/ndelangen)! + ## 8.0.0-alpha.3 - Addon-docs: Fix storybook MDX check - [#24696](https://github.com/storybookjs/storybook/pull/24696), thanks [@shilman](https://github.com/shilman)! diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d90fef7e5ee5..ae9125750200 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,6 +25,13 @@ If you run `yarn start` and encounter the following error, try rerunning `yarn s ```sh > NX ENOENT: no such file or directory, open 'storybook/code/node_modules/nx/package.json' ``` +If you are a Storybook contributor and still experience issues, it is recommended that you verify your local Storybook instance for any unintentional local changes. To do this, you can use the following command: + +```sh +git clean -dx --dry-run +``` + +By executing this command, you will be able to see which untracked or ignored files and directories will be removed from your working directory if you run it with the `--force` flag. Before running the command with the `--force` flag, please commit any local changes that you want to keep. Otherwise they will be lost. ## Forked repos diff --git a/MIGRATION.md b/MIGRATION.md index 78f0a0c5779f..787e893df979 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -12,6 +12,7 @@ - [Icons is deprecated](#icons-is-deprecated) - [React-docgen component analysis by default](#react-docgen-component-analysis-by-default) - [Removed postinstall](#removed-postinstall) + - [Removed stories.json](#removed-storiesjson) - [Framework-specific changes](#framework-specific-changes) - [Angular: Drop support for Angular \< 15](#angular-drop-support-for-angular--15) - [Next.js: Drop support for version \< 13.5](#nextjs-drop-support-for-version--135) @@ -473,6 +474,12 @@ For more information see: https://storybook.js.org/docs/react/api/main-config-ty We removed the `@storybook/postinstall` package, which provided some utilities for addons to programmatically modify user configuration files on install. This package was years out of date, so this should be a non-disruptive change. If your addon used the package, you can view the old source code [here](https://github.com/storybookjs/storybook/tree/release-7-5/code/lib/postinstall) and adapt it into your addon. +#### Removed stories.json + +In addition to the built storybook, `storybook build` generates two files, `index.json` and `stories.json`, that list out the contents of the Storybook. `stories.json` is a legacy format and we included it for backwards compatibility. As of 8.0 we no longer build `stories.json` by default, and we will remove it completely in 9.0. + +In the meantime if you have code that relies on `stories.json`, you can find code that transforms the "v4" `index.json` to the "v3" `stories.json` format (and their respective TS types): https://github.com/storybookjs/storybook/blob/release-7-5/code/lib/core-server/src/utils/stories-json.ts#L71-L91 + ### Framework-specific changes #### Angular: Drop support for Angular \< 15 diff --git a/code/addons/docs/package.json b/code/addons/docs/package.json index 0a5f8a94f0f5..1754e778a097 100644 --- a/code/addons/docs/package.json +++ b/code/addons/docs/package.json @@ -112,21 +112,17 @@ "@storybook/theming": "workspace:*", "@storybook/types": "workspace:*", "fs-extra": "^11.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", "remark-external-links": "^8.0.0", "remark-slug": "^6.0.0", "ts-dedent": "^2.0.0" }, "devDependencies": { "@rollup/pluginutils": "^5.0.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", "typescript": "^5.3.2", "vite": "^4.0.4" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, "publishConfig": { "access": "public" }, diff --git a/code/addons/docs/src/ensure-react-peer-deps.ts b/code/addons/docs/src/ensure-react-peer-deps.ts deleted file mode 100644 index 37520dff343e..000000000000 --- a/code/addons/docs/src/ensure-react-peer-deps.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { logger } from '@storybook/node-logger'; -import dedent from 'ts-dedent'; - -export function ensureReactPeerDeps() { - try { - require.resolve('react'); - require.resolve('react-dom'); - } catch (e) { - logger.error(dedent` - Starting in 7.0, react and react-dom are now required peer dependencies of @storybook/addon-docs. - https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#react-peer-dependencies-required - - You can continue to use Storybook without addon-docs, or you can install react and react-dom in your project: - - You can use the upgrade command in Storybook's CLI to automatically install the required - peer dependencies for you. - - If you want to upgrade to the latest prerelease version, please run: - - $ npx storybook@next upgrade --prerelease - - Otherwise, please run: - - $ npx storybook upgrade - - If you do not want to use the upgrade commands, - please install react and react-dom in your project manually. - - npm: - $ npm add react react-dom --dev - - yarn: - $ yarn add react react-dom --dev - - pnpm: - $ pnpm add react react-dom --dev - `); - process.exit(1); - } -} diff --git a/code/addons/docs/src/preset.ts b/code/addons/docs/src/preset.ts index 2ead78d53ac6..0877643bae9f 100644 --- a/code/addons/docs/src/preset.ts +++ b/code/addons/docs/src/preset.ts @@ -10,7 +10,26 @@ import type { JSXOptions, CompileOptions } from '@storybook/mdx2-csf'; import { global } from '@storybook/global'; import { loadCsf } from '@storybook/csf-tools'; import { logger } from '@storybook/node-logger'; -import { ensureReactPeerDeps } from './ensure-react-peer-deps'; + +/** + * Get the resolvedReact preset, which points either to + * the user's react dependencies or the react dependencies shipped with addon-docs + * if the user has not installed react explicitly. + */ +const getResolvedReact = async (options: Options) => { + const resolvedReact = (await options.presets.apply('resolvedReact', {})) as any; + // resolvedReact should always be set by the time we get here, but just in case, we'll default to addon-docs's react dependencies + return { + react: resolvedReact.react ?? dirname(require.resolve('react/package.json')), + reactDom: resolvedReact.reactDom ?? dirname(require.resolve('react-dom/package.json')), + // In Webpack, symlinked MDX files will cause @mdx-js/react to not be resolvable if it is not hoisted + // This happens for the SB monorepo's template stories when a sandbox has a different react version than + // addon-docs, causing addon-docs's dependencies not to be hoisted. + // This might also affect regular users who have a similar setup. + // Explicitly alias @mdx-js/react to avoid this issue. + mdx: resolvedReact.mdx ?? dirname(require.resolve('@mdx-js/react/package.json')), + }; +}; async function webpack( webpackConfig: any = {}, @@ -90,6 +109,35 @@ async function webpack( ? require.resolve('@storybook/mdx1-csf/loader') : require.resolve('@storybook/mdx2-csf/loader'); + // Use the resolvedReact preset to alias react and react-dom to either the users version or the version shipped with addon-docs + const { react, reactDom, mdx } = await getResolvedReact(options); + + let alias; + if (Array.isArray(webpackConfig.resolve?.alias)) { + alias = [...webpackConfig.resolve?.alias]; + alias.push( + { + name: 'react', + alias: react, + }, + { + name: 'react-dom', + alias: reactDom, + }, + { + name: '@mdx-js/react', + alias: mdx, + } + ); + } else { + alias = { + ...webpackConfig.resolve?.alias, + react, + 'react-dom': reactDom, + '@mdx-js/react': mdx, + }; + } + const result = { ...webpackConfig, plugins: [ @@ -99,7 +147,10 @@ async function webpack( ? [(await import('@storybook/csf-plugin')).webpack(csfPluginOptions)] : []), ], - + resolve: { + ...webpackConfig.resolve, + alias, + }, module: { ...module, rules: [ @@ -179,6 +230,25 @@ export const viteFinal = async (config: any, options: Options) => { const { plugins = [] } = config; const { mdxPlugin } = await import('./plugins/mdx-plugin'); + // Use the resolvedReact preset to alias react and react-dom to either the users version or the version shipped with addon-docs + const { react, reactDom } = await getResolvedReact(options); + + const reactAliasPlugin = { + name: 'storybook:react-alias', + enforce: 'pre', + config: () => ({ + resolve: { + alias: { + react, + 'react-dom': reactDom, + }, + }, + }), + }; + + // add alias plugin early to ensure any other plugins that also add the aliases will override this + // eg. the preact vite plugin adds its own aliases + plugins.unshift(reactAliasPlugin); plugins.push(mdxPlugin(options)); return config; @@ -192,7 +262,18 @@ const webpackX = webpack as any; const indexersX = indexers as any; const docsX = docs as any; -ensureReactPeerDeps(); +/** + * If the user has not installed react explicitly in their project, + * the resolvedReact preset will not be set. + * We then set it here in addon-docs to use addon-docs's react version that always exists. + * This is just a fallback that never overrides the existing preset, + * but ensures that there is always a resolved react. + */ +export const resolvedReact = async (existing: any) => ({ + react: existing?.react ?? dirname(require.resolve('react/package.json')), + reactDom: existing?.reactDom ?? dirname(require.resolve('react-dom/package.json')), + mdx: existing?.mdx ?? dirname(require.resolve('@mdx-js/react/package.json')), +}); const optimizeViteDeps = [ '@mdx-js/react', diff --git a/code/addons/docs/template/stories/docs2/ResolvedReact.mdx b/code/addons/docs/template/stories/docs2/ResolvedReact.mdx new file mode 100644 index 000000000000..7a5f04ab6bc8 --- /dev/null +++ b/code/addons/docs/template/stories/docs2/ResolvedReact.mdx @@ -0,0 +1,13 @@ +import { version as reactVersion } from 'react'; +import { version as reactDomVersion } from 'react-dom'; +import { ResolvedReactVersion } from './ResolvedReactVersion'; + +## In MDX + +react: {reactVersion} + +react-dom: {reactDomVersion} + +## In `ResolvedReactVersion` component + + diff --git a/code/addons/docs/template/stories/docs2/ResolvedReactVersion.jsx b/code/addons/docs/template/stories/docs2/ResolvedReactVersion.jsx new file mode 100644 index 000000000000..6e094c1e64d0 --- /dev/null +++ b/code/addons/docs/template/stories/docs2/ResolvedReactVersion.jsx @@ -0,0 +1,15 @@ +import React, { version as reactVersion } from 'react'; +import { version as reactDomVersion } from 'react-dom'; + +export const ResolvedReactVersion = () => { + return ( + <> +

+ react: {reactVersion} +

+

+ react-dom: {reactDomVersion} +

+ + ); +}; diff --git a/code/addons/essentials/package.json b/code/addons/essentials/package.json index f1f031a1f918..e656038453a8 100644 --- a/code/addons/essentials/package.json +++ b/code/addons/essentials/package.json @@ -78,10 +78,6 @@ "devDependencies": { "typescript": "^5.3.2" }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, "publishConfig": { "access": "public" }, diff --git a/code/e2e-tests/addon-docs.spec.ts b/code/e2e-tests/addon-docs.spec.ts index 7edd143360ab..fce9785adf04 100644 --- a/code/e2e-tests/addon-docs.spec.ts +++ b/code/e2e-tests/addon-docs.spec.ts @@ -186,4 +186,31 @@ test.describe('addon-docs', () => { await expect(stories.nth(1)).toHaveText('Basic'); await expect(stories.last()).toHaveText('Another'); }); + + test('should resolve react to the correct version', async ({ page }) => { + const sbPage = new SbPage(page); + await sbPage.navigateToUnattachedDocs('addons/docs/docs2', 'ResolvedReact'); + const root = sbPage.previewRoot(); + + let expectedReactVersion = /^18/; + if ( + templateName.includes('preact') || + templateName.includes('react-webpack/17') || + templateName.includes('react-vite/17') + ) { + expectedReactVersion = /^17/; + } else if (templateName.includes('react16')) { + expectedReactVersion = /^16/; + } + + const mdxReactVersion = await root.getByTestId('mdx-react'); + const mdxReactDomVersion = await root.getByTestId('mdx-react-dom'); + const componentReactVersion = await root.getByTestId('component-react'); + const componentReactDomVersion = await root.getByTestId('component-react-dom'); + + await expect(mdxReactVersion).toHaveText(expectedReactVersion); + await expect(mdxReactDomVersion).toHaveText(expectedReactVersion); + await expect(componentReactVersion).toHaveText(expectedReactVersion); + await expect(componentReactDomVersion).toHaveText(expectedReactVersion); + }); }); diff --git a/code/e2e-tests/framework-svelte.spec.ts b/code/e2e-tests/framework-svelte.spec.ts index 40d2b7f817dd..7033342b6890 100644 --- a/code/e2e-tests/framework-svelte.spec.ts +++ b/code/e2e-tests/framework-svelte.spec.ts @@ -122,5 +122,21 @@ test.describe('SvelteKit', () => { hasText: `"invalidateAll"`, }); await expect(invalidateAllLogItem).toBeVisible(); + + const replaceState = root.getByRole('button', { name: 'replaceState' }); + await replaceState.click(); + + const replaceStateLogItem = page.locator('#storybook-panel-root #panel-tab-content', { + hasText: `/storybook-replace-state`, + }); + await expect(replaceStateLogItem).toBeVisible(); + + const pushState = root.getByRole('button', { name: 'pushState' }); + await pushState.click(); + + const pushStateLogItem = page.locator('#storybook-panel-root #panel-tab-content', { + hasText: `/storybook-push-state`, + }); + await expect(pushStateLogItem).toBeVisible(); }); }); diff --git a/code/e2e-tests/util.ts b/code/e2e-tests/util.ts index e0c45c1ae336..64f7a6bb43f6 100644 --- a/code/e2e-tests/util.ts +++ b/code/e2e-tests/util.ts @@ -61,6 +61,26 @@ export class SbPage { await this.previewRoot(); } + async navigateToUnattachedDocs(title: string, name = 'docs') { + await this.openComponent(title); + + const titleId = toId(title); + const storyId = toId(name); + const storyLinkId = `#${titleId}-${storyId}--docs`; + await this.page.waitForSelector(storyLinkId); + const storyLink = this.page.locator('*', { has: this.page.locator(`> ${storyLinkId}`) }); + await storyLink.click({ force: true }); + + await this.page.waitForURL((url) => + url.search.includes(`path=/docs/${titleId}-${storyId}--docs`) + ); + + const selected = await storyLink.getAttribute('data-selected'); + await expect(selected).toBe('true'); + + await this.previewRoot(); + } + async waitUntilLoaded() { // make sure we start every test with clean state – to avoid possible flakyness await this.page.context().addInitScript(() => { diff --git a/code/frameworks/angular/src/client/angular-beta/AbstractRenderer.ts b/code/frameworks/angular/src/client/angular-beta/AbstractRenderer.ts index f83fd00dde84..ec5c2ac7ba52 100644 --- a/code/frameworks/angular/src/client/angular-beta/AbstractRenderer.ts +++ b/code/frameworks/angular/src/client/angular-beta/AbstractRenderer.ts @@ -3,7 +3,8 @@ import { bootstrapApplication } from '@angular/platform-browser'; import { BehaviorSubject, Subject } from 'rxjs'; import { stringify } from 'telejson'; -import { ICollection, Parameters, StoryFnAngularReturnType } from '../types'; + +import { ICollection, StoryFnAngularReturnType } from '../types'; import { getApplication } from './StorybookModule'; import { storyPropsProvider } from './StorybookProvider'; import { componentNgModules } from './StorybookWrapperComponent'; @@ -16,6 +17,14 @@ type StoryRenderInfo = { const applicationRefs = new Map(); +/** + * Attribute name for the story UID that may be written to the targetDOMNode. + * + * If a target DOM node has a story UID attribute, it will be used as part of + * the selector for the Angular component. + */ +export const STORY_UID_ATTRIBUTE = 'data-sb-story-uid'; + export abstract class AbstractRenderer { /** * Wait and destroy the platform @@ -122,10 +131,17 @@ export abstract class AbstractRenderer { const analyzedMetadata = new PropertyExtractor(storyFnAngular.moduleMetadata, component); + const storyUid = targetDOMNode.getAttribute(STORY_UID_ATTRIBUTE); + const componentSelector = storyUid !== null ? `${targetSelector}[${storyUid}]` : targetSelector; + if (storyUid !== null) { + const element = targetDOMNode.querySelector(targetSelector); + element.toggleAttribute(storyUid, true); + } + const application = getApplication({ storyFnAngular, component, - targetSelector, + targetSelector: componentSelector, analyzedMetadata, }); @@ -161,8 +177,10 @@ export abstract class AbstractRenderer { return storyIdIsInvalidHtmlTagName ? `sb-${id.replace(invalidHtmlTag, '')}-component` : id; } + /** + * Adds DOM element that angular will use as bootstrap component. + */ protected initAngularRootElement(targetDOMNode: HTMLElement, targetSelector: string) { - // Adds DOM element that angular will use as bootstrap component // eslint-disable-next-line no-param-reassign targetDOMNode.innerHTML = ''; targetDOMNode.appendChild(document.createElement(targetSelector)); diff --git a/code/frameworks/angular/src/client/angular-beta/DocsRenderer.ts b/code/frameworks/angular/src/client/angular-beta/DocsRenderer.ts index d51573376fcb..9b7629854626 100644 --- a/code/frameworks/angular/src/client/angular-beta/DocsRenderer.ts +++ b/code/frameworks/angular/src/client/angular-beta/DocsRenderer.ts @@ -1,6 +1,8 @@ import { addons } from '@storybook/preview-api'; import { DOCS_RENDERED, STORY_CHANGED } from '@storybook/core-events'; -import { AbstractRenderer } from './AbstractRenderer'; + +import { getNextStoryUID } from './utils/StoryUID'; +import { AbstractRenderer, STORY_UID_ATTRIBUTE } from './AbstractRenderer'; import { StoryFnAngularReturnType, Parameters } from '../types'; export class DocsRenderer extends AbstractRenderer { @@ -45,4 +47,13 @@ export class DocsRenderer extends AbstractRenderer { async afterFullRender(): Promise { await AbstractRenderer.resetCompiledComponents(); } + + protected override initAngularRootElement( + targetDOMNode: HTMLElement, + targetSelector: string + ): void { + super.initAngularRootElement(targetDOMNode, targetSelector); + + targetDOMNode.setAttribute(STORY_UID_ATTRIBUTE, getNextStoryUID(targetDOMNode.id)); + } } diff --git a/code/frameworks/angular/src/client/angular-beta/RendererFactory.test.ts b/code/frameworks/angular/src/client/angular-beta/RendererFactory.test.ts index 0dc51d15eb6c..8a543b3df201 100644 --- a/code/frameworks/angular/src/client/angular-beta/RendererFactory.test.ts +++ b/code/frameworks/angular/src/client/angular-beta/RendererFactory.test.ts @@ -13,11 +13,13 @@ describe('RendererFactory', () => { let rendererFactory: RendererFactory; let rootTargetDOMNode: HTMLElement; let rootDocstargetDOMNode: HTMLElement; + let storyInDocstargetDOMNode: HTMLElement; beforeEach(async () => { rendererFactory = new RendererFactory(); document.body.innerHTML = - '
'; + '
' + + '
'; rootTargetDOMNode = global.document.getElementById('storybook-root'); rootDocstargetDOMNode = global.document.getElementById('root-docs'); (platformBrowserDynamic as any).mockImplementation(platformBrowserDynamicTesting); @@ -180,5 +182,47 @@ describe('RendererFactory', () => { const render = await rendererFactory.getRendererInstance(rootDocstargetDOMNode); expect(render).toBeInstanceOf(DocsRenderer); }); + + describe('when multiple story for the same component', () => { + it('should render both stories', async () => { + @Component({ selector: 'foo', template: '🦊' }) + class FooComponent {} + + const render = await rendererFactory.getRendererInstance( + global.document.getElementById('storybook-docs') + ); + + const targetDOMNode1 = global.document.createElement('div'); + targetDOMNode1.id = 'story-1'; + global.document.getElementById('storybook-docs').appendChild(targetDOMNode1); + await render?.render({ + storyFnAngular: { + props: {}, + }, + forced: false, + component: FooComponent, + targetDOMNode: targetDOMNode1, + }); + + const targetDOMNode2 = global.document.createElement('div'); + targetDOMNode2.id = 'story-1'; + global.document.getElementById('storybook-docs').appendChild(targetDOMNode2); + await render?.render({ + storyFnAngular: { + props: {}, + }, + forced: false, + component: FooComponent, + targetDOMNode: targetDOMNode2, + }); + + expect(global.document.querySelectorAll('#story-1 > story-1')[0].innerHTML).toBe( + '🦊' + ); + expect(global.document.querySelectorAll('#story-1 > story-1')[1].innerHTML).toBe( + '🦊' + ); + }); + }); }); }); diff --git a/code/frameworks/angular/src/client/angular-beta/utils/StoryUID.ts b/code/frameworks/angular/src/client/angular-beta/utils/StoryUID.ts new file mode 100644 index 000000000000..131ebda1adf9 --- /dev/null +++ b/code/frameworks/angular/src/client/angular-beta/utils/StoryUID.ts @@ -0,0 +1,43 @@ +/** + * Count of stories for each storyId. + */ +const storyCounts = new Map(); + +/** + * Increments the count for a storyId and returns the next UID. + * + * When a story is bootstrapped, the storyId is used as the element tag. That + * becomes an issue when a story is rendered multiple times in the same docs + * page. This function returns a UID that is appended to the storyId to make + * it unique. + * + * @param storyId id of a story + * @returns uid of a story + */ +export const getNextStoryUID = (storyId: string): string => { + if (!storyCounts.has(storyId)) { + storyCounts.set(storyId, -1); + } + + const count = storyCounts.get(storyId) + 1; + storyCounts.set(storyId, count); + return `${storyId}-${count}`; +}; + +/** + * Clears the storyId counts. + * + * Can be useful for testing, where you need predictable increments, without + * reloading the global state. + * + * If onlyStoryId is provided, only that storyId is cleared. + * + * @param onlyStoryId id of a story + */ +export const clearStoryUIDs = (onlyStoryId?: string): void => { + if (onlyStoryId !== undefined && onlyStoryId !== null) { + storyCounts.delete(onlyStoryId); + } else { + storyCounts.clear(); + } +}; diff --git a/code/frameworks/nextjs/template/stories_nextjs-default-ts/Navigation.stories.tsx b/code/frameworks/nextjs/template/stories_nextjs-default-ts/Navigation.stories.tsx index 8bb209bd9d45..d9f2a3dc361f 100644 --- a/code/frameworks/nextjs/template/stories_nextjs-default-ts/Navigation.stories.tsx +++ b/code/frameworks/nextjs/template/stories_nextjs-default-ts/Navigation.stories.tsx @@ -24,6 +24,7 @@ function Component() { name: 'Prefetch', }, { + // @ts-expect-error (a legacy nextjs api?) cb: () => router.push('/push-html', { forceOptimisticNavigation: true }), name: 'Push HTML', }, @@ -32,6 +33,7 @@ function Component() { name: 'Refresh', }, { + // @ts-expect-error (a legacy nextjs api?) cb: () => router.replace('/replaced-html', { forceOptimisticNavigation: true }), name: 'Replace', }, diff --git a/code/frameworks/sveltekit/README.md b/code/frameworks/sveltekit/README.md index 2f2755dc91a2..c3c01c771897 100644 --- a/code/frameworks/sveltekit/README.md +++ b/code/frameworks/sveltekit/README.md @@ -136,6 +136,8 @@ You can add the name of the module you want to mock to `parameters.sveltekit_exp | `import { navigating } from "$app/stores"` | `parameters.sveltekit_experimental.stores.navigating` | A Partial of the navigating store | | `import { updated } from "$app/stores"` | `parameters.sveltekit_experimental.stores.updated` | A boolean representing the value of updated (you can also access `check()` which will be a noop) | | `import { goto } from "$app/navigation"` | `parameters.sveltekit_experimental.navigation.goto` | A callback that will be called whenever goto is called, in no function is provided an action will be logged to the Actions panel | +| `import { pushState } from "$app/navigation"` | `parameters.sveltekit_experimental.navigation.pushState` | A callback that will be called whenever pushState is called, in no function is provided an action will be logged to the Actions panel | +| `import { replaceState } from "$app/navigation"` | `parameters.sveltekit_experimental.navigation.replaceState` | A callback that will be called whenever replaceState is called, in no function is provided an action will be logged to the Actions panel | | `import { invalidate } from "$app/navigation"` | `parameters.sveltekit_experimental.navigation.invalidate` | A callback that will be called whenever invalidate is called, in no function is provided an action will be logged to the Actions panel | | `import { invalidateAll } from "$app/navigation"` | `parameters.sveltekit_experimental.navigation.invalidateAll` | A callback that will be called whenever invalidateAll is called, in no function is provided an action will be logged to the Actions panel | | `import { afterNavigate } from "$app/navigation"` | `parameters.sveltekit_experimental.navigation.afterNavigate` | An object that will be passed to the afterNavigate function (which will be invoked onMount) called | diff --git a/code/frameworks/sveltekit/package.json b/code/frameworks/sveltekit/package.json index 95f01fb533ef..cbd378434112 100644 --- a/code/frameworks/sveltekit/package.json +++ b/code/frameworks/sveltekit/package.json @@ -65,7 +65,7 @@ }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.16", - "vite": "^4.0.0" + "vite": "^4.0.0 || ^5.0.0" }, "engines": { "node": "^14.18 || >=16" diff --git a/code/frameworks/sveltekit/src/mocks/app/navigation.ts b/code/frameworks/sveltekit/src/mocks/app/navigation.ts index 8d23ddbea46a..edd60f5ebf83 100644 --- a/code/frameworks/sveltekit/src/mocks/app/navigation.ts +++ b/code/frameworks/sveltekit/src/mocks/app/navigation.ts @@ -41,3 +41,17 @@ export async function invalidateAll() { export function preloadCode() {} export function preloadData() {} + +export async function pushState(...args: any[]) { + const event = new CustomEvent('storybook:pushState', { + detail: args, + }); + window.dispatchEvent(event); +} + +export async function replaceState(...args: any[]) { + const event = new CustomEvent('storybook:replaceState', { + detail: args, + }); + window.dispatchEvent(event); +} diff --git a/code/frameworks/sveltekit/src/plugins/mock-sveltekit-stores.ts b/code/frameworks/sveltekit/src/plugins/mock-sveltekit-stores.ts index b5e63f8591e2..f338760c3908 100644 --- a/code/frameworks/sveltekit/src/plugins/mock-sveltekit-stores.ts +++ b/code/frameworks/sveltekit/src/plugins/mock-sveltekit-stores.ts @@ -7,7 +7,9 @@ export function mockSveltekitStores() { config: () => ({ resolve: { alias: { - $app: resolve(__dirname, '../src/mocks/app/'), + '$app/forms': resolve(__dirname, '../src/mocks/app/forms.ts'), + '$app/navigation': resolve(__dirname, '../src/mocks/app/navigation.ts'), + '$app/stores': resolve(__dirname, '../src/mocks/app/stores.ts'), }, }, }), diff --git a/code/frameworks/sveltekit/src/preview.ts b/code/frameworks/sveltekit/src/preview.ts index 10affca46fc4..fc3ab8bcc65a 100644 --- a/code/frameworks/sveltekit/src/preview.ts +++ b/code/frameworks/sveltekit/src/preview.ts @@ -117,7 +117,7 @@ export const decorators: Decorator[] = [ const removeNavigationListeners = createListeners( 'navigation', - ['goto', 'invalidate', 'invalidateAll'], + ['goto', 'invalidate', 'invalidateAll', 'pushState', 'replaceState'], true ); const removeFormsListeners = createListeners('forms', ['enhance']); diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/Navigation.svelte b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/Navigation.svelte index 4bcb7d0e6fc9..24a37f3517f8 100644 --- a/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/Navigation.svelte +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-prerelease-ts/Navigation.svelte @@ -1,5 +1,5 @@ + +
{browser}
+
{dev}
+
{building}
+
{version}
diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/Navigation.svelte b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/Navigation.svelte index b923b8ee78d8..c9d5459f0d4a 100644 --- a/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/Navigation.svelte +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/Navigation.svelte @@ -1,5 +1,5 @@ + +
{assets}
+
{base}
diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/environment.stories.js b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/environment.stories.js new file mode 100644 index 000000000000..a8baaabbf5be --- /dev/null +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/environment.stories.js @@ -0,0 +1,10 @@ +import { expect, fn, within } from '@storybook/test'; +import Environment from './Environment.svelte'; + +export default { + title: 'stories/sveltekit/modules/environment', + component: Environment, + tags: ['autodocs'], +}; + +export const Default = {}; diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/navigation.stories.js b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/navigation.stories.js index ded12268e03c..8640d467c463 100644 --- a/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/navigation.stories.js +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/navigation.stories.js @@ -25,6 +25,42 @@ export const Goto = { }, }; +const replaceState = fn(); + +export const ReplaceState = { + async play({ canvasElement }) { + const canvas = within(canvasElement); + const button = canvas.getByText('replaceState'); + button.click(); + expect(replaceState).toHaveBeenCalledWith('/storybook-replace-state', {}); + }, + parameters: { + sveltekit_experimental: { + navigation: { + replaceState, + }, + }, + }, +}; + +const pushState = fn(); + +export const PushState = { + async play({ canvasElement }) { + const canvas = within(canvasElement); + const button = canvas.getByText('pushState'); + button.click(); + expect(pushState).toHaveBeenCalledWith('/storybook-push-state', {}); + }, + parameters: { + sveltekit_experimental: { + navigation: { + pushState, + }, + }, + }, +}; + export const DefaultActions = {}; const invalidate = fn(); diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/paths.stories.js b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/paths.stories.js new file mode 100644 index 000000000000..5d87296483a5 --- /dev/null +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-js/paths.stories.js @@ -0,0 +1,10 @@ +import { expect, fn, within } from '@storybook/test'; +import Paths from './Paths.svelte'; + +export default { + title: 'stories/sveltekit/modules/paths', + component: Paths, + tags: ['autodocs'], +}; + +export const Default = {}; diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/Environment.svelte b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/Environment.svelte new file mode 100644 index 000000000000..7cdc852f7fcf --- /dev/null +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/Environment.svelte @@ -0,0 +1,8 @@ + + +
{browser}
+
{dev}
+
{building}
+
{version}
diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/Navigation.svelte b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/Navigation.svelte index 4bcb7d0e6fc9..24a37f3517f8 100644 --- a/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/Navigation.svelte +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/Navigation.svelte @@ -1,5 +1,5 @@ + +
{assets}
+
{base}
diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/environment.stories.js b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/environment.stories.js new file mode 100644 index 000000000000..a8baaabbf5be --- /dev/null +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/environment.stories.js @@ -0,0 +1,10 @@ +import { expect, fn, within } from '@storybook/test'; +import Environment from './Environment.svelte'; + +export default { + title: 'stories/sveltekit/modules/environment', + component: Environment, + tags: ['autodocs'], +}; + +export const Default = {}; diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/navigation.stories.js b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/navigation.stories.js index ded12268e03c..8640d467c463 100644 --- a/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/navigation.stories.js +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/navigation.stories.js @@ -25,6 +25,42 @@ export const Goto = { }, }; +const replaceState = fn(); + +export const ReplaceState = { + async play({ canvasElement }) { + const canvas = within(canvasElement); + const button = canvas.getByText('replaceState'); + button.click(); + expect(replaceState).toHaveBeenCalledWith('/storybook-replace-state', {}); + }, + parameters: { + sveltekit_experimental: { + navigation: { + replaceState, + }, + }, + }, +}; + +const pushState = fn(); + +export const PushState = { + async play({ canvasElement }) { + const canvas = within(canvasElement); + const button = canvas.getByText('pushState'); + button.click(); + expect(pushState).toHaveBeenCalledWith('/storybook-push-state', {}); + }, + parameters: { + sveltekit_experimental: { + navigation: { + pushState, + }, + }, + }, +}; + export const DefaultActions = {}; const invalidate = fn(); diff --git a/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/paths.stories.js b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/paths.stories.js new file mode 100644 index 000000000000..5d87296483a5 --- /dev/null +++ b/code/frameworks/sveltekit/template/stories_svelte-kit-skeleton-ts/paths.stories.js @@ -0,0 +1,10 @@ +import { expect, fn, within } from '@storybook/test'; +import Paths from './Paths.svelte'; + +export default { + title: 'stories/sveltekit/modules/paths', + component: Paths, + tags: ['autodocs'], +}; + +export const Default = {}; diff --git a/code/lib/cli/src/automigrate/fixes/add-react.test.ts b/code/lib/cli/src/automigrate/fixes/add-react.test.ts deleted file mode 100644 index 9b7103625de7..000000000000 --- a/code/lib/cli/src/automigrate/fixes/add-react.test.ts +++ /dev/null @@ -1,66 +0,0 @@ -import type { StorybookConfigRaw } from '@storybook/types'; -import type { JsPackageManager, PackageJson } from '../../js-package-manager'; -import { addReact } from './add-react'; - -const checkAddReact = async (packageJson: PackageJson) => { - const packageManager = { - retrievePackageJson: async () => ({ dependencies: {}, devDependencies: {}, ...packageJson }), - } as JsPackageManager; - - return addReact.check({ - packageManager, - mainConfig: {} as StorybookConfigRaw, - storybookVersion: '7.0.0', - }); -}; - -describe('addReact fix', () => { - it('should no-op when not using docs or essentials', async () => { - await expect(checkAddReact({ dependencies: {} })).resolves.toBeFalsy(); - }); - - it('should no-op when react/react-dom are already installed', async () => { - await expect( - checkAddReact({ - dependencies: { react: '*' }, - devDependencies: { '@storybook/addon-docs': '*', 'react-dom': '*' }, - }) - ).resolves.toBeFalsy(); - }); - - it('should add react when it is missing', async () => { - await expect( - checkAddReact({ - dependencies: {}, - devDependencies: { '@storybook/addon-docs': '*', 'react-dom': '*' }, - }) - ).resolves.toMatchInlineSnapshot(` - Object { - "additionalDependencies": Array [ - "react", - ], - "dependents": Array [ - "@storybook/addon-docs", - ], - } - `); - }); - - it('should add reac-dom when it is missing', async () => { - await expect( - checkAddReact({ - dependencies: {}, - devDependencies: { '@storybook/addon-essentials': '*', react: '*' }, - }) - ).resolves.toMatchInlineSnapshot(` - Object { - "additionalDependencies": Array [ - "react-dom", - ], - "dependents": Array [ - "@storybook/addon-essentials", - ], - } - `); - }); -}); diff --git a/code/lib/cli/src/automigrate/fixes/add-react.ts b/code/lib/cli/src/automigrate/fixes/add-react.ts deleted file mode 100644 index 25ad88df2571..000000000000 --- a/code/lib/cli/src/automigrate/fixes/add-react.ts +++ /dev/null @@ -1,72 +0,0 @@ -import chalk from 'chalk'; -import { dedent } from 'ts-dedent'; -import type { Fix } from '../types'; - -interface AddReactOptions { - dependents: string[]; - additionalDependencies: string[]; -} - -/** - * is the user missing a dependency on react? - */ -export const addReact: Fix = { - id: 'addReact', - - async check({ packageManager }) { - const packageJson = await packageManager.retrievePackageJson(); - const installedDependencies = new Set( - Object.keys({ ...packageJson.dependencies, ...packageJson.devDependencies }) - ); - - const dependents = ['@storybook/addon-essentials', '@storybook/addon-docs'].filter((pkg) => - installedDependencies.has(pkg) - ); - const additionalDependencies = []; - if (dependents.length > 0) { - if (!installedDependencies.has('react')) { - // we add these here because they are required by addon-essentials > addon-docs - additionalDependencies.push('react'); - } - if (!installedDependencies.has('react-dom')) { - // we add these here because they are required by addon-essentials > addon-docs - additionalDependencies.push('react-dom'); - } - } - - if (additionalDependencies.length > 0) { - return { dependents, additionalDependencies }; - } - return null; - }, - - prompt({ dependents, additionalDependencies }) { - const dependentsFormatted = dependents.map((pkg) => chalk.cyan(pkg)).join(' & '); - const additionalDependenciesFormatted = additionalDependencies - .map((pkg) => `- ${chalk.cyan(pkg)}`) - .join('\n'); - - return dedent` - We've detected that you're using ${dependentsFormatted}. - - Starting in Storybook 7, we now require these peer dependencies to render docs: - - ${additionalDependenciesFormatted} - - We can add these for you automatically as dev dependencies. - - More info: ${chalk.yellow( - 'https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#react-peer-dependencies-required' - )} - `; - }, - - async run({ packageManager, result: { additionalDependencies }, dryRun }) { - if (!dryRun) { - await packageManager.addDependencies( - { installAsDevDependencies: true }, - additionalDependencies - ); - } - }, -}; diff --git a/code/lib/cli/src/automigrate/fixes/index.ts b/code/lib/cli/src/automigrate/fixes/index.ts index 2f71a11255f6..bd33074805d8 100644 --- a/code/lib/cli/src/automigrate/fixes/index.ts +++ b/code/lib/cli/src/automigrate/fixes/index.ts @@ -12,7 +12,6 @@ import { newFrameworks } from './new-frameworks'; import { removedGlobalClientAPIs } from './remove-global-client-apis'; import { mdx1to2 } from './mdx-1-to-2'; import { autodocsTrue } from './autodocs-true'; -import { addReact } from './add-react'; import { nodeJsRequirement } from './nodejs-requirement'; import { missingBabelRc } from './missing-babelrc'; import { angularBuilders } from './angular-builders'; @@ -38,7 +37,6 @@ export const allFixes: Fix[] = [ mdx1to2, mdxgfm, autodocsTrue, - addReact, missingBabelRc, angularBuildersMultiproject, angularBuilders, diff --git a/code/lib/cli/src/automigrate/fixes/prompt-remove-react.test.ts b/code/lib/cli/src/automigrate/fixes/prompt-remove-react.test.ts new file mode 100644 index 000000000000..a8cd0068a4ee --- /dev/null +++ b/code/lib/cli/src/automigrate/fixes/prompt-remove-react.test.ts @@ -0,0 +1,158 @@ +import type { StorybookConfig } from '@storybook/types'; +import { glob } from 'glob'; +import { removeReactDependency } from './prompt-remove-react'; +import type { JsPackageManager } from '../../js-package-manager'; + +const check = async ({ + packageManagerContent, + main: mainConfig, + storybookVersion = '8.0.0', +}: { + packageManagerContent: Pick< + Partial>>, + 'dependencies' | 'devDependencies' | 'peerDependencies' + >; + main: Partial & Record; + storybookVersion?: string; +}) => { + const packageManager = { + retrievePackageJson: async () => packageManagerContent, + } as JsPackageManager; + + return removeReactDependency.check({ + packageManager, + configDir: '', + mainConfig: mainConfig as any, + storybookVersion, + }); +}; + +jest.mock('glob', () => ({ glob: jest.fn(() => []) })); + +describe('early exits', () => { + test('cancel if storybookVersion < 8', async () => { + await expect( + check({ + packageManagerContent: { + dependencies: { react: '16.0.0' }, + }, + main: { + stories: [], + framework: '@storybook/vue-vite', + }, + storybookVersion: '7.0.0', + }) + ).resolves.toBeFalsy(); + }); + + test('cancel if no react deps', async () => { + await expect( + check({ + packageManagerContent: {}, + main: { + stories: [], + framework: '@storybook/vue-vite', + }, + }) + ).resolves.toBeFalsy(); + }); + + test('cancel if react renderer', async () => { + await expect( + check({ + packageManagerContent: { + dependencies: { react: '16.0.0' }, + }, + main: { + stories: [], + framework: '@storybook/react-vite', + }, + }) + ).resolves.toBeFalsy(); + + await expect( + check({ + packageManagerContent: { + dependencies: { react: '16.0.0' }, + }, + main: { + stories: [], + framework: '@storybook/nextjs', + }, + }) + ).resolves.toBeFalsy(); + + await expect( + check({ + packageManagerContent: { + dependencies: { react: '16.0.0' }, + }, + main: { + stories: [], + framework: { name: '@storybook/react-webpack5' }, + }, + }) + ).resolves.toBeFalsy(); + }); +}); + +describe('prompts', () => { + test('simple', async () => { + await expect( + check({ + packageManagerContent: { + dependencies: { react: '16.0.0' }, + }, + main: { + stories: ['*.stories.ts'], + addons: [], + framework: '@storybook/vue-vite', + }, + }) + ).resolves.toEqual(true); + }); + test('detects addon docs', async () => { + await expect( + check({ + packageManagerContent: { + dependencies: { react: '16.0.0' }, + }, + main: { + stories: ['*.stories.ts'], + addons: ['@storybook/addon-docs'], + framework: '@storybook/vue-vite', + }, + }) + ).resolves.toEqual(true); + }); + test('detects addon essentials', async () => { + await expect( + check({ + packageManagerContent: { + dependencies: { react: '16.0.0' }, + }, + main: { + stories: ['*.stories.ts'], + addons: ['@storybook/addon-docs', '@storybook/addon-essentials'], + framework: '@storybook/vue-vite', + }, + }) + ).resolves.toEqual(true); + }); + test('detects MDX usage', async () => { + // @ts-expect-error (jest mocked) + glob.mockImplementationOnce(() => ['*.stories.mdx']); + await expect( + check({ + packageManagerContent: { + dependencies: { react: '16.0.0' }, + }, + main: { + stories: ['*.stories.ts'], + addons: ['@storybook/addon-docs', '@storybook/addon-essentials'], + framework: '@storybook/vue-vite', + }, + }) + ).resolves.toEqual(true); + }); +}); diff --git a/code/lib/cli/src/automigrate/fixes/prompt-remove-react.ts b/code/lib/cli/src/automigrate/fixes/prompt-remove-react.ts new file mode 100644 index 000000000000..aa86a4126a29 --- /dev/null +++ b/code/lib/cli/src/automigrate/fixes/prompt-remove-react.ts @@ -0,0 +1,46 @@ +import dedent from 'ts-dedent'; +import semver from 'semver'; +import { getFrameworkPackageName } from '../helpers/mainConfigFile'; +import type { Fix } from '../types'; + +export const removeReactDependency: Fix<{}> = { + id: 'remove-react-dependency', + + async check({ packageManager, mainConfig, storybookVersion }) { + // when the user is using the react renderer, we should not prompt them to remove react + const frameworkPackageName = getFrameworkPackageName(mainConfig); + if (frameworkPackageName?.includes('react') || frameworkPackageName?.includes('nextjs')) { + return null; + } + + // if the user has no dependency on react, we can skip this fix + const packageJson = await packageManager.retrievePackageJson(); + if ( + !packageJson?.dependencies?.['react'] && + !packageJson?.peerDependencies?.['react'] && + !packageJson?.devDependencies?.['react'] + ) { + return null; + } + + // do not prompt to remove react for older versions of storybook + if (!semver.gte(storybookVersion, '8.0.0')) { + return null; + } + + return true; + }, + prompt() { + return dedent` + We detected that your project has a dependency for "react" that it might not need. + Nothing breaks by having it, you can safely ignore this message, if you wish. + + Storybook asked you to add "react" as a direct dependency in the past. + However, since version 8.0, Storybook no longer requires you to provide "react" as a dependency. + Some community addons might still wrongfully list "react" and "react-dom" as required peer dependencies, but since Storybook 7.6 it should not be needed in the majority of cases. + + If you know you are not using React outside of Storybook, it should be safe to remove the "react" and "react-dom" dependencies from your project's package.json. + Storybook cannot do this automatically as removing it might break your project, so it should be done manually with care. + `; + }, +}; diff --git a/code/lib/cli/src/generators/baseGenerator.ts b/code/lib/cli/src/generators/baseGenerator.ts index 43fbbe9c3a67..70daf5764dd7 100644 --- a/code/lib/cli/src/generators/baseGenerator.ts +++ b/code/lib/cli/src/generators/baseGenerator.ts @@ -282,15 +282,6 @@ export async function baseGenerator( Object.keys({ ...packageJson.dependencies, ...packageJson.devDependencies }) ); - if (!installedDependencies.has('react')) { - // we add these here because they are required by addon-essentials > addon-docs - addonPackages.push('react'); - } - if (!installedDependencies.has('react-dom')) { - // we add these here because they are required by addon-essentials > addon-docs - addonPackages.push('react-dom'); - } - // TODO: We need to start supporting this at some point if (type === 'renderer') { throw new Error( diff --git a/code/lib/cli/src/sandbox-templates.ts b/code/lib/cli/src/sandbox-templates.ts index f2d4950bf2d1..f31375126b9e 100644 --- a/code/lib/cli/src/sandbox-templates.ts +++ b/code/lib/cli/src/sandbox-templates.ts @@ -416,28 +416,6 @@ const baseTemplates = { // Remove smoke-test from the list once https://github.com/storybookjs/storybook/issues/19351 is fixed. skipTasks: ['smoke-test', 'e2e-tests-dev', 'bench'], }, - 'preact-webpack5/default-js': { - name: 'Preact CLI Latest (Webpack | JavaScript)', - script: - 'npx preact-cli create default {{beforeDir}} --name preact-app --yarn --no-install && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js', - expected: { - framework: '@storybook/preact-webpack5', - renderer: '@storybook/preact', - builder: '@storybook/builder-webpack5', - }, - skipTasks: ['e2e-tests-dev', 'bench'], - }, - 'preact-webpack5/default-ts': { - name: 'Preact CLI Latest (Webpack | TypeScript)', - script: - 'npx preact-cli create typescript {{beforeDir}} --name preact-app --yarn --no-install && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js', - expected: { - framework: '@storybook/preact-webpack5', - renderer: '@storybook/preact', - builder: '@storybook/builder-webpack5', - }, - skipTasks: ['e2e-tests-dev', 'bench'], - }, 'preact-vite/default-js': { name: 'Preact Latest (Vite | JavaScript)', script: 'npm create vite --yes {{beforeDir}} -- --template preact', @@ -519,6 +497,18 @@ const internalTemplates = { }, skipTasks: ['bench'], }, + 'internal/react16-webpack': { + name: 'React 16 (Webpack | TypeScript)', + script: + 'yarn create webpack5-react {{beforeDir}} --version-react=16 --version-react-dom=16 --version-@types/react=16 --version-@types/react-dom=16', + expected: { + framework: '@storybook/react-webpack5', + renderer: '@storybook/react', + builder: '@storybook/builder-webpack5', + }, + skipTasks: ['e2e-tests-dev', 'bench'], + isInternal: true, + }, 'internal/server-webpack5': { name: 'Server Webpack5', script: 'yarn init -y && echo "module.exports = {}" > webpack.config.js', @@ -618,7 +608,6 @@ export const merged: TemplateKey[] = [ 'react-webpack/18-ts', 'react-webpack/17-ts', 'angular-cli/15-ts', - 'preact-webpack5/default-ts', 'preact-vite/default-ts', 'html-webpack/default', 'html-vite/default-ts', @@ -638,9 +627,9 @@ export const daily: TemplateKey[] = [ 'nextjs/default-js', 'nextjs/prerelease', 'qwik-vite/default-ts', - 'preact-webpack5/default-js', 'preact-vite/default-js', 'html-vite/default-js', + 'internal/react16-webpack', ]; export const templatesByCadence = { normal, merged, daily }; diff --git a/code/lib/cli/templates/angular/application/template-csf/.storybook/tsconfig.json b/code/lib/cli/templates/angular/application/template-csf/.storybook/tsconfig.json index eb06864100d8..84d7e7424a2c 100644 --- a/code/lib/cli/templates/angular/application/template-csf/.storybook/tsconfig.json +++ b/code/lib/cli/templates/angular/application/template-csf/.storybook/tsconfig.json @@ -6,6 +6,6 @@ "resolveJsonModule": true }, "exclude": ["../src/test.ts", "../src/**/*.spec.ts"], - "include": ["../src/**/*", "./preview.ts"], + "include": ["../src/**/*.stories.*", "./preview.ts"], "files": ["./typings.d.ts"] } diff --git a/code/lib/cli/templates/angular/library/template-csf/.storybook/tsconfig.json b/code/lib/cli/templates/angular/library/template-csf/.storybook/tsconfig.json index 59daf738abdb..957791d5bf3f 100644 --- a/code/lib/cli/templates/angular/library/template-csf/.storybook/tsconfig.json +++ b/code/lib/cli/templates/angular/library/template-csf/.storybook/tsconfig.json @@ -6,6 +6,6 @@ "resolveJsonModule": true }, "exclude": ["../src/test.ts", "../src/**/*.spec.ts"], - "include": ["../src/**/*", "./preview.ts"], + "include": ["../src/**/*.stories.*", "./preview.ts"], "files": ["./typings.d.ts"] } diff --git a/code/lib/core-server/src/build-static.ts b/code/lib/core-server/src/build-static.ts index 020b9060af6a..b85932ca246d 100644 --- a/code/lib/core-server/src/build-static.ts +++ b/code/lib/core-server/src/build-static.ts @@ -22,7 +22,7 @@ import { copyAllStaticFilesRelativeToMain, } from './utils/copy-all-static-files'; import { getBuilders } from './utils/get-builders'; -import { convertToIndexV3, extractStoriesJson } from './utils/stories-json'; +import { extractStoriesJson } from './utils/stories-json'; import { extractStorybookMetadata } from './utils/metadata'; import { StoryIndexGenerator } from './utils/StoryIndexGenerator'; import { summarizeIndex } from './utils/summarizeIndex'; @@ -172,19 +172,11 @@ export async function buildStaticStandalone(options: BuildStaticStandaloneOption storyIndexers: deprecatedStoryIndexers, indexers, docs: docsOptions, - storiesV2Compatibility: !features?.storyStoreV7, storyStoreV7: !!features?.storyStoreV7, build, }); initializedStoryIndexGenerator = generator.initialize().then(() => generator); - effects.push( - extractStoriesJson( - join(options.outputDir, 'stories.json'), - initializedStoryIndexGenerator as Promise, - convertToIndexV3 - ) - ); effects.push( extractStoriesJson( join(options.outputDir, 'index.json'), diff --git a/code/lib/core-server/src/presets/common-preset.ts b/code/lib/core-server/src/presets/common-preset.ts index f94a6fb365ec..815b9cb72417 100644 --- a/code/lib/core-server/src/presets/common-preset.ts +++ b/code/lib/core-server/src/presets/common-preset.ts @@ -17,7 +17,7 @@ import type { PresetProperty, } from '@storybook/types'; import { printConfig, readConfig, readCsf } from '@storybook/csf-tools'; -import { join, isAbsolute } from 'path'; +import { join, dirname, isAbsolute } from 'path'; import { dedent } from 'ts-dedent'; import fetch from 'node-fetch'; import type { Channel } from '@storybook/channels'; @@ -344,3 +344,21 @@ export const experimental_serverChannel = async ( return channel; }; + +/** + * Try to resolve react and react-dom from the root node_modules of the project + * addon-docs uses this to alias react and react-dom to the project's version when possible + * If the user doesn't have an explicit dependency on react this will return the existing values + * Which will be the versions shipped with addon-docs + */ +export const resolvedReact = async (existing: any) => { + try { + return { + ...existing, + react: dirname(require.resolve('react/package.json')), + reactDom: dirname(require.resolve('react-dom/package.json')), + }; + } catch (e) { + return existing; + } +}; diff --git a/code/lib/core-server/src/utils/StoryIndexGenerator.deprecated.test.ts b/code/lib/core-server/src/utils/StoryIndexGenerator.deprecated.test.ts deleted file mode 100644 index 60d700bad62e..000000000000 --- a/code/lib/core-server/src/utils/StoryIndexGenerator.deprecated.test.ts +++ /dev/null @@ -1,1485 +0,0 @@ -/* eslint-disable @typescript-eslint/no-shadow */ -/// ; - -/** - * @jest-environment node - */ - -import path from 'path'; -import fs from 'fs-extra'; -import { normalizeStoriesEntry } from '@storybook/core-common'; -import type { NormalizedStoriesSpecifier, StoryIndexEntry } from '@storybook/types'; -import { loadCsf, getStorySortParameter } from '@storybook/csf-tools'; -import { toId } from '@storybook/csf'; -import { logger, once } from '@storybook/node-logger'; - -import type { StoryIndexGeneratorOptions } from './StoryIndexGenerator'; -import { StoryIndexGenerator } from './StoryIndexGenerator'; - -jest.mock('@storybook/csf-tools'); -jest.mock('@storybook/csf', () => { - const csf = jest.requireActual('@storybook/csf'); - return { - ...csf, - toId: jest.fn(csf.toId), - }; -}); - -jest.mock('@storybook/node-logger'); - -const toIdMock = toId as jest.Mock>; -const loadCsfMock = loadCsf as jest.Mock>; -const getStorySortParameterMock = getStorySortParameter as jest.Mock< - ReturnType ->; - -const csfIndexer = async (fileName: string, opts: any) => { - const code = (await fs.readFile(fileName, 'utf-8')).toString(); - return loadCsf(code, { ...opts, fileName }).parse(); -}; - -const storiesMdxIndexer = async (fileName: string, opts: any) => { - let code = (await fs.readFile(fileName, 'utf-8')).toString(); - const { compile } = await import('@storybook/mdx2-csf'); - code = await compile(code, {}); - return loadCsf(code, { ...opts, fileName }).parse(); -}; - -const options: StoryIndexGeneratorOptions = { - configDir: path.join(__dirname, '__mockdata__'), - workingDir: path.join(__dirname, '__mockdata__'), - storyIndexers: [ - { test: /\.stories\.mdx$/, indexer: storiesMdxIndexer }, - { test: /\.stories\.(m?js|ts)x?$/, indexer: csfIndexer }, - ], - indexers: [], - storiesV2Compatibility: false, - storyStoreV7: true, - docs: { defaultName: 'docs', autodocs: false }, -}; - -describe('StoryIndexGenerator with deprecated indexer API', () => { - beforeEach(() => { - const actual = jest.requireActual('@storybook/csf-tools'); - loadCsfMock.mockImplementation(actual.loadCsf); - jest.mocked(logger.warn).mockClear(); - jest.mocked(once.warn).mockClear(); - }); - describe('extraction', () => { - const storiesSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/A.stories.(ts|js|mjs|jsx)', - options - ); - const docsSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/docs2/*.mdx', - options - ); - - describe('single file specifier', () => { - it('extracts stories from the right files', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/A.stories.js', - options - ); - - const generator = new StoryIndexGenerator([specifier], options); - await generator.initialize(); - - expect(await generator.getIndex()).toMatchInlineSnapshot(` - Object { - "entries": Object { - "a--story-one": Object { - "id": "a--story-one", - "importPath": "./src/A.stories.js", - "name": "Story One", - "tags": Array [ - "component-tag", - "story-tag", - "story", - ], - "title": "A", - "type": "story", - }, - }, - "v": 4, - } - `); - }); - }); - describe('non-recursive specifier', () => { - it('extracts stories from the right files', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/*/*.stories.(ts|js|mjs|jsx)', - options - ); - - const generator = new StoryIndexGenerator([specifier], options); - await generator.initialize(); - - expect(await generator.getIndex()).toMatchInlineSnapshot(` - Object { - "entries": Object { - "nested-button--story-one": Object { - "id": "nested-button--story-one", - "importPath": "./src/nested/Button.stories.ts", - "name": "Story One", - "tags": Array [ - "component-tag", - "story", - ], - "title": "nested/Button", - "type": "story", - }, - "second-nested-g--story-one": Object { - "id": "second-nested-g--story-one", - "importPath": "./src/second-nested/G.stories.ts", - "name": "Story One", - "tags": Array [ - "story", - ], - "title": "second-nested/G", - "type": "story", - }, - }, - "v": 4, - } - `); - }); - }); - describe('recursive specifier', () => { - it('extracts stories from the right files', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/**/*.stories.(ts|js|mjs|jsx)', - options - ); - - const generator = new StoryIndexGenerator([specifier], options); - await generator.initialize(); - - expect(await generator.getIndex()).toMatchInlineSnapshot(` - Object { - "entries": Object { - "a--story-one": Object { - "id": "a--story-one", - "importPath": "./src/A.stories.js", - "name": "Story One", - "tags": Array [ - "component-tag", - "story-tag", - "story", - ], - "title": "A", - "type": "story", - }, - "b--story-one": Object { - "id": "b--story-one", - "importPath": "./src/B.stories.ts", - "name": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "B", - "type": "story", - }, - "d--story-one": Object { - "id": "d--story-one", - "importPath": "./src/D.stories.jsx", - "name": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "D", - "type": "story", - }, - "first-nested-deeply-f--story-one": Object { - "id": "first-nested-deeply-f--story-one", - "importPath": "./src/first-nested/deeply/F.stories.js", - "name": "Story One", - "tags": Array [ - "story", - ], - "title": "first-nested/deeply/F", - "type": "story", - }, - "h--story-one": Object { - "id": "h--story-one", - "importPath": "./src/H.stories.mjs", - "name": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "H", - "type": "story", - }, - "nested-button--story-one": Object { - "id": "nested-button--story-one", - "importPath": "./src/nested/Button.stories.ts", - "name": "Story One", - "tags": Array [ - "component-tag", - "story", - ], - "title": "nested/Button", - "type": "story", - }, - "second-nested-g--story-one": Object { - "id": "second-nested-g--story-one", - "importPath": "./src/second-nested/G.stories.ts", - "name": "Story One", - "tags": Array [ - "story", - ], - "title": "second-nested/G", - "type": "story", - }, - }, - "v": 4, - } - `); - }); - }); - - describe('mdx tagged components', () => { - it('adds docs entry with docs enabled', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/nested/Page.stories.mdx', - options - ); - - const generator = new StoryIndexGenerator([specifier], { - ...options, - }); - await generator.initialize(); - - expect(await generator.getIndex()).toMatchInlineSnapshot(` - Object { - "entries": Object { - "page--docs": Object { - "id": "page--docs", - "importPath": "./src/nested/Page.stories.mdx", - "name": "docs", - "storiesImports": Array [], - "tags": Array [ - "stories-mdx", - "docs", - ], - "title": "Page", - "type": "docs", - }, - "page--story-one": Object { - "id": "page--story-one", - "importPath": "./src/nested/Page.stories.mdx", - "name": "StoryOne", - "tags": Array [ - "stories-mdx", - "story", - ], - "title": "Page", - "type": "story", - }, - }, - "v": 4, - } - `); - }); - }); - - describe('autodocs', () => { - const autodocsOptions = { - ...options, - docs: { ...options.docs, autodocs: 'tag' as const }, - }; - it('generates an entry per CSF file with the autodocs tag', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/**/*.stories.(ts|js|mjs|jsx)', - options - ); - - const generator = new StoryIndexGenerator([specifier], autodocsOptions); - await generator.initialize(); - - expect(await generator.getIndex()).toMatchInlineSnapshot(` - Object { - "entries": Object { - "a--story-one": Object { - "id": "a--story-one", - "importPath": "./src/A.stories.js", - "name": "Story One", - "tags": Array [ - "component-tag", - "story-tag", - "story", - ], - "title": "A", - "type": "story", - }, - "b--docs": Object { - "id": "b--docs", - "importPath": "./src/B.stories.ts", - "name": "docs", - "storiesImports": Array [], - "tags": Array [ - "autodocs", - "docs", - ], - "title": "B", - "type": "docs", - }, - "b--story-one": Object { - "id": "b--story-one", - "importPath": "./src/B.stories.ts", - "name": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "B", - "type": "story", - }, - "d--docs": Object { - "id": "d--docs", - "importPath": "./src/D.stories.jsx", - "name": "docs", - "storiesImports": Array [], - "tags": Array [ - "autodocs", - "docs", - ], - "title": "D", - "type": "docs", - }, - "d--story-one": Object { - "id": "d--story-one", - "importPath": "./src/D.stories.jsx", - "name": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "D", - "type": "story", - }, - "first-nested-deeply-f--story-one": Object { - "id": "first-nested-deeply-f--story-one", - "importPath": "./src/first-nested/deeply/F.stories.js", - "name": "Story One", - "tags": Array [ - "story", - ], - "title": "first-nested/deeply/F", - "type": "story", - }, - "h--docs": Object { - "id": "h--docs", - "importPath": "./src/H.stories.mjs", - "name": "docs", - "storiesImports": Array [], - "tags": Array [ - "autodocs", - "docs", - ], - "title": "H", - "type": "docs", - }, - "h--story-one": Object { - "id": "h--story-one", - "importPath": "./src/H.stories.mjs", - "name": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "H", - "type": "story", - }, - "nested-button--story-one": Object { - "id": "nested-button--story-one", - "importPath": "./src/nested/Button.stories.ts", - "name": "Story One", - "tags": Array [ - "component-tag", - "story", - ], - "title": "nested/Button", - "type": "story", - }, - "second-nested-g--story-one": Object { - "id": "second-nested-g--story-one", - "importPath": "./src/second-nested/G.stories.ts", - "name": "Story One", - "tags": Array [ - "story", - ], - "title": "second-nested/G", - "type": "story", - }, - }, - "v": 4, - } - `); - }); - - const autodocsTrueOptions = { - ...autodocsOptions, - docs: { - ...autodocsOptions.docs, - autodocs: true, - }, - }; - it('generates an entry for every CSF file when docsOptions.autodocs = true', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/**/*.stories.(ts|js|mjs|jsx)', - options - ); - - const generator = new StoryIndexGenerator([specifier], autodocsTrueOptions); - await generator.initialize(); - - expect(Object.keys((await generator.getIndex()).entries)).toMatchInlineSnapshot(` - Array [ - "a--docs", - "a--story-one", - "b--docs", - "b--story-one", - "d--docs", - "d--story-one", - "h--docs", - "h--story-one", - "first-nested-deeply-f--docs", - "first-nested-deeply-f--story-one", - "nested-button--docs", - "nested-button--story-one", - "second-nested-g--docs", - "second-nested-g--story-one", - ] - `); - }); - - it('adds the autodocs tag to the autogenerated docs entries', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/**/*.stories.(ts|js|mjs|jsx)', - options - ); - - const generator = new StoryIndexGenerator([specifier], autodocsTrueOptions); - await generator.initialize(); - - const index = await generator.getIndex(); - expect(index.entries['first-nested-deeply-f--docs'].tags).toEqual( - expect.arrayContaining(['autodocs']) - ); - }); - - it('throws an error if you attach a named MetaOf entry which clashes with a tagged autodocs entry', async () => { - const csfSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/B.stories.ts', - options - ); - - const docsSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './errors/MetaOfClashingDefaultName.mdx', - options - ); - - const generator = new StoryIndexGenerator([csfSpecifier, docsSpecifier], autodocsOptions); - await generator.initialize(); - - await expect(generator.getIndex()).rejects.toThrowErrorMatchingInlineSnapshot( - `"Unable to index ./errors/MetaOfClashingDefaultName.mdx,./src/B.stories.ts"` - ); - }); - - it('throws an error if you attach a unnamed MetaOf entry with the same name as the CSF file that clashes with a tagged autodocs entry', async () => { - const csfSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/B.stories.ts', - options - ); - - const docsSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './errors/B.mdx', - options - ); - - const generator = new StoryIndexGenerator([csfSpecifier, docsSpecifier], autodocsOptions); - await generator.initialize(); - - await expect(generator.getIndex()).rejects.toThrowErrorMatchingInlineSnapshot( - `"Unable to index ./errors/B.mdx,./src/B.stories.ts"` - ); - }); - - it('allows you to create a second unnamed MetaOf entry that does not clash with autodocs', async () => { - const csfSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/B.stories.ts', - options - ); - - const docsSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './errors/MetaOfNoName.mdx', - options - ); - - const generator = new StoryIndexGenerator([csfSpecifier, docsSpecifier], autodocsOptions); - await generator.initialize(); - - expect(await generator.getIndex()).toMatchInlineSnapshot(` - Object { - "entries": Object { - "b--docs": Object { - "id": "b--docs", - "importPath": "./src/B.stories.ts", - "name": "docs", - "storiesImports": Array [], - "tags": Array [ - "autodocs", - "docs", - ], - "title": "B", - "type": "docs", - }, - "b--metaofnoname": Object { - "id": "b--metaofnoname", - "importPath": "./errors/MetaOfNoName.mdx", - "name": "MetaOfNoName", - "storiesImports": Array [ - "./src/B.stories.ts", - ], - "tags": Array [ - "attached-mdx", - "docs", - ], - "title": "B", - "type": "docs", - }, - "b--story-one": Object { - "id": "b--story-one", - "importPath": "./src/B.stories.ts", - "name": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "B", - "type": "story", - }, - }, - "v": 4, - } - `); - }); - it('allows you to create a second MetaOf entry with a different name to autodocs', async () => { - const csfSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/B.stories.ts', - options - ); - - const docsSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './errors/MetaOfName.mdx', - options - ); - - const generator = new StoryIndexGenerator([csfSpecifier, docsSpecifier], autodocsOptions); - await generator.initialize(); - - expect(await generator.getIndex()).toMatchInlineSnapshot(` - Object { - "entries": Object { - "b--docs": Object { - "id": "b--docs", - "importPath": "./src/B.stories.ts", - "name": "docs", - "storiesImports": Array [], - "tags": Array [ - "autodocs", - "docs", - ], - "title": "B", - "type": "docs", - }, - "b--name": Object { - "id": "b--name", - "importPath": "./errors/MetaOfName.mdx", - "name": "name", - "storiesImports": Array [ - "./src/B.stories.ts", - ], - "tags": Array [ - "attached-mdx", - "docs", - ], - "title": "B", - "type": "docs", - }, - "b--story-one": Object { - "id": "b--story-one", - "importPath": "./src/B.stories.ts", - "name": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "B", - "type": "story", - }, - }, - "v": 4, - } - `); - }); - - it('allows you to override autodocs with MetaOf if it is automatic', async () => { - const csfSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/A.stories.js', - options - ); - - const docsSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './errors/A.mdx', - options - ); - - const generator = new StoryIndexGenerator( - [csfSpecifier, docsSpecifier], - autodocsTrueOptions - ); - await generator.initialize(); - - expect(await generator.getIndex()).toMatchInlineSnapshot(` - Object { - "entries": Object { - "a--docs": Object { - "id": "a--docs", - "importPath": "./errors/A.mdx", - "name": "docs", - "storiesImports": Array [ - "./src/A.stories.js", - ], - "tags": Array [ - "attached-mdx", - "docs", - ], - "title": "A", - "type": "docs", - }, - "a--story-one": Object { - "id": "a--story-one", - "importPath": "./src/A.stories.js", - "name": "Story One", - "tags": Array [ - "component-tag", - "story-tag", - "story", - ], - "title": "A", - "type": "story", - }, - }, - "v": 4, - } - `); - }); - - it('generates a combined entry if there are two stories files for the same title', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './duplicate/*.stories.(ts|js|mjs|jsx)', - options - ); - - const generator = new StoryIndexGenerator([specifier], autodocsOptions); - await generator.initialize(); - - expect(await generator.getIndex()).toMatchInlineSnapshot(` - Object { - "entries": Object { - "duplicate-a--docs": Object { - "id": "duplicate-a--docs", - "importPath": "./duplicate/A.stories.js", - "name": "docs", - "storiesImports": Array [ - "./duplicate/SecondA.stories.js", - ], - "tags": Array [ - "autodocs", - "docs", - ], - "title": "duplicate/A", - "type": "docs", - }, - "duplicate-a--story-one": Object { - "id": "duplicate-a--story-one", - "importPath": "./duplicate/A.stories.js", - "name": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "duplicate/A", - "type": "story", - }, - "duplicate-a--story-two": Object { - "id": "duplicate-a--story-two", - "importPath": "./duplicate/SecondA.stories.js", - "name": "Story Two", - "tags": Array [ - "autodocs", - "story", - ], - "title": "duplicate/A", - "type": "story", - }, - }, - "v": 4, - } - `); - }); - - // https://github.com/storybookjs/storybook/issues/19142 - it('does not generate a docs page entry if there are no stories in the CSF file', async () => { - const csfSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './errors/NoStories.stories.ts', - options - ); - - const generator = new StoryIndexGenerator([csfSpecifier], autodocsOptions); - await generator.initialize(); - - expect(await generator.getIndex()).toMatchInlineSnapshot(` - Object { - "entries": Object {}, - "v": 4, - } - `); - }); - }); - - describe('docs specifier', () => { - it('creates correct docs entries', async () => { - const generator = new StoryIndexGenerator([storiesSpecifier, docsSpecifier], options); - await generator.initialize(); - - expect(await generator.getIndex()).toMatchInlineSnapshot(` - Object { - "entries": Object { - "a--metaof": Object { - "id": "a--metaof", - "importPath": "./src/docs2/MetaOf.mdx", - "name": "MetaOf", - "storiesImports": Array [ - "./src/A.stories.js", - ], - "tags": Array [ - "attached-mdx", - "docs", - ], - "title": "A", - "type": "docs", - }, - "a--second-docs": Object { - "id": "a--second-docs", - "importPath": "./src/docs2/SecondMetaOf.mdx", - "name": "Second Docs", - "storiesImports": Array [ - "./src/A.stories.js", - ], - "tags": Array [ - "attached-mdx", - "docs", - ], - "title": "A", - "type": "docs", - }, - "a--story-one": Object { - "id": "a--story-one", - "importPath": "./src/A.stories.js", - "name": "Story One", - "tags": Array [ - "component-tag", - "story-tag", - "story", - ], - "title": "A", - "type": "story", - }, - "componentreference--docs": Object { - "id": "componentreference--docs", - "importPath": "./src/docs2/ComponentReference.mdx", - "name": "docs", - "storiesImports": Array [], - "tags": Array [ - "unattached-mdx", - "docs", - ], - "title": "ComponentReference", - "type": "docs", - }, - "docs2-yabbadabbadooo--docs": Object { - "id": "docs2-yabbadabbadooo--docs", - "importPath": "./src/docs2/Title.mdx", - "name": "docs", - "storiesImports": Array [], - "tags": Array [ - "unattached-mdx", - "docs", - ], - "title": "docs2/Yabbadabbadooo", - "type": "docs", - }, - "notitle--docs": Object { - "id": "notitle--docs", - "importPath": "./src/docs2/NoTitle.mdx", - "name": "docs", - "storiesImports": Array [], - "tags": Array [ - "unattached-mdx", - "docs", - ], - "title": "NoTitle", - "type": "docs", - }, - }, - "v": 4, - } - `); - }); - - it('does not append title prefix if meta references a CSF file', async () => { - const generator = new StoryIndexGenerator( - [ - storiesSpecifier, - normalizeStoriesEntry( - { directory: './src/docs2', files: '**/*.mdx', titlePrefix: 'titlePrefix' }, - options - ), - ], - options - ); - await generator.initialize(); - - // NOTE: `toMatchInlineSnapshot` on objects sorts the keys, but in actuality, they are - // not sorted by default. - expect(Object.values((await generator.getIndex()).entries).map((e) => e.title)) - .toMatchInlineSnapshot(` - Array [ - "A", - "titlePrefix/ComponentReference", - "A", - "titlePrefix/NoTitle", - "A", - "titlePrefix/docs2/Yabbadabbadooo", - ] - `); - }); - - it('Allows you to override default name for docs files', async () => { - const generator = new StoryIndexGenerator([storiesSpecifier, docsSpecifier], { - ...options, - docs: { - ...options.docs, - defaultName: 'Info', - }, - }); - await generator.initialize(); - - expect(await generator.getIndex()).toMatchInlineSnapshot(` - Object { - "entries": Object { - "a--metaof": Object { - "id": "a--metaof", - "importPath": "./src/docs2/MetaOf.mdx", - "name": "MetaOf", - "storiesImports": Array [ - "./src/A.stories.js", - ], - "tags": Array [ - "attached-mdx", - "docs", - ], - "title": "A", - "type": "docs", - }, - "a--second-docs": Object { - "id": "a--second-docs", - "importPath": "./src/docs2/SecondMetaOf.mdx", - "name": "Second Docs", - "storiesImports": Array [ - "./src/A.stories.js", - ], - "tags": Array [ - "attached-mdx", - "docs", - ], - "title": "A", - "type": "docs", - }, - "a--story-one": Object { - "id": "a--story-one", - "importPath": "./src/A.stories.js", - "name": "Story One", - "tags": Array [ - "component-tag", - "story-tag", - "story", - ], - "title": "A", - "type": "story", - }, - "componentreference--info": Object { - "id": "componentreference--info", - "importPath": "./src/docs2/ComponentReference.mdx", - "name": "Info", - "storiesImports": Array [], - "tags": Array [ - "unattached-mdx", - "docs", - ], - "title": "ComponentReference", - "type": "docs", - }, - "docs2-yabbadabbadooo--info": Object { - "id": "docs2-yabbadabbadooo--info", - "importPath": "./src/docs2/Title.mdx", - "name": "Info", - "storiesImports": Array [], - "tags": Array [ - "unattached-mdx", - "docs", - ], - "title": "docs2/Yabbadabbadooo", - "type": "docs", - }, - "notitle--info": Object { - "id": "notitle--info", - "importPath": "./src/docs2/NoTitle.mdx", - "name": "Info", - "storiesImports": Array [], - "tags": Array [ - "unattached-mdx", - "docs", - ], - "title": "NoTitle", - "type": "docs", - }, - }, - "v": 4, - } - `); - }); - - it('pulls the attached story file to the front of the list', async () => { - const generator = new StoryIndexGenerator( - [ - normalizeStoriesEntry('./src/A.stories.js', options), - normalizeStoriesEntry('./src/B.stories.ts', options), - normalizeStoriesEntry('./complex/TwoStoryReferences.mdx', options), - ], - options - ); - await generator.initialize(); - expect(await generator.getIndex()).toMatchInlineSnapshot(` - Object { - "entries": Object { - "a--story-one": Object { - "id": "a--story-one", - "importPath": "./src/A.stories.js", - "name": "Story One", - "tags": Array [ - "component-tag", - "story-tag", - "story", - ], - "title": "A", - "type": "story", - }, - "b--story-one": Object { - "id": "b--story-one", - "importPath": "./src/B.stories.ts", - "name": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "B", - "type": "story", - }, - "b--twostoryreferences": Object { - "id": "b--twostoryreferences", - "importPath": "./complex/TwoStoryReferences.mdx", - "name": "TwoStoryReferences", - "storiesImports": Array [ - "./src/B.stories.ts", - "./src/A.stories.js", - ], - "tags": Array [ - "attached-mdx", - "docs", - ], - "title": "B", - "type": "docs", - }, - }, - "v": 4, - } - `); - }); - }); - - describe('errors', () => { - it('when docs dependencies are missing', async () => { - const generator = new StoryIndexGenerator( - [normalizeStoriesEntry('./src/docs2/MetaOf.mdx', options)], - options - ); - await generator.initialize(); - await expect(() => generator.getIndex()).rejects.toThrowErrorMatchingInlineSnapshot( - `"Unable to index ./src/docs2/MetaOf.mdx"` - ); - }); - }); - - describe('warnings', () => { - it('when entries do not match any files', async () => { - const generator = new StoryIndexGenerator( - [normalizeStoriesEntry('./src/docs2/wrong.js', options)], - options - ); - await generator.initialize(); - await generator.getIndex(); - - expect(once.warn).toHaveBeenCalledTimes(1); - const logMessage = jest.mocked(once.warn).mock.calls[0][0]; - expect(logMessage).toContain(`No story files found for the specified pattern`); - }); - }); - - describe('duplicates', () => { - it('errors when two MDX entries reference the same CSF file without a name', async () => { - const docsErrorSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './errors/**/A.mdx', - options - ); - - const generator = new StoryIndexGenerator( - [storiesSpecifier, docsSpecifier, docsErrorSpecifier], - options - ); - await generator.initialize(); - - await expect(generator.getIndex()).rejects.toThrowErrorMatchingInlineSnapshot( - `"Unable to index ./errors/A.mdx,./errors/duplicate/A.mdx"` - ); - }); - - it('errors when a MDX entry has the same name as a story', async () => { - const docsErrorSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './errors/MetaOfClashingName.mdx', - options - ); - - const generator = new StoryIndexGenerator( - [storiesSpecifier, docsSpecifier, docsErrorSpecifier], - options - ); - await generator.initialize(); - - await expect(generator.getIndex()).rejects.toThrowErrorMatchingInlineSnapshot( - `"Unable to index ./src/A.stories.js,./errors/MetaOfClashingName.mdx"` - ); - }); - - it('errors when a story has the default docs name', async () => { - const docsErrorSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './errors/A.mdx', - options - ); - - const generator = new StoryIndexGenerator( - [storiesSpecifier, docsSpecifier, docsErrorSpecifier], - { - ...options, - docs: { ...options.docs, defaultName: 'Story One' }, - } - ); - await generator.initialize(); - - await expect(generator.getIndex()).rejects.toThrowErrorMatchingInlineSnapshot( - `"Unable to index ./src/A.stories.js,./errors/A.mdx"` - ); - }); - it('errors when two duplicate stories exists, with duplicated entries details', async () => { - const generator = new StoryIndexGenerator([storiesSpecifier, docsSpecifier], { - ...options, - }); - await generator.initialize(); - const mockEntry: StoryIndexEntry = { - id: 'StoryId', - name: 'StoryName', - title: 'ComponentTitle', - importPath: 'Path', - type: 'story', - }; - expect(() => { - generator.chooseDuplicate(mockEntry, { ...mockEntry, importPath: 'DifferentPath' }); - }).toThrowErrorMatchingInlineSnapshot(`"Duplicate stories with id: StoryId"`); - }); - - it('DOES NOT error when the same MDX file matches two specifiers', async () => { - const generator = new StoryIndexGenerator( - [storiesSpecifier, docsSpecifier, docsSpecifier], - options - ); - await generator.initialize(); - - expect(Object.keys((await generator.getIndex()).entries)).toMatchInlineSnapshot(` - Array [ - "a--story-one", - "componentreference--docs", - "a--metaof", - "notitle--docs", - "a--second-docs", - "docs2-yabbadabbadooo--docs", - ] - `); - - expect(logger.warn).not.toHaveBeenCalled(); - }); - - it('DOES NOT throw when the same CSF file matches two specifiers', async () => { - const generator = new StoryIndexGenerator([storiesSpecifier, storiesSpecifier], { - ...options, - }); - await generator.initialize(); - expect(Object.keys((await generator.getIndex()).entries)).toMatchInlineSnapshot(` - Array [ - "a--story-one", - ] - `); - - expect(logger.warn).not.toHaveBeenCalled(); - }); - - it('DOES NOT throw when the same CSF file is indexed by both a deprecated and current indexer', async () => { - const generator = new StoryIndexGenerator([storiesSpecifier], { - ...options, - indexers: [ - { - test: /\.stories\.(m?js|ts)x?$/, - createIndex: async (fileName, options) => { - const code = (await fs.readFile(fileName, 'utf-8')).toString(); - const csf = loadCsf(code, { ...options, fileName }).parse(); - - // eslint-disable-next-line no-underscore-dangle - return Object.entries(csf._stories).map(([exportName, story]) => ({ - type: 'story', - importPath: fileName, - exportName, - name: story.name, - title: csf.meta.title, - metaId: csf.meta.id, - tags: story.tags ?? csf.meta.tags, - __id: story.id, - })); - }, - }, - ], - }); - await generator.initialize(); - expect(Object.keys((await generator.getIndex()).entries)).toMatchInlineSnapshot(` - Array [ - "a--story-one", - ] - `); - - expect(logger.warn).not.toHaveBeenCalled(); - }); - }); - }); - - describe('sorting', () => { - it('runs a user-defined sort function', async () => { - const storiesSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/**/*.stories.(ts|js|mjs|jsx)', - options - ); - const docsSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/docs2/*.mdx', - options - ); - - const generator = new StoryIndexGenerator([docsSpecifier, storiesSpecifier], options); - await generator.initialize(); - - (getStorySortParameter as jest.Mock).mockReturnValueOnce({ - order: ['docs2', 'D', 'B', 'nested', 'A', 'second-nested', 'first-nested/deeply'], - }); - - expect(Object.keys((await generator.getIndex()).entries)).toMatchInlineSnapshot(` - Array [ - "docs2-yabbadabbadooo--docs", - "d--story-one", - "b--story-one", - "nested-button--story-one", - "a--metaof", - "a--second-docs", - "a--story-one", - "second-nested-g--story-one", - "componentreference--docs", - "notitle--docs", - "h--story-one", - "first-nested-deeply-f--story-one", - ] - `); - }); - }); - - describe('caching', () => { - describe('no invalidation', () => { - it('does not extract csf files a second time', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/**/*.stories.(ts|js|mjs|jsx)', - options - ); - - loadCsfMock.mockClear(); - const generator = new StoryIndexGenerator([specifier], options); - await generator.initialize(); - await generator.getIndex(); - expect(loadCsfMock).toHaveBeenCalledTimes(7); - - loadCsfMock.mockClear(); - await generator.getIndex(); - expect(loadCsfMock).not.toHaveBeenCalled(); - }); - - it('does not extract docs files a second time', async () => { - const storiesSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/A.stories.(ts|js|mjs|jsx)', - options - ); - const docsSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/docs2/*.mdx', - options - ); - - const generator = new StoryIndexGenerator([storiesSpecifier, docsSpecifier], options); - await generator.initialize(); - await generator.getIndex(); - expect(toId).toHaveBeenCalledTimes(6); - - toIdMock.mockClear(); - await generator.getIndex(); - expect(toId).not.toHaveBeenCalled(); - }); - - it('does not call the sort function a second time', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/**/*.stories.(ts|js|mjs|jsx)', - options - ); - - const sortFn = jest.fn(); - getStorySortParameterMock.mockReturnValue(sortFn); - const generator = new StoryIndexGenerator([specifier], options); - await generator.initialize(); - await generator.getIndex(); - expect(sortFn).toHaveBeenCalled(); - - sortFn.mockClear(); - await generator.getIndex(); - expect(sortFn).not.toHaveBeenCalled(); - }); - }); - - describe('file changed', () => { - it('calls extract csf file for just the one file', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/**/*.stories.(ts|js|mjs|jsx)', - options - ); - - loadCsfMock.mockClear(); - const generator = new StoryIndexGenerator([specifier], options); - await generator.initialize(); - await generator.getIndex(); - expect(loadCsfMock).toHaveBeenCalledTimes(7); - - generator.invalidate(specifier, './src/B.stories.ts', false); - - loadCsfMock.mockClear(); - await generator.getIndex(); - expect(loadCsfMock).toHaveBeenCalledTimes(1); - }); - - it('calls extract docs file for just the one file', async () => { - const storiesSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/A.stories.(ts|js|mjs|jsx)', - options - ); - const docsSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/docs2/*.mdx', - options - ); - - const generator = new StoryIndexGenerator([storiesSpecifier, docsSpecifier], options); - await generator.initialize(); - await generator.getIndex(); - expect(toId).toHaveBeenCalledTimes(6); - - generator.invalidate(docsSpecifier, './src/docs2/Title.mdx', false); - - toIdMock.mockClear(); - await generator.getIndex(); - expect(toId).toHaveBeenCalledTimes(1); - }); - - it('calls extract for a csf file and any of its docs dependents', async () => { - const storiesSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/A.stories.(ts|js|mjs|jsx)', - options - ); - const docsSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/docs2/*.mdx', - options - ); - - const generator = new StoryIndexGenerator([storiesSpecifier, docsSpecifier], options); - await generator.initialize(); - await generator.getIndex(); - expect(toId).toHaveBeenCalledTimes(6); - - generator.invalidate(storiesSpecifier, './src/A.stories.js', false); - - toIdMock.mockClear(); - await generator.getIndex(); - expect(toId).toHaveBeenCalledTimes(3); - }); - - it('does call the sort function a second time', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/**/*.stories.(ts|js|mjs|jsx)', - options - ); - - const sortFn = jest.fn(); - getStorySortParameterMock.mockReturnValue(sortFn); - const generator = new StoryIndexGenerator([specifier], options); - await generator.initialize(); - await generator.getIndex(); - expect(sortFn).toHaveBeenCalled(); - - generator.invalidate(specifier, './src/B.stories.ts', false); - - sortFn.mockClear(); - await generator.getIndex(); - expect(sortFn).toHaveBeenCalled(); - }); - }); - - describe('file removed', () => { - it('does not extract csf files a second time', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/**/*.stories.(ts|js|mjs|jsx)', - options - ); - - loadCsfMock.mockClear(); - const generator = new StoryIndexGenerator([specifier], options); - await generator.initialize(); - await generator.getIndex(); - expect(loadCsfMock).toHaveBeenCalledTimes(7); - - generator.invalidate(specifier, './src/B.stories.ts', true); - - loadCsfMock.mockClear(); - await generator.getIndex(); - expect(loadCsfMock).not.toHaveBeenCalled(); - }); - - it('does call the sort function a second time', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/**/*.stories.(ts|js|mjs|jsx)', - options - ); - - const sortFn = jest.fn(); - getStorySortParameterMock.mockReturnValue(sortFn); - const generator = new StoryIndexGenerator([specifier], options); - await generator.initialize(); - await generator.getIndex(); - expect(sortFn).toHaveBeenCalled(); - - generator.invalidate(specifier, './src/B.stories.ts', true); - - sortFn.mockClear(); - await generator.getIndex(); - expect(sortFn).toHaveBeenCalled(); - }); - - it('does not include the deleted stories in results', async () => { - const specifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/**/*.stories.(ts|js|mjs|jsx)', - options - ); - - loadCsfMock.mockClear(); - const generator = new StoryIndexGenerator([specifier], options); - await generator.initialize(); - await generator.getIndex(); - expect(loadCsfMock).toHaveBeenCalledTimes(7); - - generator.invalidate(specifier, './src/B.stories.ts', true); - - expect(Object.keys((await generator.getIndex()).entries)).not.toContain('b--story-one'); - }); - - it('does not include the deleted docs in results', async () => { - const storiesSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/A.stories.(ts|js|mjs|jsx)', - options - ); - const docsSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/docs2/*.mdx', - options - ); - - const generator = new StoryIndexGenerator([docsSpecifier, storiesSpecifier], options); - await generator.initialize(); - await generator.getIndex(); - expect(toId).toHaveBeenCalledTimes(6); - - expect(Object.keys((await generator.getIndex()).entries)).toContain('notitle--docs'); - - generator.invalidate(docsSpecifier, './src/docs2/NoTitle.mdx', true); - - expect(Object.keys((await generator.getIndex()).entries)).not.toContain('notitle--docs'); - }); - - it('cleans up properly on dependent docs deletion', async () => { - const storiesSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/A.stories.(ts|js|mjs|jsx)', - options - ); - const docsSpecifier: NormalizedStoriesSpecifier = normalizeStoriesEntry( - './src/docs2/*.mdx', - options - ); - - const generator = new StoryIndexGenerator([docsSpecifier, storiesSpecifier], options); - await generator.initialize(); - await generator.getIndex(); - expect(toId).toHaveBeenCalledTimes(6); - - expect(Object.keys((await generator.getIndex()).entries)).toContain('a--metaof'); - - generator.invalidate(docsSpecifier, './src/docs2/MetaOf.mdx', true); - - expect(Object.keys((await generator.getIndex()).entries)).not.toContain('a--metaof'); - - // this will throw if MetaOf is not removed from A's dependents - generator.invalidate(storiesSpecifier, './src/A.stories.js', false); - }); - }); - }); -}); diff --git a/code/lib/core-server/src/utils/StoryIndexGenerator.test.ts b/code/lib/core-server/src/utils/StoryIndexGenerator.test.ts index fad7090789fe..cfabf443d838 100644 --- a/code/lib/core-server/src/utils/StoryIndexGenerator.test.ts +++ b/code/lib/core-server/src/utils/StoryIndexGenerator.test.ts @@ -48,7 +48,6 @@ const options: StoryIndexGeneratorOptions = { workingDir: path.join(__dirname, '__mockdata__'), storyIndexers: [], indexers: [csfIndexer, createStoriesMdxIndexer(false)], - storiesV2Compatibility: false, storyStoreV7: true, docs: { defaultName: 'docs', autodocs: false }, }; diff --git a/code/lib/core-server/src/utils/StoryIndexGenerator.ts b/code/lib/core-server/src/utils/StoryIndexGenerator.ts index fc0f38aa8833..d8f4e8ba95ed 100644 --- a/code/lib/core-server/src/utils/StoryIndexGenerator.ts +++ b/code/lib/core-server/src/utils/StoryIndexGenerator.ts @@ -16,8 +16,6 @@ import type { Path, Tag, StoryIndex, - V3CompatIndexEntry, - StoryId, StoryName, Indexer, IndexerOptions, @@ -54,7 +52,6 @@ type SpecifierStoriesCache = Record; export type StoryIndexGeneratorOptions = { workingDir: Path; configDir: Path; - storiesV2Compatibility: boolean; storyStoreV7: boolean; storyIndexers: StoryIndexer[]; indexers: Indexer[]; @@ -661,35 +658,9 @@ export class StoryIndexGenerator { const sorted = await this.sortStories(indexEntries); - let compat = sorted; - if (this.options.storiesV2Compatibility) { - const titleToStoryCount = Object.values(sorted).reduce((acc, story) => { - acc[story.title] = (acc[story.title] || 0) + 1; - return acc; - }, {} as Record); - - // @ts-expect-error (Converted from ts-ignore) - compat = Object.entries(sorted).reduce((acc, entry) => { - const [id, story] = entry; - if (story.type === 'docs') return acc; - - acc[id] = { - ...story, - kind: story.title, - story: story.name, - parameters: { - __id: story.id, - docsOnly: titleToStoryCount[story.title] === 1 && story.name === 'Page', - fileName: story.importPath, - }, - }; - return acc; - }, {} as Record); - } - this.lastIndex = { v: 4, - entries: compat, + entries: sorted, }; return this.lastIndex; diff --git a/code/lib/core-server/src/utils/__tests__/index-extraction.test.ts b/code/lib/core-server/src/utils/__tests__/index-extraction.test.ts index 39820b3e2c17..48618f017c39 100644 --- a/code/lib/core-server/src/utils/__tests__/index-extraction.test.ts +++ b/code/lib/core-server/src/utils/__tests__/index-extraction.test.ts @@ -18,7 +18,6 @@ const options: StoryIndexGeneratorOptions = { workingDir: path.join(__dirname, '..', '__mockdata__'), storyIndexers: [], indexers: [], - storiesV2Compatibility: false, storyStoreV7: true, docs: { defaultName: 'docs', autodocs: false }, }; diff --git a/code/lib/core-server/src/utils/getStoryIndexGenerator.ts b/code/lib/core-server/src/utils/getStoryIndexGenerator.ts index 952edb507824..74401020256e 100644 --- a/code/lib/core-server/src/utils/getStoryIndexGenerator.ts +++ b/code/lib/core-server/src/utils/getStoryIndexGenerator.ts @@ -35,7 +35,6 @@ export async function getStoryIndexGenerator( indexers: await indexers, docs: await docsOptions, workingDir, - storiesV2Compatibility: !features?.storyStoreV7, storyStoreV7: features.storyStoreV7 ?? false, }); diff --git a/code/lib/core-server/src/utils/stories-json.test.ts b/code/lib/core-server/src/utils/stories-json.test.ts index e1f0b1f6d613..521d4f940940 100644 --- a/code/lib/core-server/src/utils/stories-json.test.ts +++ b/code/lib/core-server/src/utils/stories-json.test.ts @@ -7,10 +7,9 @@ import debounce from 'lodash/debounce.js'; // @ts-expect-error -- cannot find declaration file import { createStoriesMdxIndexer } from '@storybook/addon-docs/preset'; import { STORY_INDEX_INVALIDATED } from '@storybook/core-events'; -import type { StoryIndex } from '@storybook/types'; import { normalizeStoriesEntry } from '@storybook/core-common'; -import { useStoriesJson, DEBOUNCE, convertToIndexV3 } from './stories-json'; +import { useStoriesJson, DEBOUNCE } from './stories-json'; import type { ServerChannel } from './get-server-channel'; import type { StoryIndexGeneratorOptions } from './StoryIndexGenerator'; import { StoryIndexGenerator } from './StoryIndexGenerator'; @@ -49,7 +48,6 @@ const getInitializedStoryIndexGenerator = async ( indexers: [csfIndexer, createStoriesMdxIndexer(false)], configDir: workingDir, workingDir, - storiesV2Compatibility: false, storyStoreV7: true, docs: { defaultName: 'docs', autodocs: false }, ...overrides, @@ -98,7 +96,7 @@ describe('useStoriesJson', () => { initializedStoryIndexGenerator: getInitializedStoryIndexGenerator(), }); - expect(use).toHaveBeenCalledTimes(2); + expect(use).toHaveBeenCalledTimes(1); const route = use.mock.calls[0][1]; await route(request, response); @@ -276,440 +274,6 @@ describe('useStoriesJson', () => { `); }); - it('scans and extracts stories v3', async () => { - const mockServerChannel = { emit: jest.fn() } as any as ServerChannel; - useStoriesJson({ - router, - initializedStoryIndexGenerator: getInitializedStoryIndexGenerator(), - workingDir, - serverChannel: mockServerChannel, - normalizedStories, - }); - - expect(use).toHaveBeenCalledTimes(2); - const route = use.mock.calls[1][1]; - - await route(request, response); - - expect(send).toHaveBeenCalledTimes(1); - expect(JSON.parse(send.mock.calls[0][0])).toMatchInlineSnapshot(` - Object { - "stories": Object { - "a--metaof": Object { - "id": "a--metaof", - "importPath": "./src/docs2/MetaOf.mdx", - "kind": "A", - "name": "MetaOf", - "parameters": Object { - "__id": "a--metaof", - "docsOnly": true, - "fileName": "./src/docs2/MetaOf.mdx", - }, - "storiesImports": Array [ - "./src/A.stories.js", - ], - "story": "MetaOf", - "tags": Array [ - "attached-mdx", - "docs", - ], - "title": "A", - }, - "a--second-docs": Object { - "id": "a--second-docs", - "importPath": "./src/docs2/SecondMetaOf.mdx", - "kind": "A", - "name": "Second Docs", - "parameters": Object { - "__id": "a--second-docs", - "docsOnly": true, - "fileName": "./src/docs2/SecondMetaOf.mdx", - }, - "storiesImports": Array [ - "./src/A.stories.js", - ], - "story": "Second Docs", - "tags": Array [ - "attached-mdx", - "docs", - ], - "title": "A", - }, - "a--story-one": Object { - "id": "a--story-one", - "importPath": "./src/A.stories.js", - "kind": "A", - "name": "Story One", - "parameters": Object { - "__id": "a--story-one", - "docsOnly": false, - "fileName": "./src/A.stories.js", - }, - "story": "Story One", - "tags": Array [ - "component-tag", - "story-tag", - "story", - ], - "title": "A", - }, - "b--story-one": Object { - "id": "b--story-one", - "importPath": "./src/B.stories.ts", - "kind": "B", - "name": "Story One", - "parameters": Object { - "__id": "b--story-one", - "docsOnly": false, - "fileName": "./src/B.stories.ts", - }, - "story": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "B", - }, - "d--story-one": Object { - "id": "d--story-one", - "importPath": "./src/D.stories.jsx", - "kind": "D", - "name": "Story One", - "parameters": Object { - "__id": "d--story-one", - "docsOnly": false, - "fileName": "./src/D.stories.jsx", - }, - "story": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "D", - }, - "docs2-componentreference--docs": Object { - "id": "docs2-componentreference--docs", - "importPath": "./src/docs2/ComponentReference.mdx", - "kind": "docs2/ComponentReference", - "name": "docs", - "parameters": Object { - "__id": "docs2-componentreference--docs", - "docsOnly": true, - "fileName": "./src/docs2/ComponentReference.mdx", - }, - "storiesImports": Array [], - "story": "docs", - "tags": Array [ - "unattached-mdx", - "docs", - ], - "title": "docs2/ComponentReference", - }, - "docs2-notitle--docs": Object { - "id": "docs2-notitle--docs", - "importPath": "./src/docs2/NoTitle.mdx", - "kind": "docs2/NoTitle", - "name": "docs", - "parameters": Object { - "__id": "docs2-notitle--docs", - "docsOnly": true, - "fileName": "./src/docs2/NoTitle.mdx", - }, - "storiesImports": Array [], - "story": "docs", - "tags": Array [ - "unattached-mdx", - "docs", - ], - "title": "docs2/NoTitle", - }, - "docs2-yabbadabbadooo--docs": Object { - "id": "docs2-yabbadabbadooo--docs", - "importPath": "./src/docs2/Title.mdx", - "kind": "docs2/Yabbadabbadooo", - "name": "docs", - "parameters": Object { - "__id": "docs2-yabbadabbadooo--docs", - "docsOnly": true, - "fileName": "./src/docs2/Title.mdx", - }, - "storiesImports": Array [], - "story": "docs", - "tags": Array [ - "unattached-mdx", - "docs", - ], - "title": "docs2/Yabbadabbadooo", - }, - "first-nested-deeply-f--story-one": Object { - "id": "first-nested-deeply-f--story-one", - "importPath": "./src/first-nested/deeply/F.stories.js", - "kind": "first-nested/deeply/F", - "name": "Story One", - "parameters": Object { - "__id": "first-nested-deeply-f--story-one", - "docsOnly": false, - "fileName": "./src/first-nested/deeply/F.stories.js", - }, - "story": "Story One", - "tags": Array [ - "story", - ], - "title": "first-nested/deeply/F", - }, - "h--story-one": Object { - "id": "h--story-one", - "importPath": "./src/H.stories.mjs", - "kind": "H", - "name": "Story One", - "parameters": Object { - "__id": "h--story-one", - "docsOnly": false, - "fileName": "./src/H.stories.mjs", - }, - "story": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "H", - }, - "nested-button--story-one": Object { - "id": "nested-button--story-one", - "importPath": "./src/nested/Button.stories.ts", - "kind": "nested/Button", - "name": "Story One", - "parameters": Object { - "__id": "nested-button--story-one", - "docsOnly": false, - "fileName": "./src/nested/Button.stories.ts", - }, - "story": "Story One", - "tags": Array [ - "component-tag", - "story", - ], - "title": "nested/Button", - }, - "nested-page--docs": Object { - "id": "nested-page--docs", - "importPath": "./src/nested/Page.stories.mdx", - "kind": "nested/Page", - "name": "docs", - "parameters": Object { - "__id": "nested-page--docs", - "docsOnly": true, - "fileName": "./src/nested/Page.stories.mdx", - }, - "storiesImports": Array [], - "story": "docs", - "tags": Array [ - "stories-mdx", - "docs", - ], - "title": "nested/Page", - }, - "nested-page--story-one": Object { - "id": "nested-page--story-one", - "importPath": "./src/nested/Page.stories.mdx", - "kind": "nested/Page", - "name": "StoryOne", - "parameters": Object { - "__id": "nested-page--story-one", - "docsOnly": false, - "fileName": "./src/nested/Page.stories.mdx", - }, - "story": "StoryOne", - "tags": Array [ - "stories-mdx", - "story", - ], - "title": "nested/Page", - }, - "second-nested-g--story-one": Object { - "id": "second-nested-g--story-one", - "importPath": "./src/second-nested/G.stories.ts", - "kind": "second-nested/G", - "name": "Story One", - "parameters": Object { - "__id": "second-nested-g--story-one", - "docsOnly": false, - "fileName": "./src/second-nested/G.stories.ts", - }, - "story": "Story One", - "tags": Array [ - "story", - ], - "title": "second-nested/G", - }, - }, - "v": 3, - } - `); - }); - - it('scans and extracts stories v2', async () => { - const mockServerChannel = { emit: jest.fn() } as any as ServerChannel; - useStoriesJson({ - router, - initializedStoryIndexGenerator: getInitializedStoryIndexGenerator({ - storiesV2Compatibility: true, - }), - workingDir, - serverChannel: mockServerChannel, - normalizedStories, - }); - - expect(use).toHaveBeenCalledTimes(2); - const route = use.mock.calls[1][1]; - - await route(request, response); - - expect(send).toHaveBeenCalledTimes(1); - expect(JSON.parse(send.mock.calls[0][0])).toMatchInlineSnapshot(` - Object { - "stories": Object { - "a--story-one": Object { - "id": "a--story-one", - "importPath": "./src/A.stories.js", - "kind": "A", - "name": "Story One", - "parameters": Object { - "__id": "a--story-one", - "docsOnly": false, - "fileName": "./src/A.stories.js", - }, - "story": "Story One", - "tags": Array [ - "component-tag", - "story-tag", - "story", - ], - "title": "A", - }, - "b--story-one": Object { - "id": "b--story-one", - "importPath": "./src/B.stories.ts", - "kind": "B", - "name": "Story One", - "parameters": Object { - "__id": "b--story-one", - "docsOnly": false, - "fileName": "./src/B.stories.ts", - }, - "story": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "B", - }, - "d--story-one": Object { - "id": "d--story-one", - "importPath": "./src/D.stories.jsx", - "kind": "D", - "name": "Story One", - "parameters": Object { - "__id": "d--story-one", - "docsOnly": false, - "fileName": "./src/D.stories.jsx", - }, - "story": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "D", - }, - "first-nested-deeply-f--story-one": Object { - "id": "first-nested-deeply-f--story-one", - "importPath": "./src/first-nested/deeply/F.stories.js", - "kind": "first-nested/deeply/F", - "name": "Story One", - "parameters": Object { - "__id": "first-nested-deeply-f--story-one", - "docsOnly": false, - "fileName": "./src/first-nested/deeply/F.stories.js", - }, - "story": "Story One", - "tags": Array [ - "story", - ], - "title": "first-nested/deeply/F", - }, - "h--story-one": Object { - "id": "h--story-one", - "importPath": "./src/H.stories.mjs", - "kind": "H", - "name": "Story One", - "parameters": Object { - "__id": "h--story-one", - "docsOnly": false, - "fileName": "./src/H.stories.mjs", - }, - "story": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "H", - }, - "nested-button--story-one": Object { - "id": "nested-button--story-one", - "importPath": "./src/nested/Button.stories.ts", - "kind": "nested/Button", - "name": "Story One", - "parameters": Object { - "__id": "nested-button--story-one", - "docsOnly": false, - "fileName": "./src/nested/Button.stories.ts", - }, - "story": "Story One", - "tags": Array [ - "component-tag", - "story", - ], - "title": "nested/Button", - }, - "nested-page--story-one": Object { - "id": "nested-page--story-one", - "importPath": "./src/nested/Page.stories.mdx", - "kind": "nested/Page", - "name": "StoryOne", - "parameters": Object { - "__id": "nested-page--story-one", - "docsOnly": false, - "fileName": "./src/nested/Page.stories.mdx", - }, - "story": "StoryOne", - "tags": Array [ - "stories-mdx", - "story", - ], - "title": "nested/Page", - }, - "second-nested-g--story-one": Object { - "id": "second-nested-g--story-one", - "importPath": "./src/second-nested/G.stories.ts", - "kind": "second-nested/G", - "name": "Story One", - "parameters": Object { - "__id": "second-nested-g--story-one", - "docsOnly": false, - "fileName": "./src/second-nested/G.stories.ts", - }, - "story": "Story One", - "tags": Array [ - "story", - ], - "title": "second-nested/G", - }, - }, - "v": 3, - } - `); - }); - it('disallows .mdx files without storyStoreV7', async () => { const mockServerChannel = { emit: jest.fn() } as any as ServerChannel; useStoriesJson({ @@ -722,8 +286,8 @@ describe('useStoriesJson', () => { normalizedStories, }); - expect(use).toHaveBeenCalledTimes(2); - const route = use.mock.calls[1][1]; + expect(use).toHaveBeenCalledTimes(1); + const route = use.mock.calls[0][1]; await route(request, response); @@ -739,152 +303,6 @@ describe('useStoriesJson', () => { `); }); - it('allows disabling storyStoreV7 if no .mdx files are used', async () => { - const mockServerChannel = { emit: jest.fn() } as any as ServerChannel; - useStoriesJson({ - router, - initializedStoryIndexGenerator: getInitializedStoryIndexGenerator( - { storyStoreV7: false }, - normalizedStories.slice(0, 1) - ), - workingDir, - serverChannel: mockServerChannel, - normalizedStories, - }); - - expect(use).toHaveBeenCalledTimes(2); - const route = use.mock.calls[1][1]; - - await route(request, response); - - expect(send).toHaveBeenCalledTimes(1); - expect(JSON.parse(send.mock.calls[0][0])).toMatchInlineSnapshot(` - Object { - "stories": Object { - "a--story-one": Object { - "id": "a--story-one", - "importPath": "./src/A.stories.js", - "kind": "A", - "name": "Story One", - "parameters": Object { - "__id": "a--story-one", - "docsOnly": false, - "fileName": "./src/A.stories.js", - }, - "story": "Story One", - "tags": Array [ - "component-tag", - "story-tag", - "story", - ], - "title": "A", - }, - "b--story-one": Object { - "id": "b--story-one", - "importPath": "./src/B.stories.ts", - "kind": "B", - "name": "Story One", - "parameters": Object { - "__id": "b--story-one", - "docsOnly": false, - "fileName": "./src/B.stories.ts", - }, - "story": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "B", - }, - "d--story-one": Object { - "id": "d--story-one", - "importPath": "./src/D.stories.jsx", - "kind": "D", - "name": "Story One", - "parameters": Object { - "__id": "d--story-one", - "docsOnly": false, - "fileName": "./src/D.stories.jsx", - }, - "story": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "D", - }, - "first-nested-deeply-f--story-one": Object { - "id": "first-nested-deeply-f--story-one", - "importPath": "./src/first-nested/deeply/F.stories.js", - "kind": "first-nested/deeply/F", - "name": "Story One", - "parameters": Object { - "__id": "first-nested-deeply-f--story-one", - "docsOnly": false, - "fileName": "./src/first-nested/deeply/F.stories.js", - }, - "story": "Story One", - "tags": Array [ - "story", - ], - "title": "first-nested/deeply/F", - }, - "h--story-one": Object { - "id": "h--story-one", - "importPath": "./src/H.stories.mjs", - "kind": "H", - "name": "Story One", - "parameters": Object { - "__id": "h--story-one", - "docsOnly": false, - "fileName": "./src/H.stories.mjs", - }, - "story": "Story One", - "tags": Array [ - "autodocs", - "story", - ], - "title": "H", - }, - "nested-button--story-one": Object { - "id": "nested-button--story-one", - "importPath": "./src/nested/Button.stories.ts", - "kind": "nested/Button", - "name": "Story One", - "parameters": Object { - "__id": "nested-button--story-one", - "docsOnly": false, - "fileName": "./src/nested/Button.stories.ts", - }, - "story": "Story One", - "tags": Array [ - "component-tag", - "story", - ], - "title": "nested/Button", - }, - "second-nested-g--story-one": Object { - "id": "second-nested-g--story-one", - "importPath": "./src/second-nested/G.stories.ts", - "kind": "second-nested/G", - "name": "Story One", - "parameters": Object { - "__id": "second-nested-g--story-one", - "docsOnly": false, - "fileName": "./src/second-nested/G.stories.ts", - }, - "story": "Story One", - "tags": Array [ - "story", - ], - "title": "second-nested/G", - }, - }, - "v": 3, - } - `); - }); - it('can handle simultaneous access', async () => { const mockServerChannel = { emit: jest.fn() } as any as ServerChannel; @@ -896,7 +314,7 @@ describe('useStoriesJson', () => { initializedStoryIndexGenerator: getInitializedStoryIndexGenerator(), }); - expect(use).toHaveBeenCalledTimes(2); + expect(use).toHaveBeenCalledTimes(1); const route = use.mock.calls[0][1]; const firstPromise = route(request, response); @@ -928,7 +346,7 @@ describe('useStoriesJson', () => { initializedStoryIndexGenerator: getInitializedStoryIndexGenerator(), }); - expect(use).toHaveBeenCalledTimes(2); + expect(use).toHaveBeenCalledTimes(1); const route = use.mock.calls[0][1]; await route(request, response); @@ -957,7 +375,7 @@ describe('useStoriesJson', () => { initializedStoryIndexGenerator: getInitializedStoryIndexGenerator(), }); - expect(use).toHaveBeenCalledTimes(2); + expect(use).toHaveBeenCalledTimes(1); const route = use.mock.calls[0][1]; // Don't wait for the first request here before starting the second @@ -992,7 +410,7 @@ describe('useStoriesJson', () => { initializedStoryIndexGenerator: getInitializedStoryIndexGenerator(), }); - expect(use).toHaveBeenCalledTimes(2); + expect(use).toHaveBeenCalledTimes(1); const route = use.mock.calls[0][1]; await route(request, response); @@ -1021,85 +439,3 @@ describe('useStoriesJson', () => { }); }); }); - -describe('convertToIndexV3', () => { - it('converts v7 index.json to v6 stories.json', () => { - const indexJson: StoryIndex = { - v: 4, - entries: { - 'a--docs': { - id: 'a--docs', - importPath: './src/docs2/MetaOf.mdx', - name: 'docs', - storiesImports: ['./src/A.stories.js'], - title: 'A', - type: 'docs', - }, - 'a--story-one': { - id: 'a--story-one', - importPath: './src/A.stories.js', - name: 'Story One', - title: 'A', - type: 'story', - }, - 'b--story-one': { - id: 'b--story-one', - importPath: './src/B.stories.ts', - name: 'Story One', - title: 'B', - type: 'story', - }, - }, - }; - - expect(convertToIndexV3(indexJson)).toMatchInlineSnapshot(` - Object { - "stories": Object { - "a--docs": Object { - "id": "a--docs", - "importPath": "./src/docs2/MetaOf.mdx", - "kind": "A", - "name": "docs", - "parameters": Object { - "__id": "a--docs", - "docsOnly": true, - "fileName": "./src/docs2/MetaOf.mdx", - }, - "storiesImports": Array [ - "./src/A.stories.js", - ], - "story": "docs", - "title": "A", - }, - "a--story-one": Object { - "id": "a--story-one", - "importPath": "./src/A.stories.js", - "kind": "A", - "name": "Story One", - "parameters": Object { - "__id": "a--story-one", - "docsOnly": false, - "fileName": "./src/A.stories.js", - }, - "story": "Story One", - "title": "A", - }, - "b--story-one": Object { - "id": "b--story-one", - "importPath": "./src/B.stories.ts", - "kind": "B", - "name": "Story One", - "parameters": Object { - "__id": "b--story-one", - "docsOnly": false, - "fileName": "./src/B.stories.ts", - }, - "story": "Story One", - "title": "B", - }, - }, - "v": 3, - } - `); - }); -}); diff --git a/code/lib/core-server/src/utils/stories-json.ts b/code/lib/core-server/src/utils/stories-json.ts index 7070245a6043..074c0248cb0c 100644 --- a/code/lib/core-server/src/utils/stories-json.ts +++ b/code/lib/core-server/src/utils/stories-json.ts @@ -1,7 +1,7 @@ import type { Router, Request, Response } from 'express'; import { writeJSON } from 'fs-extra'; -import type { NormalizedStoriesSpecifier, StoryIndex, StoryIndexV3 } from '@storybook/types'; +import type { NormalizedStoriesSpecifier, StoryIndex } from '@storybook/types'; import debounce from 'lodash/debounce.js'; import { STORY_INDEX_INVALIDATED } from '@storybook/core-events'; @@ -54,38 +54,4 @@ export function useStoriesJson({ res.send(err instanceof Error ? err.toString() : String(err)); } }); - - router.use('/stories.json', async (req: Request, res: Response) => { - try { - const generator = await initializedStoryIndexGenerator; - const index = convertToIndexV3(await generator.getIndex()); - res.header('Content-Type', 'application/json'); - res.send(JSON.stringify(index)); - } catch (err) { - res.status(500); - res.send(err instanceof Error ? err.toString() : String(err)); - } - }); } - -export const convertToIndexV3 = (index: StoryIndex): StoryIndexV3 => { - const { entries } = index; - const stories = Object.entries(entries).reduce((acc, [id, entry]) => { - const { type, ...rest } = entry; - acc[id] = { - ...rest, - kind: rest.title, - story: rest.name, - parameters: { - __id: rest.id, - docsOnly: type === 'docs', - fileName: rest.importPath, - }, - }; - return acc; - }, {} as StoryIndexV3['stories']); - return { - v: 3, - stories, - }; -}; diff --git a/code/lib/preview-api/template/stories/component-play.stories.ts b/code/lib/preview-api/template/stories/component-play.stories.ts index f238e7b34f3f..d4c6ed300abe 100644 --- a/code/lib/preview-api/template/stories/component-play.stories.ts +++ b/code/lib/preview-api/template/stories/component-play.stories.ts @@ -6,7 +6,9 @@ import { expect } from '@storybook/jest'; export default { component: globalThis.Components.Pre, play: async ({ canvasElement, name }: PlayFunctionContext) => { - await expect(JSON.parse(within(canvasElement).getByTestId('pre').innerText)).toEqual({ + await expect( + JSON.parse(within(canvasElement as HTMLPreElement).getByTestId('pre').innerText) + ).toEqual({ name, }); }, diff --git a/code/lib/react-dom-shim/src/preset.ts b/code/lib/react-dom-shim/src/preset.ts index 7c7f18bfb29a..63b2889ba93b 100644 --- a/code/lib/react-dom-shim/src/preset.ts +++ b/code/lib/react-dom-shim/src/preset.ts @@ -1,14 +1,31 @@ import type { Options } from '@storybook/types'; -// @ts-expect-error react-dom doesn't have this in export maps in v16, messing up TS -import { version } from 'react-dom/package.json'; +import { join, dirname } from 'path'; +import { readFile } from 'fs/promises'; -export const webpackFinal = async (config: any, options: Options) => { +/** + * Get react-dom version from the resolvedReact preset, which points to either + * a root react-dom dependency or the react-dom dependency shipped with addon-docs + */ +const getIsReactVersion18 = async (options: Options) => { const { legacyRootApi } = (await options.presets.apply<{ legacyRootApi?: boolean } | null>('frameworkOptions')) || {}; - const isReact18 = version.startsWith('18') || version.startsWith('0.0.0'); - const useReact17 = legacyRootApi ?? !isReact18; - if (!useReact17) return config; + if (legacyRootApi) { + return false; + } + + const resolvedReact = await options.presets.apply<{ reactDom?: string }>('resolvedReact', {}); + const reactDom = resolvedReact.reactDom || dirname(require.resolve('react-dom/package.json')); + + const { version } = JSON.parse(await readFile(join(reactDom, 'package.json'), 'utf-8')); + return version.startsWith('18') || version.startsWith('0.0.0'); +}; + +export const webpackFinal = async (config: any, options: Options) => { + const isReactVersion18 = await getIsReactVersion18(options); + if (isReactVersion18) { + return config; + } return { ...config, @@ -23,12 +40,10 @@ export const webpackFinal = async (config: any, options: Options) => { }; export const viteFinal = async (config: any, options: Options) => { - const { legacyRootApi } = - (await options.presets.apply<{ legacyRootApi?: boolean } | null>('frameworkOptions')) || {}; - - const isReact18 = version.startsWith('18') || version.startsWith('0.0.0'); - const useReact17 = legacyRootApi || !isReact18; - if (!useReact17) return config; + const isReactVersion18 = await getIsReactVersion18(options); + if (isReactVersion18) { + return config; + } const alias = Array.isArray(config.resolve?.alias) ? config.resolve.alias.concat({ diff --git a/code/lib/theming/package.json b/code/lib/theming/package.json index 1d3e9f76a650..5b80d0565fa6 100644 --- a/code/lib/theming/package.json +++ b/code/lib/theming/package.json @@ -49,16 +49,16 @@ "prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", "@storybook/client-logger": "workspace:*", "@storybook/global": "^5.0.0", "memoizerific": "^1.11.3" }, "devDependencies": { - "@emotion/cache": "^11.10.7", - "@emotion/is-prop-valid": "^1.2.0", - "@emotion/react": "^11.10.4", - "@emotion/styled": "^11.10.4", + "@emotion/cache": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", "@types/fs-extra": "^11.0.1", "@types/node": "^18.0.0", "deep-object-diff": "^1.1.0", diff --git a/code/lib/theming/src/index.ts b/code/lib/theming/src/index.ts index 9fd7bec25143..fe048aa0f2dd 100644 --- a/code/lib/theming/src/index.ts +++ b/code/lib/theming/src/index.ts @@ -1,6 +1,9 @@ // eslint-disable-next-line @typescript-eslint/triple-slash-reference /// -// eslint-disable-next-line @typescript-eslint/triple-slash-reference + +import type { FunctionInterpolation, Interpolation } from '@emotion/react'; +import type { StorybookTheme } from './types'; + /// export { default as styled } from '@emotion/styled'; @@ -20,6 +23,13 @@ export { } from '@emotion/react'; export type { CSSObject, Keyframes } from '@emotion/react'; +type FunctionInterpolationEnhanced = FunctionInterpolation; +type InterpolationEnhanced = Interpolation; +export type { + FunctionInterpolationEnhanced as FunctionInterpolation, + InterpolationEnhanced as Interpolation, +}; + export * from './base'; export * from './types'; diff --git a/code/package.json b/code/package.json index c79f213d3c18..14beb9dab576 100644 --- a/code/package.json +++ b/code/package.json @@ -96,7 +96,7 @@ "@babel/preset-react": "^7.22.15", "@babel/preset-typescript": "^7.23.2", "@babel/runtime": "^7.23.2", - "@emotion/jest": "^11.10.0", + "@emotion/jest": "^11.11.0", "@jest/globals": "^29.3.1", "@nx/workspace": "17.0.2", "@playwright/test": "1.36.0", @@ -248,7 +248,7 @@ "wait-on": "^7.0.1" }, "devDependencies": { - "@chromaui/addon-visual-tests": "^0.0.114" + "@chromaui/addon-visual-tests": "^0.0.124" }, "dependenciesMeta": { "ejs": { @@ -316,5 +316,6 @@ "Dependency Upgrades" ] ] - } + }, + "deferredNextVersion": "8.0.0-alpha.4" } diff --git a/code/renderers/react/src/docs/jsxDecorator.test.tsx b/code/renderers/react/src/docs/jsxDecorator.test.tsx index a1206a028c06..a0e29407262a 100644 --- a/code/renderers/react/src/docs/jsxDecorator.test.tsx +++ b/code/renderers/react/src/docs/jsxDecorator.test.tsx @@ -1,6 +1,6 @@ /* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */ import type { FC, PropsWithChildren } from 'react'; -import React, { createElement, Profiler } from 'react'; +import React, { StrictMode, createElement, Profiler } from 'react'; import PropTypes from 'prop-types'; import { addons, useEffect } from '@storybook/preview-api'; import { SNIPPET_RENDERED } from '@storybook/docs-tools'; @@ -155,6 +155,40 @@ describe('renderJsx', () => { `); }); + it('StrictMode', () => { + function StrictModeComponent(props: any) { + return ( + +
{props.children}
+
+ ); + } + + expect(renderJsx(createElement(StrictModeComponent, {}, 'I am StrictMode'), {})) + .toMatchInlineSnapshot(` + + I am StrictMode + + `); + }); + + it('Suspense', () => { + function SuspenseComponent(props: any) { + return ( + +
{props.children}
+
+ ); + } + + expect(renderJsx(createElement(SuspenseComponent, {}, 'I am Suspense'), {})) + .toMatchInlineSnapshot(` + + I am Suspense + + `); + }); + it('should not add default props to string if the prop value has not changed', () => { const Container = ({ className, children }: { className: string; children: string }) => { return
{children}
; diff --git a/code/renderers/react/src/docs/jsxDecorator.tsx b/code/renderers/react/src/docs/jsxDecorator.tsx index a3b56f73d6b1..e43702daf02f 100644 --- a/code/renderers/react/src/docs/jsxDecorator.tsx +++ b/code/renderers/react/src/docs/jsxDecorator.tsx @@ -11,8 +11,6 @@ import { logger } from '@storybook/client-logger'; import type { ReactRenderer } from '../types'; -import { isMemo, isForwardRef } from './lib'; - // Recursively remove "_owner" property from elements to avoid crash on docs page when passing components as an array prop (#17482) // Note: It may be better to use this function only in development environment. function simplifyNodeForStringify(node: ReactNode): ReactNode { @@ -56,7 +54,7 @@ export const renderJsx = (code: React.ReactElement, options: JSXOptions) => { const Type = renderedJSX.type; // @ts-expect-error (Converted from ts-ignore) - for (let i = 0; i < options.skip; i += 1) { + for (let i = 0; i < options?.skip; i += 1) { if (typeof renderedJSX === 'undefined') { logger.warn('Cannot skip undefined element'); return null; @@ -80,21 +78,25 @@ export const renderJsx = (code: React.ReactElement, options: JSXOptions) => { } } - const displayNameDefaults = - typeof options.displayName === 'string' - ? { showFunctions: true, displayName: () => options.displayName } - : { - // To get exotic component names resolving properly - displayName: (el: any): string => - el.type.displayName || - (el.type === Symbol.for('react.profiler') ? 'Profiler' : null) || - getDocgenSection(el.type, 'displayName') || - (el.type.name !== '_default' ? el.type.name : null) || - (typeof el.type === 'function' ? 'No Display Name' : null) || - (isForwardRef(el.type) ? el.type.render.name : null) || - (isMemo(el.type) ? el.type.type.name : null) || - el.type, - }; + let displayNameDefaults; + + if (typeof options?.displayName === 'string') { + displayNameDefaults = { showFunctions: true, displayName: () => options.displayName }; + /** + * add `renderedJSX?.type`to handle this case: + * + * https://github.com/zhyd1997/storybook/blob/20863a75ba4026d7eba6b288991a2cf091d4dfff/code/renderers/react/template/stories/errors.stories.tsx#L14 + * + * or it show the error message when run `yarn build-storybook --quiet`: + * + * Cannot read properties of undefined (reading '__docgenInfo'). + */ + } else if (renderedJSX?.type && getDocgenSection(renderedJSX.type, 'displayName')) { + displayNameDefaults = { + // To get exotic component names resolving properly + displayName: (el: any): string => getDocgenSection(el.type, 'displayName'), + }; + } const filterDefaults = { filterProps: (value: any, key: string): boolean => value !== undefined, diff --git a/code/renderers/react/src/preset.ts b/code/renderers/react/src/preset.ts index ebf8a18201d8..e9a5ac13ebf7 100644 --- a/code/renderers/react/src/preset.ts +++ b/code/renderers/react/src/preset.ts @@ -1,6 +1,6 @@ import type { PresetProperty } from '@storybook/types'; -import { join } from 'path'; +import { dirname, join } from 'path'; export const addons: PresetProperty<'addons'> = [ require.resolve('@storybook/react-dom-shim/dist/preset'), @@ -19,3 +19,25 @@ export const previewAnnotations: PresetProperty<'previewAnnotations'> = async ( .concat([join(__dirname, 'entry-preview.mjs')]) .concat(docsEnabled ? [join(__dirname, 'entry-preview-docs.mjs')] : []); }; + +/** + * Try to resolve react and react-dom from the root node_modules of the project + * addon-docs uses this to alias react and react-dom to the project's version when possible + * If the user doesn't have an explicit dependency on react this will return the existing values + * Which will be the versions shipped with addon-docs + * + * We do the exact same thing in the common preset, but that will fail in Yarn PnP because + * @storybook/core-server doesn't have a peer dependency on react + * This will make @storybook/react projects work in Yarn PnP + */ +export const resolvedReact = async (existing: any) => { + try { + return { + ...existing, + react: dirname(require.resolve('react/package.json')), + reactDom: dirname(require.resolve('react-dom/package.json')), + }; + } catch (e) { + return existing; + } +}; diff --git a/code/ui/blocks/src/components/ArgsTable/ArgJsDoc.tsx b/code/ui/blocks/src/components/ArgsTable/ArgJsDoc.tsx index b40b30306c2d..76bac5490d0c 100644 --- a/code/ui/blocks/src/components/ArgsTable/ArgJsDoc.tsx +++ b/code/ui/blocks/src/components/ArgsTable/ArgJsDoc.tsx @@ -1,5 +1,6 @@ import type { FC } from 'react'; import React from 'react'; +import type { CSSObject } from '@storybook/theming'; import { styled } from '@storybook/theming'; import { codeCommon } from '@storybook/components'; import type { JsDocTags } from './types'; @@ -53,7 +54,7 @@ export const Table = styled.table(({ theme }) => ({ border: 'none', }, - code: codeCommon({ theme }), + code: codeCommon({ theme }) as CSSObject, div: { span: { diff --git a/code/ui/blocks/src/components/ArgsTable/ArgRow.tsx b/code/ui/blocks/src/components/ArgsTable/ArgRow.tsx index d6f02f4dc2a7..d6e2c73ad905 100644 --- a/code/ui/blocks/src/components/ArgsTable/ArgRow.tsx +++ b/code/ui/blocks/src/components/ArgsTable/ArgRow.tsx @@ -2,6 +2,7 @@ import type { FC } from 'react'; import React, { useState } from 'react'; import Markdown from 'markdown-to-jsx'; import { transparentize } from 'polished'; +import type { CSSObject } from '@storybook/theming'; import { styled } from '@storybook/theming'; import { codeCommon } from '@storybook/components'; import type { ArgType, Args, TableAnnotation } from './types'; @@ -39,10 +40,10 @@ const Description = styled.div(({ theme }) => ({ }, code: { - ...codeCommon({ theme }), + ...(codeCommon({ theme }) as CSSObject), fontSize: 12, fontFamily: theme.typography.fonts.mono, - }, + } as CSSObject, '& code': { margin: 0, diff --git a/code/ui/blocks/src/components/ColorPalette.tsx b/code/ui/blocks/src/components/ColorPalette.tsx index 4bf8d3e91401..98b171d0b05f 100644 --- a/code/ui/blocks/src/components/ColorPalette.tsx +++ b/code/ui/blocks/src/components/ColorPalette.tsx @@ -164,14 +164,21 @@ function renderSwatchSpecimen(colors: Colors) { ); } + + const swatchElements = []; + const labelElements = []; + + // eslint-disable-next-line no-restricted-syntax, guard-for-in + for (const colorKey in colors) { + const colorValue = colors[colorKey]; + swatchElements.push(renderSwatch(colorValue, swatchElements.length)); + labelElements.push(renderSwatchLabel(colorKey, labelElements.length, colorValue)); + } + return ( - - {Object.values(colors).map((color, index) => renderSwatch(color, index))} - - - {Object.keys(colors).map((color, index) => renderSwatchLabel(color, index, colors[color]))} - + {swatchElements} + {labelElements} ); } diff --git a/code/ui/blocks/src/components/Title.tsx b/code/ui/blocks/src/components/Title.tsx index 39a276159941..4a1e45aad1c6 100644 --- a/code/ui/blocks/src/components/Title.tsx +++ b/code/ui/blocks/src/components/Title.tsx @@ -1,10 +1,9 @@ -import type { Theme } from '@storybook/theming'; import { styled } from '@storybook/theming'; import { withReset } from '@storybook/components'; const breakpoint = 600; -export const Title = styled.h1(withReset, ({ theme }: { theme: Theme }) => ({ +export const Title = styled.h1(withReset, ({ theme }) => ({ color: theme.color.defaultText, fontSize: theme.typography.size.m3, fontWeight: theme.typography.weight.bold, diff --git a/code/ui/blocks/src/controls/options/Select.tsx b/code/ui/blocks/src/controls/options/Select.tsx index b05d58a4a3a7..e2f9835a7c47 100644 --- a/code/ui/blocks/src/controls/options/Select.tsx +++ b/code/ui/blocks/src/controls/options/Select.tsx @@ -23,9 +23,7 @@ const styleResets: CSSObject = { position: 'relative', }; -const OptionsSelect = styled.select(({ theme }) => ({ - ...styleResets, - +const OptionsSelect = styled.select(styleResets, ({ theme }) => ({ boxSizing: 'border-box', position: 'relative', padding: '6px 10px', diff --git a/code/ui/components/package.json b/code/ui/components/package.json index 1cab757ae8ed..e3c856d3e110 100644 --- a/code/ui/components/package.json +++ b/code/ui/components/package.json @@ -67,7 +67,6 @@ "@storybook/theming": "workspace:*", "@storybook/types": "workspace:*", "memoizerific": "^1.11.3", - "use-resize-observer": "^9.1.0", "util-deprecate": "^1.0.2" }, "devDependencies": { @@ -82,7 +81,8 @@ "react-syntax-highlighter": "^15.4.5", "react-textarea-autosize": "^8.3.0", "ts-dedent": "^2.0.0", - "typescript": "^5.3.2" + "typescript": "^5.3.2", + "use-resize-observer": "^9.1.0" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0", @@ -94,8 +94,7 @@ "bundler": { "entries": [ "./src/index.ts" - ], - "platform": "neutral" + ] }, "gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae17" } diff --git a/code/ui/components/src/components/form/input/input.tsx b/code/ui/components/src/components/form/input/input.tsx index 15f647c7cdb2..cf143915b426 100644 --- a/code/ui/components/src/components/form/input/input.tsx +++ b/code/ui/components/src/components/form/input/input.tsx @@ -1,11 +1,30 @@ -import type { HTMLProps, SelectHTMLAttributes } from 'react'; +import type { FC, HTMLProps, SelectHTMLAttributes } from 'react'; import React, { forwardRef } from 'react'; -import type { Theme, CSSObject } from '@storybook/theming'; +import type { CSSObject, FunctionInterpolation } from '@storybook/theming'; import { styled } from '@storybook/theming'; -import type { TextareaAutosizeProps } from 'react-textarea-autosize'; import TextareaAutoResize from 'react-textarea-autosize'; +/** + * these types are copied from `react-textarea-autosize`. + * I copied them because of https://github.com/storybookjs/storybook/issues/18734 + * Maybe there's some bug in `tsup` or `react-textarea-autosize`? + */ +type TextareaPropsRaw = React.TextareaHTMLAttributes; +type Style = Omit, 'maxHeight' | 'minHeight'> & { + height?: number; +}; +type TextareaHeightChangeMeta = { + rowHeight: number; +}; +export interface TextareaAutosizeProps extends Omit { + maxRows?: number; + minRows?: number; + onHeightChange?: (height: number, meta: TextareaHeightChangeMeta) => void; + cacheMeasurements?: boolean; + style?: Style; +} + const styleResets: CSSObject = { // resets appearance: 'none', @@ -19,8 +38,8 @@ const styleResets: CSSObject = { position: 'relative', }; -const styles = ({ theme }: { theme: Theme }): CSSObject => ({ - ...styleResets, +const styles: FunctionInterpolation = ({ theme }) => ({ + ...(styleResets as any), transition: 'box-shadow 200ms ease-out, opacity 200ms ease-out', color: theme.input.color || 'inherit', @@ -58,7 +77,7 @@ export type Sizes = '100%' | 'flex' | 'auto'; export type Alignments = 'end' | 'center' | 'start'; export type ValidationStates = 'valid' | 'error' | 'warn'; -const sizes = ({ size }: { size?: Sizes }): CSSObject => { +const sizes: FunctionInterpolation<{ size?: Sizes }> = ({ size }) => { switch (size) { case '100%': { return { width: '100%' }; @@ -72,14 +91,12 @@ const sizes = ({ size }: { size?: Sizes }): CSSObject => { } } }; -const alignment = ({ - align, -}: { +const alignment: FunctionInterpolation<{ size?: Sizes; align?: Alignments; valid?: ValidationStates; height?: number; -}): CSSObject => { +}> = ({ align }) => { switch (align) { case 'end': { return { textAlign: 'right' }; @@ -93,7 +110,7 @@ const alignment = ({ } } }; -const validation = ({ valid, theme }: { valid: ValidationStates; theme: Theme }): CSSObject => { +const validation: FunctionInterpolation<{ valid: ValidationStates }> = ({ valid, theme }) => { switch (valid) { case 'valid': { return { boxShadow: `${theme.color.positive} 0 0 0 1px inset !important` }; @@ -189,8 +206,8 @@ type TextareaProps = Omit< align?: Alignments; valid?: ValidationStates; height?: number; -}; -export const Textarea = Object.assign( +} & React.RefAttributes; +export const Textarea: FC = Object.assign( styled( forwardRef(function Textarea({ size, valid, align, ...props }, ref) { return ; diff --git a/code/ui/components/src/components/typography/elements/DL.tsx b/code/ui/components/src/components/typography/elements/DL.tsx index 07c40986d641..138ca41bdfe3 100644 --- a/code/ui/components/src/components/typography/elements/DL.tsx +++ b/code/ui/components/src/components/typography/elements/DL.tsx @@ -1,8 +1,7 @@ import { styled } from '@storybook/theming'; import { withReset, withMargin } from '../lib/common'; -export const DL = styled.dl(withReset, { - ...withMargin, +export const DL = styled.dl(withReset, withMargin, { padding: 0, '& dt': { fontSize: '14px', diff --git a/code/ui/components/src/components/typography/elements/LI.tsx b/code/ui/components/src/components/typography/elements/LI.tsx index a44704043248..4dc7090bc6e9 100644 --- a/code/ui/components/src/components/typography/elements/LI.tsx +++ b/code/ui/components/src/components/typography/elements/LI.tsx @@ -1,3 +1,4 @@ +import type { CSSObject } from '@storybook/theming'; import { styled } from '@storybook/theming'; import { withReset, codeCommon } from '../lib/common'; @@ -12,5 +13,5 @@ export const LI = styled.li(withReset, ({ theme }) => ({ marginTop: '.25em', marginBottom: 0, }, - '& code': codeCommon({ theme }), + '& code': codeCommon({ theme }) as CSSObject, })); diff --git a/code/ui/components/src/components/typography/elements/OL.tsx b/code/ui/components/src/components/typography/elements/OL.tsx index 7f2da5b57082..e1e0ec7ce462 100644 --- a/code/ui/components/src/components/typography/elements/OL.tsx +++ b/code/ui/components/src/components/typography/elements/OL.tsx @@ -1,8 +1,8 @@ import { styled } from '@storybook/theming'; -import type { CSSObject } from '@storybook/theming'; +import type { Interpolation } from '@storybook/theming'; import { withReset, withMargin } from '../lib/common'; -const listCommon: CSSObject = { +const listCommon: Interpolation = { paddingLeft: 30, '& :first-of-type': { marginTop: 0, @@ -12,4 +12,6 @@ const listCommon: CSSObject = { }, }; -export const OL = styled.ol(withReset, withMargin, { ...listCommon, listStyle: 'decimal' }); +export const OL = styled.ol(withReset, withMargin, listCommon, { + listStyle: 'decimal', +}); diff --git a/code/ui/components/src/components/typography/elements/P.tsx b/code/ui/components/src/components/typography/elements/P.tsx index f6e4ab723114..86624fbe1ce9 100644 --- a/code/ui/components/src/components/typography/elements/P.tsx +++ b/code/ui/components/src/components/typography/elements/P.tsx @@ -1,3 +1,4 @@ +import type { CSSObject } from '@storybook/theming'; import { styled } from '@storybook/theming'; import { withReset, withMargin, codeCommon } from '../lib/common'; @@ -5,5 +6,5 @@ export const P = styled.p(withReset, withMargin, ({ theme }) => ({ fontSize: theme.typography.size.s2, lineHeight: '24px', color: theme.color.defaultText, - '& code': codeCommon({ theme }), + '& code': codeCommon({ theme }) as CSSObject, })); diff --git a/code/ui/components/src/components/typography/elements/UL.tsx b/code/ui/components/src/components/typography/elements/UL.tsx index 9d4e72622a92..08ff3150f1de 100644 --- a/code/ui/components/src/components/typography/elements/UL.tsx +++ b/code/ui/components/src/components/typography/elements/UL.tsx @@ -1,8 +1,8 @@ import { styled } from '@storybook/theming'; -import type { CSSObject } from '@storybook/theming'; +import type { Interpolation } from '@storybook/theming'; import { withReset, withMargin } from '../lib/common'; -const listCommon: CSSObject = { +const listCommon: Interpolation = { paddingLeft: 30, '& :first-of-type': { marginTop: 0, @@ -12,4 +12,4 @@ const listCommon: CSSObject = { }, }; -export const UL = styled.ul(withReset, withMargin, { ...listCommon, listStyle: 'disc' }); +export const UL = styled.ul(withReset, withMargin, listCommon, { listStyle: 'disc' }); diff --git a/code/ui/components/src/components/typography/lib/common.tsx b/code/ui/components/src/components/typography/lib/common.tsx index dcd6f9adc573..6f7bf0158929 100644 --- a/code/ui/components/src/components/typography/lib/common.tsx +++ b/code/ui/components/src/components/typography/lib/common.tsx @@ -1,7 +1,7 @@ import { transparentize } from 'polished'; -import type { CSSObject, Theme } from '@storybook/theming'; +import type { CSSObject, FunctionInterpolation } from '@storybook/theming'; -export const headerCommon = ({ theme }: { theme: Theme }): CSSObject => ({ +export const headerCommon: FunctionInterpolation = ({ theme }) => ({ margin: '20px 0 8px', padding: 0, cursor: 'text', @@ -19,7 +19,7 @@ export const headerCommon = ({ theme }: { theme: Theme }): CSSObject => ({ }, }); -export const codeCommon = ({ theme }: { theme: Theme }): CSSObject => ({ +export const codeCommon: FunctionInterpolation = ({ theme }) => ({ lineHeight: 1, margin: '0 2px', padding: '3px 5px', @@ -39,7 +39,7 @@ export const codeCommon = ({ theme }: { theme: Theme }): CSSObject => ({ backgroundColor: theme.base === 'light' ? theme.color.lighter : theme.color.border, }); -export const withReset = ({ theme }: { theme: Theme }): CSSObject => ({ +export const withReset: FunctionInterpolation = ({ theme }) => ({ fontFamily: theme.typography.fonts.base, fontSize: theme.typography.size.s3, margin: 0, diff --git a/code/yarn.lock b/code/yarn.lock index fe0b388fcdd4..1f9ceed19a5a 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -366,7 +366,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.23.5": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.16.0, @babel/code-frame@npm:^7.16.7, @babel/code-frame@npm:^7.22.13": version: 7.23.5 resolution: "@babel/code-frame@npm:7.23.5" dependencies: @@ -376,7 +376,7 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.2, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.2, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": version: 7.23.5 resolution: "@babel/compat-data@npm:7.23.5" checksum: 081278ed46131a890ad566a59c61600a5f9557bd8ee5e535890c8548192532ea92590742fd74bd9db83d74c669ef8a04a7e1c85cdea27f960233e3b83c3a957c @@ -384,29 +384,29 @@ __metadata: linkType: hard "@babel/core@npm:^7.23.2": - version: 7.23.5 - resolution: "@babel/core@npm:7.23.5" + version: 7.23.2 + resolution: "@babel/core@npm:7.23.2" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.23.5" - "@babel/generator": "npm:^7.23.5" + "@babel/code-frame": "npm:^7.22.13" + "@babel/generator": "npm:^7.23.0" "@babel/helper-compilation-targets": "npm:^7.22.15" - "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helpers": "npm:^7.23.5" - "@babel/parser": "npm:^7.23.5" + "@babel/helper-module-transforms": "npm:^7.23.0" + "@babel/helpers": "npm:^7.23.2" + "@babel/parser": "npm:^7.23.0" "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.5" - "@babel/types": "npm:^7.23.5" + "@babel/traverse": "npm:^7.23.2" + "@babel/types": "npm:^7.23.0" 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: 311a512a870ee330a3f9a7ea89e5df790b2b5af0b1bd98b10b4edc0de2ac440f0df4d69ea2c0ee38a4b89041b9a495802741d93603be7d4fd834ec8bb6970bd2 + checksum: 14ad6e0a3ac0085dc008e7fb0c8513f0a3e39f2ab883a964a89ef1311338d49cf085c94cb6165c07fdec0fdcc6e865ce4811253c479f9f45ac375226dfe3ad3b languageName: node linkType: hard -"@babel/generator@npm:7.23.0": +"@babel/generator@npm:7.23.0, @babel/generator@npm:^7.12.11, @babel/generator@npm:^7.23.0, @babel/generator@npm:^7.7.2": version: 7.23.0 resolution: "@babel/generator@npm:7.23.0" dependencies: @@ -418,18 +418,6 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.23.0, @babel/generator@npm:^7.23.5, @babel/generator@npm:^7.7.2": - version: 7.23.5 - resolution: "@babel/generator@npm:7.23.5" - dependencies: - "@babel/types": "npm:^7.23.5" - "@jridgewell/gen-mapping": "npm:^0.3.2" - "@jridgewell/trace-mapping": "npm:^0.3.17" - jsesc: "npm:^2.5.1" - checksum: 14c6e874f796c4368e919bed6003bb0adc3ce837760b08f9e646d20aeb5ae7d309723ce6e4f06bcb4a2b5753145446c8e4425851380f695e40e71e1760f49e7b - languageName: node - linkType: hard - "@babel/helper-annotate-as-pure@npm:7.22.5, @babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" @@ -448,16 +436,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.12.0, @babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6": - version: 7.22.15 - resolution: "@babel/helper-compilation-targets@npm:7.22.15" +"@babel/helper-compilation-targets@npm:^7.12.0, @babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helper-compilation-targets@npm:7.23.6" dependencies: - "@babel/compat-data": "npm:^7.22.9" - "@babel/helper-validator-option": "npm:^7.22.15" - browserslist: "npm:^4.21.9" + "@babel/compat-data": "npm:^7.23.5" + "@babel/helper-validator-option": "npm:^7.23.5" + browserslist: "npm:^4.22.2" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 45b9286861296e890f674a3abb199efea14a962a27d9b8adeb44970a9fd5c54e73a9e342e8414d2851cf4f98d5994537352fbce7b05ade32e9849bbd327f9ff1 + checksum: ba38506d11185f48b79abf439462ece271d3eead1673dd8814519c8c903c708523428806f05f2ec5efd0c56e4e278698fac967e5a4b5ee842c32415da54bc6fa languageName: node linkType: hard @@ -552,7 +540,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.23.3": +"@babel/helper-module-transforms@npm:^7.23.0, @babel/helper-module-transforms@npm:^7.23.3": version: 7.23.3 resolution: "@babel/helper-module-transforms@npm:7.23.3" dependencies: @@ -668,14 +656,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/helpers@npm:7.23.5" +"@babel/helpers@npm:^7.23.2": + version: 7.23.2 + resolution: "@babel/helpers@npm:7.23.2" dependencies: "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.5" - "@babel/types": "npm:^7.23.5" - checksum: a37e2728eb4378a4888e5d614e28de7dd79b55ac8acbecd0e5c761273e2a02a8f33b34b1932d9069db55417ace2937cbf8ec37c42f1030ce6d228857d7ccaa4f + "@babel/traverse": "npm:^7.23.2" + "@babel/types": "npm:^7.23.0" + checksum: 3a6a939c5277a27486e7c626812f0643b35d1c053ac2eb66911f5ae6c0a4e4bcdd40750eba36b766b0ee8a753484287f50ae56232a5f8f2947116723e44b9e35 languageName: node linkType: hard @@ -690,12 +678,12 @@ __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.21.4, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.3, @babel/parser@npm:^7.23.5, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.7.0, @babel/parser@npm:^7.9.6": - version: 7.23.5 - resolution: "@babel/parser@npm:7.23.5" +"@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.21.4, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.5, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.7.0, @babel/parser@npm:^7.9.6": + version: 7.23.6 + resolution: "@babel/parser@npm:7.23.6" bin: parser: ./bin/babel-parser.js - checksum: 3356aa90d7bafb4e2c7310e7c2c3d443c4be4db74913f088d3d577a1eb914ea4188e05fd50a47ce907a27b755c4400c4e3cbeee73dbeb37761f6ca85954f5a20 + checksum: 6f76cd5ccae1fa9bcab3525b0865c6222e9c1d22f87abc69f28c5c7b2c8816a13361f5bd06bddbd5faf903f7320a8feba02545c981468acec45d12a03db7755e languageName: node linkType: hard @@ -748,17 +736,17 @@ __metadata: linkType: hard "@babel/plugin-proposal-decorators@npm:^7.13.5": - version: 7.23.5 - resolution: "@babel/plugin-proposal-decorators@npm:7.23.5" + version: 7.23.0 + resolution: "@babel/plugin-proposal-decorators@npm:7.23.0" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.23.5" + "@babel/helper-create-class-features-plugin": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-replace-supers": "npm:^7.22.20" "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/plugin-syntax-decorators": "npm:^7.23.3" + "@babel/plugin-syntax-decorators": "npm:^7.22.10" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f1fffa9f24668e3a2f78ee4c6ca1b8e65b46f69d8fbe77be46dc286b0ac02336fbc77eeaffadcec1b08019e241547cfbfee9a494aeaf6bb6b4eeac1149be5994 + checksum: 983e7113f9ca3b2ae632869f71accec48cb652d68840697c3977071d44879657ca6b4427ed02e76e448e385d0feca9bd3d40edfaf1530c6c6c25fe8b97d46689 languageName: node linkType: hard @@ -866,14 +854,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-decorators@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-syntax-decorators@npm:7.23.3" +"@babel/plugin-syntax-decorators@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/plugin-syntax-decorators@npm:7.22.10" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 86299c050b0a5b6565d6b9e3529f2d6dca4780215ab88050bdd0ae9a576868a17f9cd1e140857089cc5d06bdfeb89f0711285f99481b82316896a552a62e449f + checksum: cf606ef13ed98b3adf560ede27a873c0ab37e884c762a6f15493c881f5a78b67f24dcdd5c70e8cd8f39dbe4b23475cb98619729812f29feb2dcc241130195e7c languageName: node linkType: hard @@ -899,14 +887,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-flow@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-syntax-flow@npm:7.23.3" +"@babel/plugin-syntax-flow@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-syntax-flow@npm:7.22.5" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8a5e1e8b6a3728a2c8fe6d70c09a43642e737d9c0485e1b041cd3a6021ef05376ec3c9137be3b118c622ba09b5770d26fdc525473f8d06d4ab9e46de2783dd0a + checksum: 07afc7df02141597968532bfbfa3f6c0ad21a2bdd885d0e5e035dcf60fdf35f0995631c9750b464e1a6f2feea14160a82787f914e88e8f7115dc99f09853e43e languageName: node linkType: hard @@ -1289,26 +1277,27 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-flow-strip-types@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-flow-strip-types@npm:7.23.3" +"@babel/plugin-transform-flow-strip-types@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.22.5" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/plugin-syntax-flow": "npm:^7.23.3" + "@babel/plugin-syntax-flow": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9ab627f9668fc1f95564b26bffd6706f86205960d9ccc168236752fbef65dbe10aa0ce74faae12f48bb3b72ec7f38ef2a78b4874c222c1e85754e981639f3b33 + checksum: 5949a8e5214e3fc65d31dab0551423cea9d9eef35faa5d0004707ba7347baf96166aa400907ce7498f754db4e1e9d039ca434a508546b0dc9fdae9a42e814c1a languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.22.15, @babel/plugin-transform-for-of@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-for-of@npm:7.23.3" +"@babel/plugin-transform-for-of@npm:^7.22.15, @babel/plugin-transform-for-of@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/plugin-transform-for-of@npm:7.23.6" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8a36202cfee312ba80e509c7c2131e6773524e572b4dc64a8ee95bd912634fdeb5ea91c6c7747ee30e03562d0f0d333f88ed7dbb929b36b60b8d74189189e12f + checksum: 46681b6ab10f3ca2d961f50d4096b62ab5d551e1adad84e64be1ee23e72eb2f26a1e30e617e853c74f1349fffe4af68d33921a128543b6f24b6d46c09a3e2aec languageName: node linkType: hard @@ -1470,13 +1459,13 @@ __metadata: linkType: hard "@babel/plugin-transform-object-assign@npm:^7.8.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-object-assign@npm:7.23.3" + version: 7.22.5 + resolution: "@babel/plugin-transform-object-assign@npm:7.22.5" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 44467e8bd8eaae3fe54834dac9d1647d2b2598529a90722281832f6905d485c05e37b5fbd6fd7660c5d2e32e6f005824cda8a9321ddac2e2d619536fafc9783c + checksum: c80ca956ccc45c68a6f35e8aea80e08c0a653e4baf243727d4258f242d312d71be20e3fad35a1f2cd9d58b30dcbb5cdf5f8d6c6614a3f8c6079d90f9b1dadee6 languageName: node linkType: hard @@ -1603,24 +1592,24 @@ __metadata: linkType: hard "@babel/plugin-transform-react-jsx-self@npm:^7.18.6": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.23.3" + version: 7.22.5 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.22.5" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6b586508fc58998483d4ee93a7e784c4f4d2350e2633739cf1990b7ad172e13906f72382fdaf7f07b4e3c7e7555342634d392bdeb1a079bb64762c6368ca9a32 + checksum: 263091bdede1f448cb2c59b84eb69972c15d3f022c929a75337bd20d8b65551ac38cd26dad1946eaa93289643506b10ddaea3445a28cb8fca5a773a22a0df90b languageName: node linkType: hard "@babel/plugin-transform-react-jsx-source@npm:^7.19.6": - version: 7.23.3 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.23.3" + version: 7.22.5 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.22.5" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a3aad7cf738e9bfaddc26cdbb83bb9684c2e689d26fb0793d772af0c8da0cd25bb02523d192fbc6946c32143e56b472c1d33fa82466b3f2d3346e1ce8fe83cf6 + checksum: defc9debb76b4295e3617ef7795a0533dbbecef6f51bf5ba4bfc162df892a84fd39e14d5f1b9a5aad7b09b97074fef4c6756f9d2036eef5a9874acabe198f75a languageName: node linkType: hard @@ -1691,8 +1680,8 @@ __metadata: linkType: hard "@babel/plugin-transform-runtime@npm:^7.13.9, @babel/plugin-transform-runtime@npm:^7.23.2": - version: 7.23.4 - resolution: "@babel/plugin-transform-runtime@npm:7.23.4" + version: 7.23.6 + resolution: "@babel/plugin-transform-runtime@npm:7.23.6" dependencies: "@babel/helper-module-imports": "npm:^7.22.15" "@babel/helper-plugin-utils": "npm:^7.22.5" @@ -1702,7 +1691,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6ac29012550cdd10b65ec43fef0c7f43904ec458c43d597f627d8f52807413e57ea94e3986dbace576d734e67c2d09be5e43e77c72567d18f8c4ac5e19844625 + checksum: 94a7ee92f073df53fd8bebf9ed391a95553716077da1c6c3a57f10f042358c938495d55e6b09b4b50544c01f03560c4770c17698e1c24817a15d3668e8231249 languageName: node linkType: hard @@ -1924,11 +1913,11 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.16.5, @babel/preset-env@npm:^7.23.2": - version: 7.23.5 - resolution: "@babel/preset-env@npm:7.23.5" + version: 7.23.6 + resolution: "@babel/preset-env@npm:7.23.6" dependencies: "@babel/compat-data": "npm:^7.23.5" - "@babel/helper-compilation-targets": "npm:^7.22.15" + "@babel/helper-compilation-targets": "npm:^7.23.6" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-validator-option": "npm:^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.23.3" @@ -1968,7 +1957,7 @@ __metadata: "@babel/plugin-transform-dynamic-import": "npm:^7.23.4" "@babel/plugin-transform-exponentiation-operator": "npm:^7.23.3" "@babel/plugin-transform-export-namespace-from": "npm:^7.23.4" - "@babel/plugin-transform-for-of": "npm:^7.23.3" + "@babel/plugin-transform-for-of": "npm:^7.23.6" "@babel/plugin-transform-function-name": "npm:^7.23.3" "@babel/plugin-transform-json-strings": "npm:^7.23.4" "@babel/plugin-transform-literals": "npm:^7.23.3" @@ -2009,20 +1998,20 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2a0e1274dec045186e131c6433659b75492583290e8d41633c616f6bff829cb2e4b2f9a57f556283a54db3bd6aa697911e56a36f607911a29b731c445a5b5a06 + checksum: 5b24d179af52f082d04b9b98cc4777e37bf31a97cef5a91d8917e996dbd75f2f743c88c40f80744cb8529355bb674619d150c0260c32d834aa4067e21d0c8962 languageName: node linkType: hard "@babel/preset-flow@npm:^7.13.13, @babel/preset-flow@npm:^7.22.15": - version: 7.23.3 - resolution: "@babel/preset-flow@npm:7.23.3" + version: 7.22.15 + resolution: "@babel/preset-flow@npm:7.22.15" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-validator-option": "npm:^7.22.15" - "@babel/plugin-transform-flow-strip-types": "npm:^7.23.3" + "@babel/plugin-transform-flow-strip-types": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1cf109925791f2af679f03289848d27596b4f27cb0ad4ee74a8dd4c1cbecc119bdef3b45cbbe12489bc9bdf61163f94c1c0bf6013cc58c325f1cc99edc01bda9 + checksum: 7eef0c84ec1889d6c4f7a67d7d1a81703420eed123a8c23f25af148eead77907f0bd701f3e729fdb37d3ddb2a373bf43938b36a9ba17f546111ddb9521466b92 languageName: node linkType: hard @@ -2093,12 +2082,12 @@ __metadata: linkType: hard "@babel/runtime-corejs3@npm:^7.10.2": - version: 7.23.5 - resolution: "@babel/runtime-corejs3@npm:7.23.5" + 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: 9bbad4ae7efea21e2c92ddee70b42ce9773a56e044cfc16267f9610b38ee531c87b465d84d39433fca93f7f567b47d5e40383e3d2cfe85dbeceea7fba8a52cc8 + checksum: 6e2c2b11779ff56c88b1f3a8742498640f7271ad4fcf9cfd24052bbb236a5e7c4c7c8d81cda751da3b4effa678736303deb78441c5752e63bfb90d6453fd870f languageName: node linkType: hard @@ -2129,12 +2118,12 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.1.2, @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.14.8, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @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.23.5 - resolution: "@babel/runtime@npm:7.23.5" +"@babel/runtime@npm:^7.1.2, @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.14.8, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @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.23.6 + resolution: "@babel/runtime@npm:7.23.6" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: ca679cc91bb7e424bc2db87bb58cc3b06ade916b9adb21fbbdc43e54cdaacb3eea201ceba2a0464b11d2eb65b9fe6a6ffcf4d7521fa52994f19be96f1af14788 + checksum: d886954e985ef8e421222f7a2848884d96a752e0020d3078b920dd104e672fdf23bcc6f51a44313a048796319f1ac9d09c2c88ec8cbb4e1f09174bcd3335b9ff languageName: node linkType: hard @@ -2158,32 +2147,32 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.23.5, @babel/traverse@npm:^7.4.5, @babel/traverse@npm:^7.7.0": - version: 7.23.5 - resolution: "@babel/traverse@npm:7.23.5" +"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.4.5, @babel/traverse@npm:^7.7.0": + version: 7.23.2 + resolution: "@babel/traverse@npm:7.23.2" dependencies: - "@babel/code-frame": "npm:^7.23.5" - "@babel/generator": "npm:^7.23.5" + "@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.5" - "@babel/types": "npm:^7.23.5" + "@babel/parser": "npm:^7.23.0" + "@babel/types": "npm:^7.23.0" debug: "npm:^4.1.0" globals: "npm:^11.1.0" - checksum: c5ea793080ca6719b0a1612198fd25e361cee1f3c14142d7a518d2a1eeb5c1d21f7eec1b26c20ea6e1ddd8ed12ab50b960ff95ffd25be353b6b46e1b54d6f825 + checksum: d096c7c4bab9262a2f658298a3c630ae4a15a10755bb257ae91d5ab3e3b2877438934859c8d34018b7727379fe6b26c4fa2efc81cf4c462a7fe00caf79fa02ff 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.21.4, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.5, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.6.1, @babel/types@npm:^7.7.0, @babel/types@npm:^7.7.2, @babel/types@npm:^7.8.3, @babel/types@npm:^7.9.6": - version: 7.23.5 - resolution: "@babel/types@npm:7.23.5" +"@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.21.4, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.6.1, @babel/types@npm:^7.7.0, @babel/types@npm:^7.7.2, @babel/types@npm:^7.8.3, @babel/types@npm:^7.9.6": + version: 7.23.6 + resolution: "@babel/types@npm:7.23.6" 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: 7dd5e2f59828ed046ad0b06b039df2524a8b728d204affb4fc08da2502b9dd3140b1356b5166515d229dc811539a8b70dcd4bc507e06d62a89f4091a38d0b0fb + checksum: 42cefce8a68bd09bb5828b4764aa5586c53c60128ac2ac012e23858e1c179347a4aac9c66fc577994fbf57595227611c5ec8270bf0cfc94ff033bbfac0550b70 languageName: node linkType: hard @@ -2201,13 +2190,13 @@ __metadata: languageName: node linkType: hard -"@chromaui/addon-visual-tests@npm:^0.0.114": - version: 0.0.114 - resolution: "@chromaui/addon-visual-tests@npm:0.0.114" +"@chromaui/addon-visual-tests@npm:^0.0.124": + version: 0.0.124 + resolution: "@chromaui/addon-visual-tests@npm:0.0.124" dependencies: "@storybook/design-system": "npm:^7.15.15" "@urql/exchange-auth": "npm:^2.1.6" - chromatic: "npm:^7.2.3" + chromatic: "npm:^9.0.0" date-fns: "npm:^2.30.0" filesize: "npm:^10.0.12" jsonfile: "npm:^6.1.0" @@ -2232,7 +2221,7 @@ __metadata: optional: true react-dom: optional: true - checksum: 786858de1712c2b807f2622da42176fe8f2ac9e05bd26afba662fabe179f78033d7dd9e23d71615554c92129b94314cf48fff977069008a15c033500261b7307 + checksum: d4ff22ca45c87f31e5799ed57e540c4669c917c099fe7284b945d2c49faccd4aec9c6d981dc33380c4c9b44e6e10942fdc0cdc29da63eb75346491da2ec346d8 languageName: node linkType: hard @@ -2378,7 +2367,7 @@ __metadata: languageName: node linkType: hard -"@emotion/cache@npm:^11.10.7, @emotion/cache@npm:^11.11.0": +"@emotion/cache@npm:^11.11.0": version: 11.11.0 resolution: "@emotion/cache@npm:11.11.0" dependencies: @@ -2408,7 +2397,7 @@ __metadata: languageName: node linkType: hard -"@emotion/is-prop-valid@npm:^1.2.0, @emotion/is-prop-valid@npm:^1.2.1": +"@emotion/is-prop-valid@npm:^1.2.1": version: 1.2.1 resolution: "@emotion/is-prop-valid@npm:1.2.1" dependencies: @@ -2417,7 +2406,7 @@ __metadata: languageName: node linkType: hard -"@emotion/jest@npm:^11.10.0": +"@emotion/jest@npm:^11.11.0": version: 11.11.0 resolution: "@emotion/jest@npm:11.11.0" dependencies: @@ -2445,7 +2434,7 @@ __metadata: languageName: node linkType: hard -"@emotion/react@npm:^11.10.4": +"@emotion/react@npm:^11.11.1": version: 11.11.1 resolution: "@emotion/react@npm:11.11.1" dependencies: @@ -2486,7 +2475,7 @@ __metadata: languageName: node linkType: hard -"@emotion/styled@npm:^11.10.4": +"@emotion/styled@npm:^11.11.0": version: 11.11.0 resolution: "@emotion/styled@npm:11.11.0" dependencies: @@ -2702,15 +2691,15 @@ __metadata: linkType: hard "@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1": - version: 4.10.0 - resolution: "@eslint-community/regexpp@npm:4.10.0" - checksum: c5f60ef1f1ea7649fa7af0e80a5a79f64b55a8a8fa5086de4727eb4c86c652aedee407a9c143b8995d2c0b2d75c1222bec9ba5d73dbfc1f314550554f0979ef4 + version: 4.9.1 + resolution: "@eslint-community/regexpp@npm:4.9.1" + checksum: d0e1bd1a37cb2cb6bbac88dfe97b62b412d4b6ea3a4bb1c4e1e503be03125063db5d80999cef9728f57b19b49979aa902ac68182bcf5f80dfce6fa9a9d34eee1 languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.3": - version: 2.1.3 - resolution: "@eslint/eslintrc@npm:2.1.3" +"@eslint/eslintrc@npm:^2.1.2": + version: 2.1.2 + resolution: "@eslint/eslintrc@npm:2.1.2" dependencies: ajv: "npm:^6.12.4" debug: "npm:^4.3.2" @@ -2721,14 +2710,14 @@ __metadata: js-yaml: "npm:^4.1.0" minimatch: "npm:^3.1.2" strip-json-comments: "npm:^3.1.1" - checksum: f4103f4346126292eb15581c5a1d12bef03410fd3719dedbdb92e1f7031d46a5a2d60de8566790445d5d4b70b75ba050876799a11f5fff8265a91ee3fa77dab0 + checksum: 00efdc3797e6f05518060522b7788e5f5aff02f13facbd0c83b176c3dee86554023283a5f68542df379c5137685d2d29745c87f62bf2406a1d38d95471f44ce6 languageName: node linkType: hard -"@eslint/js@npm:8.54.0": - version: 8.54.0 - resolution: "@eslint/js@npm:8.54.0" - checksum: d61fb4a0be6af2d8cb290121c329697664a75d6255a29926d5454fb02aeb02b87112f67fdf218d10abac42f90c570ac366126751baefc5405d0e017ed0c946c5 +"@eslint/js@npm:8.50.0": + version: 8.50.0 + resolution: "@eslint/js@npm:8.50.0" + checksum: 92cb0a823869e85f287bd172f14a6a20d7d65c3f4db886a0356a9efebfe8fe519e9ead84a5687bd18f45eca417bdcce96e3b83fe3feae8baf0f8f44d14073bae languageName: node linkType: hard @@ -3204,14 +3193,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.13": - version: 0.11.13 - resolution: "@humanwhocodes/config-array@npm:0.11.13" +"@humanwhocodes/config-array@npm:^0.11.11": + version: 0.11.11 + resolution: "@humanwhocodes/config-array@npm:0.11.11" dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.1" + "@humanwhocodes/object-schema": "npm:^1.2.1" debug: "npm:^4.1.1" minimatch: "npm:^3.0.5" - checksum: d76ca802d853366094d0e98ff0d0994117fc8eff96649cd357b15e469e428228f597cd2e929d54ab089051684949955f16ee905bb19f7b2f0446fb377157be7a + checksum: 4195f68e485f7d1a7c95cf0f126cc41f7223eeda2f1b46b893123c99b35bb76145c37d25e2ba452d54815ed69bb656c0ce9e343ffa984470c08afa6e82a4713f languageName: node linkType: hard @@ -3229,10 +3218,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.1": - version: 2.0.1 - resolution: "@humanwhocodes/object-schema@npm:2.0.1" - checksum: 9dba24e59fdb4041829d92b693aacb778add3b6f612aaa9c0774f3b650c11a378cc64f042a59da85c11dae33df456580a3c36837b953541aed6ff94294f97fac +"@humanwhocodes/object-schema@npm:^1.2.1": + version: 1.2.1 + resolution: "@humanwhocodes/object-schema@npm:1.2.1" + checksum: c3c35fdb70c04a569278351c75553e293ae339684ed75895edc79facc7276e351115786946658d78133130c0cca80e57e2203bc07f8fa7fe7980300e8deef7db languageName: node linkType: hard @@ -3628,12 +3617,12 @@ __metadata: 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.9": - version: 0.3.20 - resolution: "@jridgewell/trace-mapping@npm:0.3.20" + version: 0.3.19 + resolution: "@jridgewell/trace-mapping@npm:0.3.19" dependencies: "@jridgewell/resolve-uri": "npm:^3.1.0" "@jridgewell/sourcemap-codec": "npm:^1.4.14" - checksum: 0ea0b2675cf513ec44dc25605616a3c9b808b9832e74b5b63c44260d66b58558bba65764f81928fc1033ead911f8718dca1134049c3e7a93937faf436671df31 + checksum: 845e6c6efca621b2b85e4d13fd25c319b6e4ab1ea78d4385ff6c0f78322ea0fcdfec8ac763aa4b56e8378c96d7bef101a2638c7a1a076f7d62f6376230c940a7 languageName: node linkType: hard @@ -3659,9 +3648,9 @@ __metadata: linkType: hard "@lit-labs/ssr-dom-shim@npm:^1.0.0, @lit-labs/ssr-dom-shim@npm:^1.1.0": - version: 1.1.2 - resolution: "@lit-labs/ssr-dom-shim@npm:1.1.2" - checksum: e51c7c156317ac95cac8d534d8608ac2a9dda7441f14f73e9e66a995d277851a90315324fe74690d1169a66dce645ed9674a8f5a9a467d183156de1c87549b23 + version: 1.1.1 + resolution: "@lit-labs/ssr-dom-shim@npm:1.1.1" + checksum: bc530a6d390a71e44a74f0d79ab78df0c3cf814f5a69e64c60271d626f4b871d0269c82f2b1bcaf9ef1a84f361f50a1fc70c790873cded769e8f0e4f1fa01ff8 languageName: node linkType: hard @@ -3706,72 +3695,72 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:14.0.3": - version: 14.0.3 - resolution: "@next/env@npm:14.0.3" - checksum: 8688367c22461a075b5406463d16c284cf58e6861418e974fbd5901721da73402988340f8dd72d8e2e41e32ae0b7f24f91bd49029ee6e63424361587165febc5 +"@next/env@npm:14.0.4": + version: 14.0.4 + resolution: "@next/env@npm:14.0.4" + checksum: 59b893d30aea0556379a24f6e4eac830677feb149bd8416b72383ea2600ce194fa22a79b2dd86e0b295c4a8f0702e461f48edaff1ac9173eddef42a4cce7fd98 languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:14.0.3": - version: 14.0.3 - resolution: "@next/swc-darwin-arm64@npm:14.0.3" +"@next/swc-darwin-arm64@npm:14.0.4": + version: 14.0.4 + resolution: "@next/swc-darwin-arm64@npm:14.0.4" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@next/swc-darwin-x64@npm:14.0.3": - version: 14.0.3 - resolution: "@next/swc-darwin-x64@npm:14.0.3" +"@next/swc-darwin-x64@npm:14.0.4": + version: 14.0.4 + resolution: "@next/swc-darwin-x64@npm:14.0.4" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:14.0.3": - version: 14.0.3 - resolution: "@next/swc-linux-arm64-gnu@npm:14.0.3" +"@next/swc-linux-arm64-gnu@npm:14.0.4": + version: 14.0.4 + resolution: "@next/swc-linux-arm64-gnu@npm:14.0.4" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:14.0.3": - version: 14.0.3 - resolution: "@next/swc-linux-arm64-musl@npm:14.0.3" +"@next/swc-linux-arm64-musl@npm:14.0.4": + version: 14.0.4 + resolution: "@next/swc-linux-arm64-musl@npm:14.0.4" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:14.0.3": - version: 14.0.3 - resolution: "@next/swc-linux-x64-gnu@npm:14.0.3" +"@next/swc-linux-x64-gnu@npm:14.0.4": + version: 14.0.4 + resolution: "@next/swc-linux-x64-gnu@npm:14.0.4" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:14.0.3": - version: 14.0.3 - resolution: "@next/swc-linux-x64-musl@npm:14.0.3" +"@next/swc-linux-x64-musl@npm:14.0.4": + version: 14.0.4 + resolution: "@next/swc-linux-x64-musl@npm:14.0.4" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:14.0.3": - version: 14.0.3 - resolution: "@next/swc-win32-arm64-msvc@npm:14.0.3" +"@next/swc-win32-arm64-msvc@npm:14.0.4": + version: 14.0.4 + resolution: "@next/swc-win32-arm64-msvc@npm:14.0.4" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@next/swc-win32-ia32-msvc@npm:14.0.3": - version: 14.0.3 - resolution: "@next/swc-win32-ia32-msvc@npm:14.0.3" +"@next/swc-win32-ia32-msvc@npm:14.0.4": + version: 14.0.4 + resolution: "@next/swc-win32-ia32-msvc@npm:14.0.4" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@next/swc-win32-x64-msvc@npm:14.0.3": - version: 14.0.3 - resolution: "@next/swc-win32-x64-msvc@npm:14.0.3" +"@next/swc-win32-x64-msvc@npm:14.0.4": + version: 14.0.4 + resolution: "@next/swc-win32-x64-msvc@npm:14.0.4" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -4833,9 +4822,6 @@ __metadata: ts-dedent: "npm:^2.0.0" typescript: "npm:^5.3.2" vite: "npm:^4.0.4" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 languageName: unknown linkType: soft @@ -4858,9 +4844,6 @@ __metadata: "@storybook/preview-api": "workspace:*" ts-dedent: "npm:^2.0.0" typescript: "npm:^5.3.2" - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 languageName: unknown linkType: soft @@ -5403,12 +5386,12 @@ __metadata: languageName: unknown linkType: soft -"@storybook/client-logger@npm:7.6.3": - version: 7.6.3 - resolution: "@storybook/client-logger@npm:7.6.3" +"@storybook/client-logger@npm:7.5.0": + version: 7.5.0 + resolution: "@storybook/client-logger@npm:7.5.0" dependencies: "@storybook/global": "npm:^5.0.0" - checksum: e32a9932aa7ddc05a17540c2bea7faf613cfc927ef855db2e15dad1fbfb35173c3669f1aeab2a589f16f9dda6a761ee055b98b40700b522a984ec81675817cd1 + checksum: 90326c49a224bf21680c04ffee94725bf75658086093ccb839a8aae39476929c4719eafb18e498a148cf0dd956d4e9a5d3b2a34d09ca4fd25e2af553458558ac languageName: node linkType: hard @@ -6397,8 +6380,8 @@ __metadata: "@babel/preset-react": "npm:^7.22.15" "@babel/preset-typescript": "npm:^7.23.2" "@babel/runtime": "npm:^7.23.2" - "@chromaui/addon-visual-tests": "npm:^0.0.114" - "@emotion/jest": "npm:^11.10.0" + "@chromaui/addon-visual-tests": "npm:^0.0.124" + "@emotion/jest": "npm:^11.11.0" "@jest/globals": "npm:^29.3.1" "@nx/workspace": "npm:17.0.2" "@playwright/test": "npm:1.36.0" @@ -6704,7 +6687,7 @@ __metadata: vite: "npm:^4.0.0" peerDependencies: svelte: ^4.0.0 || ^5.0.0-next.16 - vite: ^4.0.0 + vite: ^4.0.0 || ^5.0.0 languageName: unknown linkType: soft @@ -6760,17 +6743,17 @@ __metadata: linkType: hard "@storybook/theming@npm:^7.0.2": - version: 7.6.3 - resolution: "@storybook/theming@npm:7.6.3" + version: 7.5.0 + resolution: "@storybook/theming@npm:7.5.0" dependencies: "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.0" - "@storybook/client-logger": "npm:7.6.3" + "@storybook/client-logger": "npm:7.5.0" "@storybook/global": "npm:^5.0.0" memoizerific: "npm:^1.11.3" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 465b060d5aef79dddc69c71bd66d2c5bbe04d4204ca2d3e5a6eb21f79ad64e1bd54ed214e7a092800580d9261361227094d8c9b9fd5a3ee5051ddf3096ee01eb + checksum: 57da8e27c748cbec4dc1661cdd2d449949d97476d8e97933696b31d07c7361cbbcca8d7225cc00ca078daa160023b8965ddec7c23519ce0a4ef2658246b062e7 languageName: node linkType: hard @@ -6778,11 +6761,11 @@ __metadata: version: 0.0.0-use.local resolution: "@storybook/theming@workspace:lib/theming" dependencies: - "@emotion/cache": "npm:^11.10.7" - "@emotion/is-prop-valid": "npm:^1.2.0" - "@emotion/react": "npm:^11.10.4" - "@emotion/styled": "npm:^11.10.4" - "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.0" + "@emotion/cache": "npm:^11.11.0" + "@emotion/is-prop-valid": "npm:^1.2.1" + "@emotion/react": "npm:^11.11.1" + "@emotion/styled": "npm:^11.11.0" + "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.0.1" "@storybook/client-logger": "workspace:*" "@storybook/global": "npm:^5.0.0" "@types/fs-extra": "npm:^11.0.1" @@ -7428,9 +7411,9 @@ __metadata: linkType: hard "@types/aria-query@npm:^5.0.1": - version: 5.0.4 - resolution: "@types/aria-query@npm:5.0.4" - checksum: dc667bc6a3acc7bba2bccf8c23d56cb1f2f4defaa704cfef595437107efaa972d3b3db9ec1d66bc2711bfc35086821edd32c302bffab36f2e79b97f312069f08 + version: 5.0.2 + resolution: "@types/aria-query@npm:5.0.2" + checksum: 74579b9e3f7f5042e8a05ab103dd652e724a556a5700fab778c76c53729635b73da5d242143df1fb9447e607f904cbd81871dd2b876f0974831a794165287b20 languageName: node linkType: hard @@ -7448,11 +7431,11 @@ __metadata: linkType: hard "@types/babel__generator@npm:*": - version: 7.6.7 - resolution: "@types/babel__generator@npm:7.6.7" + version: 7.6.6 + resolution: "@types/babel__generator@npm:7.6.6" dependencies: "@babel/types": "npm:^7.0.0" - checksum: 2427203864ef231857e102eeb32b731a419164863983119cdd4dac9f1503c2831eb4262d05ade95d4574aa410b94c16e54e36a616758452f685a34881f4596d9 + checksum: 214d8b170e0eb04282d0e9dfda2c27116f64751729479786c2bf1b7ec22a5e9e5bbeb70585f047b0fd580d7d8948dc2108223c5a16e998d9674de0582d4e23d7 languageName: node linkType: hard @@ -7471,40 +7454,40 @@ __metadata: linkType: hard "@types/babel__template@npm:*": - version: 7.4.4 - resolution: "@types/babel__template@npm:7.4.4" + version: 7.4.3 + resolution: "@types/babel__template@npm:7.4.3" dependencies: "@babel/parser": "npm:^7.1.0" "@babel/types": "npm:^7.0.0" - checksum: cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b + checksum: f989bd918e1ebfcc6e68c72a3818b7518049673c4e7ba31b11c10d5d3064261c534f3d2f3097f82f80d5fc58f56f3633c21ddf0332552a926a488c105d042c45 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.4 - resolution: "@types/babel__traverse@npm:7.20.4" + version: 7.20.3 + resolution: "@types/babel__traverse@npm:7.20.3" dependencies: "@babel/types": "npm:^7.20.7" - checksum: e76cb4974c7740fd61311152dc497e7b05c1c46ba554aab875544ab0a7457f343cafcad34ba8fb2ff543ab0e012ef2d3fa0c13f1a4e9a4cd9c4c703c7a2a8d62 + checksum: 295ed9b837e62e17ee43be0df45d90fff5208986bd43af593c9020d152d3b2c55328e038c2f8585926b63cc22f887f28bf3f4c805aa881e2dd0bdd5ead92ece0 languageName: node linkType: hard "@types/body-parser@npm:*": - version: 1.19.5 - resolution: "@types/body-parser@npm:1.19.5" + version: 1.19.3 + resolution: "@types/body-parser@npm:1.19.3" dependencies: "@types/connect": "npm:*" "@types/node": "npm:*" - checksum: aebeb200f25e8818d8cf39cd0209026750d77c9b85381cdd8deeb50913e4d18a1ebe4b74ca9b0b4d21952511eeaba5e9fbbf739b52731a2061e206ec60d568df + checksum: d35f76406232ee68b02b4b37b4b63cce26329f4302f55c19d5f4fd346f5b7df0994af486331849c4992567d83ded10f5beb3e200280c2142f53e0424f1565082 languageName: node linkType: hard "@types/bonjour@npm:^3.5.9": - version: 3.5.13 - resolution: "@types/bonjour@npm:3.5.13" + version: 3.5.11 + resolution: "@types/bonjour@npm:3.5.11" dependencies: "@types/node": "npm:*" - checksum: eebedbca185ac3c39dd5992ef18d9e2a9f99e7f3c2f52f5561f90e9ed482c5d224c7962db95362712f580ed5713264e777a98d8f0bd8747f4eadf62937baed16 + checksum: 963b8260708186981b6fc75fcdbf1ab95bd83ec0472c1b9649c635bdf260d2af94c2930c1a08f97c9d6e370a14737a697e05e10796f29c2a8d81f7f0a80a8ed0 languageName: node linkType: hard @@ -7537,9 +7520,9 @@ __metadata: linkType: hard "@types/color-name@npm:*": - version: 1.1.3 - resolution: "@types/color-name@npm:1.1.3" - checksum: caea7b6446623acdbf38138a8d4416b0363314784d82b13f3e3fa29f2070bc5630f674f2c953edac5f1c9710f3302328abf912b32de5b6e799d3bdb149269fbc + version: 1.1.1 + resolution: "@types/color-name@npm:1.1.1" + checksum: 2abeac8d8d833e0622c66f21487cc8b522792abb2eff2e40df0e3e53261728cb65bab590edf24953eb8d8653ec88044dc801d9a4e58c489a0f10c025de522868 languageName: node linkType: hard @@ -7553,21 +7536,21 @@ __metadata: linkType: hard "@types/connect-history-api-fallback@npm:^1.3.5": - version: 1.5.4 - resolution: "@types/connect-history-api-fallback@npm:1.5.4" + version: 1.5.1 + resolution: "@types/connect-history-api-fallback@npm:1.5.1" dependencies: "@types/express-serve-static-core": "npm:*" "@types/node": "npm:*" - checksum: 1b4035b627dcd714b05a22557f942e24a57ca48e7377dde0d2f86313fe685bc0a6566512a73257a55b5665b96c3041fb29228ac93331d8133011716215de8244 + checksum: 306e19429a404625ea8bee2043e67b1222ccf46cf25846d580074519bfead6839f38fe8c710e45ea66e3e39b4ed0ebe8d0e506098d31ce078711bc94fae990f2 languageName: node linkType: hard "@types/connect@npm:*": - version: 3.4.38 - resolution: "@types/connect@npm:3.4.38" + version: 3.4.36 + resolution: "@types/connect@npm:3.4.36" dependencies: "@types/node": "npm:*" - checksum: 2e1cdba2c410f25649e77856505cd60223250fa12dff7a503e492208dbfdd25f62859918f28aba95315251fd1f5e1ffbfca1e25e73037189ab85dd3f8d0a148c + checksum: 0dd8fcf576e178e69cbc00d47be69d3198dca4d86734a00fc55de0df147982e0a5f34592117571c5979e92ce8f3e0596e31aa454496db8a43ab90c5ab1068f40 languageName: node linkType: hard @@ -7597,11 +7580,11 @@ __metadata: linkType: hard "@types/debug@npm:^4.0.0": - version: 4.1.12 - resolution: "@types/debug@npm:4.1.12" + version: 4.1.9 + resolution: "@types/debug@npm:4.1.9" dependencies: "@types/ms": "npm:*" - checksum: 5dcd465edbb5a7f226e9a5efd1f399c6172407ef5840686b73e3608ce135eeca54ae8037dcd9f16bdb2768ac74925b820a8b9ecc588a58ca09eca6acabe33e2f + checksum: 8b550c47c70cc1af9a58e5c572f2418f30bface5bf5d5afa0d938923978f40be4c55646f1ab260f6f1492ca6ab065d447de23cb3b30d7b38597c2cbf89f4cb21 languageName: node linkType: hard @@ -7634,9 +7617,9 @@ __metadata: linkType: hard "@types/emscripten@npm:^1.39.6": - version: 1.39.10 - resolution: "@types/emscripten@npm:1.39.10" - checksum: c9adde9307d54efb5152931bfe99966fbe12fbd4d07663fb5cdc4cc1bd3a1f030882d50d4a27875b7b2d9713d160609e67b72e92177a021c9f4699ee5ac41035 + version: 1.39.8 + resolution: "@types/emscripten@npm:1.39.8" + checksum: a2cc8ddb734b0cbead13c9d4b7733da07655529bdfbcd8a858067bd6b97f2b622935526a6d6ee5c9c5495d50854d608e34ad9a4e09700858d7b9418799e33197 languageName: node linkType: hard @@ -7648,38 +7631,38 @@ __metadata: linkType: hard "@types/eslint-scope@npm:^3.7.3": - version: 3.7.7 - resolution: "@types/eslint-scope@npm:3.7.7" + version: 3.7.5 + resolution: "@types/eslint-scope@npm:3.7.5" dependencies: "@types/eslint": "npm:*" "@types/estree": "npm:*" - checksum: a0ecbdf2f03912679440550817ff77ef39a30fa8bfdacaf6372b88b1f931828aec392f52283240f0d648cf3055c5ddc564544a626bcf245f3d09fcb099ebe3cc + checksum: 9ade676030067a14d34acb4a48362bcf16632e867d059e734cf082e0523362415ed698e3776f8fad7e346019078d63a5264992b33054182607ce20ad9eaeec80 languageName: node linkType: hard "@types/eslint@npm:*": - version: 8.44.8 - resolution: "@types/eslint@npm:8.44.8" + version: 8.44.3 + resolution: "@types/eslint@npm:8.44.3" dependencies: "@types/estree": "npm:*" "@types/json-schema": "npm:*" - checksum: 610966753add984f6ac9f00eeb766691e141e66a7e20b724a45ad077f60e8cd8fd7874b7e655e93537e54873cc5711cd6f57728474e08b478407cd942f098263 + checksum: d9d681efe461ec8934800a89773be251a200c9d4528ca2330bb99f4ca3bd6b2d053034d2b5fe645a1567331af2c89e364aed4be8c839f10a1028a3cbe2856b01 languageName: node linkType: hard "@types/estree-jsx@npm:^1.0.0": - version: 1.0.3 - resolution: "@types/estree-jsx@npm:1.0.3" + version: 1.0.1 + resolution: "@types/estree-jsx@npm:1.0.1" dependencies: "@types/estree": "npm:*" - checksum: 41742a7b0874f63e61396d87a46d3ca531850a0e2cd7cec304339b8df439b6371d5e8758f34de9b5d9e940486ea21305b2f74cb420754838ecdfdaba918afc66 + checksum: 3aa4d648ba3ddffa73eff63904a4ef7f78fc78c2fc22ad0ef80908e7e5839e4622dc8d8dc46708b07a6e732e72692cf234db63650c3ca608cc5b41c3e81f37a2 languageName: node linkType: hard "@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.1": - version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d + version: 1.0.2 + resolution: "@types/estree@npm:1.0.2" + checksum: 4b5c601d435ea8e2205458de15fd1556b5ae6c9a8323bad8a940ea502d6c824664faca94234c0bf76bf9c87cbf6ac41abee550c9e20433256549d589c9b543bd languageName: node linkType: hard @@ -7691,14 +7674,14 @@ __metadata: linkType: hard "@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.33": - version: 4.17.41 - resolution: "@types/express-serve-static-core@npm:4.17.41" + version: 4.17.37 + resolution: "@types/express-serve-static-core@npm:4.17.37" dependencies: "@types/node": "npm:*" "@types/qs": "npm:*" "@types/range-parser": "npm:*" "@types/send": "npm:*" - checksum: dc166cbf4475c00a81fbcab120bf7477c527184be11ae149df7f26d9c1082114c68f8d387a2926fe80291b06477c8bbd9231ff4f5775de328e887695aefce269 + checksum: 45487318802d9c44aac4323b9f5b33c24bb37c0258a5984c8ffe2b57f1bfc5b8ebbdc47149d6ce1b9e47e39b6cc4d1ef4468903a339990bfb8eac7995392f19f languageName: node linkType: hard @@ -7770,30 +7753,30 @@ __metadata: linkType: hard "@types/graceful-fs@npm:^4.1.3": - version: 4.1.9 - resolution: "@types/graceful-fs@npm:4.1.9" + version: 4.1.7 + resolution: "@types/graceful-fs@npm:4.1.7" dependencies: "@types/node": "npm:*" - checksum: 235d2fc69741448e853333b7c3d1180a966dd2b8972c8cbcd6b2a0c6cd7f8d582ab2b8e58219dbc62cce8f1b40aa317ff78ea2201cdd8249da5025adebed6f0b + checksum: a8c04a250cb40207b15097b33c053f5ecf4352f5107c0a2635f674dae8c9a90b28dc9bd6e28307d5aab0b5d3853e713de42110a149a6e303626915047134e87d languageName: node linkType: hard "@types/hast@npm:^2.0.0": - version: 2.3.8 - resolution: "@types/hast@npm:2.3.8" + version: 2.3.6 + resolution: "@types/hast@npm:2.3.6" dependencies: "@types/unist": "npm:^2" - checksum: 0b358a65135922df8465f5daabed08602afc9098cf9065439f2fa46a5757d1630c88c4ad208b9ff0114bed95d468a75eeed49a099615096a9ad3bb1a85d8a3a1 + checksum: e44fa492f9ae8a0e499a738b598fc50c6cfa8131f2758ed98f292fbe67e37f4e85edb1aa53b27450bdafcf4e52c1a9660df0478914199c058193d9cffdc7d93c languageName: node linkType: hard "@types/hoist-non-react-statics@npm:^3.3.1": - version: 3.3.5 - resolution: "@types/hoist-non-react-statics@npm:3.3.5" + version: 3.3.2 + resolution: "@types/hoist-non-react-statics@npm:3.3.2" dependencies: "@types/react": "npm:*" hoist-non-react-statics: "npm:^3.3.0" - checksum: 2a3b64bf3d9817d7830afa60ee314493c475fb09570a64e7737084cd482d2177ebdddf888ce837350bac51741278b077683facc9541f052d4bbe8487b4e3e618 + checksum: 2aaff564e7674b0b7389592f30e4681919a0a71986bc5d8c5ef67d9b5b3b46913920f5002a96fd37d8904fe5c0cc1e4cc5c92884c847b2f4a74cb30d841494d4 languageName: node linkType: hard @@ -7805,25 +7788,25 @@ __metadata: linkType: hard "@types/http-cache-semantics@npm:*": - version: 4.0.4 - resolution: "@types/http-cache-semantics@npm:4.0.4" - checksum: 51b72568b4b2863e0fe8d6ce8aad72a784b7510d72dc866215642da51d84945a9459fa89f49ec48f1e9a1752e6a78e85a4cda0ded06b1c73e727610c925f9ce6 + version: 4.0.2 + resolution: "@types/http-cache-semantics@npm:4.0.2" + checksum: 975258beba5a6ce446b67f9bf905385d8d44cecad54d839208e86018b0fe4a517c62ec7a169ec64ed454363628def75446fa09d99755f3797f213b596477fe97 languageName: node linkType: hard "@types/http-errors@npm:*": - version: 2.0.4 - resolution: "@types/http-errors@npm:2.0.4" - checksum: 494670a57ad4062fee6c575047ad5782506dd35a6b9ed3894cea65830a94367bd84ba302eb3dde331871f6d70ca287bfedb1b2cf658e6132cd2cbd427ab56836 + version: 2.0.2 + resolution: "@types/http-errors@npm:2.0.2" + checksum: ecedc65091baf7c83e0e61e7d1992112e0fa09461d69004747f55c80b801b796bdb60161e54efdac8a720b5f78a54720b0cabde3ae7094103a552d5c189222ce languageName: node linkType: hard "@types/http-proxy@npm:^1.17.8": - version: 1.17.14 - resolution: "@types/http-proxy@npm:1.17.14" + version: 1.17.12 + resolution: "@types/http-proxy@npm:1.17.12" dependencies: "@types/node": "npm:*" - checksum: c4bffd87be9aff7e879c05bd2c28716220e0eb39788e3f8d314eee665324ad8f5f0919041cbd710254d553cd9cea023f8b776d4b1ec31d2188eac60af18c3022 + checksum: 06719371ece6bdf9fd28b90b03bd56e48ffca675dfaadca81ae12ca18db6e77e70a509537ebfa3b2c37810d77dc52e5a3190c09bc490668dde7e384c7b579090 languageName: node linkType: hard @@ -7837,27 +7820,27 @@ __metadata: 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: 3948088654f3eeb45363f1db158354fb013b362dba2a5c2c18c559484d5eb9f6fd85b23d66c0a7c2fcfab7308d0a585b14dadaca6cc8bf89ebfdc7f8f5102fb7 + version: 2.0.4 + resolution: "@types/istanbul-lib-coverage@npm:2.0.4" + checksum: af5f6b64e788331ed3f7b2e2613cb6ca659c58b8500be94bbda8c995ad3da9216c006f1cfe6f66b321c39392b1bda18b16e63cef090a77d24a00b4bd5ba3b018 languageName: node linkType: hard "@types/istanbul-lib-report@npm:*": - version: 3.0.3 - resolution: "@types/istanbul-lib-report@npm:3.0.3" + version: 3.0.1 + resolution: "@types/istanbul-lib-report@npm:3.0.1" dependencies: "@types/istanbul-lib-coverage": "npm:*" - checksum: 247e477bbc1a77248f3c6de5dadaae85ff86ac2d76c5fc6ab1776f54512a745ff2a5f791d22b942e3990ddbd40f3ef5289317c4fca5741bedfaa4f01df89051c + checksum: a2a002ee7ecd9079a2c06235d28d1bc77089c3d834eec7e6dac38986203634936f2a017812624acfbedabec4bddd933942f14ac93eba2dc57f581ad4f35bbf1d languageName: node linkType: hard "@types/istanbul-reports@npm:^3.0.0": - version: 3.0.4 - resolution: "@types/istanbul-reports@npm:3.0.4" + version: 3.0.2 + resolution: "@types/istanbul-reports@npm:3.0.2" dependencies: "@types/istanbul-lib-report": "npm:*" - checksum: 1647fd402aced5b6edac87274af14ebd6b3a85447ef9ad11853a70fd92a98d35f81a5d3ea9fcb5dbb5834e800c6e35b64475e33fcae6bfa9acc70d61497c54ee + checksum: df6c9e6865006be06bae29f63d5240b96bc7041b18a8c6d66be5b5d92ef5c95675c7a605a603029065f4f8aece7dba7360349e9d0543f512417e64a707a3c4fa languageName: node linkType: hard @@ -7871,12 +7854,12 @@ __metadata: linkType: hard "@types/jest@npm:*": - version: 29.5.10 - resolution: "@types/jest@npm:29.5.10" + version: 29.5.5 + resolution: "@types/jest@npm:29.5.5" dependencies: expect: "npm:^29.0.0" pretty-format: "npm:^29.0.0" - checksum: b46171d59d12a5f69bbe710f65eaf59a8073337c6b4a67dff8158575caec53f1c61f8a7d645b34d6ac3c4ea398acd30f0c5d1c4a131c0c918798019264a3397d + checksum: 0a3481f119099e6a0a381fec0d410cd33241267a0981576a7a832687fc3f888f79285289dc7c054c3589fd443f7ed1598d25fa7bc9708491b58da17e423b4aff languageName: node linkType: hard @@ -7919,9 +7902,9 @@ __metadata: linkType: hard "@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": - version: 7.0.15 - resolution: "@types/json-schema@npm:7.0.15" - checksum: a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db + version: 7.0.13 + resolution: "@types/json-schema@npm:7.0.13" + checksum: 446fe6722899333ff647b5853fdcc9f039156d56abe517166154d3578d641841cc869f61e8b7822c24a1daeb7dfbd4fdcea84bf07c0858e2f9cca415e2ca8dd4 languageName: node linkType: hard @@ -7933,11 +7916,11 @@ __metadata: linkType: hard "@types/jsonfile@npm:*": - version: 6.1.4 - resolution: "@types/jsonfile@npm:6.1.4" + version: 6.1.2 + resolution: "@types/jsonfile@npm:6.1.2" dependencies: "@types/node": "npm:*" - checksum: b12d068b021e4078f6ac4441353965769be87acf15326173e2aea9f3bf8ead41bd0ad29421df5bbeb0123ec3fc02eb0a734481d52903704a1454a1845896b9eb + checksum: c2943f9bfa7867b33fb362b88a932efdc00e9e5f2762b6ef912617cb0a3e3221a98920f8976a4cf817aa576e03d28a25391236e9644e2ebe648081b08df62ef5 languageName: node linkType: hard @@ -7968,32 +7951,32 @@ __metadata: linkType: hard "@types/mdast@npm:^3.0.0": - version: 3.0.15 - resolution: "@types/mdast@npm:3.0.15" + version: 3.0.13 + resolution: "@types/mdast@npm:3.0.13" dependencies: "@types/unist": "npm:^2" - checksum: fcbf716c03d1ed5465deca60862e9691414f9c43597c288c7d2aefbe274552e1bbd7aeee91b88a02597e88a28c139c57863d0126fcf8416a95fdc681d054ee3d + checksum: b328d1622075a67db1d8eac78dcbd55aefb4adaf63206b58abfce902c0ce5232a2674bd0bf961696c9a3765d5fcf145378ce03075bd1690a25adc617650f1228 languageName: node linkType: hard "@types/mdx@npm:^2.0.0": - version: 2.0.10 - resolution: "@types/mdx@npm:2.0.10" - checksum: a2a5d71967c44c650e883eaaeb61db9c0758b9c1d675e04b7a3cfeeaee6efd5044dc9c78d780aa3fe408a2f85680bf3b723c92a1772bb6c2da35ef346d766de2 + version: 2.0.8 + resolution: "@types/mdx@npm:2.0.8" + checksum: 6ee0e54d886afcbc2547f1db73ac9de60603ce26592e21f5fff2ba2791f6c58d3eb7b849add8f6b8b9c10f7c8ff3855d29fe7122f532f2f64fce95fe5b8e23ef languageName: node linkType: hard "@types/mime@npm:*": - version: 3.0.4 - resolution: "@types/mime@npm:3.0.4" - checksum: db478bc0f99e40f7b3e01d356a9bdf7817060808a294978111340317bcd80ca35382855578c5b60fbc84ae449674bd9bb38427b18417e1f8f19e4f72f8b242cd + version: 3.0.2 + resolution: "@types/mime@npm:3.0.2" + checksum: 7eef33033d9990881626611ef87d0dbb06ebff96a7ee09303874389eb482acd0fbf20fe2dc96edb861095e42e6c18d5df8476840131f9c06c57be6f1c1dc77fe languageName: node linkType: hard "@types/mime@npm:^1": - version: 1.3.5 - resolution: "@types/mime@npm:1.3.5" - checksum: c2ee31cd9b993804df33a694d5aa3fa536511a49f2e06eeab0b484fef59b4483777dbb9e42a4198a0809ffbf698081fdbca1e5c2218b82b91603dfab10a10fbc + version: 1.3.3 + resolution: "@types/mime@npm:1.3.3" + checksum: 56c9981b637154721753d38888c2cba85f8891a16e0f1cb1286dcbd741b220ff56d99aa2be03bf7fe88b188a27e32bf1d92976dafd6574b8f345bbf0853d462c languageName: node linkType: hard @@ -8021,9 +8004,9 @@ __metadata: linkType: hard "@types/ms@npm:*": - version: 0.7.34 - resolution: "@types/ms@npm:0.7.34" - checksum: ac80bd90012116ceb2d188fde62d96830ca847823e8ca71255616bc73991aa7d9f057b8bfab79e8ee44ffefb031ddd1bcce63ea82f9e66f7c31ec02d2d823ccc + version: 0.7.32 + resolution: "@types/ms@npm:0.7.32" + checksum: 16f60d0a2485edfa459e9570aec9135d9ef08dd855630754063f3baf1d1df7a5edd0f249ff9b460a33842181250f51b27b35078b83cf6ec1dccabb4485de19d6 languageName: node linkType: hard @@ -8037,25 +8020,7 @@ __metadata: languageName: node linkType: hard -"@types/node-forge@npm:^1.3.0": - version: 1.3.10 - resolution: "@types/node-forge@npm:1.3.10" - dependencies: - "@types/node": "npm:*" - checksum: b190e93e36e3bf5881e099df930645bbeb963c1cabb110948f90e11f5f59a2514d5632e6bd1101dfb839725eab25a8e2eba4a2b1b7551f12bc43302863e050ae - languageName: node - linkType: hard - -"@types/node@npm:*, @types/node@npm:>= 8": - version: 20.10.1 - resolution: "@types/node@npm:20.10.1" - dependencies: - undici-types: "npm:~5.26.4" - checksum: c1b4b5a33f57bd39a8a0d074f27e3e370fccc6cda6a1c46caa48cc4c1687677cfdbffd9dc93fc803c6d355696dd9c73cd6f6507c749f61f83beb7326aec077d2 - languageName: node - linkType: hard - -"@types/node@npm:>=10.0.0": +"@types/node@npm:*, @types/node@npm:>= 8, @types/node@npm:>=10.0.0": version: 20.10.3 resolution: "@types/node@npm:20.10.3" dependencies: @@ -8065,18 +8030,18 @@ __metadata: linkType: hard "@types/node@npm:^18.0.0": - version: 18.19.0 - resolution: "@types/node@npm:18.19.0" + version: 18.19.3 + resolution: "@types/node@npm:18.19.3" dependencies: undici-types: "npm:~5.26.4" - checksum: 3205c61d4152487cd8961ef73cfe57a2c90217439ae985cdf587117cf20694c7974d549a840478a8683ead4db6e6e95bdd194b59b8acff717fdac5cb3f198924 + checksum: 3ed943d06e9dff70a3da793f794f1192cd93b0ababdb9f07425a05680f17cfce649cbc46734265f6fbe52fd9f277496d3a4da26c013f1193a0345f2420ea6cd0 languageName: node linkType: hard "@types/normalize-package-data@npm:^2.4.0": - version: 2.4.4 - resolution: "@types/normalize-package-data@npm:2.4.4" - checksum: aef7bb9b015883d6f4119c423dd28c4bdc17b0e8a0ccf112c78b4fe0e91fbc4af7c6204b04bba0e199a57d2f3fbbd5b4a14bf8739bf9d2a39b2a0aad545e0f86 + version: 2.4.2 + resolution: "@types/normalize-package-data@npm:2.4.2" + checksum: e38713ca1befc341701c078d592d1fddc1d13eec73b4d81fbab14638221733029f03cdf410b4486b23d48fd8d3809fa36611de98220e76f71517d42b582b3509 languageName: node linkType: hard @@ -8090,9 +8055,9 @@ __metadata: linkType: hard "@types/parse-json@npm:^4.0.0": - version: 4.0.2 - resolution: "@types/parse-json@npm:4.0.2" - checksum: b1b863ac34a2c2172fbe0807a1ec4d5cb684e48d422d15ec95980b81475fac4fdb3768a8b13eef39130203a7c04340fc167bae057c7ebcafd7dec9fe6c36aeb1 + version: 4.0.0 + resolution: "@types/parse-json@npm:4.0.0" + checksum: 1d3012ab2fcdad1ba313e1d065b737578f6506c8958e2a7a5bdbdef517c7e930796cb1599ee067d5dee942fb3a764df64b5eef7e9ae98548d776e86dcffba985 languageName: node linkType: hard @@ -8125,9 +8090,9 @@ __metadata: linkType: hard "@types/prismjs@npm:^1.16.6": - version: 1.26.3 - resolution: "@types/prismjs@npm:1.26.3" - checksum: 3e8a64bcf0ab5f9a47ec2590938c5a8a20ac849b4949a95ed96e73e64cb890fc56e9c9b724286914717458267b28405f965709e1b9f80db5d68817a7ce5a18a9 + version: 1.26.1 + resolution: "@types/prismjs@npm:1.26.1" + checksum: 74b624bd0def16ba2fe4492ac74422ed9eaf5588814c14d8825c85dd4ef05b900a3685c5ec00bb13991e9f0cc4bbda196b9de3ba75cf7c00bc8ffd960c125124 languageName: node linkType: hard @@ -8142,16 +8107,16 @@ __metadata: linkType: hard "@types/prop-types@npm:*": - version: 15.7.11 - resolution: "@types/prop-types@npm:15.7.11" - checksum: e53423cf9d510515ef8b47ff42f4f1b65a7b7b37c8704e2dbfcb9a60defe0c0e1f3cb1acfdeb466bad44ca938d7c79bffdd51b48ffb659df2432169d0b27a132 + version: 15.7.8 + resolution: "@types/prop-types@npm:15.7.8" + checksum: 706b3de6faa5c1a4763fc90069f25ddc54108e8b43e9724e22f510b103c418571bf14b34b241fcacd6875650959c8374af7f4633f80ec6e33e7525cb42ef6a30 languageName: node linkType: hard "@types/pug@npm:^2.0.6": - version: 2.0.10 - resolution: "@types/pug@npm:2.0.10" - checksum: 6fac37fd84ad4bcf755061caad274db70591699739070bc30c5c1b5f0aecf98646dc29ec8da11cfca82a2b7cc57d949a3ae50aba2f88bf098751ebdd25d9aaea + version: 2.0.7 + resolution: "@types/pug@npm:2.0.7" + checksum: 3d0cf7945f56a2763d0917d63f1ebe9c86eed9bc0b64781d0d5ec842bcdf1779e1065e132300942a1c34fefa87212d877d7fad24a576c4ce52db8fb17c4dcd0e languageName: node linkType: hard @@ -8163,9 +8128,9 @@ __metadata: linkType: hard "@types/range-parser@npm:*": - version: 1.2.7 - resolution: "@types/range-parser@npm:1.2.7" - checksum: 361bb3e964ec5133fa40644a0b942279ed5df1949f21321d77de79f48b728d39253e5ce0408c9c17e4e0fd95ca7899da36841686393b9f7a1e209916e9381a3c + version: 1.2.5 + resolution: "@types/range-parser@npm:1.2.5" + checksum: fe4bbbbfb19f0765ea15e66e2c58e29e04f4e52055c0d348b08dbfb161c2d2a363cc21b8a6071936a0cab3f02d0f5f362a3f752b37b05ff868000dcfe9120581 languageName: node linkType: hard @@ -8179,11 +8144,11 @@ __metadata: linkType: hard "@types/react-modal@npm:^3.12.1": - version: 3.16.3 - resolution: "@types/react-modal@npm:3.16.3" + version: 3.16.1 + resolution: "@types/react-modal@npm:3.16.1" dependencies: "@types/react": "npm:*" - checksum: dfcf52fa4b5d5c203aa47ffaafade369836cb9f891e9b60e7056bf5fdfc508ebec7971bb3d4c4018f422953c1c79948755ef19da3e816c28d7c5fdacf9466af8 + checksum: 4f586bd00e4b15633ec6607cb3266183b81419a2c0931d40e6127427e944a986d3d9a9c8a23c86cb586b15e541a1c6682f6ab0d2561a3b81fcf857772727ff44 languageName: node linkType: hard @@ -8197,38 +8162,38 @@ __metadata: linkType: hard "@types/react-transition-group@npm:^4": - version: 4.4.9 - resolution: "@types/react-transition-group@npm:4.4.9" + version: 4.4.10 + resolution: "@types/react-transition-group@npm:4.4.10" dependencies: "@types/react": "npm:*" - checksum: 279cd319202f7ec24ecad174dffd19fd161250bc438bf3c62951f467093e5664a0c895b185976bf45f55b68ec901e520924216eb8abafe934b66f55337319ff5 + checksum: 3eb9bca143abc21eb781aa5cb1bded0c9335689d515bf0513fb8e63217b7a8122c6a323ecd5644a06938727e1f467ee061d8df1c93b68825a80ff1b47ab777a2 languageName: node linkType: hard "@types/react@npm:*, @types/react@npm:>=16, @types/react@npm:^18.0.37": - version: 18.2.39 - resolution: "@types/react@npm:18.2.39" + version: 18.2.43 + resolution: "@types/react@npm:18.2.43" dependencies: "@types/prop-types": "npm:*" "@types/scheduler": "npm:*" csstype: "npm:^3.0.2" - checksum: e91a5419d7615ab4fcaa7cb3ad2bd372093676e86c082748ab36ac394d3ed560070482d092a5488f74d6b1d913369e4dabf6eb287debed4d70cd3eb7dc135542 + checksum: 10477a50fbd3c0cc5b8a2ade679f442717f68fb27c8460b2aa1d3256cd18c48f742bbe5b9ee37a8c4c5f832ffa37b3a23c09fd96dd880a8e3182d8929c05e803 languageName: node linkType: hard "@types/resolve@npm:^1.20.2": - version: 1.20.6 - resolution: "@types/resolve@npm:1.20.6" - checksum: a9b0549d816ff2c353077365d865a33655a141d066d0f5a3ba6fd4b28bc2f4188a510079f7c1f715b3e7af505a27374adce2a5140a3ece2a059aab3d6e1a4244 + version: 1.20.3 + resolution: "@types/resolve@npm:1.20.3" + checksum: 0f499b6509186bd32faaf4ed640c166be0a6d487567cea1da9cdf3dc85e6b546451479ac80bd912daf4d8546c547d9feaf9e9867b438f7650cdd5a75169c5763 languageName: node linkType: hard "@types/responselike@npm:^1.0.0": - version: 1.0.3 - resolution: "@types/responselike@npm:1.0.3" + version: 1.0.1 + resolution: "@types/responselike@npm:1.0.1" dependencies: "@types/node": "npm:*" - checksum: a58ba341cb9e7d74f71810a88862da7b2a6fa42e2a1fc0ce40498f6ea1d44382f0640117057da779f74c47039f7166bf48fad02dc876f94e005c7afa50f5e129 + checksum: f49d4765498d64e81fdff91267575caef0b364538994512605323b4ef74297f6ac5c61658713e1e1cc6d3951f6a5bcd436fcdec79c5f9d5e72c6b3f700b6f997 languageName: node linkType: hard @@ -8250,9 +8215,9 @@ __metadata: linkType: hard "@types/scheduler@npm:*": - version: 0.16.8 - resolution: "@types/scheduler@npm:0.16.8" - checksum: f86de504945b8fc41b1f391f847444d542e2e4067cf7e5d9bfeb5d2d2393d3203b1161bc0ef3b1e104d828dabfb60baf06e8d2c27e27ff7e8258e6e618d8c4ec + version: 0.16.4 + resolution: "@types/scheduler@npm:0.16.4" + checksum: 2355e63251c6c6467806c9e7085f5fad350a1e87f811cf416f1e48a888b7da4ecc4bae2b67b7b10d8f5e518305ef2b5d4a8451227158552942794b87be43c5dd languageName: node linkType: hard @@ -8264,21 +8229,21 @@ __metadata: linkType: hard "@types/send@npm:*": - version: 0.17.4 - resolution: "@types/send@npm:0.17.4" + version: 0.17.2 + resolution: "@types/send@npm:0.17.2" dependencies: "@types/mime": "npm:^1" "@types/node": "npm:*" - checksum: 7f17fa696cb83be0a104b04b424fdedc7eaba1c9a34b06027239aba513b398a0e2b7279778af521f516a397ced417c96960e5f50fcfce40c4bc4509fb1a5883c + checksum: 3fdd87a1b82fae523b2609f2acef25705b40899fed3c5f4dd40bf0dc91ad6a2c0a2b6c1494d1584525fe6e88bea271fcdb9775b3996ddc7f16d52261eea73432 languageName: node linkType: hard "@types/serve-index@npm:^1.9.1": - version: 1.9.4 - resolution: "@types/serve-index@npm:1.9.4" + version: 1.9.2 + resolution: "@types/serve-index@npm:1.9.2" dependencies: "@types/express": "npm:*" - checksum: 94c1b9e8f1ea36a229e098e1643d5665d9371f8c2658521718e259130a237c447059b903bac0dcc96ee2c15fd63f49aa647099b7d0d437a67a6946527a837438 + checksum: 9b82300c6930f8a768e742f89414ef84cd7bd8bc242f13a070fd754144890ba281e7ae99d018e40a256963c12be600f4bb5cfd6e3ad72c686bc9482260c168eb languageName: node linkType: hard @@ -8294,25 +8259,25 @@ __metadata: linkType: hard "@types/sockjs@npm:^0.3.33": - version: 0.3.36 - resolution: "@types/sockjs@npm:0.3.36" + version: 0.3.34 + resolution: "@types/sockjs@npm:0.3.34" dependencies: "@types/node": "npm:*" - checksum: b20b7820ee813f22de4f2ce98bdd12c68c930e016a8912b1ed967595ac0d8a4cbbff44f4d486dd97f77f5927e7b5725bdac7472c9ec5b27f53a5a13179f0612f + checksum: e546c306dc7630e88a7be14faa26c6c6115847f4d334dcf7957166616c1f6d35549c93cb0985f0e0bdcc4c362fb66841b2c418c03c8df24b39be385c5496df11 languageName: node linkType: hard "@types/source-list-map@npm:*": - version: 0.1.6 - resolution: "@types/source-list-map@npm:0.1.6" - checksum: 1e6d8d4a48535c51368c65bb2c44a1c9fd9afe2eeefefa32cbf06f9c191f7b20f638b3aa755100de0a750b0ba6a76140e912f1bee75705bc2b9a58b5a5185539 + version: 0.1.3 + resolution: "@types/source-list-map@npm:0.1.3" + checksum: b0734c05ebfca29c28c1418237a13561bd16e5a848c48f0b6295bd2405aa070a317e869d9e8ba6907132928d5ea5cd339076e5e205c75137de7d6aedde11e365 languageName: node linkType: hard "@types/stack-utils@npm:^2.0.0": - version: 2.0.3 - resolution: "@types/stack-utils@npm:2.0.3" - checksum: 1f4658385ae936330581bcb8aa3a066df03867d90281cdf89cc356d404bd6579be0f11902304e1f775d92df22c6dd761d4451c804b0a4fba973e06211e9bd77c + version: 2.0.1 + resolution: "@types/stack-utils@npm:2.0.1" + checksum: 3327ee919a840ffe907bbd5c1d07dfd79137dd9732d2d466cf717ceec5bb21f66296173c53bb56cff95fae4185b9cd6770df3e9745fe4ba528bbc4975f54d13f languageName: node linkType: hard @@ -8331,16 +8296,16 @@ __metadata: linkType: hard "@types/symlink-or-copy@npm:^1.2.0": - version: 1.2.2 - resolution: "@types/symlink-or-copy@npm:1.2.2" - checksum: 09ee39bd319f39c775c4e2049fc4018212b9b6043736bd2046537acbb59c98af7aa725c539f32672cd2ca27144073fa1f1101b4c0ed7db3fbddb305b638895b2 + version: 1.2.0 + resolution: "@types/symlink-or-copy@npm:1.2.0" + checksum: cbc621ee4eb1c8b67beecba205ff47383584f6f69e5dbfd13ddb9fce3e64355bd01ba456dc9a5719e527da87c0f710f352931bfdf97efa0e23fff65d87e9315a languageName: node linkType: hard "@types/tapable@npm:^1": - version: 1.0.12 - resolution: "@types/tapable@npm:1.0.12" - checksum: d6a080f5839b323eb96dd5b65a6c3161c1297d8c2433eb52437912d1c3df54e38fce12ce7a57650f6453d96942298bd0935436e2501d09e407b7f41634483131 + version: 1.0.9 + resolution: "@types/tapable@npm:1.0.9" + checksum: 51e7a55432c3abf71ae5e13907eb01a576efdf66ddfcd4f2a765436e684e182df527885980d4f710250cd61304a61f7fe9d447b33fef8db1fa434a395c85933d languageName: node linkType: hard @@ -8370,32 +8335,32 @@ __metadata: linkType: hard "@types/tough-cookie@npm:*": - version: 4.0.5 - resolution: "@types/tough-cookie@npm:4.0.5" - checksum: 68c6921721a3dcb40451543db2174a145ef915bc8bcbe7ad4e59194a0238e776e782b896c7a59f4b93ac6acefca9161fccb31d1ce3b3445cb6faa467297fb473 + version: 4.0.3 + resolution: "@types/tough-cookie@npm:4.0.3" + checksum: 148ca3f9874b39279e85d742676cc132b74d121f7ed7d28ec28f6bc9ff9e1a41cfc2025195f33470ab55e58d316aa32aca8ab31380767f5178f13d0a046d2ebf languageName: node linkType: hard "@types/trusted-types@npm:^2.0.2": - version: 2.0.7 - resolution: "@types/trusted-types@npm:2.0.7" - checksum: 4c4855f10de7c6c135e0d32ce462419d8abbbc33713b31d294596c0cc34ae1fa6112a2f9da729c8f7a20707782b0d69da3b1f8df6645b0366d08825ca1522e0c + version: 2.0.4 + resolution: "@types/trusted-types@npm:2.0.4" + checksum: ad7ca5059168880d8fa04ebf9d5f57d402bef4d7bb8a50df5103db8bf3821a334aaa2dab9937cf5d440beb707bed35b700fa387fcbce0611821d4cea7fa94dc1 languageName: node linkType: hard "@types/uglify-js@npm:*": - version: 3.17.4 - resolution: "@types/uglify-js@npm:3.17.4" + version: 3.17.2 + resolution: "@types/uglify-js@npm:3.17.2" dependencies: source-map: "npm:^0.6.1" - checksum: e1625b203872aeb73d58df2dbe6baec8bcb7de651e44b6616e2b3b5bb2634ee535c9c8260c4e3258055adcec5fe057d8b655d6cc564916b7e4fc4ffe8bce520a + checksum: 22ead0f6c4c5f184f5db06aa68c357ace72536ee8ccbd7abe655df2cc375ab92e1bec6c425d9be85fa309190427971c89989c0b58977e9c9167b7c26fb07b898 languageName: node linkType: hard "@types/unist@npm:^2, @types/unist@npm:^2.0.0, @types/unist@npm:^2.0.2": - version: 2.0.10 - resolution: "@types/unist@npm:2.0.10" - checksum: 5f247dc2229944355209ad5c8e83cfe29419fa7f0a6d557421b1985a1500444719cc9efcc42c652b55aab63c931813c88033e0202c1ac684bcd4829d66e44731 + version: 2.0.8 + resolution: "@types/unist@npm:2.0.8" + checksum: 2c4685d5258b4f543677d20dce0d72b8235e70b6c859af24fcf445f92dac98ec8a1faa0cfb43307466561fcd9dbd2534a4860000944401ac3314a685b5efe3d7 languageName: node linkType: hard @@ -8439,13 +8404,13 @@ __metadata: linkType: hard "@types/webpack-sources@npm:*": - version: 3.2.3 - resolution: "@types/webpack-sources@npm:3.2.3" + version: 3.2.1 + resolution: "@types/webpack-sources@npm:3.2.1" dependencies: "@types/node": "npm:*" "@types/source-list-map": "npm:*" source-map: "npm:^0.7.3" - checksum: 74e9dfdd38bc345ce99442f3be5b5ad1efc7af5890304175c141717a7c0b38c152e6f7fe1d2875fc19aaa68964019ff4661678eba7fdeee8c3ad42dc6dbf6b62 + checksum: 651fcf880b2ed4f309fce9f47b85b7d1771a63436880792688b8c5e6e4177272dbe80c88cc4d877bc8370446499ab9b6a9ac6348b1fd2b29e56f7657f4562dd7 languageName: node linkType: hard @@ -8459,8 +8424,8 @@ __metadata: linkType: hard "@types/webpack@npm:^4": - version: 4.41.38 - resolution: "@types/webpack@npm:4.41.38" + version: 4.41.34 + resolution: "@types/webpack@npm:4.41.34" dependencies: "@types/node": "npm:*" "@types/tapable": "npm:^1" @@ -8468,7 +8433,7 @@ __metadata: "@types/webpack-sources": "npm:*" anymatch: "npm:^3.0.0" source-map: "npm:^0.6.0" - checksum: 5a0a7465d45a0e7701a8c863e88c6cba7660b37e4aeab851c71baf505dbab2e178be1cac82488c2e7d0ea11fb703ceddb53476daec3ec9a004e2fc1554233483 + checksum: 630ebd822e7ee85b7118d1c095370709ce493831365f7fd750bea88ac4726ef52df33cc25261922526e45b354c9fdb3edfabc7738d5b9ec18416fd502cda3838 languageName: node linkType: hard @@ -8482,36 +8447,36 @@ __metadata: linkType: hard "@types/yargs-parser@npm:*": - version: 21.0.3 - resolution: "@types/yargs-parser@npm:21.0.3" - checksum: e71c3bd9d0b73ca82e10bee2064c384ab70f61034bbfb78e74f5206283fc16a6d85267b606b5c22cb2a3338373586786fed595b2009825d6a9115afba36560a0 + version: 21.0.1 + resolution: "@types/yargs-parser@npm:21.0.1" + checksum: f1d723a4c4383a9c53b975820b7490186ca127237ca58eb2ee8f5eacdcdb195a81aeabd1d75560abdf22fc29f70e8bb103d7ab34c5ec49bc19196195a7bf3189 languageName: node linkType: hard "@types/yargs@npm:^15.0.0": - version: 15.0.19 - resolution: "@types/yargs@npm:15.0.19" + version: 15.0.16 + resolution: "@types/yargs@npm:15.0.16" dependencies: "@types/yargs-parser": "npm:*" - checksum: 9fe9b8645304a628006cbba2d1990fb015e2727274d0e3853f321a379a1242d1da2c15d2f56cff0d4313ae94f0383ccf834c3bded9fb3589608aefb3432fcf00 + checksum: 07f0960062e66226ae602fccd62e351143291d778e1f4dd645c51111e62fbedafe2a976c223dcfa7ae052e989407b62e97a7472fc1d73536110cd05502c204a5 languageName: node linkType: hard "@types/yargs@npm:^16.0.0": - version: 16.0.9 - resolution: "@types/yargs@npm:16.0.9" + version: 16.0.6 + resolution: "@types/yargs@npm:16.0.6" dependencies: "@types/yargs-parser": "npm:*" - checksum: be24bd9a56c97ddb2964c1c18f5b9fe8271a50e100dc6945989901aae58f7ce6fb8f3a591c749a518401b6301358dbd1997e83c36138a297094feae7f9ac8211 + checksum: a2cc5796cea1aac492c856ff35e829a6a230e6d72540a9446273ab16392f6ef04b8fef05ddcff71c8106c047820b5534b22e031245ee55995b1ba0c8caa382b2 languageName: node linkType: hard "@types/yargs@npm:^17.0.8": - version: 17.0.32 - resolution: "@types/yargs@npm:17.0.32" + version: 17.0.26 + resolution: "@types/yargs@npm:17.0.26" dependencies: "@types/yargs-parser": "npm:*" - checksum: 2095e8aad8a4e66b86147415364266b8d607a3b95b4239623423efd7e29df93ba81bb862784a6e08664f645cc1981b25fd598f532019174cd3e5e1e689e1cccf + checksum: 34ab6eff6dff086b1044c65d53131e1d14e87c0c6dc44cb6851d74d8a4d1ac4503f7d12d1e1ecff25f8aea62ff7a9d6b04b05870a0324d15bbb226ddfc1d6065 languageName: node linkType: hard @@ -8647,14 +8612,7 @@ __metadata: languageName: node linkType: hard -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d - languageName: node - linkType: hard - -"@urql/core@npm:>=4.1.0, @urql/core@npm:^4.2.0": +"@urql/core@npm:>=4.1.0, @urql/core@npm:^4.1.0": version: 4.2.0 resolution: "@urql/core@npm:4.2.0" dependencies: @@ -8699,12 +8657,12 @@ __metadata: linkType: hard "@vitejs/plugin-vue@npm:^4.0.0": - version: 4.5.1 - resolution: "@vitejs/plugin-vue@npm:4.5.1" + version: 4.5.2 + resolution: "@vitejs/plugin-vue@npm:4.5.2" peerDependencies: vite: ^4.0.0 || ^5.0.0 vue: ^3.2.25 - checksum: e14bcae83faa6f0a6b55a39635841aeb4f45b753404914bf6f5744c24b407d8b60cf2c5adfa47bc6d6c8b92566e203793bc106214fdd2af26a661d7c80a3c428 + checksum: dd024b9ee2eda3174e197bda2b42df30b594d1a7f50d20b4b0de01c5a130bd99b84452e8a8d597ade50f89106025346a56f7abbf63c560e82fe97223589d2514 languageName: node linkType: hard @@ -8770,31 +8728,30 @@ __metadata: languageName: node linkType: hard -"@volar/language-core@npm:1.11.1, @volar/language-core@npm:~1.11.1": - version: 1.11.1 - resolution: "@volar/language-core@npm:1.11.1" +"@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" dependencies: - "@volar/source-map": "npm:1.11.1" - checksum: 92c4439e3a9ccc534c970031388c318740f6fa032283d03e136c6c8c0228f549c68a7c363af1a28252617a0dca6069e14028329ac906d5acf1912931d0cdcb69 + "@volar/source-map": "npm:1.10.1" + checksum: cc4e6b07801cc48b68d9bfb4899703afc0b1d0d0a765d952df98ae63d3109555dd2d882aab8970d599521300d50aa109c82f869a590ddd8f94106b3daf0503f8 languageName: node linkType: hard -"@volar/source-map@npm:1.11.1, @volar/source-map@npm:~1.11.1": - version: 1.11.1 - resolution: "@volar/source-map@npm:1.11.1" +"@volar/source-map@npm:1.10.1, @volar/source-map@npm:~1.10.0": + version: 1.10.1 + resolution: "@volar/source-map@npm:1.10.1" dependencies: muggle-string: "npm:^0.3.1" - checksum: 0bfc639889802705f8036ea8b2052a95a4d691a68bc2b6744ba8b9d312d887393dd3278101180a5ee5304972899d493972a483afafd41e097968746c77d724cb + checksum: 9bfc96528d802959d19d07148238cf1b7f7ba7bf05a8cf78339dd1edfb0e755d88005057673c7a807aea74b234a63067fa433a81841b9b9bc1d6e741674f6e40 languageName: node linkType: hard -"@volar/typescript@npm:~1.11.1": - version: 1.11.1 - resolution: "@volar/typescript@npm:1.11.1" +"@volar/typescript@npm:~1.10.0": + version: 1.10.1 + resolution: "@volar/typescript@npm:1.10.1" dependencies: - "@volar/language-core": "npm:1.11.1" - path-browserify: "npm:^1.0.1" - checksum: 86fe153db3a14d8eb3632784a1d7fcbfbfb51fa5517c3878bfdd49ee8d15a83b1a09f9c589454b7396454c104d3a8e2db3a987dc99b37c33816772fc3e292bf2 + "@volar/language-core": "npm:1.10.1" + checksum: daad1018ac7f9d5b45416ca8f1cabec1448c020669bcc3ad9873c277ed467b1e8a2c5849f272888cfaca5e93683f1fd67cc5532fcd1e7a5f0c3a74ad2d595ffe languageName: node linkType: hard @@ -8811,15 +8768,15 @@ __metadata: languageName: node linkType: hard -"@vue/compiler-core@npm:3.3.9, @vue/compiler-core@npm:^3.3.4": - version: 3.3.9 - resolution: "@vue/compiler-core@npm:3.3.9" +"@vue/compiler-core@npm:3.3.11, @vue/compiler-core@npm:^3.3.4": + version: 3.3.11 + resolution: "@vue/compiler-core@npm:3.3.11" dependencies: - "@babel/parser": "npm:^7.23.3" - "@vue/shared": "npm:3.3.9" + "@babel/parser": "npm:^7.23.5" + "@vue/shared": "npm:3.3.11" estree-walker: "npm:^2.0.2" source-map-js: "npm:^1.0.2" - checksum: b7114c299f765a6df27c9e3cfdd3372644d941aece10518207b4b402778f7be6180da7532f5dc2ae1627e569f81067d27b112787e195692cb5faee3fad254192 + checksum: 576aa8075bd9f4e91e54fdc9fe2d66941a3c81e12c59e1473c2596f57eb5b8fa7327e94d557d7d5da331a8577f9347990ebd807ebd3b28b2684451c23de7f15d languageName: node linkType: hard @@ -8833,13 +8790,13 @@ __metadata: languageName: node linkType: hard -"@vue/compiler-dom@npm:3.3.9, @vue/compiler-dom@npm:^3.2.0, @vue/compiler-dom@npm:^3.3.0": - version: 3.3.9 - resolution: "@vue/compiler-dom@npm:3.3.9" +"@vue/compiler-dom@npm:3.3.11, @vue/compiler-dom@npm:^3.2.0, @vue/compiler-dom@npm:^3.3.0": + version: 3.3.11 + resolution: "@vue/compiler-dom@npm:3.3.11" dependencies: - "@vue/compiler-core": "npm:3.3.9" - "@vue/shared": "npm:3.3.9" - checksum: cc7b731400ddcbd2f7ffc5a64e5de6af42f1c647d178f7a48d63579c5e5cf2a3f39acafeefada6bd82cfa4af6724bd7363faef0522eb2a4c2dec8304e1b36c50 + "@vue/compiler-core": "npm:3.3.11" + "@vue/shared": "npm:3.3.11" + checksum: 1f57289fc6c2e8ea9da65631601f1b329e4b46917d8e05aaa0b3f93e657d7440355f60c2116577276f3447d2b4bb7adebed451a95e7647614ab946319d7e142d languageName: node linkType: hard @@ -8869,21 +8826,21 @@ __metadata: languageName: node linkType: hard -"@vue/compiler-sfc@npm:3.3.9, @vue/compiler-sfc@npm:^3.2.0, @vue/compiler-sfc@npm:^3.2.33": - version: 3.3.9 - resolution: "@vue/compiler-sfc@npm:3.3.9" +"@vue/compiler-sfc@npm:3.3.11, @vue/compiler-sfc@npm:^3.2.0, @vue/compiler-sfc@npm:^3.2.33": + version: 3.3.11 + resolution: "@vue/compiler-sfc@npm:3.3.11" dependencies: - "@babel/parser": "npm:^7.23.3" - "@vue/compiler-core": "npm:3.3.9" - "@vue/compiler-dom": "npm:3.3.9" - "@vue/compiler-ssr": "npm:3.3.9" - "@vue/reactivity-transform": "npm:3.3.9" - "@vue/shared": "npm:3.3.9" + "@babel/parser": "npm:^7.23.5" + "@vue/compiler-core": "npm:3.3.11" + "@vue/compiler-dom": "npm:3.3.11" + "@vue/compiler-ssr": "npm:3.3.11" + "@vue/reactivity-transform": "npm:3.3.11" + "@vue/shared": "npm:3.3.11" estree-walker: "npm:^2.0.2" magic-string: "npm:^0.30.5" - postcss: "npm:^8.4.31" + postcss: "npm:^8.4.32" source-map-js: "npm:^1.0.2" - checksum: a4f346c285268c1b30e5f837f78d0fef995e9bf553c2806d5be62aa66cc12ec6d44db5066433f14c9183f22f0310eeb9f5e872e865eb84638accd0ff7e3c8c76 + checksum: ffd9ef3bc71628d53e95c4ed6a33730962fe519cfdbe784b7ac5ae4090f59207577a8591fcb8671ee1fd57859c57147c519268db590f470a747c9cc9b465b138 languageName: node linkType: hard @@ -8897,48 +8854,47 @@ __metadata: languageName: node linkType: hard -"@vue/compiler-ssr@npm:3.3.9": - version: 3.3.9 - resolution: "@vue/compiler-ssr@npm:3.3.9" +"@vue/compiler-ssr@npm:3.3.11": + version: 3.3.11 + resolution: "@vue/compiler-ssr@npm:3.3.11" dependencies: - "@vue/compiler-dom": "npm:3.3.9" - "@vue/shared": "npm:3.3.9" - checksum: 119b67a3c2a739842f9a4b4b0385986549262586ce4d9eb8bb5d308ace80f7f3a854ef302982bfd3951dc359779b25758a6e53ddaf9e2b1c95b50cd3a7e9ae58 + "@vue/compiler-dom": "npm:3.3.11" + "@vue/shared": "npm:3.3.11" + checksum: 79380e310cdeea792fc369ab9204819a7b61e5765707760d534762013b95180dc9d23cd41b398cf127f9430f10ee030e4154faf27e67cf05737a4566fec003c4 languageName: node linkType: hard -"@vue/language-core@npm:1.8.24": - version: 1.8.24 - resolution: "@vue/language-core@npm:1.8.24" +"@vue/language-core@npm:1.8.15": + version: 1.8.15 + resolution: "@vue/language-core@npm:1.8.15" dependencies: - "@volar/language-core": "npm:~1.11.1" - "@volar/source-map": "npm:~1.11.1" + "@volar/language-core": "npm:~1.10.0" + "@volar/source-map": "npm:~1.10.0" "@vue/compiler-dom": "npm:^3.3.0" + "@vue/reactivity": "npm:^3.3.0" "@vue/shared": "npm:^3.3.0" - computeds: "npm:^0.0.1" - minimatch: "npm:^9.0.3" + minimatch: "npm:^9.0.0" muggle-string: "npm:^0.3.1" - path-browserify: "npm:^1.0.1" vue-template-compiler: "npm:^2.7.14" peerDependencies: typescript: "*" peerDependenciesMeta: typescript: optional: true - checksum: 4bc0c5a1e3d818df1d70c5957deab6c4a9dd85ccd7716596db435d6b42e58e1bca849369c6ab52ebcaf50fe2af1ca750f69f4242e25cc9a60001d035c9701b95 + checksum: 05ec3d660bd26cf05d17e722d1117324e1309360f0be4998c82ccac22689e31a332660086ece6b3f4f43660dfb94d1905eea0aa329b88b2f5afea944b01153e0 languageName: node linkType: hard -"@vue/reactivity-transform@npm:3.3.9": - version: 3.3.9 - resolution: "@vue/reactivity-transform@npm:3.3.9" +"@vue/reactivity-transform@npm:3.3.11": + version: 3.3.11 + resolution: "@vue/reactivity-transform@npm:3.3.11" dependencies: - "@babel/parser": "npm:^7.23.3" - "@vue/compiler-core": "npm:3.3.9" - "@vue/shared": "npm:3.3.9" + "@babel/parser": "npm:^7.23.5" + "@vue/compiler-core": "npm:3.3.11" + "@vue/shared": "npm:3.3.11" estree-walker: "npm:^2.0.2" magic-string: "npm:^0.30.5" - checksum: 43053f09229f1994179491a15bdd13515601074e640781e5419007ee32c68060f0fb13e7c60ee533af91dd7da0b38442bf736fa74bf5597b1181174c11c2642d + checksum: 146629504aadd79980be64c7d4b8358a1dd0ef4f4f42cbcde6b1e6dff2b7a849a3f6ab50be1216e636d53d14889830cfa329a2a14711849a263af09a81d6ccd9 languageName: node linkType: hard @@ -8951,12 +8907,12 @@ __metadata: languageName: node linkType: hard -"@vue/reactivity@npm:3.3.9": - version: 3.3.9 - resolution: "@vue/reactivity@npm:3.3.9" +"@vue/reactivity@npm:3.3.11, @vue/reactivity@npm:^3.3.0": + version: 3.3.11 + resolution: "@vue/reactivity@npm:3.3.11" dependencies: - "@vue/shared": "npm:3.3.9" - checksum: acd95e033f872260e8a8a8561eb44a91ce11c66582b3b31af0d5746372d906c3546173632c6029b53375f196f756eeb9d050f1cc0d77497210d9805df52f4c0d + "@vue/shared": "npm:3.3.11" + checksum: 3897d5fb1130f92fe17b99b1edca96c03ce4e0b28b10945d9cfcdfac589c9ad9623ab8bac06837c34ca6916613b77d596839e224f0e43bf5a05fdff1f01b499a languageName: node linkType: hard @@ -8970,13 +8926,13 @@ __metadata: languageName: node linkType: hard -"@vue/runtime-core@npm:3.3.9": - version: 3.3.9 - resolution: "@vue/runtime-core@npm:3.3.9" +"@vue/runtime-core@npm:3.3.11": + version: 3.3.11 + resolution: "@vue/runtime-core@npm:3.3.11" dependencies: - "@vue/reactivity": "npm:3.3.9" - "@vue/shared": "npm:3.3.9" - checksum: a2fdcaa7ee4c1a1ee18ac75b23596f3b3941b6682949e1164b074a54a9b9722e50fff29de2b771f659b52410e2394b922b940a1b75123ea79fd5e0d967d88a1b + "@vue/reactivity": "npm:3.3.11" + "@vue/shared": "npm:3.3.11" + checksum: c4befb9fd12c9fd34bd0b10e67a3cf48af0d6d6d288e29f529aa1262322cee4f18250b5ac9e9ff613f49b4cf1383e2018ae767fafd91ed389577ff0a688865b6 languageName: node linkType: hard @@ -8991,26 +8947,26 @@ __metadata: languageName: node linkType: hard -"@vue/runtime-dom@npm:3.3.9": - version: 3.3.9 - resolution: "@vue/runtime-dom@npm:3.3.9" +"@vue/runtime-dom@npm:3.3.11": + version: 3.3.11 + resolution: "@vue/runtime-dom@npm:3.3.11" dependencies: - "@vue/runtime-core": "npm:3.3.9" - "@vue/shared": "npm:3.3.9" + "@vue/runtime-core": "npm:3.3.11" + "@vue/shared": "npm:3.3.11" csstype: "npm:^3.1.2" - checksum: 708b0dad90335d42cd5f89a072f2b13934e33bce00d82f642935c0081e8905f6d9ee3eec7a65077070a5336a050bfce46aa8eaf1803a3527d1cebb71add548d4 + checksum: 13bfe4a2f3a829cc40bf142af5bc7018a8b19a12f3741de92ceb732635301cdf450cb5bf70cfc8f7e7922c364ea2d7ae5498fbdafe40e5a967860d37ffb47afc languageName: node linkType: hard -"@vue/server-renderer@npm:3.3.9": - version: 3.3.9 - resolution: "@vue/server-renderer@npm:3.3.9" +"@vue/server-renderer@npm:3.3.11": + version: 3.3.11 + resolution: "@vue/server-renderer@npm:3.3.11" dependencies: - "@vue/compiler-ssr": "npm:3.3.9" - "@vue/shared": "npm:3.3.9" + "@vue/compiler-ssr": "npm:3.3.11" + "@vue/shared": "npm:3.3.11" peerDependencies: - vue: 3.3.9 - checksum: 867faafbabe66bea09ba2be95aa8e67b19fe41fd03a05074f8f67f6ed3c6908a7a3eee0137bfcf1e829d640a4ec67c33b85361b9c0930748c01f9fa4e8f25e34 + vue: 3.3.11 + checksum: 0450d3b4b26f702e4c71fc13e1a5c189b7c6c4c0b15293219267b7527ebf17ed56acbb881321896ccabbf02697efd7059530a9171935014d55816978ceb315a6 languageName: node linkType: hard @@ -9021,10 +8977,20 @@ __metadata: languageName: node linkType: hard -"@vue/shared@npm:3.3.9, @vue/shared@npm:^3.3.0": - version: 3.3.9 - resolution: "@vue/shared@npm:3.3.9" - checksum: abf10852baf4009e838c5c12893a67e4dbb4369ec6be2892ce6294a4115d2087ecd619783bbafe048d154da48dd28763fc6c53114ab490ced45e573b2d69dbc9 +"@vue/shared@npm:3.3.11, @vue/shared@npm:^3.3.0": + version: 3.3.11 + resolution: "@vue/shared@npm:3.3.11" + checksum: 164b904ed6c5a6e9b0d4c6ac38a214770943d5b1196e8af7193f7f9f099706ffd7627e40c95a9b4de430ff7d3523a713c9236ef6e8ca48dd6865606efb7208f5 + languageName: node + linkType: hard + +"@vue/typescript@npm:1.8.15": + version: 1.8.15 + resolution: "@vue/typescript@npm:1.8.15" + dependencies: + "@volar/typescript": "npm:~1.10.0" + "@vue/language-core": "npm:1.8.15" + checksum: c68808d29da93e616cd30bd4dc84aad0bb3d245d45537adc74244cc0fe93cb797e4bbdbdf2a4841b6bce088e6ef1bc70fa279fd2e1aabb794c42d908d8e46087 languageName: node linkType: hard @@ -9360,9 +9326,9 @@ __metadata: linkType: hard "acorn-walk@npm:^8.0.2, acorn-walk@npm:^8.1.1": - version: 8.3.0 - resolution: "acorn-walk@npm:8.3.0" - checksum: 24346e595f507b6e704a60d35f3c5e1aa9891d4fb6a3fc3d856503ab718cc26cabb5e3e1ff0ff8da6ec03d60a8226ebdb602805a94f970e7f797ea3b8b09437f + version: 8.2.0 + resolution: "acorn-walk@npm:8.2.0" + checksum: dbe92f5b2452c93e960c5594e666dd1fae141b965ff2cb4a1e1d0381e3e4db4274c5ce4ffa3d681a86ca2a8d4e29d5efc0670a08e23fd2800051ea387df56ca2 languageName: node linkType: hard @@ -9715,7 +9681,7 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^5.3.0": +"aria-query@npm:^5.1.3, aria-query@npm:^5.3.0": version: 5.3.0 resolution: "aria-query@npm:5.3.0" dependencies: @@ -9756,9 +9722,9 @@ __metadata: linkType: hard "array-equal@npm:^1.0.0": - version: 1.0.2 - resolution: "array-equal@npm:1.0.2" - checksum: c308184b1df488bed0eba1a8835d77789349d3859a334cb60f77df15dc4ab232c185c78b643ae68651eef1b7148942223d72fa1aba218d24ec6cf9637fb49d8e + version: 1.0.0 + resolution: "array-equal@npm:1.0.0" + checksum: 5841f0b823e6806d147d40e262a0f66cb7d3272b9f9ffa8dedb868fc7799cb410ae262a32f6f358baa6c3ee7d6271eeab86b516cdfd8f9a8fa12b4f15a18e119 languageName: node linkType: hard @@ -9944,10 +9910,10 @@ __metadata: languageName: node linkType: hard -"ast-types-flow@npm:^0.0.8": - version: 0.0.8 - resolution: "ast-types-flow@npm:0.0.8" - checksum: f2a0ba8055353b743c41431974521e5e852a9824870cd6fce2db0e538ac7bf4da406bbd018d109af29ff3f8f0993f6a730c9eddbd0abd031fbcb29ca75c1014e +"ast-types-flow@npm:^0.0.7": + version: 0.0.7 + resolution: "ast-types-flow@npm:0.0.7" + checksum: f381529f2da535949ba6cceddbdfaa33b4d5105842e147ec63582f560ea9ecc1a08f66457664f3109841d3053641fa8b9fa94ba607f1ea9f6c804fe5dee44a1d languageName: node linkType: hard @@ -10027,9 +9993,9 @@ __metadata: linkType: hard "async@npm:^3.2.3": - version: 3.2.5 - resolution: "async@npm:3.2.5" - checksum: 1408287b26c6db67d45cb346e34892cee555b8b59e6c68e6f8c3e495cad5ca13b4f218180e871f3c2ca30df4ab52693b66f2f6ff43644760cab0b2198bda79c1 + version: 3.2.4 + resolution: "async@npm:3.2.4" + checksum: b5d02fed64717edf49e35b2b156debd9cf524934ea670108fa5528e7615ed66a5e0bf6c65f832c9483b63aa7f0bffe3e588ebe8d58a539b833798d324516e1c9 languageName: node linkType: hard @@ -10083,14 +10049,7 @@ __metadata: languageName: node linkType: hard -"axe-core@npm:=4.7.0": - version: 4.7.0 - resolution: "axe-core@npm:4.7.0" - checksum: 89ac5712b5932ac7d23398b4cb5ba081c394a086e343acc68ba49c83472706e18e0799804e8388c779dcdacc465377deb29f2714241d3fbb389cf3a6b275c9ba - languageName: node - linkType: hard - -"axe-core@npm:^4.2.0": +"axe-core@npm:^4.2.0, axe-core@npm:^4.6.2": version: 4.8.2 resolution: "axe-core@npm:4.8.2" checksum: ad9e1125ba226bbc73d442996d8b9b35fed9af8bcfa995831e29c3d6b8ddb0d16bc7d18c66c5a685211296ee99fe966ae4d59051ca6fbef2a7ee7408322b9dbe @@ -10117,7 +10076,7 @@ __metadata: languageName: node linkType: hard -"axobject-query@npm:^3.2.1": +"axobject-query@npm:^3.1.1, axobject-query@npm:^3.2.1": version: 3.2.1 resolution: "axobject-query@npm:3.2.1" dependencies: @@ -10501,9 +10460,9 @@ __metadata: linkType: hard "big-integer@npm:^1.6.44": - version: 1.6.52 - resolution: "big-integer@npm:1.6.52" - checksum: 9604224b4c2ab3c43c075d92da15863077a9f59e5d4205f4e7e76acd0cd47e8d469ec5e5dba8d9b32aa233951893b29329ca56ac80c20ce094b4a647a66abae0 + version: 1.6.51 + resolution: "big-integer@npm:1.6.51" + checksum: c8139662d57f8833a44802f4b65be911679c569535ea73c5cfd3c1c8994eaead1b84b6f63e1db63833e4d4cacb6b6a9e5522178113dfdc8e4c81ed8436f1e8cc languageName: node linkType: hard @@ -11061,21 +11020,7 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.14.5, browserslist@npm:^4.21.5, browserslist@npm:^4.21.9, browserslist@npm:^4.22.1": - version: 4.22.1 - resolution: "browserslist@npm:4.22.1" - dependencies: - caniuse-lite: "npm:^1.0.30001541" - electron-to-chromium: "npm:^1.4.535" - node-releases: "npm:^2.0.13" - update-browserslist-db: "npm:^1.0.13" - bin: - browserslist: cli.js - checksum: 6810f2d63f171d0b7b8d38cf091708e00cb31525501810a507839607839320d66e657293b0aa3d7f051ecbc025cb07390a90c037682c1d05d12604991e41050b - languageName: node - linkType: hard - -"browserslist@npm:^4.21.10": +"browserslist@npm:^4.14.5, browserslist@npm:^4.21.10, browserslist@npm:^4.21.5, browserslist@npm:^4.22.1, browserslist@npm:^4.22.2": version: 4.22.2 resolution: "browserslist@npm:4.22.2" dependencies: @@ -11249,6 +11194,26 @@ __metadata: languageName: node linkType: hard +"cacache@npm:^17.0.0": + version: 17.1.4 + resolution: "cacache@npm:17.1.4" + dependencies: + "@npmcli/fs": "npm:^3.1.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^7.7.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^1.0.2" + 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: 21749dcf98c61dd570b179e51573b076c92e3f6c82166d37444242db66b92b1e6c6dc11c6059c027ac7bdef5479b513855059299cc11cda8212c49b0f69a3662 + languageName: node + linkType: hard + "cacache@npm:^18.0.0": version: 18.0.1 resolution: "cacache@npm:18.0.1" @@ -11317,7 +11282,7 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.4, call-bind@npm:^1.0.5": +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5": version: 1.0.5 resolution: "call-bind@npm:1.0.5" dependencies: @@ -11370,14 +11335,7 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001541": - version: 1.0.30001565 - resolution: "caniuse-lite@npm:1.0.30001565" - checksum: b400e0364651a700e39d59449ca6c65b26e2caceecc4b93ae54a01ed1f62d2a7e1333b1dc640d95fbe620ffa5be38fe4dbacd880cd7a1f42fc72bb8de9a2d0c9 - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001538, caniuse-lite@npm:^1.0.30001565": +"caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001538, caniuse-lite@npm:^1.0.30001565": version: 1.0.30001566 resolution: "caniuse-lite@npm:1.0.30001566" checksum: cd163075b1a9feaf9c9f657c3551279fcdac471471d67ee57ab2286c7b5480168e6336e359741b469fa40e94716f0f95ec185d87bd57d58894d66d8c21d7db04 @@ -11590,14 +11548,14 @@ __metadata: languageName: node linkType: hard -"chromatic@npm:^7.2.3": - version: 7.6.0 - resolution: "chromatic@npm:7.6.0" +"chromatic@npm:^9.0.0": + version: 9.1.0 + resolution: "chromatic@npm:9.1.0" bin: chroma: dist/bin.js chromatic: dist/bin.js chromatic-cli: dist/bin.js - checksum: 5ed93689daea8ad22fe3a81e7238357933063905cf5f3acb5a2ec54dbcb5f9ae18c0c66b8bc2d7ed0c909144d9620864f97db70427d10f46de6c7960f6612b2b + checksum: 27d0ff5ef993024301f31d137e9774b051de908d48dcd461c33b51c92e5e7b57cd062eaddafcd02f1c2a98cfe5d5ef26b7fcdf77b76df94e357171074a23b950 languageName: node linkType: hard @@ -11652,11 +11610,11 @@ __metadata: linkType: hard "clean-css@npm:^5.2.2": - version: 5.3.3 - resolution: "clean-css@npm:5.3.3" + version: 5.3.2 + resolution: "clean-css@npm:5.3.2" dependencies: source-map: "npm:~0.6.0" - checksum: 381de7523e23f3762eb180e327dcc0cedafaf8cb1cd8c26b7cc1fc56e0829a92e734729c4f955394d65ed72fb62f82d8baf78af34b33b8a7d41ebad2accdd6fb + checksum: 315e0e81306524bd2c1905fa6823bf7658be40799b78f446e5e6922808718d2b80266fb3e96842a06176fa683bc2c1a0d2827b08d154e2f9cf136d7bda909d33 languageName: node linkType: hard @@ -11707,9 +11665,9 @@ __metadata: linkType: hard "cli-spinners@npm:^2.5.0": - version: 2.9.2 - resolution: "cli-spinners@npm:2.9.2" - checksum: 907a1c227ddf0d7a101e7ab8b300affc742ead4b4ebe920a5bf1bc6d45dce2958fcd195eb28fa25275062fe6fa9b109b93b63bc8033396ed3bcb50297008b3a3 + version: 2.9.1 + resolution: "cli-spinners@npm:2.9.1" + checksum: c9b1152bd387e5b76823bdee6f19079c4017994d352627216e5d3dab9220a8402514519ad96a0a12120b80752fead98d1e7a7a5f56ce32125f92778ef47bdd8c languageName: node linkType: hard @@ -12041,9 +11999,9 @@ __metadata: linkType: hard "component-emitter@npm:^1.2.1": - version: 1.3.1 - resolution: "component-emitter@npm:1.3.1" - checksum: e4900b1b790b5e76b8d71b328da41482118c0f3523a516a41be598dc2785a07fd721098d9bf6e22d89b19f4fa4e1025160dc00317ea111633a3e4f75c2b86032 + version: 1.3.0 + resolution: "component-emitter@npm:1.3.0" + checksum: 68774a0a3754fb6c0ba53c2e88886dfbd0c773931066abb1d7fd1b0c893b2a838d8f088ab4dca1f18cc1a4fc2e6932019eba3ded2d931b5ba2241ce40e93a24f languageName: node linkType: hard @@ -12078,13 +12036,6 @@ __metadata: languageName: node linkType: hard -"computeds@npm:^0.0.1": - version: 0.0.1 - resolution: "computeds@npm:0.0.1" - checksum: 8a8736f1f43e4a99286519785d71a10ece8f444a2fa1fc2fe1f03dedf63f3477b45094002c85a2826f7631759c9f5a00b4ace47456997f253073fc525e8983de - languageName: node - linkType: hard - "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" @@ -12298,9 +12249,9 @@ __metadata: linkType: hard "core-js-pure@npm:^3.23.3, core-js-pure@npm:^3.30.2": - version: 3.33.3 - resolution: "core-js-pure@npm:3.33.3" - checksum: 97cf39cc013f6a4f77700762de36b495228b3c087fc04b61e86bfbfb475595529966cabbcf37e738e3a468c486e815c85118d120cc6fc4960da08a14caf69826 + version: 3.33.0 + resolution: "core-js-pure@npm:3.33.0" + checksum: dbb683bf6c5d3671129e5029e0f8047a388818bb9720352c839f46ac5627b5fed763135b9a1df89452f2afee78e49639def6063e82fc6995c4e98c31f2892db5 languageName: node linkType: hard @@ -12312,9 +12263,9 @@ __metadata: linkType: hard "core-js@npm:^3.8.2": - version: 3.33.3 - resolution: "core-js@npm:3.33.3" - checksum: 08abdc9470c8228b9d09f61e62ab312738681202c4c34e9638889125b304b235f34c4fe22e9d41c20906ac0fcc807dca57c5ff7d6b90021bf64e8fe23461d9ab + version: 3.33.0 + resolution: "core-js@npm:3.33.0" + checksum: f51192f311c2d75b94ebe4eb7210f91df2cb6de101b96da1a65f43cf52b9c5cfe1ce5ebebb86281e452d2ee949730afb72fb7ac826c655c9de3a92f793cf3b80 languageName: node linkType: hard @@ -12636,9 +12587,9 @@ __metadata: linkType: hard "csstype@npm:^3.0.2, csstype@npm:^3.1.2": - version: 3.1.2 - resolution: "csstype@npm:3.1.2" - checksum: 32c038af259897c807ac738d9eab16b3d86747c72b09d5c740978e06f067f9b7b1737e1b75e407c7ab1fe1543dc95f20e202b4786aeb1b8d3bdf5d5ce655e6c6 + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248 languageName: node linkType: hard @@ -12650,8 +12601,8 @@ __metadata: linkType: hard "danger@npm:^11.2.6": - version: 11.3.0 - resolution: "danger@npm:11.3.0" + version: 11.3.1 + resolution: "danger@npm:11.3.1" dependencies: "@gitbeaker/core": "npm:^35.8.1" "@gitbeaker/node": "npm:^35.8.1" @@ -12701,7 +12652,7 @@ __metadata: danger-process: distribution/commands/danger-process.js danger-reset-status: distribution/commands/danger-reset-status.js danger-runner: distribution/commands/danger-runner.js - checksum: 568a6c2bdbef663c9d1fca36651939b39bf7a158867bdf955054bdc0f16533658aaf258ab9bc1c1bf517609b6eabe776e3d24a0364903a5a38bf67d8d690b252 + checksum: 0a2a7655817200fb3488645787268842ba6c8fadbf6fa8c3e6d13718564a6f915ef1f70020686b9b8b94a050fb80eaeb8b6abf0f8525162ddd739da5ad51d432 languageName: node linkType: hard @@ -12849,27 +12800,27 @@ __metadata: linkType: hard "deep-equal@npm:^1.1.1": - version: 1.1.2 - resolution: "deep-equal@npm:1.1.2" + version: 1.1.1 + resolution: "deep-equal@npm:1.1.1" dependencies: - is-arguments: "npm:^1.1.1" - is-date-object: "npm:^1.0.5" - is-regex: "npm:^1.1.4" - object-is: "npm:^1.1.5" + is-arguments: "npm:^1.0.4" + is-date-object: "npm:^1.0.1" + is-regex: "npm:^1.0.4" + object-is: "npm:^1.0.1" object-keys: "npm:^1.1.1" - regexp.prototype.flags: "npm:^1.5.1" - checksum: cd85d822d18e9b3e1532d0f6ba412d229aa9d22881d70da161674428ae96e47925191296f7cda29306bac252889007da40ed8449363bd1c96c708acb82068a00 + regexp.prototype.flags: "npm:^1.2.0" + checksum: 473d5dd1d707afd5ad3068864765590591b049d0e0d9a01931599dbbd820e35f09d0a42faa6e4644deb7cf6b7dc90f7bfdf5559f42279d67f714209b62036212 languageName: node linkType: hard "deep-equal@npm:^2.0.5": - version: 2.2.3 - resolution: "deep-equal@npm:2.2.3" + 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.5" + call-bind: "npm:^1.0.2" es-get-iterator: "npm:^1.1.3" - get-intrinsic: "npm:^1.2.2" + 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" @@ -12879,12 +12830,12 @@ __metadata: 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" + 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.13" - checksum: a48244f90fa989f63ff5ef0cc6de1e4916b48ea0220a9c89a378561960814794a5800c600254482a2c8fd2e49d6c2e196131dc983976adb024c94a42dfe4949f + which-typed-array: "npm:^1.1.9" + checksum: 07b46a9a848efdab223abc7e3ba612ef9168d88970c3400df185d5840a30ca384749c996ae5d7af844d6b27c42587fb73a4445c63e38aac77c2d0ed9a63faa87 languageName: node linkType: hard @@ -13016,9 +12967,9 @@ __metadata: linkType: hard "defu@npm:^6.1.2": - version: 6.1.3 - resolution: "defu@npm:6.1.3" - checksum: 60d0d9a6e328148d5313fe0239ba3777701291f35570b52562454653d953fec5281b084514540f8d3b60d61bad9e39b52e95b3c0451631ded220ad8fdc893455 + version: 6.1.2 + resolution: "defu@npm:6.1.2" + checksum: ceb467f8f30d4000ae5300105904736113826a3d4124640b70e145b243d6c78c868de03634038d870e0855ff4cdfd17324a8caf7386229501a5bb776adb682f4 languageName: node linkType: hard @@ -13336,9 +13287,9 @@ __metadata: linkType: hard "domain-browser@npm:^4.22.0": - version: 4.23.0 - resolution: "domain-browser@npm:4.23.0" - checksum: dfcc6ba070a2c968a4d922e7d99ef440d1076812af0d983404aadf64729f746bb4a0ad2c5e73ccd5d9cf41bc79037f2a1e4a915bdf33d07e0d77f487b635b5b2 + version: 4.22.0 + resolution: "domain-browser@npm:4.22.0" + checksum: 2ef7eda6d2161038fda0c9aa4c9e18cc7a0baa89ea6be975d449527c2eefd4b608425db88508e2859acc472f46f402079274b24bd75e3fb506f28c5dba203129 languageName: node linkType: hard @@ -13573,13 +13524,6 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.535": - version: 1.4.600 - resolution: "electron-to-chromium@npm:1.4.600" - checksum: 7f4a52ed08317ccf1ecb3eb78d29dd6cf13c54b3613bd511638d2469a05cff995f332688fb26b4c63b61fd2b1e6e12765fec46cb10fd4d969d27b6f739a2d1d0 - languageName: node - linkType: hard - "electron-to-chromium@npm:^1.4.601": version: 1.4.601 resolution: "electron-to-chromium@npm:1.4.601" @@ -13981,24 +13925,24 @@ __metadata: linkType: hard "es-abstract@npm:^1.22.1": - version: 1.22.3 - resolution: "es-abstract@npm:1.22.3" + version: 1.22.2 + resolution: "es-abstract@npm:1.22.2" dependencies: array-buffer-byte-length: "npm:^1.0.0" arraybuffer.prototype.slice: "npm:^1.0.2" available-typed-arrays: "npm:^1.0.5" - call-bind: "npm:^1.0.5" + call-bind: "npm:^1.0.2" es-set-tostringtag: "npm:^2.0.1" es-to-primitive: "npm:^1.2.1" function.prototype.name: "npm:^1.1.6" - get-intrinsic: "npm:^1.2.2" + get-intrinsic: "npm:^1.2.1" get-symbol-description: "npm:^1.0.0" globalthis: "npm:^1.0.3" gopd: "npm:^1.0.1" + has: "npm:^1.0.3" has-property-descriptors: "npm:^1.0.0" has-proto: "npm:^1.0.1" has-symbols: "npm:^1.0.3" - hasown: "npm:^2.0.0" internal-slot: "npm:^1.0.5" is-array-buffer: "npm:^3.0.2" is-callable: "npm:^1.2.7" @@ -14008,7 +13952,7 @@ __metadata: is-string: "npm:^1.0.7" is-typed-array: "npm:^1.1.12" is-weakref: "npm:^1.0.2" - object-inspect: "npm:^1.13.1" + object-inspect: "npm:^1.12.3" object-keys: "npm:^1.1.1" object.assign: "npm:^4.1.4" regexp.prototype.flags: "npm:^1.5.1" @@ -14022,8 +13966,8 @@ __metadata: typed-array-byte-offset: "npm:^1.0.0" typed-array-length: "npm:^1.0.4" unbox-primitive: "npm:^1.0.2" - which-typed-array: "npm:^1.1.13" - checksum: da31ec43b1c8eb47ba8a17693cac143682a1078b6c3cd883ce0e2062f135f532e93d873694ef439670e1f6ca03195118f43567ba6f33fb0d6c7daae750090236 + which-typed-array: "npm:^1.1.11" + checksum: a491c640a01b7c18f3cc626a3d08b5c67f8d3dac70ff8b4268cda6fa0ebed80bb028ff3ee731137512e054d39e98d02575144da904fe28045019fc59e503f1f8 languageName: node linkType: hard @@ -14044,7 +13988,7 @@ __metadata: languageName: node linkType: hard -"es-iterator-helpers@npm:^1.0.12, es-iterator-helpers@npm:^1.0.15": +"es-iterator-helpers@npm:^1.0.12": version: 1.0.15 resolution: "es-iterator-helpers@npm:1.0.15" dependencies: @@ -14081,22 +14025,22 @@ __metadata: linkType: hard "es-set-tostringtag@npm:^2.0.1": - version: 2.0.2 - resolution: "es-set-tostringtag@npm:2.0.2" + version: 2.0.1 + resolution: "es-set-tostringtag@npm:2.0.1" dependencies: - get-intrinsic: "npm:^1.2.2" + get-intrinsic: "npm:^1.1.3" + has: "npm:^1.0.3" has-tostringtag: "npm:^1.0.0" - hasown: "npm:^2.0.0" - checksum: 176d6bd1be31dd0145dcceee62bb78d4a5db7f81db437615a18308a6f62bcffe45c15081278413455e8cf0aad4ea99079de66f8de389605942dfdacbad74c2d5 + checksum: 9af096365e3861bb29755cc5f76f15f66a7eab0e83befca396129090c1d9737e54090278b8e5357e97b5f0a5b0459fca07c40c6740884c2659cbf90ef8e508cc languageName: node linkType: hard "es-shim-unscopables@npm:^1.0.0": - version: 1.0.2 - resolution: "es-shim-unscopables@npm:1.0.2" + version: 1.0.0 + resolution: "es-shim-unscopables@npm:1.0.0" dependencies: - hasown: "npm:^2.0.0" - checksum: f495af7b4b7601a4c0cfb893581c352636e5c08654d129590386a33a0432cf13a7bdc7b6493801cadd990d838e2839b9013d1de3b880440cb537825e834fe783 + has: "npm:^1.0.3" + checksum: d54a66239fbd19535b3e50333913260394f14d2d7adb136a95396a13ca584bab400cf9cb2ffd9232f3fe2f0362540bd3a708240c493e46e13fe0b90cfcfedc3d languageName: node linkType: hard @@ -14150,7 +14094,7 @@ __metadata: languageName: node linkType: hard -"esbuild-wasm@npm:0.19.5": +"esbuild-wasm@npm:0.19.5, esbuild-wasm@npm:>=0.13.8": version: 0.19.5 resolution: "esbuild-wasm@npm:0.19.5" bin: @@ -14159,15 +14103,6 @@ __metadata: languageName: node linkType: hard -"esbuild-wasm@npm:>=0.13.8": - version: 0.19.8 - resolution: "esbuild-wasm@npm:0.19.8" - bin: - esbuild: bin/esbuild - checksum: 453831a62c64f090f444cfb205952592478974dad7f7596084c7c13d41993500c84002c9bdd42db4b460430f762186ff00f5ca2d39d48cf81391258c438cc585 - languageName: node - linkType: hard - "esbuild@npm:^0.18.0": version: 0.18.20 resolution: "esbuild@npm:0.18.20" @@ -14488,28 +14423,28 @@ __metadata: linkType: hard "eslint-plugin-jsx-a11y@npm:^6.4.1": - version: 6.8.0 - resolution: "eslint-plugin-jsx-a11y@npm:6.8.0" + version: 6.7.1 + resolution: "eslint-plugin-jsx-a11y@npm:6.7.1" dependencies: - "@babel/runtime": "npm:^7.23.2" - aria-query: "npm:^5.3.0" - array-includes: "npm:^3.1.7" - array.prototype.flatmap: "npm:^1.3.2" - ast-types-flow: "npm:^0.0.8" - axe-core: "npm:=4.7.0" - axobject-query: "npm:^3.2.1" + "@babel/runtime": "npm:^7.20.7" + aria-query: "npm:^5.1.3" + array-includes: "npm:^3.1.6" + array.prototype.flatmap: "npm:^1.3.1" + ast-types-flow: "npm:^0.0.7" + axe-core: "npm:^4.6.2" + axobject-query: "npm:^3.1.1" damerau-levenshtein: "npm:^1.0.8" emoji-regex: "npm:^9.2.2" - es-iterator-helpers: "npm:^1.0.15" - hasown: "npm:^2.0.0" - jsx-ast-utils: "npm:^3.3.5" - language-tags: "npm:^1.0.9" + has: "npm:^1.0.3" + jsx-ast-utils: "npm:^3.3.3" + language-tags: "npm:=1.0.5" minimatch: "npm:^3.1.2" - object.entries: "npm:^1.1.7" - object.fromentries: "npm:^2.0.7" + object.entries: "npm:^1.1.6" + object.fromentries: "npm:^2.0.6" + semver: "npm:^6.3.0" peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 199b883e526e6f9d7c54cb3f094abc54f11a1ec816db5fb6cae3b938eb0e503acc10ccba91ca7451633a9d0b9abc0ea03601844a8aba5fe88c5e8897c9ac8f49 + checksum: 41ad3d0c8036b36cd475685c1ad639157f403b16e8ac23c07f1dbe0226ccf8458f2805cbd5cc8e56856a5d8a356f3276e3139274d819476ccad80c41b9245502 languageName: node linkType: hard @@ -14625,17 +14560,16 @@ __metadata: linkType: hard "eslint@npm:^8.28.0": - version: 8.54.0 - resolution: "eslint@npm:8.54.0" + version: 8.50.0 + resolution: "eslint@npm:8.50.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^2.1.3" - "@eslint/js": "npm:8.54.0" - "@humanwhocodes/config-array": "npm:^0.11.13" + "@eslint/eslintrc": "npm:^2.1.2" + "@eslint/js": "npm:8.50.0" + "@humanwhocodes/config-array": "npm:^0.11.11" "@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" @@ -14668,7 +14602,7 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: 4f205f832bdbd0218cde374b067791f4f76d7abe8de86b2dc849c273899051126d912ebf71531ee49b8eeaa22cad77febdc8f2876698dc2a76e84a8cb976af22 + checksum: 91629528cb240bc61b25480574d35cd54ed444cb61a70fa76f7d5ab26af2b637b94bf8fba94403c9052c1baa944a169b6ab9cc8070496e925f7eeef730ff9038 languageName: node linkType: hard @@ -15519,13 +15453,13 @@ __metadata: linkType: hard "flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" + version: 3.1.0 + resolution: "flat-cache@npm:3.1.0" dependencies: - flatted: "npm:^3.2.9" + flatted: "npm:^3.2.7" keyv: "npm:^4.5.3" rimraf: "npm:^3.0.2" - checksum: b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75 + checksum: fcbf70a2a7d8664ef8f94e25d8b4a05d0594aee8ba0b53b5b7f6287877e8e5080ae893fc4a71fb3d803c7659aeaf801d49f12183b954e21ecd98a1d74012167e languageName: node linkType: hard @@ -15538,7 +15472,7 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^3.2.9": +"flatted@npm:^3.2.7": version: 3.2.9 resolution: "flatted@npm:3.2.9" checksum: 5c91c5a0a21bbc0b07b272231e5b4efe6b822bcb4ad317caf6bb06984be4042a9e9045026307da0fdb4583f1f545e317a67ef1231a59e71f7fced3cc429cfc53 @@ -15546,9 +15480,9 @@ __metadata: linkType: hard "flow-parser@npm:0.*": - version: 0.223.0 - resolution: "flow-parser@npm:0.223.0" - checksum: eaf6794e2343230e841752e461c58194aa7aafddce52cc7980627fd138ba7fdb3628c83fe22905c5796101fde4833d13426e128ba93d1222420d613f8f7b2c45 + version: 0.217.2 + resolution: "flow-parser@npm:0.217.2" + checksum: d61127283db052fddf8275b070eea76dda5d2926aea3d8659250e168d69478f4ebdbc2bede83aa05c29f464c420ce1d701691278d3041af0492bfc16193277b5 languageName: node linkType: hard @@ -16036,14 +15970,14 @@ __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.0, get-func-name@npm:^2.0.2": version: 2.0.2 resolution: "get-func-name@npm:2.0.2" checksum: 89830fd07623fa73429a711b9daecdb304386d237c71268007f788f113505ef1d4cc2d0b9680e072c5082490aec9df5d7758bf5ac6f1c37062855e8e3dc0b9df languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2": +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1": version: 1.2.2 resolution: "get-intrinsic@npm:1.2.2" dependencies: @@ -16308,11 +16242,11 @@ __metadata: linkType: hard "globals@npm:^13.19.0": - version: 13.23.0 - resolution: "globals@npm:13.23.0" + version: 13.22.0 + resolution: "globals@npm:13.22.0" dependencies: type-fest: "npm:^0.20.2" - checksum: fc05e184b3be59bffa2580f28551a12a758c3a18df4be91444202982c76f13f52821ad54ffaf7d3f2a4d2498fdf54aeaca8d4540fd9e860a9edb09d34ef4c507 + checksum: e7fda8fe048a3b4fdfb95602b7dcd87d719f4b3797a6ba7f43e50fe148cfe20edfd3abeb16cc301caf679ca0f3e059b561e2d5060f2133f20f52c85bb16ac394 languageName: node linkType: hard @@ -16438,7 +16372,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.3, 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": +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, 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: 386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 @@ -16556,11 +16490,11 @@ __metadata: linkType: hard "has-property-descriptors@npm:^1.0.0": - version: 1.0.1 - resolution: "has-property-descriptors@npm:1.0.1" + version: 1.0.0 + resolution: "has-property-descriptors@npm:1.0.0" dependencies: - get-intrinsic: "npm:^1.2.2" - checksum: d62ba94b40150b00d621bc64a6aedb5bf0ee495308b4b7ed6bac856043db3cdfb1db553ae81cec91c9d2bd82057ff0e94145e7fa25d5aa5985ed32e0921927f6 + get-intrinsic: "npm:^1.1.1" + checksum: d4ca882b6960d6257bd28baa3ddfa21f068d260411004a093b30ca357c740e11e985771c85216a6d1eef4161e862657f48c4758ec8ab515223b3895200ad164b languageName: node linkType: hard @@ -16633,6 +16567,13 @@ __metadata: languageName: node linkType: hard +"has@npm:^1.0.3": + version: 1.0.4 + resolution: "has@npm:1.0.4" + checksum: 82c1220573dc1f0a014a5d6189ae52a1f820f99dfdc00323c3a725b5002dcb7f04e44f460fea7af068474b2dd7c88cbe1846925c84017be9e31e1708936d305b + languageName: node + linkType: hard + "hash-base@npm:^3.0.0": version: 3.1.0 resolution: "hash-base@npm:3.1.0" @@ -16883,8 +16824,8 @@ __metadata: linkType: hard "html-webpack-plugin@npm:^5.5.0": - version: 5.5.3 - resolution: "html-webpack-plugin@npm:5.5.3" + version: 5.5.4 + resolution: "html-webpack-plugin@npm:5.5.4" dependencies: "@types/html-minifier-terser": "npm:^6.0.0" html-minifier-terser: "npm:^6.0.2" @@ -16893,7 +16834,7 @@ __metadata: tapable: "npm:^2.0.0" peerDependencies: webpack: ^5.20.0 - checksum: 7ba0d0f87d08f5c4c51f821842d736ec1762940bc39798932528adaec1e9cca8f52944987b88789007f5706d15110edbdfa30df445d61c6628b02ebe163c4f42 + checksum: fd7b9882a7b44b78711d3489fd571308372a915924c2e619ad8a08d9100a17ae8899a3d3bb1934c326d45bf942330a693206088ba80f292dd6574d9e33c67a43 languageName: node linkType: hard @@ -17224,11 +17165,11 @@ __metadata: linkType: hard "ignore-walk@npm:^6.0.0": - version: 6.0.4 - resolution: "ignore-walk@npm:6.0.4" + version: 6.0.3 + resolution: "ignore-walk@npm:6.0.3" dependencies: minimatch: "npm:^9.0.0" - checksum: 6dd2ea369f3d32d90cb26ca6647bc6e112ed483433270ed89b8055dd708d00777c2cbc85b93b43f53e2100851277fd1539796a758ae4c64b84445d4f1da5fd8f + checksum: 327759df98c7b4d4039e4c4913507ca372b2a38bb44a1c2bd7ff2ffc7eee7a379025301e478d7640672f0007807c5ec5cc2e41c5226b9058aa58f00b600d3731 languageName: node linkType: hard @@ -17240,9 +17181,9 @@ __metadata: linkType: hard "ignore@npm:^5.0.0, ignore@npm:^5.0.4, ignore@npm:^5.0.5, ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4": - version: 5.3.0 - resolution: "ignore@npm:5.3.0" - checksum: dc06bea5c23aae65d0725a957a0638b57e235ae4568dda51ca142053ed2c352de7e3bc93a69b2b32ac31966a1952e9a93c5ef2e2ab7c6b06aef9808f6b55b571 + version: 5.2.4 + resolution: "ignore@npm:5.2.4" + checksum: 7c7cd90edd9fea6e037f9b9da4b01bf0a86b198ce78345f9bbd983929d68ff14830be31111edc5d70c264921f4962404d75b7262b4d9cc3bc12381eccbd03096 languageName: node linkType: hard @@ -17392,13 +17333,13 @@ __metadata: linkType: hard "internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5": - version: 1.0.6 - resolution: "internal-slot@npm:1.0.6" + version: 1.0.5 + resolution: "internal-slot@npm:1.0.5" dependencies: - get-intrinsic: "npm:^1.2.2" - hasown: "npm:^2.0.0" + get-intrinsic: "npm:^1.2.0" + has: "npm:^1.0.3" side-channel: "npm:^1.0.4" - checksum: aa37cafc8ffbf513a340de58f40d5017b4949d99722d7e4f0e24b182455bdd258000d4bb1d7b4adcf9f8979b97049b99fe9defa9db8e18a78071d2637ac143fb + checksum: 66d8a66b4b5310c042e8ad00ce895dc55cb25165a3a7da0d7862ca18d69d3b1ba86511b4bf3baf4273d744d3f6e9154574af45189ef11135a444945309e39e4a languageName: node linkType: hard @@ -17439,12 +17380,21 @@ __metadata: languageName: node linkType: hard -"is-accessor-descriptor@npm:^1.0.1": - version: 1.0.1 - resolution: "is-accessor-descriptor@npm:1.0.1" +"is-accessor-descriptor@npm:^0.1.6": + version: 0.1.6 + resolution: "is-accessor-descriptor@npm:0.1.6" dependencies: - hasown: "npm:^2.0.0" - checksum: d034034074c5ffeb6c868e091083182279db1a956f49f8d1494cecaa0f8b99d706556ded2a9b20d9aa290549106eef8204d67d8572902e06dcb1add6db6b524d + kind-of: "npm:^3.0.2" + checksum: f2c314b314ec6e8a6e559351bff3c7ee9aed7a5e9c6f61dd8cb9e1382c8bfe33dca3f0e0af13daf9ded9e6e66390ff23b4acfb615d7a249009a51506a7b0f151 + languageName: node + linkType: hard + +"is-accessor-descriptor@npm:^1.0.0": + version: 1.0.0 + resolution: "is-accessor-descriptor@npm:1.0.0" + dependencies: + kind-of: "npm:^6.0.0" + checksum: d68edafd8ef133e9003837f3c80f4e5b82b12ab5456c772d1796857671ae83e3a426ed225a28a7e35bceabbce68c1f1ffdabf47e6d53f5a4d6c4558776ad3c20 languageName: node linkType: hard @@ -17575,7 +17525,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1, is-core-module@npm:^2.8.1": +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1, is-core-module@npm:^2.8.1, is-core-module@npm:^2.9.0": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" dependencies: @@ -17584,12 +17534,21 @@ __metadata: languageName: node linkType: hard -"is-data-descriptor@npm:^1.0.1": - version: 1.0.1 - resolution: "is-data-descriptor@npm:1.0.1" +"is-data-descriptor@npm:^0.1.4": + version: 0.1.4 + resolution: "is-data-descriptor@npm:0.1.4" dependencies: - hasown: "npm:^2.0.0" - checksum: ad3acc372e3227f87eb8cdba112c343ca2a67f1885aecf64f02f901cb0858a1fc9488ad42135ab102e9d9e71a62b3594740790bb103a9ba5da830a131a89e3e8 + kind-of: "npm:^3.0.2" + checksum: 32fda7e966b2c1f093230d5ef2aad1bb86e43e7280da50961e38ec31dbd8a50570a2911fd45277d321074a0762adc98e8462bb62820462594128857225e90d21 + languageName: node + linkType: hard + +"is-data-descriptor@npm:^1.0.0": + version: 1.0.0 + resolution: "is-data-descriptor@npm:1.0.0" + dependencies: + kind-of: "npm:^6.0.0" + checksum: bed31385d7d1a0dbb2ab3077faf2188acf42609192dca4e320ed7b3dc14a9d70c00658956cdaa2c0402be136c6b56e183973ad81b730fd90ab427fb6fd3608be languageName: node linkType: hard @@ -17624,22 +17583,24 @@ __metadata: linkType: hard "is-descriptor@npm:^0.1.0": - version: 0.1.7 - resolution: "is-descriptor@npm:0.1.7" + version: 0.1.6 + resolution: "is-descriptor@npm:0.1.6" dependencies: - is-accessor-descriptor: "npm:^1.0.1" - is-data-descriptor: "npm:^1.0.1" - checksum: f5960b9783f508aec570465288cb673d4b3cc4aae4e6de970c3afd9a8fc1351edcb85d78b2cce2ec5251893a423f73263cab3bb94cf365a8d71b5d510a116392 + is-accessor-descriptor: "npm:^0.1.6" + is-data-descriptor: "npm:^0.1.4" + kind-of: "npm:^5.0.0" + checksum: 6b8f5617b764ef8c6be3d54830184357e6cdedd8e0eddf1b97d0658616ac170bfdbc7c1ad00e0aa9f5b767acdb9d6c63d4df936501784b34936bd0f9acf3b665 languageName: node linkType: hard "is-descriptor@npm:^1.0.0, is-descriptor@npm:^1.0.2": - version: 1.0.3 - resolution: "is-descriptor@npm:1.0.3" + version: 1.0.2 + resolution: "is-descriptor@npm:1.0.2" dependencies: - is-accessor-descriptor: "npm:^1.0.1" - is-data-descriptor: "npm:^1.0.1" - checksum: b4ee667ea787d3a0be4e58536087fd0587de2b0b6672fbfe288f5b8d831ac4b79fd987f31d6c2d4e5543a42c97a87428bc5215ce292a1a47070147793878226f + is-accessor-descriptor: "npm:^1.0.0" + is-data-descriptor: "npm:^1.0.0" + kind-of: "npm:^6.0.2" + checksum: a05169c7a87feb88fc155e3ada469090cfabb5a548a3f794358b511cc47a0871b8b95e7345be4925a22ef3df585c3923b31943b3ad6255ce563a9d97f2e221e0 languageName: node linkType: hard @@ -17914,7 +17875,7 @@ __metadata: languageName: node linkType: hard -"is-regex@npm:^1.0.3, is-regex@npm:^1.1.4": +"is-regex@npm:^1.0.3, is-regex@npm:^1.0.4, is-regex@npm:^1.1.4": version: 1.1.4 resolution: "is-regex@npm:1.1.4" dependencies: @@ -18117,9 +18078,9 @@ __metadata: 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: 6c7ff2106769e5f592ded1fb418f9f73b4411fd5a084387a5410538332b6567cd1763ff6b6cadca9b9eb2c443cce2f7ea7d7f1b8d315f9ce58539793b1e0922b + version: 3.2.0 + resolution: "istanbul-lib-coverage@npm:3.2.0" + checksum: 10ecb00a50cac2f506af8231ce523ffa1ac1310db0435c8ffaabb50c1d72539906583aa13c84f8835dc103998b9989edc3c1de989d2e2a96a91a9ba44e5db6b9 languageName: node linkType: hard @@ -18833,11 +18794,11 @@ __metadata: linkType: hard "jiti@npm:^1.18.2": - version: 1.21.0 - resolution: "jiti@npm:1.21.0" + version: 1.20.0 + resolution: "jiti@npm:1.20.0" bin: jiti: bin/jiti.js - checksum: 7f361219fe6c7a5e440d5f1dba4ab763a5538d2df8708cdc22561cf25ea3e44b837687931fca7cdd8cdd9f567300e90be989dd1321650045012d8f9ed6aab07f + checksum: e71999db5e436d38c32ca713c3688b5da2a686f264584d927dcca80a4eaece83af7dd32c047524e74084bb11bdfa148f5f91b7e9a0044b4803feffe3c2c30dbc languageName: node linkType: hard @@ -19059,9 +19020,9 @@ __metadata: linkType: hard "json-parse-even-better-errors@npm:^3.0.0": - version: 3.0.1 - resolution: "json-parse-even-better-errors@npm:3.0.1" - checksum: bc40600b14231dff1ff911d269c7ed89fbf3dbedf25cad3f47c10ff9cbb998ce03921372a17f27f3c7cfed76e679bc6c02a7b4cb2604b0ba68cd51ed16899492 + version: 3.0.0 + resolution: "json-parse-even-better-errors@npm:3.0.0" + checksum: 128de17135e7af655ed83fc26dab0fe54faf43b3517fa73dcd997cce6e05a445932664f085ec6dbc219aeb0c592e53ef10d2d6dee4a8e9211ea901b8e6dd0b52 languageName: node linkType: hard @@ -19087,14 +19048,11 @@ __metadata: linkType: hard "json-stable-stringify@npm:^1.0.1": - version: 1.1.0 - resolution: "json-stable-stringify@npm:1.1.0" + version: 1.0.2 + resolution: "json-stable-stringify@npm:1.0.2" dependencies: - call-bind: "npm:^1.0.5" - isarray: "npm:^2.0.5" jsonify: "npm:^0.0.1" - object-keys: "npm:^1.1.1" - checksum: 8888ac86dbf55c1d494bdf40705171c30884686911c37383d3aab777754bf5c1d60dc7a4dfd67f32ba37b184da5c99948a382f1c2912895a35453002e253314b + checksum: 502d021c3c59c09587faa40d7693d77c00460fd6c68bae95d6e35804909ec8c4aec71b136d3a09df61a7ebf803eb6e820f23ede76b77e74b8b02c76afb2ada8c languageName: node linkType: hard @@ -19229,7 +19187,7 @@ __metadata: languageName: node linkType: hard -"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5": +"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.3": version: 3.3.5 resolution: "jsx-ast-utils@npm:3.3.5" dependencies: @@ -19293,11 +19251,11 @@ __metadata: linkType: hard "keyv@npm:^4.0.0, keyv@npm:^4.5.3": - version: 4.5.4 - resolution: "keyv@npm:4.5.4" + version: 4.5.3 + resolution: "keyv@npm:4.5.3" dependencies: json-buffer: "npm:3.0.1" - checksum: aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e + checksum: 7d3fc0469962bdff75ce92402b216a23d146e0caad011424947b32b95ffc4b91df12b1206026e6e945e7f80b3729a3109c0c3984f23038d738d355491179dd79 languageName: node linkType: hard @@ -19319,7 +19277,14 @@ __metadata: languageName: node linkType: hard -"kind-of@npm:^6.0.2": +"kind-of@npm:^5.0.0": + version: 5.1.0 + resolution: "kind-of@npm:5.1.0" + checksum: fe85b7a2ed4b4d5a12e16e01d00d5c336e1760842fe0da38283605b9880c984288935e87b13138909e4d23d2d197a1d492f7393c6638d2c0fab8a900c4fb0392 + languageName: node + linkType: hard + +"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2": version: 6.0.3 resolution: "kind-of@npm:6.0.3" checksum: 61cdff9623dabf3568b6445e93e31376bee1cdb93f8ba7033d86022c2a9b1791a1d9510e026e6465ebd701a6dd2f7b0808483ad8838341ac52f003f512e0b4c4 @@ -19354,29 +19319,29 @@ __metadata: languageName: node linkType: hard -"language-subtag-registry@npm:^0.3.20": +"language-subtag-registry@npm:~0.3.2": version: 0.3.22 resolution: "language-subtag-registry@npm:0.3.22" checksum: d1e09971260a7cd3b9fdeb190d33af0b6e99c8697013537d9aaa15f7856d9d83aee128ba8078e219df0a7cf4b8dd18d1a0c188f6543b500d92a2689d2d114b70 languageName: node linkType: hard -"language-tags@npm:^1.0.9": - version: 1.0.9 - resolution: "language-tags@npm:1.0.9" +"language-tags@npm:=1.0.5": + version: 1.0.5 + resolution: "language-tags@npm:1.0.5" dependencies: - language-subtag-registry: "npm:^0.3.20" - checksum: 9ab911213c4bd8bd583c850201c17794e52cb0660d1ab6e32558aadc8324abebf6844e46f92b80a5d600d0fbba7eface2c207bfaf270a1c7fd539e4c3a880bff + language-subtag-registry: "npm:~0.3.2" + checksum: 04215e821af9a8f1bc6c99ab5aa0a316c3fe1912ca3337eb28596316064bddd8edd22f2883d866069ebdf01b2002e504a760a336b2c728b6d30514e86744f76c languageName: node linkType: hard "launch-editor@npm:^2.6.0": - version: 2.6.1 - resolution: "launch-editor@npm:2.6.1" + version: 2.6.0 + resolution: "launch-editor@npm:2.6.0" dependencies: picocolors: "npm:^1.0.0" - shell-quote: "npm:^1.8.1" - checksum: 82d0bd9a44e7a972157719e63dac1b8196db6ec7066c1ec57a495f6c3d6e734f3c4da89549e7b33eb3b0356668ad02a9e7782b6733f5ebd7a61b7c5f635a3ee9 + shell-quote: "npm:^1.7.3" + checksum: 4802b9569d8a1d477f8279a994094b415d89eb39dadbc568193bc366d64ac13827c8860539ee336fa6135a06596a9b8c8265cebac35c3fa36a2214d0eea38890 languageName: node linkType: hard @@ -19509,9 +19474,9 @@ __metadata: linkType: hard "lines-and-columns@npm:~2.0.3": - version: 2.0.4 - resolution: "lines-and-columns@npm:2.0.4" - checksum: 4db28bf065cd7ad897c0700f22d3d0d7c5ed6777e138861c601c496d545340df3fc19e18bd04ff8d95a246a245eb55685b82ca2f8c2ca53a008e9c5316250379 + version: 2.0.3 + resolution: "lines-and-columns@npm:2.0.3" + checksum: 09525c10010a925b7efe858f1dd3184eeac34f0a9bc34993075ec490efad71e948147746b18e9540279cc87cd44085b038f986903db3de65ffe96d38a7b91c4c languageName: node linkType: hard @@ -19899,11 +19864,11 @@ __metadata: linkType: hard "loupe@npm:^2.3.6": - version: 2.3.7 - resolution: "loupe@npm:2.3.7" + version: 2.3.6 + resolution: "loupe@npm:2.3.6" dependencies: - get-func-name: "npm:^2.0.1" - checksum: 71a781c8fc21527b99ed1062043f1f2bb30bdaf54fa4cf92463427e1718bc6567af2988300bc243c1f276e4f0876f29e3cbf7b58106fdc186915687456ce5bf4 + get-func-name: "npm:^2.0.0" + checksum: a974841ce94ef2a35aac7144e7f9e789e3887f82286cd9ffe7ff00f2ac9d117481989948657465e2b0b102f23136d89ae0a18fd4a32d9015012cd64464453289 languageName: node linkType: hard @@ -20074,6 +20039,29 @@ __metadata: languageName: node linkType: hard +"make-fetch-happen@npm:^11.0.3": + version: 11.1.1 + resolution: "make-fetch-happen@npm:11.1.1" + dependencies: + agentkeepalive: "npm:^4.2.1" + cacache: "npm:^17.0.0" + http-cache-semantics: "npm:^4.1.1" + 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:^5.0.0" + minipass-fetch: "npm:^3.0.0" + 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:^10.0.0" + checksum: c161bde51dbc03382f9fac091734526a64dd6878205db6c338f70d2133df797b5b5166bff3091cf7d4785869d4b21e99a58139c1790c2fb1b5eec00f528f5f0b + languageName: node + linkType: hard + "make-fetch-happen@npm:^13.0.0": version: 13.0.0 resolution: "make-fetch-happen@npm:13.0.0" @@ -21435,7 +21423,7 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.6": +"nanoid@npm:^3.3.6, nanoid@npm:^3.3.7": version: 3.3.7 resolution: "nanoid@npm:3.3.7" bin: @@ -21521,22 +21509,23 @@ __metadata: linkType: hard "next@npm:^14.0.2": - version: 14.0.3 - resolution: "next@npm:14.0.3" - dependencies: - "@next/env": "npm:14.0.3" - "@next/swc-darwin-arm64": "npm:14.0.3" - "@next/swc-darwin-x64": "npm:14.0.3" - "@next/swc-linux-arm64-gnu": "npm:14.0.3" - "@next/swc-linux-arm64-musl": "npm:14.0.3" - "@next/swc-linux-x64-gnu": "npm:14.0.3" - "@next/swc-linux-x64-musl": "npm:14.0.3" - "@next/swc-win32-arm64-msvc": "npm:14.0.3" - "@next/swc-win32-ia32-msvc": "npm:14.0.3" - "@next/swc-win32-x64-msvc": "npm:14.0.3" + version: 14.0.4 + resolution: "next@npm:14.0.4" + dependencies: + "@next/env": "npm:14.0.4" + "@next/swc-darwin-arm64": "npm:14.0.4" + "@next/swc-darwin-x64": "npm:14.0.4" + "@next/swc-linux-arm64-gnu": "npm:14.0.4" + "@next/swc-linux-arm64-musl": "npm:14.0.4" + "@next/swc-linux-x64-gnu": "npm:14.0.4" + "@next/swc-linux-x64-musl": "npm:14.0.4" + "@next/swc-win32-arm64-msvc": "npm:14.0.4" + "@next/swc-win32-ia32-msvc": "npm:14.0.4" + "@next/swc-win32-x64-msvc": "npm:14.0.4" "@swc/helpers": "npm:0.5.2" busboy: "npm:1.6.0" caniuse-lite: "npm:^1.0.30001406" + graceful-fs: "npm:^4.2.11" postcss: "npm:8.4.31" styled-jsx: "npm:5.1.1" watchpack: "npm:2.4.0" @@ -21571,7 +21560,7 @@ __metadata: optional: true bin: next: dist/bin/next - checksum: 73aa3d5dd7b65b53ef68fa7723a7a98536482a69ae2d56e7b335194168f00b2851397bbdfe490b53dba2c70dfb8ad0150035fab4c762d6bc331e884487c4ff07 + checksum: e6c829fd473d8c3605b2b62d15e1bf41e9d90cf59a2c213b4adeadff2846999bc9a653ffef18f6aa13cc9f5d6de02469c222acf5a4184901a4690a4504bd468f languageName: node linkType: hard @@ -21700,17 +21689,17 @@ __metadata: linkType: hard "node-gyp-build@npm:^4.2.2": - version: 4.7.1 - resolution: "node-gyp-build@npm:4.7.1" + version: 4.6.1 + resolution: "node-gyp-build@npm:4.6.1" bin: node-gyp-build: bin.js node-gyp-build-optional: optional.js node-gyp-build-test: build-test.js - checksum: b8e4a3f889237cd08edde3775e2b4e1e39a0571580584e33e29979f0c532a254ce3c5ec9435bd526254ad0b3f0b4a7e7fe14e53bd400f6ea9445f3bfd88a6b1e + checksum: bd7738c96608c1fa056344623b93d4bbdc63fec05862061e5489284639e3a53daa407b9158c45bfc2e33d0b419851ed5c1f03f4c9ba34726361e2a7b765c0ddc languageName: node linkType: hard -"node-gyp@npm:^10.0.0, node-gyp@npm:latest": +"node-gyp@npm:^10.0.0": version: 10.0.1 resolution: "node-gyp@npm:10.0.1" dependencies: @@ -21751,6 +21740,27 @@ __metadata: languageName: node linkType: hard +"node-gyp@npm:latest": + version: 9.4.0 + resolution: "node-gyp@npm:9.4.0" + 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:^11.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: e8dfbe2b02f23d056f69e01c409381963e92c71cafba6c9cfbf63b038f65ca19ab8183bb6891d080e59c4eb2cc425fc736f42e90afc0f0030ecd97bfc64fb7ad + languageName: node + linkType: hard + "node-int64@npm:^0.4.0": version: 0.4.0 resolution: "node-int64@npm:0.4.0" @@ -21800,7 +21810,7 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.13, node-releases@npm:^2.0.14": +"node-releases@npm:^2.0.14": version: 2.0.14 resolution: "node-releases@npm:2.0.14" checksum: 199fc93773ae70ec9969bc6d5ac5b2bbd6eb986ed1907d751f411fef3ede0e4bfdb45ceb43711f8078bea237b6036db8b1bf208f6ff2b70c7d615afd157f3ab9 @@ -21884,11 +21894,11 @@ __metadata: linkType: hard "npm-install-checks@npm:^6.0.0": - version: 6.3.0 - resolution: "npm-install-checks@npm:6.3.0" + version: 6.2.0 + resolution: "npm-install-checks@npm:6.2.0" dependencies: semver: "npm:^7.1.1" - checksum: b046ef1de9b40f5d3a9831ce198e1770140a1c3f253dae22eb7b06045191ef79f18f1dcc15a945c919b3c161426861a28050abd321bf439190185794783b6452 + checksum: d7814be08413879bb8b3c39ff15786f5865ed3359a56265a686dd7244f3b3ac37669bf740847f9f9063f1d90f2f770d84a815175030fde5f502eab1d9637433b languageName: node linkType: hard @@ -22133,14 +22143,14 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.13.1, object-inspect@npm:^1.9.0": +"object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": version: 1.13.1 resolution: "object-inspect@npm:1.13.1" checksum: fad603f408e345c82e946abdf4bfd774260a5ed3e5997a0b057c44153ac32c7271ff19e3a5ae39c858da683ba045ccac2f65245c12763ce4e8594f818f4a648d languageName: node linkType: hard -"object-is@npm:^1.1.5": +"object-is@npm:^1.0.1, object-is@npm:^1.1.5": version: 1.1.5 resolution: "object-is@npm:1.1.5" dependencies: @@ -22178,7 +22188,7 @@ __metadata: languageName: node linkType: hard -"object.entries@npm:^1.1.2, object.entries@npm:^1.1.6, object.entries@npm:^1.1.7": +"object.entries@npm:^1.1.2, object.entries@npm:^1.1.6": version: 1.1.7 resolution: "object.entries@npm:1.1.7" dependencies: @@ -23365,7 +23375,7 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.31, postcss@npm:^8.2.14, postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.27, postcss@npm:^8.4.31": +"postcss@npm:8.4.31": version: 8.4.31 resolution: "postcss@npm:8.4.31" dependencies: @@ -23386,10 +23396,21 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.2.14, postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.27, postcss@npm:^8.4.32": + version: 8.4.32 + resolution: "postcss@npm:8.4.32" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.0.0" + source-map-js: "npm:^1.0.2" + checksum: 39308a9195fa34d4dbdd7b58a896cff0c7809f84f7a4ac1b95b68ca86c9138a395addff33075668ed3983d41b90aac05754c445237a9365eb1c3a5602ebd03ad + languageName: node + linkType: hard + "preact@npm:^10.5.13": - version: 10.19.2 - resolution: "preact@npm:10.19.2" - checksum: 1a37e967d8947d1c82ad86cd90968536612c1463effdc5b0230a4517dc928cae8c9052513f0d5ac7bb09480b9431d129197d6c9b6924d32e32245e5ecd27cc8a + version: 10.19.3 + resolution: "preact@npm:10.19.3" + checksum: 251b237cc6fc8c39e4dc6cd65df1964b9622ec6005ccdaa57ea43171ba3e1e0f1e3386bbade370b2ce26ea480ceb73ea36b40e635e35e017e2d8614a233e1bed languageName: node linkType: hard @@ -23863,9 +23884,9 @@ __metadata: linkType: hard "punycode@npm:^2.1.0, punycode@npm:^2.1.1": - version: 2.3.1 - resolution: "punycode@npm:2.3.1" - checksum: 14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 + version: 2.3.0 + resolution: "punycode@npm:2.3.0" + checksum: 8e6f7abdd3a6635820049e3731c623bbef3fedbf63bbc696b0d7237fdba4cefa069bc1fa62f2938b0fbae057550df7b5318f4a6bcece27f1907fc75c54160bee languageName: node linkType: hard @@ -24670,7 +24691,7 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.0, regexp.prototype.flags@npm:^1.5.1": +"regexp.prototype.flags@npm:^1.2.0, regexp.prototype.flags@npm:^1.5.0, regexp.prototype.flags@npm:^1.5.1": version: 1.5.1 resolution: "regexp.prototype.flags@npm:1.5.1" dependencies: @@ -25245,15 +25266,15 @@ __metadata: linkType: hard "resolve@npm:^2.0.0-next.4": - version: 2.0.0-next.5 - resolution: "resolve@npm:2.0.0-next.5" + version: 2.0.0-next.4 + resolution: "resolve@npm:2.0.0-next.4" dependencies: - is-core-module: "npm:^2.13.0" + is-core-module: "npm:^2.9.0" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: a6c33555e3482ea2ec4c6e3d3bf0d78128abf69dca99ae468e64f1e30acaa318fd267fb66c8836b04d558d3e2d6ed875fe388067e7d8e0de647d3c21af21c43a + checksum: 1de92669e7c46cfe125294c66d5405e13288bb87b97e9bdab71693ceebbcc0255c789bde30e2834265257d330d8ff57414d7d88e3097d8f69951f3ce978bf045 languageName: node linkType: hard @@ -25271,15 +25292,15 @@ __metadata: linkType: hard "resolve@patch:resolve@npm%3A^2.0.0-next.4#optional!builtin": - version: 2.0.0-next.5 - resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d" + version: 2.0.0-next.4 + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.4#optional!builtin::version=2.0.0-next.4&hash=c3c19d" dependencies: - is-core-module: "npm:^2.13.0" + is-core-module: "npm:^2.9.0" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 78ad6edb8309a2bfb720c2c1898f7907a37f858866ce11a5974643af1203a6a6e05b2fa9c53d8064a673a447b83d42569260c306d43628bff5bb101969708355 + checksum: ed2bb51d616b9cd30fe85cf49f7a2240094d9fa01a221d361918462be81f683d1855b7f192391d2ab5325245b42464ca59690db5bd5dad0a326fc0de5974dd10 languageName: node linkType: hard @@ -25702,12 +25723,11 @@ __metadata: linkType: hard "selfsigned@npm:^2.1.1": - version: 2.4.1 - resolution: "selfsigned@npm:2.4.1" + version: 2.1.1 + resolution: "selfsigned@npm:2.1.1" dependencies: - "@types/node-forge": "npm:^1.3.0" node-forge: "npm:^1" - checksum: 521829ec36ea042f7e9963bf1da2ed040a815cf774422544b112ec53b7edc0bc50a0f8cc2ae7aa6cc19afa967c641fd96a15de0fc650c68651e41277d2e1df09 + checksum: 4a2509c8a5bd49c3630a799de66b317352b52746bec981133d4f8098365da35d2344f0fbedf14aacf2cd1e88682048e2df11ad9dc59331d3b1c0a5ec3e6e16ad languageName: node linkType: hard @@ -26002,7 +26022,7 @@ __metadata: languageName: node linkType: hard -"shell-quote@npm:^1.8.1": +"shell-quote@npm:^1.7.3": version: 1.8.1 resolution: "shell-quote@npm:1.8.1" checksum: 8cec6fd827bad74d0a49347057d40dfea1e01f12a6123bf82c4649f3ef152fc2bc6d6176e6376bffcd205d9d0ccb4f1f9acae889384d20baff92186f01ea455a @@ -26482,9 +26502,9 @@ __metadata: linkType: hard "spdx-license-ids@npm:^3.0.0": - version: 3.0.16 - resolution: "spdx-license-ids@npm:3.0.16" - checksum: 7d88b8f01308948bb3ea69c066448f2776cf3d35a410d19afb836743086ced1566f6824ee8e6d67f8f25aa81fa86d8076a666c60ac4528caecd55e93edb5114e + version: 3.0.15 + resolution: "spdx-license-ids@npm:3.0.15" + checksum: 1d44fa43d2024d4533816ceffac983149f9c76214698033496e13f6224d7fe6e61649a2bb9eb6c88b5f7f71bc19cc5f0aed3dba75b430e27c06e0f71cc251959 languageName: node linkType: hard @@ -26711,12 +26731,12 @@ __metadata: linkType: hard "streamx@npm:^2.15.0": - version: 2.15.5 - resolution: "streamx@npm:2.15.5" + version: 2.15.1 + resolution: "streamx@npm:2.15.1" dependencies: fast-fifo: "npm:^1.1.0" queue-tick: "npm:^1.0.1" - checksum: 7998d1fa3324131ed94efc4a4e8b22e0f60267b21d8f8fac8c605eaa1a6d6358adbc38c35b407be0eb8cc09a223c641962afb0db29ecbe92118242118946d93c + checksum: e3b0e997726a2a499e1069efea7d720e54fc262011dfcb32e6704f90b5a31bb55b8f48964649d787be03d8718dcf9aa413d24ce48823d92fcbad06a3c337ec61 languageName: node linkType: hard @@ -27204,8 +27224,8 @@ __metadata: linkType: hard "svelte@npm:^5.0.0-next.15, svelte@npm:^5.0.0-next.16": - version: 5.0.0-next.19 - resolution: "svelte@npm:5.0.0-next.19" + version: 5.0.0-next.22 + resolution: "svelte@npm:5.0.0-next.22" dependencies: "@ampproject/remapping": "npm:^2.2.1" "@jridgewell/sourcemap-codec": "npm:^1.4.15" @@ -27219,7 +27239,7 @@ __metadata: locate-character: "npm:^3.0.0" magic-string: "npm:^0.30.4" zimmerframe: "npm:^1.1.0" - checksum: 2efc415d3a51cd9094349aa0295e728ea74e10bad17dedd167b1fae64de8ee5d46cbd27b5cfb152e4af641e1326e233dfeb918d8fa0541f65cf149b85d00419a + checksum: 121c0ffe925f3393581742a970d58588ac642f15d17062af16f46b4729064d48214ee158261fbcdff78b6ee143f4da361d3e696507c8c7c31580e2040e366539 languageName: node linkType: hard @@ -27789,8 +27809,8 @@ __metadata: linkType: hard "ts-node@npm:^10.9.1": - version: 10.9.1 - resolution: "ts-node@npm:10.9.1" + version: 10.9.2 + resolution: "ts-node@npm:10.9.2" dependencies: "@cspotcode/source-map-support": "npm:^0.8.0" "@tsconfig/node10": "npm:^1.0.7" @@ -27822,7 +27842,7 @@ __metadata: ts-node-script: dist/bin-script.js ts-node-transpile-only: dist/bin-transpile.js ts-script: dist/bin-script-deprecated.js - checksum: 95187932fb83f3901e22546bd2feeac7d2feb4f412f42ac3a595f049a23e8dcf70516dffb51866391228ea2dbcfaea039e250fb2bb334d48a86ab2b6aea0ae2d + checksum: 5f29938489f96982a25ba650b64218e83a3357d76f7bede80195c65ab44ad279c8357264639b7abdd5d7e75fc269a83daa0e9c62fd8637a3def67254ecc9ddc2 languageName: node linkType: hard @@ -28053,12 +28073,12 @@ __metadata: linkType: hard "typescript@npm:^5.0.3, typescript@npm:^5.3.2": - version: 5.3.2 - resolution: "typescript@npm:5.3.2" + version: 5.3.3 + resolution: "typescript@npm:5.3.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: d7dbe1fbe19039e36a65468ea64b5d338c976550394ba576b7af9c68ed40c0bc5d12ecce390e4b94b287a09a71bd3229f19c2d5680611f35b7c53a3898791159 + checksum: e33cef99d82573624fc0f854a2980322714986bc35b9cb4d1ce736ed182aeab78e2cb32b385efa493b2a976ef52c53e20d6c6918312353a91850e2b76f1ea44f languageName: node linkType: hard @@ -28073,12 +28093,12 @@ __metadata: linkType: hard "typescript@patch:typescript@npm%3A^5.0.3#optional!builtin, typescript@patch:typescript@npm%3A^5.3.2#optional!builtin": - version: 5.3.2 - resolution: "typescript@patch:typescript@npm%3A5.3.2#optional!builtin::version=5.3.2&hash=29ae49" + version: 5.3.3 + resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=29ae49" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: c81b9bd20c6dbe90fa43e876c586021447f2b47baede9fa542b1f56715835c043e23b2eaf19c42c067cc6f5ae512bd9a9be28a67b3a1d9807f8c9cfb1269875e + checksum: e22df47df9b2b2f2617b8bf511a29aea3d177f9f7a0756818230a76b01cbd7da988bf55f9463aaa1a4c1ff90b80f8dc5676460d4e9dfc010572cbba59b822b0c languageName: node linkType: hard @@ -28462,9 +28482,9 @@ __metadata: linkType: hard "universal-user-agent@npm:^6.0.0": - version: 6.0.1 - resolution: "universal-user-agent@npm:6.0.1" - checksum: 5c9c46ffe19a975e11e6443640ed4c9e0ce48fcc7203325757a8414ac49940ebb0f4667f2b1fa561489d1eb22cb2d05a0f7c82ec20c5cba42e58e188fb19b187 + version: 6.0.0 + resolution: "universal-user-agent@npm:6.0.0" + checksum: ebeb0206963666c13bcf9ebc86d0577c7daed5870c05cd34d4972ee7a43b9ef20679baf2a8c83bf1b71d899bae67243ac4982d84ddaf9ba0355ff76595819961 languageName: node linkType: hard @@ -28483,9 +28503,9 @@ __metadata: linkType: hard "universalify@npm:^2.0.0": - version: 2.0.1 - resolution: "universalify@npm:2.0.1" - checksum: 73e8ee3809041ca8b818efb141801a1004e3fc0002727f1531f4de613ea281b494a40909596dae4a042a4fb6cd385af5d4db2e137b1362e0e91384b828effd3a + version: 2.0.0 + resolution: "universalify@npm:2.0.0" + checksum: 07092b9f46df61b823d8ab5e57f0ee5120c178b39609a95e4a15a98c42f6b0b8e834e66fbb47ff92831786193be42f1fd36347169b88ce8639d0f9670af24a71 languageName: node linkType: hard @@ -28590,14 +28610,14 @@ __metadata: linkType: hard "urql@npm:^4.0.3": - version: 4.0.6 - resolution: "urql@npm:4.0.6" + version: 4.0.5 + resolution: "urql@npm:4.0.5" dependencies: - "@urql/core": "npm:^4.2.0" + "@urql/core": "npm:^4.1.0" wonka: "npm:^6.3.2" peerDependencies: react: ">= 16.8.0" - checksum: d3d952c5a1f288e6c9c24a0ffb694893133d3c8b0d1237109ce96b460697a6f4536a494b5ec70e690660cacbd9c149461d1811d33482f4ca2126ea96560c4332 + checksum: 9560d04b3c2fe72c921bdb21e969039b776e07999704d23bce35f815eb537c9357b6c7322a1b8cd43957550798c30cd15f5130ddd054dfd8a890d17d2be85282 languageName: node linkType: hard @@ -28883,7 +28903,7 @@ __metadata: languageName: node linkType: hard -"vite@npm:4.5.0, vite@npm:^4.0.0, vite@npm:^4.0.4": +"vite@npm:4.5.0": version: 4.5.0 resolution: "vite@npm:4.5.0" dependencies: @@ -28923,15 +28943,55 @@ __metadata: languageName: node linkType: hard +"vite@npm:^4.0.0, vite@npm:^4.0.4": + version: 4.5.1 + resolution: "vite@npm:4.5.1" + dependencies: + esbuild: "npm:^0.18.10" + fsevents: "npm:~2.3.2" + postcss: "npm:^8.4.27" + rollup: "npm:^3.27.1" + peerDependencies: + "@types/node": ">= 14" + 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: 352a94b13f793e4bcbc424d680a32507343223eeda8917fde0f23c1fa1ba3db7c806dade8461ca5cfb270154ddb8895a219fdd4384519fe9b8e46d1cf491a890 + languageName: node + linkType: hard + "vitefu@npm:^0.2.4": - version: 0.2.5 - resolution: "vitefu@npm:0.2.5" + version: 0.2.4 + resolution: "vitefu@npm:0.2.4" peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + vite: ^3.0.0 || ^4.0.0 peerDependenciesMeta: vite: optional: true - checksum: 5781ece3025b6be0eb87ee7d97760a7721b1c6c5ad60ede5f37c86393ece3c8fce4245472f62368eb192448034086e25bdcadf098eefc271277176ab9a430204 + checksum: 78d5e7071c0c4fdfc010f15a3e5bac2d31090ddd48789446fce5b7d0f01496fc6a041b65d3add904365bb0ac6576bb93635f700971c16ffd27cd7c0bee9eb1ae languageName: node linkType: hard @@ -28984,16 +29044,16 @@ __metadata: linkType: hard "vscode-uri@npm:^3.0.3": - version: 3.0.8 - resolution: "vscode-uri@npm:3.0.8" - checksum: f7f217f526bf109589969fe6e66b71e70b937de1385a1d7bb577ca3ee7c5e820d3856a86e9ff2fa9b7a0bc56a3dd8c3a9a557d3fedd7df414bc618d5e6b567f9 + version: 3.0.7 + resolution: "vscode-uri@npm:3.0.7" + checksum: 67bc15bc9c9bd2d70dae8b27f2a3164281c6ee8f6484e6c5945a44d89871da93d52f2ba339ebc12ab0c10991d4576171b5d85e49a542454329c16faf977e4c59 languageName: node linkType: hard "vue-component-type-helpers@npm:latest": - version: 1.8.24 - resolution: "vue-component-type-helpers@npm:1.8.24" - checksum: 6ab61470ec36254b49d611108fb6e1ea217a1981e241d74f8a7c5724bb2b03c39e38995aaae498478e83626cfc15377cc030da183412e5a3bbf35d164762bf2b + version: 1.8.15 + resolution: "vue-component-type-helpers@npm:1.8.15" + checksum: 3397faf50844e31d92a29a44616088408cf6eb8b6c88b7deb8841c4bc78e8e258fafbb7052b100e52ebea5d1c4e826b7247b2c48f6f3c330addd53132db141f9 languageName: node linkType: hard @@ -29066,17 +29126,17 @@ __metadata: linkType: hard "vue-tsc@npm:latest": - version: 1.8.24 - resolution: "vue-tsc@npm:1.8.24" + version: 1.8.15 + resolution: "vue-tsc@npm:1.8.15" dependencies: - "@volar/typescript": "npm:~1.11.1" - "@vue/language-core": "npm:1.8.24" - semver: "npm:^7.5.4" + "@vue/language-core": "npm:1.8.15" + "@vue/typescript": "npm:1.8.15" + semver: "npm:^7.3.8" peerDependencies: typescript: "*" bin: vue-tsc: bin/vue-tsc.js - checksum: 09707b06ae05a3d15127b33b04d0ea4adb7d0b64e1f344d2ae413c010adf2be2efae3411bfc64e9f18924461fe6dd79d7ffe3cf97c5f8a24e5fe290bd7531102 + checksum: 18092627141afcef9515701ea85beae564bc31258358d3b0eb7a3ae5167559ac56d8e218a0490661bae91a4f496d1351f9431074820473206dda9d0c50998216 languageName: node linkType: hard @@ -29092,20 +29152,20 @@ __metadata: linkType: hard "vue@npm:^3.2.33, vue@npm:^3.2.47": - version: 3.3.9 - resolution: "vue@npm:3.3.9" + version: 3.3.11 + resolution: "vue@npm:3.3.11" dependencies: - "@vue/compiler-dom": "npm:3.3.9" - "@vue/compiler-sfc": "npm:3.3.9" - "@vue/runtime-dom": "npm:3.3.9" - "@vue/server-renderer": "npm:3.3.9" - "@vue/shared": "npm:3.3.9" + "@vue/compiler-dom": "npm:3.3.11" + "@vue/compiler-sfc": "npm:3.3.11" + "@vue/runtime-dom": "npm:3.3.11" + "@vue/server-renderer": "npm:3.3.11" + "@vue/shared": "npm:3.3.11" peerDependencies: typescript: "*" peerDependenciesMeta: typescript: optional: true - checksum: 46a9b363e208e0103162117bf8cd4820bfd844066502adc9106f075c4f67b15599ccabc9cd15971e43514eb446662cebb80cdcaf5f46f3b06b197e3aad410105 + checksum: 9d1aa569d185107c0ca8c6f13d18eeead99b378324fc2fbaeec5eee1d355d48f089c94977b50a4cea042ba2a84707b295621de32b6499491042f9106c3f7be91 languageName: node linkType: hard @@ -29546,16 +29606,16 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": - version: 1.1.13 - resolution: "which-typed-array@npm:1.1.13" +"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": + version: 1.1.11 + resolution: "which-typed-array@npm:1.1.11" dependencies: available-typed-arrays: "npm:^1.0.5" - call-bind: "npm:^1.0.4" + call-bind: "npm:^1.0.2" for-each: "npm:^0.3.3" gopd: "npm:^1.0.1" has-tostringtag: "npm:^1.0.0" - checksum: 9f5f1c42918df3d5b91c4315ed0051d5d874370998bf095c9ae0df374f0881f85094e3c384b8fb08ab7b4d4f54ba81c0aff75da6226e7c0589b83dfbec1cd4c9 + checksum: 2cf4ce417beb50ae0ec3b1b479ea6d72d3e71986462ebd77344ca6398f77c7c59804eebe88f4126ce79f85edbcaa6c7783f54b0a5bf34f785eab7cbb35c30499 languageName: node linkType: hard @@ -29746,8 +29806,8 @@ __metadata: linkType: hard "ws@npm:^8.11.0, ws@npm:^8.13.0, ws@npm:^8.2.3": - version: 8.14.2 - resolution: "ws@npm:8.14.2" + version: 8.15.0 + resolution: "ws@npm:8.15.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -29756,7 +29816,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 35b4c2da048b8015c797fd14bcb5a5766216ce65c8a5965616a5440ca7b6c3681ee3cbd0ea0c184a59975556e9d58f2002abf8485a14d11d3371770811050a16 + checksum: b778a405b2589ffbf549323e2f404f1f72e372a049d332d2f0b1f33057e9fbb14a05aa474cb156e4584b418cd95edf4297c0ca5263d6519e8009064bf8e0b80d languageName: node linkType: hard diff --git a/docs/configure/frameworks-feature-support.md b/docs/configure/frameworks-feature-support.md index 8b1ae823ed3d..306ee9e94160 100644 --- a/docs/configure/frameworks-feature-support.md +++ b/docs/configure/frameworks-feature-support.md @@ -10,10 +10,108 @@ Below is a comprehensive table of what’s supported in which framework integrat Core frameworks have dedicated maintainers or contributors who are responsible for maintaining the integration. As such, you can use most Storybook features in these frameworks. - +| | React | Vue | Angular | Web Components | +| ----------------------------------------------------------------------------------------- | ----- | --- | ------- | -------------- | +| **Essentials** | | | | | +| [Actions](../essentials/actions.md) | ✅ | ✅ | ✅ | ✅ | +| [Backgrounds](../essentials/backgrounds.md) | ✅ | ✅ | ✅ | ✅ | +| [Docs](../writing-docs/index.md) | ✅ | ✅ | ✅ | ✅ | +| [Viewport](../essentials/viewport.md) | ✅ | ✅ | ✅ | ✅ | +| [Controls](../essentials/controls.md) | ✅ | ✅ | ✅ | ✅ | +| [Measure](../essentials/measure-and-outline.md#measure-addon) | ✅ | ✅ | ✅ | ✅ | +| [Outline](../essentials/measure-and-outline.md#outline-addon) | ✅ | ✅ | ✅ | ✅ | +| **Addons** | | | | | +| [A11y](../writing-tests/accessibility-testing.md) | ✅ | ✅ | ✅ | ✅ | +| [Interactions](../writing-tests/interaction-testing.md) | ✅ | ✅ | ✅ | ✅ | +| [Test runner](../writing-tests/test-runner.md) | ✅ | ✅ | ✅ | ✅ | +| [Test coverage](../writing-tests/test-coverage.md) | ✅ | ✅ | ✅ | ✅ | +| [CSS resources](https://github.com/storybookjs/addon-cssresources) | ✅ | ✅ | ✅ | ✅ | +| [Design assets](https://github.com/storybookjs/addon-design-assets) | ✅ | ✅ | ✅ | ✅ | +| [Events](https://github.com/storybookjs/addon-events) | ✅ | ✅ | ✅ | ✅ | +| [Google analytics](https://github.com/storybookjs/addon-google-analytics) | ✅ | ✅ | ✅ | ✅ | +| [GraphQL](https://github.com/storybookjs/addon-graphql) | ✅ | | ✅ | | +| [Jest](https://github.com/storybookjs/storybook/tree/next/code/addons/jest) | ✅ | ✅ | ✅ | ✅ | +| [Links](https://github.com/storybookjs/storybook/tree/next/code/addons/links) | ✅ | ✅ | ✅ | ✅ | +| [Queryparams](https://github.com/storybookjs/addon-queryparams) | ✅ | ✅ | ✅ | ✅ | +| [Storysource](https://github.com/storybookjs/storybook/tree/next/code/addons/storysource) | ✅ | ✅ | ✅ | ✅ | +| **Docs** | | | | | +| [CSF Stories](../api/csf.md) | ✅ | ✅ | ✅ | ✅ | +| [Autodocs](../writing-docs/autodocs.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - ArgTypes](../api/doc-block-argtypes.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Canvas](../api/doc-block-canvas.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - ColorPalette](../api/doc-block-colorpalette.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Controls](../api/doc-block-controls.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Description](../api/doc-block-description.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - IconGallery](../api/doc-block-icongallery.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Markdown](../api/doc-block-markdown.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Meta](../api/doc-block-meta.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Primary](../api/doc-block-primary.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Source](../api/doc-block-source.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Story](../api/doc-block-story.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Stories](../api/doc-block-stories.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Subtitle](../api/doc-block-subtitle.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Title](../api/doc-block-title.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Typeset](../api/doc-block-typeset.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Unstyled](../api/doc-block-unstyled.md) | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - UseOf](../api/doc-block-useof.md) | ✅ | ✅ | ✅ | ✅ | +| Inline stories | ✅ | ✅ | ✅ | ✅ | ## Community frameworks Community frameworks have fewer contributors which means they may not be as up to date as core frameworks. If you use one of these frameworks for your job, please consider contributing to its integration with Storybook. - +| | Ember | HTML | Svelte | Preact | Qwik | SolidJS | +| ----------------------------------------------------------------------------------------- | ----- | ---- | ------ | ------ | ---- | ------- | +| **Essentials** | | | | | | | +| [Actions](../essentials/actions.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Backgrounds](../essentials/backgrounds.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Docs](../writing-docs/index.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Viewport](../essentials/viewport.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Controls](../essentials/controls.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Measure](../essentials/measure-and-outline.md#measure-addon) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Outline](../essentials/measure-and-outline.md#outline-addon) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Addons** | | | | | | | +| [A11y](../writing-tests/accessibility-testing.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Interactions](../writing-tests/interaction-testing.md) | | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Test runner](../writing-tests/test-runner.md) | | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Test coverage](../writing-tests/test-coverage.md) | | ✅ | ✅ | ✅ | ✅ | ✅ | +| [CSS resources](https://github.com/storybookjs/addon-cssresources) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Design assets](https://github.com/storybookjs/addon-design-assets) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Events](https://github.com/storybookjs/addon-events) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Google analytics](https://github.com/storybookjs/addon-google-analytics) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [GraphQL](https://github.com/storybookjs/addon-graphql) | | | | | | | +| [Jest](https://github.com/storybookjs/storybook/tree/next/code/addons/jest) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Links](https://github.com/storybookjs/storybook/tree/next/code/addons/links) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Queryparams](https://github.com/storybookjs/addon-queryparams) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Storysource](https://github.com/storybookjs/storybook/tree/next/code/addons/storysource) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| **Docs** | | | | | | | +| [CSF Stories](../api/csf.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Autodocs](../writing-docs/autodocs.md) | | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - ArgTypes](../api/doc-block-argtypes.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Canvas](../api/doc-block-canvas.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - ColorPalette](../api/doc-block-colorpalette.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Controls](../api/doc-block-controls.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Description](../api/doc-block-description.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - IconGallery](../api/doc-block-icongallery.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Markdown](../api/doc-block-markdown.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Meta](../api/doc-block-meta.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Primary](../api/doc-block-primary.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Source](../api/doc-block-source.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Story](../api/doc-block-story.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Stories](../api/doc-block-stories.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Subtitle](../api/doc-block-subtitle.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Title](../api/doc-block-title.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Typeset](../api/doc-block-typeset.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - Unstyled](../api/doc-block-unstyled.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Doc Blocks - UseOf](../api/doc-block-useof.md) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | +| Inline stories | | ✅ | ✅ | | | | + +## Deprecated + +To align the Storybook ecosystem with the current state of frontend development, the following features and addons are now deprecated, no longer maintained, and will be removed in future versions of Storybook + +| Feature | Status | +| -------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Knobs](https://github.com/storybookjs/addon-knobs) | The Knobs addon was officially deprecated with the release of Storybook 6.3 and is no longer actively maintained. We recommend using the [controls](../essentials/controls.md) instead. | +| [Storyshots](../writing-tests/snapshot-testing.md) | The Storyshots addon was officially deprecated with the release of Storybook 7.6 and is no longer actively maintained. See the [migration guide](../writing-tests/storyshots-migration-guide.md) for the available alternatives. | +| [`StoriesOf`](https://github.com/storybookjs/storybook/blob/next/code/lib/preview-api/docs/storiesOf.md) | The `storiesOf` API was officially deprecated with the release of Storybook 7.5 and is no longer actively maintained. We recommend using the [CSF API](../api/csf.md) instead for writing stories.
See the [migration guide](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storystorev6-and-storiesof-is-deprecated) for more information. | diff --git a/docs/essentials/auto-generated-controls/angular.mdx b/docs/essentials/auto-generated-controls/angular.mdx deleted file mode 100644 index 22417afdbb66..000000000000 --- a/docs/essentials/auto-generated-controls/angular.mdx +++ /dev/null @@ -1,68 +0,0 @@ -To use auto-detected controls with Angular, you must fill in the `component` field in your story metadata: - -```ts -import { Button } from './button.component'; - -export default { - component: Button, -}; -``` - -Storybook uses this to auto-generate the `ArgTypes` for your component using [Compodoc](https://compodoc.app/). It supports `inputs`, `outputs`, `properties`, `methods`, `view/content child/children` as first class prop types. - -## Automatic Compodoc setup - -During `sb init`, you will be asked, whether you want to setup Compodoc for your project. Just answer the question with Yes. Compodoc is then ready to use! - -## Manual Compodoc setup - -You'll need to register Compodoc's `documentation.json` file in `.storybook/preview.ts`: - -```js -import { setCompodocJson } from '@storybook/addon-docs/angular'; -import docJson from '../documentation.json'; - -setCompodocJson(docJson); -``` - -Finally, to set up compodoc, you'll first need to install Compodoc: - -```sh -yarn add -D @compodoc/compodoc -``` - -Then you'll need to configure Compodoc to generate a `documentation.json` file. Adding the following snippet to your `projects..architect.` in the `angular.json` creates a metadata file `./documentation.json` each time you run storybook: - -```jsonc -// angular.json -{ - "projects": { - "your-project": { - "architect": { - "storybook": { - ..., - "compodoc": true, - "compodocArgs": [ - "-e", - "json", - "-d", - "." // the root folder of your project - ], - }, - "build-storybook": { - ..., - "compodoc": true, - "compodocArgs": [ - "-e", - "json", - "-d", - "." // the root folder of your project - ], - } - } - } - } -} -``` - -Unfortunately, it's not currently possible to update this dynamically as you edit your components, but [there's an open issue](https://github.com/storybookjs/storybook/issues/8672) to support this with improvements to Compodoc. diff --git a/docs/essentials/auto-generated-controls/ember.mdx b/docs/essentials/auto-generated-controls/ember.mdx deleted file mode 100644 index 1696095183a9..000000000000 --- a/docs/essentials/auto-generated-controls/ember.mdx +++ /dev/null @@ -1,29 +0,0 @@ -Storybook for Ember relies on [@storybook/ember-cli-storybook addon](https://github.com/storybookjs/ember-cli-storybook), to extract documentation comments from your component source files. If you're using Storybook with Ember, you should already have this addon installed, and you will just need to enable it by adding the following config block in your `ember-cli-build.js` file: - -```js -let app = new EmberApp(defaults, { - '@storybook/ember-cli-storybook': { - enableAddonDocsIntegration: true, - }, -}); -``` - -Now, running the ember-cli server will generate a JSON documentation file at `/dist/storybook-docgen/index.json`. Since generation of this file is tied into the ember-cli build, it will get regenerated every time component files are saved. For details on documenting your components, check out the examples in the addon that powers the generation [ember-cli-addon-docs-yuidoc](https://github.com/ember-learn/ember-cli-addon-docs-yuidoc#documenting-components). - -Storybook uses this file to auto-generate the `ArgTypes` for your component based on docgen information created by [ember-cli-addon-docs-yuidoc](https://github.com/ember-learn/ember-cli-addon-docs-yuidoc#documenting-components). - -You'll need to register that in `.storybook/preview.js`: - -```js -import { setJSONDoc } from '@storybook/addon-docs/ember'; -import docJson from '../dist/storybook-docgen/index.json'; -setJSONDoc(docJson); -``` - -Finally, to use auto-detected controls with Ember, you must fill in the `component` field in your story metadata: - -```ts -export default { - component: 'button', // name of your button component from docgen-json file (index.js) -}; -``` diff --git a/docs/essentials/auto-generated-controls/fallback.mdx b/docs/essentials/auto-generated-controls/fallback.mdx deleted file mode 100644 index 9842a53b859d..000000000000 --- a/docs/essentials/auto-generated-controls/fallback.mdx +++ /dev/null @@ -1,3 +0,0 @@ -Controls argument autodetection doesn't currently work with your framework. - -To use Controls, you'll need to [define the `ArgTypes` manually](#fully-custom-args) diff --git a/docs/essentials/auto-generated-controls/react.mdx b/docs/essentials/auto-generated-controls/react.mdx deleted file mode 100644 index 29bb07ede5c1..000000000000 --- a/docs/essentials/auto-generated-controls/react.mdx +++ /dev/null @@ -1,14 +0,0 @@ -To use auto-detected controls with React, you must fill in the `component` field in your story metadata: - -```js -// Button.stories.js|jsx|mjs|ts|tsx - -import { Button } from './Button'; - -export default { - component: Button, -}; -``` - - -Storybook uses this to auto-generate the `ArgTypes` for your component based on either `PropTypes` (using [`react-docgen`](https://github.com/reactjs/react-docgen)) or `TypeScript` types (using [`react-docgen-typescript`](https://github.com/styleguidist/react-docgen-typescript)). diff --git a/docs/essentials/auto-generated-controls/vue.mdx b/docs/essentials/auto-generated-controls/vue.mdx deleted file mode 100644 index 740ea7bec825..000000000000 --- a/docs/essentials/auto-generated-controls/vue.mdx +++ /dev/null @@ -1,11 +0,0 @@ -To use auto-detected controls with Vue, you must fill in the `component` field in your story metadata: - -```js -import { Button } from './Button.vue'; - -export default { - component: Button, -}; -``` - -Storybook uses this to auto-generate the `ArgTypes` for your component using [`vue-docgen-api`](https://github.com/vue-styleguidist/vue-styleguidist/tree/dev/packages/vue-docgen-api). It supports `props`, `events`, and `slots` as first class prop types. diff --git a/docs/essentials/auto-generated-controls/web-components.mdx b/docs/essentials/auto-generated-controls/web-components.mdx deleted file mode 100644 index 473b67f07b21..000000000000 --- a/docs/essentials/auto-generated-controls/web-components.mdx +++ /dev/null @@ -1,20 +0,0 @@ -To use auto-detected controls with Web components, you must fill in the `component` field in your story metadata: - -```js -export default { - component: 'button', -}; -``` - -Storybook uses this to auto-generate the `ArgTypes` for your component using your [custom-elements.json](https://github.com/webcomponents/custom-elements-json) file. - -You'll need to register that in `.storybook/preview.js`: - -```js -import { setCustomElementsManifest } from '@storybook/web-components'; -import customElements from '../custom-elements.json'; - -setCustomElementsManifest(customElements); -``` - -You can generate a `custom-elements.json` using [@custom-elements-manifest/analyzer](https://github.com/open-wc/custom-elements-manifest). If you're using the pre-v1.0.0 version of `custom-elements.json` you can use either [web-component-analyzer](https://github.com/runem/web-component-analyzer). diff --git a/docs/essentials/controls.md b/docs/essentials/controls.md index efff7222f5bd..5d86420c4ab0 100644 --- a/docs/essentials/controls.md +++ b/docs/essentials/controls.md @@ -29,23 +29,83 @@ If you have stories in the older pre-Storybook 6 style, check the [args & contro ## Choosing the control type -By default, Storybook will choose a control for each arg based on the initial value of the arg. It works well with certain types of args, such as boolean values or free-text strings, but in other cases, you want a more restricted control. + + +By default, Storybook will choose a control for each arg based on its initial value. This will work well with specific arg types (e.g., `boolean` or `string`). To enable them, add the `component` annotation to the default export of your story file, and it will be used to infer the controls and auto-generate the matching [`argTypes`](../api/arg-types.md) for your component using [Compodoc](https://compodoc.app/) if you opt-in to use it, including first-class support for Angular's `inputs`, `outputs`, `properties`, `methods` and `view/content child/children`. + + + + + + + + + + + +By default, Storybook will choose a control for each arg based on its initial value. This will work well with specific arg types (e.g., `boolean` or `string`). To enable them, add the `component` annotation to the default export of your story file and it will be used to infer the controls and auto-generate the matching [`argTypes`](../api/arg-types.md) for your component using [`react-docgen`](https://github.com/reactjs/react-docgen) or [`react-docgen-typescript`](https://github.com/styleguidist/react-docgen-typescript) for TypeScript. + + + + + + + + + + + +By default, Storybook will choose a control for each arg based on its initial value. This will work well with specific arg types (e.g., `boolean` or `string`). To enable them, add the `component` annotation to the default export of your story file, and it will be used to infer the controls and auto-generate the matching [`argTypes`](../api/arg-types.md) for your component using [`vue-docgen-api`](https://github.com/vue-styleguidist/vue-styleguidist/tree/dev/packages/vue-docgen-api), including first-class support for Vue's `props`, `events`, and `slots`. - + + + + +By default, Storybook will choose a control for each arg based on its initial value. This will work well with specific arg types (e.g., `boolean` or `string`). To enable them, add the `component` annotation to the default export of your story file, and it will be used to infer the controls and auto-generate the matching [`argTypes`](../api/arg-types.md) for your component provided by the framework you've chosen to use. + + + + + + + +If you're using a framework that doesn't support this feature, you'll need to define the `argTypes` for your component [manually](#fully-custom-args). + + + + + For instance, suppose you have a `variant` arg on your story that should be `primary` or `secondary`: @@ -70,7 +130,7 @@ By default, Storybook will render a free text input for the `variant` arg: It works as long as you type a valid string into the auto-generated text control. Still, it's not the best UI for our scenario, given that the component only accepts `primary` or `secondary` as variants. Let’s replace it with Storybook’s radio component. -We can specify which controls get used by declaring a custom [argType](../api/arg-types.md) for the `variant` property. ArgTypes encode basic metadata for args, such as name, description, defaultValue for an arg. These get automatically filled in by Storybook Docs. +We can specify which controls get used by declaring a custom [argType](../api/arg-types.md) for the `variant` property. ArgTypes encode basic metadata for args, such as name, description, and defaultValue for an arg. These get automatically filled in by Storybook Docs. `ArgTypes` can also contain arbitrary annotations, which the user can override. Since `variant` is a property of the component, let's put that annotation on the default export. @@ -91,7 +151,7 @@ We can specify which controls get used by declaring a custom [argType](../api/ar -ArgTypes are a powerful feature that can be used to customize the controls for your stories. See the documentation about [customizing controls](#annotation) with `argTypes` annotation for more information. +ArgTypes are a powerful feature that can be used to customize the controls for your stories. For more information, see the documentation about [customizing controls](#annotation) with `argTypes` annotation. @@ -101,14 +161,14 @@ This replaces the input with a radio group for a more intuitive experience. ## Custom control type matchers -Controls can automatically be inferred from arg's name with [regex](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RegExp), but currently only for the color picker and date picker controls. If you've used the Storybook CLI to setup your project it should have automatically created the following defaults in `.storybook/preview.js`: +Controls can automatically be inferred from arg's name with [regex](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RegExp), but currently only for the color picker and date picker controls. If you've used the Storybook CLI to setup your project, it should have automatically created the following defaults in `.storybook/preview.js`: | Control | Default regex | Description | | :-------: | :--------------------------------------: | :-------------------------------------------------------: | | **color** | /(background|color)$/i | Will display a color picker UI for the args that match it | | **date** | `/Date$/` | Will display a date picker UI for the args that match it | -If you haven't used the CLI to setup the configuration, or if you want to define your own patterns, use the `matchers` property in the `controls` parameter: +If you haven't used the CLI to set the configuration, or if you want to define your patterns, use the `matchers` property in the `controls` parameter: @@ -121,13 +181,13 @@ If you haven't used the CLI to setup the configuration, or if you want to define - + ## Fully custom args -Until now, we only used auto-generated controls based on the component we're writing stories for. If we are writing [complex stories](../writing-stories/stories-for-multiple-components.md), we may want to add controls for args that aren’t part of the component. For example, here's how you could use a `footer` arg to populate a child component: +Until now, we only used auto-generated controls based on the component for which we're writing stories. If we are writing [complex stories](../writing-stories/stories-for-multiple-components.md), we may want to add controls for args that aren’t part of the component. For example, here's how you could use a `footer` arg to populate a child component: @@ -189,7 +249,7 @@ One way to deal with this is to use primitive values (e.g., strings) as arg valu -Unless you need the flexibility of a function, an easier way to map primitives to complex values before rendering is to define a `mapping`, additionally, you can specify `control.labels` to configure custom labels for your checkbox, radio, or select input. +Unless you need the flexibility of a function, an easier way to map primitives to complex values before rendering is to define a `mapping`; additionally, you can specify `control.labels` to configure custom labels for your checkbox, radio, or select input. @@ -267,9 +327,9 @@ Numeric data types will default to a `number` control unless additional configur Controls supports the following configuration [parameters](../writing-stories/parameters.md), either globally or on a per-story basis: -## Show full documentation for each property +#### Show full documentation for each property -Since Controls is built on the same engine as Storybook Docs, it can also show property documentation alongside your controls using the expanded parameter (defaults to false). This means you embed a complete [`Controls`](../api/doc-block-controls.md) doc block in the controls panel. The description and default value rendering can be [customized](#fully-custom-args) in the same way as the doc block. +Since Controls is built on the same engine as Storybook Docs, it can also show property documentation alongside your controls using the expanded parameter (defaults to false). This means you embed a complete [`Controls`](../api/doc-block-controls.md) doc block in the controls panel. The description and default value rendering can be [customized](#fully-custom-args) like the doc block. To enable expanded mode globally, add the following to [`.storybook/preview.js`](../configure/index.md#configure-story-rendering): @@ -284,11 +344,11 @@ To enable expanded mode globally, add the following to [`.storybook/preview.js`] -And here's what the resulting UI looks like: +Here's what the resulting UI looks like: ![Controls addon expanded](./addon-controls-expanded.png) -### Specify initial preset color swatches +#### Specify initial preset color swatches For `color` controls, you can specify an array of `presetColors`, either on the `control` in `argTypes`, or as a parameter under the `controls` namespace: @@ -305,11 +365,75 @@ For `color` controls, you can specify an array of `presetColors`, either on the Color presets can be defined as an object with `color` and `title` or a simple CSS color string. These will then be available as swatches in the color picker. When you hover over the color swatch, you'll be able to see its title. It will default to the nearest CSS color name if none is specified. +#### Filtering controls + +In specific cases, you may be required to display only a limited number of controls in the controls panel or all except a particular set. + +To make this possible, you can use optional `include` and `exclude` configuration fields in the `controls` parameter, which you can define as an array of strings or a regular expression. + +Consider the following story snippets: + + + + + + + +#### Sorting controls + +By default, controls are unsorted and use whatever order the args data is processed in (`none`). Additionally, you can sort them alphabetically by the arg's name (`alpha`) or with the required args first (`requiredFirst`). + +Consider the following snippet to force required args first: + + + + + + + +#### Hide NoControls warning + +If you don't plan to handle the control args inside your story, you can remove the warning with: + + + + + + + ### Disable controls for specific properties Aside from the features already documented here, Controls can also be disabled for individual properties. -Suppose you want to disable Controls for a property called `foo` in a component's story. The following example illustrates how: +Suppose you want to turn off Controls for a property called `foo` in a component's story. The following example illustrates how: @@ -334,7 +458,7 @@ Resulting in the following change in Storybook UI: /> -The previous example also removed the prop documentation from the table. In some cases, this is fine. However, sometimes you might want to render the prop documentation, but without a control. The following example illustrates how: +The previous example also removed the prop documentation from the table. In some cases, this is fine. However, sometimes you might want to render the prop documentation without a control. The following example illustrates how: @@ -352,7 +476,7 @@ The previous example also removed the prop documentation from the table. In some -💡 As with other Storybook properties, such as [decorators](../writing-stories/decorators.md), you can apply the same pattern at a story level for more granular cases. +As with other Storybook properties, such as [decorators](../writing-stories/decorators.md), you can apply the same pattern at a story level for more granular cases. @@ -360,7 +484,7 @@ The previous example also removed the prop documentation from the table. In some In some cases, it's useful to be able to conditionally exclude a control based on the value of another control. Controls supports basic versions of these use cases with the `if`, which can take a simple query object to determine whether to include the control. -Consider a collection of "advanced" settings that are only visible when the user toggles an "advanced" toggle. +Consider a collection of "advanced" settings only visible when the user toggles an "advanced" toggle. @@ -410,66 +534,116 @@ It may also contain at most one of the following operators: If no operator is provided, that is equivalent to `{ truthy: true }`. -## Hide NoControls warning + + +## Troubleshooting + +### Controls are not automatically generated for my component -If you don't plan to handle the control args inside your Story, you can remove the warning with: +Out of the box, Storybook will try to infer the required argTypes and associated controls for your stories based on the component's definition and the initial value of the args. However, in some cases, this may not be enough, and you may need to provide additional information to Storybook. To solve this, you can opt-in to use [Compodoc](https://compodoc.app/), a documentation generator for Angular applications that can extract the metadata of your components and generate the required argTypes and controls for your stories. + +Run the following command to install the tooling. -## Filtering controls +Update your `angular.json` file to include the following configuration to include it in the Storybook's inbuilt builder configuration. -In specific cases, you may require to display only a limited number of controls in the controls panel, or all of them except a particular set. + -To make this possible, you can use optional `include` and `exclude` configuration fields in the `controls` parameter, which you can define as an array of strings, or as a regular expression. + -Consider the following story snippets: + + + +Finally, update your `.storybook/preview.ts` file to include the following configuration to import the metadata generated by Compodoc and use it to generate the controls and argTypes for your stories. + -## Sorting controls + -By default, controls are unsorted and use whatever order the args data is processed in (`none`). Additionally, you can sort them alphabetically by the arg's name (`alpha`) or with the required args first (`requiredFirst`). + -Consider the following snippet to force required args first: +## Troubleshooting + +### Controls are not automatically generated for my component + +Out of the box, Storybook will try to infer the required argTypes and associated controls for your stories based on the component's definition and the initial value of the args. However, in some cases, this may not be enough, and you may need to provide additional information to Storybook. To solve this, you can generate a [`custom-elements.json`](https://github.com/webcomponents/custom-elements-json) file with [`@custom-elements-manifest/analyzer`](https://github.com/open-wc/custom-elements-manifest) if you're using the `pre-v1.0.0` version of the elements file or [`@custom-elements-manifest/analyzer`](https://github.com/open-wc/custom-elements-manifest) for newer versions and configure it in your Storybook UI configuration file (i.e., `.storybook/preview.js|ts`) to enable it. + + + + + + +## Troubleshooting + +### Controls are not automatically generated for my component + +Out of the box, Storybook will try to infer the required argTypes and associated controls for your stories based on the metadata provided by the [`@storybook/ember-cli-storybook`](https://github.com/storybookjs/ember-cli-storybook) addon. However, in some cases, this may not be enough, and you may need to customize your project configuration to provide additional information to Storybook to generate the required argTypes and controls for your stories. + +Update your `ember-cli-build.js` configuration file to include the addon. + + + + + + + + +Restart your application to generate the metadata file (i.e., `storybook-docgen/index.json`) and update your `.storybook/preview.js` file to include it, which will be used to create the controls and argTypes for your stories. + + + + + + + + + + +Enabling this feature will generate a `storybook-docgen/index.json` automatically with each build. For more information on how the metadata is generated, refer to [documentation](https://github.com/storybookjs/storybook/tree/next/code/frameworks/ember) for the Ember framework. + + + + diff --git a/docs/essentials/viewport.md b/docs/essentials/viewport.md index 90bcae73da0c..99a34875da31 100644 --- a/docs/essentials/viewport.md +++ b/docs/essentials/viewport.md @@ -13,11 +13,9 @@ The Viewport toolbar item allows you to adjust the dimensions of the iframe your /> -### Configuration +## Configuration -Out of the box, the Viewport addon offers you a standard set of viewports that you can use. - -If you want to change the default set of viewports, you can set the global `parameters.viewport` [parameter](../writing-stories/parameters.md) in your [`.storybook/preview.js`](../configure/index.md#configure-story-rendering): +Out of the box, the Viewport addon offers you a standard set of viewports that you can use. If you want to change the default set of viewports, you can set the global `parameters.viewport` [parameter](../writing-stories/parameters.md) in your [`.storybook/preview.js`](../configure/index.md#configure-story-rendering): @@ -32,26 +30,58 @@ If you want to change the default set of viewports, you can set the global `para The viewport global can take an object with the following keys: -| Field | Type | Description | Default Value | -| ---------------------- | :-----: | :-------------------------------------------------------: | :------------: | -| **defaultViewport** | String | Sets the default viewport | `'responsive'` | -| **defaultOrientation** | String | Sets the default orientation (e.g. portrait or landscape) | `'portrait'` | -| **disable** | Boolean | Disables the viewport | N/A | -| **viewports** | Object | The configuration object for the viewport | `{}` | +| Field | Type | Description | Default Value | +| ---------------------- | ------- | --------------------------------------------------------- | -------------- | +| **defaultViewport** | String | Sets the default viewport | `'responsive'` | +| **defaultOrientation** | String | Sets the default orientation (e.g. portrait or landscape) | `'portrait'` | +| **disable** | Boolean | Disables the viewport | N/A | +| **viewports** | Object | The configuration objects for the viewport | `{}` | The viewports object needs the following keys: -| Field | Type | Description | Example values | -| ---------- | :----: | :--------------------------------------------------- | :------------------: | -| **name** | String | Name for the viewport | `'Responsive'` | -| **styles** | Object | Sets Inline styles to be applied to the story | `{width:0,height:0}` | -| **type** | String | Type of the device (e.g. desktop, mobile, or tablet) | `desktop` | +| Field | Type | Description | Example values | +| ---------- | ------ | ----------------------------------------------------- | ----------------------- | +| **name** | String | Name for the viewport | `'Responsive'` | +| **styles** | Object | Sets Inline styles to be applied to the story | `{ width:0, height:0 }` | +| **type** | String | Type of the device (e.g., desktop, mobile, or tablet) | `desktop` | ### Use a detailed set of devices -By default, Storybook uses a [minimal set of viewports](https://github.com/storybookjs/storybook/blob/next/code/addons/viewport/src/defaults.ts#L167) to get you started. But you're not restricted to these. The addon offers a more granular list of devices that you can use. - -Change your [`.storybook/preview.js`](../configure/index.md#configure-story-rendering) to the following: +The Viewport addon includes a selection of devices that you can use to test your components. Listed below are the available devices and examples of how to use them. + +| Device | Description | Dimensions (px) | +| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | +| iPhone 5 | Configures the iPhone 5 as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone5', }},` | Width: 320, Height: 568 | +| iPhone 6 | Enables the iPhone 6 to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone6', }},` | Width: 375, Height: 667 | +| iPhone 6 Plus | Includes the iPhone 6 Plus as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone6p', }},` | Width: 414, Height: 736 | +| iPhone 8 Plus | Sets the iPhone 8 Plus as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone8p', }},` | Width: 414, Height: 736 | +| iPhone X | Configures the iPhone X as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphonex', }},` | Width: 375, Height: 812 | +| iPhone XR | Includes the iPhone XR as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphonexr', }},` | Width: 414, Height: 896 | +| iPhone XS Max | Sets the iPhone XS Max as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphonexsmax', }},` | Width: 414, Height: 896 | +| iPhone SE (2nd generation) | Configures the iPhone SE (2nd generation) as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphonese2', }},` | Width: 375, Height: 667 | +| iPhone 12 mini | Enables the iPhone 12 Mini to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone12mini', }},` | Width: 375, Height: 812 | +| iPhone 12 | Includes the iPhone 12 as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone12', }},` | Width: 390, Height: 844 | +| iPhone 12 Pro Max | Configures the iPhone 12 Pro Max as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone12promax', }},` | Width: 428, Height: 926 | +| iPhone SE 3rd generation | Enables the iPhone SE (3rd generation) to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphoneSE3', }},` | Width: 375, Height: 667 | +| iPhone 13 | Includes the iPhone 13 as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone13', }},` | Width: 390, Height: 844 | +| iPhone 13 Pro | Enables the iPhone 13 Pro to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone13pro', }},` | Width: 390, Height: 844 | +| iPhone 13 Pro Max | Configures the iPhone 13 Pro Max as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone13promax', }},` | Width: 428, Height: 926 | +| iPhone 14 | Enables the iPhone 14 to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone14', }},` | Width: 390, Height: 844 | +| iPhone 14 Pro | Includes the iPhone 14 Pro as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone14pro', }},` | Width: 393, Height: 852 | +| iPhone 14 Pro Max | Sets the iPhone 14 Pro Max as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'iphone14promax', }},` | Width: 430, Height: 932 | +| Galaxy S5 | Configures the Galaxy S5 as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'galaxys5', }},` | Width: 360, Height: 640 | +| Galaxy S9 | Enables the Galaxy S9 to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'galaxys9', }},` | Width: 360, Height: 740 | +| Nexus 5X | Includes the Nexus 5x as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'nexus5x', }},` | Width: 412, Height: 668 | +| Nexus 6P | Sets the Nexus 6P as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'nexus6p', }},` | Width: 412, Height: 732 | +| Pixel | Configures the Pixel as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'pixel', }},` | Width: 540, Height: 960 | +| Pixel XL | Enables the Pixel XL to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'pixelxl', }},` | Width: 720, Height: 1280 | +| Small mobile | Enabled by default.
Configures a small form factor generic mobile device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'mobile1', }},` | Width: 320, Height: 568 | +| Large mobile | Enabled by default.
Configures a large form factor mobile device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'mobile2', }},` | Width: 414, Height: 896 | +| iPad | Includes the iPad as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'ipad', }},` | Width: 768, Height: 1024 | +| iPad Pro 10.5-in | Enables the iPad Pro (10.5-inch) to be used with the Viewport addon.
`parameters: { viewport: { defaultViewport: 'ipad10p', }},` | Width: 834, Height: 112 | +| iPad Pro 11-in | Configures the iPad Pro (11-inch) as a device for the Viewport addon.
`parameters: { viewport: { defaultViewport: 'ipad11p', }},` | Width: 834, Height: 1194 | +| iPad Pro 12.9-in | Sets the iPad Pro (12.9-inch) as a device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'ipad12p', }},` | Width: 1024, Height: 1366 | +| Tablet | Enabled by default.
Configures a standard form factor tablet device to be used by the Viewport addon.
`parameters: { viewport: { defaultViewport: 'tablet', }},` | Width: 834, Height: 1112 | @@ -64,9 +94,11 @@ Change your [`.storybook/preview.js`](../configure/index.md#configure-story-rend -Start your Storybook, and you'll see the new devices that you can use. + + +The generic devices are enabled by default as they are the most common for testing responsive UIs. You don't need to include them in your configuration if you want to use them. For the implementation details, see the [source code](https://github.com/storybookjs/storybook/tree/next/code/addons/viewport) for the Viewport addon. -See [here](https://github.com/storybookjs/storybook/blob/master/addons/viewport/src/defaults.ts#L3) the complete list of devices and their configurations. + ### Add new devices @@ -82,7 +114,7 @@ If you have either a specific viewport or a list of viewports that you need to u -Make the following change to use them in your Storybook: +Make the following changes to use them in your Storybook: @@ -97,7 +129,7 @@ Make the following change to use them in your Storybook: Once you start Storybook, you'll see your new viewports and devices. -If you need, you can also add these two to another list of viewports. +You can add these two to another list of viewports if needed. For instance, if you want to use these two with the minimal set of viewports, you can do it like so: @@ -112,11 +144,11 @@ For instance, if you want to use these two with the minimal set of viewports, yo -Both viewports (`Kindle Fire 2` and `Kindle Fire HD`) will feature in the list of devices by merging them into the [`MINIMAL_VIEWPORTS`](https://github.com/storybookjs/storybook/blob/next/code/addons/viewport/src/defaults.ts#L167). +Both viewports (`Kindle Fire 2` and `Kindle Fire HD`) will feature in the list of devices by merging them into the [`MINIMAL_VIEWPORTS`](https://github.com/storybookjs/storybook/blob/next/code/addons/viewport/src/defaults.ts#L231). ### Configuring per component or story -There are cases where it's not practical for you to use a specific visual viewport on a global scale, and you need it to adjust it to an individual story. +In some cases, it's not practical for you to use a specific visual viewport on a global scale, and you need to adjust it to an individual story. Update your story through [parameters](../writing-stories/parameters.md) to include your viewports at a component level or for a specific story: diff --git a/docs/get-started/install.md b/docs/get-started/install.md index 977a1e122c03..44b2cf7aad92 100644 --- a/docs/get-started/install.md +++ b/docs/get-started/install.md @@ -57,6 +57,12 @@ Storybook comes with a built-in development server featuring everything you need + + +Storybook collects completely anonymous data to help us improve user experience. Participation is optional, and you may [opt-out](../configure/telemetry.md#how-to-opt-out) if you'd not like to share any information. + + + ![Storybook welcome screen](./example-welcome.png) There are some noteworthy items here: @@ -66,36 +72,235 @@ There are some noteworthy items here: - A few example stories to get you started.
-

Troubleshooting

+

Troubleshooting

+ +#### Run Storybook with other package managers -Below are some of the most common installation issues and instructions on how to solve them. +The Storybook CLI includes support for the industry's popular package managers (e.g., [Yarn](https://yarnpkg.com/), [npm](https://www.npmjs.com/), and [pnpm](https://pnpm.io/)) automatically detecting the one you are using when you initialize Storybook. However, if you want to use a specific package manager as the default, add the `--package-manager` flag to the installation command. For example: - - +#### The CLI doesn't detect my framework + +If you're working with a custom environment set up or need set up Storybook manually, you can use the `--type` flag to specify the framework you need to use. Listed below are the supported frameworks and examples of how to use them: + +| Framework | Type | +| -------------- | ---------------- | +| Angular | `angular` | +| Ember | `ember` | +| HTML | `html` | +| Next.js | `nextjs` | +| Preact | `preact` | +| Qwik | `qwik` | +| React | `react` | +| Server | `server` | +| Solid | `solid` | +| Svelte | `svelte` | +| Vue 2 | `vue` | +| Vue 3 | `vue3` | +| Web Components | `web-components` | -Storybook collects completely anonymous data to help us improve user experience. Participation is optional, and you may [opt-out](../configure/telemetry.md#how-to-opt-out) if you'd not like to share any information. + + + + + + +#### Run Storybook with Webpack 4 + +If you previously installed Storybook in a project that uses Webpack 4, it will no longer work. This is because Storybook now uses Webpack 5 by default. To solve this issue, we recommend you upgrade your project to Webpack 5 and then run the following command to migrate your project to the latest version of Storybook: + + + + + + + + + +#### Storybook doesn't work with my Angular project using the Angular CLI + +Out of the box, adding Storybook to an Angular project using the Angular CLI requires you to run the installation command from the root of the project or, if you're working with a monorepo environment, from the directory where the Angular configuration file (i.e., `angular.json`) is located as it will be used to set up the builder configuration necessary to run Storybook. However, if you need, you can extend the builder configuration to customize Storybook's behavior. Listed below are the supported options: + +| Configuration element | Description | +| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `"browserTarget"` | Build target to be served using the following format.
`"example-project:builder:config"` | +| `"tsConfig"` | Location of the TypeScript configuration file, relative to the current workspace.
`"tsConfig": "./tsconfig.json"`. | +| `"port"` | Port used by Storybook.
`"port": 6006` | +| `"host"` | Set up a custom host for Storybook.
`"host": "http://my-custom-host"` | +| `"configDir"` | Storybook configuration directory location.
`"configDir": ".storybook"` | +| `"https"` | Starts Storybook with HTTPS enabled.
`"https": true`
Requires custom certificate information. | +| `"sslCa"` | Provides an SSL certificate authority.
`"sslCa": "your-custom-certificate-authority"`
Optional usage with `"https"` | +| `"sslCert"` | Provides an SSL certificate.
`"sslCert": "your-custom-certificate"`
Required for `https` | +| `"sslKey"` | Provides an SSL key to serve Storybook.
`"sslKey": "your-ssl-key"` | +| `"smokeTest"` | Exit Storybook after successful start.
`"smokeTest": true` | +| `"ci"` | Starts Storybook in CI mode (skips interactive prompts and will not open browser window).
`"ci": true` | +| `"quiet"` | Filters Storybook verbose build output.
`"quiet": true` | +| `"docs"` | Starts Storybook in [documentation mode](../writing-docs/build-documentation.md#preview-storybooks-documentation).
`"docs": true` | +| `"styles"` | Provide the location of the [application's styles](../configure/styling-and-css.md#importing-css-files) to be used with Storybook.
`"styles": ["src/styles.css", "src/styles.scss"]`
| +| `"stylePreprocessorOptions"` | Provides further customization for style preprocessors resolved to the workspace root.
`"stylePreprocessorOptions": { "includePaths": ["src/styles"] }` | + +
+ + + +#### The CLI doesn't support my Ember version + +The Ember framework relies on an auxiliary package named [`@storybook/ember-cli-storybook`](https://www.npmjs.com/package/@storybook/ember-cli-storybook) to help you set up Storybook in your project. During the installation process you might run into the following warning message in your terminal: + +```shell +The ember generate entity-name command requires an entity name to be specified. +For more details, use ember help. +``` + +It may be the case that you're using an outdated version of the package and you need to update it to the latest version to solve this issue. + + + + + +#### Writing native Svelte stories + +Storybook provides a Svelte addon maintained by the community, enabling you to write stories for your Svelte components using the template syntax. You'll need to take some additional steps to enable this feature. + +Run the following command to install the addon. + + + + + + + +Update your Storybook configuration file (i.e., `.storybook/main.js|ts`) to include it. + + + + + + + + + +The community actively maintains the Svelte CSF addon but still lacks some features currently available in the official Storybook Svelte framework support. For more information, see [addon's documentation](https://github.com/storybookjs/addon-svelte-csf). -If all else fails, try asking for [help](https://storybook.js.org/community#support) + + +#### The installation process seems flaky and keeps failing + +If you're still running into some issues during the installation process, we encourage you to check out the following resources: + + + +- [Storybook's Angular README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/angular) for more information on how to set up Storybook in your Angular project. +- [Storybook's help documentation](https://storybook.js.org/community#support) to contact the community and ask for help. + + + + + +- [Storybook's Ember README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/ember) for more information on how to set up Storybook in your Ember project. +- [Storybook's help documentation](https://storybook.js.org/community#support) to contact the community and ask for help. + + + + + +- [Storybook's HTML Webpack README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/html-webpack5) for more information on how to set up Storybook in your HTML project with Webpack 5. +- [Storybook's HTML Vite README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/html-vite) for more information on how to set up Storybook in your HTML project with Vite. +- [Storybook's help documentation](https://storybook.js.org/community#support) to contact the community and ask for help. + + + + + +- [Storybook's Preact Webpack README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/preact-webpack5) for more information on how to set up Storybook in your Preact project with Webpack 5. +- [Storybook's Preact Vite README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/preact-vite) for more information on how to set up Storybook in your Preact project with Vite. +- [Storybook's help documentation](https://storybook.js.org/community#support) to contact the community and ask for help. + + + + + +- [Storybook's Qwik README](https://github.com/literalpie/storybook-framework-qwik) for more information on how to set up Storybook in your Qwik project. +- [Storybook's help documentation](https://storybook.js.org/community#support) to contact the community and ask for help. + + + + + +- [Storybook's React Webpack README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/react-webpack5) for more information on how to set up Storybook in your React project with Webpack 5. +- [Storybook's React Vite README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/react-vite) for more information on how to set up Storybook in your React project with Vite. +- [Storybook's help documentation](https://storybook.js.org/community#support) to contact the community and ask for help. + + + + + +- [Storybook's SolidJS README](https://github.com/storybookjs/solidjs) for more information on how to set up Storybook in your SolidJS project. +- [Storybook's help documentation](https://storybook.js.org/community#support) to contact the community and ask for help. + + + + + +- [Storybook's SvelteKit README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/sveltekit) for more information on how to set up Storybook in your SvelteKit project. +- [Storybook's Svelte Webpack README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/svelte-webpack5) for more information on how to set up Storybook in your Svelte project with Webpack 5. +- [Storybook's help documentation](https://storybook.js.org/community#support) to contact the community and ask for help. + + + + + +- [Storybook's Vue 2 Webpack README](https://github.com/storybookjs/storybook/tree/main/code/frameworks/vue-webpack5) for more information on how to set up Storybook in your Vue 2 project with Webpack 5. +- [Storybook's Vue 2 Vite README](https://github.com/storybookjs/storybook/tree/main/code/frameworks/vue-vite) for more information on how to set up Storybook in your Vue 2 project with Vite. +- [Storybook's Vue 3 Webpack README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/vue3-webpack5) for more information on how to set up Storybook in your Vue 3 project with Webpack 5. +- [Storybook's Vue 3 Vite README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/vue3-vite) for more information on how to set up Storybook in your Vue 3 project with Vite. +- [Storybook's help documentation](https://storybook.js.org/community#support) to contact the community and ask for help. + + + + + +- [Storybook's Web Components Webpack README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/web-components-webpack55) for more information on how to set up Storybook in your Web Components project with Webpack 5. +- [Storybook's Web Components Vite README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/web-components-vite) for more information on how to set up Storybook in your Web Components project with Vite. +- [Storybook's help documentation](https://storybook.js.org/community#support) to contact the community and ask for help. + +
diff --git a/docs/get-started/installation-command-section/solid.mdx b/docs/get-started/installation-command-section/solid.mdx deleted file mode 100644 index 41e5c040cc9d..000000000000 --- a/docs/get-started/installation-command-section/solid.mdx +++ /dev/null @@ -1,15 +0,0 @@ -Use the Storybook CLI to install it in a single command. Run this inside your _existing project’s_ root directory: - -- With npm: - -```shell -npx storybook init -``` - -- With pnpm: - -```shell -pnpm dlx storybook init -``` - -If you run into issues with the installation, check the [Troubleshooting section](#troubleshooting) below for guidance on how to solve it. diff --git a/docs/get-started/installation-problems/angular.mdx b/docs/get-started/installation-problems/angular.mdx deleted file mode 100644 index 96b96b440a7b..000000000000 --- a/docs/get-started/installation-problems/angular.mdx +++ /dev/null @@ -1,45 +0,0 @@ -- Add the `--type angular` flag to the installation command to set up Storybook manually: - - ```shell - npx storybook@latest init --type angular - ``` - -- Storybook's CLI provides support for [Yarn](https://yarnpkg.com/), [npm](https://www.npmjs.com/), and [pnpm](https://pnpm.io/) package managers. If you have Yarn installed in your environment but prefer to use another as your default package manager add the `--package-manager` flag to your installation command. For example: - - ```shell - npx storybook@latest init --package-manager=npm - ``` - -- Storybook supports Webpack 5 out of the box. If you're upgrading from a previous version, run the following command to enable it: - - ```shell - npx storybook@latest automigrate - ``` - - Check the [Migration Guide](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#automigrate) for more information on how to set up Webpack 5. - -- If you're using the custom Storybook builder, Storybook will not automatically open a browser window or tab. It's is a known issue that we plan to fix in future releases. - -- When adding Storybook to your Angular project, check if you're running the install command from the root directory. Or in a monorepo environment inside the directory where the `angular.json` file is located. - -- If you need further customization to the Storybook builder configuration, you can use the following table as a reference: - -| Configuration element | Description | -| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `"browserTarget"` | Build target to be served using the following format.
`"example-project:builder:config"` | -| `"tsConfig"` | Location of the TypeScript configuration file, relative to the current workspace.
`"tsConfig": "./tsconfig.json"`. | -| `"port"` | Port used by Storybook.
`"port": 6006` | -| `"host"` | Set up a custom host for Storybook.
`"host": "http://my-custom-host"` | -| `"configDir"` | Storybook configuration directory location.
`"configDir": ".storybook"` | -| `"https"` | Starts Storybook with HTTPS enabled.
`"https": true`
Requires custom certificate information. | -| `"sslCa"` | Provides an SSL certificate authority.
`"sslCa": "your-custom-certificate-authority"`
Optional usage with `"https"` | -| `"sslCert"` | Provides an SSL certificate.
`"sslCert": "your-custom-certificate"`
Required for `https` | -| `"sslKey"` | Provides an SSL key to serve Storybook.
`"sslKey": "your-ssl-key"` | -| `"smokeTest"` | Exit Storybook after successful start.
`"smokeTest": true` | -| `"ci"` | Starts Storybook in CI mode (skips interactive prompts and will not open browser window).
`"ci": true` | -| `"quiet"` | Filters Storybook verbose build output.
`"quiet": true` | -| `"docs"` | Starts Storybook in [documentation mode](../writing-docs/build-documentation.md#preview-storybooks-documentation).
`"docs": true` | -| `"styles"` | Provide the location of the [application's styles](../configure/styling-and-css.md#importing-css-files) to be used with Storybook.
`"styles": ["src/styles.css", "src/styles.scss"]`
| -| `"stylePreprocessorOptions"` | Provides further customization for style preprocessors resolved to the workspace root.
`"stylePreprocessorOptions": { "includePaths": ["src/styles"] }` | - -- For other installation issues, check the [Angular README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/angular) for additional instructions. diff --git a/docs/get-started/installation-problems/ember.mdx b/docs/get-started/installation-problems/ember.mdx deleted file mode 100644 index a396c27891bd..000000000000 --- a/docs/get-started/installation-problems/ember.mdx +++ /dev/null @@ -1,23 +0,0 @@ -- Add the `--type ember` flag to the installation command to set up Storybook manually: - - ```shell - npx storybook@latest init --type ember - ``` - -- During the install process, if you get the following warning message: - - ```shell - The ember generate entity-name command requires an entity name to be specified. - - For more details, use ember help. - ``` - -Update the [`@storybook/ember-cli-storybook`](https://www.npmjs.com/package/@storybook/ember-cli-storybook) package to the latest version to fix it. - -- Storybook's CLI provides support for [Yarn](https://yarnpkg.com/), [npm](https://www.npmjs.com/), and [pnpm](https://pnpm.io/) package managers. If you have Yarn installed in your environment but prefer to use another as your default package manager add the `--package-manager` flag to your installation command. For example: - - ```shell - npx storybook@latest init --package-manager=npm - ``` - -- For other installation issues, check the [Ember README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/ember) for additional instructions. diff --git a/docs/get-started/installation-problems/html.mdx b/docs/get-started/installation-problems/html.mdx deleted file mode 100644 index f43b72620b10..000000000000 --- a/docs/get-started/installation-problems/html.mdx +++ /dev/null @@ -1,9 +0,0 @@ -- Add the `--type html` flag to the installation command to set up Storybook manually: - - ```shell -npx storybook@latest init --type html - ``` - -- For other installation issues, check the React README files for additional instructions: - - [HTML with Webpack]( https://github.com/storybookjs/storybook/tree/next/code/frameworks/html-webpack5) - - [HTML with Vite](https://github.com/storybookjs/storybook/tree/next/code/frameworks/html-vite) diff --git a/docs/get-started/installation-problems/preact.mdx b/docs/get-started/installation-problems/preact.mdx deleted file mode 100644 index 24837b2c1ebd..000000000000 --- a/docs/get-started/installation-problems/preact.mdx +++ /dev/null @@ -1,13 +0,0 @@ -- Add the `--type preact` flag to the installation command to set up Storybook manually: - - ```shell - npx storybook@latest init --type preact - ``` - -- Storybook's CLI provides support for [Yarn](https://yarnpkg.com/), [npm](https://www.npmjs.com/), and [pnpm](https://pnpm.io/) package managers. If you have Yarn installed in your environment but prefer to use another as your default package manager add the `--package-manager` flag to your installation command. For example: - - ```shell - npx storybook@latest init --package-manager=npm - ``` - -- For other installation issues, check the [Preact README](https://github.com/storybookjs/storybook/tree/next/code/frameworks/preact-webpack5) for additional instructions. diff --git a/docs/get-started/installation-problems/qwik.mdx b/docs/get-started/installation-problems/qwik.mdx deleted file mode 100644 index c6bd50a043b4..000000000000 --- a/docs/get-started/installation-problems/qwik.mdx +++ /dev/null @@ -1,11 +0,0 @@ -- Add the `--type qwik` flag to the installation command to set up Storybook manually: - - ```shell - npx storybook@latest init --type qwik - ``` - -- Storybook's CLI provides support for [Yarn](https://yarnpkg.com/), [npm](https://www.npmjs.com/), and [pnpm](https://pnpm.io/) package managers. If you have Yarn installed in your environment but prefer to use another as your default package manager add the `--package-manager` flag to your installation command. For example: - - ```shell - npx storybook@latest init --package-manager=npm - ``` diff --git a/docs/get-started/installation-problems/react.mdx b/docs/get-started/installation-problems/react.mdx deleted file mode 100644 index 30b4643208c5..000000000000 --- a/docs/get-started/installation-problems/react.mdx +++ /dev/null @@ -1,23 +0,0 @@ -- Add the `--type react` flag to the installation command to set up Storybook manually: - - ```shell - npx storybook@latest init --type react - ``` - -- Storybook's CLI provides support for [Yarn](https://yarnpkg.com/), [npm](https://www.npmjs.com/), and [pnpm](https://pnpm.io/) package managers. If you have Yarn installed in your environment but prefer to use another as your default package manager add the `--package-manager` flag to your installation command. For example: - - ```shell - npx storybook@latest init --package-manager=npm - ``` - -- Storybook supports Webpack 5 out of the box. If you're upgrading from a previous version, run the following command to enable it: - - ```shell - npx storybook@latest automigrate - ``` - -Check the [Migration Guide](https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#cra5-upgrade) for more information on how to set up Webpack 5. - -- For other installation issues, check the React README files for additional instructions: - - [React with Webpack](https://github.com/storybookjs/storybook/tree/next/code/frameworks/react-webpack5) - - [React with Vite](https://github.com/storybookjs/storybook/tree/next/code/frameworks/react-vite) diff --git a/docs/get-started/installation-problems/solid.mdx b/docs/get-started/installation-problems/solid.mdx deleted file mode 100644 index 9308bb9b154a..000000000000 --- a/docs/get-started/installation-problems/solid.mdx +++ /dev/null @@ -1,11 +0,0 @@ -- Add the `--type solid` flag to the installation command to set up Storybook manually: - - ```shell - npx storybook init --type solid - ``` - -- Storybook's CLI provides support for [Yarn](https://yarnpkg.com/), [npm](https://www.npmjs.com/), and [pnpm](https://pnpm.io/) package managers. If you have Yarn installed in your environment but prefer to use another as your default package manager add the `--package-manager` flag to your installation command. For example: - - ```shell - npx storybook init --package-manager=npm - ``` diff --git a/docs/get-started/installation-problems/svelte.mdx b/docs/get-started/installation-problems/svelte.mdx deleted file mode 100644 index d0bfd5284d68..000000000000 --- a/docs/get-started/installation-problems/svelte.mdx +++ /dev/null @@ -1,25 +0,0 @@ -- Add the `--type svelte` flag to the installation command to set up Storybook manually: - - ```shell - npx storybook@latest init --type svelte - ``` - -- Storybook's CLI provides support for [Yarn](https://yarnpkg.com/), [npm](https://www.npmjs.com/), and [pnpm](https://pnpm.io/) package managers. If you have Yarn installed in your environment but prefer to use another as your default package manager add the `--package-manager` flag to your installation command. For example: - - ```shell - npx storybook@latest init --package-manager=npm - ``` - -### Svelte Native - -To enable support for Svelte Native story format you'll need to make the following changes your Storybook configuration: -- Add the [`@storybook/addon-svelte-csf`](https://storybook.js.org/addons/@storybook/addon-svelte-csf/) addon as development dependency. -- Enable the addon in your Storybook configuration file (e.g., `.storybook/main.js`). -- Disable on demand story loading configuration property (e.g., `storyStoreV7`) in your Storybook configuration file. -- For issues with Svelte Native Story Format, check the [Svelte Story Format addon repository](https://github.com/storybookjs/addon-svelte-csf) for instructions. - - -- For other installation issues, check the Svelte README files for additional instructions: - - [Svelte with Webpack](https://github.com/storybookjs/storybook/tree/next/code/frameworks/svelte-webpack5) - - [Svelte with Vite](https://github.com/storybookjs/storybook/tree/next/code/frameworks/svelte-vite) - - [SvelteKit](https://github.com/storybookjs/storybook/tree/next/code/frameworks/sveltekit) diff --git a/docs/get-started/installation-problems/vue.mdx b/docs/get-started/installation-problems/vue.mdx deleted file mode 100644 index 1268f226a36b..000000000000 --- a/docs/get-started/installation-problems/vue.mdx +++ /dev/null @@ -1,19 +0,0 @@ -- Add the `--type vue` (for Vue 2), or `--type vue3` (for Vue 3) flag to the installation command to set up Storybook manually: - - ```shell - # For Vue 2 projects - npx storybook@latest init --type vue - - # For Vue 3 projects - npx storybook@latest init --type vue3 - ``` - -- Storybook's CLI provides support for [Yarn](https://yarnpkg.com/), [npm](https://www.npmjs.com/), and [pnpm](https://pnpm.io/) package managers. If you have Yarn installed in your environment but prefer to use another as your default package manager add the `--package-manager` flag to your installation command. For example: - - ```shell - npx storybook@latest init --package-manager=npm - ``` - -- For other installation issues, check the Vue README files for additional instructions: - - [Vue 3 with Webpack](https://github.com/storybookjs/storybook/tree/next/code/frameworks/vue3-webpack5) - - [Vue 3 with Vite](https://github.com/storybookjs/storybook/tree/next/code/frameworks/vue3-vite) diff --git a/docs/get-started/installation-problems/web-components.mdx b/docs/get-started/installation-problems/web-components.mdx deleted file mode 100644 index 1a25db5eadec..000000000000 --- a/docs/get-started/installation-problems/web-components.mdx +++ /dev/null @@ -1,9 +0,0 @@ -- Add the `--type web_components` flag to the installation command to set up Storybook manually: - - ```shell - npx storybook@latest init --type web_components - ``` - -- For other installation issues, check the Web Components README files for additional instructions: - - [Web Components with Webpack](https://github.com/storybookjs/storybook/tree/next/code/frameworks/web-components-webpack5) - - [Web Components with Vite](https://github.com/storybookjs/storybook/tree/next/code/frameworks/web-components-vite) diff --git a/docs/snippets/angular/angular-project-compodoc-config.json.mdx b/docs/snippets/angular/angular-project-compodoc-config.json.mdx new file mode 100644 index 000000000000..66d4130306ee --- /dev/null +++ b/docs/snippets/angular/angular-project-compodoc-config.json.mdx @@ -0,0 +1,50 @@ +```jsonc +// angular.json + +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "your-project": { + "projectType": "application", + "schematics": {}, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "storybook": { + "builder": "@storybook/angular:start-storybook", + "options": { + "configDir": ".storybook", + "browserTarget": "your-project:build", + "compodoc": true, + "compodocArgs": [ + "-e", + "json", + "-d", + "." // Add this line to introspect the relevant files starting from the root directory of your project. + ], + "port": 6006 + } + }, + "build-storybook": { + "builder": "@storybook/angular:build-storybook", + "options": { + "configDir": ".storybook", + "browserTarget": "your-project:build", + "compodoc": true, + "compodocArgs": [ + "-e", + "json", + "-d", + "." // Add this line to introspect the relevant files starting from the root directory of your project. + ], + "outputDir": "storybook-static" + } + } + } + } + } +} +``` diff --git a/docs/snippets/angular/compodoc-install.npm.js.mdx b/docs/snippets/angular/compodoc-install.npm.js.mdx new file mode 100644 index 000000000000..be943eda7dc2 --- /dev/null +++ b/docs/snippets/angular/compodoc-install.npm.js.mdx @@ -0,0 +1,3 @@ +```shell +npm install @compodoc/compodoc --save-dev +``` diff --git a/docs/snippets/angular/compodoc-install.pnpm.js.mdx b/docs/snippets/angular/compodoc-install.pnpm.js.mdx new file mode 100644 index 000000000000..116346afd228 --- /dev/null +++ b/docs/snippets/angular/compodoc-install.pnpm.js.mdx @@ -0,0 +1,3 @@ +```shell +pnpm add --save-dev @compodoc/compodo +``` diff --git a/docs/snippets/angular/compodoc-install.yarn.js.mdx b/docs/snippets/angular/compodoc-install.yarn.js.mdx new file mode 100644 index 000000000000..8a6ee05f79b4 --- /dev/null +++ b/docs/snippets/angular/compodoc-install.yarn.js.mdx @@ -0,0 +1,3 @@ +```shell +yarn add --dev @compodoc/compodoc +``` diff --git a/docs/snippets/angular/storybook-preview-compodoc-config.ts.mdx b/docs/snippets/angular/storybook-preview-compodoc-config.ts.mdx new file mode 100644 index 000000000000..658a8906b1e6 --- /dev/null +++ b/docs/snippets/angular/storybook-preview-compodoc-config.ts.mdx @@ -0,0 +1,24 @@ +```ts +// .storybook/preview.ts + +import type { Preview } from '@storybook/angular'; +import { setCompodocJson } from '@storybook/addon-docs/angular'; + +import docJson from '../documentation.json'; // The path to your generated json file from Compodoc contains all your documentation information. + +setCompodocJson(docJson); + +const preview: Preview = { + parameters: { + actions: { argTypesRegex: '^on[A-Z].*' }, + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/, + }, + }, + }, +}; + +export default preview; +``` diff --git a/docs/snippets/common/init-command-custom-package-manager.npx.js.mdx b/docs/snippets/common/init-command-custom-package-manager.npx.js.mdx new file mode 100644 index 000000000000..e904617f28cb --- /dev/null +++ b/docs/snippets/common/init-command-custom-package-manager.npx.js.mdx @@ -0,0 +1,3 @@ +```shell +npx storybook@latest init --package-manager=npm +``` diff --git a/docs/snippets/common/init-command-custom-package-manager.pnpm.js.mdx b/docs/snippets/common/init-command-custom-package-manager.pnpm.js.mdx new file mode 100644 index 000000000000..abd51d256e80 --- /dev/null +++ b/docs/snippets/common/init-command-custom-package-manager.pnpm.js.mdx @@ -0,0 +1,3 @@ +```shell +pnpm dlx storybook@latest init --package-manager=npm +``` diff --git a/docs/snippets/common/init-command-custom-package-manager.yarn.js.mdx b/docs/snippets/common/init-command-custom-package-manager.yarn.js.mdx new file mode 100644 index 000000000000..d01bae571730 --- /dev/null +++ b/docs/snippets/common/init-command-custom-package-manager.yarn.js.mdx @@ -0,0 +1,3 @@ +```shell +yarn dlx storybook@latest init --package-manager=npm +``` diff --git a/docs/snippets/common/init-command-manual-framework.npx.js.mdx b/docs/snippets/common/init-command-manual-framework.npx.js.mdx new file mode 100644 index 000000000000..b0cbed167881 --- /dev/null +++ b/docs/snippets/common/init-command-manual-framework.npx.js.mdx @@ -0,0 +1,3 @@ +```shell +npx storybook@latest init --type solid +``` diff --git a/docs/snippets/common/init-command-manual-framework.pnpm.js.mdx b/docs/snippets/common/init-command-manual-framework.pnpm.js.mdx new file mode 100644 index 000000000000..483487b08ded --- /dev/null +++ b/docs/snippets/common/init-command-manual-framework.pnpm.js.mdx @@ -0,0 +1,3 @@ +```shell +pnpm dlx storybook@latest init --type solid +``` diff --git a/docs/snippets/common/init-command-manual-framework.yarn.js.mdx b/docs/snippets/common/init-command-manual-framework.yarn.js.mdx new file mode 100644 index 000000000000..b1152c869f0a --- /dev/null +++ b/docs/snippets/common/init-command-manual-framework.yarn.js.mdx @@ -0,0 +1,3 @@ +```shell +yarn dlx storybook@latest init --type solid +``` diff --git a/docs/snippets/common/storybook-mdx-template-with-prop.mdx.mdx b/docs/snippets/common/storybook-mdx-template-with-prop.mdx.mdx index 009ecd7eab78..d4cf4b108780 100644 --- a/docs/snippets/common/storybook-mdx-template-with-prop.mdx.mdx +++ b/docs/snippets/common/storybook-mdx-template-with-prop.mdx.mdx @@ -1,7 +1,7 @@ ```mdx {/* DocumentationTemplate.mdx */} -import { Meta, Title, Subtitle, Description, Primary, Controls, Stories } from '@storybook/blocks'; +import { Meta, Title, Primary, Controls, Stories } from '@storybook/blocks'; {/* * 👇 The isTemplate property is required to tell Storybook that this is a template diff --git a/docs/snippets/common/storybook-preview-granular-viewports.js.mdx b/docs/snippets/common/storybook-preview-granular-viewports.js.mdx index b8411362f231..21a22001661c 100644 --- a/docs/snippets/common/storybook-preview-granular-viewports.js.mdx +++ b/docs/snippets/common/storybook-preview-granular-viewports.js.mdx @@ -1,12 +1,16 @@ ```js // .storybook/preview.js -import { INITIAL_VIEWPORTS } from '@storybook/addon-viewport'; +import { INITIAL_VIEWPORTS, MINIMAL_VIEWPORTS } from '@storybook/addon-viewport'; export default { parameters: { viewport: { - viewports: INITIAL_VIEWPORTS, + viewports: { + ...INITIAL_VIEWPORTS, + ...MINIMAL_VIEWPORTS, + }, + defaultViewport: 'iphone14promax', }, }, }; diff --git a/docs/snippets/common/storybook-preview-granular-viewports.ts.mdx b/docs/snippets/common/storybook-preview-granular-viewports.ts.mdx index a5665c2518c2..41ed2781987c 100644 --- a/docs/snippets/common/storybook-preview-granular-viewports.ts.mdx +++ b/docs/snippets/common/storybook-preview-granular-viewports.ts.mdx @@ -4,12 +4,16 @@ // Replace your-framework with the framework you are using (e.g., react, vue3) import { Preview } from '@storybook/your-framework'; -import { INITIAL_VIEWPORTS } from '@storybook/addon-viewport'; +import { INITIAL_VIEWPORTS, MINIMAL_VIEWPORTS } from '@storybook/addon-viewport'; const preview: Preview = { parameters: { viewport: { - viewports: INITIAL_VIEWPORTS, + viewports: { + ...INITIAL_VIEWPORTS, + ...MINIMAL_VIEWPORTS, + }, + defaultViewport: 'iphone14promax', }, }, }; diff --git a/docs/snippets/ember/button-story-default-export-with-component.js.mdx b/docs/snippets/ember/button-story-default-export-with-component.js.mdx new file mode 100644 index 000000000000..c1e6396ad3e1 --- /dev/null +++ b/docs/snippets/ember/button-story-default-export-with-component.js.mdx @@ -0,0 +1,7 @@ +```js +// Button.stories.js + +export default { + component: 'button', +}; +``` diff --git a/docs/snippets/ember/storybook-ember-cli-build.js.mdx b/docs/snippets/ember/storybook-ember-cli-build.js.mdx new file mode 100644 index 000000000000..426e63872b82 --- /dev/null +++ b/docs/snippets/ember/storybook-ember-cli-build.js.mdx @@ -0,0 +1,17 @@ +```js +// ember-cli-build.js + +'use strict'; + +const EmberApp = require('ember-cli/lib/broccoli/ember-app'); + +module.exports = function (defaults) { + const app = new EmberApp(defaults, { + '@storybook/ember-cli-storybook': { + enableAddonDocsIntegration: true, + }, + }); + + return app.toTree(); +}; +``` diff --git a/docs/snippets/ember/storybook-preview-custom-metadata.js.mdx b/docs/snippets/ember/storybook-preview-custom-metadata.js.mdx new file mode 100644 index 000000000000..ec446d1559ab --- /dev/null +++ b/docs/snippets/ember/storybook-preview-custom-metadata.js.mdx @@ -0,0 +1,19 @@ +```js +// .storybook/preview.js + +import { setJSONDoc } from '@storybook/addon-docs/ember'; + +import docJson from '../dist/storybook-docgen/index.json'; +setJSONDoc(docJson); + +export default { + parameters: { + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/, + }, + }, + }, +}; +``` diff --git a/docs/snippets/preact/button-story-default-export-with-component.js.mdx b/docs/snippets/preact/button-story-default-export-with-component.js.mdx new file mode 100644 index 000000000000..dfffb5de27e3 --- /dev/null +++ b/docs/snippets/preact/button-story-default-export-with-component.js.mdx @@ -0,0 +1,9 @@ +```js +// Button.stories.js|jsx + +import { Button } from './Button'; + +export default { + component: Button, +}; +``` diff --git a/docs/snippets/svelte/main-config-csf-addon-register.js.mdx b/docs/snippets/svelte/main-config-csf-addon-register.js.mdx new file mode 100644 index 000000000000..5559ac261ca1 --- /dev/null +++ b/docs/snippets/svelte/main-config-csf-addon-register.js.mdx @@ -0,0 +1,13 @@ +```js +// .storybook/main.js + +export default { + // Replace sveltekit with svelte-vite if you are not working with SvelteKit + framework: '@storybook/sveltekit', + stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx|svelte)'], + addons: [ + // Other Storybook addons + '@storybook/addon-svelte-csf', //👈 The Svelte CSF addon goes here + ], +}; +``` diff --git a/docs/snippets/svelte/main-config-csf-addon-register.ts.mdx b/docs/snippets/svelte/main-config-csf-addon-register.ts.mdx new file mode 100644 index 000000000000..3221880ebb99 --- /dev/null +++ b/docs/snippets/svelte/main-config-csf-addon-register.ts.mdx @@ -0,0 +1,17 @@ +```ts +// .storybook/main.ts + +// Replace sveltekit with svelte-vite if you are not working with SvelteKit +import type { StorybookConfig } from '@storybook/sveltekit'; + +const config: StorybookConfig = { + framework: '@storybook/sveltekit', + stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx|svelte)'], + addons: [ + // Other Storybook addons + '@storybook/addon-svelte-csf', //👈 The Svelte CSF addon goes here + ], +}; + +export default config; +``` diff --git a/docs/snippets/svelte/svelte-csf-addon-install.npm.js.mdx b/docs/snippets/svelte/svelte-csf-addon-install.npm.js.mdx new file mode 100644 index 000000000000..574d63651863 --- /dev/null +++ b/docs/snippets/svelte/svelte-csf-addon-install.npm.js.mdx @@ -0,0 +1,3 @@ +```shell +npm install @storybook/addon-svelte-csf --save-dev +``` diff --git a/docs/snippets/svelte/svelte-csf-addon-install.pnpm.js.mdx b/docs/snippets/svelte/svelte-csf-addon-install.pnpm.js.mdx new file mode 100644 index 000000000000..4ff9be66f107 --- /dev/null +++ b/docs/snippets/svelte/svelte-csf-addon-install.pnpm.js.mdx @@ -0,0 +1,3 @@ +```shell +pnpm add --save-dev @storybook/addon-svelte-csf +``` diff --git a/docs/snippets/svelte/svelte-csf-addon-install.yarn.js.mdx b/docs/snippets/svelte/svelte-csf-addon-install.yarn.js.mdx new file mode 100644 index 000000000000..5b3e6dff23f6 --- /dev/null +++ b/docs/snippets/svelte/svelte-csf-addon-install.yarn.js.mdx @@ -0,0 +1,3 @@ +```shell +yarn add --dev @storybook/addon-svelte-csf +``` diff --git a/docs/snippets/web-components/button-story-default-export-with-component.ts.mdx b/docs/snippets/web-components/button-story-default-export-with-component.ts.mdx new file mode 100644 index 000000000000..805431b359c0 --- /dev/null +++ b/docs/snippets/web-components/button-story-default-export-with-component.ts.mdx @@ -0,0 +1,11 @@ +```ts +// Button.stories.ts + +import type { Meta } from '@storybook/web-components'; + +export default { + component: 'demo-button', +}; + +export default meta; +``` diff --git a/docs/snippets/web-components/component-story-custom-args-complex.js.mdx b/docs/snippets/web-components/component-story-custom-args-complex.js.mdx new file mode 100644 index 000000000000..0bd0906b20ba --- /dev/null +++ b/docs/snippets/web-components/component-story-custom-args-complex.js.mdx @@ -0,0 +1,42 @@ +```js +// Button.stories.js + +import { html } from 'lit'; + +export default { + component: 'custom-component', + //👇 Creates specific argTypes + argTypes: { + propertyA: { + options: ['Item One', 'Item Two', 'Item Three'], + control: { type: 'select' }, // Automatically inferred when 'options' is defined + }, + propertyB: { + options: ['Another Item One', 'Another Item Two', 'Another Item Three'], + }, + }, +}; + +const someFunction = (valuePropertyA, valuePropertyB) => { + // Do some logic here +}; + +export const ExampleStory = { + render: ({ propertyA, propertyB }) => { + //👇 Assigns the function result to a variable + const someFunctionResult = someFunction(propertyA, propertyB); + + return html` + + `; + }, + args: { + propertyA: 'Item One', + propertyB: 'Another Item One', + }, +}; +``` diff --git a/docs/snippets/web-components/component-story-custom-args-complex.ts.mdx b/docs/snippets/web-components/component-story-custom-args-complex.ts.mdx new file mode 100644 index 000000000000..b772ef0301cc --- /dev/null +++ b/docs/snippets/web-components/component-story-custom-args-complex.ts.mdx @@ -0,0 +1,47 @@ +```ts +// Button.stories.ts + +import type { Meta, StoryObj } from '@storybook/web-components'; + +import { html } from 'lit'; + +const meta: Meta = { + component: 'custom-component', + //👇 Creates specific argTypes with options + argTypes: { + propertyA: { + options: ['Item One', 'Item Two', 'Item Three'], + control: { type: 'select' }, // Automatically inferred when 'options' is defined + }, + propertyB: { + options: ['Another Item One', 'Another Item Two', 'Another Item Three'], + }, + }, +}; + +export default meta; +type Story = StoryObj; + +const someFunction = (valuePropertyA: any, valuePropertyB: any) => { + // Do some logic here +}; + +export const ExampleStory: Story = { + render: ({ propertyA, propertyB }) => { + //👇 Assigns the function result to a variable + const someFunctionResult = someFunction(propertyA, propertyB); + + return html` + + `; + }, + args: { + propertyA: 'Item One', + propertyB: 'Another Item One', + }, +}; +``` diff --git a/docs/snippets/web-components/storybook-preview-custom-elements-config.js.mdx b/docs/snippets/web-components/storybook-preview-custom-elements-config.js.mdx new file mode 100644 index 000000000000..10b4d63d5c01 --- /dev/null +++ b/docs/snippets/web-components/storybook-preview-custom-elements-config.js.mdx @@ -0,0 +1,19 @@ +```js +// .storybook/preview.js + +import { setCustomElementsManifest } from '@storybook/web-components'; +import customElements from '../custom-elements.json'; + +setCustomElementsManifest(customElements); + +export default { + parameters: { + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/, + }, + }, + }, +}; +``` diff --git a/docs/snippets/web-components/storybook-preview-custom-elements-config.ts.mdx b/docs/snippets/web-components/storybook-preview-custom-elements-config.ts.mdx new file mode 100644 index 000000000000..df8a1e374053 --- /dev/null +++ b/docs/snippets/web-components/storybook-preview-custom-elements-config.ts.mdx @@ -0,0 +1,24 @@ +```ts +// .storybook/preview.ts + +import type { Preview } from '@storybook/web-components'; +import { setCustomElementsManifest } from '@storybook/web-components'; + +import customElements from '../custom-elements.json'; + +setCustomElementsManifest(customElements); + +const preview: Preview = { + parameters: { + actions: { argTypesRegex: '^on[A-Z].*' }, + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/i, + }, + }, + }, +}; + +export default preview; +``` diff --git a/docs/versions/next.json b/docs/versions/next.json index 87806eaaf3b8..060cd5ca7efd 100644 --- a/docs/versions/next.json +++ b/docs/versions/next.json @@ -1 +1 @@ -{"version":"8.0.0-alpha.3","info":{"plain":"- Addon-docs: Fix storybook MDX check - [#24696](https://github.com/storybookjs/storybook/pull/24696), thanks [@shilman](https://github.com/shilman)!\n- Addons: Remove unused postinstall package - [#25150](https://github.com/storybookjs/storybook/pull/25150), thanks [@shilman](https://github.com/shilman)!\n- Angular: Update Angular cli templates - [#25152](https://github.com/storybookjs/storybook/pull/25152), thanks [@Marklb](https://github.com/Marklb)!\n- Blocks: Fix Subtitle block for unattached docs pages - [#25157](https://github.com/storybookjs/storybook/pull/25157), thanks [@kripod](https://github.com/kripod)!\n- Ember: Fix @storybook/ember - [#23435](https://github.com/storybookjs/storybook/pull/23435), thanks [@francois2metz](https://github.com/francois2metz)!\n- Maintenance: Set engines field to Node.js >= 18 for packages - [#25105](https://github.com/storybookjs/storybook/pull/25105), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!"}} +{"version":"8.0.0-alpha.4","info":{"plain":"- API: Remove stories.json support - [#25236](https://github.com/storybookjs/storybook/pull/25236), thanks [@shilman](https://github.com/shilman)!\n- Addon Docs: Remove `react` peer dependency - [#24881](https://github.com/storybookjs/storybook/pull/24881), thanks [@JReinhold](https://github.com/JReinhold)!\n- Addon-docs: Support `` and `` in source viewer - [#19785](https://github.com/storybookjs/storybook/pull/19785), thanks [@zhyd1997](https://github.com/zhyd1997)!\n- Angular: Add random attribute to bootstrapped selector - [#24972](https://github.com/storybookjs/storybook/pull/24972), thanks [@Marklb](https://github.com/Marklb)!\n- Angular: Reduce the warnings from `ts-loader` via stricter list of `includes` - [#24531](https://github.com/storybookjs/storybook/pull/24531), thanks [@ndelangen](https://github.com/ndelangen)!\n- Blocks: Render colors in the same order as provided - [#25001](https://github.com/storybookjs/storybook/pull/25001), thanks [@kaelig](https://github.com/kaelig)!\n- CLI: Add prompt-only automigrate asking for react-removal - [#25215](https://github.com/storybookjs/storybook/pull/25215), thanks [@ndelangen](https://github.com/ndelangen)!\n- CLI: No longer add react in init - [#25196](https://github.com/storybookjs/storybook/pull/25196), thanks [@ndelangen](https://github.com/ndelangen)!\n- Core: Set bundle target to `node18` - [#25239](https://github.com/storybookjs/storybook/pull/25239), thanks [@shilman](https://github.com/shilman)!\n- SvelteKit: Fix missing `$app` modules - [#25132](https://github.com/storybookjs/storybook/pull/25132), thanks [@paoloricciuti](https://github.com/paoloricciuti)!\n- SvelteKit: Support 2.0 modules with mocks - [#25244](https://github.com/storybookjs/storybook/pull/25244), thanks [@paoloricciuti](https://github.com/paoloricciuti)!\n- UI: Embed `react-textarea-autosize` types - [#25235](https://github.com/storybookjs/storybook/pull/25235), thanks [@ndelangen](https://github.com/ndelangen)!"}} diff --git a/docs/writing-stories/index.md b/docs/writing-stories/index.md index c938a3f60929..a270dd95b1e1 100644 --- a/docs/writing-stories/index.md +++ b/docs/writing-stories/index.md @@ -39,6 +39,7 @@ The _default_ export metadata controls how Storybook lists your stories and prov 'svelte/button-story-default-export-with-component.js.mdx', 'svelte/button-story-default-export-with-component.ts.mdx', 'web-components/button-story-default-export-with-component.js.mdx', + 'web-components/button-story-default-export-with-component.ts.mdx', 'html/button-story-default-export.js.mdx', 'html/button-story-default-export.ts.mdx', 'solid/button-story-default-export-with-component.js.mdx', diff --git a/scripts/get-template.ts b/scripts/get-template.ts index ee3b81b13025..ecb62a942f80 100644 --- a/scripts/get-template.ts +++ b/scripts/get-template.ts @@ -101,7 +101,7 @@ async function checkParallelism(cadence?: Cadence, scriptName?: TaskKey) { let isIncorrect = false; cadences.forEach((cad) => { - summary.push(`\n${cad}`); + summary.push(`\n${chalk.bold(cad)}`); const cadenceTemplates = Object.entries(allTemplates).filter(([key]) => templatesByCadence[cad].includes(key as TemplateKey) ); @@ -110,6 +110,7 @@ async function checkParallelism(cadence?: Cadence, scriptName?: TaskKey) { scripts.forEach((script) => { const templateKeysPerScript = potentialTemplateKeys.filter((t) => { const currentTemplate = allTemplates[t] as Template; + return ( currentTemplate.inDevelopment !== true && !currentTemplate.skipTasks?.includes(script as SkippableTask) @@ -153,6 +154,18 @@ async function checkParallelism(cadence?: Cadence, scriptName?: TaskKey) { summary.unshift('✅ The parallelism count is correct for all jobs in .circleci/config.yml:'); console.log(summary.concat('\n').join('\n')); } + + const inDevelopmentTemplates = Object.entries(allTemplates) + .filter(([_, t]) => t.inDevelopment) + .map(([k]) => k); + + if (inDevelopmentTemplates.length > 0) { + console.log( + `👇 Some templates were skipped as they are flagged to be in development. Please review if they should still contain this flag:\n${inDevelopmentTemplates + .map((k) => `- ${k}`) + .join('\n')}` + ); + } } type RunOptions = { cadence?: Cadence; task?: TaskKey; check: boolean }; diff --git a/scripts/prepare/addon-bundle.ts b/scripts/prepare/addon-bundle.ts index 757402c4600d..b274f00e3c2e 100755 --- a/scripts/prepare/addon-bundle.ts +++ b/scripts/prepare/addon-bundle.ts @@ -116,7 +116,7 @@ const run = async ({ cwd, flags }: { cwd: string; flags: string[] }) => { ...(optimized ? dtsConfig : {}), entry: exportEntries, format: ['cjs'], - target: 'node16', + target: 'node18', platform: 'node', external: commonExternals, esbuildOptions: (options) => { @@ -184,7 +184,7 @@ const run = async ({ cwd, flags }: { cwd: string; flags: string[] }) => { ...commonOptions, entry: nodeEntries.map((e: string) => slash(join(cwd, e))), format: ['cjs'], - target: 'node16', + target: 'node18', platform: 'node', external: commonExternals, esbuildOptions: (c) => { diff --git a/scripts/prepare/bundle.ts b/scripts/prepare/bundle.ts index efb68303706a..879e963f44c7 100755 --- a/scripts/prepare/bundle.ts +++ b/scripts/prepare/bundle.ts @@ -126,7 +126,7 @@ const run = async ({ cwd, flags }: { cwd: string; flags: string[] }) => { outDir, sourcemap: false, format: ['cjs'], - target: 'node16', + target: 'node18', ...(dtsBuild === 'cjs' ? dtsConfig : {}), platform: 'node', clean: false, diff --git a/scripts/prepare/esm-bundle.ts b/scripts/prepare/esm-bundle.ts index 104585b7e4c2..8d41e51012c6 100755 --- a/scripts/prepare/esm-bundle.ts +++ b/scripts/prepare/esm-bundle.ts @@ -120,7 +120,7 @@ const run = async ({ cwd, flags }: { cwd: string; flags: string[] }) => { outExtension: () => ({ js: '.js', }), - target: 'node16', + target: 'node18', clean: false, ...(dtsBuild ? dtsConfig : {}), platform: 'node', diff --git a/scripts/prepare/facade.ts b/scripts/prepare/facade.ts index 2a1a62d73b52..be1c0ebfa07c 100755 --- a/scripts/prepare/facade.ts +++ b/scripts/prepare/facade.ts @@ -53,7 +53,7 @@ const run = async ({ cwd, flags }: { cwd: string; flags: string[] }) => { entry: entries.map((e: string) => slash(join(cwd, e))), outDir: join(process.cwd(), 'dist'), format: ['cjs'], - target: 'node16', + target: 'node18', platform: 'node', external: [name, ...Object.keys(dependencies || {}), ...Object.keys(peerDependencies || {})], diff --git a/scripts/tasks/sandbox-parts.ts b/scripts/tasks/sandbox-parts.ts index d35edced9abc..cfd874a00afe 100644 --- a/scripts/tasks/sandbox-parts.ts +++ b/scripts/tasks/sandbox-parts.ts @@ -611,7 +611,7 @@ async function prepareAngularSandbox(cwd: string, templateName: string) { // Set tsConfig compilerOptions - const tsConfigPath = join(cwd, 'tsconfig.json'); + const tsConfigPath = join(cwd, '.storybook', 'tsconfig.json'); const tsConfigContent = readFileSync(tsConfigPath, { encoding: 'utf-8' }); // This does not preserve comments, but that shouldn't be an issue for sandboxes const tsConfigJson = JSON5.parse(tsConfigContent); @@ -620,6 +620,14 @@ async function prepareAngularSandbox(cwd: string, templateName: string) { tsConfigJson.compilerOptions.noPropertyAccessFromIndexSignature = false; tsConfigJson.compilerOptions.jsx = 'react'; tsConfigJson.compilerOptions.skipLibCheck = true; + tsConfigJson.compilerOptions.noImplicitAny = false; + tsConfigJson.compilerOptions.strict = false; + tsConfigJson.include = [ + ...tsConfigJson.include, + '../template-stories/**/*.stories.ts', + // This is necessary since template stories depend on globalThis.components, which Typescript can't look up automatically + '../src/stories/**/*', + ]; if (templateName === 'Angular CLI (Version 15)') { tsConfigJson.compilerOptions.paths = { diff --git a/scripts/yarn.lock b/scripts/yarn.lock index d08afd195ba0..5c1ca8fd7235 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -33,9 +33,9 @@ __metadata: linkType: hard "@adobe/css-tools@npm:^4.0.1": - version: 4.3.1 - resolution: "@adobe/css-tools@npm:4.3.1" - checksum: 05672719b544cc0c21ae3ed0eb6349bf458e9d09457578eeeb07cf0f696469ac6417e9c9be1b129e5d6a18098a061c1db55b2275591760ef30a79822436fcbfa + version: 4.3.2 + resolution: "@adobe/css-tools@npm:4.3.2" + checksum: 296a03dd29f227c60500d2da8c7f64991fecf1d8b456ce2b4adb8cec7363d9c08b5b03f1463673fc8cbfe54b538745588e7a13c736d2dd14a80c01a20f127f39 languageName: node linkType: hard @@ -49,55 +49,55 @@ __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.22.13, @babel/code-frame@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/code-frame@npm:7.23.4" +"@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.22.13, @babel/code-frame@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/code-frame@npm:7.23.5" dependencies: "@babel/highlight": "npm:^7.23.4" chalk: "npm:^2.4.2" - checksum: 2ef6f5e10004c4e8b755961b68570db0ea556ccb17a37c13a7f1fed1f4e273aed6c1ae1fcb86abb991620d8be083e1472a7ea5429f05bc342de54c027b07ea83 + checksum: a10e843595ddd9f97faa99917414813c06214f4d9205294013e20c70fbdf4f943760da37dec1d998bf3e6fc20fa2918a47c0e987a7e458663feb7698063ad7c6 languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9, @babel/compat-data@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/compat-data@npm:7.23.3" - checksum: c6af331753c34ee8a5678bc94404320826cb56b1dda3efc1311ec8fb0774e78225132f3c1acc988440ace667f14a838e297a822692b95758aa63da406e1f97a1 +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.3, @babel/compat-data@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/compat-data@npm:7.23.5" + checksum: 081278ed46131a890ad566a59c61600a5f9557bd8ee5e535890c8548192532ea92590742fd74bd9db83d74c669ef8a04a7e1c85cdea27f960233e3b83c3a957c languageName: node linkType: hard "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.2": - version: 7.23.3 - resolution: "@babel/core@npm:7.23.3" + version: 7.23.6 + resolution: "@babel/core@npm:7.23.6" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.22.13" - "@babel/generator": "npm:^7.23.3" - "@babel/helper-compilation-targets": "npm:^7.22.15" + "@babel/code-frame": "npm:^7.23.5" + "@babel/generator": "npm:^7.23.6" + "@babel/helper-compilation-targets": "npm:^7.23.6" "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helpers": "npm:^7.23.2" - "@babel/parser": "npm:^7.23.3" + "@babel/helpers": "npm:^7.23.6" + "@babel/parser": "npm:^7.23.6" "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.3" - "@babel/types": "npm:^7.23.3" + "@babel/traverse": "npm:^7.23.6" + "@babel/types": "npm:^7.23.6" 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: 08d43b749e24052d12713a7fb1f0c0d1275d4fb056d00846faeb8da79ecf6d0ba91a11b6afec407b8b0f9388d00e2c2f485f282bef0ade4d6d0a17de191a4287 + checksum: a02bae7d916029b70706dc301535e1b31e5d216f55d4ee6f64a15825c6b69ee2c14c52a213d1497ec414e925ed4e9d897d41fb0d75df9fea28ed2c0008790e31 languageName: node linkType: hard -"@babel/generator@npm:^7.23.3, @babel/generator@npm:^7.23.4, @babel/generator@npm:^7.7.2": - version: 7.23.4 - resolution: "@babel/generator@npm:7.23.4" +"@babel/generator@npm:^7.23.6, @babel/generator@npm:^7.7.2": + version: 7.23.6 + resolution: "@babel/generator@npm:7.23.6" dependencies: - "@babel/types": "npm:^7.23.4" + "@babel/types": "npm:^7.23.6" "@jridgewell/gen-mapping": "npm:^0.3.2" "@jridgewell/trace-mapping": "npm:^0.3.17" jsesc: "npm:^2.5.1" - checksum: 79b87ef49c4af1b4356b2fcab80ed92dfcad7927c3d6d89c4f749fd947768de3ec129467fb8eee0fe53cf8fc38b4d34d44487f714a9c23bee981c9cba3a670e4 + checksum: 53540e905cd10db05d9aee0a5304e36927f455ce66f95d1253bb8a179f286b88fa7062ea0db354c566fe27f8bb96567566084ffd259f8feaae1de5eccc8afbda languageName: node linkType: hard @@ -119,35 +119,35 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6": - version: 7.22.15 - resolution: "@babel/helper-compilation-targets@npm:7.22.15" +"@babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helper-compilation-targets@npm:7.23.6" dependencies: - "@babel/compat-data": "npm:^7.22.9" - "@babel/helper-validator-option": "npm:^7.22.15" - browserslist: "npm:^4.21.9" + "@babel/compat-data": "npm:^7.23.5" + "@babel/helper-validator-option": "npm:^7.23.5" + browserslist: "npm:^4.22.2" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 45b9286861296e890f674a3abb199efea14a962a27d9b8adeb44970a9fd5c54e73a9e342e8414d2851cf4f98d5994537352fbce7b05ade32e9849bbd327f9ff1 + checksum: ba38506d11185f48b79abf439462ece271d3eead1673dd8814519c8c903c708523428806f05f2ec5efd0c56e4e278698fac967e5a4b5ee842c32415da54bc6fa languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-create-class-features-plugin@npm:7.22.15" +"@babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helper-create-class-features-plugin@npm:7.23.6" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-environment-visitor": "npm:^7.22.5" - "@babel/helper-function-name": "npm:^7.22.5" - "@babel/helper-member-expression-to-functions": "npm:^7.22.15" + "@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.22.9" + "@babel/helper-replace-supers": "npm:^7.22.20" "@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: 2ae5759fe8845fda99b34f2ba6cd0794fc860213d14c93a87aa9180960252bce621157a79c373b7fbb423b25a55fb0e20eae0d5f8e4ad5ef22dc70e7c2af3805 + checksum: 4b923a63b757bf030839263b9609d4fc1f9858a701c173a6a15d0fc135a71847c842faddfd8af8eb324d2379725ba0d9a3d004d48ea7aac2c973cea36627707e languageName: node linkType: hard @@ -164,9 +164,9 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.4.3": - version: 0.4.3 - resolution: "@babel/helper-define-polyfill-provider@npm:0.4.3" +"@babel/helper-define-polyfill-provider@npm:^0.4.4": + version: 0.4.4 + resolution: "@babel/helper-define-polyfill-provider@npm:0.4.4" dependencies: "@babel/helper-compilation-targets": "npm:^7.22.6" "@babel/helper-plugin-utils": "npm:^7.22.5" @@ -175,11 +175,11 @@ __metadata: resolve: "npm:^1.14.2" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 0007035157e0d32ee9cb4ca319b89d6f3705523383efe52a59eb3d4dfa2ed08c5147e49c10a6e6d69c15221d89c76c8e5875475d6710fb44a5c37b8e69388e40 + checksum: 60126f5f719b9e2114df62e3bf3ac0797b71d8dc733db60192eb169b004fde72ee309fa5848c5fdfe98b8e8863c46f55e16da5aa8a4e420b4d2670cd0c5dd708 languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.22.20, @babel/helper-environment-visitor@npm:^7.22.5": +"@babel/helper-environment-visitor@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-environment-visitor@npm:7.22.20" checksum: e762c2d8f5d423af89bd7ae9abe35bd4836d2eb401af868a63bbb63220c513c783e25ef001019418560b3fdc6d9a6fb67e6c0b650bcdeb3a2ac44b5c3d2bdd94 @@ -205,7 +205,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.22.15": +"@babel/helper-member-expression-to-functions@npm:^7.22.15, @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: @@ -267,7 +267,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.22.20, @babel/helper-replace-supers@npm:^7.22.9": +"@babel/helper-replace-supers@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-replace-supers@npm:7.22.20" dependencies: @@ -321,10 +321,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-validator-option@npm:7.22.15" - checksum: e9661bf80ba18e2dd978217b350fb07298e57ac417f4f1ab9fa011505e20e4857f2c3b4b538473516a9dc03af5ce3a831e5ed973311c28326f4c330b6be981c2 +"@babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helper-validator-option@npm:7.23.5" + checksum: af45d5c0defb292ba6fd38979e8f13d7da63f9623d8ab9ededc394f67eb45857d2601278d151ae9affb6e03d5d608485806cd45af08b4468a0515cf506510e94 languageName: node linkType: hard @@ -339,14 +339,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.23.2": - version: 7.23.4 - resolution: "@babel/helpers@npm:7.23.4" +"@babel/helpers@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helpers@npm:7.23.6" dependencies: "@babel/template": "npm:^7.22.15" - "@babel/traverse": "npm:^7.23.4" - "@babel/types": "npm:^7.23.4" - checksum: 6bb552b3de530f5eaae99f5410826b5877bae38ccd95cb5809c9a0cef99bcdb9f5db373309c1cf873f5d68927993515323985bac0ff1b811f2437f2e3ae994b8 + "@babel/traverse": "npm:^7.23.6" + "@babel/types": "npm:^7.23.6" + checksum: df1cf6607676ad36f52f652ec03536f2732d70aef5e76dba5c964e34d49f3c2d3dcf9fb3740db359f53071d74b64606a833d5ba156f79f437f71bfe06e2e7e19 languageName: node linkType: hard @@ -361,12 +361,12 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.3, @babel/parser@npm:^7.23.4, @babel/parser@npm:^7.7.0": - version: 7.23.4 - resolution: "@babel/parser@npm:7.23.4" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.7.0": + version: 7.23.6 + resolution: "@babel/parser@npm:7.23.6" bin: parser: ./bin/babel-parser.js - checksum: 9115cd9c5855a6c7a8dd246938b1316dc1014ad36e01240c1e94ada63218ca39aa63d953d1bff8074a2737933448bc50736eb3da52ffc5c11a256c66d0accc2b + checksum: 6f76cd5ccae1fa9bcab3525b0865c6222e9c1d22f87abc69f28c5c7b2c8816a13361f5bd06bddbd5faf903f7320a8feba02545c981468acec45d12a03db7755e languageName: node linkType: hard @@ -407,17 +407,18 @@ __metadata: linkType: hard "@babel/plugin-proposal-decorators@npm:^7.23.2": - version: 7.23.3 - resolution: "@babel/plugin-proposal-decorators@npm:7.23.3" + version: 7.23.6 + resolution: "@babel/plugin-proposal-decorators@npm:7.23.6" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.22.15" + "@babel/helper-create-class-features-plugin": "npm:^7.23.6" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/helper-replace-supers": "npm:^7.22.20" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" "@babel/helper-split-export-declaration": "npm:^7.22.6" "@babel/plugin-syntax-decorators": "npm:^7.23.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b32d0e197d7abbb84f78ab361f7cb6ce8b5f90e5a04bf3afb8d43b51653c3f47b0e9ba8d02a643de7390c408d3842e4017446b8cc8e8319695c92568646ba7ef + checksum: 3ab6126ca4d463e3070ebbff734a00750776e475c69cabd35f25bbb6e5b7b355fa63f863c73e18f2ba9104f8acc728bdd4dbc1bacb88160714e0632287ccb5f4 languageName: node linkType: hard @@ -684,7 +685,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.23.3": +"@babel/plugin-transform-async-generator-functions@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-async-generator-functions@npm:7.23.4" dependencies: @@ -722,7 +723,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.23.3": +"@babel/plugin-transform-block-scoping@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" dependencies: @@ -745,7 +746,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.23.3": +"@babel/plugin-transform-class-static-block@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-class-static-block@npm:7.23.4" dependencies: @@ -758,9 +759,9 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-classes@npm:7.23.3" +"@babel/plugin-transform-classes@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/plugin-transform-classes@npm:7.23.5" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" "@babel/helper-compilation-targets": "npm:^7.22.15" @@ -773,7 +774,7 @@ __metadata: globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 88bfd332db0ba5cbfb8557a2ba5a7185151aebc9cfe3035b014aa6d795556acbe672bb8c78da3c9fd1d23f55a333d14b5daa127ef037f5ced5198b6d79a146d6 + checksum: 07988f52b4893151887d1ea6ff79e5fe834078c5731bd09babd5659edbbae21ea4e2de326a02443a63fd776b4c945da6177f07875b56fe66e0b7899e830a9e92 languageName: node linkType: hard @@ -823,7 +824,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.23.3": +"@babel/plugin-transform-dynamic-import@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-dynamic-import@npm:7.23.4" dependencies: @@ -847,7 +848,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.23.3": +"@babel/plugin-transform-export-namespace-from@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-export-namespace-from@npm:7.23.4" dependencies: @@ -859,14 +860,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/plugin-transform-for-of@npm:7.23.3" +"@babel/plugin-transform-for-of@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/plugin-transform-for-of@npm:7.23.6" dependencies: "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8a36202cfee312ba80e509c7c2131e6773524e572b4dc64a8ee95bd912634fdeb5ea91c6c7747ee30e03562d0f0d333f88ed7dbb929b36b60b8d74189189e12f + checksum: 46681b6ab10f3ca2d961f50d4096b62ab5d551e1adad84e64be1ee23e72eb2f26a1e30e617e853c74f1349fffe4af68d33921a128543b6f24b6d46c09a3e2aec languageName: node linkType: hard @@ -883,7 +885,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.23.3": +"@babel/plugin-transform-json-strings@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-json-strings@npm:7.23.4" dependencies: @@ -906,7 +908,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.3": +"@babel/plugin-transform-logical-assignment-operators@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.23.4" dependencies: @@ -1003,7 +1005,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.3": +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.23.4" dependencies: @@ -1015,7 +1017,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.23.3": +"@babel/plugin-transform-numeric-separator@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-numeric-separator@npm:7.23.4" dependencies: @@ -1027,7 +1029,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.23.3": +"@babel/plugin-transform-object-rest-spread@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.23.4" dependencies: @@ -1054,7 +1056,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.23.3": +"@babel/plugin-transform-optional-catch-binding@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.23.4" dependencies: @@ -1066,7 +1068,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.23.3": +"@babel/plugin-transform-optional-chaining@npm:^7.23.3, @babel/plugin-transform-optional-chaining@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.4" dependencies: @@ -1102,7 +1104,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.23.3": +"@babel/plugin-transform-private-property-in-object@npm:^7.23.4": version: 7.23.4 resolution: "@babel/plugin-transform-private-property-in-object@npm:7.23.4" dependencies: @@ -1256,16 +1258,16 @@ __metadata: linkType: hard "@babel/plugin-transform-typescript@npm:^7.23.3": - version: 7.23.4 - resolution: "@babel/plugin-transform-typescript@npm:7.23.4" + version: 7.23.6 + resolution: "@babel/plugin-transform-typescript@npm:7.23.6" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.22.5" - "@babel/helper-create-class-features-plugin": "npm:^7.22.15" + "@babel/helper-create-class-features-plugin": "npm:^7.23.6" "@babel/helper-plugin-utils": "npm:^7.22.5" "@babel/plugin-syntax-typescript": "npm:^7.23.3" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 657294f8e0d59fc2b765a230cd1635a575c2dee33aba45e8fc0fbe6ef86ffae007f8c9ca41665ac9629f49a922caf844d14b9a7990dddd2f64aee969d6fb14a4 + checksum: e08f7a981fe157e32031070b92cd77030018b002d063e4be3711ffb7ec04539478b240d8967a4748abb56eccc0ba376f094f30711ef6a028b2a89d15d6ddc01f languageName: node linkType: hard @@ -1317,13 +1319,13 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.23.2": - version: 7.23.3 - resolution: "@babel/preset-env@npm:7.23.3" + version: 7.23.6 + resolution: "@babel/preset-env@npm:7.23.6" dependencies: - "@babel/compat-data": "npm:^7.23.3" - "@babel/helper-compilation-targets": "npm:^7.22.15" + "@babel/compat-data": "npm:^7.23.5" + "@babel/helper-compilation-targets": "npm:^7.23.6" "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/helper-validator-option": "npm:^7.22.15" + "@babel/helper-validator-option": "npm:^7.23.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.23.3" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.23.3" "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.23.3" @@ -1347,25 +1349,25 @@ __metadata: "@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.23.3" - "@babel/plugin-transform-async-generator-functions": "npm:^7.23.3" + "@babel/plugin-transform-async-generator-functions": "npm:^7.23.4" "@babel/plugin-transform-async-to-generator": "npm:^7.23.3" "@babel/plugin-transform-block-scoped-functions": "npm:^7.23.3" - "@babel/plugin-transform-block-scoping": "npm:^7.23.3" + "@babel/plugin-transform-block-scoping": "npm:^7.23.4" "@babel/plugin-transform-class-properties": "npm:^7.23.3" - "@babel/plugin-transform-class-static-block": "npm:^7.23.3" - "@babel/plugin-transform-classes": "npm:^7.23.3" + "@babel/plugin-transform-class-static-block": "npm:^7.23.4" + "@babel/plugin-transform-classes": "npm:^7.23.5" "@babel/plugin-transform-computed-properties": "npm:^7.23.3" "@babel/plugin-transform-destructuring": "npm:^7.23.3" "@babel/plugin-transform-dotall-regex": "npm:^7.23.3" "@babel/plugin-transform-duplicate-keys": "npm:^7.23.3" - "@babel/plugin-transform-dynamic-import": "npm:^7.23.3" + "@babel/plugin-transform-dynamic-import": "npm:^7.23.4" "@babel/plugin-transform-exponentiation-operator": "npm:^7.23.3" - "@babel/plugin-transform-export-namespace-from": "npm:^7.23.3" - "@babel/plugin-transform-for-of": "npm:^7.23.3" + "@babel/plugin-transform-export-namespace-from": "npm:^7.23.4" + "@babel/plugin-transform-for-of": "npm:^7.23.6" "@babel/plugin-transform-function-name": "npm:^7.23.3" - "@babel/plugin-transform-json-strings": "npm:^7.23.3" + "@babel/plugin-transform-json-strings": "npm:^7.23.4" "@babel/plugin-transform-literals": "npm:^7.23.3" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.23.3" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.23.4" "@babel/plugin-transform-member-expression-literals": "npm:^7.23.3" "@babel/plugin-transform-modules-amd": "npm:^7.23.3" "@babel/plugin-transform-modules-commonjs": "npm:^7.23.3" @@ -1373,15 +1375,15 @@ __metadata: "@babel/plugin-transform-modules-umd": "npm:^7.23.3" "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.22.5" "@babel/plugin-transform-new-target": "npm:^7.23.3" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.23.3" - "@babel/plugin-transform-numeric-separator": "npm:^7.23.3" - "@babel/plugin-transform-object-rest-spread": "npm:^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.23.4" + "@babel/plugin-transform-numeric-separator": "npm:^7.23.4" + "@babel/plugin-transform-object-rest-spread": "npm:^7.23.4" "@babel/plugin-transform-object-super": "npm:^7.23.3" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.23.3" - "@babel/plugin-transform-optional-chaining": "npm:^7.23.3" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.23.4" + "@babel/plugin-transform-optional-chaining": "npm:^7.23.4" "@babel/plugin-transform-parameters": "npm:^7.23.3" "@babel/plugin-transform-private-methods": "npm:^7.23.3" - "@babel/plugin-transform-private-property-in-object": "npm:^7.23.3" + "@babel/plugin-transform-private-property-in-object": "npm:^7.23.4" "@babel/plugin-transform-property-literals": "npm:^7.23.3" "@babel/plugin-transform-regenerator": "npm:^7.23.3" "@babel/plugin-transform-reserved-words": "npm:^7.23.3" @@ -1402,7 +1404,7 @@ __metadata: semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 36b02a86817ab5474bb74a8d62a110723b0b05904a52ddc5627cf89457525b8d5ac0739b8e435a6ae12ef8b90cd5fc191169898c3dc2ac9d2c84026b02f2580a + checksum: 5b24d179af52f082d04b9b98cc4777e37bf31a97cef5a91d8917e996dbd75f2f743c88c40f80744cb8529355bb674619d150c0260c32d834aa4067e21d0c8962 languageName: node linkType: hard @@ -1458,11 +1460,11 @@ __metadata: linkType: hard "@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": - version: 7.23.4 - resolution: "@babel/runtime@npm:7.23.4" + version: 7.23.6 + resolution: "@babel/runtime@npm:7.23.6" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: db2bf183cd0119599b903ca51ca0aeea8e0ab478a16be1aae10dd90473ed614159d3e5adfdd8f8f3d840402428ce0d90b5c01aae95da9e45a2dd83e02d85ca27 + checksum: d886954e985ef8e421222f7a2848884d96a752e0020d3078b920dd104e672fdf23bcc6f51a44313a048796319f1ac9d09c2c88ec8cbb4e1f09174bcd3335b9ff languageName: node linkType: hard @@ -1477,32 +1479,32 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.23.3, @babel/traverse@npm:^7.23.4, @babel/traverse@npm:^7.7.0": - version: 7.23.4 - resolution: "@babel/traverse@npm:7.23.4" +"@babel/traverse@npm:^7.23.6, @babel/traverse@npm:^7.7.0": + version: 7.23.6 + resolution: "@babel/traverse@npm:7.23.6" dependencies: - "@babel/code-frame": "npm:^7.23.4" - "@babel/generator": "npm:^7.23.4" + "@babel/code-frame": "npm:^7.23.5" + "@babel/generator": "npm:^7.23.6" "@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.4" - "@babel/types": "npm:^7.23.4" - debug: "npm:^4.1.0" + "@babel/parser": "npm:^7.23.6" + "@babel/types": "npm:^7.23.6" + debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: a423d2b90934efe4ed423d67d91d6aa33ad035d6a175420fa9715376720584b4e7a7002be4bf55b085b7e675b7aba8c615e01560d6d9c47341427e1fe8039c68 + checksum: 5b4ebb94a00a7e1daf111e4b0b45a7998d5b7598637a14e75e855e88cc1b702789e09a958726b5d599a003be1e9032dbdfde4b88ea6061332228738950d5582d languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.3, @babel/types@npm:^7.23.4, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0, @babel/types@npm:^7.8.3": - version: 7.23.4 - resolution: "@babel/types@npm:7.23.4" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.23.6, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.7.0, @babel/types@npm:^7.8.3": + version: 7.23.6 + resolution: "@babel/types@npm:7.23.6" 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: 231954418e0d052a8e69c9d84dde31baffd91d38d99624d18f160e14aa32b094b9e3e91c9c065ea88ea80c6e1589b17bb8b843b950c20c112f32c17482f7cf1f + checksum: 42cefce8a68bd09bb5828b4764aa5586c53c60128ac2ac012e23858e1c179347a4aac9c66fc577994fbf57595227611c5ec8270bf0cfc94ff033bbfac0550b70 languageName: node linkType: hard @@ -1513,6 +1515,32 @@ __metadata: 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: 8eb92a665e6549e2533f5169431addcaad0307f51a8c7f3b6b169eb79b4d673373784a527590a47b0a2905ad5f601b24ab2d1b31d184243235aba470ffc9c1f7 + languageName: node + linkType: hard + "@emotion/css-prettifier@npm:^1.1.3": version: 1.1.3 resolution: "@emotion/css-prettifier@npm:1.1.3" @@ -1723,9 +1751,9 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.3": - version: 2.1.3 - resolution: "@eslint/eslintrc@npm:2.1.3" +"@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" @@ -1736,14 +1764,14 @@ __metadata: js-yaml: "npm:^4.1.0" minimatch: "npm:^3.1.2" strip-json-comments: "npm:^3.1.1" - checksum: f4103f4346126292eb15581c5a1d12bef03410fd3719dedbdb92e1f7031d46a5a2d60de8566790445d5d4b70b75ba050876799a11f5fff8265a91ee3fa77dab0 + checksum: 32f67052b81768ae876c84569ffd562491ec5a5091b0c1e1ca1e0f3c24fb42f804952fdd0a137873bc64303ba368a71ba079a6f691cee25beee9722d94cc8573 languageName: node linkType: hard -"@eslint/js@npm:8.54.0": - version: 8.54.0 - resolution: "@eslint/js@npm:8.54.0" - checksum: d61fb4a0be6af2d8cb290121c329697664a75d6255a29926d5454fb02aeb02b87112f67fdf218d10abac42f90c570ac366126751baefc5405d0e017ed0c946c5 +"@eslint/js@npm:8.55.0": + version: 8.55.0 + resolution: "@eslint/js@npm:8.55.0" + checksum: 88ab9fc57a651becd2b32ec40a3958db27fae133b1ae77bebd733aa5bbd00a92f325bb02f20ad680d31c731fa49b22f060a4777dd52eb3e27da013d940bd978d languageName: node linkType: hard @@ -2609,7 +2637,7 @@ __metadata: languageName: node linkType: hard -"@octokit/openapi-types@npm:^19.0.2": +"@octokit/openapi-types@npm:^19.1.0": version: 19.1.0 resolution: "@octokit/openapi-types@npm:19.1.0" checksum: ae8081f52b797b91a12d4f6cddc475699c9d34b06645b337adc77d30b583d8fe8506597a45c42f8f1a96bfb2a9d092cee257d8a65d718bfeed23a0d153448eea @@ -2756,11 +2784,11 @@ __metadata: linkType: hard "@octokit/types@npm:^12.0.0": - version: 12.3.0 - resolution: "@octokit/types@npm:12.3.0" + version: 12.4.0 + resolution: "@octokit/types@npm:12.4.0" dependencies: - "@octokit/openapi-types": "npm:^19.0.2" - checksum: 083f33d8df492ef4029b94b1b5ac5ac422bc5787fe6c086d4738007f207e2b8fa523a1397ecc902d808ba235ec7bf7e38f4659cae177d40002e43eadf3b6f3d8 + "@octokit/openapi-types": "npm:^19.1.0" + checksum: b52b3fd8af307a1868846991f8376548a790814b20639dee1110271a768c0489081970df893ca2230f6285066003230d22f5877eeac90418971a475c79808241 languageName: node linkType: hard @@ -3127,82 +3155,82 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-darwin-arm64@npm:1.3.99" +"@swc/core-darwin-arm64@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-darwin-arm64@npm:1.3.100" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-darwin-x64@npm:1.3.99" +"@swc/core-darwin-x64@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-darwin-x64@npm:1.3.100" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.99" +"@swc/core-linux-arm64-gnu@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.100" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.99" +"@swc/core-linux-arm64-musl@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.100" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.99" +"@swc/core-linux-x64-gnu@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.100" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-linux-x64-musl@npm:1.3.99" +"@swc/core-linux-x64-musl@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-linux-x64-musl@npm:1.3.100" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.99" +"@swc/core-win32-arm64-msvc@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.100" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.99" +"@swc/core-win32-ia32-msvc@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.100" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.99": - version: 1.3.99 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.99" +"@swc/core-win32-x64-msvc@npm:1.3.100": + version: 1.3.100 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.100" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@swc/core@npm:^1.3.95": - version: 1.3.99 - resolution: "@swc/core@npm:1.3.99" - dependencies: - "@swc/core-darwin-arm64": "npm:1.3.99" - "@swc/core-darwin-x64": "npm:1.3.99" - "@swc/core-linux-arm64-gnu": "npm:1.3.99" - "@swc/core-linux-arm64-musl": "npm:1.3.99" - "@swc/core-linux-x64-gnu": "npm:1.3.99" - "@swc/core-linux-x64-musl": "npm:1.3.99" - "@swc/core-win32-arm64-msvc": "npm:1.3.99" - "@swc/core-win32-ia32-msvc": "npm:1.3.99" - "@swc/core-win32-x64-msvc": "npm:1.3.99" + version: 1.3.100 + resolution: "@swc/core@npm:1.3.100" + dependencies: + "@swc/core-darwin-arm64": "npm:1.3.100" + "@swc/core-darwin-x64": "npm:1.3.100" + "@swc/core-linux-arm64-gnu": "npm:1.3.100" + "@swc/core-linux-arm64-musl": "npm:1.3.100" + "@swc/core-linux-x64-gnu": "npm:1.3.100" + "@swc/core-linux-x64-musl": "npm:1.3.100" + "@swc/core-win32-arm64-msvc": "npm:1.3.100" + "@swc/core-win32-ia32-msvc": "npm:1.3.100" + "@swc/core-win32-x64-msvc": "npm:1.3.100" "@swc/counter": "npm:^0.1.1" "@swc/types": "npm:^0.1.5" peerDependencies: @@ -3229,7 +3257,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: ff009b70e74f4f66deba7d8967196d32f374e94c8f4e44b077ff082f5adafd1268caed739040153bb79ca27114d0cca8795bce4af6fa986d645a3ff9acf24e4b + checksum: d6e873a7c627765991b18bd8d1b0ce1f1d9cf08c451fe78dbbf28dda14d4301cec2689f6bd85e604847d4a20226fd79c272796fef4f28feaca81a20c0f62e8e9 languageName: node linkType: hard @@ -3599,12 +3627,12 @@ __metadata: linkType: hard "@types/jest@npm:*, @types/jest@npm:^29.5.5": - version: 29.5.10 - resolution: "@types/jest@npm:29.5.10" + version: 29.5.11 + resolution: "@types/jest@npm:29.5.11" dependencies: expect: "npm:^29.0.0" pretty-format: "npm:^29.0.0" - checksum: b46171d59d12a5f69bbe710f65eaf59a8073337c6b4a67dff8158575caec53f1c61f8a7d645b34d6ac3c4ea398acd30f0c5d1c4a131c0c918798019264a3397d + checksum: 524a3394845214581278bf4d75055927261fbeac7e1a89cd621bd0636da37d265fe0a85eac58b5778758faad1cbd7c7c361dfc190c78ebde03a91cce33463261 languageName: node linkType: hard @@ -3716,20 +3744,20 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:>= 8": - version: 20.10.0 - resolution: "@types/node@npm:20.10.0" + version: 20.10.4 + resolution: "@types/node@npm:20.10.4" dependencies: undici-types: "npm:~5.26.4" - checksum: f379e57d9d28cb5f3d8eab943de0c54a0ca2f95ee356e1fe2a1a4fa718b740103ae522c50ce107cffd52c3642ef3244cfc55bf5369081dd6c48369c8587b21ae + checksum: 2c8b70cba731eb2ae3ae046daa74903bfcbb0e7b9196da767e5895054f6d252296ae7a04fb1dbbcb53bb004c4c658c05eaea2731bc9e2dd9e08f7e88d672f563 languageName: node linkType: hard "@types/node@npm:^18.0.0": - version: 18.18.13 - resolution: "@types/node@npm:18.18.13" + version: 18.19.3 + resolution: "@types/node@npm:18.19.3" dependencies: undici-types: "npm:~5.26.4" - checksum: 5f1840f26b4c00e6b4945be678644a46e6689ef10d9d7795d587b76059045b99a14ca6075264296e6e91d73e098fe83df9580881278d9a6ce394b368d9c76700 + checksum: 3ed943d06e9dff70a3da793f794f1192cd93b0ababdb9f07425a05680f17cfce649cbc46734265f6fbe52fd9f277496d3a4da26c013f1193a0345f2420ea6cd0 languageName: node linkType: hard @@ -3801,13 +3829,13 @@ __metadata: linkType: hard "@types/react@npm:*, @types/react@npm:^18.0.37": - version: 18.2.39 - resolution: "@types/react@npm:18.2.39" + version: 18.2.43 + resolution: "@types/react@npm:18.2.43" dependencies: "@types/prop-types": "npm:*" "@types/scheduler": "npm:*" csstype: "npm:^3.0.2" - checksum: e91a5419d7615ab4fcaa7cb3ad2bd372093676e86c082748ab36ac394d3ed560070482d092a5488f74d6b1d913369e4dabf6eb287debed4d70cd3eb7dc135542 + checksum: 10477a50fbd3c0cc5b8a2ade679f442717f68fb27c8460b2aa1d3256cd18c48f742bbe5b9ee37a8c4c5f832ffa37b3a23c09fd96dd880a8e3182d8929c05e803 languageName: node linkType: hard @@ -4105,24 +4133,24 @@ __metadata: languageName: node linkType: hard -"@verdaccio/config@npm:7.0.0-next.3": - version: 7.0.0-next.3 - resolution: "@verdaccio/config@npm:7.0.0-next.3" +"@verdaccio/config@npm:7.0.0-next.4": + version: 7.0.0-next.4 + resolution: "@verdaccio/config@npm:7.0.0-next.4" dependencies: - "@verdaccio/core": "npm:7.0.0-next.3" - "@verdaccio/utils": "npm:7.0.0-next.3" + "@verdaccio/core": "npm:7.0.0-next.4" + "@verdaccio/utils": "npm:7.0.0-next.4" debug: "npm:4.3.4" js-yaml: "npm:4.1.0" lodash: "npm:4.17.21" minimatch: "npm:7.4.6" yup: "npm:0.32.11" - checksum: 935e7a504007e34c414e503f047c9d7f5a0cb1023e099385a0848baf53de202066aa72bf6e32488c44387c6869283db231f6a270ab59cd4b37c254ddbc3bf9ad + checksum: b2349c5bbbfff80ff661b5712b4f8e16989dd5a13fa2a8aedc3ce3f0ee5e515eea36d603f353f687002126c1a913a8beba270625df06d58ef693f7d05c4403b5 languageName: node linkType: hard -"@verdaccio/core@npm:7.0.0-next.3": - version: 7.0.0-next.3 - resolution: "@verdaccio/core@npm:7.0.0-next.3" +"@verdaccio/core@npm:7.0.0-next.4": + version: 7.0.0-next.4 + resolution: "@verdaccio/core@npm:7.0.0-next.4" dependencies: ajv: "npm:8.12.0" core-js: "npm:3.30.2" @@ -4130,7 +4158,7 @@ __metadata: http-status-codes: "npm:2.2.0" process-warning: "npm:1.0.0" semver: "npm:7.5.4" - checksum: ebf901912ad035fbf2b2aae304224191dc26f1991f52cd64d454ba39128406ff025518058c42e64a322c580eed3dfcf5f013becb45c6be367b49f7e6f0f109f8 + checksum: b80ffd3d36f3cd24de78a7a7d48556298eda250e49d5809a82dd87c107efa64475f7a1c8afb9d1f90dbff72a37ab336d2ff8780b5d4acdbe20a7735c995c6c96 languageName: node linkType: hard @@ -4168,25 +4196,25 @@ __metadata: languageName: node linkType: hard -"@verdaccio/logger-7@npm:7.0.0-next.3": - version: 7.0.0-next.3 - resolution: "@verdaccio/logger-7@npm:7.0.0-next.3" +"@verdaccio/logger-7@npm:7.0.0-next.4": + version: 7.0.0-next.4 + resolution: "@verdaccio/logger-7@npm:7.0.0-next.4" dependencies: - "@verdaccio/logger-commons": "npm:7.0.0-next.3" + "@verdaccio/logger-commons": "npm:7.0.0-next.4" pino: "npm:7.11.0" - checksum: 3fc8479f907083a4f684818aa11f005ef1de9d3c08096fa5dfc45f3e7a73a5eae2c74ed82b7c9c5d390a29b5489427a7ce645ceb66c0ffcccb6fe10fe15216c9 + checksum: 334cd1e55719997ef448804798d74e5b28563488bb88b6526afe3bb5d3a89b844e78f9eb500512753496cb965f7fbcd2a79ec29e93e5693b2db2291f47a6f489 languageName: node linkType: hard -"@verdaccio/logger-commons@npm:7.0.0-next.3": - version: 7.0.0-next.3 - resolution: "@verdaccio/logger-commons@npm:7.0.0-next.3" +"@verdaccio/logger-commons@npm:7.0.0-next.4": + version: 7.0.0-next.4 + resolution: "@verdaccio/logger-commons@npm:7.0.0-next.4" dependencies: - "@verdaccio/core": "npm:7.0.0-next.3" + "@verdaccio/core": "npm:7.0.0-next.4" "@verdaccio/logger-prettify": "npm:7.0.0-next.1" colorette: "npm:2.0.20" debug: "npm:4.3.4" - checksum: b5f21c77f374ad5cdbd28479e8353f9401809ce24b166adee6f53724607a76d75de92957a6b426ad0b81173ab999c4b31de54e8b9ba1b92b42c1cd480e820d41 + checksum: b11dde0c5cfe5f4f40fb8d20816f3a57fbb0c395b9aee9067a54b508242ebd4da29506332a0d06aa7d0f5f8b8e77aefd3bc63151d3777cbc3122d54d906ff0f0 languageName: node linkType: hard @@ -4203,21 +4231,21 @@ __metadata: languageName: node linkType: hard -"@verdaccio/middleware@npm:7.0.0-next.3": - version: 7.0.0-next.3 - resolution: "@verdaccio/middleware@npm:7.0.0-next.3" +"@verdaccio/middleware@npm:7.0.0-next.4": + version: 7.0.0-next.4 + resolution: "@verdaccio/middleware@npm:7.0.0-next.4" dependencies: - "@verdaccio/config": "npm:7.0.0-next.3" - "@verdaccio/core": "npm:7.0.0-next.3" - "@verdaccio/url": "npm:12.0.0-next.3" - "@verdaccio/utils": "npm:7.0.0-next.3" + "@verdaccio/config": "npm:7.0.0-next.4" + "@verdaccio/core": "npm:7.0.0-next.4" + "@verdaccio/url": "npm:12.0.0-next.4" + "@verdaccio/utils": "npm:7.0.0-next.4" debug: "npm:4.3.4" express: "npm:4.18.2" express-rate-limit: "npm:5.5.1" lodash: "npm:4.17.21" lru-cache: "npm:7.18.3" mime: "npm:2.6.0" - checksum: d4a3f3ff06bff7d8e9fecd5ec3ec0b13d59d450055639dbb82548dd5e13d29d44d7ea4cad864cf275632f267a23ea69776c871aa539e81ff47686073b8b84901 + checksum: 8a9d926df27e07f3def0a03250cbbb4b2dc992b6420c597282c3af4a3bfba0576d6551cf77f0253b052ee2b8dedc7357dba710ecff40a24638f18c95d4fd5df7 languageName: node linkType: hard @@ -4228,14 +4256,14 @@ __metadata: languageName: node linkType: hard -"@verdaccio/signature@npm:7.0.0-next.1": - version: 7.0.0-next.1 - resolution: "@verdaccio/signature@npm:7.0.0-next.1" +"@verdaccio/signature@npm:7.0.0-next.2": + version: 7.0.0-next.2 + resolution: "@verdaccio/signature@npm:7.0.0-next.2" dependencies: debug: "npm:4.3.4" jsonwebtoken: "npm:9.0.2" lodash: "npm:4.17.21" - checksum: 6cf1629e7b69a84244175f4b7a89a98c84e1c8565f3dfbe871d24bf8d643a761e6e22823a3ce223f8f5ae06b0117d7236e5c3ba6cfc273c2fc857b8fe44a3679 + checksum: b4ad509db63bb1fe0054b6e1e3f9107466ca443535834ff86473a64c8c32a6c39b6051cebf9720d1d4055d49c52b29afb786f7e19919b1be17acb8f256585977 languageName: node linkType: hard @@ -4246,16 +4274,16 @@ __metadata: languageName: node linkType: hard -"@verdaccio/tarball@npm:12.0.0-next.3": - version: 12.0.0-next.3 - resolution: "@verdaccio/tarball@npm:12.0.0-next.3" +"@verdaccio/tarball@npm:12.0.0-next.4": + version: 12.0.0-next.4 + resolution: "@verdaccio/tarball@npm:12.0.0-next.4" dependencies: - "@verdaccio/core": "npm:7.0.0-next.3" - "@verdaccio/url": "npm:12.0.0-next.3" - "@verdaccio/utils": "npm:7.0.0-next.3" + "@verdaccio/core": "npm:7.0.0-next.4" + "@verdaccio/url": "npm:12.0.0-next.4" + "@verdaccio/utils": "npm:7.0.0-next.4" debug: "npm:4.3.4" lodash: "npm:4.17.21" - checksum: 4351cd2e6037158a03f6dad0fa874d306571e531981bbe3f43b4101ee19d4fd395291706dae6e8ce6fcea6ef452cf5cfb82b2da40444e214bb00fda52adab39c + checksum: c6b9dc273a2e770f70eb99db2b9a397b50e3fd378abe97be716c3edfec5168af33c41cd037582af37a738854c63800e9dc3a9141cec2b2bda4f700820994148b languageName: node linkType: hard @@ -4266,34 +4294,34 @@ __metadata: languageName: node linkType: hard -"@verdaccio/ui-theme@npm:7.0.0-next.3": - version: 7.0.0-next.3 - resolution: "@verdaccio/ui-theme@npm:7.0.0-next.3" - checksum: c593e72cff099d22fc3f69d0befa279f6c5477e3ad724c365d46a2eea7dc64675cb613791e909378e43fce1927e3cf2b2b567e9ef880d16eb015c422b0b6a81a +"@verdaccio/ui-theme@npm:7.0.0-next.4": + version: 7.0.0-next.4 + resolution: "@verdaccio/ui-theme@npm:7.0.0-next.4" + checksum: 4e15189c4bb92ccdc4facc8d82d1db959523cd4aabc2c2b6e4d070660c8fc8cfcb6a205a45ccc3e12d1ea062b056c95413d14a2325812c6b6065736527efa305 languageName: node linkType: hard -"@verdaccio/url@npm:12.0.0-next.3": - version: 12.0.0-next.3 - resolution: "@verdaccio/url@npm:12.0.0-next.3" +"@verdaccio/url@npm:12.0.0-next.4": + version: 12.0.0-next.4 + resolution: "@verdaccio/url@npm:12.0.0-next.4" dependencies: - "@verdaccio/core": "npm:7.0.0-next.3" + "@verdaccio/core": "npm:7.0.0-next.4" debug: "npm:4.3.4" lodash: "npm:4.17.21" validator: "npm:13.9.0" - checksum: af226f14ab34cf71ec64ea6ec8d3fc1bb1b437819864184f655fb4b1e77d4159c7012aeacd32a26b3b86db201ec263d43e9f04b9464eeedd9f6ca8926298a2f8 + checksum: e0676d8299d2289a7bf4232488cab7f00f8b714cc2f165ae95653973ac843f586423bc4b0cf9f25ab152340961e36222d8130128d3a720c923cc494a83c33b02 languageName: node linkType: hard -"@verdaccio/utils@npm:7.0.0-next.3": - version: 7.0.0-next.3 - resolution: "@verdaccio/utils@npm:7.0.0-next.3" +"@verdaccio/utils@npm:7.0.0-next.4": + version: 7.0.0-next.4 + resolution: "@verdaccio/utils@npm:7.0.0-next.4" dependencies: - "@verdaccio/core": "npm:7.0.0-next.3" + "@verdaccio/core": "npm:7.0.0-next.4" lodash: "npm:4.17.21" minimatch: "npm:7.4.6" semver: "npm:7.5.4" - checksum: 377f635722801515e2f86db91691a0ed86fd618b70b33d638a736a4a1d0a1e242b6e24f03ad4bc0f005a138d519b2dcbdb6c6946d40553130749dcc8788abc11 + checksum: 8709ce9eb8220916e59f25c8f457099f8a70728b227354f6109800df84d1c2d3d4374386408d415093f8adbdabd97a94e7a60fbac95d5cced728064abc06ff9c languageName: node linkType: hard @@ -4415,9 +4443,9 @@ __metadata: linkType: hard "acorn-walk@npm:^8.0.2": - version: 8.3.0 - resolution: "acorn-walk@npm:8.3.0" - checksum: 24346e595f507b6e704a60d35f3c5e1aa9891d4fb6a3fc3d856503ab718cc26cabb5e3e1ff0ff8da6ec03d60a8226ebdb602805a94f970e7f797ea3b8b09437f + version: 8.3.1 + resolution: "acorn-walk@npm:8.3.1" + checksum: a23d2f7c6b6cad617f4c77f14dfeb062a239208d61753e9ba808d916c550add92b39535467d2e6028280761ac4f5a904cc9df21530b84d3f834e3edef74ddde5 languageName: node linkType: hard @@ -4520,7 +4548,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.3, ajv@npm:^6.12.4": +"ajv@npm:^6.12.4": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -4897,6 +4925,13 @@ __metadata: languageName: node linkType: hard +"async@npm:3.2.5, async@npm:^3.2.3": + version: 3.2.5 + resolution: "async@npm:3.2.5" + checksum: 1408287b26c6db67d45cb346e34892cee555b8b59e6c68e6f8c3e495cad5ca13b4f218180e871f3c2ca30df4ab52693b66f2f6ff43644760cab0b2198bda79c1 + languageName: node + linkType: hard + "async@npm:^2.6.4": version: 2.6.4 resolution: "async@npm:2.6.4" @@ -4906,13 +4941,6 @@ __metadata: languageName: node linkType: hard -"async@npm:^3.2.3": - version: 3.2.5 - resolution: "async@npm:3.2.5" - checksum: 1408287b26c6db67d45cb346e34892cee555b8b59e6c68e6f8c3e495cad5ca13b4f218180e871f3c2ca30df4ab52693b66f2f6ff43644760cab0b2198bda79c1 - languageName: node - linkType: hard - "asynciterator.prototype@npm:^1.0.0": version: 1.0.0 resolution: "asynciterator.prototype@npm:1.0.0" @@ -5056,38 +5084,38 @@ __metadata: linkType: hard "babel-plugin-polyfill-corejs2@npm:^0.4.6": - version: 0.4.6 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.6" + version: 0.4.7 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.7" dependencies: "@babel/compat-data": "npm:^7.22.6" - "@babel/helper-define-polyfill-provider": "npm:^0.4.3" + "@babel/helper-define-polyfill-provider": "npm:^0.4.4" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 64a98811f343492aa6970ab253760194e389c0417e5b830522f944009c1f0c78e1251975fd1b9869cd48cc4623111b20a3389cf6732a1d10ba0d19de6fa5114f + checksum: f80f7284ec72c63e7dd751e0bdf25e9978df195a79e0887470603bfdea13ee518d62573cf360bb1bc01b80819e54915dd5edce9cff14c52d0af5f984aa3d36a3 languageName: node linkType: hard "babel-plugin-polyfill-corejs3@npm:^0.8.5": - version: 0.8.6 - resolution: "babel-plugin-polyfill-corejs3@npm:0.8.6" + version: 0.8.7 + resolution: "babel-plugin-polyfill-corejs3@npm:0.8.7" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.4.3" + "@babel/helper-define-polyfill-provider": "npm:^0.4.4" core-js-compat: "npm:^3.33.1" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 97d974c1dfbefdf27866e21a1ac757f6ab1626379b544d6f8ddb05f7bfa02173f8347b6140295b0f770394549f9321775d3048e466a9a02b99b88ad5f0346858 + checksum: 094e40f4ab9f131408202063964d63740609fd4fdb70a5b6332b371761921b540ffbcee7a434c0199b8317dfb2ba4675eef674867215fd3b85e24054607c1501 languageName: node linkType: hard "babel-plugin-polyfill-regenerator@npm:^0.5.3": - version: 0.5.3 - resolution: "babel-plugin-polyfill-regenerator@npm:0.5.3" + version: 0.5.4 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.4" dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.4.3" + "@babel/helper-define-polyfill-provider": "npm:^0.4.4" peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: cc32313b9ebbf1d7bedc33524a861136b9e5d3b6e9be317ac360a1c2a59ae5ed1b465a6c68b2715cdefb089780ddfb0c11f4a148e49827a947beee76e43da598 + checksum: 0b903f5fe2f8c487b4260935dfe60bd9a95bcaee7ae63958f063045093b16d4e8288c232199d411261300aa21f6b106a3cb83c42cc996de013b337f5825a79fe languageName: node linkType: hard @@ -5313,17 +5341,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.21.9, browserslist@npm:^4.22.1": - version: 4.22.1 - resolution: "browserslist@npm:4.22.1" +"browserslist@npm:^4.22.2": + version: 4.22.2 + resolution: "browserslist@npm:4.22.2" dependencies: - caniuse-lite: "npm:^1.0.30001541" - electron-to-chromium: "npm:^1.4.535" - node-releases: "npm:^2.0.13" + caniuse-lite: "npm:^1.0.30001565" + electron-to-chromium: "npm:^1.4.601" + node-releases: "npm:^2.0.14" update-browserslist-db: "npm:^1.0.13" bin: browserslist: cli.js - checksum: 6810f2d63f171d0b7b8d38cf091708e00cb31525501810a507839607839320d66e657293b0aa3d7f051ecbc025cb07390a90c037682c1d05d12604991e41050b + checksum: 2a331aab90503130043ca41dd5d281fa1e89d5e076d07a2d75e76bf4d693bd56e73d5abcd8c4f39119da6328d450578c216cf1cd5c99b82d8a90a2ae6271b465 languageName: node linkType: hard @@ -5540,10 +5568,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001541": - version: 1.0.30001565 - resolution: "caniuse-lite@npm:1.0.30001565" - checksum: b400e0364651a700e39d59449ca6c65b26e2caceecc4b93ae54a01ed1f62d2a7e1333b1dc640d95fbe620ffa5be38fe4dbacd880cd7a1f42fc72bb8de9a2d0c9 +"caniuse-lite@npm:^1.0.30001565": + version: 1.0.30001568 + resolution: "caniuse-lite@npm:1.0.30001568" + checksum: 13f01e5a2481134bd61cf565ce9fecbd8e107902927a0dcf534230a92191a81f1715792170f5f39719c767c3a96aa6df9917a8d5601f15bbd5e4041a8cfecc99 languageName: node linkType: hard @@ -6020,11 +6048,11 @@ __metadata: linkType: hard "core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.33.1": - version: 3.33.3 - resolution: "core-js-compat@npm:3.33.3" + version: 3.34.0 + resolution: "core-js-compat@npm:3.34.0" dependencies: - browserslist: "npm:^4.22.1" - checksum: 779997ac791b7f7d01f21312c7b83fff2babb1f632d21fd6cfd8e9c737442475bcb660fade7e1cd7642b5c9593685bc2188089bf86b31d671e8e05e28ee30e58 + browserslist: "npm:^4.22.2" + checksum: d2a46d977aa331df9e9d7372f309841403d6f158dbcf5bf7e358ea547bd5ccc93f9447e93d66b74eb4b19c647874e794511238c40cee495716a5f8a74a605ac1 languageName: node linkType: hard @@ -6036,9 +6064,9 @@ __metadata: linkType: hard "core-js@npm:^3.8.2": - version: 3.33.3 - resolution: "core-js@npm:3.33.3" - checksum: 08abdc9470c8228b9d09f61e62ab312738681202c4c34e9638889125b304b235f34c4fe22e9d41c20906ac0fcc807dca57c5ff7d6b90021bf64e8fe23461d9ab + version: 3.34.0 + resolution: "core-js@npm:3.34.0" + checksum: 408a77898abe03bf3e5dec2a451c36f4745081cca9022f8bdf9b817d57bb6d3a534d555f47a4b95e1daa5e21dbc79122eac2402e25720d425f5925127e55dcd8 languageName: node linkType: hard @@ -6177,9 +6205,9 @@ __metadata: linkType: hard "csstype@npm:^3.0.2": - version: 3.1.2 - resolution: "csstype@npm:3.1.2" - checksum: 32c038af259897c807ac738d9eab16b3d86747c72b09d5c740978e06f067f9b7b1737e1b75e407c7ab1fe1543dc95f20e202b4786aeb1b8d3bdf5d5ce655e6c6 + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 80c089d6f7e0c5b2bd83cf0539ab41474198579584fa10d86d0cafe0642202343cbc119e076a0b1aece191989477081415d66c9fefbf3c957fc2fc4b7009f248 languageName: node linkType: hard @@ -6191,8 +6219,8 @@ __metadata: linkType: hard "danger@npm:^11.2.6": - version: 11.3.0 - resolution: "danger@npm:11.3.0" + version: 11.3.1 + resolution: "danger@npm:11.3.1" dependencies: "@gitbeaker/core": "npm:^35.8.1" "@gitbeaker/node": "npm:^35.8.1" @@ -6242,7 +6270,7 @@ __metadata: danger-process: distribution/commands/danger-process.js danger-reset-status: distribution/commands/danger-reset-status.js danger-runner: distribution/commands/danger-runner.js - checksum: 568a6c2bdbef663c9d1fca36651939b39bf7a158867bdf955054bdc0f16533658aaf258ab9bc1c1bf517609b6eabe776e3d24a0364903a5a38bf67d8d690b252 + checksum: 0a2a7655817200fb3488645787268842ba6c8fadbf6fa8c3e6d13718564a6f915ef1f70020686b9b8b94a050fb80eaeb8b6abf0f8525162ddd739da5ad51d432 languageName: node linkType: hard @@ -6498,7 +6526,7 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": +"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" dependencies: @@ -6893,10 +6921,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.535": - version: 1.4.595 - resolution: "electron-to-chromium@npm:1.4.595" - checksum: 4383430e18d4c4d1fd8876d286f00ddf107831b7ed6bae76d25cb4418c04940aec55f142f167c389c3e7270430402e234689901efd2431c384a9164a35b1c178 +"electron-to-chromium@npm:^1.4.601": + version: 1.4.610 + resolution: "electron-to-chromium@npm:1.4.610" + checksum: b2f228a62fadb05057885f584f43558738cd547eade5b1ee819491a8420faf3711bdc7ce9bad7b1beb9c7e2ea9f9ffed690b07272cf58fb6e07ddaec1bbee8b8 languageName: node linkType: hard @@ -7017,12 +7045,12 @@ __metadata: languageName: node linkType: hard -"envinfo@npm:7.10.0": - version: 7.10.0 - resolution: "envinfo@npm:7.10.0" +"envinfo@npm:7.11.0": + version: 7.11.0 + resolution: "envinfo@npm:7.11.0" bin: envinfo: dist/cli.js - checksum: ebc7792fbedca72bc829913abe0c2a3384b883903012f97b56085afd4e83d26f7dd0652403fedd99cd3e1c93d4fb0706f5d2c3dc06ac6a1eda348280a06a9dcf + checksum: 4415b9c1ca32cdf92ce126136b9965eeac2efd6ab7e5278c06e8f86d048edad87ef4084710313a6d938ef9bc084ab17e1caee16339d731d230f3e2650f3aaf4d languageName: node linkType: hard @@ -7603,13 +7631,13 @@ __metadata: linkType: hard "eslint@npm:^8.28.0": - version: 8.54.0 - resolution: "eslint@npm:8.54.0" + version: 8.55.0 + resolution: "eslint@npm:8.55.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^2.1.3" - "@eslint/js": "npm:8.54.0" + "@eslint/eslintrc": "npm:^2.1.4" + "@eslint/js": "npm:8.55.0" "@humanwhocodes/config-array": "npm:^0.11.13" "@humanwhocodes/module-importer": "npm:^1.0.1" "@nodelib/fs.walk": "npm:^1.2.8" @@ -7646,7 +7674,7 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: 4f205f832bdbd0218cde374b067791f4f76d7abe8de86b2dc849c273899051126d912ebf71531ee49b8eeaa22cad77febdc8f2876698dc2a76e84a8cb976af22 + checksum: d28c0b60f19bb7d355cb8393e77b018c8f548dba3f820b799c89bb2e0c436ee26084e700c5e57e1e97e7972ec93065277849141b82e7b0c0d02c2dc1e553a2a1 languageName: node linkType: hard @@ -8713,11 +8741,11 @@ __metadata: linkType: hard "globals@npm:^13.19.0": - version: 13.23.0 - resolution: "globals@npm:13.23.0" + version: 13.24.0 + resolution: "globals@npm:13.24.0" dependencies: type-fest: "npm:^0.20.2" - checksum: fc05e184b3be59bffa2580f28551a12a758c3a18df4be91444202982c76f13f52821ad54ffaf7d3f2a4d2498fdf54aeaca8d4540fd9e860a9edb09d34ef4c507 + checksum: d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd languageName: node linkType: hard @@ -8902,23 +8930,6 @@ __metadata: languageName: node linkType: hard -"har-schema@npm:^2.0.0": - version: 2.0.0 - resolution: "har-schema@npm:2.0.0" - checksum: 3856cb76152658e0002b9c2b45b4360bb26b3e832c823caed8fcf39a01096030bf09fa5685c0f7b0f2cb3ecba6e9dce17edaf28b64a423d6201092e6be56e592 - languageName: node - linkType: hard - -"har-validator@npm:~5.1.3": - version: 5.1.5 - resolution: "har-validator@npm:5.1.5" - dependencies: - ajv: "npm:^6.12.3" - har-schema: "npm:^2.0.0" - checksum: f1d606eb1021839e3a905be5ef7cca81c2256a6be0748efb8fefc14312214f9e6c15d7f2eaf37514104071207d84f627b68bb9f6178703da4e06fbd1a0649a5e - languageName: node - linkType: hard - "has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": version: 1.0.2 resolution: "has-bigints@npm:1.0.2" @@ -9148,14 +9159,14 @@ __metadata: languageName: node linkType: hard -"http-signature@npm:~1.2.0": - version: 1.2.0 - resolution: "http-signature@npm:1.2.0" +"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:^1.2.2" - sshpk: "npm:^1.7.0" - checksum: 582f7af7f354429e1fb19b3bbb9d35520843c69bb30a25b88ca3c5c2c10715f20ae7924e20cffbed220b1d3a726ef4fe8ccc48568d5744db87be9a79887d6733 + jsprim: "npm:^2.0.2" + sshpk: "npm:^1.14.1" + checksum: f8d15d8c91a5a80805530e2f401a3f83ed55162058651d86ad00df294b159a54e001b5d00e04983f7542a55865aee02d2d83d68c8499137ff2bc142553d8dfc2 languageName: node linkType: hard @@ -10871,15 +10882,15 @@ __metadata: languageName: node linkType: hard -"jsprim@npm:^1.2.2": - version: 1.4.2 - resolution: "jsprim@npm:1.4.2" +"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: 5e4bca99e90727c2040eb4c2190d0ef1fe51798ed5714e87b841d304526190d960f9772acc7108fa1416b61e1122bcd60e4460c91793dce0835df5852aab55af + checksum: 677be2d41df536c92c6d0114a492ef197084018cfbb1a3e10b1fa1aad889564b2e3a7baa6af7949cc2d73678f42368b0be165a26bd4e4de6883a30dd6a24e98d languageName: node linkType: hard @@ -12432,10 +12443,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.13": - version: 2.0.13 - resolution: "node-releases@npm:2.0.13" - checksum: 2fb44bf70fc949d27f3a48a7fd1a9d1d603ddad4ccd091f26b3fb8b1da976605d919330d7388ccd55ca2ade0dc8b2e12841ba19ef249c8bb29bf82532d401af7 +"node-releases@npm:^2.0.14": + version: 2.0.14 + resolution: "node-releases@npm:2.0.14" + checksum: 199fc93773ae70ec9969bc6d5ac5b2bbd6eb986ed1907d751f411fef3ede0e4bfdb45ceb43711f8078bea237b6036db8b1bf208f6ff2b70c7d615afd157f3ab9 languageName: node linkType: hard @@ -12646,13 +12657,6 @@ __metadata: languageName: node linkType: hard -"oauth-sign@npm:~0.9.0": - version: 0.9.0 - resolution: "oauth-sign@npm:0.9.0" - checksum: fc92a516f6ddbb2699089a2748b04f55c47b6ead55a77cd3a2cbbce5f7af86164cb9425f9ae19acfd066f1ad7d3a96a67b8928c6ea946426f6d6c29e448497c2 - languageName: node - linkType: hard - "object-assign@npm:^4, object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -12685,14 +12689,14 @@ __metadata: linkType: hard "object.assign@npm:^4.1.2, object.assign@npm:^4.1.4": - version: 4.1.4 - resolution: "object.assign@npm:4.1.4" + version: 4.1.5 + resolution: "object.assign@npm:4.1.5" dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.1.4" + 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: 2f286118c023e557757620e647b02e7c88d3d417e0c568fca0820de8ec9cca68928304854d5b03e99763eddad6e78a6716e2930f7e6372e4b9b843f3fd3056f3 + checksum: 60108e1fa2706f22554a4648299b0955236c62b3685c52abf4988d14fffb0e7731e00aa8c6448397e3eb63d087dcc124a9f21e1980f36d0b2667f3c18bacd469 languageName: node linkType: hard @@ -13600,7 +13604,7 @@ __metadata: languageName: node linkType: hard -"psl@npm:^1.1.28, psl@npm:^1.1.33": +"psl@npm:^1.1.33": version: 1.9.0 resolution: "psl@npm:1.9.0" checksum: 6a3f805fdab9442f44de4ba23880c4eba26b20c8e8e0830eff1cb31007f6825dace61d17203c58bfe36946842140c97a1ba7f67bc63ca2d88a7ee052b65d97ab @@ -13631,6 +13635,15 @@ __metadata: 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: 7a8c9d77968aeccb769aedd7e047c0e0109dad0cfa57cab1ad906f4069fd58f361b80abd2de5854ba9a09b4c5d06d6a2c82108766f1f1527572fe6130deaa471 + languageName: node + linkType: hard + "qs@npm:6.11.0": version: 6.11.0 resolution: "qs@npm:6.11.0" @@ -13649,13 +13662,6 @@ __metadata: languageName: node linkType: hard -"qs@npm:~6.5.2": - version: 6.5.3 - resolution: "qs@npm:6.5.3" - checksum: 6631d4f2fa9d315e480662646745a4aa3a708817fbffe2cbdacec8ab9be130f92740c66191770fe9b704bc5fa9c1cc1f6596f55ad132fef7bd3ad1582f199eb0 - languageName: node - linkType: hard - "query-string@npm:^7.0.0": version: 7.1.3 resolution: "query-string@npm:7.1.3" @@ -14548,34 +14554,6 @@ __metadata: languageName: node linkType: hard -"request@npm:2.88.2": - version: 2.88.2 - resolution: "request@npm:2.88.2" - 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" - har-validator: "npm:~5.1.3" - http-signature: "npm:~1.2.0" - is-typedarray: "npm:~1.0.0" - isstream: "npm:~0.1.2" - json-stringify-safe: "npm:~5.0.1" - mime-types: "npm:~2.1.19" - oauth-sign: "npm:~0.9.0" - performance-now: "npm:^2.1.0" - qs: "npm:~6.5.2" - safe-buffer: "npm:^5.1.2" - tough-cookie: "npm:~2.5.0" - tunnel-agent: "npm:^0.6.0" - uuid: "npm:^3.3.2" - checksum: 0ec66e7af1391e51ad231de3b1c6c6aef3ebd0a238aa50d4191c7a792dcdb14920eea8d570c702dc5682f276fe569d176f9b8ebc6031a3cf4a630a691a431a63 - languageName: node - linkType: hard - "require-directory@npm:^2.1.1": version: 2.1.1 resolution: "require-directory@npm:2.1.1" @@ -15363,7 +15341,7 @@ __metadata: languageName: node linkType: hard -"sshpk@npm:^1.7.0": +"sshpk@npm:^1.14.1": version: 1.18.0 resolution: "sshpk@npm:1.18.0" dependencies: @@ -16013,7 +15991,7 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^4.1.2": +"tough-cookie@npm:^4.1.2, tough-cookie@npm:^4.1.3": version: 4.1.3 resolution: "tough-cookie@npm:4.1.3" dependencies: @@ -16025,16 +16003,6 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:~2.5.0": - version: 2.5.0 - resolution: "tough-cookie@npm:2.5.0" - dependencies: - psl: "npm:^1.1.28" - punycode: "npm:^2.1.1" - checksum: e1cadfb24d40d64ca16de05fa8192bc097b66aeeb2704199b055ff12f450e4f30c927ce250f53d01f39baad18e1c11d66f65e545c5c6269de4c366fafa4c0543 - languageName: node - linkType: hard - "tr46@npm:^1.0.1": version: 1.0.1 resolution: "tr46@npm:1.0.1" @@ -16412,11 +16380,11 @@ __metadata: linkType: hard "undici@npm:^5.25.4": - version: 5.28.1 - resolution: "undici@npm:5.28.1" + version: 5.28.2 + resolution: "undici@npm:5.28.2" dependencies: "@fastify/busboy": "npm:^2.0.0" - checksum: d7421957f829cb1e8188d1e136454cb0ab30a275213c9831bcbaec5aa15191fe8b094472d7d0d35f62a0cc50aba430ec7193d1e87ded01616a24ef8f673d42f0 + checksum: 34385ad9b3ba85309972ee3c1b426dcd19b94a5a6aa9c54499b5f48436c0ecc13a9b1e756a7c6a953eaefa9f4263890625ece5f2719fd774b0852204f5e4d5f9 languageName: node linkType: hard @@ -16939,15 +16907,6 @@ __metadata: languageName: node linkType: hard -"uuid@npm:^3.3.2": - version: 3.4.0 - resolution: "uuid@npm:3.4.0" - bin: - uuid: ./bin/uuid - checksum: 1c13950df865c4f506ebfe0a24023571fa80edf2e62364297a537c80af09c618299797bbf2dbac6b1f8ae5ad182ba474b89db61e0e85839683991f7e08795347 - languageName: node - linkType: hard - "uuid@npm:^8.0.0, uuid@npm:^8.3.2": version: 8.3.2 resolution: "uuid@npm:8.3.2" @@ -17029,16 +16988,16 @@ __metadata: languageName: node linkType: hard -"verdaccio-audit@npm:12.0.0-next.3": - version: 12.0.0-next.3 - resolution: "verdaccio-audit@npm:12.0.0-next.3" +"verdaccio-audit@npm:12.0.0-next.4": + version: 12.0.0-next.4 + resolution: "verdaccio-audit@npm:12.0.0-next.4" dependencies: - "@verdaccio/config": "npm:7.0.0-next.3" - "@verdaccio/core": "npm:7.0.0-next.3" + "@verdaccio/config": "npm:7.0.0-next.4" + "@verdaccio/core": "npm:7.0.0-next.4" express: "npm:4.18.2" https-proxy-agent: "npm:5.0.1" node-fetch: "npm:cjs" - checksum: 1fe3a12433ad072a854d23960829916e53eccd15dc5870f32e7ae0fcb1933afec13c32f90c96ed7a15a779f85d0796028eb6b2867671ee84bff2aff4a5c1195b + checksum: 46959af86e7449efbc43e8a3382a21aca16b614f4e75b294e01a03470bd569d9cb87a22d1256fa0f191df2defd488fa04a0aabb8a77d554c9b50e401aea0f05f languageName: node linkType: hard @@ -17051,11 +17010,11 @@ __metadata: languageName: node linkType: hard -"verdaccio-htpasswd@npm:12.0.0-next.3": - version: 12.0.0-next.3 - resolution: "verdaccio-htpasswd@npm:12.0.0-next.3" +"verdaccio-htpasswd@npm:12.0.0-next.4": + version: 12.0.0-next.4 + resolution: "verdaccio-htpasswd@npm:12.0.0-next.4" dependencies: - "@verdaccio/core": "npm:7.0.0-next.3" + "@verdaccio/core": "npm:7.0.0-next.4" "@verdaccio/file-locking": "npm:12.0.0-next.1" apache-md5: "npm:1.1.8" bcryptjs: "npm:2.4.3" @@ -17063,34 +17022,35 @@ __metadata: debug: "npm:4.3.4" http-errors: "npm:2.0.0" unix-crypt-td-js: "npm:1.1.4" - checksum: 8c6886412abd4368e22dd536c7090a5f298b5cf50d2c853baf3732399fbd7134e9cfbb9bfe4efccae19fcafbe26af4388a10845a7c34d84f6f6bb9a9abd47eb3 + checksum: 4c495f779a42d8377a1f4a73e6330ae8852e4a9c620b2ad95de34f5c7f5500414b1389d487e69c00446367a995ccae81a1b93a52d3edc0ea75e1cf78dba7fc0f languageName: node linkType: hard "verdaccio@npm:^5.19.1": - version: 5.27.0 - resolution: "verdaccio@npm:5.27.0" + version: 5.29.0 + resolution: "verdaccio@npm:5.29.0" dependencies: - "@verdaccio/config": "npm:7.0.0-next.3" - "@verdaccio/core": "npm:7.0.0-next.3" + "@cypress/request": "npm:3.0.1" + "@verdaccio/config": "npm:7.0.0-next.4" + "@verdaccio/core": "npm:7.0.0-next.4" "@verdaccio/local-storage": "npm:10.3.3" - "@verdaccio/logger-7": "npm:7.0.0-next.3" - "@verdaccio/middleware": "npm:7.0.0-next.3" + "@verdaccio/logger-7": "npm:7.0.0-next.4" + "@verdaccio/middleware": "npm:7.0.0-next.4" "@verdaccio/search": "npm:7.0.0-next.2" - "@verdaccio/signature": "npm:7.0.0-next.1" + "@verdaccio/signature": "npm:7.0.0-next.2" "@verdaccio/streams": "npm:10.2.1" - "@verdaccio/tarball": "npm:12.0.0-next.3" - "@verdaccio/ui-theme": "npm:7.0.0-next.3" - "@verdaccio/url": "npm:12.0.0-next.3" - "@verdaccio/utils": "npm:7.0.0-next.3" + "@verdaccio/tarball": "npm:12.0.0-next.4" + "@verdaccio/ui-theme": "npm:7.0.0-next.4" + "@verdaccio/url": "npm:12.0.0-next.4" + "@verdaccio/utils": "npm:7.0.0-next.4" JSONStream: "npm:1.3.5" - async: "npm:3.2.4" + async: "npm:3.2.5" clipanion: "npm:3.2.1" compression: "npm:1.7.4" cookies: "npm:0.8.0" cors: "npm:2.8.5" debug: "npm:^4.3.4" - envinfo: "npm:7.10.0" + envinfo: "npm:7.11.0" express: "npm:4.18.2" express-rate-limit: "npm:5.5.1" fast-safe-stringify: "npm:2.1.1" @@ -17104,14 +17064,13 @@ __metadata: mkdirp: "npm:1.0.4" mv: "npm:2.1.1" pkginfo: "npm:0.4.1" - request: "npm:2.88.2" semver: "npm:7.5.4" validator: "npm:13.11.0" - verdaccio-audit: "npm:12.0.0-next.3" - verdaccio-htpasswd: "npm:12.0.0-next.3" + verdaccio-audit: "npm:12.0.0-next.4" + verdaccio-htpasswd: "npm:12.0.0-next.4" bin: verdaccio: bin/verdaccio - checksum: e6d867b84f280aa2a5a11a28054c4a885a6d308dc9f2492044431b3db02e3d7351a559fd0ab7d59bf413212a5d284353f208529e975ec978f82c61fc2961a730 + checksum: 03cb7f6b4c996342187fdb8bcd17e5f3e08b0e9b3f82c400c8404a38d1cf43158144e4f1d42dfad340cb2a5ea604ec6e4128892f2579afe1eff3a595e5b7857b languageName: node linkType: hard @@ -17614,8 +17573,8 @@ __metadata: linkType: hard "ws@npm:^8.11.0": - version: 8.14.2 - resolution: "ws@npm:8.14.2" + version: 8.15.0 + resolution: "ws@npm:8.15.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -17624,7 +17583,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 35b4c2da048b8015c797fd14bcb5a5766216ce65c8a5965616a5440ca7b6c3681ee3cbd0ea0c184a59975556e9d58f2002abf8485a14d11d3371770811050a16 + checksum: b778a405b2589ffbf549323e2f404f1f72e372a049d332d2f0b1f33057e9fbb14a05aa474cb156e4584b418cd95edf4297c0ca5263d6519e8009064bf8e0b80d languageName: node linkType: hard