From 21916797bc44249f940710b9f4d0de48e414ad4d Mon Sep 17 00:00:00 2001 From: Alen Ajam Date: Mon, 1 May 2023 18:57:43 +0200 Subject: [PATCH 001/154] fix(Select.tsx): added value prop to select and multiselect --- code/ui/blocks/src/controls/options/Select.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/ui/blocks/src/controls/options/Select.tsx b/code/ui/blocks/src/controls/options/Select.tsx index f033c131bd71..b05d58a4a3a7 100644 --- a/code/ui/blocks/src/controls/options/Select.tsx +++ b/code/ui/blocks/src/controls/options/Select.tsx @@ -110,7 +110,9 @@ const SingleSelect: FC = ({ name, value, options, onChange }) => { {NO_SELECTION} {Object.keys(options).map((key) => ( - + ))} @@ -131,7 +133,9 @@ const MultiSelect: FC = ({ name, value, options, onChange }) => { {Object.keys(options).map((key) => ( - + ))} From 41dd534a5f777ec7babe8e4cdbda19cb5e30f9db Mon Sep 17 00:00:00 2001 From: Alen Ajam Date: Mon, 1 May 2023 19:03:08 +0200 Subject: [PATCH 002/154] fix(basics.stories.ts): fixed select and multiselect controls, added double space option --- code/addons/controls/template/stories/basics.stories.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/addons/controls/template/stories/basics.stories.ts b/code/addons/controls/template/stories/basics.stories.ts index 51acda9c1f21..6d2224d80126 100644 --- a/code/addons/controls/template/stories/basics.stories.ts +++ b/code/addons/controls/template/stories/basics.stories.ts @@ -25,8 +25,8 @@ export default { control: { type: 'radio', options: ['a', 'b', 'c'], labels: ['alpha', 'beta', 'gamma'] }, }, inlineRadio: { control: { type: 'inline-radio', options: ['a', 'b', 'c'] } }, - select: { control: { type: 'select', options: ['a', 'b', 'c'] } }, - multiSelect: { control: { type: 'multi-select', options: ['a', 'b', 'c'] } }, + select: { control: 'select', options: ['a', 'b', 'c', 'double space'] }, + multiSelect: { control: { type: 'multi-select' }, options: ['a', 'b', 'c', 'double space'] }, range: { control: 'range' }, rangeCustom: { control: { type: 'range', min: 0, max: 1000, step: 100 } }, text: { control: 'text' }, From afd96e736acc58b2d6fe1abecac4b68fec887b5c Mon Sep 17 00:00:00 2001 From: Alen Ajam Date: Mon, 1 May 2023 19:07:21 +0200 Subject: [PATCH 003/154] test(addon-controls.spec.ts): check that options which value contain double spaces work --- code/e2e-tests/addon-controls.spec.ts | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/code/e2e-tests/addon-controls.spec.ts b/code/e2e-tests/addon-controls.spec.ts index bcbf96019947..df376782aae8 100644 --- a/code/e2e-tests/addon-controls.spec.ts +++ b/code/e2e-tests/addon-controls.spec.ts @@ -70,4 +70,31 @@ test.describe('addon-controls', () => { const label = await sbPage.panelContent().locator('textarea[name=label]').inputValue(); await expect(label).toEqual('Hello world'); }); + + test('should set select option when value contains double spaces', async ({ page }) => { + await page.goto(`${storybookUrl}?path=/story/addons-controls-basics--undefined`); + + const sbPage = new SbPage(page); + await sbPage.waitUntilLoaded(); + await sbPage.viewAddonPanel('Controls'); + await sbPage.panelContent().locator('#control-select').selectOption('double space'); + + await expect(sbPage.panelContent().locator('#control-select')).toHaveValue('double space'); + await expect(page).toHaveURL(/.*select:double\+\+space.*/); + }); + + test('should set multiselect option when value contains double spaces', async ({ page }) => { + await page.goto(`${storybookUrl}?path=/story/addons-controls-basics--undefined`); + + const sbPage = new SbPage(page); + await sbPage.waitUntilLoaded(); + await sbPage.viewAddonPanel('Controls'); + await sbPage.panelContent().locator('#control-multiSelect').selectOption('double space'); + + await expect(sbPage.panelContent().locator('#control-multiSelect')).toHaveValue( + 'double space' + ); + + await expect(page).toHaveURL(/.*multiSelect\[0]:double\+\+space.*/); + }); }); From 8c5354b37548952bcbc1565367f2fea23832d5ea Mon Sep 17 00:00:00 2001 From: Daniel Tschinder <231804+danez@users.noreply.github.com> Date: Sun, 30 Apr 2023 11:56:01 +0200 Subject: [PATCH 004/154] update react-docgen to 6.0.0-rc.9 --- code/frameworks/react-vite/package.json | 3 +- .../docgen-handlers/actualNameHandler.ts | 54 +++-- .../react-vite/src/plugins/react-docgen.ts | 28 ++- code/yarn.lock | 212 ++++++++++++++++-- 4 files changed, 240 insertions(+), 57 deletions(-) diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index bddd43ea47b3..71e92185b882 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -52,9 +52,8 @@ "@storybook/builder-vite": "7.1.0-alpha.20", "@storybook/react": "7.1.0-alpha.20", "@vitejs/plugin-react": "^3.0.1", - "ast-types": "^0.14.2", "magic-string": "^0.27.0", - "react-docgen": "6.0.0-alpha.3" + "react-docgen": "6.0.0-rc.9" }, "devDependencies": { "@types/node": "^16.0.0", diff --git a/code/frameworks/react-vite/src/plugins/docgen-handlers/actualNameHandler.ts b/code/frameworks/react-vite/src/plugins/docgen-handlers/actualNameHandler.ts index efa6717b47b2..01889ddf9dcf 100644 --- a/code/frameworks/react-vite/src/plugins/docgen-handlers/actualNameHandler.ts +++ b/code/frameworks/react-vite/src/plugins/docgen-handlers/actualNameHandler.ts @@ -9,40 +9,46 @@ * directly from displayNameHandler, using the same approach as babel-plugin-react-docgen. */ -import { namedTypes as t } from 'ast-types'; -import type { NodePath } from 'ast-types/lib/node-path'; -import { getNameOrValue, isReactForwardRefCall } from 'react-docgen/dist/utils'; -import type { Importer } from 'react-docgen/dist/parse'; -import type Documentation from 'react-docgen/dist/Documentation'; +import type { Handler, NodePath, babelTypes as t } from 'react-docgen'; +import { utils } from 'react-docgen'; -export default function actualNameHandler( - documentation: Documentation, - path: NodePath, - importer: Importer -): void { - if (t.ClassDeclaration.check(path.node) || t.FunctionDeclaration.check(path.node)) { - documentation.set('actualName', getNameOrValue(path.get('id'))); +const { getNameOrValue, isReactForwardRefCall } = utils; + +const actualNameHandler: Handler = function actualNameHandler(documentation, componentDefinition) { + if ( + (componentDefinition.isClassDeclaration() || componentDefinition.isFunctionDeclaration()) && + componentDefinition.has('id') + ) { + documentation.set( + 'actualName', + getNameOrValue(componentDefinition.get('id') as NodePath) + ); } else if ( - t.ArrowFunctionExpression.check(path.node) || - t.FunctionExpression.check(path.node) || - isReactForwardRefCall(path, importer) + componentDefinition.isArrowFunctionExpression() || + componentDefinition.isFunctionExpression() || + isReactForwardRefCall(componentDefinition) ) { - let currentPath = path; - while (currentPath.parent) { - if (t.VariableDeclarator.check(currentPath.parent.node)) { - documentation.set('actualName', getNameOrValue(currentPath.parent.get('id'))); + let currentPath: NodePath = componentDefinition; + + while (currentPath.parentPath) { + if (currentPath.parentPath.isVariableDeclarator()) { + documentation.set('actualName', getNameOrValue(currentPath.parentPath.get('id'))); return; } - if (t.AssignmentExpression.check(currentPath.parent.node)) { - const leftPath = currentPath.parent.get('left'); - if (t.Identifier.check(leftPath.node) || t.Literal.check(leftPath.node)) { + if (currentPath.parentPath.isAssignmentExpression()) { + const leftPath = currentPath.parentPath.get('left'); + + if (leftPath.isIdentifier() || leftPath.isLiteral()) { documentation.set('actualName', getNameOrValue(leftPath)); return; } } - currentPath = currentPath.parent; + + currentPath = currentPath.parentPath; } // Could not find an actual name documentation.set('actualName', ''); } -} +}; + +export default actualNameHandler; diff --git a/code/frameworks/react-vite/src/plugins/react-docgen.ts b/code/frameworks/react-vite/src/plugins/react-docgen.ts index 0561456f8618..40a56c78502e 100644 --- a/code/frameworks/react-vite/src/plugins/react-docgen.ts +++ b/code/frameworks/react-vite/src/plugins/react-docgen.ts @@ -1,22 +1,23 @@ import path from 'path'; import { createFilter } from '@rollup/pluginutils'; +import type { Documentation } from 'react-docgen'; import { + ERROR_CODES, parse, - handlers as docgenHandlers, - resolver as docgenResolver, - importers as docgenImporters, + builtinHandlers as docgenHandlers, + builtinResolvers as docgenResolver, + builtinImporters as docgenImporters, } from 'react-docgen'; -import type { DocumentationObject } from 'react-docgen/dist/Documentation'; import MagicString from 'magic-string'; import type { PluginOption } from 'vite'; import actualNameHandler from './docgen-handlers/actualNameHandler'; -type DocObj = DocumentationObject & { actualName: string }; +type DocObj = Documentation & { actualName: string }; // TODO: None of these are able to be overridden, so `default` is aspirational here. const defaultHandlers = Object.values(docgenHandlers).map((handler) => handler); -const defaultResolver = docgenResolver.findAllExportedComponentDefinitions; -const defaultImporter = docgenImporters.makeFsImporter(); +const defaultResolver = new docgenResolver.FindExportedDefinitionsResolver(); +const defaultImporter = docgenImporters.fsImporter; const handlers = [...defaultHandlers, actualNameHandler]; type Options = { @@ -39,8 +40,9 @@ export function reactDocgen({ if (!filter(relPath)) return; try { - // Since we're using `findAllExportedComponentDefinitions`, this will always be an array. - const docgenResults = parse(src, defaultResolver, handlers, { + const docgenResults = parse(src, { + resolver: defaultResolver, + handlers, importer: defaultImporter, filename: id, }) as DocObj[]; @@ -60,9 +62,11 @@ export function reactDocgen({ map: s.generateMap(), }; } catch (e) { - // Usually this is just an error from react-docgen that it couldn't find a component - // Only uncomment for troubleshooting - // console.error(e); + // Ignore the error when react-docgen cannot find a react component + if (e.code === ERROR_CODES.MISSING_DEFINITION) { + return; + } + throw e; } }, }; diff --git a/code/yarn.lock b/code/yarn.lock index 54d9003fe74e..eac5f0119907 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -407,6 +407,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.21.5": + version: 7.21.7 + resolution: "@babel/compat-data@npm:7.21.7" + checksum: cd6bc85364a569cc74bcf0bfdc27161a1cb423c60c624e06f44b53c9e6fe7708bd0af3e389d376aec8ed9b2795907c43d01e4163dbc2a3a3142a2de55464a51d + languageName: node + linkType: hard + "@babel/core@npm:7.19.3": version: 7.19.3 resolution: "@babel/core@npm:7.19.3" @@ -476,6 +483,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.18.9": + version: 7.21.8 + resolution: "@babel/core@npm:7.21.8" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.21.4 + "@babel/generator": ^7.21.5 + "@babel/helper-compilation-targets": ^7.21.5 + "@babel/helper-module-transforms": ^7.21.5 + "@babel/helpers": ^7.21.5 + "@babel/parser": ^7.21.8 + "@babel/template": ^7.20.7 + "@babel/traverse": ^7.21.5 + "@babel/types": ^7.21.5 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.2 + semver: ^6.3.0 + checksum: bf6bb92bd78fb8b6628bb0612ac0915407b996b179e1404108f92ed32972978340b4457b08f2abf86390a58fb51815cab419edb2dbbc8846efc39eaa61b8cde3 + languageName: node + linkType: hard + "@babel/generator@npm:7.21.4, @babel/generator@npm:^7.12.11, @babel/generator@npm:^7.19.3, @babel/generator@npm:^7.21.4, @babel/generator@npm:^7.7.2, @babel/generator@npm:^7.8.7, @babel/generator@npm:~7.21.1": version: 7.21.4 resolution: "@babel/generator@npm:7.21.4" @@ -488,6 +518,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/generator@npm:7.21.5" + dependencies: + "@babel/types": ^7.21.5 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: e98b51440cbbcee68e66c66684b5334f5929dba512067a6c3c1aecc77131b308bf61eca74a5ae1fb73028089d22a188ca2219c364596117f27695102afc18e95 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:7.18.6, @babel/helper-annotate-as-pure@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-annotate-as-pure@npm:7.18.6" @@ -522,6 +564,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helper-compilation-targets@npm:7.21.5" + dependencies: + "@babel/compat-data": ^7.21.5 + "@babel/helper-validator-option": ^7.21.0 + browserslist: ^4.21.3 + lru-cache: ^5.1.1 + semver: ^6.3.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 36752452eb70d6a6f52f68846344a739089374a97619e5a4857e31e7d067bdad8270efd9dd0dd5dfc483dd2d98bf0c1c6f08e3315fe949e7bfffef67eaf669ad + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0": version: 7.21.4 resolution: "@babel/helper-create-class-features-plugin@npm:7.21.4" @@ -575,6 +632,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-environment-visitor@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helper-environment-visitor@npm:7.21.5" + checksum: d3f965d9691e3e2e11036d23ba9993a42d18f9be3d4589d3bb3d09d02e9d4d204026965633e36fb43b35fde905c2dfe753fb59b72ae0c3841f5a627fb1738d8a + languageName: node + linkType: hard + "@babel/helper-explode-assignable-expression@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-explode-assignable-expression@npm:7.18.6" @@ -637,6 +701,22 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helper-module-transforms@npm:7.21.5" + dependencies: + "@babel/helper-environment-visitor": ^7.21.5 + "@babel/helper-module-imports": ^7.21.4 + "@babel/helper-simple-access": ^7.21.5 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/helper-validator-identifier": ^7.19.1 + "@babel/template": ^7.20.7 + "@babel/traverse": ^7.21.5 + "@babel/types": ^7.21.5 + checksum: a3b6ceaa995bf35e7a072066c3c9ba9ee6983cf36605f0c6a0ffcaab94d6dc13eba21b00434a023bf99d66c080fec335cf464619b97f7af39e1a5269cf0d7169 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-optimise-call-expression@npm:7.18.6" @@ -690,6 +770,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-simple-access@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helper-simple-access@npm:7.21.5" + dependencies: + "@babel/types": ^7.21.5 + checksum: 682cd80b47c2424c31afe70bcc8ad3e401c612f6923c432e4b8245c5b6bc5ccddf3e405ea41ba890ccab79c0b5b95da3db125944ac0decc8d31d48469e593a0e + languageName: node + linkType: hard + "@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0": version: 7.20.0 resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.20.0" @@ -715,6 +804,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helper-string-parser@npm:7.21.5" + checksum: 4d0834c4a67c283e9277f5e565551fede00b7d68007e368c95c776e13d05002e8f9861716e11613880889d6f3463329d2af687ceea5fc5263f8b3d25a53d31da + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": version: 7.19.1 resolution: "@babel/helper-validator-identifier@npm:7.19.1" @@ -752,6 +848,17 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helpers@npm:7.21.5" + dependencies: + "@babel/template": ^7.20.7 + "@babel/traverse": ^7.21.5 + "@babel/types": ^7.21.5 + checksum: 5e58854afa1d0896185dcb12a1b6feacefb7d913d52bafa84792274651af2d3172923bdc26d1320fd6b04a2e208dc0d6730951043f17d10c08ca87231e5b84ec + languageName: node + linkType: hard + "@babel/highlight@npm:^7.18.6": version: 7.18.6 resolution: "@babel/highlight@npm:7.18.6" @@ -772,6 +879,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.21.5, @babel/parser@npm:^7.21.8": + version: 7.21.8 + resolution: "@babel/parser@npm:7.21.8" + bin: + parser: ./bin/babel-parser.js + checksum: 58789e972e5acce3abbd9dd4c8d4be7e15e071818d2038d195bc56664722f238abb8842d91da5c8894ab0b8f8c0841eabc675f681925c2fba12675bf3ec5c5fc + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.18.6" @@ -1996,6 +2112,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/traverse@npm:7.21.5" + dependencies: + "@babel/code-frame": ^7.21.4 + "@babel/generator": ^7.21.5 + "@babel/helper-environment-visitor": ^7.21.5 + "@babel/helper-function-name": ^7.21.0 + "@babel/helper-hoist-variables": ^7.18.6 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/parser": ^7.21.5 + "@babel/types": ^7.21.5 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: 1b126b71b98aaff01ec1f0f0389d08beb6eda3d0b71878af4c6cf386686933a076d969240f270c6a01910d8036a1fb9013d53bd5c136b9b24025204a4dc48d03 + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.11.5, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.8, @babel/types@npm:^7.18.9, @babel/types@npm:^7.19.3, @babel/types@npm:^7.2.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.21.2, @babel/types@npm:^7.21.4, @babel/types@npm:^7.3.0, @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.8.6, @babel/types@npm:^7.8.7, @babel/types@npm:^7.9.6, @babel/types@npm:~7.21.2": version: 7.21.4 resolution: "@babel/types@npm:7.21.4" @@ -2007,6 +2141,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/types@npm:7.21.5" + dependencies: + "@babel/helper-string-parser": ^7.21.5 + "@babel/helper-validator-identifier": ^7.19.1 + to-fast-properties: ^2.0.0 + checksum: 23c943aa2c0d11b798e9298b55b1993da8b386504aac2f781a49b4bbf2cf2ad5e1003409241578574e421c999ff7a3aab2cf30ad3581d33eb9053d82b9e20408 + languageName: node + linkType: hard + "@base2/pretty-print-object@npm:1.0.1": version: 1.0.1 resolution: "@base2/pretty-print-object@npm:1.0.1" @@ -6744,9 +6889,8 @@ __metadata: "@storybook/react": 7.1.0-alpha.20 "@types/node": ^16.0.0 "@vitejs/plugin-react": ^3.0.1 - ast-types: ^0.14.2 magic-string: ^0.27.0 - react-docgen: 6.0.0-alpha.3 + react-docgen: 6.0.0-rc.9 typescript: ~4.9.3 vite: ^4.0.0 peerDependencies: @@ -7763,7 +7907,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:^7, @types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.1.7": +"@types/babel__core@npm:^7, @types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.1.7, @types/babel__core@npm:^7.18.0": version: 7.20.0 resolution: "@types/babel__core@npm:7.20.0" dependencies: @@ -7818,6 +7962,15 @@ __metadata: languageName: node linkType: hard +"@types/babel__traverse@npm:^7.18.0": + version: 7.18.5 + resolution: "@types/babel__traverse@npm:7.18.5" + dependencies: + "@babel/types": ^7.3.0 + checksum: e5170da740e720212a514add53f3a66ba6c64056e1c284c16bc549cc972bab962bdf0610c6ee710d63da24d28b75c065e2032575404b01ff768d6a9d3974a085 + languageName: node + linkType: hard + "@types/body-parser@npm:*": version: 1.19.2 resolution: "@types/body-parser@npm:1.19.2" @@ -7922,6 +8075,13 @@ __metadata: languageName: node linkType: hard +"@types/doctrine@npm:^0.0.5": + version: 0.0.5 + resolution: "@types/doctrine@npm:0.0.5" + checksum: 9b38d1b110e94fa34632e21f83b64ed05116f6349b5666c11bc0d4081c793f9b0be25b9d8b34df0ec38d440741836c17d4c84576e22dc00a18fe972f96688bf3 + languageName: node + linkType: hard + "@types/ejs@npm:^3.1.1": version: 3.1.2 resolution: "@types/ejs@npm:3.1.2" @@ -8474,6 +8634,13 @@ __metadata: languageName: node linkType: hard +"@types/resolve@npm:^1.20.2": + version: 1.20.2 + resolution: "@types/resolve@npm:1.20.2" + checksum: c5b7e1770feb5ccfb6802f6ad82a7b0d50874c99331e0c9b259e415e55a38d7a86ad0901c57665d93f75938be2a6a0bc9aa06c9749192cadb2e4512800bbc6e6 + languageName: node + linkType: hard + "@types/retry@npm:0.12.0": version: 0.12.0 resolution: "@types/retry@npm:0.12.0" @@ -21900,7 +22067,7 @@ __metadata: languageName: node linkType: hard -"min-indent@npm:^1.0.0": +"min-indent@npm:^1.0.0, min-indent@npm:^1.0.1": version: 1.0.1 resolution: "min-indent@npm:1.0.1" checksum: 7e207bd5c20401b292de291f02913230cb1163abca162044f7db1d951fa245b174dc00869d40dd9a9f32a885ad6a5f3e767ee104cf278f399cb4e92d3f582d5c @@ -25217,23 +25384,21 @@ __metadata: languageName: node linkType: hard -"react-docgen@npm:6.0.0-alpha.3": - version: 6.0.0-alpha.3 - resolution: "react-docgen@npm:6.0.0-alpha.3" +"react-docgen@npm:6.0.0-rc.9": + version: 6.0.0-rc.9 + resolution: "react-docgen@npm:6.0.0-rc.9" dependencies: - "@babel/core": ^7.7.5 - "@babel/generator": ^7.12.11 - ast-types: ^0.14.2 - commander: ^2.19.0 + "@babel/core": ^7.18.9 + "@babel/traverse": ^7.18.9 + "@babel/types": ^7.18.9 + "@types/babel__core": ^7.18.0 + "@types/babel__traverse": ^7.18.0 + "@types/doctrine": ^0.0.5 + "@types/resolve": ^1.20.2 doctrine: ^3.0.0 - estree-to-babel: ^3.1.0 - neo-async: ^2.6.1 - node-dir: ^0.1.10 - resolve: ^1.17.0 - strip-indent: ^3.0.0 - bin: - react-docgen: bin/react-docgen.js - checksum: 284bba5528d5e9084c3ed36b2d2fec8fc5d55f3fb8ca544ec3a0d1ab98c39001ecb7db6e03a1088b82eb3d750c1343cde2fc9b7729540277eda40e10f38912d8 + resolve: ^1.22.1 + strip-indent: ^4.0.0 + checksum: f75226b13175b7ceb1282f485ffb0c1cec1e179f870f7583ab3939cc28c874bce8dad31acf30915ecb7e8549b3a25d998dc4277d7c9def70578e673aa61ac15a languageName: node linkType: hard @@ -28072,6 +28237,15 @@ __metadata: languageName: node linkType: hard +"strip-indent@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-indent@npm:4.0.0" + dependencies: + min-indent: ^1.0.1 + checksum: 6b1fb4e22056867f5c9e7a6f3f45922d9a2436cac758607d58aeaac0d3b16ec40b1c43317de7900f1b8dd7a4107352fa47fb960f2c23566538c51e8585c8870e + languageName: node + linkType: hard + "strip-json-comments@npm:^2.0.0": version: 2.0.1 resolution: "strip-json-comments@npm:2.0.1" From a26c431ae98abf46ac918b73c9165ece6da11576 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 22 May 2023 13:53:53 +0200 Subject: [PATCH 005/154] fix type issues --- code/frameworks/react-vite/src/plugins/react-docgen.ts | 2 +- code/frameworks/react-vite/tsconfig.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/frameworks/react-vite/src/plugins/react-docgen.ts b/code/frameworks/react-vite/src/plugins/react-docgen.ts index 40a56c78502e..9c35568f45ba 100644 --- a/code/frameworks/react-vite/src/plugins/react-docgen.ts +++ b/code/frameworks/react-vite/src/plugins/react-docgen.ts @@ -61,7 +61,7 @@ export function reactDocgen({ code: s.toString(), map: s.generateMap(), }; - } catch (e) { + } catch (e: any) { // Ignore the error when react-docgen cannot find a react component if (e.code === ERROR_CODES.MISSING_DEFINITION) { return; diff --git a/code/frameworks/react-vite/tsconfig.json b/code/frameworks/react-vite/tsconfig.json index 3bfb79fdded7..4475d9c518e6 100644 --- a/code/frameworks/react-vite/tsconfig.json +++ b/code/frameworks/react-vite/tsconfig.json @@ -4,7 +4,7 @@ "rootDir": "./src", "types": ["node"], "resolveJsonModule": true, - "strict": true + "skipLibCheck": true }, "include": ["src/**/*"] } From f9b9e76d86efee523aff3da5dc059f74e9d2d5e8 Mon Sep 17 00:00:00 2001 From: Daniel Tschinder <231804+danez@users.noreply.github.com> Date: Wed, 21 Jun 2023 13:03:32 +0200 Subject: [PATCH 006/154] fix: update to 6.0 final --- code/frameworks/react-vite/package.json | 2 +- code/yarn.lock | 38 ++++++++++++------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index 71e92185b882..5a45fc3ae7ec 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -53,7 +53,7 @@ "@storybook/react": "7.1.0-alpha.20", "@vitejs/plugin-react": "^3.0.1", "magic-string": "^0.27.0", - "react-docgen": "6.0.0-rc.9" + "react-docgen": "^6.0.1" }, "devDependencies": { "@types/node": "^16.0.0", diff --git a/code/yarn.lock b/code/yarn.lock index eac5f0119907..4b13b7282c74 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6890,7 +6890,7 @@ __metadata: "@types/node": ^16.0.0 "@vitejs/plugin-react": ^3.0.1 magic-string: ^0.27.0 - react-docgen: 6.0.0-rc.9 + react-docgen: ^6.0.1 typescript: ~4.9.3 vite: ^4.0.0 peerDependencies: @@ -25384,24 +25384,6 @@ __metadata: languageName: node linkType: hard -"react-docgen@npm:6.0.0-rc.9": - version: 6.0.0-rc.9 - resolution: "react-docgen@npm:6.0.0-rc.9" - dependencies: - "@babel/core": ^7.18.9 - "@babel/traverse": ^7.18.9 - "@babel/types": ^7.18.9 - "@types/babel__core": ^7.18.0 - "@types/babel__traverse": ^7.18.0 - "@types/doctrine": ^0.0.5 - "@types/resolve": ^1.20.2 - doctrine: ^3.0.0 - resolve: ^1.22.1 - strip-indent: ^4.0.0 - checksum: f75226b13175b7ceb1282f485ffb0c1cec1e179f870f7583ab3939cc28c874bce8dad31acf30915ecb7e8549b3a25d998dc4277d7c9def70578e673aa61ac15a - languageName: node - linkType: hard - "react-docgen@npm:^5.0.0": version: 5.4.3 resolution: "react-docgen@npm:5.4.3" @@ -25422,6 +25404,24 @@ __metadata: languageName: node linkType: hard +"react-docgen@npm:^6.0.1": + version: 6.0.1 + resolution: "react-docgen@npm:6.0.1" + dependencies: + "@babel/core": ^7.18.9 + "@babel/traverse": ^7.18.9 + "@babel/types": ^7.18.9 + "@types/babel__core": ^7.18.0 + "@types/babel__traverse": ^7.18.0 + "@types/doctrine": ^0.0.5 + "@types/resolve": ^1.20.2 + doctrine: ^3.0.0 + resolve: ^1.22.1 + strip-indent: ^4.0.0 + checksum: 361d72685d42afbaeb0d214c2e0d4bd9fa29b7a3621586b87bcf2b3f86c5853b591229aa59d67a0ec8055a422e8a7c363fe564f88f21d5fc056cf75a0814fa9c + languageName: node + linkType: hard + "react-dom@npm:^16.8.0": version: 16.14.0 resolution: "react-dom@npm:16.14.0" From 2a9b09e3636cf4b06a35bab3d8cbe0b9725cc003 Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Wed, 17 May 2023 08:40:07 -0500 Subject: [PATCH 007/154] docs: add information about @storybook/preview-api useArgs hook Provide example for those migrating from v6 to v7 and were previously using the @storybook/client-api useArgs hook --- docs/writing-stories/args.md | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/docs/writing-stories/args.md b/docs/writing-stories/args.md index 4d3a53652ff7..f329e1fb0453 100644 --- a/docs/writing-stories/args.md +++ b/docs/writing-stories/args.md @@ -207,6 +207,43 @@ Similarly, special formats are available for dates and colors. Date objects will Args specified through the URL will extend and override any default values of args set on the story. +## Setting args from withihn a story + +Components with interactivity often need their containing component, or page, to respond to events, modify their state, then pass a changed arg back to the rendered component to reflect the change. For example, you would want a Switch component to be checked by a user and the arg shown in Storybook to reflect the change. This can be accomplished by using the `useArgs` hook exported by `@storybook/preview-api`: + +```ts +// my-component/component.stories.tsx + +import { StoryObj, Meta } from "@storybook/react"; +import { useArgs } from "@storybook/preview-api"; +import { Switch } from "."; + +export const meta: Meta = { + title: "Inputs/Switch", + component: Switch +}; +export default meta; + +type Story = StoryObj; + +export const Standard = { + ...template, + args: { + isChecked: false, + label: "Switch Me!" + }, + render: (args) => { + const [{ isChecked }, updateArgs] = useArgs(); + + function onChange() { + updateArgs({ isChecked: !isChecked }); + } + + return ; + } +}; +``` + ## Mapping to complex arg values Complex values such as JSX elements cannot be serialized to the manager (e.g., the Controls addon) or synced with the URL. Arg values can be "mapped" from a simple string to a complex type using the `mapping` property in `argTypes` to work around this limitation. It works in any arg but makes the most sense when used with the `select` control type. From 9e5f9817d641177f365a321a0ecce963573f8a9e Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Wed, 17 May 2023 08:46:31 -0500 Subject: [PATCH 008/154] docs: fix issue with code sample Removed remnant of template method. Shoudl be GTG now. --- docs/writing-stories/args.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/writing-stories/args.md b/docs/writing-stories/args.md index f329e1fb0453..50440ee76564 100644 --- a/docs/writing-stories/args.md +++ b/docs/writing-stories/args.md @@ -226,8 +226,7 @@ export default meta; type Story = StoryObj; -export const Standard = { - ...template, +export const Example = { args: { isChecked: false, label: "Switch Me!" From b701f0fa547361f730769cffcaad511310612b12 Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Wed, 17 May 2023 09:03:41 -0500 Subject: [PATCH 009/154] docs: fix code block - remove unnecessary export Removed unnecessary export --- docs/writing-stories/args.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/writing-stories/args.md b/docs/writing-stories/args.md index 50440ee76564..17dbe3bc8754 100644 --- a/docs/writing-stories/args.md +++ b/docs/writing-stories/args.md @@ -218,7 +218,7 @@ import { StoryObj, Meta } from "@storybook/react"; import { useArgs } from "@storybook/preview-api"; import { Switch } from "."; -export const meta: Meta = { +const meta: Meta = { title: "Inputs/Switch", component: Switch }; From aade9cc5f33fdf327f24460c5deb5c0fc5e48fa1 Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Wed, 17 May 2023 09:25:39 -0500 Subject: [PATCH 010/154] docs: now passes eslint Made changes to code block to ensure that it will pass eslint rule `react-hooks/rules-of-hooks` --- docs/writing-stories/args.md | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/docs/writing-stories/args.md b/docs/writing-stories/args.md index 17dbe3bc8754..4006ca9d9f7a 100644 --- a/docs/writing-stories/args.md +++ b/docs/writing-stories/args.md @@ -216,7 +216,7 @@ Components with interactivity often need their containing component, or page, to import { StoryObj, Meta } from "@storybook/react"; import { useArgs } from "@storybook/preview-api"; -import { Switch } from "."; +import { Switch, SwitchProps } from "."; const meta: Meta = { title: "Inputs/Switch", @@ -226,20 +226,23 @@ export default meta; type Story = StoryObj; +// Separate render logic into a new function that will not cause issues with eslint rule `react-hooks/rules-of-hooks` +const WrappedComponent = (args: SwitchProps) => { + const [{ isChecked }, updateArgs] = UseArgs(); + + function onChange() { + updateArgs({ isChecked: !isChecked }); + } + + return ; +} + export const Example = { args: { isChecked: false, label: "Switch Me!" }, - render: (args) => { - const [{ isChecked }, updateArgs] = useArgs(); - - function onChange() { - updateArgs({ isChecked: !isChecked }); - } - - return ; - } + render: (args) => }; ``` From 1d5413028689b53bcb01fca97ed7685ce0a8f7af Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Wed, 17 May 2023 12:38:52 -0500 Subject: [PATCH 011/154] docs: change code block to be minimum example that does not cause eslint or storybook errors --- docs/writing-stories/args.md | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/docs/writing-stories/args.md b/docs/writing-stories/args.md index 4006ca9d9f7a..5a353bec6dd9 100644 --- a/docs/writing-stories/args.md +++ b/docs/writing-stories/args.md @@ -216,7 +216,7 @@ Components with interactivity often need their containing component, or page, to import { StoryObj, Meta } from "@storybook/react"; import { useArgs } from "@storybook/preview-api"; -import { Switch, SwitchProps } from "."; +import { Switch } from "."; const meta: Meta = { title: "Inputs/Switch", @@ -226,23 +226,21 @@ export default meta; type Story = StoryObj; -// Separate render logic into a new function that will not cause issues with eslint rule `react-hooks/rules-of-hooks` -const WrappedComponent = (args: SwitchProps) => { - const [{ isChecked }, updateArgs] = UseArgs(); - - function onChange() { - updateArgs({ isChecked: !isChecked }); - } - - return ; -} - export const Example = { args: { isChecked: false, label: "Switch Me!" }, - render: (args) => + render: (args) => { + // eslint-disable-next-line + const [{ isChecked }, updateArgs] = UseArgs(); + + function onChange() { + updateArgs({ isChecked: !isChecked }); + } + + return ; + } }; ``` From d12518c66788c47fd0aa0e3c67d5873a93b3b156 Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Wed, 17 May 2023 12:42:48 -0500 Subject: [PATCH 012/154] docs: fix typo in header --- docs/writing-stories/args.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/writing-stories/args.md b/docs/writing-stories/args.md index 5a353bec6dd9..811d5d06a781 100644 --- a/docs/writing-stories/args.md +++ b/docs/writing-stories/args.md @@ -207,7 +207,7 @@ Similarly, special formats are available for dates and colors. Date objects will Args specified through the URL will extend and override any default values of args set on the story. -## Setting args from withihn a story +## Setting args from within a story Components with interactivity often need their containing component, or page, to respond to events, modify their state, then pass a changed arg back to the rendered component to reflect the change. For example, you would want a Switch component to be checked by a user and the arg shown in Storybook to reflect the change. This can be accomplished by using the `useArgs` hook exported by `@storybook/preview-api`: From 665c1a88a6760f3d3167834e2dae1513979a9f2a Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Thu, 18 May 2023 08:00:59 -0500 Subject: [PATCH 013/154] docs: align code pattern to ensure no eslint or storybook issues --- docs/writing-stories/args.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/writing-stories/args.md b/docs/writing-stories/args.md index 811d5d06a781..89337d510193 100644 --- a/docs/writing-stories/args.md +++ b/docs/writing-stories/args.md @@ -231,8 +231,7 @@ export const Example = { isChecked: false, label: "Switch Me!" }, - render: (args) => { - // eslint-disable-next-line + render: function Render(args) { const [{ isChecked }, updateArgs] = UseArgs(); function onChange() { From 449b0529a0031ca0ef8256502d19de02af03a5ff Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Fri, 16 Jun 2023 15:04:41 -0500 Subject: [PATCH 014/154] make changes per recommendations --- .../react/page-story-args-within-story.js.mdx | 27 ++++++++++++ .../react/page-story-args-within-story.ts.mdx | 31 ++++++++++++++ docs/writing-stories/args.md | 41 +++++-------------- 3 files changed, 68 insertions(+), 31 deletions(-) create mode 100644 docs/snippets/react/page-story-args-within-story.js.mdx create mode 100644 docs/snippets/react/page-story-args-within-story.ts.mdx diff --git a/docs/snippets/react/page-story-args-within-story.js.mdx b/docs/snippets/react/page-story-args-within-story.js.mdx new file mode 100644 index 000000000000..c523c2682eb3 --- /dev/null +++ b/docs/snippets/react/page-story-args-within-story.js.mdx @@ -0,0 +1,27 @@ +```ts +// my-component/component.stories.js|jsx + +import { useArgs } from '@storybook/preview-api'; +import { Switch } from '.'; + +export const meta = { + title: 'Inputs/Switch', + component: Switch, +}; + +export const Example = { + args: { + isChecked: false, + label: 'Switch Me!', + }, + render: function Render(args) { + const [{ isChecked }, updateArgs] = UseArgs(); + + function onChange() { + updateArgs({ isChecked: !isChecked }); + } + + return ; + }, +}; +``` diff --git a/docs/snippets/react/page-story-args-within-story.ts.mdx b/docs/snippets/react/page-story-args-within-story.ts.mdx new file mode 100644 index 000000000000..fb0fdff989a0 --- /dev/null +++ b/docs/snippets/react/page-story-args-within-story.ts.mdx @@ -0,0 +1,31 @@ +```ts +// my-component/component.stories.ts|tsx + +import { StoryObj, Meta } from '@storybook/react'; +import { useArgs } from '@storybook/preview-api'; +import { Switch } from '.'; + +const meta: Meta = { + title: 'Inputs/Switch', + component: Switch, +}; +export default meta; + +type Story = StoryObj; + +export const Example = { + args: { + isChecked: false, + label: 'Switch Me!', + }, + render: function Render(args) { + const [{ isChecked }, updateArgs] = UseArgs(); + + function onChange() { + updateArgs({ isChecked: !isChecked }); + } + + return ; + }, +}; +``` diff --git a/docs/writing-stories/args.md b/docs/writing-stories/args.md index 89337d510193..ea83df908531 100644 --- a/docs/writing-stories/args.md +++ b/docs/writing-stories/args.md @@ -211,37 +211,16 @@ Args specified through the URL will extend and override any default values of ar Components with interactivity often need their containing component, or page, to respond to events, modify their state, then pass a changed arg back to the rendered component to reflect the change. For example, you would want a Switch component to be checked by a user and the arg shown in Storybook to reflect the change. This can be accomplished by using the `useArgs` hook exported by `@storybook/preview-api`: -```ts -// my-component/component.stories.tsx - -import { StoryObj, Meta } from "@storybook/react"; -import { useArgs } from "@storybook/preview-api"; -import { Switch } from "."; - -const meta: Meta = { - title: "Inputs/Switch", - component: Switch -}; -export default meta; - -type Story = StoryObj; - -export const Example = { - args: { - isChecked: false, - label: "Switch Me!" - }, - render: function Render(args) { - const [{ isChecked }, updateArgs] = UseArgs(); - - function onChange() { - updateArgs({ isChecked: !isChecked }); - } - - return ; - } -}; -``` + + + + + ## Mapping to complex arg values From cec457628d99c542e4d09465e939b619131842b4 Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Fri, 16 Jun 2023 15:18:45 -0500 Subject: [PATCH 015/154] fix typos; align style to other js code snippets --- .../react/page-story-args-within-story.js.mdx | 11 ++++++++--- .../react/page-story-args-within-story.ts.mdx | 7 ++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/docs/snippets/react/page-story-args-within-story.js.mdx b/docs/snippets/react/page-story-args-within-story.js.mdx index c523c2682eb3..ceec5acabc65 100644 --- a/docs/snippets/react/page-story-args-within-story.js.mdx +++ b/docs/snippets/react/page-story-args-within-story.js.mdx @@ -1,10 +1,10 @@ -```ts +```js // my-component/component.stories.js|jsx import { useArgs } from '@storybook/preview-api'; import { Switch } from '.'; -export const meta = { +export default { title: 'Inputs/Switch', component: Switch, }; @@ -14,8 +14,13 @@ export const Example = { isChecked: false, label: 'Switch Me!', }, + /** + * 👇 React things the Storybook function "useArgs" is a hook, but it's really not. + * Using a named capital-letter function prevents an ESLint warning related to this. + * Don't lint? You can use an arrow function instead. + */ render: function Render(args) { - const [{ isChecked }, updateArgs] = UseArgs(); + const [{ isChecked }, updateArgs] = useArgs(); function onChange() { updateArgs({ isChecked: !isChecked }); diff --git a/docs/snippets/react/page-story-args-within-story.ts.mdx b/docs/snippets/react/page-story-args-within-story.ts.mdx index fb0fdff989a0..9c1dc3c601d1 100644 --- a/docs/snippets/react/page-story-args-within-story.ts.mdx +++ b/docs/snippets/react/page-story-args-within-story.ts.mdx @@ -18,8 +18,13 @@ export const Example = { isChecked: false, label: 'Switch Me!', }, + /** + * 👇 React things the Storybook function "useArgs" is a hook, but it's really not. + * Using a named capital-letter function prevents an ESLint warning related to this. + * Don't lint? You can use an arrow function instead. + */ render: function Render(args) { - const [{ isChecked }, updateArgs] = UseArgs(); + const [{ isChecked }, updateArgs] = useArgs(); function onChange() { updateArgs({ isChecked: !isChecked }); From 8add32d6d97614d82b64bdec03a6b627ccbef2bd Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Fri, 16 Jun 2023 15:21:47 -0500 Subject: [PATCH 016/154] fix mispelling in comments --- docs/snippets/react/page-story-args-within-story.js.mdx | 2 +- docs/snippets/react/page-story-args-within-story.ts.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/snippets/react/page-story-args-within-story.js.mdx b/docs/snippets/react/page-story-args-within-story.js.mdx index ceec5acabc65..8b8391d786d7 100644 --- a/docs/snippets/react/page-story-args-within-story.js.mdx +++ b/docs/snippets/react/page-story-args-within-story.js.mdx @@ -15,7 +15,7 @@ export const Example = { label: 'Switch Me!', }, /** - * 👇 React things the Storybook function "useArgs" is a hook, but it's really not. + * 👇 React believes the Storybook function "useArgs" is a hook, but it's really not. * Using a named capital-letter function prevents an ESLint warning related to this. * Don't lint? You can use an arrow function instead. */ diff --git a/docs/snippets/react/page-story-args-within-story.ts.mdx b/docs/snippets/react/page-story-args-within-story.ts.mdx index 9c1dc3c601d1..1e232015c992 100644 --- a/docs/snippets/react/page-story-args-within-story.ts.mdx +++ b/docs/snippets/react/page-story-args-within-story.ts.mdx @@ -19,7 +19,7 @@ export const Example = { label: 'Switch Me!', }, /** - * 👇 React things the Storybook function "useArgs" is a hook, but it's really not. + * 👇 React believes the Storybook function "useArgs" is a hook, but it's really not. * Using a named capital-letter function prevents an ESLint warning related to this. * Don't lint? You can use an arrow function instead. */ From f9e2e0d5d8161a29136e0046957e75ffd6122e03 Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Fri, 11 Aug 2023 16:05:10 -0500 Subject: [PATCH 017/154] add typescript 4.9 snippet --- .../react/page-story-args-within-story.js.mdx | 15 ++++---- .../page-story-args-within-story.ts-4-9.mdx | 35 +++++++++++++++++++ .../react/page-story-args-within-story.ts.mdx | 21 ++++++----- docs/writing-stories/args.md | 8 ++--- node_modules/.package-lock.json | 6 ++++ 5 files changed, 62 insertions(+), 23 deletions(-) create mode 100644 docs/snippets/react/page-story-args-within-story.ts-4-9.mdx create mode 100644 node_modules/.package-lock.json diff --git a/docs/snippets/react/page-story-args-within-story.js.mdx b/docs/snippets/react/page-story-args-within-story.js.mdx index 8b8391d786d7..282e81f79cf7 100644 --- a/docs/snippets/react/page-story-args-within-story.js.mdx +++ b/docs/snippets/react/page-story-args-within-story.js.mdx @@ -2,22 +2,21 @@ // my-component/component.stories.js|jsx import { useArgs } from '@storybook/preview-api'; -import { Switch } from '.'; +import { Checkbox } from './checkbox'; export default { - title: 'Inputs/Switch', - component: Switch, + title: 'Inputs/Checkbox', + component: Checkbox, }; export const Example = { args: { isChecked: false, - label: 'Switch Me!', + label: 'Try Me!', }, /** - * 👇 React believes the Storybook function "useArgs" is a hook, but it's really not. - * Using a named capital-letter function prevents an ESLint warning related to this. - * Don't lint? You can use an arrow function instead. + * 👇 To avoid linting issues, it is recommended to use a function with a capitalized name. + * If you are not concerned with linting, you may use an arrow function. */ render: function Render(args) { const [{ isChecked }, updateArgs] = useArgs(); @@ -26,7 +25,7 @@ export const Example = { updateArgs({ isChecked: !isChecked }); } - return ; + return ; }, }; ``` diff --git a/docs/snippets/react/page-story-args-within-story.ts-4-9.mdx b/docs/snippets/react/page-story-args-within-story.ts-4-9.mdx new file mode 100644 index 000000000000..5a23cb8f523e --- /dev/null +++ b/docs/snippets/react/page-story-args-within-story.ts-4-9.mdx @@ -0,0 +1,35 @@ +```ts +// my-component/component.stories.ts|tsx + +import { StoryObj, Meta } from '@storybook/react'; +import { useArgs } from '@storybook/preview-api'; +import { Checkbox } from './checkbox'; + +const meta = { + title: 'Inputs/Checkbox', + component: Checkbox, +} satisfies Meta; +export default meta; + +type Story = StoryObj; + +export const Example = { + args: { + isChecked: false, + label: 'Try Me!', + }, + /** + * 👇 To avoid linting issues, it is recommended to use a function with a capitalized name. + * If you are not concerned with linting, you may use an arrow function. + */ + render: function Render(args) { + const [{ isChecked }, updateArgs] = useArgs(); + + function onChange() { + updateArgs({ isChecked: !isChecked }); + } + + return ; + }, +} satisfies Story; +``` diff --git a/docs/snippets/react/page-story-args-within-story.ts.mdx b/docs/snippets/react/page-story-args-within-story.ts.mdx index 1e232015c992..137e37cbf3d6 100644 --- a/docs/snippets/react/page-story-args-within-story.ts.mdx +++ b/docs/snippets/react/page-story-args-within-story.ts.mdx @@ -3,25 +3,24 @@ import { StoryObj, Meta } from '@storybook/react'; import { useArgs } from '@storybook/preview-api'; -import { Switch } from '.'; +import { Checkbox } from './checkbox'; -const meta: Meta = { - title: 'Inputs/Switch', - component: Switch, +const meta: Meta = { + title: 'Inputs/Checkbox', + component: Checkbox, }; export default meta; -type Story = StoryObj; +type Story = StoryObj; -export const Example = { +export const Example: Story = { args: { isChecked: false, - label: 'Switch Me!', + label: 'Try Me!', }, /** - * 👇 React believes the Storybook function "useArgs" is a hook, but it's really not. - * Using a named capital-letter function prevents an ESLint warning related to this. - * Don't lint? You can use an arrow function instead. + * 👇 To avoid linting issues, it is recommended to use a function with a capitalized name. + * If you are not concerned with linting, you may use an arrow function. */ render: function Render(args) { const [{ isChecked }, updateArgs] = useArgs(); @@ -30,7 +29,7 @@ export const Example = { updateArgs({ isChecked: !isChecked }); } - return ; + return ; }, }; ``` diff --git a/docs/writing-stories/args.md b/docs/writing-stories/args.md index 6c6b98b1fbf7..dbf89e71aed7 100644 --- a/docs/writing-stories/args.md +++ b/docs/writing-stories/args.md @@ -215,14 +215,14 @@ Args specified through the URL will extend and override any default values of ar ## Setting args from within a story -Components with interactivity often need their containing component, or page, to respond to events, modify their state, then pass a changed arg back to the rendered component to reflect the change. For example, you would want a Switch component to be checked by a user and the arg shown in Storybook to reflect the change. This can be accomplished by using the `useArgs` hook exported by `@storybook/preview-api`: +Components with interactivity often need their containing component, or page, to respond to events, modify their state, then pass a changed arg back to the rendered component to reflect the change. For example, you would want a Checkbox component to be checked by a user and the arg shown in Storybook to reflect the change. This can be accomplished by using the `useArgs` hook exported by `@storybook/preview-api`: diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 000000000000..b157d40c0f7a --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "@storybook/root", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} From 44fa3c34c7667b5eef546afe9d4e58b20aa8aa35 Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Fri, 11 Aug 2023 16:09:27 -0500 Subject: [PATCH 018/154] removed added file. Why wasn't this excluded via .gitignore??? --- node_modules/.package-lock.json | 6 ------ 1 file changed, 6 deletions(-) delete mode 100644 node_modules/.package-lock.json diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json deleted file mode 100644 index b157d40c0f7a..000000000000 --- a/node_modules/.package-lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "@storybook/root", - "lockfileVersion": 3, - "requires": true, - "packages": {} -} From 504fefa0160a02b369318e9a820caf44fb2cbf1f Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Fri, 11 Aug 2023 16:14:47 -0500 Subject: [PATCH 019/154] modify text to align to pull request comment --- docs/writing-stories/args.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/writing-stories/args.md b/docs/writing-stories/args.md index dbf89e71aed7..c0a9bf0d2519 100644 --- a/docs/writing-stories/args.md +++ b/docs/writing-stories/args.md @@ -215,7 +215,7 @@ Args specified through the URL will extend and override any default values of ar ## Setting args from within a story -Components with interactivity often need their containing component, or page, to respond to events, modify their state, then pass a changed arg back to the rendered component to reflect the change. For example, you would want a Checkbox component to be checked by a user and the arg shown in Storybook to reflect the change. This can be accomplished by using the `useArgs` hook exported by `@storybook/preview-api`: +Interactive components often need to be controlled by their containing component or page to respond to events, modify their state and reflect those changes in the UI. For example, when a user toggles a switch component, the switch should be checked, and the arg shown in Storybook should reflect the change. To enable this, you can use the [`useArgs`](../addons/addons-api.md#useargs) API exported by `@storybook/preview-api`: From 41d8edf15fda19a3be37dd4e0a04e82b841cab82 Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Fri, 11 Aug 2023 16:43:41 -0500 Subject: [PATCH 020/154] remove link to incorrect api --- docs/writing-stories/args.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/writing-stories/args.md b/docs/writing-stories/args.md index c0a9bf0d2519..240b96dc3d4d 100644 --- a/docs/writing-stories/args.md +++ b/docs/writing-stories/args.md @@ -215,7 +215,7 @@ Args specified through the URL will extend and override any default values of ar ## Setting args from within a story -Interactive components often need to be controlled by their containing component or page to respond to events, modify their state and reflect those changes in the UI. For example, when a user toggles a switch component, the switch should be checked, and the arg shown in Storybook should reflect the change. To enable this, you can use the [`useArgs`](../addons/addons-api.md#useargs) API exported by `@storybook/preview-api`: +Interactive components often need to be controlled by their containing component or page to respond to events, modify their state and reflect those changes in the UI. For example, when a user toggles a switch component, the switch should be checked, and the arg shown in Storybook should reflect the change. To enable this, you can use the `useArgs` API exported by `@storybook/preview-api`: From d174979a6035394b42c20baef2bd0ae4811e12d3 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sun, 13 Aug 2023 14:49:57 +0800 Subject: [PATCH 021/154] Upgrade to react-docgen 6.0.2 --- code/frameworks/react-vite/package.json | 2 +- code/yarn.lock | 273 ++++++++++++++++++++++-- 2 files changed, 251 insertions(+), 24 deletions(-) diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index 810de99893dd..af7876ed0478 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -53,7 +53,7 @@ "@storybook/react": "7.1.0-alpha.37", "@vitejs/plugin-react": "^3.0.1", "magic-string": "^0.30.0", - "react-docgen": "6.0.0-alpha.3" + "react-docgen": "^6.0.2" }, "devDependencies": { "@types/node": "^16.0.0", diff --git a/code/yarn.lock b/code/yarn.lock index 100260faecdd..ac86b3d34443 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -365,6 +365,16 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/code-frame@npm:7.22.10" + dependencies: + "@babel/highlight": ^7.22.10 + chalk: ^2.4.2 + checksum: fc5fe681eda128f15b928287b6c8e2ccec45776b8662524945cde005fba725642cc47ab0cfef4e7ff9ba5acccb3e907eebc2b3a7f075b8b31b19011229170b27 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.21.4, @babel/compat-data@npm:^7.22.5": version: 7.22.5 resolution: "@babel/compat-data@npm:7.22.5" @@ -379,6 +389,13 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.22.9": + version: 7.22.9 + resolution: "@babel/compat-data@npm:7.22.9" + checksum: 1334264b041f8ad4e33036326970c9c26754eb5c04b3af6c223fe6da988cbb8a8542b5526f49ec1ac488210d2f710484a0e4bcd30256294ae3f261d0141febad + languageName: node + linkType: hard + "@babel/core@npm:7.21.4": version: 7.21.4 resolution: "@babel/core@npm:7.21.4" @@ -471,6 +488,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.18.9": + version: 7.22.10 + resolution: "@babel/core@npm:7.22.10" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.22.10 + "@babel/generator": ^7.22.10 + "@babel/helper-compilation-targets": ^7.22.10 + "@babel/helper-module-transforms": ^7.22.9 + "@babel/helpers": ^7.22.10 + "@babel/parser": ^7.22.10 + "@babel/template": ^7.22.5 + "@babel/traverse": ^7.22.10 + "@babel/types": ^7.22.10 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.2 + semver: ^6.3.1 + checksum: aebc08abfc4d4370d3023b1c5a22db2edd896ddbe21ed54f11c654660481f598b08fd456f9a5aa90cd2d81e0ea6767cd73f72fc11f7ad04d897f8fb20671cc1c + languageName: node + linkType: hard + "@babel/generator@npm:7.21.4": version: 7.21.4 resolution: "@babel/generator@npm:7.21.4" @@ -507,6 +547,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/generator@npm:7.22.10" + dependencies: + "@babel/types": ^7.22.10 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: 2f26ac64f0b606cd9e7799eb2bc42d371b378ba2cb3c7c92c01a3bfccca271371990bcd2dc67fee5547721ba3e1fa83ca03fe3aab30bdf417c3078b9759d2f10 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:7.18.6": version: 7.18.6 resolution: "@babel/helper-annotate-as-pure@npm:7.18.6" @@ -564,6 +616,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/helper-compilation-targets@npm:7.22.10" + dependencies: + "@babel/compat-data": ^7.22.9 + "@babel/helper-validator-option": ^7.22.5 + browserslist: ^4.21.9 + lru-cache: ^5.1.1 + semver: ^6.3.1 + checksum: edef207b819f491ded9462ac73858eadb155f4a0afe6cf3951459e47ad23b743ed56d7bd8a1b3f63fd25b39543db42ea58fea7b2193dcb4c98a511d7f1ad547a + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-create-class-features-plugin@npm:7.22.5" @@ -711,6 +776,21 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.22.9": + version: 7.22.9 + resolution: "@babel/helper-module-transforms@npm:7.22.9" + dependencies: + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-module-imports": ^7.22.5 + "@babel/helper-simple-access": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/helper-validator-identifier": ^7.22.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 1844dc2c9049552d13d40385cb196704a754feab60ef8c370a5e1c431a4f64b0ddd7bb1dddaa5c98288cafd5c08cd4d8e6d5aba9a11e1133b8b999ab7c9defd1 + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" @@ -800,6 +880,15 @@ __metadata: languageName: node linkType: hard +"@babel/helper-split-export-declaration@npm:^7.22.6": + version: 7.22.6 + resolution: "@babel/helper-split-export-declaration@npm:7.22.6" + dependencies: + "@babel/types": ^7.22.5 + checksum: d83e4b623eaa9622c267d3c83583b72f3aac567dc393dda18e559d79187961cb29ae9c57b2664137fc3d19508370b12ec6a81d28af73a50e0846819cb21c6e44 + languageName: node + linkType: hard + "@babel/helper-string-parser@npm:^7.21.5": version: 7.21.5 resolution: "@babel/helper-string-parser@npm:7.21.5" @@ -869,6 +958,28 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/helpers@npm:7.22.10" + dependencies: + "@babel/template": ^7.22.5 + "@babel/traverse": ^7.22.10 + "@babel/types": ^7.22.10 + checksum: 14c2f4fe0663bf4042b82a09ea6eaa53b0844ed04c70d69be8fff0db504ab25a729c72ff427e84320a328e19853b4a8d9897a3d2379c0e70751053e6e23a7992 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/highlight@npm:7.22.10" + dependencies: + "@babel/helper-validator-identifier": ^7.22.5 + chalk: ^2.4.2 + js-tokens: ^4.0.0 + checksum: ac321ed90d37f76df74a44addc1692658eff64060375550bfb64919959573b14000ac83744e1ed30cc51b8b2f1291b0f0e98a3398d3c33c9c4548dd326a898fc + languageName: node + linkType: hard + "@babel/highlight@npm:^7.22.5": version: 7.22.5 resolution: "@babel/highlight@npm:7.22.5" @@ -898,6 +1009,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/parser@npm:7.22.10" + bin: + parser: ./bin/babel-parser.js + checksum: 22de4b5b2e20dd5b44a73963e5fceef44501bacdd14f0b3b96fc16975826553c83c3e424e2ea906b4f2fb8c2129b176bcee33ae99e30de9006ceb28ded5c6ac7 + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.18.6, @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.22.5" @@ -2494,6 +2614,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/traverse@npm:7.22.10" + dependencies: + "@babel/code-frame": ^7.22.10 + "@babel/generator": ^7.22.10 + "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-function-name": ^7.22.5 + "@babel/helper-hoist-variables": ^7.22.5 + "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/parser": ^7.22.10 + "@babel/types": ^7.22.10 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: 8e8b63b053962908408ed9d954810e93f241122222db115327ed5876d020f420fc115ef2d79623c2a4928447ddc002ec220be2a152b241d19de2480c88e10cfb + languageName: node + linkType: hard + "@babel/traverse@npm:^7.21.5": version: 7.21.5 resolution: "@babel/traverse@npm:7.21.5" @@ -2523,6 +2661,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.18.9, @babel/types@npm:^7.22.10": + version: 7.22.10 + resolution: "@babel/types@npm:7.22.10" + dependencies: + "@babel/helper-string-parser": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.5 + to-fast-properties: ^2.0.0 + checksum: 34aad930339664a3a5423d6f1d6d2738e30cd73786ff6dfd0a40bfc8f45017e70e24ef397877c86f4e7dee8ada0a53b8fd9f3d86bc0137d09a44e4b3733090f7 + languageName: node + linkType: hard + "@babel/types@npm:^7.21.5": version: 7.21.5 resolution: "@babel/types@npm:7.21.5" @@ -7100,7 +7249,7 @@ __metadata: "@types/node": ^16.0.0 "@vitejs/plugin-react": ^3.0.1 magic-string: ^0.30.0 - react-docgen: 6.0.0-alpha.3 + react-docgen: ^6.0.2 typescript: ~4.9.3 vite: ^4.0.0 peerDependencies: @@ -8140,6 +8289,19 @@ __metadata: languageName: node linkType: hard +"@types/babel__core@npm:^7.18.0": + version: 7.20.1 + resolution: "@types/babel__core@npm:7.20.1" + dependencies: + "@babel/parser": ^7.20.7 + "@babel/types": ^7.20.7 + "@types/babel__generator": "*" + "@types/babel__template": "*" + "@types/babel__traverse": "*" + checksum: c83402fc7ef8abd1f94ffe350b8bde9a35ccb6c3624bc8e39b6a7e1a675d112f6b70ac1b05391a579ca3b126baffe66b0b94f954edef086c4482b97d293c3659 + languageName: node + linkType: hard + "@types/babel__generator@npm:*": version: 7.6.4 resolution: "@types/babel__generator@npm:7.6.4" @@ -8173,7 +8335,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6, @types/babel__traverse@npm:^7.18.0": version: 7.20.1 resolution: "@types/babel__traverse@npm:7.20.1" dependencies: @@ -8298,6 +8460,13 @@ __metadata: languageName: node linkType: hard +"@types/doctrine@npm:^0.0.5": + version: 0.0.5 + resolution: "@types/doctrine@npm:0.0.5" + checksum: 9b38d1b110e94fa34632e21f83b64ed05116f6349b5666c11bc0d4081c793f9b0be25b9d8b34df0ec38d440741836c17d4c84576e22dc00a18fe972f96688bf3 + languageName: node + linkType: hard + "@types/ejs@npm:^3.1.1": version: 3.1.2 resolution: "@types/ejs@npm:3.1.2" @@ -8863,6 +9032,13 @@ __metadata: languageName: node linkType: hard +"@types/resolve@npm:^1.20.2": + version: 1.20.2 + resolution: "@types/resolve@npm:1.20.2" + checksum: c5b7e1770feb5ccfb6802f6ad82a7b0d50874c99331e0c9b259e415e55a38d7a86ad0901c57665d93f75938be2a6a0bc9aa06c9749192cadb2e4512800bbc6e6 + languageName: node + linkType: hard + "@types/responselike@npm:^1.0.0": version: 1.0.0 resolution: "@types/responselike@npm:1.0.0" @@ -11735,6 +11911,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.21.9": + version: 4.21.10 + resolution: "browserslist@npm:4.21.10" + dependencies: + caniuse-lite: ^1.0.30001517 + electron-to-chromium: ^1.4.477 + node-releases: ^2.0.13 + update-browserslist-db: ^1.0.11 + bin: + browserslist: cli.js + checksum: e8c98496e5f2a5128d0e2f1f186dc0416bfc49c811e568b19c9e07a56cccc1f7f415fa4f532488e6a13dfacbe3332a9b55b152082ff125402696a11a158a0894 + languageName: node + linkType: hard + "bs-logger@npm:0.x, bs-logger@npm:^0.2.6": version: 0.2.6 resolution: "bs-logger@npm:0.2.6" @@ -12070,6 +12260,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001517": + version: 1.0.30001520 + resolution: "caniuse-lite@npm:1.0.30001520" + checksum: 48daf0d55e72e343f09fe17cbd47303a5bf4d65f6ec08ef68cc998c4fed073c9789d710e296496140e8179138dccb4667b786e260ca5451e1663786ef889db3b + languageName: node + linkType: hard + "case-sensitive-paths-webpack-plugin@npm:^2.4.0": version: 2.4.0 resolution: "case-sensitive-paths-webpack-plugin@npm:2.4.0" @@ -14356,6 +14553,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.4.477": + version: 1.4.490 + resolution: "electron-to-chromium@npm:1.4.490" + checksum: d205e3c9f4bf14cbaaa2be5bf3f3d498e161ec0cc6f10da7bfdd2c355e4ae1937244335fabe8b376e970d14ba2b2c415aa2a2d89ea61c000f54e6ed137853bb9 + languageName: node + linkType: hard + "elliptic@npm:^6.5.3": version: 6.5.4 resolution: "elliptic@npm:6.5.4" @@ -22221,7 +22425,7 @@ __metadata: languageName: node linkType: hard -"min-indent@npm:^1.0.0": +"min-indent@npm:^1.0.0, min-indent@npm:^1.0.1": version: 1.0.1 resolution: "min-indent@npm:1.0.1" checksum: 7e207bd5c20401b292de291f02913230cb1163abca162044f7db1d951fa245b174dc00869d40dd9a9f32a885ad6a5f3e767ee104cf278f399cb4e92d3f582d5c @@ -22978,6 +23182,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.13": + version: 2.0.13 + resolution: "node-releases@npm:2.0.13" + checksum: 2fb44bf70fc949d27f3a48a7fd1a9d1d603ddad4ccd091f26b3fb8b1da976605d919330d7388ccd55ca2ade0dc8b2e12841ba19ef249c8bb29bf82532d401af7 + languageName: node + linkType: hard + "nopt@npm:^6.0.0": version: 6.0.0 resolution: "nopt@npm:6.0.0" @@ -25714,26 +25925,6 @@ __metadata: languageName: node linkType: hard -"react-docgen@npm:6.0.0-alpha.3": - version: 6.0.0-alpha.3 - resolution: "react-docgen@npm:6.0.0-alpha.3" - dependencies: - "@babel/core": ^7.7.5 - "@babel/generator": ^7.12.11 - ast-types: ^0.14.2 - commander: ^2.19.0 - doctrine: ^3.0.0 - estree-to-babel: ^3.1.0 - neo-async: ^2.6.1 - node-dir: ^0.1.10 - resolve: ^1.17.0 - strip-indent: ^3.0.0 - bin: - react-docgen: bin/react-docgen.js - checksum: 284bba5528d5e9084c3ed36b2d2fec8fc5d55f3fb8ca544ec3a0d1ab98c39001ecb7db6e03a1088b82eb3d750c1343cde2fc9b7729540277eda40e10f38912d8 - languageName: node - linkType: hard - "react-docgen@npm:^5.0.0": version: 5.4.3 resolution: "react-docgen@npm:5.4.3" @@ -25754,6 +25945,24 @@ __metadata: languageName: node linkType: hard +"react-docgen@npm:^6.0.2": + version: 6.0.2 + resolution: "react-docgen@npm:6.0.2" + dependencies: + "@babel/core": ^7.18.9 + "@babel/traverse": ^7.18.9 + "@babel/types": ^7.18.9 + "@types/babel__core": ^7.18.0 + "@types/babel__traverse": ^7.18.0 + "@types/doctrine": ^0.0.5 + "@types/resolve": ^1.20.2 + doctrine: ^3.0.0 + resolve: ^1.22.1 + strip-indent: ^4.0.0 + checksum: 040f9b460982d6b4690ed5381b6181c58f6a2cd9cd6d70cfc449663527eaf93908cc6f7f06b018d9bc345b65d0cb87cb3d05541403556f20c1feab28342b0b4c + languageName: node + linkType: hard + "react-dom@npm:^16.8.0": version: 16.14.0 resolution: "react-dom@npm:16.14.0" @@ -27492,6 +27701,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d + languageName: node + linkType: hard + "semver@npm:~7.0.0": version: 7.0.0 resolution: "semver@npm:7.0.0" @@ -28577,6 +28795,15 @@ __metadata: languageName: node linkType: hard +"strip-indent@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-indent@npm:4.0.0" + dependencies: + min-indent: ^1.0.1 + checksum: 6b1fb4e22056867f5c9e7a6f3f45922d9a2436cac758607d58aeaac0d3b16ec40b1c43317de7900f1b8dd7a4107352fa47fb960f2c23566538c51e8585c8870e + languageName: node + linkType: hard + "strip-json-comments@npm:^2.0.0": version: 2.0.1 resolution: "strip-json-comments@npm:2.0.1" From c6ab522efec8261e7c1864ab4ee9c2fb19fc030d Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sun, 13 Aug 2023 18:34:39 +0800 Subject: [PATCH 022/154] Docs-tools: Fix react-docgen enum handling --- .../src/argTypes/convert/proptypes/convert.ts | 12 ++---------- .../src/argTypes/convert/typescript/convert.ts | 13 +++++++++++++ .../src/argTypes/convert/typescript/types.ts | 2 +- code/lib/docs-tools/src/argTypes/convert/utils.ts | 7 +++++++ 4 files changed, 23 insertions(+), 11 deletions(-) diff --git a/code/lib/docs-tools/src/argTypes/convert/proptypes/convert.ts b/code/lib/docs-tools/src/argTypes/convert/proptypes/convert.ts index 6caa89a5d268..82b85c0333e1 100644 --- a/code/lib/docs-tools/src/argTypes/convert/proptypes/convert.ts +++ b/code/lib/docs-tools/src/argTypes/convert/proptypes/convert.ts @@ -2,7 +2,7 @@ import mapValues from 'lodash/mapValues.js'; import type { SBType } from '@storybook/types'; import type { PTType } from './types'; -import { includesQuotes, trimQuotes } from '../utils'; +import { parseLiteral } from '../utils'; const SIGNATURE_REGEXP = /^\(.*\) => /; @@ -13,15 +13,7 @@ export const convert = (type: PTType): SBType | any => { switch (name) { case 'enum': { - const values = computed - ? value - : value.map((v: PTType) => { - const trimmedValue = trimQuotes(v.value); - - return includesQuotes(v.value) || Number.isNaN(Number(trimmedValue)) - ? trimmedValue - : Number(trimmedValue); - }); + const values = computed ? value : value.map((v: PTType) => parseLiteral(v.value)); return { ...base, name, value: values }; } case 'string': diff --git a/code/lib/docs-tools/src/argTypes/convert/typescript/convert.ts b/code/lib/docs-tools/src/argTypes/convert/typescript/convert.ts index 4683b933f845..ffec5b18db20 100644 --- a/code/lib/docs-tools/src/argTypes/convert/typescript/convert.ts +++ b/code/lib/docs-tools/src/argTypes/convert/typescript/convert.ts @@ -1,6 +1,7 @@ /* eslint-disable no-case-declarations */ import type { SBType } from '@storybook/types'; import type { TSType, TSSigType } from './types'; +import { parseLiteral } from '../utils'; const convertSig = (type: TSSigType) => { switch (type.type) { @@ -37,6 +38,18 @@ export const convert = (type: TSType): SBType | void => { case 'signature': return { ...base, ...convertSig(type) }; case 'union': + let result; + if (type.elements.every((element) => element.name === 'literal')) { + result = { + ...base, + name: 'enum', + // @ts-expect-error fix types + value: type.elements.map((v) => parseLiteral(v.value)), + }; + } else { + result = { ...base, name, value: type.elements.map(convert) }; + } + return result; case 'intersection': return { ...base, name, value: type.elements.map(convert) }; default: diff --git a/code/lib/docs-tools/src/argTypes/convert/typescript/types.ts b/code/lib/docs-tools/src/argTypes/convert/typescript/types.ts index dee016d76734..aed18f3f4160 100644 --- a/code/lib/docs-tools/src/argTypes/convert/typescript/types.ts +++ b/code/lib/docs-tools/src/argTypes/convert/typescript/types.ts @@ -33,7 +33,7 @@ type TSObjectSigType = TSBaseType & { }; type TSScalarType = TSBaseType & { - name: 'any' | 'boolean' | 'number' | 'void' | 'string' | 'symbol'; + name: 'any' | 'boolean' | 'number' | 'void' | 'string' | 'symbol' | 'literal'; }; type TSArrayType = TSBaseType & { diff --git a/code/lib/docs-tools/src/argTypes/convert/utils.ts b/code/lib/docs-tools/src/argTypes/convert/utils.ts index 6523490388a8..8af215e69aec 100644 --- a/code/lib/docs-tools/src/argTypes/convert/utils.ts +++ b/code/lib/docs-tools/src/argTypes/convert/utils.ts @@ -1,3 +1,10 @@ const QUOTE_REGEX = /^['"]|['"]$/g; export const trimQuotes = (str: string) => str.replace(QUOTE_REGEX, ''); export const includesQuotes = (str: string) => QUOTE_REGEX.test(str); +export const parseLiteral = (str: string) => { + const trimmedValue = trimQuotes(str); + + return includesQuotes(str) || Number.isNaN(Number(trimmedValue)) + ? trimmedValue + : Number(trimmedValue); +}; From de8ab0988a98aaeb4732c010e8ae5860ebd450cf Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Wed, 23 Aug 2023 14:00:19 +0200 Subject: [PATCH 023/154] add migration notes for storyIndexers --- MIGRATION.md | 65 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 56 insertions(+), 9 deletions(-) diff --git a/MIGRATION.md b/MIGRATION.md index 5022eefb59bd..0736a8c3e0ed 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -1,7 +1,9 @@

Migration

+- [From version 7.3.0 to 7.4.0](#from-version-730-to-740) + - [`storyIndexers` is replaced with `experimental_indexers`](#storyindexers-is-replaced-with-experimental_indexers) - [From version 7.0.0 to 7.2.0](#from-version-700-to-720) - - [Addon API is more type-strict](#addon-api-is-more-type-strict) + - [Addon API is more type-strict](#addon-api-is-more-type-strict) - [From version 6.5.x to 7.0.0](#from-version-65x-to-700) - [7.0 breaking changes](#70-breaking-changes) - [Dropped support for Node 15 and below](#dropped-support-for-node-15-and-below) @@ -27,7 +29,7 @@ - [Deploying build artifacts](#deploying-build-artifacts) - [Dropped support for file URLs](#dropped-support-for-file-urls) - [Serving with nginx](#serving-with-nginx) - - [Ignore story files from node\_modules](#ignore-story-files-from-node_modules) + - [Ignore story files from node_modules](#ignore-story-files-from-node_modules) - [7.0 Core changes](#70-core-changes) - [7.0 feature flags removed](#70-feature-flags-removed) - [Story context is prepared before for supporting fine grained updates](#story-context-is-prepared-before-for-supporting-fine-grained-updates) @@ -39,7 +41,7 @@ - [Addon-interactions: Interactions debugger is now default](#addon-interactions-interactions-debugger-is-now-default) - [7.0 Vite changes](#70-vite-changes) - [Vite builder uses Vite config automatically](#vite-builder-uses-vite-config-automatically) - - [Vite cache moved to node\_modules/.cache/.vite-storybook](#vite-cache-moved-to-node_modulescachevite-storybook) + - [Vite cache moved to node_modules/.cache/.vite-storybook](#vite-cache-moved-to-node_modulescachevite-storybook) - [7.0 Webpack changes](#70-webpack-changes) - [Webpack4 support discontinued](#webpack4-support-discontinued) - [Babel mode v7 exclusively](#babel-mode-v7-exclusively) @@ -89,7 +91,7 @@ - [Dropped addon-docs manual babel configuration](#dropped-addon-docs-manual-babel-configuration) - [Dropped addon-docs manual configuration](#dropped-addon-docs-manual-configuration) - [Autoplay in docs](#autoplay-in-docs) - - [Removed STORYBOOK\_REACT\_CLASSES global](#removed-storybook_react_classes-global) + - [Removed STORYBOOK_REACT_CLASSES global](#removed-storybook_react_classes-global) - [7.0 Deprecations and default changes](#70-deprecations-and-default-changes) - [storyStoreV7 enabled by default](#storystorev7-enabled-by-default) - [`Story` type deprecated](#story-type-deprecated) @@ -302,6 +304,50 @@ - [Packages renaming](#packages-renaming) - [Deprecated embedded addons](#deprecated-embedded-addons) +## From version 7.3.0 to 7.4.0 + +#### `storyIndexers` is replaced with `experimental_indexers` + +Defining custom indexers for stories has become a more official - yet still experimental - API which is now configured at `experimental_indexers` instead of `storyIndexers` in `main.ts`. `storyIndexers` has been deprecated and will be fully removed in version 8.0.0. + +The new experimental indexers are documented [here](TODO!!!). The most notable change from `storyIndexers` is that the indexer must now return a list of [`IndexInput`](https://github.com/storybookjs/storybook/blob/next/code/lib/types/src/modules/indexer.ts#L104-L148) instead of `CsfFile`. It's possible to construct an `IndexInput` from a `CsfFile` using the `CsfFile.indexInputs` getter. + +That means you can convert an existing story indexer like this: + +```diff +// .storybook/main.ts + +import { readFileSync } from 'fs'; +import { loadCsf } from '@storybook/csf-tools'; + +export default { +- storyIndexers = (indexers) => { +- const indexer = async (fileName, opts) => { ++ experimental_indexers = (indexers) => { ++ const index = async (fileName, opts) => { + const code = readFileSync(fileName, { encoding: 'utf-8' }); + const makeTitle = (userTitle) => { + // Do something with the auto title retrieved by Storybook + return userTitle; + }; + + // Parse the CSF file with makeTitle as a custom context +- return loadCsf(code, { ...compilationOptions, makeTitle, fileName }).parse(); ++ return loadCsf(code, { ...compilationOptions, makeTitle, fileName }).parse().indexInputs; + }; + + return [ + { + test: /(stories|story)\.[tj]sx?$/, +- indexer, ++ index, + }, + ...(indexers || []), + ]; + }, +}; +``` + ## From version 7.0.0 to 7.2.0 #### Addon API is more type-strict @@ -311,6 +357,7 @@ When registering an addon using `@storybook/manager-api`, the addon API is now m The `type` property is now a required field, and the `id` property should not be set anymore. Here's a correct example: + ```tsx import { addons, types } from '@storybook/manager-api'; @@ -318,7 +365,7 @@ addons.register('my-addon', () => { addons.add('my-addon/panel', { type: types.PANEL, title: 'My Addon', - render: ({ active }) => active ?
Hello World
: null, + render: ({ active }) => (active ?
Hello World
: null), }); }); ``` @@ -869,16 +916,16 @@ Given the following `main.js`: ```js export default { - stories: ['../**/*.stories.*'] -} + stories: ['../**/*.stories.*'], +}; ``` If you want to restore the previous behavior to include `node_modules`, you can update it to: ```js export default { - stories: ['../**/*.stories.*', '../**/node_modules/**/*.stories.*'] -} + stories: ['../**/*.stories.*', '../**/node_modules/**/*.stories.*'], +}; ``` The first glob would have node_modules automatically excluded by Storybook, and the second glob would include all stories that are under a nested `node_modules` directory. From 8b81a5f3657e52384c31f6117372514e1d22026d Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Wed, 23 Aug 2023 14:03:22 +0200 Subject: [PATCH 024/154] deprecate storyIndexers --- code/lib/core-server/src/utils/StoryIndexGenerator.ts | 10 +++++----- code/lib/types/src/modules/core-common.ts | 2 +- code/lib/types/src/modules/indexer.ts | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/code/lib/core-server/src/utils/StoryIndexGenerator.ts b/code/lib/core-server/src/utils/StoryIndexGenerator.ts index d2a195a31463..7a501a95a5f0 100644 --- a/code/lib/core-server/src/utils/StoryIndexGenerator.ts +++ b/code/lib/core-server/src/utils/StoryIndexGenerator.ts @@ -25,7 +25,7 @@ import type { } from '@storybook/types'; import { userOrAutoTitleFromSpecifier, sortStoriesV7 } from '@storybook/preview-api'; import { commonGlobOptions, normalizeStoryPath } from '@storybook/core-common'; -import { logger, once } from '@storybook/node-logger'; +import { deprecate, logger, once } from '@storybook/node-logger'; import { getStorySortParameter } from '@storybook/csf-tools'; import { storyNameFromExport, toId } from '@storybook/csf'; import { analyze } from '@storybook/docs-mdx'; @@ -120,10 +120,10 @@ export class StoryIndexGenerator { ) { this.specifierToCache = new Map(); if (options.storyIndexers.length > 1) { - // TODO: write migration notes before enabling this warning - // deprecate( - // "'storyIndexers' is deprecated, please use 'indexers' instead. See migration notes at XXX" - // ); + deprecate( + dedent`'storyIndexers' is deprecated, please use 'experimental_indexers' instead. + Please refer to the migration guide at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storyindexers-is-replaced-with-experimental_indexers` + ); } } diff --git a/code/lib/types/src/modules/core-common.ts b/code/lib/types/src/modules/core-common.ts index 45d94e585eb3..0f2a9f54c271 100644 --- a/code/lib/types/src/modules/core-common.ts +++ b/code/lib/types/src/modules/core-common.ts @@ -369,7 +369,7 @@ export interface StorybookConfig { /** * Process CSF files for the story index. - * @soonDeprecated use {@link experimental_indexers} instead + * @deprecated use {@link experimental_indexers} instead */ storyIndexers?: PresetValue; diff --git a/code/lib/types/src/modules/indexer.ts b/code/lib/types/src/modules/indexer.ts index ccd1ddaef206..5346f7d41f5a 100644 --- a/code/lib/types/src/modules/indexer.ts +++ b/code/lib/types/src/modules/indexer.ts @@ -68,7 +68,7 @@ export type Indexer = BaseIndexer & { */ index: (fileName: string, options: IndexerOptions) => Promise; /** - * @soonDeprecated Use {@link index} instead + * @deprecated Use {@link index} instead */ indexer?: never; }; @@ -79,7 +79,7 @@ export type DeprecatedIndexer = BaseIndexer & { }; /** - * @soonDeprecated Use {@link Indexer} instead + * @deprecated Use {@link Indexer} instead */ export type StoryIndexer = Indexer | DeprecatedIndexer; From 01dea7ccf7d8524fb27f56dbe33456be352ef423 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 24 Aug 2023 10:58:04 +0200 Subject: [PATCH 025/154] add deprecation warnings and migration notes for storyStoreV6 --- MIGRATION.md | 21 +++++++++++++++++++ .../src/utils/StoryIndexGenerator.ts | 8 ++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/MIGRATION.md b/MIGRATION.md index 0736a8c3e0ed..31c92a7a8ca0 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -1,6 +1,7 @@

Migration

- [From version 7.3.0 to 7.4.0](#from-version-730-to-740) + - [`storyStoreV6` and `storiesOf` is deprecated](#storystorev6-and-storiesof-is-deprecated) - [`storyIndexers` is replaced with `experimental_indexers`](#storyindexers-is-replaced-with-experimental_indexers) - [From version 7.0.0 to 7.2.0](#from-version-700-to-720) - [Addon API is more type-strict](#addon-api-is-more-type-strict) @@ -306,6 +307,26 @@ ## From version 7.3.0 to 7.4.0 +#### `storyStoreV6` and `storiesOf` is deprecated + +`storyStoreV6` and `storiesOf` is deprecated and will be completely removed in Storybook 8.0.0. + +If you're using `storiesOf` we recommend you migrate your stories to CSF3 for a better story writing experience. +In many cases you can get started with the migration by using two migration scripts: + +```bash + +# 1. convert storiesOf to CSF +npx storybook@latest migrate storiesof-to-csf --glob="**/*.stories.tsx" --parser=tsx + +# 2. Convert CSF 2 to CSF 3 +npx storybook@latest migrate csf-2-to-3 --glob="**/*.stories.tsx" --parser=tsx +``` + +They won't do a perfect migration so we recommend that you manually go through each file afterwards. + +Alternatively you can build your own `storiesOf` implementation by leveraging the new (experimental) indexer API ([documentation](TODO), [migration](#storyindexers-is-replaced-with-experimental_indexers)). A proof of concept of such an implementation can be seen in [this StackBlitz demo](https://stackblitz.com/edit/github-h2rgfk?file=README.md). See the demo's `README.md` for a deeper explanation of the implementation. + #### `storyIndexers` is replaced with `experimental_indexers` Defining custom indexers for stories has become a more official - yet still experimental - API which is now configured at `experimental_indexers` instead of `storyIndexers` in `main.ts`. `storyIndexers` has been deprecated and will be fully removed in version 8.0.0. diff --git a/code/lib/core-server/src/utils/StoryIndexGenerator.ts b/code/lib/core-server/src/utils/StoryIndexGenerator.ts index 7a501a95a5f0..88393bde2e6a 100644 --- a/code/lib/core-server/src/utils/StoryIndexGenerator.ts +++ b/code/lib/core-server/src/utils/StoryIndexGenerator.ts @@ -122,7 +122,13 @@ export class StoryIndexGenerator { if (options.storyIndexers.length > 1) { deprecate( dedent`'storyIndexers' is deprecated, please use 'experimental_indexers' instead. - Please refer to the migration guide at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storyindexers-is-replaced-with-experimental_indexers` + Refer to the migration guide at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storyindexers-is-replaced-with-experimental_indexers` + ); + } + if (options.storyStoreV7 === false) { + deprecate( + dedent`storyStoreV6 is deprecated, please migrate to storyStoreV7 instead. + Refer to the migration guide at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storystorev6-and-storiesof-is-deprecated` ); } } From 1a5e4eea04c574dd30c3c40f84f1a610319fb920 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 24 Aug 2023 11:10:37 +0200 Subject: [PATCH 026/154] move deprecation warning to build and dev --- code/lib/core-server/src/build-static.ts | 10 +++++++++- code/lib/core-server/src/dev-server.ts | 9 +++++++++ code/lib/core-server/src/utils/StoryIndexGenerator.ts | 8 +------- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/code/lib/core-server/src/build-static.ts b/code/lib/core-server/src/build-static.ts index 810c871724fd..659dbf834767 100644 --- a/code/lib/core-server/src/build-static.ts +++ b/code/lib/core-server/src/build-static.ts @@ -2,7 +2,7 @@ import chalk from 'chalk'; import { copy, emptyDir, ensureDir } from 'fs-extra'; import { dirname, isAbsolute, join, resolve } from 'path'; import { global } from '@storybook/global'; -import { logger } from '@storybook/node-logger'; +import { deprecate, logger } from '@storybook/node-logger'; import { telemetry, getPrecedingUpgrade } from '@storybook/telemetry'; import type { BuilderOptions, @@ -23,6 +23,7 @@ import { import { ConflictingStaticDirConfigError } from '@storybook/core-events/server-errors'; import isEqual from 'lodash/isEqual.js'; +import dedent from 'ts-dedent'; import { outputStats } from './utils/output-stats'; import { copyAllStaticFiles, @@ -122,6 +123,13 @@ export async function buildStaticStandalone(options: BuildStaticStandaloneOption presets.apply('docs', {}), ]); + if (features?.storyStoreV7 === false) { + deprecate( + dedent`storyStoreV6 is deprecated, please migrate to storyStoreV7 instead. + - Refer to the migration guide at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storystorev6-and-storiesof-is-deprecated` + ); + } + const fullOptions: Options = { ...options, presets, diff --git a/code/lib/core-server/src/dev-server.ts b/code/lib/core-server/src/dev-server.ts index 2eb1ea420cda..2941c1a06c73 100644 --- a/code/lib/core-server/src/dev-server.ts +++ b/code/lib/core-server/src/dev-server.ts @@ -5,7 +5,9 @@ import invariant from 'tiny-invariant'; import type { CoreConfig, Options, StorybookConfig } from '@storybook/types'; import { logConfig } from '@storybook/core-common'; +import { deprecate } from '@storybook/node-logger'; +import dedent from 'ts-dedent'; import { getMiddleware } from './utils/middleware'; import { getServerAddresses } from './utils/server-address'; import { getServer } from './utils/server-init'; @@ -35,6 +37,13 @@ export async function storybookDevServer(options: Options) { getServerChannel(server) ); + if (features?.storyStoreV7 === false) { + deprecate( + dedent`storyStoreV6 is deprecated, please migrate to storyStoreV7 instead. + - Refer to the migration guide at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storystorev6-and-storiesof-is-deprecated` + ); + } + let indexError: Error | undefined; // try get index generator, if failed, send telemetry without storyCount, then rethrow the error const initializedStoryIndexGenerator: Promise = diff --git a/code/lib/core-server/src/utils/StoryIndexGenerator.ts b/code/lib/core-server/src/utils/StoryIndexGenerator.ts index 88393bde2e6a..bdcb626a3132 100644 --- a/code/lib/core-server/src/utils/StoryIndexGenerator.ts +++ b/code/lib/core-server/src/utils/StoryIndexGenerator.ts @@ -122,13 +122,7 @@ export class StoryIndexGenerator { if (options.storyIndexers.length > 1) { deprecate( dedent`'storyIndexers' is deprecated, please use 'experimental_indexers' instead. - Refer to the migration guide at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storyindexers-is-replaced-with-experimental_indexers` - ); - } - if (options.storyStoreV7 === false) { - deprecate( - dedent`storyStoreV6 is deprecated, please migrate to storyStoreV7 instead. - Refer to the migration guide at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storystorev6-and-storiesof-is-deprecated` + - Refer to the migration guide at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storyindexers-is-replaced-with-experimental_indexers` ); } } From eb4d699434bd760a6833aa03e68596007335e502 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 24 Aug 2023 11:24:56 +0200 Subject: [PATCH 027/154] update docs snippets for indexers --- docs/snippets/common/storybook-main-csf-indexer.ts.mdx | 8 ++++---- .../common/storybook-main-story-indexer-main.ts.mdx | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/snippets/common/storybook-main-csf-indexer.ts.mdx b/docs/snippets/common/storybook-main-csf-indexer.ts.mdx index 09f6f85f02e9..0c533f8152ee 100644 --- a/docs/snippets/common/storybook-main-csf-indexer.ts.mdx +++ b/docs/snippets/common/storybook-main-csf-indexer.ts.mdx @@ -5,16 +5,16 @@ import { readFileSync } from 'fs'; import { loadCsf } from '@storybook/csf-tools'; export default { - storyIndexers = (indexers) => { - const indexer = async (fileName, opts) => { + experimental_indexers = (indexers) => { + const index = async (fileName, opts) => { const code = readFileSync(fileName, { encoding: 'utf-8' }); - return loadCsf(code, { ...opts, fileName }).parse(); + return loadCsf(code, { ...opts, fileName }).parse().indexInputs; }; return [ { test: /(stories|story)\.[tj]sx?$/, - indexer, + index, }, ...(indexers || []), ]; diff --git a/docs/snippets/common/storybook-main-story-indexer-main.ts.mdx b/docs/snippets/common/storybook-main-story-indexer-main.ts.mdx index 7c4885028a5d..77c9363b4f62 100644 --- a/docs/snippets/common/storybook-main-story-indexer-main.ts.mdx +++ b/docs/snippets/common/storybook-main-story-indexer-main.ts.mdx @@ -9,8 +9,8 @@ import type { StorybookConfig } from '@storybook/your-framework'; import { parseCode } from './parseCode'; const config: StorybookConfig = { - storyIndexers: (indexers, addonOptions) => { - const indexer = async (fileName, compilationOptions) => { + experimental_indexers: (indexers, addonOptions) => { + const index = async (fileName, compilationOptions) => { const code = parseCode(fileName, addonOptions); const makeTitle = (userTitle) => { // Do something with the auto title retrieved by Storybook @@ -18,13 +18,13 @@ const config: StorybookConfig = { }; // Parse the CSF file with makeTitle as a custom context - return loadCsf(code, { ...compilationOptions, makeTitle, fileName }).parse(); + return loadCsf(code, { ...compilationOptions, makeTitle, fileName }).parse().indexInputs; }; return [ { test: /\.(md|html)$/, - indexer, + index, }, ...(indexers || []), ]; From f5430d37636a711c7dcc368a0bf36dc36829ab7d Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 28 Aug 2023 15:37:37 +0200 Subject: [PATCH 028/154] rename release preparement workflows --- ...release.yml => prepare-hotfix-release.yml} | 4 +- ...rerelease.yml => prepare-next-release.yml} | 2 +- CONTRIBUTING/RELEASING.md | 70 ++++++++++--------- scripts/release/generate-pr-description.ts | 6 +- 4 files changed, 44 insertions(+), 38 deletions(-) rename .github/workflows/{prepare-patch-release.yml => prepare-hotfix-release.yml} (99%) rename .github/workflows/{prepare-prerelease.yml => prepare-next-release.yml} (99%) diff --git a/.github/workflows/prepare-patch-release.yml b/.github/workflows/prepare-hotfix-release.yml similarity index 99% rename from .github/workflows/prepare-patch-release.yml rename to .github/workflows/prepare-hotfix-release.yml index c88022c7ea01..6ee8d3091c18 100644 --- a/.github/workflows/prepare-patch-release.yml +++ b/.github/workflows/prepare-hotfix-release.yml @@ -16,8 +16,8 @@ concurrency: cancel-in-progress: true jobs: - prepare-patch-pull-request: - name: Prepare patch pull request + prepare-hotfix-pull-request: + name: Prepare hotfix pull request runs-on: ubuntu-latest environment: release defaults: diff --git a/.github/workflows/prepare-prerelease.yml b/.github/workflows/prepare-next-release.yml similarity index 99% rename from .github/workflows/prepare-prerelease.yml rename to .github/workflows/prepare-next-release.yml index 1250aedcfaa3..42695e823cc6 100644 --- a/.github/workflows/prepare-prerelease.yml +++ b/.github/workflows/prepare-next-release.yml @@ -34,7 +34,7 @@ concurrency: cancel-in-progress: true jobs: - prepare-prerelease-pull-request: + prepare-next-pull-request: name: Prepare prerelease pull request runs-on: ubuntu-latest environment: release diff --git a/CONTRIBUTING/RELEASING.md b/CONTRIBUTING/RELEASING.md index 0997b757b6ea..e81029088f8c 100644 --- a/CONTRIBUTING/RELEASING.md +++ b/CONTRIBUTING/RELEASING.md @@ -8,8 +8,8 @@ - [Introduction](#introduction) - [Branches](#branches) - [Release Pull Requests](#release-pull-requests) - - [Prereleases](#prereleases) - - [Patch Releases](#patch-releases) + - [`next`-releases](#next-releases) + - [Hotfix Releases](#hotfix-releases) - [Publishing](#publishing) - [👉 How to Release](#-how-to-release) - [1. Find the Prepared Pull Request](#1-find-the-prepared-pull-request) @@ -21,6 +21,8 @@ - [7. See the "Publish" Workflow Finish](#7-see-the-publish-workflow-finish) - [Releasing Locally in an Emergency 🚨](#releasing-locally-in-an-emergency-) - [Canary Releases](#canary-releases) + - [With GitHub UI](#with-github-ui) + - [With the CLI](#with-the-cli) - [Versioning Scenarios](#versioning-scenarios) - [Prereleases - `7.1.0-alpha.12` -\> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13) - [Prerelease promotions - `7.1.0-alpha.13` -\> `7.1.0-beta.0`](#prerelease-promotions---710-alpha13---710-beta0) @@ -31,7 +33,7 @@ - [Prerelease of upcoming patch release - `7.0.20` -\> `7.0.21-alpha.0`](#prerelease-of-upcoming-patch-release---7020---7021-alpha0) - [Merges to `main` without versioning](#merges-to-main-without-versioning) - [FAQ](#faq) - - [When should I use the "patch" label?](#when-should-i-use-the-patch-label) + - [When should I use the "patch:yes" label?](#when-should-i-use-the-patchyes-label) - [How do I make changes to the release tooling/process?](#how-do-i-make-changes-to-the-release-toolingprocess) - [Why do I need to re-trigger workflows to update the changelog?](#why-do-i-need-to-re-trigger-workflows-to-update-the-changelog) - [Which combination of inputs creates the version bump I need?](#which-combination-of-inputs-creates-the-version-bump-i-need) @@ -50,8 +52,8 @@ The release process is based on automatically created "Release Pull Requests", t A designated Releaser -- which may rotate between core team members -- will go through the release process in the current Release PR. This process is implemented with NodeJS scripts in [`scripts/release`](../scripts/release/) and three GitHub Actions workflows: -- [Prepare Prerelease PR](../.github/workflows/prepare-prerelease.yml) -- [Prepare Patch PR](../.github/workflows/prepare-patch-release.yml) +- [Prepare `next` PR](../.github/workflows/prepare-next-release.yml) +- [Prepare hotfix PR](../.github/workflows/prepare-hotfix-release.yml) - [Publish](../.github/workflows/publish.yml) > **Note** @@ -115,18 +117,18 @@ A few key points to note in this flow: - The changelogs are committed during the preparation, but the packages are not version bumped and not published until later. - The release pull requests don't target their working branches (`next` and `main`), but rather `next-release` and `latest-release`. -### Prereleases +### `next`-releases > **Note** -> Workflow: [`prepare-prerelease.yml`](../.github/workflows/prepare-prerelease.yml) +> Workflow: [`prepare-next-release.yml`](../.github/workflows/prepare-next-release.yml) -Prereleases are prepared with all content from the `next` branch. The changelog is generated by examining the git history, and looking up all the commits and pull requests between the current prerelease (on `next-release`) and `HEAD` of `next`. +`next`-releases are prepared with all content from the `next` branch. The changelog is generated by examining the git history, and looking up all the commits and pull requests between the current prerelease (on `next-release`) and `HEAD` of `next`. The default versioning strategy is to increase the current prerelease number, as described in [Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13). If there is no prerelease number (i.e., we just released a new stable minor/major version), it will add one to a patch bump, so it would go from `7.2.0` to `7.2.1-0` by default. Prerelease PRs are only created if there are actual changes to release. Content labeled with "build" or "documentation" is [not considered "releasable"](#which-changes-are-considered-releasable-and-what-does-it-mean) and is not user-facing, so it doesn't make sense to create a release. This is explained in more detail in [Why are no release PRs being prepared?](#why-are-no-release-prs-being-prepared). -The preparation workflow will create a new branch from `next`, called `version-prerelease-from-`, and open a pull request targeting `next-release`. When the Releaser merges it, the [publish workflow](#publishing) will merge `next-release` into `next`. +The preparation workflow will create a new branch from `next`, called `version-next-from-`, and open a pull request targeting `next-release`. When the Releaser merges it, the [publish workflow](#publishing) will merge `next-release` into `next`. Here's an example of a workflow where a feature and a bugfix have been created and then released to a new `7.1.0-alpha.29` version. All the commits highlighted with square dots are the ones that will be considered when generating the changelog. @@ -157,20 +159,20 @@ gitGraph merge next-release ``` -### Patch Releases +### Hotfix Releases > **Note** -> Workflow: [`prepare-patch-release.yml`](../.github/workflows/prepare-patch-release.yml) +> Workflow: [`prepare-hotfix-release.yml`](../.github/workflows/prepare-hotfix-release.yml) -Patch releases are created by [cherry-picking](https://www.atlassian.com/git/tutorials/cherry-pick) any merged, unreleased pull requests that have the "**patch**" label applied to the `next` branch. The merge commit of said pull requests are cherry-picked. +Hotfix releases are created by [cherry-picking](https://www.atlassian.com/git/tutorials/cherry-pick) any merged, unreleased pull requests that have the "**patch:yes**" label applied to the `next` branch. The merge commit of said pull requests are cherry-picked. -Sometimes it is desired to pick pull requests back to `main` even if they are not considered "releasable". Unlike prerelease preparation, patch releases will not be canceled if the content is not releasable. It might not make sense to create a new patch release if the changes are only for documentation and/or internal build systems. However, getting the changes back to `main` is the only way to deploy the documentation to the production docs site. You may also want to cherry-pick changes to internal CI to fix issues. These are valid scenarios where you want to cherry-pick the changes without being blocked on "releasable" content. In these cases, where all cherry picks are non-releasable, the preparation workflow creates a "merging" pull request instead of a "releasing" pull request. This pull request does not bump versions or update changelogs; it just cherry-picks the changes and allows you to merge them into `latest-release` -> `main`. +Sometimes it is desired to pick pull requests back to `main` even if they are not considered "releasable". Unlike `next`-release preparation, hotfix releases will not be canceled if the content is not releasable. It might not make sense to create a new hotfix release if the changes are only for documentation and/or internal build systems. However, getting the changes back to `main` is the only way to deploy the documentation to the production docs site. You may also want to cherry-pick changes to internal CI to fix issues. These are valid scenarios where you want to cherry-pick the changes without being blocked on "releasable" content. In these cases, where all cherry picks are non-releasable, the preparation workflow creates a "merging" pull request instead of a "releasing" pull request. This pull request does not bump versions or update changelogs; it just cherry-picks the changes and allows you to merge them into `latest-release` -> `main`. The preparation workflow sequentially cherry-picks each patch pull request to its branch. If this cherry-picking fails due to conflicts or other reasons, it is ignored and the next pull request is processed. All failing cherry-picks are listed in the release pull request's description, for the Releaser to manually cherry-pick during the release process. This problem occurs more often when `main` and `next` diverge, i.e. the longer it has been since a stable major/minor release. -Similar to the prerelease flow, the preparation workflow for patches will create a new branch from `main` called `version-patch-from-`, and open a pull request that targets `latest-release`. When the pull request is merged by the Releaser, the [publish workflow](#publishing) will eventually merge `latest-release` into `main`. +Similar to the `next`-release flow, the preparation workflow for patches will create a new branch from `main` called `version-hotfix-from-`, and open a pull request that targets `latest-release`. When the pull request is merged by the Releaser, the [publish workflow](#publishing) will eventually merge `latest-release` into `main`. -Here is an example of a workflow where a feature and two bug fixes have been merged to `next`. Only the bug fixes have the "**patch**" label, so only those two go into the new `7.0.19` release. Note that it is the merge commits to `next` that are cherry-picked, not the commits on the bugfix branches. +Here is an example of a workflow where a feature and two bug fixes have been merged to `next`. Only the bug fixes have the "**patch:yes**" label, so only those two go into the new `7.0.19` release. Note that it is the merge commits to `next` that are cherry-picked, not the commits on the bugfix branches. ```mermaid gitGraph @@ -213,16 +215,15 @@ gitGraph > **Note** > Workflow: [`publish.yml`](../.github/workflows/publish.yml) -When either a prerelease or a patch release branch is merged into `main` or `next-release`, the publishing workflow is triggered. This workflow performs the following tasks: +When either a `next`-release or a hotfix release branch is merged into `latest-release` or `next-release`, the publishing workflow is triggered. This workflow performs the following tasks: 1. Bump versions of all packages according to the plan from the prepared PRs 2. Install dependencies and build all packages. 3. Publish packages to npm. -4. (If this is a patch release, add the "**picked**" label to all relevant pull requests.) +4. (If this is a hotfix release, add the "**patch:done**" label to all relevant pull requests.) 5. Create a new GitHub Release, including a version tag in the release branch (`latest-release` or `next-release`). 6. Merge the release branch into the core branch (`main` or `next`). -7. (If this is a patch release, copy the `CHANGELOG.md` changes from `main` to `next`.) -8. (If this is [a promotion from a prerelease to a stable release](#minormajor-releases---710-rc2---710-or-800-rc3---800), force push `next` to `main`.) +7. (If this is a hotfix release, copy the `CHANGELOG.md` changes from `main` to `next`.) The publish workflow runs in the "release" GitHub environment, which has the npm token required to publish packages to the `@storybook` npm organization. For security reasons, this environment can only be accessed from the four "core" branches: `main`, `next`, `latest-release` and `next-release`. @@ -300,10 +301,10 @@ When triggering the workflows, always choose the `next` branch as the base, unle The workflows can be triggered here: -- [Prepare prerelease PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-prerelease.yml) -- [Prepare patch PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml) +- [Prepare prerelease PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-next-release.yml) +- [Prepare patch PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-hotfix-release.yml) -Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - Prereleases](#prereleases). When triggering the prerelease workflow manually, you can optionally add inputs: +Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - `next`-releases](#next-releases). When triggering the prerelease workflow manually, you can optionally add inputs: ![Screenshot of triggering the prerelease workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) @@ -434,7 +435,7 @@ There are multiple types of releases that use the same principles, but are done ### Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13` -This is the default strategy for prereleases, there's nothing special needed to trigger this scenario. +This is the default strategy for `next`-releases, there's nothing special needed to trigger this scenario. ### Prerelease promotions - `7.1.0-alpha.13` -> `7.1.0-beta.0` @@ -445,14 +446,14 @@ To promote a prerelease to a new prerelease ID, during the [Re-trigger the Workf ### Minor/major releases - `7.1.0-rc.2` -> `7.1.0` or `8.0.0-rc.3` -> `8.0.0` -To promote a prerelease to a new prerelease ID, during the [Re-trigger the Workflow](#4-re-trigger-the-workflow) step, choose: +To promote a prerelease to a stable reelase, during the [Re-trigger the Workflow](#4-re-trigger-the-workflow) step, choose: - Release type: Patch - Prerelease ID: Leave empty The "Patch" release type ensures the current prerelease version gets promoted to a stable version without any major/minor/patch bumps. -This scenario is special as it turns the `next` branch into a stable branch (until the next prerelease). Therefore, this will also force push `next` to `main`, to ensure that `main` contains the latest stable release. Consequently, the history for `main` is lost. +This scenario is special as it will target `latest-release` instead of `next-release`, and thus merge into `main` when done, and not `next`. So it goes `next` -> `version-from- `latest-release` -> `main`. When this is done, the Releaser will need to trigger a new release on `next` that bumps the version to a new prerelease minor as described [just below](#first-prerelease-of-new-majorminor---710---720-alpha0-or-800-alpha0). ### First prerelease of new major/minor - `7.1.0` -> `7.2.0-alpha.0` or `8.0.0-alpha.0` @@ -463,7 +464,7 @@ This is the first prerelease after a stable major/minor has been released. The d ### Patch releases to stable - subset of `7.1.0-alpha.13` -> `7.0.14` -This is the default patch release scenario, which cherry picks patches to `main`. +This is the default hotfix release scenario, which cherry picks patches to `main`. ### Patch releases to earlier versions - subset of `7.1.0-alpha.13` -> `6.5.14` @@ -477,17 +478,17 @@ No process is defined for this. ### Merges to `main` without versioning -As described in more details in [the Patch Releases section](#patch-releases), there are scenarios where you want to patch [unreleasable](#which-changes-are-considered-releasable-and-what-does-it-mean) content back to `main` without bumping versions or publishing a new release. This happens automatically as long as all the unpicked patch pull requests have unreleasable labels. In that case the prepared patch pull request will change form slighty, to just cherry-picking the patches without bumping the versions. +As described in more details in [the Hotfix Releases section](#hotfix-releases), there are scenarios where you want to patch [unreleasable](#which-changes-are-considered-releasable-and-what-does-it-mean) content back to `main` without bumping versions or publishing a new release. This happens automatically as long as all the unpicked patch pull requests have unreleasable labels. In that case the prepared patch pull request will change form slighty, to just cherry-picking the patches without bumping the versions. ## FAQ -### When should I use the "patch" label? +### When should I use the "patch:yes" label? -Not all pull requests need to be patched back to the stable release, which is why only those with the **"patch"** label gets that treatment. But how do you decide whether or not a give pull requests should have that label? +Not all pull requests need to be patched back to the stable release, which is why only those with the **"patch:yes"** label gets that treatment. But how do you decide whether or not a give pull requests should have that label? -First of all, patches are only for fixes and minor improvements, and not completely new features. A pull request that introduces a new feature shouldn't be patched back to the stable release. +First of all, patches are only for important and time-sensitive fixes, and not minor improvements or completely new features. A pull request that introduces a new feature shouldn't be patched back to the stable release. -Second, any destabilizing changes shouldn't be patched back either. Breaking changes are reserved for major releases, but changes can be destabilizing without being strictly breaking, and those shouldn't be patched back either. An example is moving the settings panel in the manager to a completely different place, but with the same functionality. Many wouldn't consider this breaking because no usage will stop working because of this, but it can be considered a destabilizing change because user behavior have to change as a result of this. +Second, PRs that changes the code in a big architectural way should ideally not be patched back either, because that makes merge conflicts more likely in the future. When in doubt ask the core team for their input. @@ -497,12 +498,15 @@ The whole process is based on [GitHub Action workflows](../.github/workflows/) a The short answer to "how", is to make changes as a regular pull request that is also patched back to `main`. -There's a longer answer too, but it's pretty confusing: +
+ There's a longer answer too, but it's pretty confusing The scripts run from either `main` or `next`, so if you're changing a release script, you must patch it back to `main` for it to have an effect on patch releases. If you need the change to take effect immediately, you must manually cherry pick it to `main`. For workflow file changes, they usually run from `next`, but patching them back is recommended for consistency. The "publish" workflow runs from `latest-release` and `next-release`, so you should always patch changes back for _that_. 🙃 +
+ ### Why do I need to re-trigger workflows to update the changelog? Changes to pull requests' titles, labels or even reverts won't be reflected in the release pull request. This is because the workflow only triggers on pushes to `next`, not when pull request meta data is changed. @@ -536,7 +540,7 @@ If a pull request does not have any of the above labels at the time of release, This is most likely because `next` only contains [unreleasable changes](#which-changes-are-considered-releasable-and-what-does-it-mean), which causes the preparation workflow to cancel itself. That's because it doesn't make sense to prepare a new release if all the changes are unreleasable, as that wouldn't bump the version nor write a new changelog entry, so "releasing" it would just merge it back to `next` without any differences. -You can always see the workflows and if they have been cancelled [here for prereleases](https://github.com/storybookjs/storybook/actions/workflows/prepare-prerelease.yml) and [here for patch releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml). +You can always see the workflows and if they have been cancelled [here for `next`-releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-next-release.yml) and [here for hotfix releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-hotfix-release.yml). ### Why do we need separate release branches? diff --git a/scripts/release/generate-pr-description.ts b/scripts/release/generate-pr-description.ts index 16a6928e994f..f912c5885225 100644 --- a/scripts/release/generate-pr-description.ts +++ b/scripts/release/generate-pr-description.ts @@ -141,7 +141,9 @@ export const generateReleaseDescription = ({ changelogText: string; manualCherryPicks?: string; }): string => { - const workflow = semver.prerelease(nextVersion) ? 'prepare-prerelease' : 'prepare-patch-release'; + const workflow = semver.prerelease(nextVersion) + ? 'prepare-next-release' + : 'prepare-hotfix-release'; const workflowUrl = `https://github.com/storybookjs/storybook/actions/workflows/${workflow}.yml`; return ( @@ -215,7 +217,7 @@ export const generateNonReleaseDescription = ( ${manualCherryPicks || ''} - If you've made any changes (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml) and wait for it to finish. + If you've made any changes (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-hotfix-release.yml) and wait for it to finish. Feel free to manually commit any changes necessary to this branch **after** you've done the last re-generation, following the [Make Manual Changes](https://github.com/storybookjs/storybook/blob/next/CONTRIBUTING/RELEASING.md#5-make-manual-changes) section in the docs. From 8d582d7e4dd66b0b1c85044afcf8228240eb1f8e Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Tue, 29 Aug 2023 14:28:23 +0200 Subject: [PATCH 029/154] merge stable to latest-release instead of next-release, resolving merge conflicts --- .github/workflows/prepare-hotfix-release.yml | 4 +-- .github/workflows/prepare-next-release.yml | 27 +++++++++++++++----- CONTRIBUTING/RELEASING.md | 16 ++++++------ scripts/release/generate-pr-description.ts | 1 + scripts/release/is-pr-frozen.ts | 6 ++--- 5 files changed, 35 insertions(+), 19 deletions(-) diff --git a/.github/workflows/prepare-hotfix-release.yml b/.github/workflows/prepare-hotfix-release.yml index 6ee8d3091c18..2a331fb5f3ea 100644 --- a/.github/workflows/prepare-hotfix-release.yml +++ b/.github/workflows/prepare-hotfix-release.yml @@ -56,7 +56,7 @@ jobs: id: check-frozen env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: yarn release:is-pr-frozen --patch + run: yarn release:is-pr-frozen --hotfix - name: Cancel when frozen if: steps.check-frozen.outputs.frozen == 'true' && github.event_name != 'workflow_dispatch' @@ -121,7 +121,7 @@ jobs: git config --global user.email '32066757+storybook-bot@users.noreply.github.com' git checkout -b version-patch-from-${{ steps.versions.outputs.current }} git add . - git commit -m "Write changelog for ${{ steps.versions.outputs.next }}" || true + git commit -m "Write changelog for ${{ steps.versions.outputs.next }} [skip ci]" || true git push --force origin version-patch-from-${{ steps.versions.outputs.current }} - name: Generate PR description diff --git a/.github/workflows/prepare-next-release.yml b/.github/workflows/prepare-next-release.yml index 42695e823cc6..ad79b5f1b3fe 100644 --- a/.github/workflows/prepare-next-release.yml +++ b/.github/workflows/prepare-next-release.yml @@ -112,21 +112,35 @@ jobs: run: | yarn release:version --deferred --release-type ${{ inputs.release-type || 'prerelease' }} ${{ inputs.pre-id && format('{0} {1}', '--pre-id', inputs.pre-id) || '' }} --verbose + - name: Check release vs prerelease + id: is-prerelease + run: yarn release:is-prerelease ${{ steps.bump-version.outputs.next-version }} + - name: Write changelog env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | yarn release:write-changelog ${{ steps.bump-version.outputs.next-version }} --verbose - - name: 'Commit changes to branch: version-prerelease-from-${{ steps.bump-version.outputs.current-version }}' + - name: 'Commit changes to branch: version-next-from-${{ steps.bump-version.outputs.current-version }}' working-directory: . run: | git config --global user.name 'storybook-bot' git config --global user.email '32066757+storybook-bot@users.noreply.github.com' - git checkout -b version-prerelease-from-${{ steps.bump-version.outputs.current-version }} + git checkout -b version-next-from-${{ steps.bump-version.outputs.current-version }} + git add . + git commit -m "Write changelog for ${{ steps.bump-version.outputs.next-version }} [skip ci]" || true + git push --force origin version-next-from-${{ steps.bump-version.outputs.current-version }} + + - name: Resolve merge-conflicts with base branch + if: steps.is-prerelease.outputs.prerelease == 'true' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git pull origin latest-release + git checkout --ours . git add . - git commit -m "Write changelog for ${{ steps.bump-version.outputs.next-version }}" || true - git push --force origin version-prerelease-from-${{ steps.bump-version.outputs.current-version }} + git commit -m "Merge latest-release into version-1 with conflicts resolved to ours [skip ci]" - name: Generate PR description id: description @@ -144,14 +158,15 @@ jobs: gh pr edit \ --repo "${{github.repository }}" \ --title "Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ + --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ --body "${{ steps.description.outputs.description }}" else gh pr create \ --repo "${{github.repository }}"\ --title "Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ --label "release" \ - --base next-release \ - --head version-prerelease-from-${{ steps.bump-version.outputs.current-version }} \ + --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ + --head version-next-from-${{ steps.bump-version.outputs.current-version }} \ --body "${{ steps.description.outputs.description }}" fi diff --git a/CONTRIBUTING/RELEASING.md b/CONTRIBUTING/RELEASING.md index e81029088f8c..ab71e8fe6b4d 100644 --- a/CONTRIBUTING/RELEASING.md +++ b/CONTRIBUTING/RELEASING.md @@ -150,10 +150,10 @@ gitGraph commit checkout next merge some-bugfix type: HIGHLIGHT - branch version-prerelease-from-7.1.0-alpha.28 + branch version-next-from-7.1.0-alpha.28 commit id: "write changelog" checkout next-release - merge version-prerelease-from-7.1.0-alpha.28 + merge version-next-from-7.1.0-alpha.28 commit id: "bump versions" tag: "7.1.0-alpha.29" checkout next merge next-release @@ -562,11 +562,11 @@ gitGraph branch some-simultaneous-bugfix commit checkout next - branch version-prerelease-from-7.1.0-alpha.28 + branch version-next-from-7.1.0-alpha.28 commit id checkout next merge some-simultaneous-bugfix type: HIGHLIGHT id: "whoops!" - merge version-prerelease-from-7.1.0-alpha.28 tag: "v7.1.0-alpha.29" + merge version-next-from-7.1.0-alpha.28 tag: "v7.1.0-alpha.29" ``` When publishing at the last commit with tag `v7.1.0-alpha.29`, it will publish whatever the content is at that point (all the square dots), which includes the "whoops!" commit from merging the bugfix. But the bugfix was never part of the release pull request because it got prepared before the bugfix was merged in. @@ -586,19 +586,19 @@ gitGraph branch some-simultanous-bugfix commit checkout next - branch version-prerelease-from-7.1.0-alpha.28 + branch version-next-from-7.1.0-alpha.28 commit id: "write changelog" checkout next merge some-simultanous-bugfix id: "whoops!" checkout next-release - merge version-prerelease-from-7.1.0-alpha.28 + merge version-next-from-7.1.0-alpha.28 commit id: "bump versions" tag: "v7.1.0-alpha.29" checkout next merge next-release - branch version-prerelease-from-7.1.0-alpha.29 + branch version-next-from-7.1.0-alpha.29 commit id: "write changelog again" checkout next-release - merge version-prerelease-from-7.1.0-alpha.29 + merge version-next-from-7.1.0-alpha.29 commit id: "bump versions again" tag: "v7.1.0-alpha.30" checkout next merge next-release diff --git a/scripts/release/generate-pr-description.ts b/scripts/release/generate-pr-description.ts index f912c5885225..7049a1aa44c8 100644 --- a/scripts/release/generate-pr-description.ts +++ b/scripts/release/generate-pr-description.ts @@ -52,6 +52,7 @@ const CHANGE_TITLES_TO_IGNORE = [ /\[ci skip\]/i, /^Update CHANGELOG\.md for.*/i, /^Release: (Pre)?(Patch|Minor|Major|Release).*\d+$/i, + /^Update \.\/docs\/versions/, ]; export const mapToChangelist = ({ diff --git a/scripts/release/is-pr-frozen.ts b/scripts/release/is-pr-frozen.ts index 70289b5369d8..27d3a37b7653 100644 --- a/scripts/release/is-pr-frozen.ts +++ b/scripts/release/is-pr-frozen.ts @@ -12,7 +12,7 @@ program .description( 'returns true if the versioning pull request associated with the current branch has the "freeze" label' ) - .option('-P, --patch', 'Look for patch PR instead of prerelease PR', false) + .option('-P, --patch', 'Look for hotfix PR instead of next PR', false) .option('-V, --verbose', 'Enable verbose logging', false); const CODE_DIR_PATH = path.join(__dirname, '..', '..', 'code'); @@ -43,10 +43,10 @@ const getRepo = async (verbose?: boolean): Promise => { }; export const run = async (options: unknown) => { - const { verbose, patch } = options as { verbose?: boolean; patch?: boolean }; + const { verbose, hotfix } = options as { verbose?: boolean; hotfix?: boolean }; const version = await getCurrentVersion(); - const branch = `version-${patch ? 'patch' : 'prerelease'}-from-${version}`; + const branch = `version-${hotfix ? 'hotfix' : 'next'}-from-${version}`; console.log(`💬 Determining if pull request from branch '${chalk.blue(branch)}' is frozen`); From 1161b7ada4b93a0f0bb6a9dda7a34abacbf479dd Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Tue, 29 Aug 2023 14:42:41 +0200 Subject: [PATCH 030/154] more renaming of new release workflows --- CONTRIBUTING/RELEASING.md | 42 +++++++++++----------- scripts/release/generate-pr-description.ts | 2 +- scripts/release/is-pr-frozen.ts | 2 +- 3 files changed, 22 insertions(+), 24 deletions(-) diff --git a/CONTRIBUTING/RELEASING.md b/CONTRIBUTING/RELEASING.md index ab71e8fe6b4d..05533fccb387 100644 --- a/CONTRIBUTING/RELEASING.md +++ b/CONTRIBUTING/RELEASING.md @@ -45,8 +45,8 @@ This document explains the release process for the Storybook monorepo. There are two types: -1. Prereleases and major/minor releases - releasing any content that is on the `next` branch -2. Patch releases - picking any content from `next` to `main`, that needs to be patched back to the current stable minor release +1. `next`-releases - releasing any content that is on the `next` branch, either prereleases or stable releases +2. Hotfix releases - picking any content from `next` to `main`, that needs to be patched back to the current stable minor release The release process is based on automatically created "Release Pull Requests", that when merged will trigger a new version to be released. @@ -57,7 +57,7 @@ A designated Releaser -- which may rotate between core team members -- will go t - [Publish](../.github/workflows/publish.yml) > **Note** -> This document distinguishes between **patch** releases and **prereleases**. This is a simplification; stable major and minor releases work the same way as prereleases. The distinction reflects the difference between patching an existing minor version on `main` or releasing a new minor/major/prerelease from `next`. +> This document distinguishes between **`next`-releases** and **hotfix** releases. The distinction reflects the difference between patching an existing minor version on `main` or releasing a new minor/major/prerelease from `next`. ### Branches @@ -103,7 +103,7 @@ Two GitHub Actions workflows automatically create release pull requests, one for The high-level flow is: 1. When a PR is merged to `next` (or a commit is pushed), both release pull requests are (re)generated. -2. They create a new branch - `version-(patch|prerelease)-from-`. +2. They create a new branch - `version-(hotfix|next)-from-`. 3. They calculate which version to bump to according to the version strategy. 4. They update `CHANGELOG(.prerelease).md` with all changes detected. 5. They commit everything. @@ -126,7 +126,7 @@ A few key points to note in this flow: The default versioning strategy is to increase the current prerelease number, as described in [Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13). If there is no prerelease number (i.e., we just released a new stable minor/major version), it will add one to a patch bump, so it would go from `7.2.0` to `7.2.1-0` by default. -Prerelease PRs are only created if there are actual changes to release. Content labeled with "build" or "documentation" is [not considered "releasable"](#which-changes-are-considered-releasable-and-what-does-it-mean) and is not user-facing, so it doesn't make sense to create a release. This is explained in more detail in [Why are no release PRs being prepared?](#why-are-no-release-prs-being-prepared). +`next`-PRs are only created if there are actual changes to release. Content labeled with "build" or "documentation" is [not considered "releasable"](#which-changes-are-considered-releasable-and-what-does-it-mean) and is not user-facing, so it doesn't make sense to create a release. This is explained in more detail in [Why are no release PRs being prepared?](#why-are-no-release-prs-being-prepared). The preparation workflow will create a new branch from `next`, called `version-next-from-`, and open a pull request targeting `next-release`. When the Releaser merges it, the [publish workflow](#publishing) will merge `next-release` into `next`. @@ -245,9 +245,9 @@ The high-level workflow for a Releaser is: Look for the release pull request that has been prepared for the type of release you're about to release: -- "Release: Prerelease ``" for prereleases -- "Release: Patch ``" for patch releases -- "Release: Merge patches to `main` (without version bump)" for patches without releases +- "Release: Prerelease|Minor|Major ``" for releases from `next` +- "Release: Hotfix ``" for hotfix releases +- "Release: Merge patches to `main` (without version bump)" for hotfixes without releases For example: https://github.com/storybookjs/storybook/pull/23148 @@ -267,7 +267,7 @@ It is important to verify that the release includes the right content. Key eleme For example, check if it's a breaking change that isn't allowed in a minor prerelease, or if it's a new feature in a patch release. If it's not suitable, revert the pull request and notify the author. -Sometimes when doing a patch release, a pull request can have the "patch" label but you don't want that change to be part of this release. Maybe you're not confident in the change, or you require more input from maintainers before releasing it. In those situations you should remove the "patch" label from the pull request and follow through with the release (make sure to re-trigger the workflow). When the release is done, add the patch label back again, so it will be part of the next release. +Sometimes when doing a patch release, a pull request can have the "patch:yes" label but you don't want that change to be part of this release. Maybe you're not confident in the change, or you require more input from maintainers before releasing it. In those situations you should remove the "patch:yes" label from the pull request and follow through with the release (make sure to re-trigger the workflow). When the release is done, add the "patch:yes" label back again, so it will be part of the next release. 2. Is the pull request title correct? @@ -280,9 +280,9 @@ If a pull request changes multiple places, it can be hard to choose an area - th Some labels have specific meanings when it comes to releases. It's important that each pull request has labels that accurately describe the change, as labels can determine if a pull request is included in the changelog or not. This is explained further in the [Which changes are considered "releasable", and what does it mean?](#which-changes-are-considered-releasable-and-what-does-it-mean) section. -4. Patches: has it already been released in a prerelease? +4. Hotfixes: has it already been released in a prerelease? -If this is a patch release, make sure that all pull requests have already been released in a prerelease. If some haven't, create a new prerelease first. +If this is a hotfix release, make sure that all pull requests have already been released in a prerelease. If some haven't, create a new prerelease first. This is not a technical requirement, but it's a good practice to ensure that a change doesn't break a prerelease before releasing it to stable. @@ -301,12 +301,12 @@ When triggering the workflows, always choose the `next` branch as the base, unle The workflows can be triggered here: -- [Prepare prerelease PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-next-release.yml) -- [Prepare patch PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-hotfix-release.yml) +- [Prepare next PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-next-release.yml) +- [Prepare hotfix PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-hotfix-release.yml) Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - `next`-releases](#next-releases). When triggering the prerelease workflow manually, you can optionally add inputs: -![Screenshot of triggering the prerelease workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) +![Screenshot of triggering the next-release workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) See [Versioning Scenarios](#versioning-scenarios) for a description of each version bump scenario, how to activate it and what it does, and [Which combination of inputs creates the version bump I need?](#which-combination-of-inputs-creates-the-version-bump-i-need) for a detailed description of the workflow inputs. @@ -340,11 +340,11 @@ You can inspect the workflows to see what they are running and copy that, but he Before you start you should make sure that your working tree is clean and the repository is in a clean state by running `git clean -xdf`. -1. Create a new branch from either `next` (prereleases) or `main` (patches) +1. Create a new branch from either `next` or `main` (hotfixes) 2. Get all tags: `git fetch --tags origin` 3. Install dependencies: `yarn task --task=install --start-from=install` 4. `cd scripts` -5. (If patch release) Cherry pick: +5. (If hotfix release) Cherry pick: 1. `yarn release:pick-patches` 2. Manually cherry pick any necessary patches based on the previous output 6. Bump versions: @@ -362,21 +362,21 @@ Before you start you should make sure that your working tree is clean and the re 12. (If automatic publishing is still working, it should kick in now and the rest of the steps can be skipped) 13. `cd ..` 14. Publish to the registry: `YARN_NPM_AUTH_TOKEN= yarn release:publish --tag <"next" OR "latest"> --verbose` -15. (If patch release) `yarn release:label-patches` +15. (If hotfix release) `yarn release:label-patches` 16. Manually create a GitHub Release with a tag that is the new version and the target being `latest-release` or `next-release`. 17. Merge to core branch: 1. `git checkout <"next"|"main">` 2. `git pull` 3. `git merge <"next-release"|"latest-release">` 4. `git push origin` -18. (If patch release) Sync `CHANGELOG.md` to `next` with: +18. (If hotfix release) Sync `CHANGELOG.md` to `next` with: 1. `git checkout next` 2. `git pull` 3. `git checkout origin/main ./CHANGELOG.md` 4. `git add ./CHANGELOG.md` 5. `git commit -m "Update CHANGELOG.md for v"` 6. `git push origin` -19. (If prerelease) Sync `versions/next.json` from `next` to `main` +19. (If `next`-release) Sync `versions/next.json` from `next` to `main` 1. `git checkout main` 2. `git pull` 3. `git checkout origin/next ./docs/versions/next.json` @@ -448,11 +448,9 @@ To promote a prerelease to a new prerelease ID, during the [Re-trigger the Workf To promote a prerelease to a stable reelase, during the [Re-trigger the Workflow](#4-re-trigger-the-workflow) step, choose: -- Release type: Patch +- Release type: Patch, Minor or Major - Prerelease ID: Leave empty -The "Patch" release type ensures the current prerelease version gets promoted to a stable version without any major/minor/patch bumps. - This scenario is special as it will target `latest-release` instead of `next-release`, and thus merge into `main` when done, and not `next`. So it goes `next` -> `version-from- `latest-release` -> `main`. When this is done, the Releaser will need to trigger a new release on `next` that bumps the version to a new prerelease minor as described [just below](#first-prerelease-of-new-majorminor---710---720-alpha0-or-800-alpha0). ### First prerelease of new major/minor - `7.1.0` -> `7.2.0-alpha.0` or `8.0.0-alpha.0` diff --git a/scripts/release/generate-pr-description.ts b/scripts/release/generate-pr-description.ts index 7049a1aa44c8..aa7dfe7e53e0 100644 --- a/scripts/release/generate-pr-description.ts +++ b/scripts/release/generate-pr-description.ts @@ -18,7 +18,7 @@ program 'Which version to generate changelog from, eg. "7.0.7". Defaults to the version at code/package.json' ) .option('-N, --next-version ', 'Which version to generate changelog to, eg. "7.0.8"') - .option('-P, --unpicked-patches', 'Set to only consider PRs labeled with "patch" label') + .option('-P, --unpicked-patches', 'Set to only consider PRs labeled with "patch:yes" label') .option( '-M, --manual-cherry-picks ', 'A stringified JSON array of commit hashes, of patch PRs that needs to be cherry-picked manually' diff --git a/scripts/release/is-pr-frozen.ts b/scripts/release/is-pr-frozen.ts index 27d3a37b7653..56f75d0ba33b 100644 --- a/scripts/release/is-pr-frozen.ts +++ b/scripts/release/is-pr-frozen.ts @@ -12,7 +12,7 @@ program .description( 'returns true if the versioning pull request associated with the current branch has the "freeze" label' ) - .option('-P, --patch', 'Look for hotfix PR instead of next PR', false) + .option('-H, --hotfix', 'Look for hotfix PR instead of next PR', false) .option('-V, --verbose', 'Enable verbose logging', false); const CODE_DIR_PATH = path.join(__dirname, '..', '..', 'code'); From d6297bff9975b1e1d2949eab0461fe0ac24338e0 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Wed, 30 Aug 2023 09:19:30 +0200 Subject: [PATCH 031/154] only commit changelog changes when there are actual changes --- .github/workflows/publish.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 18e23c174162..e52af0dc1c78 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -160,8 +160,10 @@ jobs: git pull git checkout origin/main ./CHANGELOG.md git add ./CHANGELOG.md - git commit -m "Update CHANGELOG.md for v${{ steps.version.outputs.current-version }} [skip ci]" - git push origin next + if ! git diff-index --quiet HEAD; then + git commit -m "Update CHANGELOG.md for v${{ steps.version.outputs.current-version }} [skip ci]" + git push origin next + fi - name: Sync version JSONs from `next-release` to `main` if: github.ref_name == 'next-release' From 670bc5167af3f3ec70653460c864e5c91dadb633 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Wed, 30 Aug 2023 10:01:55 +0200 Subject: [PATCH 032/154] add comments --- .github/workflows/publish.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index e52af0dc1c78..821bbf1d15e6 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -111,6 +111,12 @@ jobs: id: target run: echo "target=${{ github.ref_name == 'next-release' && 'next' || 'main' }}" >> $GITHUB_OUTPUT + # TODO: create a commit on next that does the following: + # bump version accordingly + # update changelog + # update version JSONs + # push to next + # TODO: ensure all of this logic works if a release from next targets latest-release. steps.targets.outputs? - name: Get changelog for ${{ steps.version.outputs.current-version }} if: steps.publish-needed.outputs.published == 'false' id: changelog @@ -160,6 +166,7 @@ jobs: git pull git checkout origin/main ./CHANGELOG.md git add ./CHANGELOG.md + # only commit if there are changes if ! git diff-index --quiet HEAD; then git commit -m "Update CHANGELOG.md for v${{ steps.version.outputs.current-version }} [skip ci]" git push origin next From d5df684fc7c107bceffddfa176d2799c60c9a58e Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Wed, 30 Aug 2023 10:44:03 +0200 Subject: [PATCH 033/154] simplify --- .github/workflows/publish.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 821bbf1d15e6..47e9798ca46f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -166,11 +166,8 @@ jobs: git pull git checkout origin/main ./CHANGELOG.md git add ./CHANGELOG.md - # only commit if there are changes - if ! git diff-index --quiet HEAD; then - git commit -m "Update CHANGELOG.md for v${{ steps.version.outputs.current-version }} [skip ci]" - git push origin next - fi + git commit -m "Update CHANGELOG.md for v${{ steps.version.outputs.current-version }} [skip ci]" || true + git push origin next - name: Sync version JSONs from `next-release` to `main` if: github.ref_name == 'next-release' From 431ec639fe559b0911427087a8f1d3c0b53cea53 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 31 Aug 2023 11:14:00 +0200 Subject: [PATCH 034/154] ensure next is always ahead of main during stable releases --- .github/workflows/publish.yml | 38 ++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 47e9798ca46f..c31ef7c6a0d3 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -63,7 +63,6 @@ jobs: yarn install - name: Apply deferred version bump and commit - id: version-bump working-directory: . run: | CURRENT_VERSION=$(cat ./code/package.json | jq '.version') @@ -111,11 +110,6 @@ jobs: id: target run: echo "target=${{ github.ref_name == 'next-release' && 'next' || 'main' }}" >> $GITHUB_OUTPUT - # TODO: create a commit on next that does the following: - # bump version accordingly - # update changelog - # update version JSONs - # push to next # TODO: ensure all of this logic works if a release from next targets latest-release. steps.targets.outputs? - name: Get changelog for ${{ steps.version.outputs.current-version }} if: steps.publish-needed.outputs.published == 'false' @@ -129,6 +123,7 @@ jobs: # when this is a patch release from main, label any patch PRs included in the release # when this is a stable release from next, label ALL patch PRs found, as they will per definition be "patched" now + # TODO: this won't work anymore for releases from next to latest-release - name: Label patch PRs as picked if: github.ref_name == 'latest-release' || (steps.publish-needed.outputs.published == 'false' && steps.target.outputs.target == 'next' && !steps.is-prerelease.outputs.prerelease) env: @@ -157,6 +152,33 @@ jobs: git merge ${{ github.ref_name }} git push origin ${{ steps.target.outputs.target }} + # This step ensures that next is always one minor ahead of main + # this is needed when releasing a stable from next + # next will be at eg. 7.4.0-alpha.4, and main will be at 7.3.0 + # then we release 7.4.0 by merging next to latest-release to main + # we then ensure here that next is bumped to 7.5.0 - without releasing it + # if this is a hotfix release bumping main to 7.3.1, next will not be touched because it's already ahead + - name: Ensure `next` is a minor version ahead of `main` + if: github.ref_name == 'latest-release' + run: | + git checkout next + git pull + + CODE_PKG_JSON=$(cat ../code/package.json) + VERSION_ON_NEXT=$(echo $CODE_PKG_JSON | jq --raw-output '.version') + VERSION_ON_MAIN="${{ steps.version.outputs.current-version }}" + + # check if next is behind current version + if NEXT_IS_BEHIND=$(npx semver --include-prerelease --range "<$VERSION_ON_MAIN" "$VERSION_ON_NEXT" 2>/dev/null); then + # temporarily set the version on next to be the same as main... + echo "$CODE_PKG_JSON" | jq --arg version "$VERSION_ON_MAIN" '.version = $version' > ../code/package.json + # ... then bump it by one minor + yarn release:version --release-type minor + git add .. + git commit -m "Bump next to be one minor ahead of main [skip ci]" + git push origin next + fi + - name: Sync CHANGELOG.md from `main` to `next` if: github.ref_name == 'latest-release' working-directory: . @@ -182,10 +204,6 @@ jobs: git commit -m "Update $VERSION_FILE for v${{ steps.version.outputs.current-version }}" git push origin main - - name: Overwrite main with next - if: steps.target.outputs.target == 'next' && steps.is-prerelease.outputs.prerelease == 'false' - run: git push --force origin next:main - - name: Report job failure to Discord if: failure() env: From 507516571bdf628c944632e78c136d859c7ee68e Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 31 Aug 2023 12:51:27 +0200 Subject: [PATCH 035/154] improve readability of publish script --- .github/workflows/publish.yml | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c31ef7c6a0d3..4f71006b7633 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -110,7 +110,6 @@ jobs: id: target run: echo "target=${{ github.ref_name == 'next-release' && 'next' || 'main' }}" >> $GITHUB_OUTPUT - # TODO: ensure all of this logic works if a release from next targets latest-release. steps.targets.outputs? - name: Get changelog for ${{ steps.version.outputs.current-version }} if: steps.publish-needed.outputs.published == 'false' id: changelog @@ -122,13 +121,11 @@ jobs: run: git fetch --tags origin # when this is a patch release from main, label any patch PRs included in the release - # when this is a stable release from next, label ALL patch PRs found, as they will per definition be "patched" now - # TODO: this won't work anymore for releases from next to latest-release - name: Label patch PRs as picked - if: github.ref_name == 'latest-release' || (steps.publish-needed.outputs.published == 'false' && steps.target.outputs.target == 'next' && !steps.is-prerelease.outputs.prerelease) + if: github.ref_name == 'latest-release' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: yarn release:label-patches ${{ steps.target.outputs.target == 'next' && '--all' || '' }} + run: yarn release:label-patches - name: Create GitHub Release if: steps.publish-needed.outputs.published == 'false' @@ -159,7 +156,7 @@ jobs: # we then ensure here that next is bumped to 7.5.0 - without releasing it # if this is a hotfix release bumping main to 7.3.1, next will not be touched because it's already ahead - name: Ensure `next` is a minor version ahead of `main` - if: github.ref_name == 'latest-release' + if: steps.target.outputs.target == 'main' run: | git checkout next git pull @@ -168,19 +165,21 @@ jobs: VERSION_ON_NEXT=$(echo $CODE_PKG_JSON | jq --raw-output '.version') VERSION_ON_MAIN="${{ steps.version.outputs.current-version }}" - # check if next is behind current version - if NEXT_IS_BEHIND=$(npx semver --include-prerelease --range "<$VERSION_ON_MAIN" "$VERSION_ON_NEXT" 2>/dev/null); then - # temporarily set the version on next to be the same as main... - echo "$CODE_PKG_JSON" | jq --arg version "$VERSION_ON_MAIN" '.version = $version' > ../code/package.json - # ... then bump it by one minor - yarn release:version --release-type minor - git add .. - git commit -m "Bump next to be one minor ahead of main [skip ci]" - git push origin next + # skip if next is already ahead of main + if NEXT_IS_AHEAD=$(npx semver --include-prerelease --range ">=$VERSION_ON_MAIN" "$VERSION_ON_NEXT" 2>/dev/null); then + return fi + # temporarily set the version on next to be the same as main... + echo "$CODE_PKG_JSON" | jq --arg version "$VERSION_ON_MAIN" '.version = $version' > ../code/package.json + # ... then bump it by one minor + yarn release:version --release-type minor + git add .. + git commit -m "Bump next to be one minor ahead of main [skip ci]" + git push origin next + - name: Sync CHANGELOG.md from `main` to `next` - if: github.ref_name == 'latest-release' + if: steps.target.outputs.target == 'main' working-directory: . run: | git fetch origin next From 44e988cd10aac138cf5da37a9335618e3b68935e Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 31 Aug 2023 12:53:37 +0200 Subject: [PATCH 036/154] pul all release workflows in same concurrency group --- .github/workflows/prepare-hotfix-release.yml | 4 ++-- .github/workflows/prepare-next-release.yml | 4 ++-- .github/workflows/publish.yml | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/prepare-hotfix-release.yml b/.github/workflows/prepare-hotfix-release.yml index 2a331fb5f3ea..83109bcf52ca 100644 --- a/.github/workflows/prepare-hotfix-release.yml +++ b/.github/workflows/prepare-hotfix-release.yml @@ -12,8 +12,8 @@ env: PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: 1 concurrency: - group: ${{ github.workflow }} - cancel-in-progress: true + group: release-group + cancel-in-progress: false jobs: prepare-hotfix-pull-request: diff --git a/.github/workflows/prepare-next-release.yml b/.github/workflows/prepare-next-release.yml index ad79b5f1b3fe..4add96125d3d 100644 --- a/.github/workflows/prepare-next-release.yml +++ b/.github/workflows/prepare-next-release.yml @@ -30,8 +30,8 @@ env: PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: 1 concurrency: - group: ${{ github.workflow }} - cancel-in-progress: true + group: release-group + cancel-in-progress: false jobs: prepare-next-pull-request: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 4f71006b7633..f2ee9cbc12a2 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,7 +16,8 @@ permissions: pull-requests: write concurrency: - group: ${{ github.workflow }}-${{ github.ref_name }} + group: release-group + cancel-in-progress: false jobs: publish: From bff632d0474999cb07989d1620b8cb782eeb1094 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Fri, 1 Sep 2023 11:17:24 +0200 Subject: [PATCH 037/154] add todos --- .github/workflows/publish.yml | 2 +- scripts/release/is-pr-frozen.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f2ee9cbc12a2..505c9f301a05 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -36,7 +36,7 @@ jobs: run: | gh run cancel ${{ github.run_id }} gh run watch ${{ github.run_id }} - + # TODO: here, cancel any running AND pending runs for the preparation workflows: https://stackoverflow.com/questions/60753453/how-to-cancel-run-for-all-scheduled-github-actions-at-once - name: Checkout ${{ github.ref_name }} uses: actions/checkout@v3 with: diff --git a/scripts/release/is-pr-frozen.ts b/scripts/release/is-pr-frozen.ts index 56f75d0ba33b..d053f3f59734 100644 --- a/scripts/release/is-pr-frozen.ts +++ b/scripts/release/is-pr-frozen.ts @@ -78,6 +78,7 @@ export const run = async (options: unknown) => { console.log(`🔍 Found pull request: ${JSON.stringify(pullRequest, null, 2)}`); + // TODO: check if pull request is still open const isFrozen = pullRequest.labels?.includes('freeze'); if (process.env.GITHUB_ACTIONS === 'true') { setOutput('frozen', isFrozen); From b53e602e7562dca61b0d45539ad3d8f71a199a1e Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Tue, 5 Sep 2023 10:44:04 +0200 Subject: [PATCH 038/154] rename `index` to `indexFn` --- MIGRATION.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MIGRATION.md b/MIGRATION.md index 31c92a7a8ca0..33268d612c97 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -345,7 +345,7 @@ export default { - storyIndexers = (indexers) => { - const indexer = async (fileName, opts) => { + experimental_indexers = (indexers) => { -+ const index = async (fileName, opts) => { ++ const indexFn = async (fileName, opts) => { const code = readFileSync(fileName, { encoding: 'utf-8' }); const makeTitle = (userTitle) => { // Do something with the auto title retrieved by Storybook @@ -361,7 +361,7 @@ export default { { test: /(stories|story)\.[tj]sx?$/, - indexer, -+ index, ++ indexFn, }, ...(indexers || []), ]; From 214b6ec65c4c4d808f0a4a5c67679d405dfea54b Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Tue, 5 Sep 2023 14:28:43 +0200 Subject: [PATCH 039/154] indexFn -> createIndex --- MIGRATION.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MIGRATION.md b/MIGRATION.md index 33268d612c97..fc7c93c87ffb 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -345,7 +345,7 @@ export default { - storyIndexers = (indexers) => { - const indexer = async (fileName, opts) => { + experimental_indexers = (indexers) => { -+ const indexFn = async (fileName, opts) => { ++ const createIndex = async (fileName, opts) => { const code = readFileSync(fileName, { encoding: 'utf-8' }); const makeTitle = (userTitle) => { // Do something with the auto title retrieved by Storybook @@ -361,7 +361,7 @@ export default { { test: /(stories|story)\.[tj]sx?$/, - indexer, -+ indexFn, ++ createIndex, }, ...(indexers || []), ]; From ba8e5feb7208822b175c0cf5f4b154e78a902832 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Fri, 8 Sep 2023 14:35:29 +0200 Subject: [PATCH 040/154] cancel any release-preparation runs in progress --- .github/workflows/publish.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 1bca24753abc..272fa1af341d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -36,7 +36,23 @@ jobs: run: | gh run cancel ${{ github.run_id }} gh run watch ${{ github.run_id }} - # TODO: here, cancel any running AND pending runs for the preparation workflows: https://stackoverflow.com/questions/60753453/how-to-cancel-run-for-all-scheduled-github-actions-at-once + + - name: Cancel all release preparation runs + run: | + # Get a list of all running or pending release preparation runs + # combining both the prepare-hotfix-release.yml and prepare-next-release.yml workflows + RUNNING_RELEASE_PREPARATIONS=$( + { + gh run list --limit 50 --workflow=prepare-hotfix-release.yml --json databaseId,status + gh run list --limit 50 --workflow=prepare-next-release.yml --json databaseId,status + } | jq -rc '.[] | select(.status | contains("in_progress", "pending", "queued", "requested", "waiting")) | .databaseId' + ) + + # Loop through each run and pass it to the "gh run cancel" command + while IFS= read -r databaseId; do + gh run cancel "$databaseId" + done <<< "$RUNNING_RELEASE_PREPARATIONS" + - name: Checkout ${{ github.ref_name }} uses: actions/checkout@v3 with: From a84e270f67944997ca5870a465088a48187915bb Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Fri, 8 Sep 2023 14:53:55 +0200 Subject: [PATCH 041/154] cleanup --- .github/workflows/prepare-hotfix-release.yml | 4 ++-- .github/workflows/prepare-next-release.yml | 6 +++--- .github/workflows/publish.yml | 3 +-- CONTRIBUTING/RELEASING.md | 2 +- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/prepare-hotfix-release.yml b/.github/workflows/prepare-hotfix-release.yml index f5a44306fe5d..032357306f50 100644 --- a/.github/workflows/prepare-hotfix-release.yml +++ b/.github/workflows/prepare-hotfix-release.yml @@ -12,8 +12,8 @@ env: PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: 1 concurrency: - group: release-group - cancel-in-progress: false + group: ${{ github.workflow }} + cancel-in-progress: true jobs: prepare-hotfix-pull-request: diff --git a/.github/workflows/prepare-next-release.yml b/.github/workflows/prepare-next-release.yml index 4ea2c9b3c080..e1b4b45a016b 100644 --- a/.github/workflows/prepare-next-release.yml +++ b/.github/workflows/prepare-next-release.yml @@ -30,8 +30,8 @@ env: PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: 1 concurrency: - group: release-group - cancel-in-progress: false + group: ${{ github.workflow }} + cancel-in-progress: true jobs: prepare-next-pull-request: @@ -140,7 +140,7 @@ jobs: git pull origin latest-release git checkout --ours . git add . - git commit -m "Merge latest-release into version-1 with conflicts resolved to ours [skip ci]" + git commit -m "Merge latest-release into version-next-from-${{ steps.bump-version.outputs.current-version }} with conflicts resolved to ours [skip ci]" - name: Generate PR description id: description diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 272fa1af341d..f5efac645654 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,8 +16,7 @@ permissions: pull-requests: write concurrency: - group: release-group - cancel-in-progress: false + group: ${{ github.workflow }}-${{ github.ref_name }} jobs: publish: diff --git a/CONTRIBUTING/RELEASING.md b/CONTRIBUTING/RELEASING.md index 05533fccb387..c22bf923e07b 100644 --- a/CONTRIBUTING/RELEASING.md +++ b/CONTRIBUTING/RELEASING.md @@ -451,7 +451,7 @@ To promote a prerelease to a stable reelase, during the [Re-trigger the Workflow - Release type: Patch, Minor or Major - Prerelease ID: Leave empty -This scenario is special as it will target `latest-release` instead of `next-release`, and thus merge into `main` when done, and not `next`. So it goes `next` -> `version-from- `latest-release` -> `main`. When this is done, the Releaser will need to trigger a new release on `next` that bumps the version to a new prerelease minor as described [just below](#first-prerelease-of-new-majorminor---710---720-alpha0-or-800-alpha0). +This scenario is special as it will target `latest-release` instead of `next-release`, and thus merge into `main` when done, and not `next`. So it goes `next` -> `version-from- `latest-release` -> `main`. ### First prerelease of new major/minor - `7.1.0` -> `7.2.0-alpha.0` or `8.0.0-alpha.0` From e1a2172dfb662622b6e656692d3c6b84b6bd0256 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Fri, 8 Sep 2023 15:15:05 +0200 Subject: [PATCH 042/154] only consider open PRs when looking for frozen state --- scripts/release/is-pr-frozen.ts | 8 ++++++++ scripts/release/utils/get-github-info.ts | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/scripts/release/is-pr-frozen.ts b/scripts/release/is-pr-frozen.ts index d053f3f59734..27ec56c65c61 100644 --- a/scripts/release/is-pr-frozen.ts +++ b/scripts/release/is-pr-frozen.ts @@ -78,6 +78,14 @@ export const run = async (options: unknown) => { console.log(`🔍 Found pull request: ${JSON.stringify(pullRequest, null, 2)}`); + if (pullRequest.state !== 'OPEN') { + console.log('❌ The pull request is already closed, ignoring it'); + if (process.env.GITHUB_ACTIONS === 'true') { + setOutput('frozen', false); + } + return false; + } + // TODO: check if pull request is still open const isFrozen = pullRequest.labels?.includes('freeze'); if (process.env.GITHUB_ACTIONS === 'true') { diff --git a/scripts/release/utils/get-github-info.ts b/scripts/release/utils/get-github-info.ts index 6bd7126aec04..ce58b7822359 100644 --- a/scripts/release/utils/get-github-info.ts +++ b/scripts/release/utils/get-github-info.ts @@ -40,6 +40,7 @@ function makeQuery(repos: ReposWithCommitsAndPRsToFetch) { number id title + state url mergedAt labels(first: 50) { @@ -63,6 +64,7 @@ function makeQuery(repos: ReposWithCommitsAndPRsToFetch) { : `pr__${data.pull}: pullRequest(number: ${data.pull}) { url title + state author { login url @@ -161,6 +163,7 @@ export type PullRequestInfo = { user: string | null; id: string | null; title: string | null; + state: string | null; commit: string | null; pull: number | null; labels: string[] | null; @@ -197,6 +200,7 @@ export async function getPullInfoFromCommit(request: { pull: null, commit: request.commit, title: null, + state: null, labels: null, links: { commit: request.commit, @@ -245,6 +249,7 @@ export async function getPullInfoFromCommit(request: { pull: associatedPullRequest ? associatedPullRequest.number : null, commit: request.commit, title: associatedPullRequest ? associatedPullRequest.title : null, + state: associatedPullRequest ? associatedPullRequest.state : null, labels: associatedPullRequest ? (associatedPullRequest.labels.nodes || []).map((label: { name: string }) => label.name) : null, @@ -287,6 +292,7 @@ export async function getPullInfoFromPullRequest(request: { pull: request.pull, commit: commit ? commit.oid : null, title: title || null, + state: data?.state || null, labels: data ? (data.labels.nodes || []).map((label: { name: string }) => label.name) : null, links: { commit: commit ? `[\`${commit.oid}\`](${commit.commitUrl})` : null, From 4d569f2f6735a7fe55440a7c450566ddf5f47837 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Fri, 8 Sep 2023 15:20:16 +0200 Subject: [PATCH 043/154] update tests --- .../__tests__/generate-pr-description.test.ts | 8 ++++---- scripts/release/__tests__/is-pr-frozen.test.ts | 18 ++++++++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/scripts/release/__tests__/generate-pr-description.test.ts b/scripts/release/__tests__/generate-pr-description.test.ts index b0f1bbe89db5..fdd412462ae7 100644 --- a/scripts/release/__tests__/generate-pr-description.test.ts +++ b/scripts/release/__tests__/generate-pr-description.test.ts @@ -213,7 +213,7 @@ For each pull request below, you need to either manually cherry pick it, or disc - [ ] [#42](https://github.com/storybookjs/storybook/pull/42): \\\`git cherry-pick -m1 -x abc123\\\` - If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-prerelease.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. + If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-next-release.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. Feel free to manually commit any changes necessary to this branch **after** you\\'ve done the last re-generation, following the [Make Manual Changes](https://github.com/storybookjs/storybook/blob/next/CONTRIBUTING/RELEASING.md#5-make-manual-changes) section in the docs, *especially* if you\\'re making changes to the changelog. @@ -273,7 +273,7 @@ For each pull request below, you need to either manually cherry pick it, or disc - [ ] [#42](https://github.com/storybookjs/storybook/pull/42): \\\`git cherry-pick -m1 -x abc123\\\` - If you\\'ve made any changes (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml) and wait for it to finish. + If you\\'ve made any changes (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-hotfix-release.yml) and wait for it to finish. Feel free to manually commit any changes necessary to this branch **after** you\\'ve done the last re-generation, following the [Make Manual Changes](https://github.com/storybookjs/storybook/blob/next/CONTRIBUTING/RELEASING.md#5-make-manual-changes) section in the docs. @@ -340,7 +340,7 @@ For each pull request below, you need to either manually cherry pick it, or disc - If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-prerelease.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. + If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-next-release.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. Feel free to manually commit any changes necessary to this branch **after** you\\'ve done the last re-generation, following the [Make Manual Changes](https://github.com/storybookjs/storybook/blob/next/CONTRIBUTING/RELEASING.md#5-make-manual-changes) section in the docs, *especially* if you\\'re making changes to the changelog. @@ -395,7 +395,7 @@ For each pull request below, you need to either manually cherry pick it, or disc - If you\\'ve made any changes (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml) and wait for it to finish. + If you\\'ve made any changes (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-hotfix-release.yml) and wait for it to finish. Feel free to manually commit any changes necessary to this branch **after** you\\'ve done the last re-generation, following the [Make Manual Changes](https://github.com/storybookjs/storybook/blob/next/CONTRIBUTING/RELEASING.md#5-make-manual-changes) section in the docs. diff --git a/scripts/release/__tests__/is-pr-frozen.test.ts b/scripts/release/__tests__/is-pr-frozen.test.ts index 63747a863ddf..d5d1e8a16b74 100644 --- a/scripts/release/__tests__/is-pr-frozen.test.ts +++ b/scripts/release/__tests__/is-pr-frozen.test.ts @@ -26,6 +26,7 @@ describe('isPrFrozen', () => { it('should return true when PR is frozen', async () => { getPullInfoFromCommit.mockResolvedValue({ labels: ['freeze'], + state: 'OPEN', }); await expect(isPrFrozen({ patch: false })).resolves.toBe(true); }); @@ -33,17 +34,26 @@ describe('isPrFrozen', () => { it('should return false when PR is not frozen', async () => { getPullInfoFromCommit.mockResolvedValue({ labels: [], + state: 'OPEN', }); await expect(isPrFrozen({ patch: false })).resolves.toBe(false); }); - it('should look for patch PRs when patch is true', async () => { + it('should return false when PR is closed', async () => { + getPullInfoFromCommit.mockResolvedValue({ + labels: ['freeze'], + state: 'CLOSED', + }); + await expect(isPrFrozen({ patch: false })).resolves.toBe(false); + }); + + it('should look for patch PRs when hotfix is true', async () => { getPullInfoFromCommit.mockResolvedValue({ labels: [], }); - await isPrFrozen({ patch: true }); + await isPrFrozen({ hotfix: true }); - expect(simpleGit.__fetch).toHaveBeenCalledWith('origin', 'version-patch-from-1.0.0', { + expect(simpleGit.__fetch).toHaveBeenCalledWith('origin', 'version-hotfix-from-1.0.0', { '--depth': 1, }); }); @@ -54,7 +64,7 @@ describe('isPrFrozen', () => { }); await isPrFrozen({ patch: false }); - expect(simpleGit.__fetch).toHaveBeenCalledWith('origin', 'version-prerelease-from-1.0.0', { + expect(simpleGit.__fetch).toHaveBeenCalledWith('origin', 'version-next-from-1.0.0', { '--depth': 1, }); }); From eea29bcf9f26994651043eaa262c55f37e5ac8f0 Mon Sep 17 00:00:00 2001 From: Jon Badgett Date: Sun, 10 Sep 2023 15:22:11 -0500 Subject: [PATCH 044/154] add react IFRenderer to args docs addition --- docs/writing-stories/args.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/writing-stories/args.md b/docs/writing-stories/args.md index 240b96dc3d4d..26a61edfb322 100644 --- a/docs/writing-stories/args.md +++ b/docs/writing-stories/args.md @@ -213,6 +213,8 @@ Similarly, special formats are available for dates and colors. Date objects will Args specified through the URL will extend and override any default values of args set on the story. + + ## Setting args from within a story Interactive components often need to be controlled by their containing component or page to respond to events, modify their state and reflect those changes in the UI. For example, when a user toggles a switch component, the switch should be checked, and the arg shown in Storybook should reflect the change. To enable this, you can use the `useArgs` API exported by `@storybook/preview-api`: @@ -228,6 +230,8 @@ Interactive components often need to be controlled by their containing component + + ## Mapping to complex arg values Complex values such as JSX elements cannot be serialized to the manager (e.g., the Controls addon) or synced with the URL. Arg values can be "mapped" from a simple string to a complex type using the `mapping` property in `argTypes` to work around this limitation. It works in any arg but makes the most sense when used with the `select` control type. From 79bc783d477962a10c97ef077a4c351aca1d0fea Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Mon, 11 Sep 2023 22:29:56 +0800 Subject: [PATCH 045/154] React-vite: TS strict mode --- code/frameworks/react-vite/tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/frameworks/react-vite/tsconfig.json b/code/frameworks/react-vite/tsconfig.json index 4475d9c518e6..3bfb79fdded7 100644 --- a/code/frameworks/react-vite/tsconfig.json +++ b/code/frameworks/react-vite/tsconfig.json @@ -4,7 +4,7 @@ "rootDir": "./src", "types": ["node"], "resolveJsonModule": true, - "skipLibCheck": true + "strict": true }, "include": ["src/**/*"] } From b253aeb798654d1359f19647071e5d885d2d063d Mon Sep 17 00:00:00 2001 From: jonniebigodes Date: Mon, 11 Sep 2023 20:39:22 +0100 Subject: [PATCH 046/154] Adds conditional render to the Styling and CSS docs --- docs/configure/styling-and-css.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/configure/styling-and-css.md b/docs/configure/styling-and-css.md index b328359af00f..92ac363e6b47 100644 --- a/docs/configure/styling-and-css.md +++ b/docs/configure/styling-and-css.md @@ -35,6 +35,8 @@ CSS-in-JS libraries are designed to use basic JavaScript, and they often work in If you need webfonts to be available, you may need to add some code to the [`.storybook/preview-head.html`](./story-rendering.md#adding-to-head) file. We recommend including any assets with your Storybook if possible, in which case you likely want to configure the [static file location](./images-and-assets.md#serving-static-files-via-storybook-configuration). + + ## Troubleshooting ### Styles aren't being applied with Angular @@ -56,7 +58,7 @@ The latest Angular releases introduced significant changes in configuring and st } ``` -Additionally, if you need Storybook-specific styles that are separate from your application, you can configure the styles with [Storybook's custom builder](../get-started/install.md), which will override the application's styles: +Additionally, if you need Storybook-specific styles that are separate from your application, you can configure the styles with [Storybook's custom builder](../get-started/install.md#troubleshooting), which will override the application's styles: ```json { @@ -121,3 +123,5 @@ Starting with version `14.1.8`, Nx uses the Storybook builder directly, which me ``` When Nx runs, it will load Storybook's configuration and styling based on [`storybook`'s `browserTarget`](https://nx.dev/storybook/extra-topics-for-angular-projects#setting-up-browsertarget). + + From d620a34e5f837b8fabf62a601f1a333a0830d4da Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Wed, 13 Sep 2023 23:18:23 +0800 Subject: [PATCH 047/154] Update snapshots for improved react-docgen enum handling --- .../src/argTypes/convert/convert.test.ts | 24 +++++-------------- .../9493-ts-display-name/argTypes.snapshot | 24 ++++++++----------- .../9493-ts-display-name/properties.snapshot | 17 ++++--------- 3 files changed, 20 insertions(+), 45 deletions(-) diff --git a/code/lib/docs-tools/src/argTypes/convert/convert.test.ts b/code/lib/docs-tools/src/argTypes/convert/convert.test.ts index 5b7b15ec6c63..d091486370a5 100644 --- a/code/lib/docs-tools/src/argTypes/convert/convert.test.ts +++ b/code/lib/docs-tools/src/argTypes/convert/convert.test.ts @@ -180,30 +180,18 @@ describe('storybook type system', () => { { "kind": { "raw": "'default' | 'action'", - "name": "union", + "name": "enum", "value": [ - { - "name": "other", - "value": "literal" - }, - { - "name": "other", - "value": "literal" - } + "default", + "action" ] }, "inlinedNumericLiteralUnion": { "raw": "0 | 1", - "name": "union", + "name": "enum", "value": [ - { - "name": "other", - "value": "literal" - }, - { - "name": "other", - "value": "literal" - } + 0, + 1 ] }, "enumUnion": { diff --git a/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/argTypes.snapshot b/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/argTypes.snapshot index dde0ac32a22f..560ce954feb2 100644 --- a/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/argTypes.snapshot +++ b/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/argTypes.snapshot @@ -23,10 +23,15 @@ Object { }, "title": Object { "control": Object { - "type": "object", + "type": "radio", }, "description": "A title that brings attention to the alert.", "name": "title", + "options": Array [ + "Code Red", + "Code Yellow", + "Code Green", + ], "table": Object { "defaultValue": Object { "detail": undefined, @@ -39,22 +44,13 @@ Object { }, }, "type": Object { - "name": "union", + "name": "enum", "raw": "'Code Red' | 'Code Yellow' | 'Code Green'", "required": false, "value": Array [ - Object { - "name": "other", - "value": "literal", - }, - Object { - "name": "other", - "value": "literal", - }, - Object { - "name": "other", - "value": "literal", - }, + "Code Red", + "Code Yellow", + "Code Green", ], }, }, diff --git a/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/properties.snapshot b/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/properties.snapshot index f6be2f921ecf..1333ed781146 100644 --- a/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/properties.snapshot +++ b/code/renderers/react/template/stories/docgen-components/9493-ts-display-name/properties.snapshot @@ -12,21 +12,12 @@ Object { "name": "title", "required": false, "sbType": Object { - "name": "union", + "name": "enum", "raw": "'Code Red' | 'Code Yellow' | 'Code Green'", "value": Array [ - Object { - "name": "other", - "value": "literal", - }, - Object { - "name": "other", - "value": "literal", - }, - Object { - "name": "other", - "value": "literal", - }, + "Code Red", + "Code Yellow", + "Code Green", ], }, "type": Object { From 72a8744d8ea8614d6a4ce628be07a472efcdba7a Mon Sep 17 00:00:00 2001 From: Jason McKenzie Date: Fri, 15 Sep 2023 17:04:35 +1000 Subject: [PATCH 048/154] Fix default next image loader when src has params --- .../src/images/next-image-default-loader.tsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/code/frameworks/nextjs/src/images/next-image-default-loader.tsx b/code/frameworks/nextjs/src/images/next-image-default-loader.tsx index 6029390979ac..1d137fdf95fb 100644 --- a/code/frameworks/nextjs/src/images/next-image-default-loader.tsx +++ b/code/frameworks/nextjs/src/images/next-image-default-loader.tsx @@ -24,5 +24,17 @@ export const defaultLoader = ({ src, width, quality }: _NextImage.ImageLoaderPro ); } - return `${src}?w=${width}&q=${quality ?? 75}`; + const [baseUrlAndSearch, hash = ''] = src.split('#'); + const [baseUrl, search = ''] = baseUrlAndSearch.split('?'); + + const params = new URLSearchParams(search); + + if (!params.has('w') && !params.has('q')) { + params.set('w', width.toString()); + params.set('q', (quality ?? 75).toString()); + } + + const prefixedHash = hash ? `#${hash}` : ''; + + return `${baseUrl}?${params.toString()}${prefixedHash}`; }; From 984d1566585fea6a859e712d8266d18baa81f22c Mon Sep 17 00:00:00 2001 From: Jason McKenzie Date: Fri, 15 Sep 2023 22:04:37 +1000 Subject: [PATCH 049/154] Use URL to fix next image loader src params --- .../src/images/next-image-default-loader.tsx | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/code/frameworks/nextjs/src/images/next-image-default-loader.tsx b/code/frameworks/nextjs/src/images/next-image-default-loader.tsx index 1d137fdf95fb..8851c279f070 100644 --- a/code/frameworks/nextjs/src/images/next-image-default-loader.tsx +++ b/code/frameworks/nextjs/src/images/next-image-default-loader.tsx @@ -1,6 +1,6 @@ import type * as _NextImage from 'next/image'; -export const defaultLoader = ({ src, width, quality }: _NextImage.ImageLoaderProps) => { +export const defaultLoader = ({ src, width, quality = 75 }: _NextImage.ImageLoaderProps) => { const missingValues = []; if (!src) { missingValues.push('src'); @@ -24,17 +24,16 @@ export const defaultLoader = ({ src, width, quality }: _NextImage.ImageLoaderPro ); } - const [baseUrlAndSearch, hash = ''] = src.split('#'); - const [baseUrl, search = ''] = baseUrlAndSearch.split('?'); + const url = new URL(src, window.location.href); - const params = new URLSearchParams(search); - - if (!params.has('w') && !params.has('q')) { - params.set('w', width.toString()); - params.set('q', (quality ?? 75).toString()); + if (!url.searchParams.has('w') && !url.searchParams.has('q')) { + url.searchParams.set('w', width.toString()); + url.searchParams.set('q', (quality ?? 75).toString()); } - const prefixedHash = hash ? `#${hash}` : ''; + if (!src.startsWith('http://') && !src.startsWith('https://')) { + return url.toString().slice(url.origin.length); + } - return `${baseUrl}?${params.toString()}${prefixedHash}`; + return url.toString(); }; From c4ba76077be80a120b813cbad1de384f3eacca23 Mon Sep 17 00:00:00 2001 From: Jason McKenzie Date: Fri, 15 Sep 2023 22:14:51 +1000 Subject: [PATCH 050/154] Remove double default in next image default loader --- code/frameworks/nextjs/src/images/next-image-default-loader.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/frameworks/nextjs/src/images/next-image-default-loader.tsx b/code/frameworks/nextjs/src/images/next-image-default-loader.tsx index 8851c279f070..c7050914371b 100644 --- a/code/frameworks/nextjs/src/images/next-image-default-loader.tsx +++ b/code/frameworks/nextjs/src/images/next-image-default-loader.tsx @@ -28,7 +28,7 @@ export const defaultLoader = ({ src, width, quality = 75 }: _NextImage.ImageLoad if (!url.searchParams.has('w') && !url.searchParams.has('q')) { url.searchParams.set('w', width.toString()); - url.searchParams.set('q', (quality ?? 75).toString()); + url.searchParams.set('q', quality.toString()); } if (!src.startsWith('http://') && !src.startsWith('https://')) { From 5ef917a41c868485e64e86332d5b8bef3f1bf52a Mon Sep 17 00:00:00 2001 From: roottool Date: Thu, 21 Sep 2023 14:56:40 +0000 Subject: [PATCH 051/154] feat: Convert from proposal plugins to transform plugins --- code/frameworks/nextjs/package.json | 8 +-- code/frameworks/nextjs/src/babel/preset.ts | 8 +-- .../src/argTypes/convert/convert.test.ts | 2 +- .../react/src/docs/extractArgTypes.test.ts | 2 +- code/yarn.lock | 57 +++---------------- scripts/package.json | 2 +- scripts/yarn.lock | 16 +----- 7 files changed, 22 insertions(+), 73 deletions(-) diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index a2b64993a8e5..98d72bc63cf1 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -80,13 +80,13 @@ }, "dependencies": { "@babel/core": "^7.22.9", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.7", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-import-assertions": "^7.22.5", + "@babel/plugin-transform-class-properties": "^7.22.5", + "@babel/plugin-transform-export-namespace-from": "^7.22.11", + "@babel/plugin-transform-numeric-separator": "^7.22.11", + "@babel/plugin-transform-object-rest-spread": "^7.22.15", "@babel/plugin-transform-runtime": "^7.22.9", "@babel/preset-env": "^7.22.9", "@babel/preset-react": "^7.22.5", diff --git a/code/frameworks/nextjs/src/babel/preset.ts b/code/frameworks/nextjs/src/babel/preset.ts index 08a6c18e4312..46dddd1d1659 100644 --- a/code/frameworks/nextjs/src/babel/preset.ts +++ b/code/frameworks/nextjs/src/babel/preset.ts @@ -142,9 +142,9 @@ export default (api: any, options: NextBabelPresetOptions = {}): BabelPreset => require('@babel/plugin-syntax-dynamic-import'), require('@babel/plugin-syntax-import-assertions'), require('./plugins/react-loadable-plugin'), - [require('@babel/plugin-proposal-class-properties'), options['class-properties'] || {}], + [require('@babel/plugin-transform-class-properties'), options['class-properties'] || {}], [ - require('@babel/plugin-proposal-object-rest-spread'), + require('@babel/plugin-transform-object-rest-spread'), { useBuiltIns: true, }, @@ -172,8 +172,8 @@ export default (api: any, options: NextBabelPresetOptions = {}): BabelPreset => isServer && require('@babel/plugin-syntax-bigint'), // Always compile numeric separator because the resulting number is // smaller. - require('@babel/plugin-proposal-numeric-separator'), - require('@babel/plugin-proposal-export-namespace-from'), + require('@babel/plugin-transform-numeric-separator'), + require('@babel/plugin-transform-export-namespace-from'), ].filter(Boolean), }; }; diff --git a/code/lib/docs-tools/src/argTypes/convert/convert.test.ts b/code/lib/docs-tools/src/argTypes/convert/convert.test.ts index 5b7b15ec6c63..51ad20482478 100644 --- a/code/lib/docs-tools/src/argTypes/convert/convert.test.ts +++ b/code/lib/docs-tools/src/argTypes/convert/convert.test.ts @@ -812,7 +812,7 @@ const transformToModule = (inputCode: string) => { const annotateWithDocgen = (inputCode: string, filename: string) => { const options = { presets: ['@babel/typescript', '@babel/react'], - plugins: ['babel-plugin-react-docgen', '@babel/plugin-proposal-class-properties'], + plugins: ['babel-plugin-react-docgen', '@babel/plugin-transform-class-properties'], babelrc: false, filename, }; diff --git a/code/renderers/react/src/docs/extractArgTypes.test.ts b/code/renderers/react/src/docs/extractArgTypes.test.ts index 31ea19fd754c..f96a8722e9d9 100644 --- a/code/renderers/react/src/docs/extractArgTypes.test.ts +++ b/code/renderers/react/src/docs/extractArgTypes.test.ts @@ -37,7 +37,7 @@ const transformToModule = (inputCode: string) => { const annotateWithDocgen = (inputPath: string) => { const options = { presets: ['@babel/typescript', '@babel/react'], - plugins: ['babel-plugin-react-docgen', '@babel/plugin-proposal-class-properties'], + plugins: ['babel-plugin-react-docgen', '@babel/plugin-transform-class-properties'], babelrc: false, }; const { code } = transformFileSync(inputPath, options) || {}; diff --git a/code/yarn.lock b/code/yarn.lock index c347c91c99c8..2aad85e88b48 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -414,7 +414,7 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": version: 7.22.9 resolution: "@babel/compat-data@npm:7.22.9" checksum: 1334264b041f8ad4e33036326970c9c26754eb5c04b3af6c223fe6da988cbb8a8542b5526f49ec1ac488210d2f710484a0e4bcd30256294ae3f261d0141febad @@ -555,7 +555,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.12.0, @babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.22.9": +"@babel/helper-compilation-targets@npm:^7.12.0, @babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.22.5, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.22.9": version: 7.22.15 resolution: "@babel/helper-compilation-targets@npm:7.22.15" dependencies: @@ -683,7 +683,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": version: 7.22.5 resolution: "@babel/helper-plugin-utils@npm:7.22.5" checksum: d2c4bfe2fa91058bcdee4f4e57a3f4933aed7af843acfd169cd6179fab8d13c1d636474ecabb2af107dc77462c7e893199aa26632bac1c6d7e025a17cbb9d20d @@ -844,7 +844,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-class-properties@npm:^7.13.0, @babel/plugin-proposal-class-properties@npm:^7.16.5, @babel/plugin-proposal-class-properties@npm:^7.18.6": +"@babel/plugin-proposal-class-properties@npm:^7.13.0, @babel/plugin-proposal-class-properties@npm:^7.16.5": version: 7.18.6 resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" dependencies: @@ -871,18 +871,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-export-namespace-from@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.18.9" - dependencies: - "@babel/helper-plugin-utils": ^7.18.9 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b90346bd3628ebd44138d0628a5aba1e6b11748893fb48e87008cac30f3bc7cd3161362e49433156737350318174164436357a66fbbfdbe952606b460bd8a0e4 - languageName: node - linkType: hard - "@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.13.8": version: 7.18.6 resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" @@ -895,33 +883,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-numeric-separator@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-numeric-separator@npm:7.18.6" - dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: a83a65c6ec0d2293d830e9db61406d246f22d8ea03583d68460cb1b6330c6699320acce1b45f66ba3c357830720e49267e3d99f95088be457c66e6450fbfe3fa - languageName: node - linkType: hard - -"@babel/plugin-proposal-object-rest-spread@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" - dependencies: - "@babel/compat-data": ^7.20.5 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.20.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: b9818749bb49d8095df64c45db682448d04743d96722984cbfd375733b2585c26d807f84b4fdb28474f2d614be6a6ffe3d96ffb121840e9e5345b2ccc0438bd8 - languageName: node - linkType: hard - "@babel/plugin-proposal-optional-chaining@npm:^7.13.12": version: 7.21.0 resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0" @@ -1665,7 +1626,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.22.15, @babel/plugin-transform-parameters@npm:^7.22.5": +"@babel/plugin-transform-parameters@npm:^7.22.15, @babel/plugin-transform-parameters@npm:^7.22.5": version: 7.22.15 resolution: "@babel/plugin-transform-parameters@npm:7.22.15" dependencies: @@ -7284,13 +7245,13 @@ __metadata: resolution: "@storybook/nextjs@workspace:frameworks/nextjs" dependencies: "@babel/core": ^7.22.9 - "@babel/plugin-proposal-class-properties": ^7.18.6 - "@babel/plugin-proposal-export-namespace-from": ^7.18.9 - "@babel/plugin-proposal-numeric-separator": ^7.18.6 - "@babel/plugin-proposal-object-rest-spread": ^7.20.7 "@babel/plugin-syntax-bigint": ^7.8.3 "@babel/plugin-syntax-dynamic-import": ^7.8.3 "@babel/plugin-syntax-import-assertions": ^7.22.5 + "@babel/plugin-transform-class-properties": ^7.22.5 + "@babel/plugin-transform-export-namespace-from": ^7.22.11 + "@babel/plugin-transform-numeric-separator": ^7.22.11 + "@babel/plugin-transform-object-rest-spread": ^7.22.15 "@babel/plugin-transform-runtime": ^7.22.9 "@babel/preset-env": ^7.22.9 "@babel/preset-react": ^7.22.5 diff --git a/scripts/package.json b/scripts/package.json index 906bb2b95926..8a1ace601a4d 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -58,12 +58,12 @@ "dependencies": { "@actions/core": "^1.10.0", "@babel/core": "^7.22.0", - "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-decorators": "^7.22.0", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-decorators": "^7.22.0", "@babel/plugin-syntax-jsx": "^7.21.0", "@babel/plugin-syntax-typescript": "^7.21.0", + "@babel/plugin-transform-class-properties": "^7.22.5", "@babel/preset-env": "^7.22.0", "@babel/preset-react": "^7.22.0", "@babel/preset-typescript": "^7.21.0", diff --git a/scripts/yarn.lock b/scripts/yarn.lock index ee273eaf2d45..ee865b1b5b66 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -131,7 +131,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.22.11, @babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.22.5": +"@babel/helper-create-class-features-plugin@npm:^7.22.11, @babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.22.5": version: 7.22.15 resolution: "@babel/helper-create-class-features-plugin@npm:7.22.15" dependencies: @@ -393,18 +393,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-class-properties@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.18.6 - "@babel/helper-plugin-utils": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: d5172ac6c9948cdfc387e94f3493ad86cb04035cf7433f86b5d358270b1b9752dc25e176db0c5d65892a246aca7bdb4636672e15626d7a7de4bc0bd0040168d9 - languageName: node - linkType: hard - "@babel/plugin-proposal-decorators@npm:^7.22.0": version: 7.22.15 resolution: "@babel/plugin-proposal-decorators@npm:7.22.15" @@ -2891,12 +2879,12 @@ __metadata: dependencies: "@actions/core": ^1.10.0 "@babel/core": ^7.22.0 - "@babel/plugin-proposal-class-properties": ^7.18.6 "@babel/plugin-proposal-decorators": ^7.22.0 "@babel/plugin-syntax-class-properties": ^7.12.13 "@babel/plugin-syntax-decorators": ^7.22.0 "@babel/plugin-syntax-jsx": ^7.21.0 "@babel/plugin-syntax-typescript": ^7.21.0 + "@babel/plugin-transform-class-properties": ^7.22.5 "@babel/preset-env": ^7.22.0 "@babel/preset-react": ^7.22.0 "@babel/preset-typescript": ^7.21.0 From 4bf6ba4df6ab08d758b2d7f5bdc0da6aa4f1f61c Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Sun, 24 Sep 2023 08:53:41 +0200 Subject: [PATCH 052/154] cleanup --- scripts/release/is-pr-frozen.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/release/is-pr-frozen.ts b/scripts/release/is-pr-frozen.ts index 27ec56c65c61..364d7289cc9e 100644 --- a/scripts/release/is-pr-frozen.ts +++ b/scripts/release/is-pr-frozen.ts @@ -86,7 +86,6 @@ export const run = async (options: unknown) => { return false; } - // TODO: check if pull request is still open const isFrozen = pullRequest.labels?.includes('freeze'); if (process.env.GITHUB_ACTIONS === 'true') { setOutput('frozen', isFrozen); From 25ebf5c4dce553632e62f638422d6b2bbe59e2dc Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Sun, 24 Sep 2023 09:03:10 +0200 Subject: [PATCH 053/154] fix type errors --- scripts/release/__tests__/generate-pr-description.test.ts | 6 ++++++ scripts/release/__tests__/label-patches.test.ts | 1 + scripts/release/generate-pr-description.ts | 4 ++-- scripts/release/utils/get-changes.ts | 2 +- scripts/release/utils/get-github-info.ts | 7 ++----- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/scripts/release/__tests__/generate-pr-description.test.ts b/scripts/release/__tests__/generate-pr-description.test.ts index fdd412462ae7..306ad627ee78 100644 --- a/scripts/release/__tests__/generate-pr-description.test.ts +++ b/scripts/release/__tests__/generate-pr-description.test.ts @@ -15,6 +15,7 @@ describe('Generate PR Description', () => { labels: ['bug', 'build', 'other label', 'patch:yes'], commit: 'abc123', pull: 42, + state: 'MERGED', links: { commit: '[abc123](https://github.com/storybookjs/storybook/commit/abc123)', pull: '[#42](https://github.com/storybookjs/storybook/pull/42)', @@ -26,6 +27,7 @@ describe('Generate PR Description', () => { id: null, user: 'storybook-bot', pull: null, + state: null, commit: '012b58140c3606efeacbe99c0c410624b0a1ed1f', title: 'Bump version on `next`: preminor (alpha) from 7.2.0 to 7.3.0-alpha.0', labels: null, @@ -41,6 +43,7 @@ describe('Generate PR Description', () => { user: 'shilman', title: 'Some title for a "direct commit"', labels: null, + state: null, commit: '22bb11', pull: null, links: { @@ -55,6 +58,7 @@ describe('Generate PR Description', () => { title: 'Another PR `title` for docs', labels: ['another label', 'documentation', 'patch:yes'], commit: 'ddd222', + state: 'MERGED', pull: 11, links: { commit: '[ddd222](https://github.com/storybookjs/storybook/commit/ddd222)', @@ -69,6 +73,7 @@ describe('Generate PR Description', () => { labels: ['feature request', 'other label'], commit: 'wow1337', pull: 48, + state: 'MERGED', links: { commit: '[wow1337](https://github.com/storybookjs/storybook/commit/wow1337)', pull: '[#48](https://github.com/storybookjs/storybook/pull/48)', @@ -81,6 +86,7 @@ describe('Generate PR Description', () => { title: 'Some PR title with a missing label', labels: ['incorrect label', 'other label'], commit: 'bad999', + state: 'MERGED', pull: 77, links: { commit: '[bad999](https://github.com/storybookjs/storybook/commit/bad999)', diff --git a/scripts/release/__tests__/label-patches.test.ts b/scripts/release/__tests__/label-patches.test.ts index d98abc7eb763..d43290a1828c 100644 --- a/scripts/release/__tests__/label-patches.test.ts +++ b/scripts/release/__tests__/label-patches.test.ts @@ -58,6 +58,7 @@ const pullInfoMock = { commit: '930b47f011f750c44a1782267d698ccdd3c04da3', title: 'Legal: Fix license', labels: ['documentation', 'patch:yes', 'patch:done'], + state: 'MERGED', links: { commit: '[`930b47f011f750c44a1782267d698ccdd3c04da3`](https://github.com/storybookjs/storybook/commit/930b47f011f750c44a1782267d698ccdd3c04da3)', diff --git a/scripts/release/generate-pr-description.ts b/scripts/release/generate-pr-description.ts index aa7dfe7e53e0..8a83e20d4f10 100644 --- a/scripts/release/generate-pr-description.ts +++ b/scripts/release/generate-pr-description.ts @@ -66,7 +66,7 @@ export const mapToChangelist = ({ .filter((change) => { // eslint-disable-next-line no-restricted-syntax for (const titleToIgnore of CHANGE_TITLES_TO_IGNORE) { - if (change.title.match(titleToIgnore)) { + if (change.title?.match(titleToIgnore)) { return false; } } @@ -91,7 +91,7 @@ export const mapToChangelist = ({ )[0] || 'unknown') as keyof typeof LABELS_BY_IMPORTANCE; return `- [ ] **${LABELS_BY_IMPORTANCE[label]}**: ${change.title} ${change.links.pull}${ - !unpickedPatches && change.labels.includes('patch:yes') ? ' (will also be patched)' : '' + !unpickedPatches && change.labels?.includes('patch:yes') ? ' (will also be patched)' : '' }`; }) .join('\n'); diff --git a/scripts/release/utils/get-changes.ts b/scripts/release/utils/get-changes.ts index 1ad2a0759198..416ea624fb50 100644 --- a/scripts/release/utils/get-changes.ts +++ b/scripts/release/utils/get-changes.ts @@ -53,7 +53,7 @@ export const getFromCommit = async (from?: string | undefined, verbose?: boolean console.log(`🔍 No 'from' specified, found latest tag: ${chalk.blue(latest)}`); } } - const commit = await getCommitAt(actualFrom, verbose); + const commit = await getCommitAt(actualFrom!, verbose); if (verbose) { console.log(`🔍 Found 'from' commit: ${chalk.blue(commit)}`); } diff --git a/scripts/release/utils/get-github-info.ts b/scripts/release/utils/get-github-info.ts index ce58b7822359..bdfe995a9001 100644 --- a/scripts/release/utils/get-github-info.ts +++ b/scripts/release/utils/get-github-info.ts @@ -168,7 +168,7 @@ export type PullRequestInfo = { pull: number | null; labels: string[] | null; links: { - commit: string; + commit: string | null; pull: string | null; user: string | null; }; @@ -209,10 +209,7 @@ export async function getPullInfoFromCommit(request: { }, }; } - let user = null; - if (data.author && data.author.user) { - user = data.author.user; - } + let user = data?.author?.user || null; const associatedPullRequest = data.associatedPullRequests && From cc55c3d5bf2e0417469e8aeb68b2d302cf66c5fe Mon Sep 17 00:00:00 2001 From: Atreay Kukanur <66585295+ATREAY@users.noreply.github.com> Date: Mon, 25 Sep 2023 03:51:46 +0000 Subject: [PATCH 054/154] added info about emit() function --- docs/essentials/highlight.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/essentials/highlight.md b/docs/essentials/highlight.md index c1f8222a9885..5d59649214ae 100644 --- a/docs/essentials/highlight.md +++ b/docs/essentials/highlight.md @@ -71,3 +71,10 @@ By default, the addon applies a standard style to the highlighted elements you'v /> + + +
+ +📚 In all three provided code snippets, the "emit" function comes from the `useChannel` hook, which is imported from the `@storybook/preview-api` package. This `useChannel` hook is used to create a communication channel for sending and receiving messages within the code. The "emit" function obtained from `useChannel` is then used to send messages with specific event types, such as `HIGHLIGHT` or `RESET_HIGHLIGHT`, to control or customize the behavior in the code. + +
\ No newline at end of file From bbe075a18ae07f15d67cede6fc048a8192498d6e Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 25 Sep 2023 05:44:59 -0500 Subject: [PATCH 055/154] deprecate storyIndexers on usage --- code/lib/core-server/src/utils/StoryIndexGenerator.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/code/lib/core-server/src/utils/StoryIndexGenerator.ts b/code/lib/core-server/src/utils/StoryIndexGenerator.ts index 418ba796d375..0f847b8917a1 100644 --- a/code/lib/core-server/src/utils/StoryIndexGenerator.ts +++ b/code/lib/core-server/src/utils/StoryIndexGenerator.ts @@ -119,12 +119,6 @@ export class StoryIndexGenerator { public readonly options: StoryIndexGeneratorOptions ) { this.specifierToCache = new Map(); - if (options.storyIndexers.length > 1) { - deprecate( - dedent`'storyIndexers' is deprecated, please use 'experimental_indexers' instead. - - Refer to the migration guide at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storyindexers-is-replaced-with-experimental_indexers` - ); - } } async initialize() { @@ -298,6 +292,10 @@ export class StoryIndexGenerator { invariant(indexer, `No matching indexer found for ${absolutePath}`); if (indexer.indexer) { + deprecate( + dedent`'storyIndexers' is deprecated, please use 'experimental_indexers' instead. Found a deprecated indexer with matcher: ${indexer.test} + - Refer to the migration guide at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#storyindexers-is-replaced-with-experimental_indexers` + ); return this.extractStoriesFromDeprecatedIndexer({ indexer: indexer.indexer, indexerOptions: { makeTitle: defaultMakeTitle }, From 0b7f436ac01c54342a32c5f883f57feec6a377e6 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 25 Sep 2023 05:54:50 -0500 Subject: [PATCH 056/154] add docs link to migration --- MIGRATION.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/MIGRATION.md b/MIGRATION.md index b529325aac69..acb9780812d8 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -325,13 +325,13 @@ npx storybook@latest migrate csf-2-to-3 --glob="**/*.stories.tsx" --parser=tsx They won't do a perfect migration so we recommend that you manually go through each file afterwards. -Alternatively you can build your own `storiesOf` implementation by leveraging the new (experimental) indexer API ([documentation](TODO), [migration](#storyindexers-is-replaced-with-experimental_indexers)). A proof of concept of such an implementation can be seen in [this StackBlitz demo](https://stackblitz.com/edit/github-h2rgfk?file=README.md). See the demo's `README.md` for a deeper explanation of the implementation. +Alternatively you can build your own `storiesOf` implementation by leveraging the new (experimental) indexer API ([documentation](https://storybook.js.org/docs/react/api/main-config-indexers), [migration](#storyindexers-is-replaced-with-experimental_indexers)). A proof of concept of such an implementation can be seen in [this StackBlitz demo](https://stackblitz.com/edit/github-h2rgfk?file=README.md). See the demo's `README.md` for a deeper explanation of the implementation. #### `storyIndexers` is replaced with `experimental_indexers` Defining custom indexers for stories has become a more official - yet still experimental - API which is now configured at `experimental_indexers` instead of `storyIndexers` in `main.ts`. `storyIndexers` has been deprecated and will be fully removed in version 8.0.0. -The new experimental indexers are documented [here](TODO!!!). The most notable change from `storyIndexers` is that the indexer must now return a list of [`IndexInput`](https://github.com/storybookjs/storybook/blob/next/code/lib/types/src/modules/indexer.ts#L104-L148) instead of `CsfFile`. It's possible to construct an `IndexInput` from a `CsfFile` using the `CsfFile.indexInputs` getter. +The new experimental indexers are documented [here](https://storybook.js.org/docs/react/api/main-config-indexers). The most notable change from `storyIndexers` is that the indexer must now return a list of [`IndexInput`](https://github.com/storybookjs/storybook/blob/next/code/lib/types/src/modules/indexer.ts#L104-L148) instead of `CsfFile`. It's possible to construct an `IndexInput` from a `CsfFile` using the `CsfFile.indexInputs` getter. That means you can convert an existing story indexer like this: @@ -1114,7 +1114,7 @@ Starting in 7.0, we drop support for Angular < 14 _Has automigration_ -In Storybook 6.4 we deprecated calling Storybook directly (e.g. `npm run storybook`) for Angular. In Storybook 7.0, we've removed it entirely. Instead, you have to set up the Storybook builder in your `angular.json` and execute `ng run :storybook` to start Storybook. +In Storybook 6.4 we deprecated calling Storybook directly (e.g. `npm run storybook`) for Angular. In Storybook 7.0, we've removed it entirely. Instead, you have to set up the Storybook builder in your `angular.json` and execute `ng run :storybook` to start Storybook. You can run `npx storybook@next automigrate` to automatically fix your configuration, or visit https://github.com/storybookjs/storybook/tree/next/code/frameworks/angular/README.md#how-do-i-migrate-to-an-angular-storybook-builder for instructions on how to set up Storybook for Angular manually. From 130154b338667957d561fac45de9d9f2c711c6a4 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 25 Sep 2023 06:00:49 -0500 Subject: [PATCH 057/154] fix migration title --- MIGRATION.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MIGRATION.md b/MIGRATION.md index acb9780812d8..767ca41326d2 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -1,6 +1,6 @@

Migration

-- [From version 7.3.0 to 7.4.0](#from-version-730-to-740) +- [From version 7.4.0 to 7.5.0](#from-version-740-to-750) - [`storyStoreV6` and `storiesOf` is deprecated](#storystorev6-and-storiesof-is-deprecated) - [`storyIndexers` is replaced with `experimental_indexers`](#storyindexers-is-replaced-with-experimental_indexers) - [From version 7.0.0 to 7.2.0](#from-version-700-to-720) @@ -305,7 +305,7 @@ - [Packages renaming](#packages-renaming) - [Deprecated embedded addons](#deprecated-embedded-addons) -## From version 7.3.0 to 7.4.0 +## From version 7.4.0 to 7.5.0 #### `storyStoreV6` and `storiesOf` is deprecated From 7e6b56a40559c7cdbf6563d75dca7078b5e13853 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 25 Sep 2023 06:14:24 -0500 Subject: [PATCH 058/154] add migration note about support both versions --- MIGRATION.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/MIGRATION.md b/MIGRATION.md index 767ca41326d2..1708f26a3dbe 100644 --- a/MIGRATION.md +++ b/MIGRATION.md @@ -369,6 +369,8 @@ export default { }; ``` +As an addon author you can support previous versions of Storybook by setting both `storyIndexers` and `indexers_experimental`, without triggering the deprecation warning. + ## From version 7.0.0 to 7.2.0 #### Addon API is more type-strict From 9ca7ed4ce4aae1372d40c52e17ea7f9a4bfdfde6 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 25 Sep 2023 06:22:21 -0500 Subject: [PATCH 059/154] cancel when 0 patches to pick --- .github/workflows/prepare-hotfix-release.yml | 9 +++++++++ scripts/release/pick-patches.ts | 1 + 2 files changed, 10 insertions(+) diff --git a/.github/workflows/prepare-hotfix-release.yml b/.github/workflows/prepare-hotfix-release.yml index 032357306f50..43636b8294a9 100644 --- a/.github/workflows/prepare-hotfix-release.yml +++ b/.github/workflows/prepare-hotfix-release.yml @@ -88,6 +88,15 @@ jobs: git config --global user.email '32066757+storybook-bot@users.noreply.github.com' yarn release:pick-patches + - name: Cancel when no hotfixes to pick + if: steps.pick-patches.outputs.pr-count == '0' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # From https://stackoverflow.com/a/75809743 + run: | + gh run cancel ${{ github.run_id }} + gh run watch ${{ github.run_id }} + - name: Bump version deferred id: bump-version if: steps.unreleased-changes.outputs.has-changes-to-release == 'true' diff --git a/scripts/release/pick-patches.ts b/scripts/release/pick-patches.ts index eab1743dcc7b..9d3169d78c8a 100644 --- a/scripts/release/pick-patches.ts +++ b/scripts/release/pick-patches.ts @@ -80,6 +80,7 @@ export const run = async (_: unknown) => { } if (process.env.GITHUB_ACTIONS === 'true') { + setOutput('pr-count', JSON.stringify(patchPRs.length)); setOutput('failed-cherry-picks', JSON.stringify(failedCherryPicks)); } }; From 22f12e68f4ebb89c8f39111ee2e709fef0105f6d Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 25 Sep 2023 06:23:23 -0500 Subject: [PATCH 060/154] temp rename workflow to test --- .../{prepare-hotfix-release.yml => prepare-patch-release.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{prepare-hotfix-release.yml => prepare-patch-release.yml} (100%) diff --git a/.github/workflows/prepare-hotfix-release.yml b/.github/workflows/prepare-patch-release.yml similarity index 100% rename from .github/workflows/prepare-hotfix-release.yml rename to .github/workflows/prepare-patch-release.yml From e719c5394499fc1232687c29e7eceed5b61aea0b Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 25 Sep 2023 07:15:33 -0500 Subject: [PATCH 061/154] try number when reading pr-count --- .github/workflows/prepare-patch-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prepare-patch-release.yml b/.github/workflows/prepare-patch-release.yml index 43636b8294a9..7fd805c34a63 100644 --- a/.github/workflows/prepare-patch-release.yml +++ b/.github/workflows/prepare-patch-release.yml @@ -89,7 +89,7 @@ jobs: yarn release:pick-patches - name: Cancel when no hotfixes to pick - if: steps.pick-patches.outputs.pr-count == '0' + if: steps.pick-patches.outputs.pr-count == 0 env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} # From https://stackoverflow.com/a/75809743 From d7575904db51b5e167ec7167a1be10bf49b4c498 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 25 Sep 2023 07:21:37 -0500 Subject: [PATCH 062/154] compare less than 1 --- .github/workflows/prepare-patch-release.yml | 2 +- scripts/release/pick-patches.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prepare-patch-release.yml b/.github/workflows/prepare-patch-release.yml index 7fd805c34a63..99460e11cce2 100644 --- a/.github/workflows/prepare-patch-release.yml +++ b/.github/workflows/prepare-patch-release.yml @@ -89,7 +89,7 @@ jobs: yarn release:pick-patches - name: Cancel when no hotfixes to pick - if: steps.pick-patches.outputs.pr-count == 0 + if: steps.pick-patches.outputs.pr-count < 1 env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} # From https://stackoverflow.com/a/75809743 diff --git a/scripts/release/pick-patches.ts b/scripts/release/pick-patches.ts index 9d3169d78c8a..449a31ceaeb0 100644 --- a/scripts/release/pick-patches.ts +++ b/scripts/release/pick-patches.ts @@ -80,7 +80,7 @@ export const run = async (_: unknown) => { } if (process.env.GITHUB_ACTIONS === 'true') { - setOutput('pr-count', JSON.stringify(patchPRs.length)); + setOutput('pr-count', patchPRs.length); setOutput('failed-cherry-picks', JSON.stringify(failedCherryPicks)); } }; From 8466a08300c98079922f59f1820f81f59c8351a4 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 25 Sep 2023 07:33:32 -0500 Subject: [PATCH 063/154] check non-null in pr count --- .github/workflows/prepare-patch-release.yml | 2 +- scripts/release/pick-patches.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prepare-patch-release.yml b/.github/workflows/prepare-patch-release.yml index 99460e11cce2..bd773a24610b 100644 --- a/.github/workflows/prepare-patch-release.yml +++ b/.github/workflows/prepare-patch-release.yml @@ -89,7 +89,7 @@ jobs: yarn release:pick-patches - name: Cancel when no hotfixes to pick - if: steps.pick-patches.outputs.pr-count < 1 + if: steps.pick-patches.outputs.pr-count == '0' && steps.pick-patches.outputs.pr-count != null env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} # From https://stackoverflow.com/a/75809743 diff --git a/scripts/release/pick-patches.ts b/scripts/release/pick-patches.ts index 449a31ceaeb0..9d3169d78c8a 100644 --- a/scripts/release/pick-patches.ts +++ b/scripts/release/pick-patches.ts @@ -80,7 +80,7 @@ export const run = async (_: unknown) => { } if (process.env.GITHUB_ACTIONS === 'true') { - setOutput('pr-count', patchPRs.length); + setOutput('pr-count', JSON.stringify(patchPRs.length)); setOutput('failed-cherry-picks', JSON.stringify(failedCherryPicks)); } }; From d83d4227898982548a0a9ca4b7da736966115dd0 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 25 Sep 2023 07:41:01 -0500 Subject: [PATCH 064/154] rename patch workflow --- .../{prepare-patch-release.yml => prepare-hotfix-release.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{prepare-patch-release.yml => prepare-hotfix-release.yml} (100%) diff --git a/.github/workflows/prepare-patch-release.yml b/.github/workflows/prepare-hotfix-release.yml similarity index 100% rename from .github/workflows/prepare-patch-release.yml rename to .github/workflows/prepare-hotfix-release.yml From 855d053001508b8542e88a490b8d55d67d7538b7 Mon Sep 17 00:00:00 2001 From: Yossi Saadi Date: Mon, 2 Oct 2023 01:47:04 +0300 Subject: [PATCH 065/154] docs: fix import path --- docs/snippets/common/storybook-addon-panel-initial.js.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/snippets/common/storybook-addon-panel-initial.js.mdx b/docs/snippets/common/storybook-addon-panel-initial.js.mdx index 707e8bb199a7..f097d264461a 100644 --- a/docs/snippets/common/storybook-addon-panel-initial.js.mdx +++ b/docs/snippets/common/storybook-addon-panel-initial.js.mdx @@ -3,7 +3,7 @@ import React from 'react'; -import { addons, types } from '@storybook/preview-api'; +import { addons, types } from '@storybook/manager-api'; import { AddonPanel } from '@storybook/components'; From 2b29cfbce1401c59fc83f093aec123e029ea5972 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 2 Oct 2023 16:12:16 +0200 Subject: [PATCH 066/154] Add code to let the preview decide which story to view if the URL doesn't specify the full ID. Add e2e test for this behavior. --- code/e2e-tests/navigation.spec.ts | 18 ++++++++++++++++++ code/lib/manager-api/src/modules/stories.ts | 7 +++++-- 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 code/e2e-tests/navigation.spec.ts diff --git a/code/e2e-tests/navigation.spec.ts b/code/e2e-tests/navigation.spec.ts new file mode 100644 index 000000000000..a1ec56afedc1 --- /dev/null +++ b/code/e2e-tests/navigation.spec.ts @@ -0,0 +1,18 @@ +import { test, expect } from '@playwright/test'; +import process from 'process'; +import { SbPage } from './util'; + +const storybookUrl = process.env.STORYBOOK_URL || 'http://localhost:8001'; + +test.describe('navigating', () => { + test('a URL with a partial storyId will redirect to the first story', async ({ page }) => { + // this is purposefully not using the SbPage class, and the URL is a partial (it does not contain the full storyId) + await page.goto(`${storybookUrl}?path=/story/example-button`); + + const sbPage = new SbPage(page); + + await sbPage.waitUntilLoaded(); + + await expect(sbPage.page.waitForURL('?path=/docs/example-button--docs')).resolves.toBeTruthy(); + }); +}); diff --git a/code/lib/manager-api/src/modules/stories.ts b/code/lib/manager-api/src/modules/stories.ts index aff85aabcea3..7fa86bdff822 100644 --- a/code/lib/manager-api/src/modules/stories.ts +++ b/code/lib/manager-api/src/modules/stories.ts @@ -637,15 +637,18 @@ export const init: ModuleFn = ({ state.path === '/' || state.viewMode === 'story' || state.viewMode === 'docs'; const stateHasSelection = state.viewMode && state.storyId; const stateSelectionDifferent = state.viewMode !== viewMode || state.storyId !== storyId; + const { type } = state.index[state.storyId]; + const isStory = !(type === 'root' || type === 'component' || type === 'group'); + /** * When storybook starts, we want to navigate to the first story. * But there are a few exceptions: - * - If the current storyId and viewMode are already set/correct. + * - If the current storyId and viewMode are already set/correct AND the url section is a leaf-type. * - If the user has navigated away already. * - If the user started storybook with a specific page-URL like "/settings/about" */ if (isCanvasRoute) { - if (stateHasSelection && stateSelectionDifferent) { + if (stateHasSelection && stateSelectionDifferent && isStory) { // The manager state is correct, the preview state is lagging behind provider.channel.emit(SET_CURRENT_STORY, { storyId: state.storyId, From dee3552b367423f1ba02cf3bef4b52d06b193542 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Mon, 2 Oct 2023 17:09:46 +0200 Subject: [PATCH 067/154] fix unit test --- code/lib/manager-api/src/modules/stories.ts | 2 +- code/lib/manager-api/src/tests/stories.test.ts | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/code/lib/manager-api/src/modules/stories.ts b/code/lib/manager-api/src/modules/stories.ts index 7fa86bdff822..07d6fb702d30 100644 --- a/code/lib/manager-api/src/modules/stories.ts +++ b/code/lib/manager-api/src/modules/stories.ts @@ -637,7 +637,7 @@ export const init: ModuleFn = ({ state.path === '/' || state.viewMode === 'story' || state.viewMode === 'docs'; const stateHasSelection = state.viewMode && state.storyId; const stateSelectionDifferent = state.viewMode !== viewMode || state.storyId !== storyId; - const { type } = state.index[state.storyId]; + const { type } = state.index[state.storyId] || {}; const isStory = !(type === 'root' || type === 'component' || type === 'group'); /** diff --git a/code/lib/manager-api/src/tests/stories.test.ts b/code/lib/manager-api/src/tests/stories.test.ts index a93cd1df9a99..a6617bce9f41 100644 --- a/code/lib/manager-api/src/tests/stories.test.ts +++ b/code/lib/manager-api/src/tests/stories.test.ts @@ -542,7 +542,7 @@ describe('stories API', () => { describe('STORY_SPECIFIED event', () => { it('navigates to the story', async () => { - const moduleArgs = createMockModuleArgs({ initialState: { path: '/' } }); + const moduleArgs = createMockModuleArgs({ initialState: { path: '/', index: {} } }); initStories(moduleArgs as unknown as ModuleArgs); const { navigate, provider } = moduleArgs; @@ -550,7 +550,7 @@ describe('stories API', () => { expect(navigate).toHaveBeenCalledWith('/story/a--1'); }); it('DOES not navigate if the story was already selected', async () => { - const moduleArgs = createMockModuleArgs({ initialState: { path: '/story/a--1' } }); + const moduleArgs = createMockModuleArgs({ initialState: { path: '/story/a--1', index: {} } }); initStories(moduleArgs as unknown as ModuleArgs); const { navigate, provider } = moduleArgs; @@ -558,7 +558,9 @@ describe('stories API', () => { expect(navigate).not.toHaveBeenCalled(); }); it('DOES not navigate if a settings page was selected', async () => { - const moduleArgs = createMockModuleArgs({ initialState: { path: '/settings/about' } }); + const moduleArgs = createMockModuleArgs({ + initialState: { path: '/settings/about', index: {} }, + }); initStories(moduleArgs as unknown as ModuleArgs); const { navigate, provider } = moduleArgs; @@ -566,7 +568,9 @@ describe('stories API', () => { expect(navigate).not.toHaveBeenCalled(); }); it('DOES not navigate if a custom page was selected', async () => { - const moduleArgs = createMockModuleArgs({ initialState: { path: '/custom/page' } }); + const moduleArgs = createMockModuleArgs({ + initialState: { path: '/custom/page', index: {} }, + }); initStories(moduleArgs as unknown as ModuleArgs); const { navigate, provider } = moduleArgs; From 543871fef138a44966cb7c9523e5b7f29d6c8996 Mon Sep 17 00:00:00 2001 From: Shaun Lloyd Date: Mon, 2 Oct 2023 14:16:06 -0400 Subject: [PATCH 068/154] Update docs to point to addon-styling-webpack --- code/addons/themes/docs/api.md | 14 +++++++------- docs/configure/styling-and-css.md | 6 +++--- docs/snippets/common/main-config-addons.js.mdx | 18 ++++++++++++++++-- docs/snippets/common/main-config-addons.ts.mdx | 18 ++++++++++++++++-- 4 files changed, 42 insertions(+), 14 deletions(-) diff --git a/code/addons/themes/docs/api.md b/code/addons/themes/docs/api.md index 36138394d93b..b499dd945744 100644 --- a/code/addons/themes/docs/api.md +++ b/code/addons/themes/docs/api.md @@ -7,7 +7,7 @@ Takes your provider component, global styles, and theme(s)to wrap your stories in. ```js -import { withThemeFromJSXProvider } from '@storybook/addon-styling'; +import { withThemeFromJSXProvider } from '@storybook/addon-themes'; export const decorators = [ withThemeFromJSXProvider({ @@ -36,7 +36,7 @@ Available options: Takes your theme class names to apply your parent element to enable your theme(s). ```js -import { withThemeByClassName } from '@storybook/addon-styling'; +import { withThemeByClassName } from '@storybook/addon-themes'; export const decorators = [ withThemeByClassName({ @@ -62,7 +62,7 @@ Available options: Takes your theme names and data attribute to apply your parent element to enable your theme(s). ```js -import { withThemeByDataAttribute } from '@storybook/addon-styling'; +import { withThemeByDataAttribute } from '@storybook/addon-themes'; export const decorators = [ withThemeByDataAttribute({ @@ -94,7 +94,7 @@ If none of these decorators work for your library there is still hope. We've pro Pulls the selected theme from storybook's global state. ```js -import { DecoratorHelpers } from '@storybook/addon-styling'; +import { DecoratorHelpers } from '@storybook/addon-themes'; const { pluckThemeFromContext } = DecoratorHelpers; export const myCustomDecorator = @@ -111,7 +111,7 @@ export const myCustomDecorator = Returns the theme parameters for this addon. ```js -import { DecoratorHelpers } from '@storybook/addon-styling'; +import { DecoratorHelpers } from '@storybook/addon-themes'; const { useThemeParameters } = DecoratorHelpers; export const myCustomDecorator = @@ -128,7 +128,7 @@ export const myCustomDecorator = Used to register the themes and defaultTheme with the addon state. ```js -import { DecoratorHelpers } from '@storybook/addon-styling'; +import { DecoratorHelpers } from '@storybook/addon-themes'; const { initializeThemeState } = DecoratorHelpers; export const myCustomDecorator = ({ themes, defaultState, ...rest }) => { @@ -147,7 +147,7 @@ Let's use Vuetify as an example. Vuetify uses it's own global state to know whic ```js // .storybook/withVeutifyTheme.decorator.js -import { DecoratorHelpers } from '@storybook/addon-styling'; +import { DecoratorHelpers } from '@storybook/addon-themes'; import { useTheme } from 'vuetify'; const { initializeThemeState, pluckThemeFromContext, useThemeParameters } = DecoratorHelpers; diff --git a/docs/configure/styling-and-css.md b/docs/configure/styling-and-css.md index b328359af00f..fb3b0bdbfd8a 100644 --- a/docs/configure/styling-and-css.md +++ b/docs/configure/styling-and-css.md @@ -2,7 +2,7 @@ title: 'Styling and CSS' --- -There are many ways to include CSS in a web application, and correspondingly there are many ways to include CSS in Storybook. Usually, it is best to try and replicate what your application does with styling in Storybook’s configuration. To make this easier, we recommend using [`@storybook/addon-styling`](https://github.com/storybookjs/addon-styling). +There are many ways to include CSS in a web application, and correspondingly there are many ways to include CSS in Storybook. Usually, it is best to try and replicate what your application does with styling in Storybook’s configuration. To make this easier, we recommend using [`@storybook/addon-styling-webpack`](https://storybook.js.org/addons/@storybook/addon-styling-webpack/). ## Importing CSS files @@ -25,11 +25,11 @@ If your component files import their CSS files, this will work too. The noticeab If you're using Vite as your builder, you're covered! Vite supports Sass and PostCSS out-of-the-box 🎉 -However, if you're using Webpack and want to use Sass and PostCss, you'll need some extra configuration. We recommend installing [`@storybook/addon-styling`](https://github.com/storybookjs/addon-styling#storybookaddon-styling) to help you configure these tools. Or if you'd prefer, you can customize [Storybook's webpack configuration yourself](../builders/webpack.md#override-the-default-configuration) to include the appropriate loader(s). +However, if you're using Webpack and want to use Sass and PostCss, you'll need some extra configuration. We recommend installing [`@storybook/addon-styling-webpack`](https://storybook.js.org/addons/@storybook/addon-styling-webpack/) to help you configure these tools. Or if you'd prefer, you can customize [Storybook's webpack configuration yourself](../builders/webpack.md#override-the-default-configuration) to include the appropriate loader(s). ## CSS-in-JS -CSS-in-JS libraries are designed to use basic JavaScript, and they often work in Storybook without any extra configuration. Some libraries expect components to render in a specific rendering “context” (for example, to provide themes), which can be accomplished with `@storybook/addon-styling`'s [`withThemeFromJSXProvider` decorator](https://github.com/storybookjs/addon-styling/blob/next/docs/api.md#withthemefromjsxprovider). +CSS-in-JS libraries are designed to use basic JavaScript, and they often work in Storybook without any extra configuration. Some libraries expect components to render in a specific rendering “context” (for example, to provide themes), which can be accomplished with `@storybook/addon-themes`'s [`withThemeFromJSXProvider` decorator](https://github.com/storybookjs/storybook/blob/next/code/addons/themes/docs/api.md#withthemefromjsxprovider). ## Adding webfonts diff --git a/docs/snippets/common/main-config-addons.js.mdx b/docs/snippets/common/main-config-addons.js.mdx index 9658ffd13d43..81db53b1cd83 100644 --- a/docs/snippets/common/main-config-addons.js.mdx +++ b/docs/snippets/common/main-config-addons.js.mdx @@ -8,9 +8,23 @@ export default { addons: [ '@storybook/addon-essentials', { - name: '@storybook/addon-styling', + name: '@storybook/addon-styling-webpack', options: { - postCss: true, + rules: [ + { + test: /\.css$/, + use: [ + 'style-loader', + 'css-loader', + { + loader: 'postcss-loader', + options: { + implementation: require.resolve('postcss'), + }, + }, + ], + }, + ], }, }, ], diff --git a/docs/snippets/common/main-config-addons.ts.mdx b/docs/snippets/common/main-config-addons.ts.mdx index 1038c4a4b41f..29c023182344 100644 --- a/docs/snippets/common/main-config-addons.ts.mdx +++ b/docs/snippets/common/main-config-addons.ts.mdx @@ -10,9 +10,23 @@ const config: StorybookConfig = { addons: [ '@storybook/addon-essentials', { - name: '@storybook/addon-styling', + name: '@storybook/addon-styling-webpack', options: { - postCss: true, + rules: [ + { + test: /\.css$/, + use: [ + 'style-loader', + 'css-loader', + { + loader: 'postcss-loader', + options: { + implementation: require.resolve('postcss'), + }, + }, + ], + }, + ], }, }, ], From bc8a4966794fe0b92ecd41b851134f432efc3567 Mon Sep 17 00:00:00 2001 From: Martin Nabhan <7613182+martinnabhan@users.noreply.github.com> Date: Tue, 3 Oct 2023 11:23:30 +0900 Subject: [PATCH 069/154] Use the same Image Context for ESM and CommonJS --- code/frameworks/nextjs/package.json | 7 +------ code/frameworks/nextjs/template/stories/Image.stories.jsx | 6 ------ 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index a9142100cf8d..e98e1a071055 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -27,14 +27,9 @@ "require": "./dist/index.js", "import": "./dist/index.mjs" }, - "./image-context": { - "types": "./dist/image-context.d.ts", - "require": "./dist/image-context.js", - "import": "./dist/image-context.mjs" - }, "./dist/image-context": { "types": "./dist/image-context.d.ts", - "require": "./dist/image-context.js", + "require": "./dist/image-context.mjs", "import": "./dist/image-context.mjs" }, "./preset": { diff --git a/code/frameworks/nextjs/template/stories/Image.stories.jsx b/code/frameworks/nextjs/template/stories/Image.stories.jsx index 46ef28363830..7a8803a6e992 100644 --- a/code/frameworks/nextjs/template/stories/Image.stories.jsx +++ b/code/frameworks/nextjs/template/stories/Image.stories.jsx @@ -61,10 +61,6 @@ export const Lazy = { width: 50, height: 50, }, - parameters: { - // ignoring in Chromatic to avoid inconsistent snapshots since the image is sometimes not loaded in time - chromatic: { disableSnapshot: true }, - }, decorators: [ (Story) => ( <> @@ -78,8 +74,6 @@ export const Lazy = { export const Eager = { ...Lazy, parameters: { - // ignoring in Chromatic to avoid inconsistent snapshots since the image is sometimes not loaded in time - chromatic: { disableSnapshot: true }, nextjs: { image: { loading: 'eager', From 6ee8dcadba9c005ebfb368195d147b4ca67c949c Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Tue, 3 Oct 2023 09:11:40 +0200 Subject: [PATCH 070/154] Fix Nextjs project detection --- .github/workflows/generate-sandboxes-next.yml | 2 +- code/lib/cli/src/project_types.ts | 9 +-------- scripts/sandbox/generate.ts | 4 ++++ 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/.github/workflows/generate-sandboxes-next.yml b/.github/workflows/generate-sandboxes-next.yml index f6ab2f7c822f..c20f5491ef30 100644 --- a/.github/workflows/generate-sandboxes-next.yml +++ b/.github/workflows/generate-sandboxes-next.yml @@ -43,7 +43,7 @@ jobs: run: yarn wait-on http://localhost:6001 working-directory: ./code - name: Generate - run: yarn generate-sandboxes --local-registry --exclude=angular-cli/prerelease + run: yarn generate-sandboxes --local-registry --exclude=angular-cli/prerelease --debug working-directory: ./code - name: Publish run: yarn publish-sandboxes --remote=https://storybook-bot:${{ secrets.PAT_STORYBOOK_BOT}}@github.com/storybookjs/sandboxes.git --push --branch=next diff --git a/code/lib/cli/src/project_types.ts b/code/lib/cli/src/project_types.ts index 25c058dee818..05c64b402423 100644 --- a/code/lib/cli/src/project_types.ts +++ b/code/lib/cli/src/project_types.ts @@ -5,11 +5,6 @@ function ltMajor(versionRange: string, major: number) { return validRange(versionRange) && minVersion(versionRange).major < major; } -function gtMajor(versionRange: string, major: number) { - // Uses validRange to avoid a throw from minVersion if an invalid range gets passed - return validRange(versionRange) && minVersion(versionRange).major > major; -} - function eqMajor(versionRange: string, major: number) { // Uses validRange to avoid a throw from minVersion if an invalid range gets passed return validRange(versionRange) && minVersion(versionRange).major === major; @@ -162,9 +157,7 @@ export const supportedTemplates: TemplateConfiguration[] = [ }, { preset: ProjectType.NEXTJS, - dependencies: { - next: (versionRange) => eqMajor(versionRange, 9) || gtMajor(versionRange, 9), - }, + dependencies: ['next'], matcherFunction: ({ dependencies }) => { return dependencies.every(Boolean); }, diff --git a/scripts/sandbox/generate.ts b/scripts/sandbox/generate.ts index 0e477b1a6220..22a4eccf4d14 100755 --- a/scripts/sandbox/generate.ts +++ b/scripts/sandbox/generate.ts @@ -125,6 +125,10 @@ const runGenerators = async ( localRegistry = true, debug = false ) => { + if (debug) { + console.log('Debug mode enabled. Verbose logs will be printed to the console.'); + } + console.log(`🤹‍♂️ Generating sandboxes with a concurrency of ${maxConcurrentTasks}`); const limit = pLimit(maxConcurrentTasks); From 4c49a5ae380357a8629c64962b3cac52be3e77be Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Tue, 3 Oct 2023 09:53:19 +0200 Subject: [PATCH 071/154] change test, to hopefully also pass on CI --- code/e2e-tests/navigation.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/e2e-tests/navigation.spec.ts b/code/e2e-tests/navigation.spec.ts index a1ec56afedc1..a4c68bdaee36 100644 --- a/code/e2e-tests/navigation.spec.ts +++ b/code/e2e-tests/navigation.spec.ts @@ -13,6 +13,6 @@ test.describe('navigating', () => { await sbPage.waitUntilLoaded(); - await expect(sbPage.page.waitForURL('?path=/docs/example-button--docs')).resolves.toBeTruthy(); + await expect(sbPage.page.url()).toContain('/docs/example-button--docs'); }); }); From cea5d6101d8651c89b90c05519775884ab8962f0 Mon Sep 17 00:00:00 2001 From: Yoan Blanc Date: Tue, 3 Oct 2023 10:24:54 +0200 Subject: [PATCH 072/154] Fix zone.js legacy deep import Signed-off-by: Yoan Blanc --- code/frameworks/angular/src/client/globals.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/frameworks/angular/src/client/globals.ts b/code/frameworks/angular/src/client/globals.ts index 87eff5c3387f..c16095858f16 100644 --- a/code/frameworks/angular/src/client/globals.ts +++ b/code/frameworks/angular/src/client/globals.ts @@ -25,7 +25,7 @@ import { global } from '@storybook/global'; /** ************************************************************************************************* * Zone JS is required by Angular itself. */ -import 'zone.js/dist/zone'; // Included with Angular CLI. +import 'zone.js'; // Included with Angular CLI. /** ************************************************************************************************* * APPLICATION IMPORTS From f83a01b9101bc4be978beb2a4b5d1019b19e4340 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Tue, 3 Oct 2023 11:10:39 +0200 Subject: [PATCH 073/154] move from serve-favicon to a custom route to support svg --- code/lib/core-server/package.json | 2 - .../core-server/src/utils/server-statics.ts | 8 ++-- code/yarn.lock | 38 ------------------- 3 files changed, 4 insertions(+), 44 deletions(-) diff --git a/code/lib/core-server/package.json b/code/lib/core-server/package.json index 8c10b00e73ed..c249bc634c35 100644 --- a/code/lib/core-server/package.json +++ b/code/lib/core-server/package.json @@ -94,7 +94,6 @@ "prompts": "^2.4.0", "read-pkg-up": "^7.0.1", "semver": "^7.3.7", - "serve-favicon": "^2.5.0", "telejson": "^7.2.0", "tiny-invariant": "^1.3.1", "ts-dedent": "^2.0.0", @@ -108,7 +107,6 @@ "@types/compression": "^1.7.0", "@types/ip": "^1.1.0", "@types/node-fetch": "^2.5.7", - "@types/serve-favicon": "^2.5.2", "@types/ws": "^8", "boxen": "^5.1.2", "jest-os-detection": "^1.3.1", diff --git a/code/lib/core-server/src/utils/server-statics.ts b/code/lib/core-server/src/utils/server-statics.ts index b2d5a5e3cbce..19d569cfcc06 100644 --- a/code/lib/core-server/src/utils/server-statics.ts +++ b/code/lib/core-server/src/utils/server-statics.ts @@ -3,16 +3,16 @@ import type { Options, StorybookConfig } from '@storybook/types'; import { getDirectoryFromWorkingDir } from '@storybook/core-common'; import { ConflictingStaticDirConfigError } from '@storybook/core-events/server-errors'; import chalk from 'chalk'; +import type { Router } from 'express'; import express from 'express'; import { pathExists } from 'fs-extra'; -import path from 'path'; -import favicon from 'serve-favicon'; +import path, { basename } from 'path'; import isEqual from 'lodash/isEqual.js'; import { dedent } from 'ts-dedent'; import { defaultStaticDirs } from './constants'; -export async function useStatics(router: any, options: Options) { +export async function useStatics(router: Router, options: Options) { const staticDirs = (await options.presets.apply('staticDirs')) ?? []; const faviconPath = await options.presets.apply('favicon'); @@ -54,7 +54,7 @@ export async function useStatics(router: any, options: Options) { ); } - router.use(favicon(faviconPath)); + router.get(`/${basename(faviconPath)}`, (req, res) => res.sendFile(faviconPath)); } export const parseStaticDir = async (arg: string) => { diff --git a/code/yarn.lock b/code/yarn.lock index 704c48e55acf..af6301afc76b 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6853,7 +6853,6 @@ __metadata: "@types/node-fetch": ^2.5.7 "@types/pretty-hrtime": ^1.0.0 "@types/semver": ^7.3.4 - "@types/serve-favicon": ^2.5.2 "@types/ws": ^8 better-opn: ^3.0.2 boxen: ^5.1.2 @@ -6874,7 +6873,6 @@ __metadata: prompts: ^2.4.0 read-pkg-up: ^7.0.1 semver: ^7.3.7 - serve-favicon: ^2.5.0 slash: ^5.0.0 telejson: ^7.2.0 tiny-invariant: ^1.3.1 @@ -9645,15 +9643,6 @@ __metadata: languageName: node linkType: hard -"@types/serve-favicon@npm:^2.5.2": - version: 2.5.4 - resolution: "@types/serve-favicon@npm:2.5.4" - dependencies: - "@types/express": "*" - checksum: 60bb648eff8bba7f589e9a2027879c39c137c96e1afafb6a09cb220477c1ebe74c3ce4293c52724592f04e3278950b82741f449c8517a432c163107333a0d6b8 - languageName: node - linkType: hard - "@types/serve-index@npm:^1.9.1": version: 1.9.1 resolution: "@types/serve-index@npm:1.9.1" @@ -23671,13 +23660,6 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.1": - version: 2.1.1 - resolution: "ms@npm:2.1.1" - checksum: 056140c631e740369fa21142417aba1bd629ab912334715216c666eb681c8f015c622dd4e38bc1d836b30852b05641331661703af13a0397eb0ca420fc1e75d9 - languageName: node - linkType: hard - "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -28475,13 +28457,6 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:5.1.1": - version: 5.1.1 - resolution: "safe-buffer@npm:5.1.1" - checksum: 1c233bd105deeba3c9a8911ed4ec24ba45adbb51fec02f7944a10a202c38e3df4ef2b524bdeb55f2e4f8c77c13b2959e2e2e6022e5d99acdd70633b5f7e138cf - languageName: node - linkType: hard - "safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": version: 5.1.2 resolution: "safe-buffer@npm:5.1.2" @@ -28790,19 +28765,6 @@ __metadata: languageName: node linkType: hard -"serve-favicon@npm:^2.5.0": - version: 2.5.0 - resolution: "serve-favicon@npm:2.5.0" - dependencies: - etag: ~1.8.1 - fresh: 0.5.2 - ms: 2.1.1 - parseurl: ~1.3.2 - safe-buffer: 5.1.1 - checksum: 7244ced3c46f8dfde591dc801f1e21ebc8fa07c4870cbbaee3ce37104b3aad32858e674e251a8ed4837867ea0dd67cb734b485ae5a7b0895cb6022f8b8c79303 - languageName: node - linkType: hard - "serve-index@npm:^1.9.1": version: 1.9.1 resolution: "serve-index@npm:1.9.1" From bd3abf2a48dae9e4dcac838770efb0f21cee63e7 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Tue, 3 Oct 2023 12:25:15 +0200 Subject: [PATCH 074/154] disable Angular 15 sandbox in CI --- .circleci/config.yml | 20 ++++++++++---------- code/lib/cli/src/sandbox-templates.ts | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 617cdac42c28..ee9dee76c725 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -555,19 +555,19 @@ workflows: requires: - unit-tests - create-sandboxes: - parallelism: 21 + parallelism: 20 requires: - build - build-sandboxes: - parallelism: 21 + parallelism: 20 requires: - create-sandboxes - chromatic-sandboxes: - parallelism: 18 + parallelism: 17 requires: - build-sandboxes - e2e-production: - parallelism: 18 + parallelism: 17 requires: - build-sandboxes - e2e-dev: @@ -575,7 +575,7 @@ workflows: requires: - create-sandboxes - test-runner-production: - parallelism: 18 + parallelism: 17 requires: - build-sandboxes - bench: @@ -609,22 +609,22 @@ workflows: requires: - build - create-sandboxes: - parallelism: 34 + parallelism: 33 requires: - build # - smoke-test-sandboxes: # disabled for now # requires: # - create-sandboxes - build-sandboxes: - parallelism: 34 + parallelism: 33 requires: - create-sandboxes - chromatic-sandboxes: - parallelism: 31 + parallelism: 30 requires: - build-sandboxes - e2e-production: - parallelism: 31 + parallelism: 30 requires: - build-sandboxes - e2e-dev: @@ -632,7 +632,7 @@ workflows: requires: - create-sandboxes - test-runner-production: - parallelism: 31 + parallelism: 30 requires: - build-sandboxes # TODO: reenable once we find out the source of flakyness diff --git a/code/lib/cli/src/sandbox-templates.ts b/code/lib/cli/src/sandbox-templates.ts index 69e858f1d14f..799de8e593ee 100644 --- a/code/lib/cli/src/sandbox-templates.ts +++ b/code/lib/cli/src/sandbox-templates.ts @@ -576,7 +576,7 @@ export const merged: TemplateKey[] = [ ...normal, 'react-webpack/18-ts', 'react-webpack/17-ts', - 'angular-cli/15-ts', + // 'angular-cli/15-ts', // TODO: re-enable when building the storybook works again 'preact-webpack5/default-ts', 'preact-vite/default-ts', 'html-webpack/default', From 6f5dcd9386e852184edecb661b672547f5fb1414 Mon Sep 17 00:00:00 2001 From: Shaun Lloyd Date: Tue, 3 Oct 2023 08:34:25 -0400 Subject: [PATCH 075/154] Add note about when to use styling addon --- docs/configure/styling-and-css.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/configure/styling-and-css.md b/docs/configure/styling-and-css.md index fb3b0bdbfd8a..f8e88f6eb8fb 100644 --- a/docs/configure/styling-and-css.md +++ b/docs/configure/styling-and-css.md @@ -2,7 +2,11 @@ title: 'Styling and CSS' --- -There are many ways to include CSS in a web application, and correspondingly there are many ways to include CSS in Storybook. Usually, it is best to try and replicate what your application does with styling in Storybook’s configuration. To make this easier, we recommend using [`@storybook/addon-styling-webpack`](https://storybook.js.org/addons/@storybook/addon-styling-webpack/). +There are many ways to include CSS in a web application, and correspondingly there are many ways to include CSS in Storybook. Usually, it is best to try and replicate what your application does with styling in Storybook’s configuration. + +If you're using Vite to build your Storybook, you're covered! Storybook will use your vite config file which supports most popular styling tools out-of-the-box 🎉. However, if you're using Webpack, you may need some extra configuration. To make this easier, we recommend using [`@storybook/addon-styling-webpack`](https://storybook.js.org/addons/@storybook/addon-styling-webpack/). + +**Note**: If you're using Storybook with Angular or Next.js, you can skip this section. Storybook will automatically use the same styling configuration as your application. ## Importing CSS files @@ -39,7 +43,7 @@ If you need webfonts to be available, you may need to add some code to the [`.st ### Styles aren't being applied with Angular -The latest Angular releases introduced significant changes in configuring and styling projects. If you're working with an Angular version greater than 13 and your styles aren't being applied, you may need to check your `angular.json` ad adjust the `builder` configuration to import your CSS: +The latest Angular releases introduced significant changes in configuring and styling projects. If you're working with an Angular version greater than 13 and your styles aren't being applied, you may need to check your `angular.json` and adjust the `builder` configuration to import your CSS: ```json { From 090ba7f3dec6bed98e3aaa538ca11d23bd8dca41 Mon Sep 17 00:00:00 2001 From: storybook-bot <32066757+storybook-bot@users.noreply.github.com> Date: Tue, 3 Oct 2023 13:05:28 +0000 Subject: [PATCH 076/154] Write changelog for 7.5.0-alpha.4 --- CHANGELOG.prerelease.md | 12 ++++++++++++ code/package.json | 3 ++- docs/versions/next.json | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.prerelease.md b/CHANGELOG.prerelease.md index b198f6cba525..cc8636b9d524 100644 --- a/CHANGELOG.prerelease.md +++ b/CHANGELOG.prerelease.md @@ -1,3 +1,15 @@ +## 7.5.0-alpha.4 + +- CLI: Fix Nextjs project detection - [#24346](https://github.com/storybookjs/storybook/pull/24346), thanks [@yannbf](https://github.com/yannbf)! +- Core: Deprecate `storyStoreV6` (including `storiesOf`) and `storyIndexers` - [#23938](https://github.com/storybookjs/storybook/pull/23938), thanks [@JReinhold](https://github.com/JReinhold)! +- Core: Fix Promise cycle bug in useSharedState - [#24268](https://github.com/storybookjs/storybook/pull/24268), thanks [@ndelangen](https://github.com/ndelangen)! +- Core: Fix missing favicon during dev - [#24356](https://github.com/storybookjs/storybook/pull/24356), thanks [@ndelangen](https://github.com/ndelangen)! +- NextJS: Change babel plugins from `proposal-...` to `transform-...` - [#24290](https://github.com/storybookjs/storybook/pull/24290), thanks [@roottool](https://github.com/roottool)! +- Nextjs: Improve support for Windows-style paths - [#23695](https://github.com/storybookjs/storybook/pull/23695), thanks [@T99](https://github.com/T99)! +- UI: Fix infinite hook call causing browsers to freeze - [#24291](https://github.com/storybookjs/storybook/pull/24291), thanks [@yannbf](https://github.com/yannbf)! +- UI: Improve contrast ratio between focus / hover - [#24205](https://github.com/storybookjs/storybook/pull/24205), thanks [@chocoscoding](https://github.com/chocoscoding)! +- Vite: Move mdx-plugin from @storybook/builder-vite to @storybook/addon-docs - [#24166](https://github.com/storybookjs/storybook/pull/24166), thanks [@bryanjtc](https://github.com/bryanjtc)! + ## 7.5.0-alpha.3 - Build: Filter some manager errors - [#24217](https://github.com/storybookjs/storybook/pull/24217), thanks [@yannbf](https://github.com/yannbf)! diff --git a/code/package.json b/code/package.json index 386254893d93..807ed23fcac5 100644 --- a/code/package.json +++ b/code/package.json @@ -328,5 +328,6 @@ "Dependency Upgrades" ] ] - } + }, + "deferredNextVersion": "7.5.0-alpha.4" } diff --git a/docs/versions/next.json b/docs/versions/next.json index 2995041f2b7a..e6e5140c4079 100644 --- a/docs/versions/next.json +++ b/docs/versions/next.json @@ -1 +1 @@ -{"version":"7.5.0-alpha.3","info":{"plain":"- Build: Filter some manager errors - [#24217](https://github.com/storybookjs/storybook/pull/24217), thanks [@yannbf](https://github.com/yannbf)!\n- Build: Migrate @storybook/addon-backgrounds to strict-ts - [#22178](https://github.com/storybookjs/storybook/pull/22178), thanks [@kasperpeulen](https://github.com/kasperpeulen)!\n- Build: Upgrade chromatic bin package - [#24133](https://github.com/storybookjs/storybook/pull/24133), thanks [@ndelangen](https://github.com/ndelangen)!\n- CLI: Change `/Date$/` to `/Dates$/i` - [#24195](https://github.com/storybookjs/storybook/pull/24195), thanks [@arup1221](https://github.com/arup1221)!\n- CLI: Fix `sb add` adding duplicative entries - [#24229](https://github.com/storybookjs/storybook/pull/24229), thanks [@ndelangen](https://github.com/ndelangen)!\n- Core: Throw an error when critical presets fail to load - [#24176](https://github.com/storybookjs/storybook/pull/24176), thanks [@yannbf](https://github.com/yannbf)!\n- Core: Unify error when builder is missing - [#24177](https://github.com/storybookjs/storybook/pull/24177), thanks [@yannbf](https://github.com/yannbf)!\n- Core: Upgrade `esbuild-register` to `3.5.0` - [#24175](https://github.com/storybookjs/storybook/pull/24175), thanks [@anneau](https://github.com/anneau)!\n- Dependencies: Upgrade `file-system-cache` - [#24232](https://github.com/storybookjs/storybook/pull/24232), thanks [@seriouz](https://github.com/seriouz)!\n- Indexer: Rename `index` to `createIndex` - [#24075](https://github.com/storybookjs/storybook/pull/24075), thanks [@JReinhold](https://github.com/JReinhold)!\n- Maintenance: Regen lockfiles - [#24152](https://github.com/storybookjs/storybook/pull/24152), thanks [@ndelangen](https://github.com/ndelangen)!\n- Manager: Fix useAddonState when using a setter function - [#24237](https://github.com/storybookjs/storybook/pull/24237), thanks [@ndelangen](https://github.com/ndelangen)!\n- NextJS: Add compatibility with nextjs `13.5` - [#24239](https://github.com/storybookjs/storybook/pull/24239), thanks [@ndelangen](https://github.com/ndelangen)!\n- NextJS: Aliases `react` and `react-dom` like `next.js` does - [#23671](https://github.com/storybookjs/storybook/pull/23671), thanks [@sookmax](https://github.com/sookmax)!\n- Nextjs: Improve Google Fonts failure error messages and documentation - [#23891](https://github.com/storybookjs/storybook/pull/23891), thanks [@nsheaps](https://github.com/nsheaps)!\n- Nextjs: Migrate from config to previewAnnotations - [#24178](https://github.com/storybookjs/storybook/pull/24178), thanks [@yannbf](https://github.com/yannbf)!\n- Theming: Add `barHoverColor` - [#20169](https://github.com/storybookjs/storybook/pull/20169), thanks [@julien-deramond](https://github.com/julien-deramond)!\n- Types: Allow `null` in value of `experimental_updateStatus` to clear status - [#24206](https://github.com/storybookjs/storybook/pull/24206), thanks [@ndelangen](https://github.com/ndelangen)!\n- Types: Don't distribute generic type of Meta and Story - [#24110](https://github.com/storybookjs/storybook/pull/24110), thanks [@kasperpeulen](https://github.com/kasperpeulen)!\n- UI: Expand sidebar for selected story when using composition - [#23781](https://github.com/storybookjs/storybook/pull/23781), thanks [@joaonunomota](https://github.com/joaonunomota)!\n- UI: Fix SVG override fill when path has a fill attribute - [#24156](https://github.com/storybookjs/storybook/pull/24156), thanks [@ndelangen](https://github.com/ndelangen)!\n- UI: Fix TreeNode alignment when using a different font - [#22221](https://github.com/storybookjs/storybook/pull/22221), thanks [@bdriguesdev](https://github.com/bdriguesdev)!\n- UI: Fix custom theme hover-color inconsistency - [#22262](https://github.com/storybookjs/storybook/pull/22262), thanks [@yoshi2no](https://github.com/yoshi2no)!\n- UI: Fix keydown shortcut within shadow tree - [#24179](https://github.com/storybookjs/storybook/pull/24179), thanks [@stropitek](https://github.com/stropitek)!\n- UI: Improve look and feel of status UI in sidebar - [#24099](https://github.com/storybookjs/storybook/pull/24099), thanks [@ndelangen](https://github.com/ndelangen)!"}} +{"version":"7.5.0-alpha.4","info":{"plain":"- CLI: Fix Nextjs project detection - [#24346](https://github.com/storybookjs/storybook/pull/24346), thanks [@yannbf](https://github.com/yannbf)!\n- Core: Deprecate `storyStoreV6` (including `storiesOf`) and `storyIndexers` - [#23938](https://github.com/storybookjs/storybook/pull/23938), thanks [@JReinhold](https://github.com/JReinhold)!\n- Core: Fix Promise cycle bug in useSharedState - [#24268](https://github.com/storybookjs/storybook/pull/24268), thanks [@ndelangen](https://github.com/ndelangen)!\n- Core: Fix missing favicon during dev - [#24356](https://github.com/storybookjs/storybook/pull/24356), thanks [@ndelangen](https://github.com/ndelangen)!\n- NextJS: Change babel plugins from `proposal-...` to `transform-...` - [#24290](https://github.com/storybookjs/storybook/pull/24290), thanks [@roottool](https://github.com/roottool)!\n- Nextjs: Improve support for Windows-style paths - [#23695](https://github.com/storybookjs/storybook/pull/23695), thanks [@T99](https://github.com/T99)!\n- UI: Fix infinite hook call causing browsers to freeze - [#24291](https://github.com/storybookjs/storybook/pull/24291), thanks [@yannbf](https://github.com/yannbf)!\n- UI: Improve contrast ratio between focus / hover - [#24205](https://github.com/storybookjs/storybook/pull/24205), thanks [@chocoscoding](https://github.com/chocoscoding)!\n- Vite: Move mdx-plugin from @storybook/builder-vite to @storybook/addon-docs - [#24166](https://github.com/storybookjs/storybook/pull/24166), thanks [@bryanjtc](https://github.com/bryanjtc)!"}} From 149711c5b454e1c52342fed89e80abd66a93c41e Mon Sep 17 00:00:00 2001 From: storybook-bot <32066757+storybook-bot@users.noreply.github.com> Date: Tue, 3 Oct 2023 13:38:33 +0000 Subject: [PATCH 077/154] Bump version from "7.5.0-alpha.3" to "7.5.0-alpha.4" [skip ci] --- code/addons/a11y/package.json | 2 +- code/addons/actions/package.json | 2 +- code/addons/backgrounds/package.json | 2 +- code/addons/controls/package.json | 2 +- code/addons/docs/package.json | 2 +- code/addons/essentials/package.json | 2 +- code/addons/gfm/package.json | 2 +- code/addons/highlight/package.json | 2 +- code/addons/interactions/package.json | 2 +- code/addons/jest/package.json | 2 +- code/addons/links/package.json | 2 +- code/addons/measure/package.json | 2 +- code/addons/outline/package.json | 2 +- code/addons/storyshots-core/package.json | 2 +- code/addons/storyshots-puppeteer/package.json | 2 +- code/addons/storysource/package.json | 2 +- code/addons/themes/package.json | 2 +- code/addons/toolbars/package.json | 2 +- code/addons/viewport/package.json | 2 +- code/builders/builder-manager/package.json | 2 +- code/builders/builder-vite/package.json | 2 +- code/builders/builder-webpack5/package.json | 2 +- code/deprecated/addons/package.json | 2 +- .../channel-postmessage/package.json | 2 +- .../deprecated/channel-websocket/package.json | 2 +- code/deprecated/client-api/package.json | 2 +- code/deprecated/core-client/package.json | 2 +- code/deprecated/manager-api-shim/package.json | 2 +- code/deprecated/preview-web/package.json | 2 +- code/deprecated/store/package.json | 2 +- code/frameworks/angular/package.json | 2 +- code/frameworks/ember/package.json | 2 +- code/frameworks/html-vite/package.json | 2 +- code/frameworks/html-webpack5/package.json | 2 +- code/frameworks/nextjs/package.json | 2 +- code/frameworks/preact-vite/package.json | 2 +- code/frameworks/preact-webpack5/package.json | 2 +- code/frameworks/react-vite/package.json | 2 +- code/frameworks/react-webpack5/package.json | 2 +- code/frameworks/server-webpack5/package.json | 2 +- code/frameworks/svelte-vite/package.json | 2 +- code/frameworks/svelte-webpack5/package.json | 2 +- code/frameworks/sveltekit/package.json | 2 +- code/frameworks/vue-vite/package.json | 2 +- code/frameworks/vue-webpack5/package.json | 2 +- code/frameworks/vue3-vite/package.json | 2 +- code/frameworks/vue3-webpack5/package.json | 2 +- .../web-components-vite/package.json | 2 +- .../web-components-webpack5/package.json | 2 +- code/lib/channels/package.json | 2 +- code/lib/cli-sb/package.json | 2 +- code/lib/cli-storybook/package.json | 2 +- code/lib/cli/package.json | 2 +- code/lib/cli/src/versions.ts | 188 +++++++++--------- code/lib/client-logger/package.json | 2 +- code/lib/codemod/package.json | 2 +- code/lib/core-common/package.json | 2 +- code/lib/core-events/package.json | 2 +- code/lib/core-server/package.json | 2 +- code/lib/core-webpack/package.json | 2 +- code/lib/csf-plugin/package.json | 2 +- code/lib/csf-tools/package.json | 2 +- code/lib/docs-tools/package.json | 2 +- code/lib/instrumenter/package.json | 2 +- code/lib/manager-api/package.json | 2 +- code/lib/manager-api/src/version.ts | 2 +- code/lib/node-logger/package.json | 2 +- code/lib/postinstall/package.json | 2 +- code/lib/preview-api/package.json | 2 +- code/lib/preview/package.json | 2 +- code/lib/react-dom-shim/package.json | 2 +- code/lib/router/package.json | 2 +- code/lib/source-loader/package.json | 2 +- code/lib/telemetry/package.json | 2 +- code/lib/theming/package.json | 2 +- code/lib/types/package.json | 2 +- code/package.json | 5 +- code/presets/create-react-app/package.json | 2 +- code/presets/html-webpack/package.json | 2 +- code/presets/preact-webpack/package.json | 2 +- code/presets/react-webpack/package.json | 2 +- code/presets/server-webpack/package.json | 2 +- code/presets/svelte-webpack/package.json | 2 +- code/presets/vue-webpack/package.json | 2 +- code/presets/vue3-webpack/package.json | 2 +- .../web-components-webpack/package.json | 2 +- code/renderers/html/package.json | 2 +- code/renderers/preact/package.json | 2 +- code/renderers/react/package.json | 2 +- code/renderers/server/package.json | 2 +- code/renderers/svelte/package.json | 2 +- code/renderers/vue/package.json | 2 +- code/renderers/vue3/package.json | 2 +- code/renderers/web-components/package.json | 2 +- code/ui/blocks/package.json | 2 +- code/ui/components/package.json | 2 +- code/ui/manager/package.json | 2 +- 97 files changed, 191 insertions(+), 192 deletions(-) diff --git a/code/addons/a11y/package.json b/code/addons/a11y/package.json index c4502be4094b..20df88c627d6 100644 --- a/code/addons/a11y/package.json +++ b/code/addons/a11y/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-a11y", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Test component compliance with web accessibility standards", "keywords": [ "a11y", diff --git a/code/addons/actions/package.json b/code/addons/actions/package.json index 395b29c60e4e..dda5650f3129 100644 --- a/code/addons/actions/package.json +++ b/code/addons/actions/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-actions", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Get UI feedback when an action is performed on an interactive element", "keywords": [ "storybook", diff --git a/code/addons/backgrounds/package.json b/code/addons/backgrounds/package.json index dfe6faf33d59..3fb06769672d 100644 --- a/code/addons/backgrounds/package.json +++ b/code/addons/backgrounds/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-backgrounds", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Switch backgrounds to view components in different settings", "keywords": [ "addon", diff --git a/code/addons/controls/package.json b/code/addons/controls/package.json index c831a18a9ebb..829829c166b9 100644 --- a/code/addons/controls/package.json +++ b/code/addons/controls/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-controls", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Interact with component inputs dynamically in the Storybook UI", "keywords": [ "addon", diff --git a/code/addons/docs/package.json b/code/addons/docs/package.json index 02cd1a5a5254..39294a7573b8 100644 --- a/code/addons/docs/package.json +++ b/code/addons/docs/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-docs", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Document component usage and properties in Markdown", "keywords": [ "addon", diff --git a/code/addons/essentials/package.json b/code/addons/essentials/package.json index 8349f8fb04bd..e2e95e6e04e3 100644 --- a/code/addons/essentials/package.json +++ b/code/addons/essentials/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-essentials", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Curated addons to bring out the best of Storybook", "keywords": [ "addon", diff --git a/code/addons/gfm/package.json b/code/addons/gfm/package.json index 4ef15be2efa1..1edd50d8d422 100644 --- a/code/addons/gfm/package.json +++ b/code/addons/gfm/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-mdx-gfm", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "GitHub Flavored Markdown in Storybook", "keywords": [ "addon", diff --git a/code/addons/highlight/package.json b/code/addons/highlight/package.json index af5845acebeb..22a9069a26a1 100644 --- a/code/addons/highlight/package.json +++ b/code/addons/highlight/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-highlight", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Highlight DOM nodes within your stories", "keywords": [ "storybook-addons", diff --git a/code/addons/interactions/package.json b/code/addons/interactions/package.json index d405d8d1e255..237b5c71bf4b 100644 --- a/code/addons/interactions/package.json +++ b/code/addons/interactions/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-interactions", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Automate, test and debug user interactions", "keywords": [ "storybook-addons", diff --git a/code/addons/jest/package.json b/code/addons/jest/package.json index 28f73f6fa9d8..f26d6bc8c8e9 100644 --- a/code/addons/jest/package.json +++ b/code/addons/jest/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-jest", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "React storybook addon that show component jest report", "keywords": [ "addon", diff --git a/code/addons/links/package.json b/code/addons/links/package.json index 6b2fc478179b..dfbaeb62ac89 100644 --- a/code/addons/links/package.json +++ b/code/addons/links/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-links", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Link stories together to build demos and prototypes with your UI components", "keywords": [ "addon", diff --git a/code/addons/measure/package.json b/code/addons/measure/package.json index 092c352a3d4d..4048a81c373e 100644 --- a/code/addons/measure/package.json +++ b/code/addons/measure/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-measure", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Inspect layouts by visualizing the box model", "keywords": [ "storybook-addons", diff --git a/code/addons/outline/package.json b/code/addons/outline/package.json index 6421ad382c91..77bd3f840529 100644 --- a/code/addons/outline/package.json +++ b/code/addons/outline/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-outline", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Outline all elements with CSS to help with layout placement and alignment", "keywords": [ "storybook-addons", diff --git a/code/addons/storyshots-core/package.json b/code/addons/storyshots-core/package.json index e4ab0ee9fc26..40c1efefff70 100644 --- a/code/addons/storyshots-core/package.json +++ b/code/addons/storyshots-core/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-storyshots", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Take a code snapshot of every story automatically with Jest", "keywords": [ "addon", diff --git a/code/addons/storyshots-puppeteer/package.json b/code/addons/storyshots-puppeteer/package.json index 1663d29c3113..cad9d29cca7b 100644 --- a/code/addons/storyshots-puppeteer/package.json +++ b/code/addons/storyshots-puppeteer/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-storyshots-puppeteer", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Image snapshots addition to StoryShots based on puppeteer", "keywords": [ "addon", diff --git a/code/addons/storysource/package.json b/code/addons/storysource/package.json index b3088fad58a2..afc05fcb6e9b 100644 --- a/code/addons/storysource/package.json +++ b/code/addons/storysource/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-storysource", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "View a story’s source code to see how it works and paste into your app", "keywords": [ "addon", diff --git a/code/addons/themes/package.json b/code/addons/themes/package.json index 402c6f53b499..8dc2fdac1a59 100644 --- a/code/addons/themes/package.json +++ b/code/addons/themes/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-themes", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Switch between multiple themes for you components in Storybook", "keywords": [ "css", diff --git a/code/addons/toolbars/package.json b/code/addons/toolbars/package.json index 8d903e8329bf..225542096e83 100644 --- a/code/addons/toolbars/package.json +++ b/code/addons/toolbars/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-toolbars", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Create your own toolbar items that control story rendering", "keywords": [ "addon", diff --git a/code/addons/viewport/package.json b/code/addons/viewport/package.json index 8d0eebe2da4e..e351d612d53f 100644 --- a/code/addons/viewport/package.json +++ b/code/addons/viewport/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-viewport", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Build responsive components by adjusting Storybook’s viewport size and orientation", "keywords": [ "addon", diff --git a/code/builders/builder-manager/package.json b/code/builders/builder-manager/package.json index aa89f1a4a2dd..e588c64a0f9e 100644 --- a/code/builders/builder-manager/package.json +++ b/code/builders/builder-manager/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-manager", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook manager builder", "keywords": [ "storybook" diff --git a/code/builders/builder-vite/package.json b/code/builders/builder-vite/package.json index ad90bd41016e..6e0cc80db781 100644 --- a/code/builders/builder-vite/package.json +++ b/code/builders/builder-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-vite", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "A plugin to run and build Storybooks with Vite", "homepage": "https://github.com/storybookjs/storybook/tree/next/code/builders/builder-vite/#readme", "bugs": { diff --git a/code/builders/builder-webpack5/package.json b/code/builders/builder-webpack5/package.json index 3ebcb46cb095..a9402b286f33 100644 --- a/code/builders/builder-webpack5/package.json +++ b/code/builders/builder-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-webpack5", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/deprecated/addons/package.json b/code/deprecated/addons/package.json index bb239b43c391..5b5c38aac14d 100644 --- a/code/deprecated/addons/package.json +++ b/code/deprecated/addons/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addons", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook addons store", "keywords": [ "storybook" diff --git a/code/deprecated/channel-postmessage/package.json b/code/deprecated/channel-postmessage/package.json index 7ec7734fa6b1..aa0b4152b062 100644 --- a/code/deprecated/channel-postmessage/package.json +++ b/code/deprecated/channel-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channel-postmessage", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/channel-websocket/package.json b/code/deprecated/channel-websocket/package.json index 5812dd647c76..c0dcf7c19306 100644 --- a/code/deprecated/channel-websocket/package.json +++ b/code/deprecated/channel-websocket/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channel-websocket", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/client-api/package.json b/code/deprecated/client-api/package.json index cce9a3e808cf..dfe7cc6c40d4 100644 --- a/code/deprecated/client-api/package.json +++ b/code/deprecated/client-api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/client-api", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook Client API", "keywords": [ "storybook" diff --git a/code/deprecated/core-client/package.json b/code/deprecated/core-client/package.json index 041f5f8e8f48..40d57044f9b0 100644 --- a/code/deprecated/core-client/package.json +++ b/code/deprecated/core-client/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-client", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/deprecated/manager-api-shim/package.json b/code/deprecated/manager-api-shim/package.json index ba69b2d1ea3c..0fa3e479a599 100644 --- a/code/deprecated/manager-api-shim/package.json +++ b/code/deprecated/manager-api-shim/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/api", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook Manager API (facade)", "keywords": [ "storybook" diff --git a/code/deprecated/preview-web/package.json b/code/deprecated/preview-web/package.json index dacea129e8e3..b5845b28acd9 100644 --- a/code/deprecated/preview-web/package.json +++ b/code/deprecated/preview-web/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preview-web", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/store/package.json b/code/deprecated/store/package.json index 560228fe6710..2362d4bab5c7 100644 --- a/code/deprecated/store/package.json +++ b/code/deprecated/store/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/store", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json index 9bc04b9ad933..bdcd21c0ff44 100644 --- a/code/frameworks/angular/package.json +++ b/code/frameworks/angular/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/angular", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.", "keywords": [ "storybook", diff --git a/code/frameworks/ember/package.json b/code/frameworks/ember/package.json index f5155feaf976..7de04d5536d1 100644 --- a/code/frameworks/ember/package.json +++ b/code/frameworks/ember/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/ember", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Ember: Develop Ember Component in isolation with Hot Reloading.", "homepage": "https://github.com/storybookjs/storybook/tree/next/code/frameworks/ember", "bugs": { diff --git a/code/frameworks/html-vite/package.json b/code/frameworks/html-vite/package.json index 8662aafe6a55..dfddffd7886a 100644 --- a/code/frameworks/html-vite/package.json +++ b/code/frameworks/html-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html-vite", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for HTML and Vite: Develop HTML in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json index bfdf6a1a1bd2..02d5ef123a63 100644 --- a/code/frameworks/html-webpack5/package.json +++ b/code/frameworks/html-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html-webpack5", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index 394a6fbb502f..a5fae0c402c5 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/nextjs", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Next.js", "keywords": [ "storybook", diff --git a/code/frameworks/preact-vite/package.json b/code/frameworks/preact-vite/package.json index ba3bf1a368fb..3df266adecec 100644 --- a/code/frameworks/preact-vite/package.json +++ b/code/frameworks/preact-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact-vite", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Preact and Vite: Develop Preact components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json index 22026ace45e4..8d4d7ecb9beb 100644 --- a/code/frameworks/preact-webpack5/package.json +++ b/code/frameworks/preact-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact-webpack5", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Preact: Develop Preact Component in isolation.", "keywords": [ "storybook" diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index 3a56dd4bb77e..e38d7112a906 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-vite", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for React and Vite: Develop React components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index 63bccc4cdded..e767d5e14b42 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-webpack5", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for React: Develop React Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index e51a150727e6..3997eaffc5e2 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/server-webpack5", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/svelte-vite/package.json b/code/frameworks/svelte-vite/package.json index acb1b7dbd301..5eabe2366d49 100644 --- a/code/frameworks/svelte-vite/package.json +++ b/code/frameworks/svelte-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte-vite", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Svelte and Vite: Develop Svelte components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/svelte-webpack5/package.json b/code/frameworks/svelte-webpack5/package.json index 1c2724ac75eb..97ca845f9087 100644 --- a/code/frameworks/svelte-webpack5/package.json +++ b/code/frameworks/svelte-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte-webpack5", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/sveltekit/package.json b/code/frameworks/sveltekit/package.json index f67a365c5a07..8b9f808420b5 100644 --- a/code/frameworks/sveltekit/package.json +++ b/code/frameworks/sveltekit/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/sveltekit", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for SvelteKit", "keywords": [ "storybook", diff --git a/code/frameworks/vue-vite/package.json b/code/frameworks/vue-vite/package.json index a555e6a25e53..d081aa9f1c37 100644 --- a/code/frameworks/vue-vite/package.json +++ b/code/frameworks/vue-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue-vite", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Vue2 and Vite: Develop Vue2 Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/vue-webpack5/package.json b/code/frameworks/vue-webpack5/package.json index 0cf9250fa49e..2c6f6d8d6fc2 100644 --- a/code/frameworks/vue-webpack5/package.json +++ b/code/frameworks/vue-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue-webpack5", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/vue3-vite/package.json b/code/frameworks/vue3-vite/package.json index 8fa49e0856c2..440d63740f21 100644 --- a/code/frameworks/vue3-vite/package.json +++ b/code/frameworks/vue3-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3-vite", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Vue3 and Vite: Develop Vue3 components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json index dbbbdd863a4f..cf035615f7b9 100644 --- a/code/frameworks/vue3-webpack5/package.json +++ b/code/frameworks/vue3-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3-webpack5", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/web-components-vite/package.json b/code/frameworks/web-components-vite/package.json index f5ca940fdef0..1956f8b0047a 100644 --- a/code/frameworks/web-components-vite/package.json +++ b/code/frameworks/web-components-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components-vite", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for web-components and Vite: Develop Web Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json index 83b6e574e9a5..17b38ad48112 100644 --- a/code/frameworks/web-components-webpack5/package.json +++ b/code/frameworks/web-components-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components-webpack5", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.", "keywords": [ "lit", diff --git a/code/lib/channels/package.json b/code/lib/channels/package.json index 2fbf433ebd9b..7108ca6958d9 100644 --- a/code/lib/channels/package.json +++ b/code/lib/channels/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channels", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/cli-sb/package.json b/code/lib/cli-sb/package.json index 5a91ab003d78..3802f4407bb8 100644 --- a/code/lib/cli-sb/package.json +++ b/code/lib/cli-sb/package.json @@ -1,6 +1,6 @@ { "name": "sb", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook CLI", "keywords": [ "storybook" diff --git a/code/lib/cli-storybook/package.json b/code/lib/cli-storybook/package.json index cd624199accb..de2d447d9f7a 100644 --- a/code/lib/cli-storybook/package.json +++ b/code/lib/cli-storybook/package.json @@ -1,6 +1,6 @@ { "name": "storybook", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook CLI", "keywords": [ "storybook" diff --git a/code/lib/cli/package.json b/code/lib/cli/package.json index 9a6f9539aaaa..a089338f0950 100644 --- a/code/lib/cli/package.json +++ b/code/lib/cli/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/cli", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook's CLI - easiest method of adding storybook to your projects", "keywords": [ "cli", diff --git a/code/lib/cli/src/versions.ts b/code/lib/cli/src/versions.ts index 574333730804..ef712eb5df59 100644 --- a/code/lib/cli/src/versions.ts +++ b/code/lib/cli/src/versions.ts @@ -1,97 +1,97 @@ // auto generated file, do not edit export default { - '@storybook/addon-a11y': '7.5.0-alpha.3', - '@storybook/addon-actions': '7.5.0-alpha.3', - '@storybook/addon-backgrounds': '7.5.0-alpha.3', - '@storybook/addon-controls': '7.5.0-alpha.3', - '@storybook/addon-docs': '7.5.0-alpha.3', - '@storybook/addon-essentials': '7.5.0-alpha.3', - '@storybook/addon-highlight': '7.5.0-alpha.3', - '@storybook/addon-interactions': '7.5.0-alpha.3', - '@storybook/addon-jest': '7.5.0-alpha.3', - '@storybook/addon-links': '7.5.0-alpha.3', - '@storybook/addon-mdx-gfm': '7.5.0-alpha.3', - '@storybook/addon-measure': '7.5.0-alpha.3', - '@storybook/addon-outline': '7.5.0-alpha.3', - '@storybook/addon-themes': '7.5.0-alpha.3', - '@storybook/addon-storyshots': '7.5.0-alpha.3', - '@storybook/addon-storyshots-puppeteer': '7.5.0-alpha.3', - '@storybook/addon-storysource': '7.5.0-alpha.3', - '@storybook/addon-toolbars': '7.5.0-alpha.3', - '@storybook/addon-viewport': '7.5.0-alpha.3', - '@storybook/addons': '7.5.0-alpha.3', - '@storybook/angular': '7.5.0-alpha.3', - '@storybook/api': '7.5.0-alpha.3', - '@storybook/blocks': '7.5.0-alpha.3', - '@storybook/builder-manager': '7.5.0-alpha.3', - '@storybook/builder-vite': '7.5.0-alpha.3', - '@storybook/builder-webpack5': '7.5.0-alpha.3', - '@storybook/channel-postmessage': '7.5.0-alpha.3', - '@storybook/channel-websocket': '7.5.0-alpha.3', - '@storybook/channels': '7.5.0-alpha.3', - '@storybook/cli': '7.5.0-alpha.3', - '@storybook/client-api': '7.5.0-alpha.3', - '@storybook/client-logger': '7.5.0-alpha.3', - '@storybook/codemod': '7.5.0-alpha.3', - '@storybook/components': '7.5.0-alpha.3', - '@storybook/core-client': '7.5.0-alpha.3', - '@storybook/core-common': '7.5.0-alpha.3', - '@storybook/core-events': '7.5.0-alpha.3', - '@storybook/core-server': '7.5.0-alpha.3', - '@storybook/core-webpack': '7.5.0-alpha.3', - '@storybook/csf-plugin': '7.5.0-alpha.3', - '@storybook/csf-tools': '7.5.0-alpha.3', - '@storybook/docs-tools': '7.5.0-alpha.3', - '@storybook/ember': '7.5.0-alpha.3', - '@storybook/html': '7.5.0-alpha.3', - '@storybook/html-vite': '7.5.0-alpha.3', - '@storybook/html-webpack5': '7.5.0-alpha.3', - '@storybook/instrumenter': '7.5.0-alpha.3', - '@storybook/manager': '7.5.0-alpha.3', - '@storybook/manager-api': '7.5.0-alpha.3', - '@storybook/nextjs': '7.5.0-alpha.3', - '@storybook/node-logger': '7.5.0-alpha.3', - '@storybook/postinstall': '7.5.0-alpha.3', - '@storybook/preact': '7.5.0-alpha.3', - '@storybook/preact-vite': '7.5.0-alpha.3', - '@storybook/preact-webpack5': '7.5.0-alpha.3', - '@storybook/preset-create-react-app': '7.5.0-alpha.3', - '@storybook/preset-html-webpack': '7.5.0-alpha.3', - '@storybook/preset-preact-webpack': '7.5.0-alpha.3', - '@storybook/preset-react-webpack': '7.5.0-alpha.3', - '@storybook/preset-server-webpack': '7.5.0-alpha.3', - '@storybook/preset-svelte-webpack': '7.5.0-alpha.3', - '@storybook/preset-vue-webpack': '7.5.0-alpha.3', - '@storybook/preset-vue3-webpack': '7.5.0-alpha.3', - '@storybook/preset-web-components-webpack': '7.5.0-alpha.3', - '@storybook/preview': '7.5.0-alpha.3', - '@storybook/preview-api': '7.5.0-alpha.3', - '@storybook/preview-web': '7.5.0-alpha.3', - '@storybook/react': '7.5.0-alpha.3', - '@storybook/react-dom-shim': '7.5.0-alpha.3', - '@storybook/react-vite': '7.5.0-alpha.3', - '@storybook/react-webpack5': '7.5.0-alpha.3', - '@storybook/router': '7.5.0-alpha.3', - '@storybook/server': '7.5.0-alpha.3', - '@storybook/server-webpack5': '7.5.0-alpha.3', - '@storybook/source-loader': '7.5.0-alpha.3', - '@storybook/store': '7.5.0-alpha.3', - '@storybook/svelte': '7.5.0-alpha.3', - '@storybook/svelte-vite': '7.5.0-alpha.3', - '@storybook/svelte-webpack5': '7.5.0-alpha.3', - '@storybook/sveltekit': '7.5.0-alpha.3', - '@storybook/telemetry': '7.5.0-alpha.3', - '@storybook/theming': '7.5.0-alpha.3', - '@storybook/types': '7.5.0-alpha.3', - '@storybook/vue': '7.5.0-alpha.3', - '@storybook/vue-vite': '7.5.0-alpha.3', - '@storybook/vue-webpack5': '7.5.0-alpha.3', - '@storybook/vue3': '7.5.0-alpha.3', - '@storybook/vue3-vite': '7.5.0-alpha.3', - '@storybook/vue3-webpack5': '7.5.0-alpha.3', - '@storybook/web-components': '7.5.0-alpha.3', - '@storybook/web-components-vite': '7.5.0-alpha.3', - '@storybook/web-components-webpack5': '7.5.0-alpha.3', - sb: '7.5.0-alpha.3', - storybook: '7.5.0-alpha.3', + '@storybook/addon-a11y': '7.5.0-alpha.4', + '@storybook/addon-actions': '7.5.0-alpha.4', + '@storybook/addon-backgrounds': '7.5.0-alpha.4', + '@storybook/addon-controls': '7.5.0-alpha.4', + '@storybook/addon-docs': '7.5.0-alpha.4', + '@storybook/addon-essentials': '7.5.0-alpha.4', + '@storybook/addon-highlight': '7.5.0-alpha.4', + '@storybook/addon-interactions': '7.5.0-alpha.4', + '@storybook/addon-jest': '7.5.0-alpha.4', + '@storybook/addon-links': '7.5.0-alpha.4', + '@storybook/addon-mdx-gfm': '7.5.0-alpha.4', + '@storybook/addon-measure': '7.5.0-alpha.4', + '@storybook/addon-outline': '7.5.0-alpha.4', + '@storybook/addon-themes': '7.5.0-alpha.4', + '@storybook/addon-storyshots': '7.5.0-alpha.4', + '@storybook/addon-storyshots-puppeteer': '7.5.0-alpha.4', + '@storybook/addon-storysource': '7.5.0-alpha.4', + '@storybook/addon-toolbars': '7.5.0-alpha.4', + '@storybook/addon-viewport': '7.5.0-alpha.4', + '@storybook/addons': '7.5.0-alpha.4', + '@storybook/angular': '7.5.0-alpha.4', + '@storybook/api': '7.5.0-alpha.4', + '@storybook/blocks': '7.5.0-alpha.4', + '@storybook/builder-manager': '7.5.0-alpha.4', + '@storybook/builder-vite': '7.5.0-alpha.4', + '@storybook/builder-webpack5': '7.5.0-alpha.4', + '@storybook/channel-postmessage': '7.5.0-alpha.4', + '@storybook/channel-websocket': '7.5.0-alpha.4', + '@storybook/channels': '7.5.0-alpha.4', + '@storybook/cli': '7.5.0-alpha.4', + '@storybook/client-api': '7.5.0-alpha.4', + '@storybook/client-logger': '7.5.0-alpha.4', + '@storybook/codemod': '7.5.0-alpha.4', + '@storybook/components': '7.5.0-alpha.4', + '@storybook/core-client': '7.5.0-alpha.4', + '@storybook/core-common': '7.5.0-alpha.4', + '@storybook/core-events': '7.5.0-alpha.4', + '@storybook/core-server': '7.5.0-alpha.4', + '@storybook/core-webpack': '7.5.0-alpha.4', + '@storybook/csf-plugin': '7.5.0-alpha.4', + '@storybook/csf-tools': '7.5.0-alpha.4', + '@storybook/docs-tools': '7.5.0-alpha.4', + '@storybook/ember': '7.5.0-alpha.4', + '@storybook/html': '7.5.0-alpha.4', + '@storybook/html-vite': '7.5.0-alpha.4', + '@storybook/html-webpack5': '7.5.0-alpha.4', + '@storybook/instrumenter': '7.5.0-alpha.4', + '@storybook/manager': '7.5.0-alpha.4', + '@storybook/manager-api': '7.5.0-alpha.4', + '@storybook/nextjs': '7.5.0-alpha.4', + '@storybook/node-logger': '7.5.0-alpha.4', + '@storybook/postinstall': '7.5.0-alpha.4', + '@storybook/preact': '7.5.0-alpha.4', + '@storybook/preact-vite': '7.5.0-alpha.4', + '@storybook/preact-webpack5': '7.5.0-alpha.4', + '@storybook/preset-create-react-app': '7.5.0-alpha.4', + '@storybook/preset-html-webpack': '7.5.0-alpha.4', + '@storybook/preset-preact-webpack': '7.5.0-alpha.4', + '@storybook/preset-react-webpack': '7.5.0-alpha.4', + '@storybook/preset-server-webpack': '7.5.0-alpha.4', + '@storybook/preset-svelte-webpack': '7.5.0-alpha.4', + '@storybook/preset-vue-webpack': '7.5.0-alpha.4', + '@storybook/preset-vue3-webpack': '7.5.0-alpha.4', + '@storybook/preset-web-components-webpack': '7.5.0-alpha.4', + '@storybook/preview': '7.5.0-alpha.4', + '@storybook/preview-api': '7.5.0-alpha.4', + '@storybook/preview-web': '7.5.0-alpha.4', + '@storybook/react': '7.5.0-alpha.4', + '@storybook/react-dom-shim': '7.5.0-alpha.4', + '@storybook/react-vite': '7.5.0-alpha.4', + '@storybook/react-webpack5': '7.5.0-alpha.4', + '@storybook/router': '7.5.0-alpha.4', + '@storybook/server': '7.5.0-alpha.4', + '@storybook/server-webpack5': '7.5.0-alpha.4', + '@storybook/source-loader': '7.5.0-alpha.4', + '@storybook/store': '7.5.0-alpha.4', + '@storybook/svelte': '7.5.0-alpha.4', + '@storybook/svelte-vite': '7.5.0-alpha.4', + '@storybook/svelte-webpack5': '7.5.0-alpha.4', + '@storybook/sveltekit': '7.5.0-alpha.4', + '@storybook/telemetry': '7.5.0-alpha.4', + '@storybook/theming': '7.5.0-alpha.4', + '@storybook/types': '7.5.0-alpha.4', + '@storybook/vue': '7.5.0-alpha.4', + '@storybook/vue-vite': '7.5.0-alpha.4', + '@storybook/vue-webpack5': '7.5.0-alpha.4', + '@storybook/vue3': '7.5.0-alpha.4', + '@storybook/vue3-vite': '7.5.0-alpha.4', + '@storybook/vue3-webpack5': '7.5.0-alpha.4', + '@storybook/web-components': '7.5.0-alpha.4', + '@storybook/web-components-vite': '7.5.0-alpha.4', + '@storybook/web-components-webpack5': '7.5.0-alpha.4', + sb: '7.5.0-alpha.4', + storybook: '7.5.0-alpha.4', }; diff --git a/code/lib/client-logger/package.json b/code/lib/client-logger/package.json index df614d6de3d0..f63b74e572f4 100644 --- a/code/lib/client-logger/package.json +++ b/code/lib/client-logger/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/client-logger", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/codemod/package.json b/code/lib/codemod/package.json index 66fb6082f246..fa8caf281dea 100644 --- a/code/lib/codemod/package.json +++ b/code/lib/codemod/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/codemod", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "A collection of codemod scripts written with JSCodeshift", "keywords": [ "storybook" diff --git a/code/lib/core-common/package.json b/code/lib/core-common/package.json index 16b7c738a9be..050031f4cb70 100644 --- a/code/lib/core-common/package.json +++ b/code/lib/core-common/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-common", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/lib/core-events/package.json b/code/lib/core-events/package.json index 332c51c87988..dd9fbd3c7757 100644 --- a/code/lib/core-events/package.json +++ b/code/lib/core-events/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-events", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Event names used in storybook core", "keywords": [ "storybook" diff --git a/code/lib/core-server/package.json b/code/lib/core-server/package.json index c249bc634c35..fc62f70ccc6a 100644 --- a/code/lib/core-server/package.json +++ b/code/lib/core-server/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-server", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/lib/core-webpack/package.json b/code/lib/core-webpack/package.json index 8e838355adde..ca5739b08558 100644 --- a/code/lib/core-webpack/package.json +++ b/code/lib/core-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-webpack", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/lib/csf-plugin/package.json b/code/lib/csf-plugin/package.json index 0daa86ce6f60..07483a79d5f7 100644 --- a/code/lib/csf-plugin/package.json +++ b/code/lib/csf-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/csf-plugin", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Enrich CSF files via static analysis", "keywords": [ "storybook" diff --git a/code/lib/csf-tools/package.json b/code/lib/csf-tools/package.json index 239ae14ddcbd..27d9e30aaa7f 100644 --- a/code/lib/csf-tools/package.json +++ b/code/lib/csf-tools/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/csf-tools", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Parse and manipulate CSF and Storybook config files", "keywords": [ "storybook" diff --git a/code/lib/docs-tools/package.json b/code/lib/docs-tools/package.json index 8b46d3cf81d0..d552f6bc6208 100644 --- a/code/lib/docs-tools/package.json +++ b/code/lib/docs-tools/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/docs-tools", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Shared utility functions for frameworks to implement docs", "keywords": [ "storybook" diff --git a/code/lib/instrumenter/package.json b/code/lib/instrumenter/package.json index f0be5ce6e6aa..b9d22eb8445f 100644 --- a/code/lib/instrumenter/package.json +++ b/code/lib/instrumenter/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/instrumenter", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/manager-api/package.json b/code/lib/manager-api/package.json index edf38d9bd9be..086a2a2fc55f 100644 --- a/code/lib/manager-api/package.json +++ b/code/lib/manager-api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/manager-api", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Core Storybook Manager API & Context", "keywords": [ "storybook" diff --git a/code/lib/manager-api/src/version.ts b/code/lib/manager-api/src/version.ts index b55d6c41c9fe..e1a280d5aa14 100644 --- a/code/lib/manager-api/src/version.ts +++ b/code/lib/manager-api/src/version.ts @@ -1 +1 @@ -export const version = '7.5.0-alpha.3'; +export const version = '7.5.0-alpha.4'; diff --git a/code/lib/node-logger/package.json b/code/lib/node-logger/package.json index e8d040b3ea86..c3a2bfc8abe9 100644 --- a/code/lib/node-logger/package.json +++ b/code/lib/node-logger/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/node-logger", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/postinstall/package.json b/code/lib/postinstall/package.json index 7ec1f76f6d9d..93e9ef630ebc 100644 --- a/code/lib/postinstall/package.json +++ b/code/lib/postinstall/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/postinstall", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook addons postinstall utilities", "keywords": [ "api", diff --git a/code/lib/preview-api/package.json b/code/lib/preview-api/package.json index d9cd953503ef..9079669709e9 100644 --- a/code/lib/preview-api/package.json +++ b/code/lib/preview-api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preview-api", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/preview/package.json b/code/lib/preview/package.json index 8408a49dafff..47f22adf59bf 100644 --- a/code/lib/preview/package.json +++ b/code/lib/preview/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preview", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/react-dom-shim/package.json b/code/lib/react-dom-shim/package.json index c4b2b76ef89f..250b0cab82bd 100644 --- a/code/lib/react-dom-shim/package.json +++ b/code/lib/react-dom-shim/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-dom-shim", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "", "keywords": [ "storybook" diff --git a/code/lib/router/package.json b/code/lib/router/package.json index 4bad88c95755..3e20f332cde8 100644 --- a/code/lib/router/package.json +++ b/code/lib/router/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/router", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Core Storybook Router", "keywords": [ "storybook" diff --git a/code/lib/source-loader/package.json b/code/lib/source-loader/package.json index 6d650685eb5d..8cf27fd7efef 100644 --- a/code/lib/source-loader/package.json +++ b/code/lib/source-loader/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/source-loader", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Source loader", "keywords": [ "lib", diff --git a/code/lib/telemetry/package.json b/code/lib/telemetry/package.json index cd20b69a6f28..90aced13b741 100644 --- a/code/lib/telemetry/package.json +++ b/code/lib/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/telemetry", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Telemetry logging for crash reports and usage statistics", "keywords": [ "storybook" diff --git a/code/lib/theming/package.json b/code/lib/theming/package.json index 8916113cc5e5..47baae612c16 100644 --- a/code/lib/theming/package.json +++ b/code/lib/theming/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/theming", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Core Storybook Components", "keywords": [ "storybook" diff --git a/code/lib/types/package.json b/code/lib/types/package.json index c3c7dacaf8d6..bbb6ccd3ea0d 100644 --- a/code/lib/types/package.json +++ b/code/lib/types/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/types", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Core Storybook TS Types", "keywords": [ "storybook" diff --git a/code/package.json b/code/package.json index 807ed23fcac5..7a14a389b3d7 100644 --- a/code/package.json +++ b/code/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/root", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "private": true, "description": "Storybook root", "homepage": "https://storybook.js.org/", @@ -328,6 +328,5 @@ "Dependency Upgrades" ] ] - }, - "deferredNextVersion": "7.5.0-alpha.4" + } } diff --git a/code/presets/create-react-app/package.json b/code/presets/create-react-app/package.json index 86933a98358b..ff11ebc6ac0d 100644 --- a/code/presets/create-react-app/package.json +++ b/code/presets/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-create-react-app", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Create React App preset", "keywords": [ "storybook" diff --git a/code/presets/html-webpack/package.json b/code/presets/html-webpack/package.json index 3556946b2e40..7169a9b7f06a 100644 --- a/code/presets/html-webpack/package.json +++ b/code/presets/html-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-html-webpack", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/preact-webpack/package.json b/code/presets/preact-webpack/package.json index ca6dea1ef877..6a4df6a8d8ab 100644 --- a/code/presets/preact-webpack/package.json +++ b/code/presets/preact-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-preact-webpack", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Preact: Develop Preact Component in isolation.", "keywords": [ "storybook" diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json index 81124aaf70ac..57ec0135a2ef 100644 --- a/code/presets/react-webpack/package.json +++ b/code/presets/react-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-react-webpack", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for React: Develop React Component in isolation with Hot Reloading", "keywords": [ "storybook" diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json index c7afa6e1873f..7998e916bdc1 100644 --- a/code/presets/server-webpack/package.json +++ b/code/presets/server-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-server-webpack", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/svelte-webpack/package.json b/code/presets/svelte-webpack/package.json index 5ea573ea5811..99251c3a8a68 100644 --- a/code/presets/svelte-webpack/package.json +++ b/code/presets/svelte-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-svelte-webpack", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/vue-webpack/package.json b/code/presets/vue-webpack/package.json index 96fe12d4c9ab..b1479512dedd 100644 --- a/code/presets/vue-webpack/package.json +++ b/code/presets/vue-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-vue-webpack", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/vue3-webpack/package.json b/code/presets/vue3-webpack/package.json index a62613dee690..b89f171428eb 100644 --- a/code/presets/vue3-webpack/package.json +++ b/code/presets/vue3-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-vue3-webpack", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/web-components-webpack/package.json b/code/presets/web-components-webpack/package.json index 187ea433598c..170535b14155 100644 --- a/code/presets/web-components-webpack/package.json +++ b/code/presets/web-components-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-web-components-webpack", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.", "keywords": [ "lit", diff --git a/code/renderers/html/package.json b/code/renderers/html/package.json index 6d199de76d3c..3ea6ca17deae 100644 --- a/code/renderers/html/package.json +++ b/code/renderers/html/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook HTML renderer", "keywords": [ "storybook" diff --git a/code/renderers/preact/package.json b/code/renderers/preact/package.json index e3116aa668a5..f49856e1cb95 100644 --- a/code/renderers/preact/package.json +++ b/code/renderers/preact/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook Preact renderer", "keywords": [ "storybook" diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json index 02fa5c555f8a..75c51405d7e7 100644 --- a/code/renderers/react/package.json +++ b/code/renderers/react/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook React renderer", "keywords": [ "storybook" diff --git a/code/renderers/server/package.json b/code/renderers/server/package.json index ab40ca24327d..e1b7a638cecb 100644 --- a/code/renderers/server/package.json +++ b/code/renderers/server/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/server", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook Server renderer", "keywords": [ "storybook" diff --git a/code/renderers/svelte/package.json b/code/renderers/svelte/package.json index aec033cbf106..8aaa390671be 100644 --- a/code/renderers/svelte/package.json +++ b/code/renderers/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook Svelte renderer", "keywords": [ "storybook" diff --git a/code/renderers/vue/package.json b/code/renderers/vue/package.json index 7767f5108fef..8f0adba6c632 100644 --- a/code/renderers/vue/package.json +++ b/code/renderers/vue/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook Vue renderer", "keywords": [ "storybook" diff --git a/code/renderers/vue3/package.json b/code/renderers/vue3/package.json index 90fb37402b94..db1f0e632e47 100644 --- a/code/renderers/vue3/package.json +++ b/code/renderers/vue3/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook Vue 3 renderer", "keywords": [ "storybook" diff --git a/code/renderers/web-components/package.json b/code/renderers/web-components/package.json index f929fb877db1..c248bd3a41c4 100644 --- a/code/renderers/web-components/package.json +++ b/code/renderers/web-components/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook web-components renderer", "keywords": [ "lit", diff --git a/code/ui/blocks/package.json b/code/ui/blocks/package.json index c34dbabd4e84..060dc07626e3 100644 --- a/code/ui/blocks/package.json +++ b/code/ui/blocks/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/blocks", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Storybook Doc Blocks", "keywords": [ "storybook" diff --git a/code/ui/components/package.json b/code/ui/components/package.json index 4bd67d34b104..85c425ea05bf 100644 --- a/code/ui/components/package.json +++ b/code/ui/components/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/components", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Core Storybook Components", "keywords": [ "storybook" diff --git a/code/ui/manager/package.json b/code/ui/manager/package.json index 36960bd3baa2..9a13dc094783 100644 --- a/code/ui/manager/package.json +++ b/code/ui/manager/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/manager", - "version": "7.5.0-alpha.3", + "version": "7.5.0-alpha.4", "description": "Core Storybook UI", "keywords": [ "storybook" From e1af53ad3c161d51bc1d9d86705856578330eb1d Mon Sep 17 00:00:00 2001 From: Iran Date: Tue, 3 Oct 2023 14:44:04 -0300 Subject: [PATCH 078/154] Remove file URL examples from storyshots-puppetteer docs --- code/addons/storyshots-puppeteer/README.md | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/code/addons/storyshots-puppeteer/README.md b/code/addons/storyshots-puppeteer/README.md index 2175c1d436d4..de7d4d801326 100644 --- a/code/addons/storyshots-puppeteer/README.md +++ b/code/addons/storyshots-puppeteer/README.md @@ -19,7 +19,7 @@ When running Puppeteer tests for your stories, you have two options: - Have a storybook running (ie. accessible via http(s), for instance using `npm run storybook`) - Have a static build of the storybook (for instance, using `npm run build-storybook`) -Then you will need to reference the storybook URL (`file://...` if local, `http(s)://...` if served) +Then you will need to reference the storybook URL (`http(s)://...`) ## _puppeteerTest_ @@ -72,21 +72,6 @@ initStoryshots({ The above config will use __ for tests. You can also use query parameters in your URL (e.g. for setting a different background for your storyshots, if you use `@storybook/addon-backgrounds`). -You may also use a local static build of storybook if you do not want to run the webpack dev-server: - -```js -import initStoryshots from '@storybook/addon-storyshots'; -import { puppeteerTest } from '@storybook/addon-storyshots-puppeteer'; - -initStoryshots({ - suite: 'Puppeteer storyshots', - test: puppeteerTest({ - storybookUrl: 'file:///path/to/my/storybook-static', - // storybookUrl: 'file://${path.resolve(__dirname, '../storybook-static')}' - }), -}); -``` - ### Specifying options to _goto()_ (Puppeteer API) You might use `getGotoOptions` to specify options when the storybook is navigating to a story (using the `goto` method). Will be passed to [Puppeteer .goto() fn](https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagegotourl-options) From c78890fbf0815f1515be769a313601b70c76e123 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Mon, 2 Oct 2023 16:45:55 -0700 Subject: [PATCH 079/154] React: Fix react-docgen handling for arrays, records, functions --- .../src/argTypes/docgen/typeScript/createType.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/lib/docs-tools/src/argTypes/docgen/typeScript/createType.ts b/code/lib/docs-tools/src/argTypes/docgen/typeScript/createType.ts index 7b03da0e2411..8aa541f38c6d 100644 --- a/code/lib/docs-tools/src/argTypes/docgen/typeScript/createType.ts +++ b/code/lib/docs-tools/src/argTypes/docgen/typeScript/createType.ts @@ -9,9 +9,12 @@ export function createType({ tsType, required }: DocgenInfo): PropType { return null; } + let typeName = tsType.name; if (!required) { - return createSummaryValue(tsType.name.replace(' | undefined', '')); + typeName = typeName.replace(' | undefined', ''); } - return createSummaryValue(tsType.name); + return createSummaryValue( + ['Array', 'Record', 'signature'].includes(tsType.name) ? tsType.raw : typeName + ); } From 617666db12383dfbcce9c4551a888d0844808bc1 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Tue, 3 Oct 2023 10:32:10 -0700 Subject: [PATCH 080/154] Fix types --- .../docs-tools/src/argTypes/docgen/types.ts | 5 +++-- .../template/stories/ts-argtypes.stories.tsx | 18 +++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/code/lib/docs-tools/src/argTypes/docgen/types.ts b/code/lib/docs-tools/src/argTypes/docgen/types.ts index 498daee4ac58..d671a2bae8b7 100644 --- a/code/lib/docs-tools/src/argTypes/docgen/types.ts +++ b/code/lib/docs-tools/src/argTypes/docgen/types.ts @@ -26,8 +26,9 @@ export interface DocgenFlowType extends DocgenType { elements?: any[]; } -// eslint-disable-next-line @typescript-eslint/no-empty-interface -export interface DocgenTypeScriptType extends DocgenType {} +export interface DocgenTypeScriptType extends DocgenType { + raw?: string; +} // export type DocgenType = DocgenPropType | DocgenFlowType | DocgenTypeScriptType; diff --git a/code/renderers/react/template/stories/ts-argtypes.stories.tsx b/code/renderers/react/template/stories/ts-argtypes.stories.tsx index f2b29752c276..f655796434df 100644 --- a/code/renderers/react/template/stories/ts-argtypes.stories.tsx +++ b/code/renderers/react/template/stories/ts-argtypes.stories.tsx @@ -6,7 +6,7 @@ import type { Args, Parameters, StoryContext } from '@storybook/types'; import { inferControls } from '@storybook/preview-api'; import { ThemeProvider, themes, convert } from '@storybook/theming'; -import { within } from '@storybook/testing-library'; +// import { within } from '@storybook/testing-library'; import { component as TsFunctionComponentComponent } from './docgen-components/ts-function-component/input'; import { component as TsFunctionComponentInlineDefaultsComponent } from './docgen-components/ts-function-component-inline-defaults/input'; import { component as TsReactFcGenericsComponent } from './docgen-components/8143-ts-react-fc-generics/input'; @@ -78,14 +78,14 @@ export const TsComponentProps = { parameters: { component: TsComponentPropsCompo export const TsJsdoc = { parameters: { component: TsJsdocComponent } }; -const addChromaticIgnore = async (element: HTMLElement) => { - const row = element.parentElement?.parentElement; - if (row?.nodeName === 'TR') { - row.setAttribute('data-chromatic', 'ignore'); - } else { - throw new Error('the DOM structure changed, please update this test'); - } -}; +// const addChromaticIgnore = async (element: HTMLElement) => { +// const row = element.parentElement?.parentElement; +// if (row?.nodeName === 'TR') { +// row.setAttribute('data-chromatic', 'ignore'); +// } else { +// throw new Error('the DOM structure changed, please update this test'); +// } +// }; export const TsTypes: StoryObj = { parameters: { component: TsTypesComponent }, From 60748de148ce5aa00bac8971d350173b2eabe19e Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Tue, 3 Oct 2023 10:34:45 -0700 Subject: [PATCH 081/154] Fix snapshots --- .../9721-ts-deprecated-jsdoc/argTypes.snapshot | 2 +- .../9721-ts-deprecated-jsdoc/properties.snapshot | 2 +- .../docgen-components/9827-ts-default-values/argTypes.snapshot | 2 +- .../9827-ts-default-values/properties.snapshot | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/argTypes.snapshot b/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/argTypes.snapshot index cfe5c6d41a5a..35afb4cfba6f 100644 --- a/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/argTypes.snapshot +++ b/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/argTypes.snapshot @@ -13,7 +13,7 @@ Object { "jsDocTags": undefined, "type": Object { "detail": undefined, - "summary": "signature", + "summary": "{ width: number; height: number }", }, }, "type": Object { diff --git a/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/properties.snapshot b/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/properties.snapshot index 9a88cea0e370..05ad26d8baee 100644 --- a/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/properties.snapshot +++ b/code/renderers/react/template/stories/docgen-components/9721-ts-deprecated-jsdoc/properties.snapshot @@ -22,7 +22,7 @@ Object { }, "type": Object { "detail": undefined, - "summary": "signature", + "summary": "{ width: number; height: number }", }, }, ], diff --git a/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/argTypes.snapshot b/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/argTypes.snapshot index d37d679b5b9d..0f05e4e2bdf5 100644 --- a/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/argTypes.snapshot +++ b/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/argTypes.snapshot @@ -13,7 +13,7 @@ Object { "jsDocTags": undefined, "type": Object { "detail": undefined, - "summary": "Array", + "summary": "string[]", }, }, "type": Object { diff --git a/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/properties.snapshot b/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/properties.snapshot index 5d944694e62b..06f92d9ce2e5 100644 --- a/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/properties.snapshot +++ b/code/renderers/react/template/stories/docgen-components/9827-ts-default-values/properties.snapshot @@ -48,7 +48,7 @@ Object { }, "type": Object { "detail": undefined, - "summary": "Array", + "summary": "string[]", }, }, ], From 723481e1130f6321970a989c87c44f300112d7f2 Mon Sep 17 00:00:00 2001 From: storybook-bot <32066757+storybook-bot@users.noreply.github.com> Date: Tue, 3 Oct 2023 20:03:57 +0000 Subject: [PATCH 082/154] Update CHANGELOG.md for v7.4.6 [skip ci] --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65162adc174c..b4400d25c0c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## 7.4.6 + +- CLI: Fix Nextjs project detection - [#24346](https://github.com/storybookjs/storybook/pull/24346), thanks [@yannbf](https://github.com/yannbf)! +- Core: Fix missing favicon during dev - [#24356](https://github.com/storybookjs/storybook/pull/24356), thanks [@ndelangen](https://github.com/ndelangen)! + ## 7.4.5 - UI: Fix infinite hook call causing browsers to freeze - [#24291](https://github.com/storybookjs/storybook/pull/24291), thanks [@yannbf](https://github.com/yannbf)! From ac738ec2242f146d144c4c16b6699400024112d5 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Tue, 3 Oct 2023 16:06:24 -0700 Subject: [PATCH 083/154] Restore chromatic ignore --- .../template/stories/ts-argtypes.stories.tsx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/code/renderers/react/template/stories/ts-argtypes.stories.tsx b/code/renderers/react/template/stories/ts-argtypes.stories.tsx index f655796434df..f2b29752c276 100644 --- a/code/renderers/react/template/stories/ts-argtypes.stories.tsx +++ b/code/renderers/react/template/stories/ts-argtypes.stories.tsx @@ -6,7 +6,7 @@ import type { Args, Parameters, StoryContext } from '@storybook/types'; import { inferControls } from '@storybook/preview-api'; import { ThemeProvider, themes, convert } from '@storybook/theming'; -// import { within } from '@storybook/testing-library'; +import { within } from '@storybook/testing-library'; import { component as TsFunctionComponentComponent } from './docgen-components/ts-function-component/input'; import { component as TsFunctionComponentInlineDefaultsComponent } from './docgen-components/ts-function-component-inline-defaults/input'; import { component as TsReactFcGenericsComponent } from './docgen-components/8143-ts-react-fc-generics/input'; @@ -78,14 +78,14 @@ export const TsComponentProps = { parameters: { component: TsComponentPropsCompo export const TsJsdoc = { parameters: { component: TsJsdocComponent } }; -// const addChromaticIgnore = async (element: HTMLElement) => { -// const row = element.parentElement?.parentElement; -// if (row?.nodeName === 'TR') { -// row.setAttribute('data-chromatic', 'ignore'); -// } else { -// throw new Error('the DOM structure changed, please update this test'); -// } -// }; +const addChromaticIgnore = async (element: HTMLElement) => { + const row = element.parentElement?.parentElement; + if (row?.nodeName === 'TR') { + row.setAttribute('data-chromatic', 'ignore'); + } else { + throw new Error('the DOM structure changed, please update this test'); + } +}; export const TsTypes: StoryObj = { parameters: { component: TsTypesComponent }, From fb3568f28b68e4eab854a3c99a8f21b523c853ce Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Wed, 4 Oct 2023 10:18:44 +0200 Subject: [PATCH 084/154] Revert "disable Angular 15 sandbox in CI" This reverts commit bd3abf2a48dae9e4dcac838770efb0f21cee63e7. --- .circleci/config.yml | 20 ++++++++++---------- code/lib/cli/src/sandbox-templates.ts | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index ee9dee76c725..617cdac42c28 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -555,19 +555,19 @@ workflows: requires: - unit-tests - create-sandboxes: - parallelism: 20 + parallelism: 21 requires: - build - build-sandboxes: - parallelism: 20 + parallelism: 21 requires: - create-sandboxes - chromatic-sandboxes: - parallelism: 17 + parallelism: 18 requires: - build-sandboxes - e2e-production: - parallelism: 17 + parallelism: 18 requires: - build-sandboxes - e2e-dev: @@ -575,7 +575,7 @@ workflows: requires: - create-sandboxes - test-runner-production: - parallelism: 17 + parallelism: 18 requires: - build-sandboxes - bench: @@ -609,22 +609,22 @@ workflows: requires: - build - create-sandboxes: - parallelism: 33 + parallelism: 34 requires: - build # - smoke-test-sandboxes: # disabled for now # requires: # - create-sandboxes - build-sandboxes: - parallelism: 33 + parallelism: 34 requires: - create-sandboxes - chromatic-sandboxes: - parallelism: 30 + parallelism: 31 requires: - build-sandboxes - e2e-production: - parallelism: 30 + parallelism: 31 requires: - build-sandboxes - e2e-dev: @@ -632,7 +632,7 @@ workflows: requires: - create-sandboxes - test-runner-production: - parallelism: 30 + parallelism: 31 requires: - build-sandboxes # TODO: reenable once we find out the source of flakyness diff --git a/code/lib/cli/src/sandbox-templates.ts b/code/lib/cli/src/sandbox-templates.ts index 799de8e593ee..69e858f1d14f 100644 --- a/code/lib/cli/src/sandbox-templates.ts +++ b/code/lib/cli/src/sandbox-templates.ts @@ -576,7 +576,7 @@ export const merged: TemplateKey[] = [ ...normal, 'react-webpack/18-ts', 'react-webpack/17-ts', - // 'angular-cli/15-ts', // TODO: re-enable when building the storybook works again + 'angular-cli/15-ts', 'preact-webpack5/default-ts', 'preact-vite/default-ts', 'html-webpack/default', From 14049292366a69af8549d06919129ff7329bb30a Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Wed, 4 Oct 2023 10:52:35 +0200 Subject: [PATCH 085/154] Add debugWebpack option to Angular schema --- .../angular/src/builders/build-storybook/index.ts | 10 +++++++++- .../angular/src/builders/build-storybook/schema.json | 5 +++++ .../angular/src/builders/start-storybook/index.ts | 3 +++ .../angular/src/builders/start-storybook/schema.json | 5 +++++ 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/code/frameworks/angular/src/builders/build-storybook/index.ts b/code/frameworks/angular/src/builders/build-storybook/index.ts index aef361ac0790..a33b1f4b9776 100644 --- a/code/frameworks/angular/src/builders/build-storybook/index.ts +++ b/code/frameworks/angular/src/builders/build-storybook/index.ts @@ -42,7 +42,13 @@ export type StorybookBuilderOptions = JsonObject & { } & Pick< // makes sure the option exists CLIOptions, - 'outputDir' | 'configDir' | 'loglevel' | 'quiet' | 'webpackStatsJson' | 'disableTelemetry' + | 'outputDir' + | 'configDir' + | 'loglevel' + | 'quiet' + | 'webpackStatsJson' + | 'disableTelemetry' + | 'debugWebpack' >; export type StorybookBuilderOutput = JsonObject & BuilderOutput & { [key: string]: any }; @@ -81,6 +87,7 @@ const commandBuilder: BuilderHandlerFn = ( quiet, enableProdMode = true, webpackStatsJson, + debugWebpack, disableTelemetry, assets, } = options; @@ -103,6 +110,7 @@ const commandBuilder: BuilderHandlerFn = ( }, tsConfig, webpackStatsJson, + debugWebpack, }; return standaloneOptions; diff --git a/code/frameworks/angular/src/builders/build-storybook/schema.json b/code/frameworks/angular/src/builders/build-storybook/schema.json index b0c63c455076..51f24c17a46a 100644 --- a/code/frameworks/angular/src/builders/build-storybook/schema.json +++ b/code/frameworks/angular/src/builders/build-storybook/schema.json @@ -29,6 +29,11 @@ "description": "Controls level of logging during build. Can be one of: [silly, verbose, info (default), warn, error, silent].", "pattern": "(silly|verbose|info|warn|silent)" }, + "debugWebpack": { + "type": "boolean", + "description": "Debug the Webpack configuration", + "default": false + }, "enableProdMode": { "type": "boolean", "description": "Disable Angular's development mode, which turns off assertions and other checks within the framework.", diff --git a/code/frameworks/angular/src/builders/start-storybook/index.ts b/code/frameworks/angular/src/builders/start-storybook/index.ts index fa78f8b45d8e..cff33f886fb6 100644 --- a/code/frameworks/angular/src/builders/start-storybook/index.ts +++ b/code/frameworks/angular/src/builders/start-storybook/index.ts @@ -53,6 +53,7 @@ export type StorybookBuilderOptions = JsonObject & { | 'initialPath' | 'open' | 'docs' + | 'debugWebpack' >; export type StorybookBuilderOutput = JsonObject & BuilderOutput & {}; @@ -103,6 +104,7 @@ const commandBuilder: BuilderHandlerFn = (options, cont assets, initialPath, open, + debugWebpack, } = options; const standaloneOptions: StandaloneOptions = { @@ -130,6 +132,7 @@ const commandBuilder: BuilderHandlerFn = (options, cont tsConfig, initialPath, open, + debugWebpack, }; return standaloneOptions; diff --git a/code/frameworks/angular/src/builders/start-storybook/schema.json b/code/frameworks/angular/src/builders/start-storybook/schema.json index 3bd70064ccb9..78553109681c 100644 --- a/code/frameworks/angular/src/builders/start-storybook/schema.json +++ b/code/frameworks/angular/src/builders/start-storybook/schema.json @@ -10,6 +10,11 @@ "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$", "default": null }, + "debugWebpack": { + "type": "boolean", + "description": "Debug the Webpack configuration", + "default": false + }, "tsConfig": { "type": "string", "description": "The full path for the TypeScript configuration file, relative to the current workspace." From ca7f6f8e7fe8cbd08e9d0f5a98dd9bbdb5543ebe Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Wed, 4 Oct 2023 11:11:38 +0200 Subject: [PATCH 086/154] hotfix -> patch, next-release -> non-patch-release --- ...ease.yml => prepare-non-patch-release.yml} | 0 ...-release.yml => prepare-patch-release.yml} | 8 +-- .github/workflows/publish.yml | 10 +-- CONTRIBUTING/RELEASING.md | 72 +++++++++---------- .../__tests__/generate-pr-description.test.ts | 8 +-- .../release/__tests__/is-pr-frozen.test.ts | 6 +- scripts/release/generate-pr-description.ts | 6 +- scripts/release/is-pr-frozen.ts | 6 +- 8 files changed, 58 insertions(+), 58 deletions(-) rename .github/workflows/{prepare-next-release.yml => prepare-non-patch-release.yml} (100%) rename .github/workflows/{prepare-hotfix-release.yml => prepare-patch-release.yml} (97%) diff --git a/.github/workflows/prepare-next-release.yml b/.github/workflows/prepare-non-patch-release.yml similarity index 100% rename from .github/workflows/prepare-next-release.yml rename to .github/workflows/prepare-non-patch-release.yml diff --git a/.github/workflows/prepare-hotfix-release.yml b/.github/workflows/prepare-patch-release.yml similarity index 97% rename from .github/workflows/prepare-hotfix-release.yml rename to .github/workflows/prepare-patch-release.yml index bd773a24610b..5cdc1ba44fcf 100644 --- a/.github/workflows/prepare-hotfix-release.yml +++ b/.github/workflows/prepare-patch-release.yml @@ -16,8 +16,8 @@ concurrency: cancel-in-progress: true jobs: - prepare-hotfix-pull-request: - name: Prepare hotfix pull request + prepare-patch-pull-request: + name: Prepare patch pull request runs-on: ubuntu-latest environment: release defaults: @@ -56,7 +56,7 @@ jobs: id: check-frozen env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: yarn release:is-pr-frozen --hotfix + run: yarn release:is-pr-frozen --patch - name: Cancel when frozen if: steps.check-frozen.outputs.frozen == 'true' && github.event_name != 'workflow_dispatch' @@ -88,7 +88,7 @@ jobs: git config --global user.email '32066757+storybook-bot@users.noreply.github.com' yarn release:pick-patches - - name: Cancel when no hotfixes to pick + - name: Cancel when no patches to pick if: steps.pick-patches.outputs.pr-count == '0' && steps.pick-patches.outputs.pr-count != null env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index f5efac645654..acb787424846 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -5,7 +5,7 @@ on: push: branches: - latest-release - - next-release + - non-patch-release env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 @@ -39,11 +39,11 @@ jobs: - name: Cancel all release preparation runs run: | # Get a list of all running or pending release preparation runs - # combining both the prepare-hotfix-release.yml and prepare-next-release.yml workflows + # combining both the prepare-patch-release.yml and prepare-non-patch-release.yml workflows RUNNING_RELEASE_PREPARATIONS=$( { - gh run list --limit 50 --workflow=prepare-hotfix-release.yml --json databaseId,status - gh run list --limit 50 --workflow=prepare-next-release.yml --json databaseId,status + gh run list --limit 50 --workflow=prepare-patch-release.yml --json databaseId,status + gh run list --limit 50 --workflow=prepare-non-patch-release.yml --json databaseId,status } | jq -rc '.[] | select(.status | contains("in_progress", "pending", "queued", "requested", "waiting")) | .databaseId' ) @@ -170,7 +170,7 @@ jobs: # next will be at eg. 7.4.0-alpha.4, and main will be at 7.3.0 # then we release 7.4.0 by merging next to latest-release to main # we then ensure here that next is bumped to 7.5.0 - without releasing it - # if this is a hotfix release bumping main to 7.3.1, next will not be touched because it's already ahead + # if this is a patch release bumping main to 7.3.1, next will not be touched because it's already ahead - name: Ensure `next` is a minor version ahead of `main` if: steps.target.outputs.target == 'main' run: | diff --git a/CONTRIBUTING/RELEASING.md b/CONTRIBUTING/RELEASING.md index c22bf923e07b..8ad3380821ee 100644 --- a/CONTRIBUTING/RELEASING.md +++ b/CONTRIBUTING/RELEASING.md @@ -8,8 +8,8 @@ - [Introduction](#introduction) - [Branches](#branches) - [Release Pull Requests](#release-pull-requests) - - [`next`-releases](#next-releases) - - [Hotfix Releases](#hotfix-releases) + - [Non-patch-releases](#non-patch-releases) + - [Patch Releases](#patch-releases) - [Publishing](#publishing) - [👉 How to Release](#-how-to-release) - [1. Find the Prepared Pull Request](#1-find-the-prepared-pull-request) @@ -45,19 +45,19 @@ This document explains the release process for the Storybook monorepo. There are two types: -1. `next`-releases - releasing any content that is on the `next` branch, either prereleases or stable releases -2. Hotfix releases - picking any content from `next` to `main`, that needs to be patched back to the current stable minor release +1. non-patch-releases - releasing any content that is on the `next` branch, either prereleases or stable releases +2. Patch releases - picking any content from `next` to `main`, that needs to be patched back to the current stable minor release The release process is based on automatically created "Release Pull Requests", that when merged will trigger a new version to be released. A designated Releaser -- which may rotate between core team members -- will go through the release process in the current Release PR. This process is implemented with NodeJS scripts in [`scripts/release`](../scripts/release/) and three GitHub Actions workflows: -- [Prepare `next` PR](../.github/workflows/prepare-next-release.yml) -- [Prepare hotfix PR](../.github/workflows/prepare-hotfix-release.yml) +- [Prepare `next` PR](../.github/workflows/prepare-non-patch-release.yml) +- [Prepare patch PR](../.github/workflows/prepare-patch-release.yml) - [Publish](../.github/workflows/publish.yml) > **Note** -> This document distinguishes between **`next`-releases** and **hotfix** releases. The distinction reflects the difference between patching an existing minor version on `main` or releasing a new minor/major/prerelease from `next`. +> This document distinguishes between **non-patch-releases** and **patch** releases. The distinction reflects the difference between patching an existing minor version on `main` or releasing a new minor/major/prerelease from `next`. ### Branches @@ -103,7 +103,7 @@ Two GitHub Actions workflows automatically create release pull requests, one for The high-level flow is: 1. When a PR is merged to `next` (or a commit is pushed), both release pull requests are (re)generated. -2. They create a new branch - `version-(hotfix|next)-from-`. +2. They create a new branch - `version-(patch|next)-from-`. 3. They calculate which version to bump to according to the version strategy. 4. They update `CHANGELOG(.prerelease).md` with all changes detected. 5. They commit everything. @@ -117,12 +117,12 @@ A few key points to note in this flow: - The changelogs are committed during the preparation, but the packages are not version bumped and not published until later. - The release pull requests don't target their working branches (`next` and `main`), but rather `next-release` and `latest-release`. -### `next`-releases +### Non-patch-releases > **Note** -> Workflow: [`prepare-next-release.yml`](../.github/workflows/prepare-next-release.yml) +> Workflow: [`prepare-non-patch-release.yml`](../.github/workflows/prepare-non-patch-release.yml) -`next`-releases are prepared with all content from the `next` branch. The changelog is generated by examining the git history, and looking up all the commits and pull requests between the current prerelease (on `next-release`) and `HEAD` of `next`. +Non-patch-releases are prepared with all content from the `next` branch. The changelog is generated by examining the git history, and looking up all the commits and pull requests between the current prerelease (on `next-release`) and `HEAD` of `next`. The default versioning strategy is to increase the current prerelease number, as described in [Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13). If there is no prerelease number (i.e., we just released a new stable minor/major version), it will add one to a patch bump, so it would go from `7.2.0` to `7.2.1-0` by default. @@ -159,18 +159,18 @@ gitGraph merge next-release ``` -### Hotfix Releases +### Patch Releases > **Note** -> Workflow: [`prepare-hotfix-release.yml`](../.github/workflows/prepare-hotfix-release.yml) +> Workflow: [`prepare-patch-release.yml`](../.github/workflows/prepare-patch-release.yml) -Hotfix releases are created by [cherry-picking](https://www.atlassian.com/git/tutorials/cherry-pick) any merged, unreleased pull requests that have the "**patch:yes**" label applied to the `next` branch. The merge commit of said pull requests are cherry-picked. +Patch releases are created by [cherry-picking](https://www.atlassian.com/git/tutorials/cherry-pick) any merged, unreleased pull requests that have the "**patch:yes**" label applied to the `next` branch. The merge commit of said pull requests are cherry-picked. -Sometimes it is desired to pick pull requests back to `main` even if they are not considered "releasable". Unlike `next`-release preparation, hotfix releases will not be canceled if the content is not releasable. It might not make sense to create a new hotfix release if the changes are only for documentation and/or internal build systems. However, getting the changes back to `main` is the only way to deploy the documentation to the production docs site. You may also want to cherry-pick changes to internal CI to fix issues. These are valid scenarios where you want to cherry-pick the changes without being blocked on "releasable" content. In these cases, where all cherry picks are non-releasable, the preparation workflow creates a "merging" pull request instead of a "releasing" pull request. This pull request does not bump versions or update changelogs; it just cherry-picks the changes and allows you to merge them into `latest-release` -> `main`. +Sometimes it is desired to pick pull requests back to `main` even if they are not considered "releasable". Unlike non-patch-release preparation, patch releases will not be canceled if the content is not releasable. It might not make sense to create a new patch release if the changes are only for documentation and/or internal build systems. However, getting the changes back to `main` is the only way to deploy the documentation to the production docs site. You may also want to cherry-pick changes to internal CI to fix issues. These are valid scenarios where you want to cherry-pick the changes without being blocked on "releasable" content. In these cases, where all cherry picks are non-releasable, the preparation workflow creates a "merging" pull request instead of a "releasing" pull request. This pull request does not bump versions or update changelogs; it just cherry-picks the changes and allows you to merge them into `latest-release` -> `main`. The preparation workflow sequentially cherry-picks each patch pull request to its branch. If this cherry-picking fails due to conflicts or other reasons, it is ignored and the next pull request is processed. All failing cherry-picks are listed in the release pull request's description, for the Releaser to manually cherry-pick during the release process. This problem occurs more often when `main` and `next` diverge, i.e. the longer it has been since a stable major/minor release. -Similar to the `next`-release flow, the preparation workflow for patches will create a new branch from `main` called `version-hotfix-from-`, and open a pull request that targets `latest-release`. When the pull request is merged by the Releaser, the [publish workflow](#publishing) will eventually merge `latest-release` into `main`. +Similar to the non-patch-release flow, the preparation workflow for patches will create a new branch from `main` called `version-patch-from-`, and open a pull request that targets `latest-release`. When the pull request is merged by the Releaser, the [publish workflow](#publishing) will eventually merge `latest-release` into `main`. Here is an example of a workflow where a feature and two bug fixes have been merged to `next`. Only the bug fixes have the "**patch:yes**" label, so only those two go into the new `7.0.19` release. Note that it is the merge commits to `next` that are cherry-picked, not the commits on the bugfix branches. @@ -215,15 +215,15 @@ gitGraph > **Note** > Workflow: [`publish.yml`](../.github/workflows/publish.yml) -When either a `next`-release or a hotfix release branch is merged into `latest-release` or `next-release`, the publishing workflow is triggered. This workflow performs the following tasks: +When either a non-patch-release or a patch release branch is merged into `latest-release` or `next-release`, the publishing workflow is triggered. This workflow performs the following tasks: 1. Bump versions of all packages according to the plan from the prepared PRs 2. Install dependencies and build all packages. 3. Publish packages to npm. -4. (If this is a hotfix release, add the "**patch:done**" label to all relevant pull requests.) +4. (If this is a patch release, add the "**patch:done**" label to all relevant pull requests.) 5. Create a new GitHub Release, including a version tag in the release branch (`latest-release` or `next-release`). 6. Merge the release branch into the core branch (`main` or `next`). -7. (If this is a hotfix release, copy the `CHANGELOG.md` changes from `main` to `next`.) +7. (If this is a patch release, copy the `CHANGELOG.md` changes from `main` to `next`.) The publish workflow runs in the "release" GitHub environment, which has the npm token required to publish packages to the `@storybook` npm organization. For security reasons, this environment can only be accessed from the four "core" branches: `main`, `next`, `latest-release` and `next-release`. @@ -246,8 +246,8 @@ The high-level workflow for a Releaser is: Look for the release pull request that has been prepared for the type of release you're about to release: - "Release: Prerelease|Minor|Major ``" for releases from `next` -- "Release: Hotfix ``" for hotfix releases -- "Release: Merge patches to `main` (without version bump)" for hotfixes without releases +- "Release: Patch ``" for patch releases +- "Release: Merge patches to `main` (without version bump)" for patches without releases For example: https://github.com/storybookjs/storybook/pull/23148 @@ -280,9 +280,9 @@ If a pull request changes multiple places, it can be hard to choose an area - th Some labels have specific meanings when it comes to releases. It's important that each pull request has labels that accurately describe the change, as labels can determine if a pull request is included in the changelog or not. This is explained further in the [Which changes are considered "releasable", and what does it mean?](#which-changes-are-considered-releasable-and-what-does-it-mean) section. -4. Hotfixes: has it already been released in a prerelease? +4. Patches: has it already been released in a prerelease? -If this is a hotfix release, make sure that all pull requests have already been released in a prerelease. If some haven't, create a new prerelease first. +If this is a patch release, make sure that all pull requests have already been released in a prerelease. If some haven't, create a new prerelease first. This is not a technical requirement, but it's a good practice to ensure that a change doesn't break a prerelease before releasing it to stable. @@ -301,12 +301,12 @@ When triggering the workflows, always choose the `next` branch as the base, unle The workflows can be triggered here: -- [Prepare next PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-next-release.yml) -- [Prepare hotfix PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-hotfix-release.yml) +- [Prepare next PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) +- [Prepare patch PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml) -Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - `next`-releases](#next-releases). When triggering the prerelease workflow manually, you can optionally add inputs: +Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - non-patch-releases](#non-patch-releases). When triggering the prerelease workflow manually, you can optionally add inputs: -![Screenshot of triggering the next-release workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) +![Screenshot of triggering the non-patch-release workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) See [Versioning Scenarios](#versioning-scenarios) for a description of each version bump scenario, how to activate it and what it does, and [Which combination of inputs creates the version bump I need?](#which-combination-of-inputs-creates-the-version-bump-i-need) for a detailed description of the workflow inputs. @@ -340,11 +340,11 @@ You can inspect the workflows to see what they are running and copy that, but he Before you start you should make sure that your working tree is clean and the repository is in a clean state by running `git clean -xdf`. -1. Create a new branch from either `next` or `main` (hotfixes) +1. Create a new branch from either `next` or `main` (patches) 2. Get all tags: `git fetch --tags origin` 3. Install dependencies: `yarn task --task=install --start-from=install` 4. `cd scripts` -5. (If hotfix release) Cherry pick: +5. (If patch release) Cherry pick: 1. `yarn release:pick-patches` 2. Manually cherry pick any necessary patches based on the previous output 6. Bump versions: @@ -362,21 +362,21 @@ Before you start you should make sure that your working tree is clean and the re 12. (If automatic publishing is still working, it should kick in now and the rest of the steps can be skipped) 13. `cd ..` 14. Publish to the registry: `YARN_NPM_AUTH_TOKEN= yarn release:publish --tag <"next" OR "latest"> --verbose` -15. (If hotfix release) `yarn release:label-patches` +15. (If patch release) `yarn release:label-patches` 16. Manually create a GitHub Release with a tag that is the new version and the target being `latest-release` or `next-release`. 17. Merge to core branch: 1. `git checkout <"next"|"main">` 2. `git pull` 3. `git merge <"next-release"|"latest-release">` 4. `git push origin` -18. (If hotfix release) Sync `CHANGELOG.md` to `next` with: +18. (If patch release) Sync `CHANGELOG.md` to `next` with: 1. `git checkout next` 2. `git pull` 3. `git checkout origin/main ./CHANGELOG.md` 4. `git add ./CHANGELOG.md` 5. `git commit -m "Update CHANGELOG.md for v"` 6. `git push origin` -19. (If `next`-release) Sync `versions/next.json` from `next` to `main` +19. (If non-patch-release) Sync `versions/next.json` from `next` to `main` 1. `git checkout main` 2. `git pull` 3. `git checkout origin/next ./docs/versions/next.json` @@ -435,7 +435,7 @@ There are multiple types of releases that use the same principles, but are done ### Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13` -This is the default strategy for `next`-releases, there's nothing special needed to trigger this scenario. +This is the default strategy for non-patch-releases, there's nothing special needed to trigger this scenario. ### Prerelease promotions - `7.1.0-alpha.13` -> `7.1.0-beta.0` @@ -462,7 +462,7 @@ This is the first prerelease after a stable major/minor has been released. The d ### Patch releases to stable - subset of `7.1.0-alpha.13` -> `7.0.14` -This is the default hotfix release scenario, which cherry picks patches to `main`. +This is the default patch release scenario, which cherry picks patches to `main`. ### Patch releases to earlier versions - subset of `7.1.0-alpha.13` -> `6.5.14` @@ -476,7 +476,7 @@ No process is defined for this. ### Merges to `main` without versioning -As described in more details in [the Hotfix Releases section](#hotfix-releases), there are scenarios where you want to patch [unreleasable](#which-changes-are-considered-releasable-and-what-does-it-mean) content back to `main` without bumping versions or publishing a new release. This happens automatically as long as all the unpicked patch pull requests have unreleasable labels. In that case the prepared patch pull request will change form slighty, to just cherry-picking the patches without bumping the versions. +As described in more details in [the Patch Releases section](#patch-releases), there are scenarios where you want to patch [unreleasable](#which-changes-are-considered-releasable-and-what-does-it-mean) content back to `main` without bumping versions or publishing a new release. This happens automatically as long as all the unpicked patch pull requests have unreleasable labels. In that case the prepared patch pull request will change form slighty, to just cherry-picking the patches without bumping the versions. ## FAQ @@ -538,7 +538,7 @@ If a pull request does not have any of the above labels at the time of release, This is most likely because `next` only contains [unreleasable changes](#which-changes-are-considered-releasable-and-what-does-it-mean), which causes the preparation workflow to cancel itself. That's because it doesn't make sense to prepare a new release if all the changes are unreleasable, as that wouldn't bump the version nor write a new changelog entry, so "releasing" it would just merge it back to `next` without any differences. -You can always see the workflows and if they have been cancelled [here for `next`-releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-next-release.yml) and [here for hotfix releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-hotfix-release.yml). +You can always see the workflows and if they have been cancelled [here for non-patch-releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) and [here for patch releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml). ### Why do we need separate release branches? diff --git a/scripts/release/__tests__/generate-pr-description.test.ts b/scripts/release/__tests__/generate-pr-description.test.ts index 306ad627ee78..50aa5de8e019 100644 --- a/scripts/release/__tests__/generate-pr-description.test.ts +++ b/scripts/release/__tests__/generate-pr-description.test.ts @@ -219,7 +219,7 @@ For each pull request below, you need to either manually cherry pick it, or disc - [ ] [#42](https://github.com/storybookjs/storybook/pull/42): \\\`git cherry-pick -m1 -x abc123\\\` - If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-next-release.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. + If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. Feel free to manually commit any changes necessary to this branch **after** you\\'ve done the last re-generation, following the [Make Manual Changes](https://github.com/storybookjs/storybook/blob/next/CONTRIBUTING/RELEASING.md#5-make-manual-changes) section in the docs, *especially* if you\\'re making changes to the changelog. @@ -279,7 +279,7 @@ For each pull request below, you need to either manually cherry pick it, or disc - [ ] [#42](https://github.com/storybookjs/storybook/pull/42): \\\`git cherry-pick -m1 -x abc123\\\` - If you\\'ve made any changes (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-hotfix-release.yml) and wait for it to finish. + If you\\'ve made any changes (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml) and wait for it to finish. Feel free to manually commit any changes necessary to this branch **after** you\\'ve done the last re-generation, following the [Make Manual Changes](https://github.com/storybookjs/storybook/blob/next/CONTRIBUTING/RELEASING.md#5-make-manual-changes) section in the docs. @@ -346,7 +346,7 @@ For each pull request below, you need to either manually cherry pick it, or disc - If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-next-release.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. + If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. Feel free to manually commit any changes necessary to this branch **after** you\\'ve done the last re-generation, following the [Make Manual Changes](https://github.com/storybookjs/storybook/blob/next/CONTRIBUTING/RELEASING.md#5-make-manual-changes) section in the docs, *especially* if you\\'re making changes to the changelog. @@ -401,7 +401,7 @@ For each pull request below, you need to either manually cherry pick it, or disc - If you\\'ve made any changes (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-hotfix-release.yml) and wait for it to finish. + If you\\'ve made any changes (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml) and wait for it to finish. Feel free to manually commit any changes necessary to this branch **after** you\\'ve done the last re-generation, following the [Make Manual Changes](https://github.com/storybookjs/storybook/blob/next/CONTRIBUTING/RELEASING.md#5-make-manual-changes) section in the docs. diff --git a/scripts/release/__tests__/is-pr-frozen.test.ts b/scripts/release/__tests__/is-pr-frozen.test.ts index d5d1e8a16b74..ab9a386b19e6 100644 --- a/scripts/release/__tests__/is-pr-frozen.test.ts +++ b/scripts/release/__tests__/is-pr-frozen.test.ts @@ -47,13 +47,13 @@ describe('isPrFrozen', () => { await expect(isPrFrozen({ patch: false })).resolves.toBe(false); }); - it('should look for patch PRs when hotfix is true', async () => { + it('should look for patch PRs when patch is true', async () => { getPullInfoFromCommit.mockResolvedValue({ labels: [], }); - await isPrFrozen({ hotfix: true }); + await isPrFrozen({ patch: true }); - expect(simpleGit.__fetch).toHaveBeenCalledWith('origin', 'version-hotfix-from-1.0.0', { + expect(simpleGit.__fetch).toHaveBeenCalledWith('origin', 'version-patch-from-1.0.0', { '--depth': 1, }); }); diff --git a/scripts/release/generate-pr-description.ts b/scripts/release/generate-pr-description.ts index 8a83e20d4f10..d437e8dc87bc 100644 --- a/scripts/release/generate-pr-description.ts +++ b/scripts/release/generate-pr-description.ts @@ -143,8 +143,8 @@ export const generateReleaseDescription = ({ manualCherryPicks?: string; }): string => { const workflow = semver.prerelease(nextVersion) - ? 'prepare-next-release' - : 'prepare-hotfix-release'; + ? 'prepare-non-patch-release' + : 'prepare-patch-release'; const workflowUrl = `https://github.com/storybookjs/storybook/actions/workflows/${workflow}.yml`; return ( @@ -218,7 +218,7 @@ export const generateNonReleaseDescription = ( ${manualCherryPicks || ''} - If you've made any changes (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-hotfix-release.yml) and wait for it to finish. + If you've made any changes (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml) and wait for it to finish. Feel free to manually commit any changes necessary to this branch **after** you've done the last re-generation, following the [Make Manual Changes](https://github.com/storybookjs/storybook/blob/next/CONTRIBUTING/RELEASING.md#5-make-manual-changes) section in the docs. diff --git a/scripts/release/is-pr-frozen.ts b/scripts/release/is-pr-frozen.ts index 364d7289cc9e..7468b9943303 100644 --- a/scripts/release/is-pr-frozen.ts +++ b/scripts/release/is-pr-frozen.ts @@ -12,7 +12,7 @@ program .description( 'returns true if the versioning pull request associated with the current branch has the "freeze" label' ) - .option('-H, --hotfix', 'Look for hotfix PR instead of next PR', false) + .option('-H, --patch', 'Look for patch PR instead of next PR', false) .option('-V, --verbose', 'Enable verbose logging', false); const CODE_DIR_PATH = path.join(__dirname, '..', '..', 'code'); @@ -43,10 +43,10 @@ const getRepo = async (verbose?: boolean): Promise => { }; export const run = async (options: unknown) => { - const { verbose, hotfix } = options as { verbose?: boolean; hotfix?: boolean }; + const { verbose, patch } = options as { verbose?: boolean; patch?: boolean }; const version = await getCurrentVersion(); - const branch = `version-${hotfix ? 'hotfix' : 'next'}-from-${version}`; + const branch = `version-${patch ? 'patch' : 'next'}-from-${version}`; console.log(`💬 Determining if pull request from branch '${chalk.blue(branch)}' is frozen`); From 15b59338df7636b1a17e4b3b99376237c51b0147 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Wed, 4 Oct 2023 11:23:04 +0200 Subject: [PATCH 087/154] more renaming --- .../workflows/prepare-non-patch-release.yml | 12 +- CONTRIBUTING/RELEASING.md | 112 +++++++++--------- .../release/__tests__/is-pr-frozen.test.ts | 2 +- scripts/release/is-pr-frozen.ts | 2 +- 4 files changed, 64 insertions(+), 64 deletions(-) diff --git a/.github/workflows/prepare-non-patch-release.yml b/.github/workflows/prepare-non-patch-release.yml index e1b4b45a016b..ea72d924d918 100644 --- a/.github/workflows/prepare-non-patch-release.yml +++ b/.github/workflows/prepare-non-patch-release.yml @@ -34,7 +34,7 @@ concurrency: cancel-in-progress: true jobs: - prepare-next-pull-request: + prepare-non-patch-pull-request: name: Prepare prerelease pull request runs-on: ubuntu-latest environment: release @@ -122,15 +122,15 @@ jobs: run: | yarn release:write-changelog ${{ steps.bump-version.outputs.next-version }} --verbose - - name: 'Commit changes to branch: version-next-from-${{ steps.bump-version.outputs.current-version }}' + - name: 'Commit changes to branch: version-non-patch-from-${{ steps.bump-version.outputs.current-version }}' working-directory: . run: | git config --global user.name 'storybook-bot' git config --global user.email '32066757+storybook-bot@users.noreply.github.com' - git checkout -b version-next-from-${{ steps.bump-version.outputs.current-version }} + git checkout -b version-non-patch-from-${{ steps.bump-version.outputs.current-version }} git add . git commit -m "Write changelog for ${{ steps.bump-version.outputs.next-version }} [skip ci]" || true - git push --force origin version-next-from-${{ steps.bump-version.outputs.current-version }} + git push --force origin version-non-patch-from-${{ steps.bump-version.outputs.current-version }} - name: Resolve merge-conflicts with base branch if: steps.is-prerelease.outputs.prerelease == 'true' @@ -140,7 +140,7 @@ jobs: git pull origin latest-release git checkout --ours . git add . - git commit -m "Merge latest-release into version-next-from-${{ steps.bump-version.outputs.current-version }} with conflicts resolved to ours [skip ci]" + git commit -m "Merge latest-release into version-non-patch-from-${{ steps.bump-version.outputs.current-version }} with conflicts resolved to ours [skip ci]" - name: Generate PR description id: description @@ -166,7 +166,7 @@ jobs: --title "Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ --label "release" \ --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ - --head version-next-from-${{ steps.bump-version.outputs.current-version }} \ + --head version-non-patch-from-${{ steps.bump-version.outputs.current-version }} \ --body "${{ steps.description.outputs.description }}" fi diff --git a/CONTRIBUTING/RELEASING.md b/CONTRIBUTING/RELEASING.md index 8ad3380821ee..e92fa8fa36a3 100644 --- a/CONTRIBUTING/RELEASING.md +++ b/CONTRIBUTING/RELEASING.md @@ -8,8 +8,8 @@ - [Introduction](#introduction) - [Branches](#branches) - [Release Pull Requests](#release-pull-requests) - - [Non-patch-releases](#non-patch-releases) - [Patch Releases](#patch-releases) + - [Non-patch Releases](#non-patch-releases) - [Publishing](#publishing) - [👉 How to Release](#-how-to-release) - [1. Find the Prepared Pull Request](#1-find-the-prepared-pull-request) @@ -45,7 +45,7 @@ This document explains the release process for the Storybook monorepo. There are two types: -1. non-patch-releases - releasing any content that is on the `next` branch, either prereleases or stable releases +1. Non-patch releases - releasing any content that is on the `next` branch, either prereleases or stable releases 2. Patch releases - picking any content from `next` to `main`, that needs to be patched back to the current stable minor release The release process is based on automatically created "Release Pull Requests", that when merged will trigger a new version to be released. @@ -57,7 +57,7 @@ A designated Releaser -- which may rotate between core team members -- will go t - [Publish](../.github/workflows/publish.yml) > **Note** -> This document distinguishes between **non-patch-releases** and **patch** releases. The distinction reflects the difference between patching an existing minor version on `main` or releasing a new minor/major/prerelease from `next`. +> This document distinguishes between **patch** and **non-patch** releases. The distinction reflects the difference between patching an existing minor version on `main` or releasing a new minor/major/prerelease from `next`. ### Branches @@ -103,7 +103,7 @@ Two GitHub Actions workflows automatically create release pull requests, one for The high-level flow is: 1. When a PR is merged to `next` (or a commit is pushed), both release pull requests are (re)generated. -2. They create a new branch - `version-(patch|next)-from-`. +2. They create a new branch - `version-(patch|non-patch)-from-`. 3. They calculate which version to bump to according to the version strategy. 4. They update `CHANGELOG(.prerelease).md` with all changes detected. 5. They commit everything. @@ -117,48 +117,6 @@ A few key points to note in this flow: - The changelogs are committed during the preparation, but the packages are not version bumped and not published until later. - The release pull requests don't target their working branches (`next` and `main`), but rather `next-release` and `latest-release`. -### Non-patch-releases - -> **Note** -> Workflow: [`prepare-non-patch-release.yml`](../.github/workflows/prepare-non-patch-release.yml) - -Non-patch-releases are prepared with all content from the `next` branch. The changelog is generated by examining the git history, and looking up all the commits and pull requests between the current prerelease (on `next-release`) and `HEAD` of `next`. - -The default versioning strategy is to increase the current prerelease number, as described in [Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13). If there is no prerelease number (i.e., we just released a new stable minor/major version), it will add one to a patch bump, so it would go from `7.2.0` to `7.2.1-0` by default. - -`next`-PRs are only created if there are actual changes to release. Content labeled with "build" or "documentation" is [not considered "releasable"](#which-changes-are-considered-releasable-and-what-does-it-mean) and is not user-facing, so it doesn't make sense to create a release. This is explained in more detail in [Why are no release PRs being prepared?](#why-are-no-release-prs-being-prepared). - -The preparation workflow will create a new branch from `next`, called `version-next-from-`, and open a pull request targeting `next-release`. When the Releaser merges it, the [publish workflow](#publishing) will merge `next-release` into `next`. - -Here's an example of a workflow where a feature and a bugfix have been created and then released to a new `7.1.0-alpha.29` version. All the commits highlighted with square dots are the ones that will be considered when generating the changelog. - -```mermaid -%%{init: { 'gitGraph': { 'mainBranchName': 'next' } } }%% -gitGraph - commit - branch next-release - commit tag: "7.1.0-alpha.28" - checkout next - merge next-release - commit type: HIGHLIGHT id: "direct commit" - branch new-feature - commit - commit - checkout next - merge new-feature type: HIGHLIGHT - branch some-bugfix - commit - checkout next - merge some-bugfix type: HIGHLIGHT - branch version-next-from-7.1.0-alpha.28 - commit id: "write changelog" - checkout next-release - merge version-next-from-7.1.0-alpha.28 - commit id: "bump versions" tag: "7.1.0-alpha.29" - checkout next - merge next-release -``` - ### Patch Releases > **Note** @@ -210,6 +168,48 @@ gitGraph merge latest-release ``` +### Non-patch Releases + +> **Note** +> Workflow: [`prepare-non-patch-release.yml`](../.github/workflows/prepare-non-patch-release.yml) + +Non-patch-releases are prepared with all content from the `next` branch. The changelog is generated by examining the git history, and looking up all the commits and pull requests between the current prerelease (on `next-release`) and `HEAD` of `next`. + +The default versioning strategy is to increase the current prerelease number, as described in [Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13). If there is no prerelease number (i.e., we just released a new stable minor/major version), it will add one to a patch bump, so it would go from `7.2.0` to `7.2.1-0` by default. + +`next`-PRs are only created if there are actual changes to release. Content labeled with "build" or "documentation" is [not considered "releasable"](#which-changes-are-considered-releasable-and-what-does-it-mean) and is not user-facing, so it doesn't make sense to create a release. This is explained in more detail in [Why are no release PRs being prepared?](#why-are-no-release-prs-being-prepared). + +The preparation workflow will create a new branch from `next`, called `version-non-patch-from-`, and open a pull request targeting `next-release`. When the Releaser merges it, the [publish workflow](#publishing) will merge `next-release` into `next`. + +Here's an example of a workflow where a feature and a bugfix have been created and then released to a new `7.1.0-alpha.29` version. All the commits highlighted with square dots are the ones that will be considered when generating the changelog. + +```mermaid +%%{init: { 'gitGraph': { 'mainBranchName': 'next' } } }%% +gitGraph + commit + branch next-release + commit tag: "7.1.0-alpha.28" + checkout next + merge next-release + commit type: HIGHLIGHT id: "direct commit" + branch new-feature + commit + commit + checkout next + merge new-feature type: HIGHLIGHT + branch some-bugfix + commit + checkout next + merge some-bugfix type: HIGHLIGHT + branch version-non-patch-from-7.1.0-alpha.28 + commit id: "write changelog" + checkout next-release + merge version-non-patch-from-7.1.0-alpha.28 + commit id: "bump versions" tag: "7.1.0-alpha.29" + checkout next + merge next-release +``` + ### Publishing > **Note** @@ -304,7 +304,7 @@ The workflows can be triggered here: - [Prepare next PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) - [Prepare patch PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml) -Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - non-patch-releases](#non-patch-releases). When triggering the prerelease workflow manually, you can optionally add inputs: +Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - Non-patch Releases](#non-patch-releases). When triggering the prerelease workflow manually, you can optionally add inputs: ![Screenshot of triggering the non-patch-release workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) @@ -435,7 +435,7 @@ There are multiple types of releases that use the same principles, but are done ### Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13` -This is the default strategy for non-patch-releases, there's nothing special needed to trigger this scenario. +This is the default strategy for Non-patch releases, there's nothing special needed to trigger this scenario. ### Prerelease promotions - `7.1.0-alpha.13` -> `7.1.0-beta.0` @@ -451,7 +451,7 @@ To promote a prerelease to a stable reelase, during the [Re-trigger the Workflow - Release type: Patch, Minor or Major - Prerelease ID: Leave empty -This scenario is special as it will target `latest-release` instead of `next-release`, and thus merge into `main` when done, and not `next`. So it goes `next` -> `version-from- `latest-release` -> `main`. +This scenario is special as it will target `latest-release` instead of `next-release`, and thus merge into `main` when done, and not `next`. So it goes `next` -> `version-non-patch-from-` -> `latest-release` -> `main`. ### First prerelease of new major/minor - `7.1.0` -> `7.2.0-alpha.0` or `8.0.0-alpha.0` @@ -538,7 +538,7 @@ If a pull request does not have any of the above labels at the time of release, This is most likely because `next` only contains [unreleasable changes](#which-changes-are-considered-releasable-and-what-does-it-mean), which causes the preparation workflow to cancel itself. That's because it doesn't make sense to prepare a new release if all the changes are unreleasable, as that wouldn't bump the version nor write a new changelog entry, so "releasing" it would just merge it back to `next` without any differences. -You can always see the workflows and if they have been cancelled [here for non-patch-releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) and [here for patch releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml). +You can always see the workflows and if they have been cancelled [here for non-patch releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) and [here for patch releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml). ### Why do we need separate release branches? @@ -560,11 +560,11 @@ gitGraph branch some-simultaneous-bugfix commit checkout next - branch version-next-from-7.1.0-alpha.28 + branch version-non-patch-from-7.1.0-alpha.28 commit id checkout next merge some-simultaneous-bugfix type: HIGHLIGHT id: "whoops!" - merge version-next-from-7.1.0-alpha.28 tag: "v7.1.0-alpha.29" + merge version-non-patch-from-7.1.0-alpha.28 tag: "v7.1.0-alpha.29" ``` When publishing at the last commit with tag `v7.1.0-alpha.29`, it will publish whatever the content is at that point (all the square dots), which includes the "whoops!" commit from merging the bugfix. But the bugfix was never part of the release pull request because it got prepared before the bugfix was merged in. @@ -584,19 +584,19 @@ gitGraph branch some-simultanous-bugfix commit checkout next - branch version-next-from-7.1.0-alpha.28 + branch version-non-patch-from-7.1.0-alpha.28 commit id: "write changelog" checkout next merge some-simultanous-bugfix id: "whoops!" checkout next-release - merge version-next-from-7.1.0-alpha.28 + merge version-non-patch-from-7.1.0-alpha.28 commit id: "bump versions" tag: "v7.1.0-alpha.29" checkout next merge next-release - branch version-next-from-7.1.0-alpha.29 + branch version-non-patch-from-7.1.0-alpha.29 commit id: "write changelog again" checkout next-release - merge version-next-from-7.1.0-alpha.29 + merge version-non-patch-from-7.1.0-alpha.29 commit id: "bump versions again" tag: "v7.1.0-alpha.30" checkout next merge next-release diff --git a/scripts/release/__tests__/is-pr-frozen.test.ts b/scripts/release/__tests__/is-pr-frozen.test.ts index ab9a386b19e6..00331e0555cd 100644 --- a/scripts/release/__tests__/is-pr-frozen.test.ts +++ b/scripts/release/__tests__/is-pr-frozen.test.ts @@ -64,7 +64,7 @@ describe('isPrFrozen', () => { }); await isPrFrozen({ patch: false }); - expect(simpleGit.__fetch).toHaveBeenCalledWith('origin', 'version-next-from-1.0.0', { + expect(simpleGit.__fetch).toHaveBeenCalledWith('origin', 'version-non-patch-from-1.0.0', { '--depth': 1, }); }); diff --git a/scripts/release/is-pr-frozen.ts b/scripts/release/is-pr-frozen.ts index 7468b9943303..e81610a451b9 100644 --- a/scripts/release/is-pr-frozen.ts +++ b/scripts/release/is-pr-frozen.ts @@ -46,7 +46,7 @@ export const run = async (options: unknown) => { const { verbose, patch } = options as { verbose?: boolean; patch?: boolean }; const version = await getCurrentVersion(); - const branch = `version-${patch ? 'patch' : 'next'}-from-${version}`; + const branch = `version-${patch ? 'patch' : 'non-patch'}-from-${version}`; console.log(`💬 Determining if pull request from branch '${chalk.blue(branch)}' is frozen`); From 37d6cd5696b1db2a094dab4e4fa89a0618ceb048 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Wed, 4 Oct 2023 13:30:16 +0200 Subject: [PATCH 088/154] Downgrade file-system-cache --- code/lib/core-common/package.json | 2 +- code/lib/types/package.json | 2 +- code/yarn.lock | 2274 ++++++++++++++--------------- 3 files changed, 1104 insertions(+), 1174 deletions(-) diff --git a/code/lib/core-common/package.json b/code/lib/core-common/package.json index 050031f4cb70..29c09387e5fd 100644 --- a/code/lib/core-common/package.json +++ b/code/lib/core-common/package.json @@ -54,7 +54,7 @@ "chalk": "^4.1.0", "esbuild": "^0.18.0", "esbuild-register": "^3.5.0", - "file-system-cache": "^2.4.4", + "file-system-cache": "2.3.0", "find-cache-dir": "^3.0.0", "find-up": "^5.0.0", "fs-extra": "^11.1.0", diff --git a/code/lib/types/package.json b/code/lib/types/package.json index bbb6ccd3ea0d..c0a3fda13d64 100644 --- a/code/lib/types/package.json +++ b/code/lib/types/package.json @@ -47,7 +47,7 @@ "@storybook/channels": "workspace:*", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", - "file-system-cache": "^2.4.4" + "file-system-cache": "2.3.0" }, "devDependencies": { "@storybook/csf": "^0.1.0", diff --git a/code/yarn.lock b/code/yarn.lock index 3f9dbaca64d1..915d4281a0ba 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -41,13 +41,13 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1602.1": - version: 0.1602.1 - resolution: "@angular-devkit/architect@npm:0.1602.1" +"@angular-devkit/architect@npm:0.1602.4": + version: 0.1602.4 + resolution: "@angular-devkit/architect@npm:0.1602.4" dependencies: - "@angular-devkit/core": 16.2.1 + "@angular-devkit/core": 16.2.4 rxjs: 7.8.1 - checksum: e6b977f804a120cee3a551e6f7bbe2944db7b7b98de45a660fcaab8254bd01a8fb7859d6e43bfd9acffa9a95bec808479dfa6a9444680050ac29c285edcfbbce + checksum: 001004daa67a6c31e20bb1c1711f1b122d744d4003749399e4f72e18e6c5006dc77162bdde7dc8614b0509edec5f25cfff4dec9df6c111e5fa7036c21b207232 languageName: node linkType: hard @@ -62,13 +62,13 @@ __metadata: linkType: hard "@angular-devkit/build-angular@npm:^16.0.0-rc.4": - version: 16.2.1 - resolution: "@angular-devkit/build-angular@npm:16.2.1" + version: 16.2.4 + resolution: "@angular-devkit/build-angular@npm:16.2.4" dependencies: "@ampproject/remapping": 2.2.1 - "@angular-devkit/architect": 0.1602.1 - "@angular-devkit/build-webpack": 0.1602.1 - "@angular-devkit/core": 16.2.1 + "@angular-devkit/architect": 0.1602.4 + "@angular-devkit/build-webpack": 0.1602.4 + "@angular-devkit/core": 16.2.4 "@babel/core": 7.22.9 "@babel/generator": 7.22.9 "@babel/helper-annotate-as-pure": 7.22.5 @@ -80,7 +80,7 @@ __metadata: "@babel/runtime": 7.22.6 "@babel/template": 7.22.5 "@discoveryjs/json-ext": 0.5.7 - "@ngtools/webpack": 16.2.1 + "@ngtools/webpack": 16.2.4 "@vitejs/plugin-basic-ssl": 1.0.1 ansi-colors: 4.1.3 autoprefixer: 10.4.14 @@ -164,20 +164,20 @@ __metadata: optional: true tailwindcss: optional: true - checksum: e789a84b0ea985f5af9a101780f3666bb5885bd76f921951fbaeca87710ee92d039683fa7e841e5818cea9645610b3e36f81b5fb1c79b9d3080a5f61d8aecfb4 + checksum: d0f3ea4ae60b0bb5f90da51fe68ac7be804e583cfec797a61c1b166e7621683e0a2f7b2e05a9ba00a93f31a9d0398f3bbe8f07fa0ff7a8a6c566ce16fce2f09f languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1602.1": - version: 0.1602.1 - resolution: "@angular-devkit/build-webpack@npm:0.1602.1" +"@angular-devkit/build-webpack@npm:0.1602.4": + version: 0.1602.4 + resolution: "@angular-devkit/build-webpack@npm:0.1602.4" dependencies: - "@angular-devkit/architect": 0.1602.1 + "@angular-devkit/architect": 0.1602.4 rxjs: 7.8.1 peerDependencies: webpack: ^5.30.0 webpack-dev-server: ^4.0.0 - checksum: 37146761b200e8842313b77d70f6cb32a67d5cbd8403c0b7dadfcade72147f46f042ebce071b9743aab9d06347a5a37983c012fdf0eb028bec7a337101185e04 + checksum: af362fddde0e8475fbec2798a7e7fb4a646f3aa29e0575245388db5bfd3d923fd0186116710e677d09d0e93a0fbc130022076a93013df8d321a3295fc9b1c2ef languageName: node linkType: hard @@ -199,9 +199,9 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/core@npm:16.2.1, @angular-devkit/core@npm:^16.0.0-rc.4": - version: 16.2.1 - resolution: "@angular-devkit/core@npm:16.2.1" +"@angular-devkit/core@npm:16.2.4, @angular-devkit/core@npm:^16.0.0-rc.4": + version: 16.2.4 + resolution: "@angular-devkit/core@npm:16.2.4" dependencies: ajv: 8.12.0 ajv-formats: 2.1.1 @@ -214,42 +214,42 @@ __metadata: peerDependenciesMeta: chokidar: optional: true - checksum: d9ec6fa48fb7c5aeb0ad14a82ae2fa55e07435838b5d020a8b4900736a7fd13f14bc17457d34f7c7eb1a794f2a602d7dc2f0eb26cae374b1d42d6ce798a18efa + checksum: 9feffa0fce61f9609868eb557163c8963fcd642f26e8c87285a5d250825c0076c1b859683737edf808e9e85e6afbb0e5c8a933fc12b6634cf8e35b7005bc1342 languageName: node linkType: hard -"@angular-devkit/schematics@npm:16.2.1": - version: 16.2.1 - resolution: "@angular-devkit/schematics@npm:16.2.1" +"@angular-devkit/schematics@npm:16.2.4": + version: 16.2.4 + resolution: "@angular-devkit/schematics@npm:16.2.4" dependencies: - "@angular-devkit/core": 16.2.1 + "@angular-devkit/core": 16.2.4 jsonc-parser: 3.2.0 magic-string: 0.30.1 ora: 5.4.1 rxjs: 7.8.1 - checksum: f4a3c652a4598e3502b82234911e65a905a4579038a85e207ac3e8ff1d1f7d59e8adeceff7380bdbd4b2023f89db1e40803923923a33fd347a02d3db184321ae + checksum: 153cd8cc7219a4002413c443688c70912237c98c745e62626273720271f131ec1ae8dd464fb73946e86dedf4cbb4a3651ef0547747fa5ee627ef27c197d675d7 languageName: node linkType: hard "@angular/animations@npm:^16.0.0-rc.4": - version: 16.2.4 - resolution: "@angular/animations@npm:16.2.4" + version: 16.2.7 + resolution: "@angular/animations@npm:16.2.7" dependencies: tslib: ^2.3.0 peerDependencies: - "@angular/core": 16.2.4 - checksum: 439a51026af8f96c915e5b5387b5874a378e6f2e627aa8a05f8319b597284c22d02c8dcd6b08e31f11c8bd715c1976bebf0cb1c6eac50ecad609f591500c4a18 + "@angular/core": 16.2.7 + checksum: 3d3d603a7f9a0d8932b0783ba120623bf5ea94842ff0ed3225262834664ba2ddb3c723b944f3a06862f90c063b73e41b06d8fe0837e29ee1bed1f1eef8773d54 languageName: node linkType: hard "@angular/cli@npm:^16.0.0-rc.4": - version: 16.2.1 - resolution: "@angular/cli@npm:16.2.1" + version: 16.2.4 + resolution: "@angular/cli@npm:16.2.4" dependencies: - "@angular-devkit/architect": 0.1602.1 - "@angular-devkit/core": 16.2.1 - "@angular-devkit/schematics": 16.2.1 - "@schematics/angular": 16.2.1 + "@angular-devkit/architect": 0.1602.4 + "@angular-devkit/core": 16.2.4 + "@angular-devkit/schematics": 16.2.4 + "@schematics/angular": 16.2.4 "@yarnpkg/lockfile": 1.1.0 ansi-colors: 4.1.3 ini: 4.1.1 @@ -266,25 +266,25 @@ __metadata: yargs: 17.7.2 bin: ng: bin/ng.js - checksum: 88501e4883d92df0b0088a7c7537923d6c41bf146be3165c61a756d0153e2e9f614c8f795b46ce16c981d01ac197ed6f278523af2c61e32f9bcdc288dcbbc27d + checksum: 2d919ed87cc03c89163988ab854d121477511782f0c9e115141d257e1af0f2ed8aa7709b04baee56b68e0e9bb75fe24b877214c9e1062f4a7654f3ddc26ae3b4 languageName: node linkType: hard "@angular/common@npm:^16.0.0-rc.4": - version: 16.2.4 - resolution: "@angular/common@npm:16.2.4" + version: 16.2.7 + resolution: "@angular/common@npm:16.2.7" dependencies: tslib: ^2.3.0 peerDependencies: - "@angular/core": 16.2.4 + "@angular/core": 16.2.7 rxjs: ^6.5.3 || ^7.4.0 - checksum: 33e07528a045aa4e049e7aa59fc5a025d84350faeef62ca9ef30c92820ca470d4c4d242bd1fb367a639564201b223b79af5a4164140c63ab12d8daed3a0fdacf + checksum: 6182db26e2c6f8a4cda58ea5573d0884856e2be9d20903e2f495d31e615edc59fc1db135bbe1d1b1b4c534727ee8e307d3f6fc76e190dc90bf19d7cbdde7def5 languageName: node linkType: hard "@angular/compiler-cli@npm:^16.0.0-rc.4": - version: 16.2.4 - resolution: "@angular/compiler-cli@npm:16.2.4" + version: 16.2.7 + resolution: "@angular/compiler-cli@npm:16.2.7" dependencies: "@babel/core": 7.22.5 "@jridgewell/sourcemap-codec": ^1.4.14 @@ -295,83 +295,83 @@ __metadata: tslib: ^2.3.0 yargs: ^17.2.1 peerDependencies: - "@angular/compiler": 16.2.4 + "@angular/compiler": 16.2.7 typescript: ">=4.9.3 <5.2" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js ngcc: bundles/ngcc/index.js - checksum: e791b0979be56fa8a29287c7b020d90e7ed2d64a9d6034c6675ed2bbb110a2dae2308697fc014fe4a547ba31bab5a02cdf644d14ee457da330a922fe2de37fcb + checksum: e3a5460e385ad8b3eeeeca79ca7d334990bb30928f9714fa60a0c8748b49cd04e25a14ae58beadd491ddae20787020cc846c40ce328f5c6625c23523113c33af languageName: node linkType: hard "@angular/compiler@npm:^16.0.0-rc.4": - version: 16.2.4 - resolution: "@angular/compiler@npm:16.2.4" + version: 16.2.7 + resolution: "@angular/compiler@npm:16.2.7" dependencies: tslib: ^2.3.0 peerDependencies: - "@angular/core": 16.2.4 + "@angular/core": 16.2.7 peerDependenciesMeta: "@angular/core": optional: true - checksum: d946be383c18dd42346c45fe20f19e9f519af496b0739a654d84b336ce9eb2fbc74606293d9a31136ab66c31cfee4bd60cf591a3725a5c00fa0280855fe617b4 + checksum: edbd286f289548f8e1539c82f02b4452326552cef39dc7f2ee2df14d382a8f754f4370e7d99a8526728a8a6180d098e23b066d2f96e7c58e20f6aab33ceef8e4 languageName: node linkType: hard "@angular/core@npm:^16.0.0-rc.4": - version: 16.2.4 - resolution: "@angular/core@npm:16.2.4" + version: 16.2.7 + resolution: "@angular/core@npm:16.2.7" dependencies: tslib: ^2.3.0 peerDependencies: rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.13.0 - checksum: e154307cbbd69806306d201ed069c1b9d8829e428339767ff745286f8a5cdcb6b859e2dc769561f3c5ca98da52f9cbdf786d1f4897781aee3420cb4c4e7db64e + checksum: 5d06adabe8985cd1e91aea9cf95002b5b0784cbdf12ac5ea75c9ce4cc238e0d0640cf81f8b57b08781d02129c1dfaf544419d40e9ee728593c40e42d22c52612 languageName: node linkType: hard "@angular/forms@npm:^16.0.0-rc.4": - version: 16.2.4 - resolution: "@angular/forms@npm:16.2.4" + version: 16.2.7 + resolution: "@angular/forms@npm:16.2.7" dependencies: tslib: ^2.3.0 peerDependencies: - "@angular/common": 16.2.4 - "@angular/core": 16.2.4 - "@angular/platform-browser": 16.2.4 + "@angular/common": 16.2.7 + "@angular/core": 16.2.7 + "@angular/platform-browser": 16.2.7 rxjs: ^6.5.3 || ^7.4.0 - checksum: ddeb49f540fc988d3c10d7a16402072ff002a8c7aebfcfdfa187fc01ca956be9c6821ceb9ace47bac09341606c9426f4fd5ded924bc8bb2e336747f01db06f61 + checksum: d31bf4fbf366c6cbfaf9418dd5588694567ca6282b2efe47c6e2ed7073c8e739865dd0d8c43b3b7344b7e968f958a35bc4f740b793c6e30f7dced12f25d09f7d languageName: node linkType: hard "@angular/platform-browser-dynamic@npm:^16.0.0-rc.4": - version: 16.2.4 - resolution: "@angular/platform-browser-dynamic@npm:16.2.4" + version: 16.2.7 + resolution: "@angular/platform-browser-dynamic@npm:16.2.7" dependencies: tslib: ^2.3.0 peerDependencies: - "@angular/common": 16.2.4 - "@angular/compiler": 16.2.4 - "@angular/core": 16.2.4 - "@angular/platform-browser": 16.2.4 - checksum: 01dd2f438a33112e021b89c5ab2b2008a9314dc04b9881b4a852111945f4150014f33019479d8cd5137d3ae273859027a7fd29fae0f31b7761ffd6c27154526f + "@angular/common": 16.2.7 + "@angular/compiler": 16.2.7 + "@angular/core": 16.2.7 + "@angular/platform-browser": 16.2.7 + checksum: a8be89497ba2823abd46352df2c36ac93ed53540d36ca1953d57458742c27d76afe9a5d93ddd7b79f10154b4d107f2581d5408bc166d6bc208ccfa395b2047ae languageName: node linkType: hard "@angular/platform-browser@npm:^16.0.0-rc.4": - version: 16.2.4 - resolution: "@angular/platform-browser@npm:16.2.4" + version: 16.2.7 + resolution: "@angular/platform-browser@npm:16.2.7" dependencies: tslib: ^2.3.0 peerDependencies: - "@angular/animations": 16.2.4 - "@angular/common": 16.2.4 - "@angular/core": 16.2.4 + "@angular/animations": 16.2.7 + "@angular/common": 16.2.7 + "@angular/core": 16.2.7 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 41be07e9e2f210ec15eef038e267fbef528ac9c93dbbea5aab90dececc9b3f01d9a2d9e1a774bdce139c46aed11c67c77f366a6d81a07594f8964bc53ce582fb + checksum: cfb0aeb969845893353d02ed5be52e13019aac91e2689d81c98064a41a7155e91714fbd031a7fc1e4ebd9b9b0db6813dfbec93529df0f4856df25bb0d9695a8e languageName: node linkType: hard @@ -414,20 +414,10 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/code-frame@npm:7.22.10" - dependencies: - "@babel/highlight": ^7.22.10 - chalk: ^2.4.2 - checksum: fc5fe681eda128f15b928287b6c8e2ccec45776b8662524945cde005fba725642cc47ab0cfef4e7ff9ba5acccb3e907eebc2b3a7f075b8b31b19011229170b27 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/compat-data@npm:7.22.9" - checksum: 1334264b041f8ad4e33036326970c9c26754eb5c04b3af6c223fe6da988cbb8a8542b5526f49ec1ac488210d2f710484a0e4bcd30256294ae3f261d0141febad +"@babel/compat-data@npm:^7.22.20, @babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.22.9": + version: 7.22.20 + resolution: "@babel/compat-data@npm:7.22.20" + checksum: 73c0f7cf4a1181a0a58bbee6a8b69dc4ba1beec1e764686a586db067e8160044d3a28da0a3542f044f3f31fa662ab22fd061dfe3fc9520dc1cee2252f460db30 languageName: node linkType: hard @@ -500,53 +490,30 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.19.6, @babel/core@npm:^7.20.12, @babel/core@npm:^7.22.0, @babel/core@npm:^7.22.1, @babel/core@npm:^7.22.9, @babel/core@npm:^7.3.4, @babel/core@npm:^7.7.5": - version: 7.22.17 - resolution: "@babel/core@npm:7.22.17" +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.0, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.18.9, @babel/core@npm:^7.19.6, @babel/core@npm:^7.20.12, @babel/core@npm:^7.22.0, @babel/core@npm:^7.22.1, @babel/core@npm:^7.22.9, @babel/core@npm:^7.3.4, @babel/core@npm:^7.7.5": + version: 7.23.0 + resolution: "@babel/core@npm:7.23.0" dependencies: "@ampproject/remapping": ^2.2.0 "@babel/code-frame": ^7.22.13 - "@babel/generator": ^7.22.15 + "@babel/generator": ^7.23.0 "@babel/helper-compilation-targets": ^7.22.15 - "@babel/helper-module-transforms": ^7.22.17 - "@babel/helpers": ^7.22.15 - "@babel/parser": ^7.22.16 + "@babel/helper-module-transforms": ^7.23.0 + "@babel/helpers": ^7.23.0 + "@babel/parser": ^7.23.0 "@babel/template": ^7.22.15 - "@babel/traverse": ^7.22.17 - "@babel/types": ^7.22.17 - convert-source-map: ^1.7.0 + "@babel/traverse": ^7.23.0 + "@babel/types": ^7.23.0 + convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: 9ffd2cb1b860a0651f01927d9e84246860cef2e794bc7181e53770ebf80305e6b5ba5050786d8b44be0dc9832106b4e9c7749c4c05c7f711d7508a5fef9034ce + checksum: ba3604b28de28cdb07d7829f67127b03ad2e826c4e28a0560a037c8bbe16b8dc8cdb8baf344e916ad3c28c63aab88c1a1a38f5e3df6047ab79c910b41bb3a4e8 languageName: node linkType: hard -"@babel/core@npm:^7.18.9": - version: 7.22.10 - resolution: "@babel/core@npm:7.22.10" - dependencies: - "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.22.10 - "@babel/generator": ^7.22.10 - "@babel/helper-compilation-targets": ^7.22.10 - "@babel/helper-module-transforms": ^7.22.9 - "@babel/helpers": ^7.22.10 - "@babel/parser": ^7.22.10 - "@babel/template": ^7.22.5 - "@babel/traverse": ^7.22.10 - "@babel/types": ^7.22.10 - convert-source-map: ^1.7.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.2 - semver: ^6.3.1 - checksum: aebc08abfc4d4370d3023b1c5a22db2edd896ddbe21ed54f11c654660481f598b08fd456f9a5aa90cd2d81e0ea6767cd73f72fc11f7ad04d897f8fb20671cc1c - languageName: node - linkType: hard - -"@babel/generator@npm:7.22.9, @babel/generator@npm:^7.12.11, @babel/generator@npm:^7.22.5, @babel/generator@npm:^7.22.9, @babel/generator@npm:^7.7.2, @babel/generator@npm:^7.8.7": +"@babel/generator@npm:7.22.9": version: 7.22.9 resolution: "@babel/generator@npm:7.22.9" dependencies: @@ -558,27 +525,15 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/generator@npm:7.22.10" +"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.22.5, @babel/generator@npm:^7.22.9, @babel/generator@npm:^7.23.0, @babel/generator@npm:^7.7.2, @babel/generator@npm:^7.8.7": + version: 7.23.0 + resolution: "@babel/generator@npm:7.23.0" dependencies: - "@babel/types": ^7.22.10 + "@babel/types": ^7.23.0 "@jridgewell/gen-mapping": ^0.3.2 "@jridgewell/trace-mapping": ^0.3.17 jsesc: ^2.5.1 - checksum: 2f26ac64f0b606cd9e7799eb2bc42d371b378ba2cb3c7c92c01a3bfccca271371990bcd2dc67fee5547721ba3e1fa83ca03fe3aab30bdf417c3078b9759d2f10 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/generator@npm:7.22.15" - dependencies: - "@babel/types": ^7.22.15 - "@jridgewell/gen-mapping": ^0.3.2 - "@jridgewell/trace-mapping": ^0.3.17 - jsesc: ^2.5.1 - checksum: d5e559584fa43490555eb3aef3480d5bb75069aa045ace638fc86111ff2a53df50d303eeaa5ef4c96e8241896807a77699ec2ff8874ed99f7d31b711660658e7 + checksum: b7d8727c574119b5ef06e5d5d0d8d939527d51537db4b08273caebb18f3f2b1d4517b874776085e161fd47d28f26b22c08e7f270b64f43b2afd4a60c5936d6cd languageName: node linkType: hard @@ -613,19 +568,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/helper-compilation-targets@npm:7.22.10" - dependencies: - "@babel/compat-data": ^7.22.9 - "@babel/helper-validator-option": ^7.22.5 - browserslist: ^4.21.9 - lru-cache: ^5.1.1 - semver: ^6.3.1 - checksum: edef207b819f491ded9462ac73858eadb155f4a0afe6cf3951459e47ad23b743ed56d7bd8a1b3f63fd25b39543db42ea58fea7b2193dcb4c98a511d7f1ad547a - languageName: node - linkType: hard - "@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.22.11, @babel/helper-create-class-features-plugin@npm:^7.22.15, @babel/helper-create-class-features-plugin@npm:^7.22.5": version: 7.22.15 resolution: "@babel/helper-create-class-features-plugin@npm:7.22.15" @@ -673,20 +615,20 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-environment-visitor@npm:7.22.5" - checksum: c9377464c1839741a0a77bbad56de94c896f4313eb034c988fc2ab01293e7c4027244c93b4256606c5f4e34c68cf599a7d31a548d537577c7da836bbca40551b +"@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.22.20, @babel/helper-environment-visitor@npm:^7.22.5": + version: 7.22.20 + resolution: "@babel/helper-environment-visitor@npm:7.22.20" + checksum: e762c2d8f5d423af89bd7ae9abe35bd4836d2eb401af868a63bbb63220c513c783e25ef001019418560b3fdc6d9a6fb67e6c0b650bcdeb3a2ac44b5c3d2bdd94 languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-function-name@npm:7.22.5" +"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-function-name@npm:7.23.0" dependencies: - "@babel/template": ^7.22.5 - "@babel/types": ^7.22.5 - checksum: 3ce2e87967fe54aa463d279150ddda0dae3b5bc3f8c2773b90670b553b61e8fe62da7edcd7b1e1891c5b25af4924a6700dad2e9d8249b910a5bf7caa2eaf4c13 + "@babel/template": ^7.22.15 + "@babel/types": ^7.23.0 + checksum: d771dd1f3222b120518176733c52b7cadac1c256ff49b1889dbbe5e3fed81db855b8cc4e40d949c9d3eae0e795e8229c1c8c24c0e83f27cfa6ee3766696c6428 languageName: node linkType: hard @@ -699,12 +641,12 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.22.15, @babel/helper-member-expression-to-functions@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/helper-member-expression-to-functions@npm:7.22.15" +"@babel/helper-member-expression-to-functions@npm:^7.22.15": + version: 7.23.0 + resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" dependencies: - "@babel/types": ^7.22.15 - checksum: 531de203316dd14b0cb64b756f65fedacc8bfb8072e0e9ca92b1df6833d92f821277ef95ab4d148b6f8e0dc368d29e05a8f1cc7a0b87fd7c0cb2f0b25fbacc70 + "@babel/types": ^7.23.0 + checksum: b810daddf093ffd0802f1429052349ed9ea08ef7d0c56da34ffbcdecbdafac86f95bdea2fe30e0e0e629febc7dd41b56cb5eacc10d1a44336d37b755dac31fa4 languageName: node linkType: hard @@ -717,18 +659,18 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.22.15, @babel/helper-module-transforms@npm:^7.22.17, @babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.22.9": - version: 7.22.17 - resolution: "@babel/helper-module-transforms@npm:7.22.17" +"@babel/helper-module-transforms@npm:^7.22.5, @babel/helper-module-transforms@npm:^7.22.9, @babel/helper-module-transforms@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-module-transforms@npm:7.23.0" dependencies: - "@babel/helper-environment-visitor": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 "@babel/helper-module-imports": ^7.22.15 "@babel/helper-simple-access": ^7.22.5 "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/helper-validator-identifier": ^7.22.15 + "@babel/helper-validator-identifier": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0 - checksum: 54d14e092bb15e0e95155890e4c2352e5cb97370e9669aa1066a6a066194f6da01d801516f219a66455add7d10c1b6345d7c2ecfce1b8e69213eb2cc4ba94e75 + checksum: 15a52e401bd17fe44ba9be51cca693a3e182dc93264dc28ede732081c43211741df81ce8eb15e82e81c8ad51beb8893301ecc31d5c77add0f7be78dff6815318 languageName: node linkType: hard @@ -749,28 +691,28 @@ __metadata: linkType: hard "@babel/helper-remap-async-to-generator@npm:^7.18.9, @babel/helper-remap-async-to-generator@npm:^7.22.5, @babel/helper-remap-async-to-generator@npm:^7.22.9": - version: 7.22.17 - resolution: "@babel/helper-remap-async-to-generator@npm:7.22.17" + version: 7.22.20 + resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" dependencies: "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-wrap-function": ^7.22.17 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-wrap-function": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0 - checksum: 81c26cc805256f95ce29fa30d2accdb95da21ab5858bfb01141902978a00e7762726ee47895b86ad9c3d0fb18f571e45d07b07f1278cc9a6f1c38a9a812f8964 + checksum: aa93aa74250b636d477e8d863fbe59d4071f8c2654841b7ac608909e480c1cf3ff7d7af5a4038568829ad09d810bb681668cbe497d9c89ba5c352793dc9edf1e languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.22.5, @babel/helper-replace-supers@npm:^7.22.9": - version: 7.22.9 - resolution: "@babel/helper-replace-supers@npm:7.22.9" +"@babel/helper-replace-supers@npm:^7.22.20, @babel/helper-replace-supers@npm:^7.22.5, @babel/helper-replace-supers@npm:^7.22.9": + version: 7.22.20 + resolution: "@babel/helper-replace-supers@npm:7.22.20" dependencies: - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-member-expression-to-functions": ^7.22.5 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-member-expression-to-functions": ^7.22.15 "@babel/helper-optimise-call-expression": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0 - checksum: 9ef42e0d1f81d3377c96449c82666d54daea86db9f352915d2aff7540008cd65f23574bc97a74308b6203f7a8c6bf886d1cc1fa24917337d3d12ea93cb2a53a8 + checksum: 6b0858811ad46873817c90c805015d63300e003c5a85c147a17d9845fa2558a02047c3cc1f07767af59014b2dd0fa75b503e5bc36e917f360e9b67bb6f1e79f4 languageName: node linkType: hard @@ -808,10 +750,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.15, @babel/helper-validator-identifier@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/helper-validator-identifier@npm:7.22.15" - checksum: 0473ccfd123cf872206eb916ec506f8963f75db50413560d4d1674aed4cd5d9354826c2514474d6cd40637d3bdc515ba87e8035b4bed683ba62cb607e0081aaf +"@babel/helper-validator-identifier@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-validator-identifier@npm:7.22.20" + checksum: dcad63db345fb110e032de46c3688384b0008a42a4845180ce7cd62b1a9c0507a1bed727c4d1060ed1a03ae57b4d918570259f81724aaac1a5b776056f37504e languageName: node linkType: hard @@ -822,65 +764,45 @@ __metadata: languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.22.17": - version: 7.22.17 - resolution: "@babel/helper-wrap-function@npm:7.22.17" +"@babel/helper-wrap-function@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-wrap-function@npm:7.22.20" dependencies: "@babel/helper-function-name": ^7.22.5 "@babel/template": ^7.22.15 - "@babel/types": ^7.22.17 - checksum: d4ac72fd518da8f02f8e4b0eb67a171df75f2d7526dbc4c734acb73670065157910bd5063ad9a8972f9abe90f3fde6720b035cd7042740d8b112055811f648c1 + "@babel/types": ^7.22.19 + checksum: 97b5f42ff4d305318ff2f99a5f59d3e97feff478333b2d893c4f85456d3c66372070f71d7bf9141f598c8cf2741c49a15918193633c427a88d170d98eb8c46eb languageName: node linkType: hard -"@babel/helpers@npm:^7.22.10, @babel/helpers@npm:^7.22.15, @babel/helpers@npm:^7.22.5, @babel/helpers@npm:^7.22.6, @babel/helpers@npm:^7.8.4": - version: 7.22.15 - resolution: "@babel/helpers@npm:7.22.15" +"@babel/helpers@npm:^7.22.5, @babel/helpers@npm:^7.22.6, @babel/helpers@npm:^7.23.0, @babel/helpers@npm:^7.8.4": + version: 7.23.1 + resolution: "@babel/helpers@npm:7.23.1" dependencies: "@babel/template": ^7.22.15 - "@babel/traverse": ^7.22.15 - "@babel/types": ^7.22.15 - checksum: 2f4c270b53cdca4999976ddd4f20b1b8c8be04722f35745d4a0a43d35c6496e1a23d8cbecb21e6bf22502c5e4828de2bea1c1f58bed81c84bfecc8fa96b69483 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/highlight@npm:7.22.10" - dependencies: - "@babel/helper-validator-identifier": ^7.22.5 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - checksum: ac321ed90d37f76df74a44addc1692658eff64060375550bfb64919959573b14000ac83744e1ed30cc51b8b2f1291b0f0e98a3398d3c33c9c4548dd326a898fc + "@babel/traverse": ^7.23.0 + "@babel/types": ^7.23.0 + checksum: ae5a34bb60a0d8bbf9dc4273d90cd5b9499c048f11e2f0df1b033ba3ef3876b96a411374817a20bb24e69619853a04f9a4e7d01b3d1cef5e0c054b9bce9e3128 languageName: node linkType: hard "@babel/highlight@npm:^7.22.13": - version: 7.22.13 - resolution: "@babel/highlight@npm:7.22.13" + version: 7.22.20 + resolution: "@babel/highlight@npm:7.22.20" dependencies: - "@babel/helper-validator-identifier": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 chalk: ^2.4.2 js-tokens: ^4.0.0 - checksum: 65f20132c7ada5d82d343dc23ca61bcd040980f7bd59e480532bcd7f7895aa7abe58470ae8a4f851fd244b71b42a7ad915f7c515fef8f1c2e003777721ebdbe6 + checksum: f3c3a193afad23434297d88e81d1d6c0c2cf02423de2139ada7ce0a7fc62d8559abf4cc996533c1a9beca7fc990010eb8d544097f75e818ac113bf39ed810aa2 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.18.4, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.3, @babel/parser@npm:^7.21.4, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.22.16, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.22.7, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.7.0, @babel/parser@npm:^7.8.6, @babel/parser@npm:^7.8.7, @babel/parser@npm:^7.9.6": - version: 7.22.16 - resolution: "@babel/parser@npm:7.22.16" +"@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.18.4, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.3, @babel/parser@npm:^7.21.4, @babel/parser@npm:^7.22.15, @babel/parser@npm:^7.22.5, @babel/parser@npm:^7.22.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.4.5, @babel/parser@npm:^7.6.0, @babel/parser@npm:^7.7.0, @babel/parser@npm:^7.8.6, @babel/parser@npm:^7.8.7, @babel/parser@npm:^7.9.6": + version: 7.23.0 + resolution: "@babel/parser@npm:7.23.0" bin: parser: ./bin/babel-parser.js - checksum: e7b6a7d65e27a08a8be361021c332aa72b989b845c4124e0e2c3ec5810956f8c96baf0f54657d1e1200ee5ec6298b895392d2ff73f9de61418e56c0d2d6f574c - languageName: node - linkType: hard - -"@babel/parser@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/parser@npm:7.22.10" - bin: - parser: ./bin/babel-parser.js - checksum: 22de4b5b2e20dd5b44a73963e5fceef44501bacdd14f0b3b96fc16975826553c83c3e424e2ea906b4f2fb8c2129b176bcee33ae99e30de9006ceb28ded5c6ac7 + checksum: ab4ea9360ed4ba3c728c5a9bf33035103ebde20a7e943c4ae1d42becb02a313d731d12a93c795c5a19777031e4022e64b92a52262eda902522a1a18649826283 languageName: node linkType: hard @@ -935,17 +857,17 @@ __metadata: linkType: hard "@babel/plugin-proposal-decorators@npm:^7.13.5": - version: 7.22.15 - resolution: "@babel/plugin-proposal-decorators@npm:7.22.15" + version: 7.23.0 + resolution: "@babel/plugin-proposal-decorators@npm:7.23.0" dependencies: "@babel/helper-create-class-features-plugin": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-replace-supers": ^7.22.9 + "@babel/helper-replace-supers": ^7.22.20 "@babel/helper-split-export-declaration": ^7.22.6 "@babel/plugin-syntax-decorators": ^7.22.10 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1af2367ef3bd3d459146b95e066e009a15e55c178cd73368e7a063248f9a079114a1da56d0b3a442a2afd6ba1f0ebb2027fc3813d1548b8319fc45560158baea + checksum: 983e7113f9ca3b2ae632869f71accec48cb652d68840697c3977071d44879657ca6b4427ed02e76e448e385d0feca9bd3d40edfaf1530c6c6c25fe8b97d46689 languageName: node linkType: hard @@ -1325,13 +1247,13 @@ __metadata: linkType: hard "@babel/plugin-transform-block-scoping@npm:^7.22.15, @babel/plugin-transform-block-scoping@npm:^7.22.5, @babel/plugin-transform-block-scoping@npm:^7.8.3": - version: 7.22.15 - resolution: "@babel/plugin-transform-block-scoping@npm:7.22.15" + version: 7.23.0 + resolution: "@babel/plugin-transform-block-scoping@npm:7.23.0" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 8becbcd251c4d011ef12c6652c22528e352d4b7ca2d62d7ce8f87c23777aeb7bb760a512aed8b400b116324516ffb619501ece04f18747f7ce5618092d6a1c74 + checksum: f5d0822a4e2bb3a0b5172f01f8c107999b880f0e538a9c1bae3c7720e85d8d117a67167f5e8eba909e0ec3db67be3b30e7f5c83211dd4be5c7096222071571be languageName: node linkType: hard @@ -1392,13 +1314,13 @@ __metadata: linkType: hard "@babel/plugin-transform-destructuring@npm:^7.22.15, @babel/plugin-transform-destructuring@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/plugin-transform-destructuring@npm:7.22.15" + version: 7.23.0 + resolution: "@babel/plugin-transform-destructuring@npm:7.23.0" dependencies: "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: fbff08ea3fc5e89f3f6f0f305dc336a79e57c86111bfe224b83ed1a30ac8be97522196dc1a7fb1b18f400ac6e252eb4d2135b841f52628afe245c6d8437d2c14 + checksum: 038505eabdde2e1bb3bb904e50292b263d61d35e18660f751e7753b5723e2a5a5903a493290d772c8598da98c2c904b7cf45552ad1c11636fcb78f60754abd53 languageName: node linkType: hard @@ -1544,41 +1466,41 @@ __metadata: linkType: hard "@babel/plugin-transform-modules-amd@npm:^7.13.0, @babel/plugin-transform-modules-amd@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-modules-amd@npm:7.22.5" + version: 7.23.0 + resolution: "@babel/plugin-transform-modules-amd@npm:7.23.0" dependencies: - "@babel/helper-module-transforms": ^7.22.5 + "@babel/helper-module-transforms": ^7.23.0 "@babel/helper-plugin-utils": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 157ae3b58a50ca52e361860ecab2b608bc9228ea6c760112a35302990976f8936b8d75a2b21925797eed7b3bab4930a3f447193127afef9a21b7b6463ff0b422 + checksum: dda02864029ff66955e21d19c3d245aad69792b75e748de1391403bc86c8e9720b4f320b0db8413a29c11ba63b168146cf849180b5677bc6a74bfd085d20376d languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.2.0, @babel/plugin-transform-modules-commonjs@npm:^7.22.15, @babel/plugin-transform-modules-commonjs@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.22.15" +"@babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.2.0, @babel/plugin-transform-modules-commonjs@npm:^7.22.15, @babel/plugin-transform-modules-commonjs@npm:^7.22.5, @babel/plugin-transform-modules-commonjs@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.0" dependencies: - "@babel/helper-module-transforms": ^7.22.15 + "@babel/helper-module-transforms": ^7.23.0 "@babel/helper-plugin-utils": ^7.22.5 "@babel/helper-simple-access": ^7.22.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1b1a25dfcfb86d7719b3ec94d3e6ce0c8b7e0c98375071fe9149fa6556e57f247c39453c27c06d63490c567ddae424bfbd9517185b6bdf71d3875263c74d13ef + checksum: 1f015764c2e63445d46660e7a2eb9002c20def04daf98fa93c9dadb5bd55adbefefd1ccdc11bcafa5e2f04275939d2414482703bc35bc60d6ca2bf1f67b720e3 languageName: node linkType: hard "@babel/plugin-transform-modules-systemjs@npm:^7.22.11, @babel/plugin-transform-modules-systemjs@npm:^7.22.5": - version: 7.22.11 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.22.11" + version: 7.23.0 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.0" dependencies: "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-module-transforms": ^7.22.9 + "@babel/helper-module-transforms": ^7.23.0 "@babel/helper-plugin-utils": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.5 + "@babel/helper-validator-identifier": ^7.22.20 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c484eedf57129a1f0c29b16da73dd77fc241faf14a9f96f4a84853372e9cd69a18555e2a2112ebfdd8f4d6ccd7943525c48cf06a07bc6ec0e473e4049e04fdd8 + checksum: 04c5cef7d6921bb9c9073cea389289099124e78cd1e3b7e020e3c085d486b48efadd9a42c0c0d963a9b1c3d5465c3151229092ea719997e53427f36935c84178 languageName: node linkType: hard @@ -1692,15 +1614,15 @@ __metadata: linkType: hard "@babel/plugin-transform-optional-chaining@npm:^7.22.15, @babel/plugin-transform-optional-chaining@npm:^7.22.6": - version: 7.22.15 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.22.15" + version: 7.23.0 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.0" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 "@babel/plugin-syntax-optional-chaining": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d6437864209ef7884c36cd6122c7b3553b6ea48e4e2a7dc070741d20a96f94deac5b23360b0d953d358e6cb6c991c6831e6601fac68f1a206b487266d7a63807 + checksum: 2bf605b908c75f8d7616e8be52e4656983f2b027032260fbf5279f28297a67a1a28ec3ed60cd5760537dbd08a021246b8092ce06fb2418884390230b807142b3 languageName: node linkType: hard @@ -2096,10 +2018,10 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.16.5, @babel/preset-env@npm:^7.22.9": - version: 7.22.15 - resolution: "@babel/preset-env@npm:7.22.15" + version: 7.22.20 + resolution: "@babel/preset-env@npm:7.22.20" dependencies: - "@babel/compat-data": ^7.22.9 + "@babel/compat-data": ^7.22.20 "@babel/helper-compilation-targets": ^7.22.15 "@babel/helper-plugin-utils": ^7.22.5 "@babel/helper-validator-option": ^7.22.15 @@ -2173,7 +2095,7 @@ __metadata: "@babel/plugin-transform-unicode-regex": ^7.22.5 "@babel/plugin-transform-unicode-sets-regex": ^7.22.5 "@babel/preset-modules": 0.1.6-no-external-plugins - "@babel/types": ^7.22.15 + "@babel/types": ^7.22.19 babel-plugin-polyfill-corejs2: ^0.4.5 babel-plugin-polyfill-corejs3: ^0.8.3 babel-plugin-polyfill-regenerator: ^0.5.2 @@ -2181,7 +2103,7 @@ __metadata: semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d2e952450aeb8d7feea36cfceec47da9e510cdd8f23fbc5c578db7403db7f5d83af7e456bb39af890d7bd40806ac4183377a215349e07f2e80e72259e19a7929 + checksum: 3adf4209a785aec7bfc1a331845ca623acd115e01ff0f9c918b1bc67f69f9e06e6aad4c06940a5001c4c2189617d8c6f8b7fb4720ed7beb9b92d0bdf399692f7 languageName: node linkType: hard @@ -2243,17 +2165,17 @@ __metadata: linkType: hard "@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/preset-typescript@npm:7.22.15" + version: 7.23.0 + resolution: "@babel/preset-typescript@npm:7.23.0" dependencies: "@babel/helper-plugin-utils": ^7.22.5 "@babel/helper-validator-option": ^7.22.15 "@babel/plugin-syntax-jsx": ^7.22.5 - "@babel/plugin-transform-modules-commonjs": ^7.22.15 + "@babel/plugin-transform-modules-commonjs": ^7.23.0 "@babel/plugin-transform-typescript": ^7.22.15 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a9d933b7032263ac9c30e550c7b039c64c4d17c191d1be79012d6dce61f5036601afd8fb4409d9434544b4efb0b2f4d91d797b7f8438d0e1a7dfd7bff279d0d5 + checksum: 97e246bd14eefad1dd93144200e62aedfb8577fac4172c8da4760b1c2272680fe06780ad87fea1ab81b62e32a23fc9f8e9f10c31a1c22cabf879cb3025e2fed8 languageName: node linkType: hard @@ -2280,12 +2202,12 @@ __metadata: linkType: hard "@babel/runtime-corejs3@npm:^7.10.2": - version: 7.22.15 - resolution: "@babel/runtime-corejs3@npm:7.22.15" + version: 7.23.1 + resolution: "@babel/runtime-corejs3@npm:7.23.1" dependencies: core-js-pure: ^3.30.2 regenerator-runtime: ^0.14.0 - checksum: 603ca28f1924ee587fcfccc394c5e4aedc3322193914a2db824e7fe041604282749b023d9edb5076a72af7413050081223c6187f870b9a925a1e9c7a3313f706 + checksum: 6e2c2b11779ff56c88b1f3a8742498640f7271ad4fcf9cfd24052bbb236a5e7c4c7c8d81cda751da3b4effa678736303deb78441c5752e63bfb90d6453fd870f languageName: node linkType: hard @@ -2317,11 +2239,11 @@ __metadata: 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.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.6, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2": - version: 7.22.15 - resolution: "@babel/runtime@npm:7.22.15" + version: 7.23.1 + resolution: "@babel/runtime@npm:7.23.1" dependencies: regenerator-runtime: ^0.14.0 - checksum: 96b74adfd1db812d06ed56d9db12acecfc844d252b93994ce4901433957bd28affba725622a4dc9e7f76384c4cb6cadc3d620d07817c8be9156eaedba5eea059 + checksum: e57ab1436d4845efe67c3f76d578508bb584173690ecfeac105bc4e09d64b2aa6a53c1e03bca3c97cc238e5390a804e5a4ded211e6350243b735905ca45a4822 languageName: node linkType: hard @@ -2367,50 +2289,32 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.22.15, @babel/traverse@npm:^7.22.17, @babel/traverse@npm:^7.22.5, @babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.4.5, @babel/traverse@npm:^7.7.0, @babel/traverse@npm:^7.8.6": - version: 7.22.17 - resolution: "@babel/traverse@npm:7.22.17" +"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.22.5, @babel/traverse@npm:^7.22.8, @babel/traverse@npm:^7.23.0, @babel/traverse@npm:^7.4.5, @babel/traverse@npm:^7.7.0, @babel/traverse@npm:^7.8.6": + version: 7.23.0 + resolution: "@babel/traverse@npm:7.23.0" dependencies: "@babel/code-frame": ^7.22.13 - "@babel/generator": ^7.22.15 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-function-name": ^7.22.5 - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.22.16 - "@babel/types": ^7.22.17 - debug: ^4.1.0 - globals: ^11.1.0 - checksum: c9bfa6d20caf50e529ac9359db4cd4a5c23f28536bf17e2d493135631ab68be456efda94ba71bf568be34c6d8e762b23cfd9f43fd52b09756cb0397446643d17 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.22.10": - version: 7.22.10 - resolution: "@babel/traverse@npm:7.22.10" - dependencies: - "@babel/code-frame": ^7.22.10 - "@babel/generator": ^7.22.10 - "@babel/helper-environment-visitor": ^7.22.5 - "@babel/helper-function-name": ^7.22.5 + "@babel/generator": ^7.23.0 + "@babel/helper-environment-visitor": ^7.22.20 + "@babel/helper-function-name": ^7.23.0 "@babel/helper-hoist-variables": ^7.22.5 "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.22.10 - "@babel/types": ^7.22.10 + "@babel/parser": ^7.23.0 + "@babel/types": ^7.23.0 debug: ^4.1.0 globals: ^11.1.0 - checksum: 8e8b63b053962908408ed9d954810e93f241122222db115327ed5876d020f420fc115ef2d79623c2a4928447ddc002ec220be2a152b241d19de2480c88e10cfb + checksum: 84f93e64179965a0de6109a8b1ce92d66eb52a76e8ba325d27bdec6952cedd8fc98eabf09fe443ef667a051300dc7ed8924e7bf61a87ad456501d1da46657509 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.10, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.17, @babel/types@npm:^7.22.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.8.6, @babel/types@npm:^7.8.7, @babel/types@npm:^7.9.6": - version: 7.22.17 - resolution: "@babel/types@npm:7.22.17" +"@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.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.8.6, @babel/types@npm:^7.8.7, @babel/types@npm:^7.9.6": + version: 7.23.0 + resolution: "@babel/types@npm:7.23.0" dependencies: "@babel/helper-string-parser": ^7.22.5 - "@babel/helper-validator-identifier": ^7.22.15 + "@babel/helper-validator-identifier": ^7.22.20 to-fast-properties: ^2.0.0 - checksum: ca26bd1df1aa2707af058f70fb52898d31b209a8a5372330013870150182697e5ab45d6d661d433259e52b4e25396ad41d0b428158d5b856a030dc111d000359 + checksum: 70e4db41acb6793d0eb8d81a2fa88f19ee661219b84bd5f703dbdb54eb3a4d3c0dfc55e69034c945b479df9f43fd4b1376480aaccfc19797ce5af1c5d2576b36 languageName: node linkType: hard @@ -2544,15 +2448,15 @@ __metadata: linkType: hard "@digitak/esrun@npm:^3.2.2": - version: 3.2.24 - resolution: "@digitak/esrun@npm:3.2.24" + version: 3.2.25 + resolution: "@digitak/esrun@npm:3.2.25" dependencies: "@digitak/grubber": ^3.1.4 chokidar: ^3.5.1 esbuild: ^0.17.4 bin: esrun: bin.js - checksum: cfd46e5be5083d7a7b97881718ff0872ca0a314a294bf7484324d964fa92548db6603e7e5792a2f6d7a820d9e7c55715b70f534fd3cc72ea25e20f56f4490793 + checksum: d2d3291a15fae43e3cba875d12a5bea6453dfe625af90ef7835e9071db31b769219401197fe1d5efde57cf7f1eda204ca68c99022fdc0039eb057052c60d15fc languageName: node linkType: hard @@ -2927,9 +2831,9 @@ __metadata: linkType: hard "@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1": - version: 4.8.1 - resolution: "@eslint-community/regexpp@npm:4.8.1" - checksum: 3443b17de28e42ff2ff07ca6b3488c5d016a01fbedf89dce6c80f6bd4138ec3cf49754dba667844e071bb3fa0b31432e1e6ac6929b32f0bf17ced57073820ec2 + version: 4.9.1 + resolution: "@eslint-community/regexpp@npm:4.9.1" + checksum: d0e1bd1a37cb2cb6bbac88dfe97b62b412d4b6ea3a4bb1c4e1e503be03125063db5d80999cef9728f57b19b49979aa902ac68182bcf5f80dfce6fa9a9d34eee1 languageName: node linkType: hard @@ -2950,10 +2854,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.49.0": - version: 8.49.0 - resolution: "@eslint/js@npm:8.49.0" - checksum: 40b4255866161e16b09eae1830c8ff7379276659ee7ce039e4708bcf3c5a5fd8b95418d32c355294e6c738f23ab42f3e3a55100dffb389edd5d5233ca47c01b3 +"@eslint/js@npm:8.50.0": + version: 8.50.0 + resolution: "@eslint/js@npm:8.50.0" + checksum: 92cb0a823869e85f287bd172f14a6a20d7d65c3f4db886a0356a9efebfe8fe519e9ead84a5687bd18f45eca417bdcce96e3b83fe3feae8baf0f8f44d14073bae languageName: node linkType: hard @@ -2985,22 +2889,22 @@ __metadata: languageName: node linkType: hard -"@floating-ui/core@npm:^1.4.1": - version: 1.4.1 - resolution: "@floating-ui/core@npm:1.4.1" +"@floating-ui/core@npm:^1.4.2": + version: 1.5.0 + resolution: "@floating-ui/core@npm:1.5.0" dependencies: - "@floating-ui/utils": ^0.1.1 - checksum: 6a738ff3b5bcca2470904a2462a2700e32081f6e681e077fd63c8d0b389439511a2a16187589df156fac6e8f47d56bdc0afea64303b9341fb5886cff82d87758 + "@floating-ui/utils": ^0.1.3 + checksum: bca811cefd09c3f56c4cf58c3e94826c1ce4a0b40124e9030ddca2ef1cc68b4ddc5ba5b4d7cc94c9555aea6876d2428a77a2ae261fe5b39c79df247a9518b053 languageName: node linkType: hard "@floating-ui/dom@npm:^1.5.1": - version: 1.5.2 - resolution: "@floating-ui/dom@npm:1.5.2" + version: 1.5.3 + resolution: "@floating-ui/dom@npm:1.5.3" dependencies: - "@floating-ui/core": ^1.4.1 - "@floating-ui/utils": ^0.1.1 - checksum: ce0e7dca2d36667ef4a72a2200bd7c49bf1b1bb94a5a09efc27e9d225175d92f41f00a037f1ef060f8fe78af242bc0889e4b12dd0be4dcd7a772f4a63804e693 + "@floating-ui/core": ^1.4.2 + "@floating-ui/utils": ^0.1.3 + checksum: e5f30b911f939e40003851077bba441f269ae689bdc43c674bee43aa98fc6b7a5f59be432d27b7be599b1e4ab7b15c752875ea777a89cff01d157e593b78b25b languageName: node linkType: hard @@ -3016,10 +2920,10 @@ __metadata: languageName: node linkType: hard -"@floating-ui/utils@npm:^0.1.1": - version: 0.1.2 - resolution: "@floating-ui/utils@npm:0.1.2" - checksum: a26fa0ca4d143ac925c3a966200abb2fcc43af47abfd42e57fb1aff1c9bdc0001d133c4c6575f1c15d328e8984149efa43a1f5803f02b6af9d9303b69b41c059 +"@floating-ui/utils@npm:^0.1.3": + version: 0.1.6 + resolution: "@floating-ui/utils@npm:0.1.6" + checksum: 0a089db0e0526b89e83cb0a773a903517db5c9067cd473febfd8fa91a3a2ccbc3a835234796c1bb528def21dbb67be50e28d9c473cb58a6d90679d7e549b9c0c languageName: node linkType: hard @@ -3030,39 +2934,41 @@ __metadata: languageName: node linkType: hard -"@gitbeaker/core@npm:^21.7.0": - version: 21.7.0 - resolution: "@gitbeaker/core@npm:21.7.0" +"@gitbeaker/core@npm:^35.8.1": + version: 35.8.1 + resolution: "@gitbeaker/core@npm:35.8.1" dependencies: - "@gitbeaker/requester-utils": ^21.7.0 - form-data: ^3.0.0 + "@gitbeaker/requester-utils": ^35.8.1 + form-data: ^4.0.0 li: ^1.3.0 + mime: ^3.0.0 + query-string: ^7.0.0 xcase: ^2.0.1 - checksum: 907f1dac7f43e288c71f184243712a65601a88ab7c9a8b7ff76629d8d94360c31f995b8142dec324615ad50f7e78e12f646a4302cb595dc990da3cdbd2514dfe + checksum: 5c23536dc83d5b4fa86c4efdae54cb2deba745e2f1f54e175c77f1883b218663e808b8fda253c81659aec791c254eb8b98c1e576f94f9c0f1d8f3c01976ae370 languageName: node linkType: hard -"@gitbeaker/node@npm:^21.3.0": - version: 21.7.0 - resolution: "@gitbeaker/node@npm:21.7.0" +"@gitbeaker/node@npm:^35.8.1": + version: 35.8.1 + resolution: "@gitbeaker/node@npm:35.8.1" dependencies: - "@gitbeaker/core": ^21.7.0 - "@gitbeaker/requester-utils": ^21.7.0 - form-data: ^3.0.0 - got: ^11.1.4 + "@gitbeaker/core": ^35.8.1 + "@gitbeaker/requester-utils": ^35.8.1 + delay: ^5.0.0 + got: ^11.8.3 xcase: ^2.0.1 - checksum: c5be30593dae749271f8529a0e33a1831f173d7e39796c9e30206a71e3007cc6368c802d296f1a8fcca056a8e718c77f50ae61aa17de8e444f0c91bf1a05950c + checksum: 387f5d7e31535454a66e627a2e830ceaa7954ac3de66882cdcc52a19d43f6b4221dc9d847baf39a7d08dda235a8f03c729a71efb32f5b84f246fd14d031b98cb languageName: node linkType: hard -"@gitbeaker/requester-utils@npm:^21.7.0": - version: 21.7.0 - resolution: "@gitbeaker/requester-utils@npm:21.7.0" +"@gitbeaker/requester-utils@npm:^35.8.1": + version: 35.8.1 + resolution: "@gitbeaker/requester-utils@npm:35.8.1" dependencies: - form-data: ^3.0.0 - query-string: ^6.12.1 + form-data: ^4.0.0 + qs: ^6.10.1 xcase: ^2.0.1 - checksum: 1930783d67a8add51bd6056e0524facfc867fb73d78387af4259a166a5e725eaa64a4c22c0fe33538762b0abb496781bf39d95fc8d544825354254dd05e05271 + checksum: 4178f7aa052cccd6caf3b2c4d63c9e04ab082ced8d32a7b07c33df6af42707769f8cabfb09b63f46e68e7e20fa0bc02757053adb8f3f79e6e5547b4cb4f119ca languageName: node linkType: hard @@ -4067,84 +3973,84 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:13.4.19": - version: 13.4.19 - resolution: "@next/env@npm:13.4.19" - checksum: 0d9cb76fedcde6f8116c5f029d999cccaf929c9eb8c55daf1d38ae223a80113abae28834e537b26b81731d84ed14fd5231301b2126cd7d9097a7e175dd79bf59 +"@next/env@npm:13.5.4": + version: 13.5.4 + resolution: "@next/env@npm:13.5.4" + checksum: 69c013047371bde6c4dc6d03ec77140059bd4e3db38c1991a8aa8a9c8ce4d1370b98a141145a6f60e23f32ce97a3040b448bfd0455b0d9e5ba6efda8df33c89f languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:13.4.19": - version: 13.4.19 - resolution: "@next/swc-darwin-arm64@npm:13.4.19" +"@next/swc-darwin-arm64@npm:13.5.4": + version: 13.5.4 + resolution: "@next/swc-darwin-arm64@npm:13.5.4" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@next/swc-darwin-x64@npm:13.4.19": - version: 13.4.19 - resolution: "@next/swc-darwin-x64@npm:13.4.19" +"@next/swc-darwin-x64@npm:13.5.4": + version: 13.5.4 + resolution: "@next/swc-darwin-x64@npm:13.5.4" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:13.4.19": - version: 13.4.19 - resolution: "@next/swc-linux-arm64-gnu@npm:13.4.19" +"@next/swc-linux-arm64-gnu@npm:13.5.4": + version: 13.5.4 + resolution: "@next/swc-linux-arm64-gnu@npm:13.5.4" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:13.4.19": - version: 13.4.19 - resolution: "@next/swc-linux-arm64-musl@npm:13.4.19" +"@next/swc-linux-arm64-musl@npm:13.5.4": + version: 13.5.4 + resolution: "@next/swc-linux-arm64-musl@npm:13.5.4" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:13.4.19": - version: 13.4.19 - resolution: "@next/swc-linux-x64-gnu@npm:13.4.19" +"@next/swc-linux-x64-gnu@npm:13.5.4": + version: 13.5.4 + resolution: "@next/swc-linux-x64-gnu@npm:13.5.4" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:13.4.19": - version: 13.4.19 - resolution: "@next/swc-linux-x64-musl@npm:13.4.19" +"@next/swc-linux-x64-musl@npm:13.5.4": + version: 13.5.4 + resolution: "@next/swc-linux-x64-musl@npm:13.5.4" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:13.4.19": - version: 13.4.19 - resolution: "@next/swc-win32-arm64-msvc@npm:13.4.19" +"@next/swc-win32-arm64-msvc@npm:13.5.4": + version: 13.5.4 + resolution: "@next/swc-win32-arm64-msvc@npm:13.5.4" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@next/swc-win32-ia32-msvc@npm:13.4.19": - version: 13.4.19 - resolution: "@next/swc-win32-ia32-msvc@npm:13.4.19" +"@next/swc-win32-ia32-msvc@npm:13.5.4": + version: 13.5.4 + resolution: "@next/swc-win32-ia32-msvc@npm:13.5.4" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@next/swc-win32-x64-msvc@npm:13.4.19": - version: 13.4.19 - resolution: "@next/swc-win32-x64-msvc@npm:13.4.19" +"@next/swc-win32-x64-msvc@npm:13.5.4": + version: 13.5.4 + resolution: "@next/swc-win32-x64-msvc@npm:13.5.4" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@ngtools/webpack@npm:16.2.1": - version: 16.2.1 - resolution: "@ngtools/webpack@npm:16.2.1" +"@ngtools/webpack@npm:16.2.4": + version: 16.2.4 + resolution: "@ngtools/webpack@npm:16.2.4" peerDependencies: "@angular/compiler-cli": ^16.0.0 typescript: ">=4.9.3 <5.2" webpack: ^5.54.0 - checksum: 340283be62a7567215254e46e0273eefbc245c51d6e5e26549b3d1fcd76aa29cdeabab271bc98abb631cb1b306a330d4cbe3e489e156b329ed2266716ef82cd1 + checksum: 7bbf12e04e922372b9b8d29a8ee3dd3dd5f9bb12aaf82f85156bfd2270284875553fa5dc19566c30f3769960e701051204de646fce573098febabb629415e044 languageName: node linkType: hard @@ -4353,11 +4259,11 @@ __metadata: linkType: hard "@npmcli/query@npm:^3.0.0": - version: 3.0.0 - resolution: "@npmcli/query@npm:3.0.0" + version: 3.0.1 + resolution: "@npmcli/query@npm:3.0.1" dependencies: postcss-selector-parser: ^6.0.10 - checksum: 58cff90a0a0b9d603e43723bb51f28ab7d36db778b9d6ef1acf8735fb0303850695fd87ccdbfe796e6b6891b474ea95900019d74ac92f440fd1cdd20db6d5f7c + checksum: 497f03887121df13dbbc7a008772708746ecb9d8b9dbb1d8a8cdc5eb03ff6dbce0e78cbc48102e7cd3d2f3abc2faf22fd5348bb3c33efd13e2077faf8d71efde languageName: node linkType: hard @@ -4387,12 +4293,12 @@ __metadata: languageName: node linkType: hard -"@nrwl/cli@npm:15.9.6": - version: 15.9.6 - resolution: "@nrwl/cli@npm:15.9.6" +"@nrwl/cli@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/cli@npm:15.9.7" dependencies: - nx: 15.9.6 - checksum: 100ad6122998676c97c7c2aeb70e2b644e7999f80b91deb8ff60428b5a40ce8ed269d4c9cb1d8c5d310be268ffd84fbe17ebe09ff0b844c9ecac0155add0a236 + nx: 15.9.7 + checksum: 7fe454ae5a752abcc310edda6bd30ba4c9b7228d3c903231549d3a578825aaca4a49250b4ff73809aa02d8abc5478c6ac80ae1306b519f89a6f8cfedfb71c2cf languageName: node linkType: hard @@ -4406,17 +4312,17 @@ __metadata: linkType: hard "@nrwl/devkit@npm:>=15.5.2 < 16": - version: 15.9.6 - resolution: "@nrwl/devkit@npm:15.9.6" + version: 15.9.7 + resolution: "@nrwl/devkit@npm:15.9.7" dependencies: ejs: ^3.1.7 ignore: ^5.0.4 - semver: 7.3.4 + semver: 7.5.4 tmp: ~0.2.1 tslib: ^2.3.0 peerDependencies: nx: ">= 14.1 <= 16" - checksum: 7773d41b1e0595e50fe9a370f257fd80cfb6ac6102453856d3db295bbf299337d7d77a10f49bae1f69750460fbb7dcec7144d730b6e67adacf88a4df12ff2b48 + checksum: bbf384f2e8ba6608ca17c977f9b2992ccef8f022c9687689b374acaaf94c252ebddd2389ef6e8f978af650e8c85819cc3fef440c5d873c4009e8f4c999d08f73 languageName: node linkType: hard @@ -4429,77 +4335,77 @@ __metadata: languageName: node linkType: hard -"@nrwl/nx-darwin-arm64@npm:15.9.6": - version: 15.9.6 - resolution: "@nrwl/nx-darwin-arm64@npm:15.9.6" +"@nrwl/nx-darwin-arm64@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-darwin-arm64@npm:15.9.7" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@nrwl/nx-darwin-x64@npm:15.9.6": - version: 15.9.6 - resolution: "@nrwl/nx-darwin-x64@npm:15.9.6" +"@nrwl/nx-darwin-x64@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-darwin-x64@npm:15.9.7" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@nrwl/nx-linux-arm-gnueabihf@npm:15.9.6": - version: 15.9.6 - resolution: "@nrwl/nx-linux-arm-gnueabihf@npm:15.9.6" +"@nrwl/nx-linux-arm-gnueabihf@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-arm-gnueabihf@npm:15.9.7" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@nrwl/nx-linux-arm64-gnu@npm:15.9.6": - version: 15.9.6 - resolution: "@nrwl/nx-linux-arm64-gnu@npm:15.9.6" +"@nrwl/nx-linux-arm64-gnu@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-arm64-gnu@npm:15.9.7" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@nrwl/nx-linux-arm64-musl@npm:15.9.6": - version: 15.9.6 - resolution: "@nrwl/nx-linux-arm64-musl@npm:15.9.6" +"@nrwl/nx-linux-arm64-musl@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-arm64-musl@npm:15.9.7" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@nrwl/nx-linux-x64-gnu@npm:15.9.6": - version: 15.9.6 - resolution: "@nrwl/nx-linux-x64-gnu@npm:15.9.6" +"@nrwl/nx-linux-x64-gnu@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-x64-gnu@npm:15.9.7" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@nrwl/nx-linux-x64-musl@npm:15.9.6": - version: 15.9.6 - resolution: "@nrwl/nx-linux-x64-musl@npm:15.9.6" +"@nrwl/nx-linux-x64-musl@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-linux-x64-musl@npm:15.9.7" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@nrwl/nx-win32-arm64-msvc@npm:15.9.6": - version: 15.9.6 - resolution: "@nrwl/nx-win32-arm64-msvc@npm:15.9.6" +"@nrwl/nx-win32-arm64-msvc@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-win32-arm64-msvc@npm:15.9.7" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@nrwl/nx-win32-x64-msvc@npm:15.9.6": - version: 15.9.6 - resolution: "@nrwl/nx-win32-x64-msvc@npm:15.9.6" +"@nrwl/nx-win32-x64-msvc@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/nx-win32-x64-msvc@npm:15.9.7" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@nrwl/tao@npm:15.9.6": - version: 15.9.6 - resolution: "@nrwl/tao@npm:15.9.6" +"@nrwl/tao@npm:15.9.7": + version: 15.9.7 + resolution: "@nrwl/tao@npm:15.9.7" dependencies: - nx: 15.9.6 + nx: 15.9.7 bin: tao: index.js - checksum: e37e2919c4855c3b891677662aad8956cc45f1a2f93c8c78472cbdaa45f25c030431826ac4d91bdfa11df0a0af5fed04c4f68cb0d8fcafd7581ea2680a756742 + checksum: 6ef6d77da018ad0ebaddc9bd4608d859211458e65979fc034e3c1e2bdfc77041c4ef43c24ab1dac108c48e8461de3bd266978948e523d4d6214d942895d26253 languageName: node linkType: hard @@ -4749,9 +4655,9 @@ __metadata: linkType: hard "@octokit/openapi-types@npm:^18.0.0": - version: 18.0.0 - resolution: "@octokit/openapi-types@npm:18.0.0" - checksum: d90fab10d962be71e72b85ffab2055cffd9c3196ff1edc3e4106deb78e99e8782965cf7aa6a4c1398f828e4d0c3e0f905915debfe34396d956dfce8e75b21664 + version: 18.1.1 + resolution: "@octokit/openapi-types@npm:18.1.1" + checksum: 856d3bb9f8c666e837dd5e8b8c216ee4342b9ed63ff8da922ca4ce5883ed1dfbec73390eb13d69fbcb4703a4c8b8b6a586df3b0e675ff93bf3d46b5b4fe0968e languageName: node linkType: hard @@ -5065,11 +4971,11 @@ __metadata: linkType: hard "@prefresh/core@npm:^1.5.1": - version: 1.5.1 - resolution: "@prefresh/core@npm:1.5.1" + version: 1.5.2 + resolution: "@prefresh/core@npm:1.5.2" peerDependencies: preact: ^10.0.0 - checksum: 7a1063a65911fbfcd5b02f34911875de5ffedb02ad4dda2bf9c519193ccb38f21b65ac3a2ba0bc4d8526c847b623013e0d2c1e7a58091aee33fc95ac40f4ad14 + checksum: 53d1ce714ed098ccc11f3a8e2826ff6b90237445c24df6281eb162791b534d1d7626a43c0c1c7427139d2ade658e1ba7020963c001135bbdbeeb15073008529b languageName: node linkType: hard @@ -5690,14 +5596,14 @@ __metadata: languageName: node linkType: hard -"@schematics/angular@npm:16.2.1": - version: 16.2.1 - resolution: "@schematics/angular@npm:16.2.1" +"@schematics/angular@npm:16.2.4": + version: 16.2.4 + resolution: "@schematics/angular@npm:16.2.4" dependencies: - "@angular-devkit/core": 16.2.1 - "@angular-devkit/schematics": 16.2.1 + "@angular-devkit/core": 16.2.4 + "@angular-devkit/schematics": 16.2.4 jsonc-parser: 3.2.0 - checksum: 706fb46223804624077128bc41b6f06a3818d98048707b71f17e55dfe7adf4a6096a3cca06bb65ffd1bcc1e456c7a88cfcef03a918f962f150bb21da56f2aa04 + checksum: 8435fe5d85ea45c8bf848d6b4297467b25b9b0cbdc71a7b5ec80dd614f106a9e4a7738d27337507048978754ebaa241548108c94694b5359b36308d47c1f0c21 languageName: node linkType: hard @@ -6778,12 +6684,12 @@ __metadata: languageName: unknown linkType: soft -"@storybook/client-logger@npm:7.4.1": - version: 7.4.1 - resolution: "@storybook/client-logger@npm:7.4.1" +"@storybook/client-logger@npm:7.4.6": + version: 7.4.6 + resolution: "@storybook/client-logger@npm:7.4.6" dependencies: "@storybook/global": ^5.0.0 - checksum: 75e52950d716a0f435eaad86c00e9b7ef52ba4818eb116a3b4d366392b3b868fc97213c9f6c551f0733a73ade635e889aaafa02f4bd651728d4d2a0219337a60 + checksum: 170ad58c17e2608639533fe24aaa96ddd4d77d23b4b28f265b2cb67510fef966fc20b029e070fdc7216ba1cdb724d1210b2f8edc8aa538de32fd6e549f9010cf languageName: node linkType: hard @@ -6893,7 +6799,7 @@ __metadata: chalk: ^4.1.0 esbuild: ^0.18.0 esbuild-register: ^3.5.0 - file-system-cache: ^2.4.4 + file-system-cache: 2.3.0 find-cache-dir: ^3.0.0 find-up: ^5.0.0 fs-extra: ^11.1.0 @@ -7127,11 +7033,11 @@ __metadata: linkType: hard "@storybook/expect@npm:storybook-jest": - version: 27.5.2-0 - resolution: "@storybook/expect@npm:27.5.2-0" + version: 28.1.3-5 + resolution: "@storybook/expect@npm:28.1.3-5" dependencies: - "@types/jest": ">=26.0.0" - checksum: 068d07334d2dc26bdd8ddf2a2d6f98ed06536a64232c3cdf035240c4d70fdff3a4aecc33e9b012dc3d01236834116a078ef17a59d4aea90eabbe67ba60d26307 + "@types/jest": 28.1.3 + checksum: ea912b18e1353cdd3bbdf93667ffebca7f843fa28a01e647429bffa6cb074afd4401d13eb2ecbfc9714e100e128ec1fe2686bded52e9e378ce44774889563558 languageName: node linkType: hard @@ -7194,12 +7100,12 @@ __metadata: linkType: soft "@storybook/icons@npm:^1.1.6": - version: 1.1.6 - resolution: "@storybook/icons@npm:1.1.6" + version: 1.1.7 + resolution: "@storybook/icons@npm:1.1.7" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: c8c2fb8f91c5c93b1cd6951c06a25f5b8203943cb95d7b6ef40015896596ed7444911fa556726c880902110f04e013f3def3fbae0eb6f7dbfcc96ec93fce9cb9 + checksum: 5bb97f948f2a1cfc067a120f8e17004cdf9cdef0d08558ec51659e4e4d4b1620c76ced6d15a57d84aed888c664a0f9daa7a6e7b4ef22302d95f3228aa627bc83 languageName: node linkType: hard @@ -7217,13 +7123,14 @@ __metadata: linkType: soft "@storybook/jest@npm:next": - version: 0.1.1-next.2 - resolution: "@storybook/jest@npm:0.1.1-next.2" + version: 0.2.2-next.0 + resolution: "@storybook/jest@npm:0.2.2-next.0" dependencies: "@storybook/expect": storybook-jest - "@testing-library/jest-dom": ^5.16.2 + "@testing-library/jest-dom": ^6.1.2 + "@types/jest": 28.1.3 jest-mock: ^27.3.0 - checksum: e19fd99003987930a808ae35930da56299ce9790714c8f5f31fcc258584d6930235ef436e87ae644a8ec2b4c281493e6ed36872554832229edd1feca8c12c451 + checksum: f89149436e0506cfa33fb8678a4d3bcb8fadc16e6a00905c92e9da716772cb5a65e8bdc07f6a7f536e3940af3c676c41857f4093eaed4c3f12c074d45c92e661 languageName: node linkType: hard @@ -8193,28 +8100,28 @@ __metadata: linkType: soft "@storybook/testing-library@npm:next": - version: 0.2.1-next.0 - resolution: "@storybook/testing-library@npm:0.2.1-next.0" + version: 0.2.2-next.0 + resolution: "@storybook/testing-library@npm:0.2.2-next.0" dependencies: "@testing-library/dom": ^9.0.0 - "@testing-library/user-event": ^14.0.0 + "@testing-library/user-event": ^14.4.0 ts-dedent: ^2.2.0 - checksum: c63e90f856505ee737bd7feb7b688c5bb5918f39c8088e85e40c6ee7ffcbb038e31d59904e3bd1a79267282f919a95ae060ab73f7af133c6f08ef0ee47ace80b + checksum: 4350e73776cba8ab5037ee9a8b07b957c73540873f64097648ed96b93f086469eab475ad19b917e5e2eee4faec67891fa443d703b9b4aa28efc9a74243970a4e languageName: node linkType: hard "@storybook/theming@npm:^7.0.2": - version: 7.4.1 - resolution: "@storybook/theming@npm:7.4.1" + version: 7.4.6 + resolution: "@storybook/theming@npm:7.4.6" dependencies: "@emotion/use-insertion-effect-with-fallbacks": ^1.0.0 - "@storybook/client-logger": 7.4.1 + "@storybook/client-logger": 7.4.6 "@storybook/global": ^5.0.0 memoizerific: ^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: 1c832d8391ac3d1fa155e13081bb7dfe67f1579e21fdd5dffd1b57a0e171b4955b891ebbd21acf5fab5fa4665b48226842a959aaf968c0b5c4608024a31b0281 + checksum: 6250a413c346971792623bf5a907811fc009ff4a36b8f292d0f45c677269b2a50c29d84ab1e869ada7df3eb23d49614e1342bd2c88e71d4467702b92ebc42f2d languageName: node linkType: hard @@ -8253,7 +8160,7 @@ __metadata: "@types/express": ^4.7.0 "@types/fs-extra": ^11.0.1 "@types/node": ^16.0.0 - file-system-cache: ^2.4.4 + file-system-cache: 2.3.0 typescript: ~4.9.3 languageName: unknown linkType: soft @@ -8465,7 +8372,7 @@ __metadata: languageName: node linkType: hard -"@sveltejs/vite-plugin-svelte-inspector@npm:^1.0.3": +"@sveltejs/vite-plugin-svelte-inspector@npm:^1.0.4": version: 1.0.4 resolution: "@sveltejs/vite-plugin-svelte-inspector@npm:1.0.4" dependencies: @@ -8479,20 +8386,20 @@ __metadata: linkType: hard "@sveltejs/vite-plugin-svelte@npm:^2.4.2": - version: 2.4.5 - resolution: "@sveltejs/vite-plugin-svelte@npm:2.4.5" + version: 2.4.6 + resolution: "@sveltejs/vite-plugin-svelte@npm:2.4.6" dependencies: - "@sveltejs/vite-plugin-svelte-inspector": ^1.0.3 + "@sveltejs/vite-plugin-svelte-inspector": ^1.0.4 debug: ^4.3.4 deepmerge: ^4.3.1 kleur: ^4.1.5 - magic-string: ^0.30.2 + magic-string: ^0.30.3 svelte-hmr: ^0.15.3 vitefu: ^0.2.4 peerDependencies: svelte: ^3.54.0 || ^4.0.0 vite: ^4.0.0 - checksum: 59ac52fee6748038c34c1f2842e21c04d3585327aadf827bf416b50d4a44c112970b35a29488e467b83cd7691a1f4a373f7a38a93456fe2c179f4ee5a82d044f + checksum: de7d844bf5fc12aa4caf352f5825d58f6747eef68301a492128ea6756c3c193f1d1e1f75975abd4fdfb50f5a4ff45016a94f40c29e1b0121095c63f6bc10e219 languageName: node linkType: hard @@ -8503,9 +8410,9 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.84": - version: 1.3.84 - resolution: "@swc/core-darwin-arm64@npm:1.3.84" +"@swc/core-darwin-arm64@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-darwin-arm64@npm:1.3.91" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -8517,9 +8424,9 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.84": - version: 1.3.84 - resolution: "@swc/core-darwin-x64@npm:1.3.84" +"@swc/core-darwin-x64@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-darwin-x64@npm:1.3.91" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -8531,9 +8438,9 @@ __metadata: languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.84": - version: 1.3.84 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.84" +"@swc/core-linux-arm-gnueabihf@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.91" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -8545,9 +8452,9 @@ __metadata: languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.84": - version: 1.3.84 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.84" +"@swc/core-linux-arm64-gnu@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-linux-arm64-gnu@npm:1.3.91" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard @@ -8559,9 +8466,9 @@ __metadata: languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.84": - version: 1.3.84 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.84" +"@swc/core-linux-arm64-musl@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-linux-arm64-musl@npm:1.3.91" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard @@ -8573,9 +8480,9 @@ __metadata: languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.84": - version: 1.3.84 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.84" +"@swc/core-linux-x64-gnu@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-linux-x64-gnu@npm:1.3.91" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard @@ -8587,9 +8494,9 @@ __metadata: languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.84": - version: 1.3.84 - resolution: "@swc/core-linux-x64-musl@npm:1.3.84" +"@swc/core-linux-x64-musl@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-linux-x64-musl@npm:1.3.91" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard @@ -8601,9 +8508,9 @@ __metadata: languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.84": - version: 1.3.84 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.84" +"@swc/core-win32-arm64-msvc@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-win32-arm64-msvc@npm:1.3.91" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -8615,9 +8522,9 @@ __metadata: languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.84": - version: 1.3.84 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.84" +"@swc/core-win32-ia32-msvc@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-win32-ia32-msvc@npm:1.3.91" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -8629,9 +8536,9 @@ __metadata: languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.84": - version: 1.3.84 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.84" +"@swc/core-win32-x64-msvc@npm:1.3.91": + version: 1.3.91 + resolution: "@swc/core-win32-x64-msvc@npm:1.3.91" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -8682,20 +8589,21 @@ __metadata: linkType: hard "@swc/core@npm:^1.3.82": - version: 1.3.84 - resolution: "@swc/core@npm:1.3.84" - dependencies: - "@swc/core-darwin-arm64": 1.3.84 - "@swc/core-darwin-x64": 1.3.84 - "@swc/core-linux-arm-gnueabihf": 1.3.84 - "@swc/core-linux-arm64-gnu": 1.3.84 - "@swc/core-linux-arm64-musl": 1.3.84 - "@swc/core-linux-x64-gnu": 1.3.84 - "@swc/core-linux-x64-musl": 1.3.84 - "@swc/core-win32-arm64-msvc": 1.3.84 - "@swc/core-win32-ia32-msvc": 1.3.84 - "@swc/core-win32-x64-msvc": 1.3.84 - "@swc/types": ^0.1.4 + version: 1.3.91 + resolution: "@swc/core@npm:1.3.91" + dependencies: + "@swc/core-darwin-arm64": 1.3.91 + "@swc/core-darwin-x64": 1.3.91 + "@swc/core-linux-arm-gnueabihf": 1.3.91 + "@swc/core-linux-arm64-gnu": 1.3.91 + "@swc/core-linux-arm64-musl": 1.3.91 + "@swc/core-linux-x64-gnu": 1.3.91 + "@swc/core-linux-x64-musl": 1.3.91 + "@swc/core-win32-arm64-msvc": 1.3.91 + "@swc/core-win32-ia32-msvc": 1.3.91 + "@swc/core-win32-x64-msvc": 1.3.91 + "@swc/counter": ^0.1.1 + "@swc/types": ^0.1.5 peerDependencies: "@swc/helpers": ^0.5.0 dependenciesMeta: @@ -8722,16 +8630,23 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 9b321aa779294134685507d61923d29e9248da58bb1af94168c220e25b54767c6ecc809ab815b3a3098bab63be26eea5cc86502bdd02930da1ded3cf35b516a8 + checksum: 1b2b2fd400d476a073d69aa4a7eba754f9388c2d72e123a5fb942291c65e5c6a186302c6daafdb68121be999c604de8f01b8ff58126614e0a4e7ca5af6c9cfc7 languageName: node linkType: hard -"@swc/helpers@npm:0.5.1": - version: 0.5.1 - resolution: "@swc/helpers@npm:0.5.1" +"@swc/counter@npm:^0.1.1": + version: 0.1.2 + resolution: "@swc/counter@npm:0.1.2" + checksum: 18be012107d4ba1f79776c48d83391ca2159103d7d31a59ff52fcc8024db51b71c5f46714a9fb73981739bc8a38dc6f385a046b71cc08f6043f3c47f5c409eab + languageName: node + linkType: hard + +"@swc/helpers@npm:0.5.2": + version: 0.5.2 + resolution: "@swc/helpers@npm:0.5.2" dependencies: tslib: ^2.4.0 - checksum: 2e2272c8278351670e1daf27cc634ace793afb378dcc85be2800d30a7b4d3afad37707371ead2a6d96662fa30294da678d66cdc4dc7f3e698bd8e111235c60fc + checksum: b6fa49bcf6c00571d0eb7837b163f8609960d4d77538160585e27ed167361e9776bd6e5eb9646ffac2fb4d43c58df9ca50dab9d96ab097e6591bc82a75fd1164 languageName: node linkType: hard @@ -8747,10 +8662,10 @@ __metadata: languageName: node linkType: hard -"@swc/types@npm:^0.1.4": - version: 0.1.4 - resolution: "@swc/types@npm:0.1.4" - checksum: f506cb23a08c604c6343c51f47e399d2c59f2e4a7df0689849284915a9f726ca65ce86d5358b5ed88c6ba1fce135a25614b1adda1beedf570a24c230466d6a46 +"@swc/types@npm:^0.1.4, @swc/types@npm:^0.1.5": + version: 0.1.5 + resolution: "@swc/types@npm:0.1.5" + checksum: b35f93fe896a2240f6f10544e408f9648c2bd4bcff9bd8d022d9a6942d31cf859f86119fb0bbb04a12eefa1f6a6745ffc7d18f3a490d76d7b6a074a7c9608144 languageName: node linkType: hard @@ -8780,8 +8695,8 @@ __metadata: linkType: hard "@testing-library/dom@npm:^9.0.0": - version: 9.3.1 - resolution: "@testing-library/dom@npm:9.3.1" + version: 9.3.3 + resolution: "@testing-library/dom@npm:9.3.3" dependencies: "@babel/code-frame": ^7.10.4 "@babel/runtime": ^7.12.5 @@ -8791,7 +8706,7 @@ __metadata: dom-accessibility-api: ^0.5.9 lz-string: ^1.5.0 pretty-format: ^27.0.2 - checksum: 25d1deddba014c107fd9703181fbb7063ed376d3ad42d7918ee752e7e677edfb5abaf672b22afc5257ffe760c9c7e5cc981656297c328bc61578d23c6b65b4dc + checksum: c3bbd67503634fd955233dc172531640656701fe35ecb9a83f85e5965874b786452f5e7c26b4f8b3b4fc4379f3a80193c74425b57843ba191f4845e22b0ac483 languageName: node linkType: hard @@ -8836,12 +8751,12 @@ __metadata: languageName: node linkType: hard -"@testing-library/user-event@npm:^14.0.0": - version: 14.4.3 - resolution: "@testing-library/user-event@npm:14.4.3" +"@testing-library/user-event@npm:^14.4.0": + version: 14.5.1 + resolution: "@testing-library/user-event@npm:14.5.1" peerDependencies: "@testing-library/dom": ">=7.21.4" - checksum: 28e1e4ed2fdaa9486e203c6789386be228e305abd3fa41f38c828af415fd4a4e80f4de88de0e502ff11c4b4926f221b874a2a45bcc8170d30714e12dad2c1bd0 + checksum: 1e00d6ead23377885b906db6e46e259161a0efb4138f7527481d7435f3c8f65cb7e3eab2900e2ac1886fa6dd03416e773a3a60dea87a9a2086a7127dee315f6f languageName: node linkType: hard @@ -8921,96 +8836,83 @@ __metadata: linkType: hard "@types/aria-query@npm:^5.0.1": - version: 5.0.1 - resolution: "@types/aria-query@npm:5.0.1" - checksum: bc9e40ce37bd3a1654948778c7829bd55aea1bc5f2cd06fcf6cd650b07bb388995799e9aab6e2d93a6cf55dcba3b85c155f7ba93adefcc7c2e152fc6057061b5 - languageName: node - linkType: hard - -"@types/babel__core@npm:^7, @types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.1.7": - version: 7.20.0 - resolution: "@types/babel__core@npm:7.20.0" - dependencies: - "@babel/parser": ^7.20.7 - "@babel/types": ^7.20.7 - "@types/babel__generator": "*" - "@types/babel__template": "*" - "@types/babel__traverse": "*" - checksum: 75dcd39258bc008b6fd4db7de2c8bfeb29b5cd2c726f54407f70243ddea1d8ce9e7082281557614c4a5f9f30d478387ca6ab6cc576fc829cebeb159bfaa8799f + version: 5.0.2 + resolution: "@types/aria-query@npm:5.0.2" + checksum: 74579b9e3f7f5042e8a05ab103dd652e724a556a5700fab778c76c53729635b73da5d242143df1fb9447e607f904cbd81871dd2b876f0974831a794165287b20 languageName: node linkType: hard -"@types/babel__core@npm:^7.18.0": - version: 7.20.1 - resolution: "@types/babel__core@npm:7.20.1" +"@types/babel__core@npm:^7, @types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.1.7, @types/babel__core@npm:^7.18.0": + version: 7.20.2 + resolution: "@types/babel__core@npm:7.20.2" dependencies: "@babel/parser": ^7.20.7 "@babel/types": ^7.20.7 "@types/babel__generator": "*" "@types/babel__template": "*" "@types/babel__traverse": "*" - checksum: c83402fc7ef8abd1f94ffe350b8bde9a35ccb6c3624bc8e39b6a7e1a675d112f6b70ac1b05391a579ca3b126baffe66b0b94f954edef086c4482b97d293c3659 + checksum: 4bd4bc0803ddd17af37871a8139e5b6c80b182f5f6d716c6484da1286522eba84750ffc527539bc39496876e7193f316b7493b99caa37af2b4e6ef345ee2ff8c languageName: node linkType: hard "@types/babel__generator@npm:*": - version: 7.6.4 - resolution: "@types/babel__generator@npm:7.6.4" + version: 7.6.5 + resolution: "@types/babel__generator@npm:7.6.5" dependencies: "@babel/types": ^7.0.0 - checksum: e0051b450e4ba2df0a7e386f08df902a4e920f6f8d6f185d69ddbe9b0e2e2d3ae434bb51e437bc0fca2a9a0f5dc4ca44d3a1941ef75e74371e8be5bf64416fe4 + checksum: b3e2668950208a681966fb93faa3a9164319caf960ff2ae232469fd09aa9b59a35d3328221027c373bb29d250b709073479f4fa1e404d109515846a65e06f0e2 languageName: node linkType: hard "@types/babel__plugin-transform-runtime@npm:^7": - version: 7.9.2 - resolution: "@types/babel__plugin-transform-runtime@npm:7.9.2" - checksum: cee1ef257ef1ddf1ad983ed3f93826f0b51a563067791293c49713d50b721c15f990fd3760230a320426e1d367aa9f66ca35af8f5847daf8ea03588a4053cd6c + version: 7.9.3 + resolution: "@types/babel__plugin-transform-runtime@npm:7.9.3" + checksum: b78f43265cbe4b9156f5f390847a1c862e0789d4eb0fb78ef6a814ecbfe39ee262039ed16f5c62b45a418123ad09492c03205ed9bd3bf28c8988d1975e68eb1c languageName: node linkType: hard "@types/babel__preset-env@npm:^7": - version: 7.9.2 - resolution: "@types/babel__preset-env@npm:7.9.2" - checksum: 89d389de7fb2b4be8f43b021899b1fd8bdc85e912cc01b1b5a2504b033ada58b034d44131561c56ab6781c31913a21b769d33a05b549549bbc49bb92537e2dfb + version: 7.9.3 + resolution: "@types/babel__preset-env@npm:7.9.3" + checksum: c9675bdf2e0d152e4c579fe172074e8d24509229829cc29d975506137341e4a19a5c12cbb73a80d65fac7858e516ee04cdeac415fced58326afb9a7816cd58d8 languageName: node linkType: hard "@types/babel__template@npm:*": - version: 7.4.1 - resolution: "@types/babel__template@npm:7.4.1" + version: 7.4.2 + resolution: "@types/babel__template@npm:7.4.2" dependencies: "@babel/parser": ^7.1.0 "@babel/types": ^7.0.0 - checksum: 6f180e96c39765487f27e861d43eebed341ec7a2fc06cdf5a52c22872fae67f474ca165d149c708f4fd9d5482beb66c0a92f77411b234bb30262ed2303e50b1a + checksum: 487e1a2fcb382d70a6f6e8136f19979e8db6048cd2eebee153e561b5c529f45e45ee8a5422078aa66375c9c5dfc67bcd2fd3989dc8e3a4ba0149640b7dbd1c13 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.1 - resolution: "@types/babel__traverse@npm:7.20.1" + version: 7.20.2 + resolution: "@types/babel__traverse@npm:7.20.2" dependencies: "@babel/types": ^7.20.7 - checksum: 5a6a3a26be090573309527184a31f1b82ef55f3d73d811c15f181d323e471305f2390651a04d49d4cd4ca41bbeabb53c9f7862a8e09eab5a0f8910a6aec6e867 + checksum: 4a018298e7da9eef2cb962cf2daa1b87dd32f6b2f800b81d2d8f1c8db6c56a2bcac432c7b7a090c746784ccccd82f2c1dcf7cebe1e72923a27359af87bef854b languageName: node linkType: hard "@types/body-parser@npm:*": - version: 1.19.2 - resolution: "@types/body-parser@npm:1.19.2" + version: 1.19.3 + resolution: "@types/body-parser@npm:1.19.3" dependencies: "@types/connect": "*" "@types/node": "*" - checksum: c2dd533e1d4af958d656bdba7f376df68437d8dfb7e4522c88b6f3e6f827549e4be5bf0be68a5f1878accf5752ea37fba7e8a4b6dda53d0d122d77e27b69c750 + checksum: d35f76406232ee68b02b4b37b4b63cce26329f4302f55c19d5f4fd346f5b7df0994af486331849c4992567d83ded10f5beb3e200280c2142f53e0424f1565082 languageName: node linkType: hard "@types/bonjour@npm:^3.5.9": - version: 3.5.10 - resolution: "@types/bonjour@npm:3.5.10" + version: 3.5.11 + resolution: "@types/bonjour@npm:3.5.11" dependencies: "@types/node": "*" - checksum: 5a3d70695a8dfe79c020579fcbf18d7dbb89b8f061dd388c76b68c4797c0fccd71f3e8a9e2bea00afffdb9b37a49dd0ac0a192829d5b655a5b49c66f313a7be8 + checksum: 963b8260708186981b6fc75fcdbf1ab95bd83ec0472c1b9649c635bdf260d2af94c2930c1a08f97c9d6e370a14737a697e05e10796f29c2a8d81f7f0a80a8ed0 languageName: node linkType: hard @@ -9089,11 +8991,11 @@ __metadata: linkType: hard "@types/debug@npm:^4.0.0": - version: 4.1.8 - resolution: "@types/debug@npm:4.1.8" + version: 4.1.9 + resolution: "@types/debug@npm:4.1.9" dependencies: "@types/ms": "*" - checksum: 913aea60b8c94cd0009bbdd531d8a3594ec3275ca0e8d1cbcf783417884252b3c53113f6665fd2fb0076b8ce628ee12cd083d2af107ed26c0f2e75852d8bc074 + checksum: 8b550c47c70cc1af9a58e5c572f2418f30bface5bf5d5afa0d938923978f40be4c55646f1ab260f6f1492ca6ab065d447de23cb3b30d7b38597c2cbf89f4cb21 languageName: node linkType: hard @@ -9111,24 +9013,24 @@ __metadata: languageName: node linkType: hard -"@types/doctrine@npm:^0.0.5": - version: 0.0.5 - resolution: "@types/doctrine@npm:0.0.5" - checksum: 9b38d1b110e94fa34632e21f83b64ed05116f6349b5666c11bc0d4081c793f9b0be25b9d8b34df0ec38d440741836c17d4c84576e22dc00a18fe972f96688bf3 +"@types/doctrine@npm:^0.0.6": + version: 0.0.6 + resolution: "@types/doctrine@npm:0.0.6" + checksum: eae59a178be3b7989f3dd269cbe30fee9041a95ccb7ac963bbff3fcc82e7985c5002228afe23b7fad985f3eedf5257d36c7011bd8caafb087fcdcc6df1e52cb3 languageName: node linkType: hard "@types/ejs@npm:^3.1.1": - version: 3.1.2 - resolution: "@types/ejs@npm:3.1.2" - checksum: 8e55275011009e7a44043d97348a4a1b5a7583e1f048b6ad8998f1b30667995314f15bc9cc9ed3e0e79722cce9a06845d06d5d023bca179bb00d52016b41ad7d + version: 3.1.3 + resolution: "@types/ejs@npm:3.1.3" + checksum: 8366861c80749a0231f58a258f1fc9ab43992e6b74d157d1fd199f273f2f7d9f016f64d61a6d899a77d86d49c2a4a569215deda899dcf2dbfef85e12d26b9715 languageName: node linkType: hard "@types/emscripten@npm:^1.39.6": - version: 1.39.7 - resolution: "@types/emscripten@npm:1.39.7" - checksum: 552c9558065c1f717d00df3cd740ee88650b0671e37bb7ddaa1889acb1d6ae5aa9618b9fdb0c634dea612fe17689b35885457b6da0420f0cd2d790cad5a6a212 + version: 1.39.8 + resolution: "@types/emscripten@npm:1.39.8" + checksum: a2cc8ddb734b0cbead13c9d4b7733da07655529bdfbcd8a858067bd6b97f2b622935526a6d6ee5c9c5495d50854d608e34ad9a4e09700858d7b9418799e33197 languageName: node linkType: hard @@ -9140,38 +9042,38 @@ __metadata: linkType: hard "@types/eslint-scope@npm:^3.7.3": - version: 3.7.4 - resolution: "@types/eslint-scope@npm:3.7.4" + version: 3.7.5 + resolution: "@types/eslint-scope@npm:3.7.5" dependencies: "@types/eslint": "*" "@types/estree": "*" - checksum: f8a19cddf9d402f079bcc261958fff5ff2616465e4fb4cd423aa966a6a32bf5d3c65ca3ca0fbe824776b48c5cd525efbaf927b98b8eeef093aa68a1a2ba19359 + checksum: 9ade676030067a14d34acb4a48362bcf16632e867d059e734cf082e0523362415ed698e3776f8fad7e346019078d63a5264992b33054182607ce20ad9eaeec80 languageName: node linkType: hard "@types/eslint@npm:*": - version: 8.44.2 - resolution: "@types/eslint@npm:8.44.2" + version: 8.44.3 + resolution: "@types/eslint@npm:8.44.3" dependencies: "@types/estree": "*" "@types/json-schema": "*" - checksum: 3c402215f7f495f9267a51fecd6a6d056eb8b3b031a1c472286b7d23a397257327eb03712befa7da60614dd63d31235d27dbc5c586b6a408798dafb8ee0c5eb2 + checksum: d9d681efe461ec8934800a89773be251a200c9d4528ca2330bb99f4ca3bd6b2d053034d2b5fe645a1567331af2c89e364aed4be8c839f10a1028a3cbe2856b01 languageName: node linkType: hard "@types/estree-jsx@npm:^1.0.0": - version: 1.0.0 - resolution: "@types/estree-jsx@npm:1.0.0" + version: 1.0.1 + resolution: "@types/estree-jsx@npm:1.0.1" dependencies: "@types/estree": "*" - checksum: faca4c8924cbc36095e11ac7677dce1875583cf8ea99b67911affbbcc2a06ef99e585c02fc7160e55406d3c127b447df5a8ba3b23c211e5bbaad45dd278cde97 + checksum: 3aa4d648ba3ddffa73eff63904a4ef7f78fc78c2fc22ad0ef80908e7e5839e4622dc8d8dc46708b07a6e732e72692cf234db63650c3ca608cc5b41c3e81f37a2 languageName: node linkType: hard "@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.1": - version: 1.0.1 - resolution: "@types/estree@npm:1.0.1" - checksum: b4022067f834d86766f23074a1a7ac6c460e823b00cd8fe94c997bc491e7794615facd3e1520a934c42bd8c0689dbff81e5c643b01f1dee143fc758cac19669e + version: 1.0.2 + resolution: "@types/estree@npm:1.0.2" + checksum: 4b5c601d435ea8e2205458de15fd1556b5ae6c9a8323bad8a940ea502d6c824664faca94234c0bf76bf9c87cbf6ac41abee550c9e20433256549d589c9b543bd languageName: node linkType: hard @@ -9183,26 +9085,26 @@ __metadata: linkType: hard "@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.33": - version: 4.17.36 - resolution: "@types/express-serve-static-core@npm:4.17.36" + version: 4.17.37 + resolution: "@types/express-serve-static-core@npm:4.17.37" dependencies: "@types/node": "*" "@types/qs": "*" "@types/range-parser": "*" "@types/send": "*" - checksum: ab0730272ed83528d0c7a040bc53c033720be5836c7059ffa8290ad13e6a57f5903aa14c2556f3235c9fa2ea167c477f00c43ae8e4a8712d05461dd6b9e69cde + checksum: 45487318802d9c44aac4323b9f5b33c24bb37c0258a5984c8ffe2b57f1bfc5b8ebbdc47149d6ce1b9e47e39b6cc4d1ef4468903a339990bfb8eac7995392f19f languageName: node linkType: hard "@types/express@npm:*, @types/express@npm:^4.17.11, @types/express@npm:^4.17.13, @types/express@npm:^4.7.0": - version: 4.17.17 - resolution: "@types/express@npm:4.17.17" + version: 4.17.18 + resolution: "@types/express@npm:4.17.18" dependencies: "@types/body-parser": "*" "@types/express-serve-static-core": ^4.17.33 "@types/qs": "*" "@types/serve-static": "*" - checksum: 5802a0a28f7473744dd6a118479440d8c5c801c973d34fb6f31b5ee645a41fee936193978a8e905d55deefda9b675d19924167bf11a31339874c3161a3fc2922 + checksum: 6babf7bce6abdd45138f7eac058c8705dbd3a2857208c8c78d863fcd8b3b212c6569fba1f748137e5743287f82dfecf9bc4d78d31d290afff2d37700a0cdb6fe languageName: node linkType: hard @@ -9213,13 +9115,13 @@ __metadata: languageName: node linkType: hard -"@types/fs-extra@npm:11.0.1, @types/fs-extra@npm:^11.0.1": - version: 11.0.1 - resolution: "@types/fs-extra@npm:11.0.1" +"@types/fs-extra@npm:^11.0.1": + version: 11.0.2 + resolution: "@types/fs-extra@npm:11.0.2" dependencies: "@types/jsonfile": "*" "@types/node": "*" - checksum: a65f1fae47849fe1a17441dcabc9400390303405972ff3cbb3578746cea8916b23d5e7652bf57a87767f75a9b2f37caac499b78b5230ae08fef0ba58b34c3a85 + checksum: 8ab94988a3376169e3daf0a546b5312039c19a7f1fb9c5a171f7602c9398155a90c0cef81ab95273e4c8c5962ab4ec280f0a1ba8e874bab2f26ca94b282c14a3 languageName: node linkType: hard @@ -9241,7 +9143,17 @@ __metadata: languageName: node linkType: hard -"@types/glob@npm:*, @types/glob@npm:^7.1.1, @types/glob@npm:^7.1.3": +"@types/glob@npm:*": + version: 8.1.0 + resolution: "@types/glob@npm:8.1.0" + dependencies: + "@types/minimatch": ^5.1.2 + "@types/node": "*" + checksum: ded07aa0d7a1caf3c47b85e262be82989ccd7933b4a14712b79c82fd45a239249811d9fc3a135b3e9457afa163e74a297033d7245b0dc63cd3d032f3906b053f + languageName: node + linkType: hard + +"@types/glob@npm:^7.1.1, @types/glob@npm:^7.1.3": version: 7.2.0 resolution: "@types/glob@npm:7.2.0" dependencies: @@ -9252,20 +9164,30 @@ __metadata: linkType: hard "@types/graceful-fs@npm:^4.1.3": - version: 4.1.6 - resolution: "@types/graceful-fs@npm:4.1.6" + version: 4.1.7 + resolution: "@types/graceful-fs@npm:4.1.7" dependencies: "@types/node": "*" - checksum: b1d32c5ae7bd52cf60e29df20407904c4312a39612e7ec2ee23c1e3731c1cfe31d97c6941bf6cb52f5f929d50d86d92dd506436b63fafa833181d439b628885e + checksum: a8c04a250cb40207b15097b33c053f5ecf4352f5107c0a2635f674dae8c9a90b28dc9bd6e28307d5aab0b5d3853e713de42110a149a6e303626915047134e87d languageName: node linkType: hard "@types/hast@npm:^2.0.0": - version: 2.3.5 - resolution: "@types/hast@npm:2.3.5" + version: 2.3.6 + resolution: "@types/hast@npm:2.3.6" dependencies: "@types/unist": ^2 - checksum: 3fc5185e7fb5139a4f60f0d4450179c1f88b7e288a054415b273e4a32f0c4cfe825a4cad075824dcdf3984609b47f13141f8900dedb3aeab482ae5a16275e807 + checksum: e44fa492f9ae8a0e499a738b598fc50c6cfa8131f2758ed98f292fbe67e37f4e85edb1aa53b27450bdafcf4e52c1a9660df0478914199c058193d9cffdc7d93c + languageName: node + linkType: hard + +"@types/hoist-non-react-statics@npm:^3.3.1": + version: 3.3.2 + resolution: "@types/hoist-non-react-statics@npm:3.3.2" + dependencies: + "@types/react": "*" + hoist-non-react-statics: ^3.3.0 + checksum: 2aaff564e7674b0b7389592f30e4681919a0a71986bc5d8c5ef67d9b5b3b46913920f5002a96fd37d8904fe5c0cc1e4cc5c92884c847b2f4a74cb30d841494d4 languageName: node linkType: hard @@ -9277,34 +9199,34 @@ __metadata: linkType: hard "@types/http-cache-semantics@npm:*": - version: 4.0.1 - resolution: "@types/http-cache-semantics@npm:4.0.1" - checksum: 6d6068110a04cac213bdc0fff9c7bac028b5a2da390492204328987d8ddc500adc10d9cf5747a6333dab261712655dcfe120ea1d5527c205d012a39cdccc2a7b + 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.1 - resolution: "@types/http-errors@npm:2.0.1" - checksum: 3bbc8c84fb02b381737e2eec563b434121384b1aef4e070edec4479a1bc74f27373edc09162680cd3ea1035ef8e5ab6d606bd7c99e3855c424045fb74376cb66 + 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.11 - resolution: "@types/http-proxy@npm:1.17.11" + version: 1.17.12 + resolution: "@types/http-proxy@npm:1.17.12" dependencies: "@types/node": "*" - checksum: 0af1bed7c1eaace924b8a316a718a702d40882dc541320ca1629c7f4ee852ef4dbef1963d4cb9e523b59dbe4d7f07e37def38b15e8ebb92d5b569b800b1c2bf7 + checksum: 06719371ece6bdf9fd28b90b03bd56e48ffca675dfaadca81ae12ca18db6e77e70a509537ebfa3b2c37810d77dc52e5a3190c09bc490668dde7e384c7b579090 languageName: node linkType: hard "@types/ip@npm:^1.1.0": - version: 1.1.0 - resolution: "@types/ip@npm:1.1.0" + version: 1.1.1 + resolution: "@types/ip@npm:1.1.1" dependencies: "@types/node": "*" - checksum: 4ca17133cf1e1c12f31ac8aac966cfa741917d5015c2a8dc02b9db9a7510ede7db78b6db0535764ed6aa2957008fdd1afbc50a3cf1e81529cc8e2114ce4355c3 + checksum: cabb35bfb4255805e282f8b4b26c0cdca04a0d05016fe5c0a676aabadd1065c461bff5fdf4fca01041c7589cca10202865b1e6b02e505e569928b139353d7dfc languageName: node linkType: hard @@ -9316,44 +9238,54 @@ __metadata: linkType: hard "@types/istanbul-lib-report@npm:*": - version: 3.0.0 - resolution: "@types/istanbul-lib-report@npm:3.0.0" + version: 3.0.1 + resolution: "@types/istanbul-lib-report@npm:3.0.1" dependencies: "@types/istanbul-lib-coverage": "*" - checksum: 7ced458631276a28082ee40645224c3cdd8b861961039ff811d841069171c987ec7e50bc221845ec0d04df0022b2f457a21fb2f816dab2fbe64d59377b32031f + checksum: a2a002ee7ecd9079a2c06235d28d1bc77089c3d834eec7e6dac38986203634936f2a017812624acfbedabec4bddd933942f14ac93eba2dc57f581ad4f35bbf1d languageName: node linkType: hard "@types/istanbul-reports@npm:^3.0.0": - version: 3.0.1 - resolution: "@types/istanbul-reports@npm:3.0.1" + version: 3.0.2 + resolution: "@types/istanbul-reports@npm:3.0.2" dependencies: "@types/istanbul-lib-report": "*" - checksum: e147f0db9346a0cae9a359220bc76f7c78509fb6979a2597feb24d64b6e8328d2d26f9d152abbd59c6bca721e4ea2530af20116d01df50815efafd1e151fd777 + checksum: df6c9e6865006be06bae29f63d5240b96bc7041b18a8c6d66be5b5d92ef5c95675c7a605a603029065f4f8aece7dba7360349e9d0543f512417e64a707a3c4fa languageName: node linkType: hard "@types/jest-image-snapshot@npm:^6.0.0": - version: 6.2.0 - resolution: "@types/jest-image-snapshot@npm:6.2.0" + version: 6.2.1 + resolution: "@types/jest-image-snapshot@npm:6.2.1" dependencies: "@types/jest": "*" "@types/pixelmatch": "*" ssim.js: ^3.1.1 - checksum: 65e7b951eee31521b4f53fa6a49134fad137a5636886594ea10324624afe074d4c88e1f579715934e0eab340951bbc864b81c99c00f51f8cf31230de415078c5 + checksum: d7bb16f2680e9b3f828f86effc9a8fee0e3d118c6138d537dfb3383333606d5dd765a5de3c1f4bd7ae6d2cc0e0528ee8aee055d66ef1d811719afbd6168ff616 languageName: node linkType: hard "@types/jest-specific-snapshot@npm:^0.5.6": - version: 0.5.6 - resolution: "@types/jest-specific-snapshot@npm:0.5.6" + version: 0.5.7 + resolution: "@types/jest-specific-snapshot@npm:0.5.7" dependencies: "@types/jest": "*" - checksum: 5fc9234afdf704eb7fa69bbf7860c2e9f9e76aed750e98aa44824bb47e048d1e57c5386eb3c919534a4225147f205742c6f9dac0e458e092de30efde77cc1ebe + checksum: ad18f3c6e55a533f9d9b04ae99dfdae6e6d0b5c936f348b5280325ced1c35ccf94ce629a71c3116785bb041d0192c22630d38ed30f13849fe9310935e6224fb8 languageName: node linkType: hard "@types/jest@npm:*": + version: 29.5.5 + resolution: "@types/jest@npm:29.5.5" + dependencies: + expect: ^29.0.0 + pretty-format: ^29.0.0 + checksum: 0a3481f119099e6a0a381fec0d410cd33241267a0981576a7a832687fc3f888f79285289dc7c054c3589fd443f7ed1598d25fa7bc9708491b58da17e423b4aff + languageName: node + linkType: hard + +"@types/jest@npm:28.1.3": version: 28.1.3 resolution: "@types/jest@npm:28.1.3" dependencies: @@ -9363,30 +9295,20 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:>=26.0.0": - version: 29.5.4 - resolution: "@types/jest@npm:29.5.4" - dependencies: - expect: ^29.0.0 - pretty-format: ^29.0.0 - checksum: 49c1f0fa20e45b1dfd69aea8af667a8be30e210f00673c365d504ca285cf9040d8f4861dd89657640af5f4a49eadcadc08907b5cf82eda28afea8ddd3dda8390 - languageName: node - linkType: hard - "@types/js-yaml@npm:^4.0.5": - version: 4.0.5 - resolution: "@types/js-yaml@npm:4.0.5" - checksum: 37eb783b16f1704d26bbf83b35cf5d12f6018c18f2c9232515468ac60a4c5b71b6344a7b872545eeca3dfd66bb17e2bb1e611646cc727d7c6a001165a4ec0a32 + version: 4.0.6 + resolution: "@types/js-yaml@npm:4.0.6" + checksum: e2e3ccdde9979973ea0afc357e753ddcd1a586cfccfeafcf5c17ab1ea3314c73faf7555d0af4da237c0c32c29cd4bc0f6a659a5e5085fe3f1fdc94d20fb19683 languageName: node linkType: hard "@types/jscodeshift@npm:^0.11.6": - version: 0.11.6 - resolution: "@types/jscodeshift@npm:0.11.6" + version: 0.11.7 + resolution: "@types/jscodeshift@npm:0.11.7" dependencies: ast-types: ^0.14.1 recast: ^0.20.3 - checksum: 1d204a4c3d9f52669e315dfbc1e65434ec55ee884574306d35048b89ef83b625c64d510228b6aabbd4248af566e02e0ce9de0aa8ccdfff696c69fbaced7007e7 + checksum: a2c26f8e64950296bae6176c52e832e1f5c5eb3672adad3c1cdc63e23b8bd3de47890ac8eaae7eb0788feea7628ce540513ff5189379f79e882ddcfa1c855cfc languageName: node linkType: hard @@ -9402,9 +9324,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.12 - resolution: "@types/json-schema@npm:7.0.12" - checksum: 2c39946ae321fe42d085c61a85872a81bbee70f9b2054ad344e8811dfc478fdbaf1ebf5f2989bb87c895ba2dfc3b1dcba85db11e467bbcdc023708814207791c + version: 7.0.13 + resolution: "@types/json-schema@npm:7.0.13" + checksum: 446fe6722899333ff647b5853fdcc9f039156d56abe517166154d3578d641841cc869f61e8b7822c24a1daeb7dfbd4fdcea84bf07c0858e2f9cca415e2ca8dd4 languageName: node linkType: hard @@ -9416,11 +9338,11 @@ __metadata: linkType: hard "@types/jsonfile@npm:*": - version: 6.1.1 - resolution: "@types/jsonfile@npm:6.1.1" + version: 6.1.2 + resolution: "@types/jsonfile@npm:6.1.2" dependencies: "@types/node": "*" - checksum: 96dfca37e856978eaf256bf5200c46a01a27a0455b9323a72598e8d59ddd81095934bf15e9c84d6a30125cf63e1464aef6d70ab4a35f34ee2cdfa1fe0db0720b + checksum: c2943f9bfa7867b33fb362b88a932efdc00e9e5f2762b6ef912617cb0a3e3221a98920f8976a4cf817aa576e03d28a25391236e9644e2ebe648081b08df62ef5 languageName: node linkType: hard @@ -9434,50 +9356,50 @@ __metadata: linkType: hard "@types/lodash@npm:^4.14.167": - version: 4.14.198 - resolution: "@types/lodash@npm:4.14.198" - checksum: 9523efda6eb78dc06bcc536c13396892695bc05147fef9f8e60db130d7be693a7a2eb48682b1dd30c0afa58617d5c79333d4bbe527a1c2474e4360282678c9cc + version: 4.14.199 + resolution: "@types/lodash@npm:4.14.199" + checksum: a7168a0a2a7c9e8801aa95f92b02f9d664ee938a5186d73f77a3a8447f475bbadedc1f7f746ffd2530ae34069d232bf25f4f4414077f0d81c71489e34e59173e languageName: node linkType: hard "@types/mdast@npm:^3.0.0": - version: 3.0.12 - resolution: "@types/mdast@npm:3.0.12" + version: 3.0.13 + resolution: "@types/mdast@npm:3.0.13" dependencies: "@types/unist": ^2 - checksum: b5af41e4f19a149eba58cde8ccacc36117640aefe28966637c54c27a8fbcfa3972e88cafd859c7bf39cd5c4e965e4196169001beac4a1980cfee6b08eea896a6 + checksum: b328d1622075a67db1d8eac78dcbd55aefb4adaf63206b58abfce902c0ce5232a2674bd0bf961696c9a3765d5fcf145378ce03075bd1690a25adc617650f1228 languageName: node linkType: hard "@types/mdx@npm:^2.0.0": - version: 2.0.7 - resolution: "@types/mdx@npm:2.0.7" - checksum: 0ed11fa446331af642a2424427e4f06b6dc430eff7e065b730c439f483af88de5d8c16c2740a3726751df9d4cf24ad303b563fd60aaad6197b9460eb7f3d5414 + version: 2.0.8 + resolution: "@types/mdx@npm:2.0.8" + checksum: 6ee0e54d886afcbc2547f1db73ac9de60603ce26592e21f5fff2ba2791f6c58d3eb7b849add8f6b8b9c10f7c8ff3855d29fe7122f532f2f64fce95fe5b8e23ef languageName: node linkType: hard "@types/mime-types@npm:^2.1.0": - version: 2.1.1 - resolution: "@types/mime-types@npm:2.1.1" - checksum: 131b33bfd89481f6a791996db9198c6c5ffccbb310e990d1dd9fab7a2287b5a0fd642bdd959a19281397c86f721498e09956e3892e5db17f93f38e726ca05008 + version: 2.1.2 + resolution: "@types/mime-types@npm:2.1.2" + checksum: aab18eefbcd759908968958eeee6483d8559178d0a3510ca8da692b43f0d98afc8956270623586c6301165a3bd2dcbd9847a8c4d1ea1711de25bb5395686d2a3 languageName: node linkType: hard "@types/mime@npm:*": - version: 3.0.1 - resolution: "@types/mime@npm:3.0.1" - checksum: c4c0fc89042822a3b5ffd6ef0da7006513454ee8376ffa492372d17d2925a4e4b1b194c977b718c711df38b33eb9d06deb5dbf9f851bcfb7e5e65f06b2a87f97 + version: 3.0.2 + resolution: "@types/mime@npm:3.0.2" + checksum: 7eef33033d9990881626611ef87d0dbb06ebff96a7ee09303874389eb482acd0fbf20fe2dc96edb861095e42e6c18d5df8476840131f9c06c57be6f1c1dc77fe languageName: node linkType: hard "@types/mime@npm:^1": - version: 1.3.2 - resolution: "@types/mime@npm:1.3.2" - checksum: 61d144e5170c6cdf6de334ec0ee4bb499b1a0fb0233834a9e8cec6d289b0e3042bedf35cbc1c995d71a247635770dae3f13a9ddae69098bb54b933429bc08d35 + version: 1.3.3 + resolution: "@types/mime@npm:1.3.3" + checksum: 56c9981b637154721753d38888c2cba85f8891a16e0f1cb1286dcbd741b220ff56d99aa2be03bf7fe88b188a27e32bf1d92976dafd6574b8f345bbf0853d462c languageName: node linkType: hard -"@types/minimatch@npm:*": +"@types/minimatch@npm:*, @types/minimatch@npm:^5.1.2": version: 5.1.2 resolution: "@types/minimatch@npm:5.1.2" checksum: 83cf1c11748891b714e129de0585af4c55dd4c2cafb1f1d5233d79246e5e1e19d1b5ad9e8db449667b3ffa2b6c80125c429dbee1054e9efb45758dbc4e118562 @@ -9492,49 +9414,56 @@ __metadata: linkType: hard "@types/minimist@npm:^1.2.0": - version: 1.2.2 - resolution: "@types/minimist@npm:1.2.2" - checksum: f220f57f682bbc3793dab4518f8e2180faa79d8e2589c79614fd777d7182be203ba399020c3a056a115064f5d57a065004a32b522b2737246407621681b24137 + version: 1.2.3 + resolution: "@types/minimist@npm:1.2.3" + checksum: e57d18f3c49b286eb5e63f2f6ec77d9a71beace3d9ef21cc3ee5a8eb4161520918b7eb0dcf20046d05339b955208a972ef474cc568542cd64b7b6365b9ec6650 languageName: node linkType: hard "@types/mock-fs@npm:^4.13.1": - version: 4.13.1 - resolution: "@types/mock-fs@npm:4.13.1" + version: 4.13.2 + resolution: "@types/mock-fs@npm:4.13.2" dependencies: "@types/node": "*" - checksum: 29cbedf7822e6fc2b6024c85dac66b0d103541edafc728b959cf07a6cd9977ee13db25c9bcb932eb7f66eb2270d79691f965c4be4bc8311d523f29bbd2ef742b + checksum: c589d8ba674e9d2279c6321841ee5b4e9ba3138a8790cbe2a61ea1da1e9d254188ef9f1a2f66539b225aaebcd56f746551f4723de24afc0c430d9e7c68344a7b languageName: node linkType: hard "@types/ms@npm:*": - version: 0.7.31 - resolution: "@types/ms@npm:0.7.31" - checksum: 19fae4f587651e8761c76a0c72ba8af1700d37054476878d164b758edcc926f4420ed06037a1a7fdddc1dbea25265895d743c8b2ea44f3f3f7ac06c449b9221e + version: 0.7.32 + resolution: "@types/ms@npm:0.7.32" + checksum: 16f60d0a2485edfa459e9570aec9135d9ef08dd855630754063f3baf1d1df7a5edd0f249ff9b460a33842181250f51b27b35078b83cf6ec1dccabb4485de19d6 languageName: node linkType: hard "@types/node-fetch@npm:^2.5.7, @types/node-fetch@npm:^2.6.4": - version: 2.6.4 - resolution: "@types/node-fetch@npm:2.6.4" + version: 2.6.6 + resolution: "@types/node-fetch@npm:2.6.6" dependencies: "@types/node": "*" - form-data: ^3.0.0 - checksum: e43e4670ed8b7693dbf660ac1450b14fcfcdd8efca1eb0f501b6ad95af2d1fa06f8541db03e9511e82a5fee510a238fe0913330c9a58f8ac6892b985f6dd993e + form-data: ^4.0.0 + checksum: fce52a0b65f4cb9e5059c9b3250682c8f0f0c2ce1d1a18b5bbc61b5fbf5f320b76d42b4dfa5c0567fe0704bdf0c0397527008efcb0749859aaaff8c51b6ed6c1 languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>= 8, @types/node@npm:^16.0.0": - version: 16.18.50 - resolution: "@types/node@npm:16.18.50" - checksum: 4fc76918cc4e09d6cf087b385a1e2283580b1a88518f309764365cbdbdc28cdf48a77a5615ac4ce28dccee078b3da79442a032cc8aa312406943754144938cdb +"@types/node@npm:*, @types/node@npm:>= 8": + version: 20.8.2 + resolution: "@types/node@npm:20.8.2" + checksum: e9952db222dd3e1cca1107d1b2aaec4e93b4af8b4fc32b42dd4fac3719f98c14edb8c591829c972d2f6e2b527bbb34af53608f6a7973f4a7dbd1d3bc929bbe8d + languageName: node + linkType: hard + +"@types/node@npm:^16.0.0": + version: 16.18.57 + resolution: "@types/node@npm:16.18.57" + checksum: 191cfb12fde8c882f1d982a07302f7b87cda7b93ec227b0607f908f3b3b11c5ff96bbed613f370818ea60a8a98140962b193324bdadff679bd5ca75d04407e60 languageName: node linkType: hard "@types/normalize-package-data@npm:^2.4.0": - version: 2.4.1 - resolution: "@types/normalize-package-data@npm:2.4.1" - checksum: c90b163741f27a1a4c3b1869d7d5c272adbd355eb50d5f060f9ce122ce4342cf35f5b0005f55ef780596cacfeb69b7eee54cd3c2e02d37f75e664945b6e75fc6 + version: 2.4.2 + resolution: "@types/normalize-package-data@npm:2.4.2" + checksum: e38713ca1befc341701c078d592d1fddc1d13eec73b4d81fbab14638221733029f03cdf410b4486b23d48fd8d3809fa36611de98220e76f71517d42b582b3509 languageName: node linkType: hard @@ -9553,9 +9482,9 @@ __metadata: linkType: hard "@types/picomatch@npm:^2.3.0": - version: 2.3.0 - resolution: "@types/picomatch@npm:2.3.0" - checksum: 529aca7f2397b920559c8b6314c5a543d8bc0e0b423edbba1c356ba4d1783325d712b1871991895eb80355422176e1714a097620afceaa05b160dbcf5890f577 + version: 2.3.1 + resolution: "@types/picomatch@npm:2.3.1" + checksum: 6ab42daf80d315495586bc7f276698395c47e28479cbc79c88ff14c81fd1fb38a76dee9c609dfe591036986b923198f1dab438865ce3583f1d380cac09870b3f languageName: node linkType: hard @@ -9590,33 +9519,33 @@ __metadata: linkType: hard "@types/prismjs@npm:^1.16.6": - version: 1.26.0 - resolution: "@types/prismjs@npm:1.26.0" - checksum: dce1388a626c20b95fa2715917deef5a401eec33e9e181f202840ee3b3c7d8a84d5558c834af4c29b8e007741a6a18639b074db8ecccdd6e7de15280fc4dfdd2 + version: 1.26.1 + resolution: "@types/prismjs@npm:1.26.1" + checksum: 74b624bd0def16ba2fe4492ac74422ed9eaf5588814c14d8825c85dd4ef05b900a3685c5ec00bb13991e9f0cc4bbda196b9de3ba75cf7c00bc8ffd960c125124 languageName: node linkType: hard "@types/prompts@npm:^2.0.9": - version: 2.4.4 - resolution: "@types/prompts@npm:2.4.4" + version: 2.4.5 + resolution: "@types/prompts@npm:2.4.5" dependencies: "@types/node": "*" kleur: ^3.0.3 - checksum: 9d240cdabc8bd5d7a8edaddebbd62c3fb61ddcf83b7240277682c4a73b53bb01b73d627b14befa478847085c664d310867d93f5504ec6d99fdc03cd36c2e5f81 + checksum: a2a3e802508db79e4c6bfcab09ddb37e93279152fd127a7f4a8c1e683ee6f5429ce86f70c58eb94b76b19d98e4b6ca53bbb0b375d47b0b8c4ad4ecf178227258 languageName: node linkType: hard "@types/prop-types@npm:*": - version: 15.7.5 - resolution: "@types/prop-types@npm:15.7.5" - checksum: 648aae41423821c61c83823ae36116c8d0f68258f8b609bdbc257752dcd616438d6343d554262aa9a7edaee5a19aca2e028a74fa2d0f40fffaf2816bc7056857 + 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.6 - resolution: "@types/pug@npm:2.0.6" - checksum: 8e7a3b6c1158d3a87b643c91f6cf2552ae781bc2a8f8b17a61e7b1ddd9ce480fd3483459a9b6e0f205ebe158ed67c11fd9a3206262057a14f655138c2322b0c9 + version: 2.0.7 + resolution: "@types/pug@npm:2.0.7" + checksum: 3d0cf7945f56a2763d0917d63f1ebe9c86eed9bc0b64781d0d5ec842bcdf1779e1065e132300942a1c34fefa87212d877d7fad24a576c4ce52db8fb17c4dcd0e languageName: node linkType: hard @@ -9654,37 +9583,28 @@ __metadata: languageName: node linkType: hard -"@types/ramda@npm:0.29.3": - version: 0.29.3 - resolution: "@types/ramda@npm:0.29.3" - dependencies: - types-ramda: ^0.29.4 - checksum: 9c62a4600f5df5e65a01ffe4a470500c98f7c0d093fde47e0d4257675f1ec50effe4696cb004a6b53227948db67ea26a2345dbc91819ecc868105c0f64cecd1e - languageName: node - linkType: hard - "@types/range-parser@npm:*": - version: 1.2.4 - resolution: "@types/range-parser@npm:1.2.4" - checksum: 8e3c3cda88675efd9145241bcb454449715b7d015a7fb80d018dcb3d441fa1938b302242cc0dfa6b02c5d014dd8bc082ae90091e62b1e816cae3ec36c2a7dbcb + version: 1.2.5 + resolution: "@types/range-parser@npm:1.2.5" + checksum: fe4bbbbfb19f0765ea15e66e2c58e29e04f4e52055c0d348b08dbfb161c2d2a363cc21b8a6071936a0cab3f02d0f5f362a3f752b37b05ff868000dcfe9120581 languageName: node linkType: hard "@types/react-dom@npm:^16.9.14": - version: 16.9.19 - resolution: "@types/react-dom@npm:16.9.19" + version: 16.9.20 + resolution: "@types/react-dom@npm:16.9.20" dependencies: "@types/react": ^16 - checksum: fe74e2166054fd4c6ff86b561be559d2ffd77524818a49f07206892b73c473d0db0fa7d82bd68c81d5ba3dccfbb1dd0478c28879a6f8ac2639fb1e77cef3db0f + checksum: bfcecc8c63f8387ddca0fe277857b462b6cf85b497c5a5df340e695d4100de7b680eb2b269ac4958c65a905ec0d5e3391b1c4ed711ad55c5d1e7232bc190c235 languageName: node linkType: hard "@types/react-modal@npm:^3.12.1": - version: 3.16.0 - resolution: "@types/react-modal@npm:3.16.0" + version: 3.16.1 + resolution: "@types/react-modal@npm:3.16.1" dependencies: "@types/react": "*" - checksum: ee65eb9f47e6c953bed23d716442ee1fcac3c2d586409924317043c8df2e38475c2232ef04e3c57d7d7387d7a319a97732278e92864d7363596e54fc5ebcd0cb + checksum: 4f586bd00e4b15633ec6607cb3266183b81419a2c0931d40e6127427e944a986d3d9a9c8a23c86cb586b15e541a1c6682f6ab0d2561a3b81fcf857772727ff44 languageName: node linkType: hard @@ -9697,30 +9617,41 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:*, @types/react@npm:>=16, @types/react@npm:^16, @types/react@npm:^16.14.34": - version: 16.14.46 - resolution: "@types/react@npm:16.14.46" +"@types/react@npm:*, @types/react@npm:>=16": + version: 18.2.24 + resolution: "@types/react@npm:18.2.24" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: a83c7ae0010b265012ef038e3e00e4708c27c523f0aa0631e44f934e9c5338a51b6db1901f91d8ba10d3dc292a3a200b2cb5e47430cde58fbf988969866fe75a + languageName: node + linkType: hard + +"@types/react@npm:^16, @types/react@npm:^16.14.34": + version: 16.14.48 + resolution: "@types/react@npm:16.14.48" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: 815885cbae2c8653dddf8df4e6c2ce43ff8ff1d02c03f8356ce4b13aa7c8e6c72c588f04977c6f49fdd82419d46fdd895535d5e66726f0b0ea13c04065294995 + checksum: 28fbacb933d614366a28c74f398ab2bf34cc95ee6d486b8dc33c9b9d76306f32196b7885c6dc4f4d6f630e8cebfb6caee6ed118e82a1d4a5ff23f29e0d724aa4 languageName: node linkType: hard "@types/resolve@npm:^1.20.2": - version: 1.20.2 - resolution: "@types/resolve@npm:1.20.2" - checksum: c5b7e1770feb5ccfb6802f6ad82a7b0d50874c99331e0c9b259e415e55a38d7a86ad0901c57665d93f75938be2a6a0bc9aa06c9749192cadb2e4512800bbc6e6 + 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.0 - resolution: "@types/responselike@npm:1.0.0" + version: 1.0.1 + resolution: "@types/responselike@npm:1.0.1" dependencies: "@types/node": "*" - checksum: 474ac2402e6d43c007eee25f50d01eb1f67255ca83dd8e036877292bbe8dd5d2d1e50b54b408e233b50a8c38e681ff3ebeaf22f18b478056eddb65536abb003a + checksum: f49d4765498d64e81fdff91267575caef0b364538994512605323b4ef74297f6ac5c61658713e1e1cc6d3951f6a5bcd436fcdec79c5f9d5e72c6b3f700b6f997 languageName: node linkType: hard @@ -9742,62 +9673,62 @@ __metadata: linkType: hard "@types/scheduler@npm:*": - version: 0.16.3 - resolution: "@types/scheduler@npm:0.16.3" - checksum: c249d4b96fa05165ac22c214f94a045ee0af8beedefdbc54b769febd0044cab3a874e55419841a0dcc76439e379a63e257f3253c87168e3261e7bc783d623302 + version: 0.16.4 + resolution: "@types/scheduler@npm:0.16.4" + checksum: 2355e63251c6c6467806c9e7085f5fad350a1e87f811cf416f1e48a888b7da4ecc4bae2b67b7b10d8f5e518305ef2b5d4a8451227158552942794b87be43c5dd languageName: node linkType: hard "@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.4": - version: 7.5.1 - resolution: "@types/semver@npm:7.5.1" - checksum: 10746bd8c6b5ba4da8c5b8e246e0ce2ccde7df0e782cbb2b376bc8c6c25ae0aca39a3c82b762912c6eab801cd64ffd8582369c4b96f0d4e7898118b68717c93b + version: 7.5.3 + resolution: "@types/semver@npm:7.5.3" + checksum: 1dedcf5f50a5a345e817fdf1273a14d0c57de80eb1d47bf3f17563062be53a2c99b78755a8c88c794a03757f9cd05da61b2849bf109e1b71e30fca895529c2b0 languageName: node linkType: hard "@types/send@npm:*": - version: 0.17.1 - resolution: "@types/send@npm:0.17.1" + version: 0.17.2 + resolution: "@types/send@npm:0.17.2" dependencies: "@types/mime": ^1 "@types/node": "*" - checksum: 1aad6bfafdaa3a3cadad1b441843dfd166821c0e93513daabe979de85b552a1298cfb6f07d40f80b5ecf14a3194dc148deb138605039841f1dadc7132c73e634 + checksum: 3fdd87a1b82fae523b2609f2acef25705b40899fed3c5f4dd40bf0dc91ad6a2c0a2b6c1494d1584525fe6e88bea271fcdb9775b3996ddc7f16d52261eea73432 languageName: node linkType: hard "@types/serve-index@npm:^1.9.1": - version: 1.9.1 - resolution: "@types/serve-index@npm:1.9.1" + version: 1.9.2 + resolution: "@types/serve-index@npm:1.9.2" dependencies: "@types/express": "*" - checksum: ed1ac8407101a787ebf09164a81bc24248ccf9d9789cd4eaa360a9a06163e5d2168c46ab0ddf2007e47b455182ecaa7632a886639919d9d409a27f7aef4e847a + checksum: 9b82300c6930f8a768e742f89414ef84cd7bd8bc242f13a070fd754144890ba281e7ae99d018e40a256963c12be600f4bb5cfd6e3ad72c686bc9482260c168eb languageName: node linkType: hard "@types/serve-static@npm:*, @types/serve-static@npm:^1.13.10, @types/serve-static@npm:^1.13.8": - version: 1.15.2 - resolution: "@types/serve-static@npm:1.15.2" + version: 1.15.3 + resolution: "@types/serve-static@npm:1.15.3" dependencies: "@types/http-errors": "*" "@types/mime": "*" "@types/node": "*" - checksum: 5e7b3e17b376f8910d5c9a0b1def38d7841c8939713940098f1b80a330d5caa9cfe9b632c122252cd70165052439e18fafa46635dc55b1d6058343901eec22eb + checksum: 0aaaf8fc1c0c8f96a4786928d5d79b0fff2f31e8c3b571c84cd2711129456045a9c02fa76054fb6c76f5770e2f6dbbc3b4be008e9af68bd6ce8739cb6d66c89b languageName: node linkType: hard "@types/sockjs@npm:^0.3.33": - version: 0.3.33 - resolution: "@types/sockjs@npm:0.3.33" + version: 0.3.34 + resolution: "@types/sockjs@npm:0.3.34" dependencies: "@types/node": "*" - checksum: 75b9b2839970ebab3e557955b9e2b1091d87cefabee1023e566bccc093411acc4a1402f3da4fde18aca44f5b9c42fe0626afd073a2140002b9b53eb71a084e4d + checksum: e546c306dc7630e88a7be14faa26c6c6115847f4d334dcf7957166616c1f6d35549c93cb0985f0e0bdcc4c362fb66841b2c418c03c8df24b39be385c5496df11 languageName: node linkType: hard "@types/source-list-map@npm:*": - version: 0.1.2 - resolution: "@types/source-list-map@npm:0.1.2" - checksum: 0538ce317294febf40ed3fc3a2e483fa4aee8ba85584a66e5ed9c0af9ea48a348960bc467076643cb56aeafdd7d2252e90c75e68ef664c0477ec87ea0554ffdc + version: 0.1.3 + resolution: "@types/source-list-map@npm:0.1.3" + checksum: b0734c05ebfca29c28c1418237a13561bd16e5a848c48f0b6295bd2405aa070a317e869d9e8ba6907132928d5ea5cd339076e5e205c75137de7d6aedde11e365 languageName: node linkType: hard @@ -9830,9 +9761,9 @@ __metadata: linkType: hard "@types/tapable@npm:^1": - version: 1.0.8 - resolution: "@types/tapable@npm:1.0.8" - checksum: 01f77d47bac8aaeee7ed298e8e74eb012a28f920106c3c359e1f2730512cd810f2c6165cd2cd769422ae1064e2bf1072778b27fb5ec1973e18c35e2cc1ed5c8d + version: 1.0.9 + resolution: "@types/tapable@npm:1.0.9" + checksum: 51e7a55432c3abf71ae5e13907eb01a576efdf66ddfcd4f2a765436e684e182df527885980d4f710250cd61304a61f7fe9d447b33fef8db1fa434a395c85933d languageName: node linkType: hard @@ -9855,23 +9786,23 @@ __metadata: linkType: hard "@types/tmp@npm:^0.2.3": - version: 0.2.3 - resolution: "@types/tmp@npm:0.2.3" - checksum: a9a32d723b483713ef537af31caddfcc2129ba21a0d56f5e4eef39508e07d415b1ec7327486d15b2cd4ac277deaaef0f8368ed1a0f4029e5ef5c393f9c15856b + version: 0.2.4 + resolution: "@types/tmp@npm:0.2.4" + checksum: 26e19913170193420eddbe5bf83e873ef82a1af002d0871659e0bcd2af41fcc29818bba2571784a452c73094e50a7db1f1a89a6399c103bb037a095cfe67e63d languageName: node linkType: hard "@types/tough-cookie@npm:*": - version: 4.0.2 - resolution: "@types/tough-cookie@npm:4.0.2" - checksum: 38d01fc79a9a87166253b8c548bb401599424c57a818bea1b47a68be6dcd37fc3bff381f978354e00221f284937d5066bb92d58bf79952f9d21deb934e8ec9a7 + 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.3 - resolution: "@types/trusted-types@npm:2.0.3" - checksum: 25eae736a8a6d24353c3e0108138935250f79d1d239f6fd6f3eb52d88476456ba946f8cb8f3130c6841d40534cafc2dd2326358d86966327c3c4a3d3eecaf585 + version: 2.0.4 + resolution: "@types/trusted-types@npm:2.0.4" + checksum: ad7ca5059168880d8fa04ebf9d5f57d402bef4d7bb8a50df5103db8bf3821a334aaa2dab9937cf5d440beb707bed35b700fa387fcbce0611821d4cea7fa94dc1 languageName: node linkType: hard @@ -9906,53 +9837,53 @@ __metadata: linkType: hard "@types/uuid@npm:^9.0.1": - version: 9.0.3 - resolution: "@types/uuid@npm:9.0.3" - checksum: a2d8a769952f5795c74d594b5fdbdc09972f6fb5e389a52854f5adc27aab85109dea38c09419c2283b14be78271b55eaac7b2300f59d8c058b5ed298a6844768 + version: 9.0.4 + resolution: "@types/uuid@npm:9.0.4" + checksum: 3f713a67a56af20ecdfcbc31f29f7182a8aea51f1120d75daa76bb346973e014ae875c27cdd455bd0812a498330abad4ecbc1b65e1b4c507bb897fcda130f079 languageName: node linkType: hard "@types/webpack-env@npm:^1.16.0, @types/webpack-env@npm:^1.18.0": - version: 1.18.1 - resolution: "@types/webpack-env@npm:1.18.1" - checksum: 7b7cb8d22fe85fb3f87f592cb5ba2fb3b1057d1d5ce8d770b28728095879f5921085fae97f5bc479bdca55f2cb3111bd9148dc36cd641a5694dfbe001c5fc2f7 + version: 1.18.2 + resolution: "@types/webpack-env@npm:1.18.2" + checksum: 62a7d7e98fa462cde425c1bf9e70a84f61c522f0171a8eee493d3c26df8b0e7deff233e430c0be6bc654dded0c33f657f47d000f7e797522182817c8565d5a80 languageName: node linkType: hard "@types/webpack-hot-middleware@npm:^2.25.6": - version: 2.25.6 - resolution: "@types/webpack-hot-middleware@npm:2.25.6" + version: 2.25.7 + resolution: "@types/webpack-hot-middleware@npm:2.25.7" dependencies: "@types/connect": "*" tapable: ^2.2.0 webpack: ^5 - checksum: 4c5835dfd9d858bb8ac35170588a86c88fbef50f7bf89c8b3f50780cbc284c3091f0171ecac96dc22bf02b1a0379436a7495e2d59aeda90246fb0039035740fe + checksum: 5f33f415fe1eb5334aea422b42a85ae45cc1d6fc69078a7b1c58879a0bf757172c232c9c8253d90c554f1378492cbf7f4fa40b390b50892cc13b6f77e733b869 languageName: node linkType: hard "@types/webpack-sources@npm:*": - version: 3.2.0 - resolution: "@types/webpack-sources@npm:3.2.0" + version: 3.2.1 + resolution: "@types/webpack-sources@npm:3.2.1" dependencies: "@types/node": "*" "@types/source-list-map": "*" source-map: ^0.7.3 - checksum: 17716e9f03fa63362f92d510bb9119313bac3a7985321e0fe9326dc30ebe598cb2c85b8c7cdc4f4d34d783c4c45e74e3ec08e209f9c9dab27bf188c3def32706 + checksum: 651fcf880b2ed4f309fce9f47b85b7d1771a63436880792688b8c5e6e4177272dbe80c88cc4d877bc8370446499ab9b6a9ac6348b1fd2b29e56f7657f4562dd7 languageName: node linkType: hard "@types/webpack-virtual-modules@npm:^0.1.1": - version: 0.1.1 - resolution: "@types/webpack-virtual-modules@npm:0.1.1" + version: 0.1.2 + resolution: "@types/webpack-virtual-modules@npm:0.1.2" dependencies: "@types/webpack": ^4 - checksum: 42b9b70d19fc65588456aedf732963d0fa79245a4c72f13c30a5a6965ffaddfb7bd822328cf5ce110e4584a131a565bf0edea489626a298f52a590113f454ce8 + checksum: ad3a17f798aa2bb449140f13e251952f5fe5bf8313ced93d3eae7fb82184d82985eb18a27bfae2bd2385051d8affc675d117079f8402d9645bc4376d2a73d991 languageName: node linkType: hard "@types/webpack@npm:^4": - version: 4.41.33 - resolution: "@types/webpack@npm:4.41.33" + version: 4.41.34 + resolution: "@types/webpack@npm:4.41.34" dependencies: "@types/node": "*" "@types/tapable": ^1 @@ -9960,59 +9891,59 @@ __metadata: "@types/webpack-sources": "*" anymatch: ^3.0.0 source-map: ^0.6.0 - checksum: dc6db66fa84664d8fab7ea79bd2482ea1c4500b09ed6939258e205548501b8d29c06b0fe5e869c4b59f74acf884c61a391875dadb9f7a91c8cd10c3841143729 + checksum: 630ebd822e7ee85b7118d1c095370709ce493831365f7fd750bea88ac4726ef52df33cc25261922526e45b354c9fdb3edfabc7738d5b9ec18416fd502cda3838 languageName: node linkType: hard "@types/ws@npm:^8, @types/ws@npm:^8.5.5": - version: 8.5.5 - resolution: "@types/ws@npm:8.5.5" + version: 8.5.6 + resolution: "@types/ws@npm:8.5.6" dependencies: "@types/node": "*" - checksum: 9fb5aaeb2899f2c5aa55946656a39fdf679e48ec4eff557901215249ac84f435853b1d224214e88a93fcbca4bc9a0b0af01113d76f37db0b5873a882e5e99935 + checksum: 9050eb44c23caba404f106c9ab5210aae0c5cc85b5a7ed0116d0ee1c5b4e499325cffe406b6bc71ee2d4f456e9498037d95a984a06a841a64ef58a6dd79731f4 languageName: node linkType: hard "@types/yargs-parser@npm:*": - version: 21.0.0 - resolution: "@types/yargs-parser@npm:21.0.0" - checksum: cb89f3bb2e8002f1479a65a934e825be4cc18c50b350bbc656405d41cf90b8a299b105e7da497d7eb1aa460472a07d1e5a389f3af0862f1d1252279cfcdd017c + 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.15 - resolution: "@types/yargs@npm:15.0.15" + version: 15.0.16 + resolution: "@types/yargs@npm:15.0.16" dependencies: "@types/yargs-parser": "*" - checksum: b52519ba68a8d90996b54143ff74fcd8ac1722a1ef4a50ed8c3dbc1f7a76d14210f0262f8b91eabcdab202ff4babdd92ce7332ab1cdd6af4eae7c9fc81c83797 + checksum: 07f0960062e66226ae602fccd62e351143291d778e1f4dd645c51111e62fbedafe2a976c223dcfa7ae052e989407b62e97a7472fc1d73536110cd05502c204a5 languageName: node linkType: hard "@types/yargs@npm:^16.0.0": - version: 16.0.5 - resolution: "@types/yargs@npm:16.0.5" + version: 16.0.6 + resolution: "@types/yargs@npm:16.0.6" dependencies: "@types/yargs-parser": "*" - checksum: 7b2824c749b6e28f5ee3248d13b244eaf7d3c5bb96089add774997572b5a10f1a0826d29a7bc797d64d29ca504b0b0d6ba2e74931b3fabae78ccbbcf07282f0c + checksum: a2cc5796cea1aac492c856ff35e829a6a230e6d72540a9446273ab16392f6ef04b8fef05ddcff71c8106c047820b5534b22e031245ee55995b1ba0c8caa382b2 languageName: node linkType: hard "@types/yargs@npm:^17.0.8": - version: 17.0.24 - resolution: "@types/yargs@npm:17.0.24" + version: 17.0.26 + resolution: "@types/yargs@npm:17.0.26" dependencies: "@types/yargs-parser": "*" - checksum: fbebf57e1d04199e5e7eb0c67a402566fa27177ee21140664e63da826408793d203d262b48f8f41d4a7665126393d2e952a463e960e761226def247d9bbcdbd0 + checksum: 34ab6eff6dff086b1044c65d53131e1d14e87c0c6dc44cb6851d74d8a4d1ac4503f7d12d1e1ecff25f8aea62ff7a9d6b04b05870a0324d15bbb226ddfc1d6065 languageName: node linkType: hard "@types/yauzl@npm:^2.9.1": - version: 2.10.0 - resolution: "@types/yauzl@npm:2.10.0" + version: 2.10.1 + resolution: "@types/yauzl@npm:2.10.1" dependencies: "@types/node": "*" - checksum: e917cf11c78e9ca7d037d0e6e0d6d5d99443d9d7201f8f1a556f02a2bc57ae457487e9bfec89dfa848d16979b35de6e5b34840d4d0bb9e5f33849d077ac15154 + checksum: d44eb8ab5c7bd024644bdf07e71d1e2618b1d6a9eb10609555a5359264b3f012f91d7add53a49a114df2d3fd6b1787f6204340b03590ea1a6c0e52a71e3bca54 languageName: node linkType: hard @@ -10149,12 +10080,12 @@ __metadata: linkType: hard "@urql/core@npm:^4.1.0": - version: 4.1.2 - resolution: "@urql/core@npm:4.1.2" + version: 4.1.3 + resolution: "@urql/core@npm:4.1.3" dependencies: "@0no-co/graphql.web": ^1.0.1 wonka: ^6.3.2 - checksum: 440d8c7f138638a506521edba337d2710a7ace913d0a5445cec8361db34f8d713e95d142f0fbaa15dd1106df5a338a671b550ddcec954188fa2ee700871d74fa + checksum: 9aa5c8b9df04c79e71f4be6ce0d97cc2301d1ab7aea3ffafa9f53d89564f063dc77a011239c2a51581b50bbedc1e9dab0a3551acc7ee5dda9dd1bece2d5a1644 languageName: node linkType: hard @@ -10200,12 +10131,12 @@ __metadata: linkType: hard "@vitejs/plugin-vue@npm:^4.0.0": - version: 4.3.4 - resolution: "@vitejs/plugin-vue@npm:4.3.4" + version: 4.4.0 + resolution: "@vitejs/plugin-vue@npm:4.4.0" peerDependencies: vite: ^4.0.0 vue: ^3.2.25 - checksum: 55c8760f3826ef80cc277f417fc99e58cc43513a2ff6e796250f9051acca811f30ef15b0a122b805d7063e91e78448795c57ddf659d7e853473fccc1afbeec54 + checksum: a430fbc504e2d14848b94866d52c8d5044ec216b1bf9304f53e3d3f3045da634db9c986e8ed2b0605fcc94e19fe67dc9c7e10971bd5aab444ca4167a71cd197d languageName: node linkType: hard @@ -10376,9 +10307,9 @@ __metadata: languageName: node linkType: hard -"@vue/language-core@npm:1.8.10": - version: 1.8.10 - resolution: "@vue/language-core@npm:1.8.10" +"@vue/language-core@npm:1.8.15": + version: 1.8.15 + resolution: "@vue/language-core@npm:1.8.15" dependencies: "@volar/language-core": ~1.10.0 "@volar/source-map": ~1.10.0 @@ -10393,7 +10324,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 0877e160211266e305f2469ac36d20840746cd132122f7765c15532e49f17e99e8500cc569adac24a066630eede380dc3671a6f9f50826927ca27bede3c91107 + checksum: 05ec3d660bd26cf05d17e722d1117324e1309360f0be4998c82ccac22689e31a332660086ece6b3f4f43660dfb94d1905eea0aa329b88b2f5afea944b01153e0 languageName: node linkType: hard @@ -10496,13 +10427,13 @@ __metadata: languageName: node linkType: hard -"@vue/typescript@npm:1.8.10": - version: 1.8.10 - resolution: "@vue/typescript@npm:1.8.10" +"@vue/typescript@npm:1.8.15": + version: 1.8.15 + resolution: "@vue/typescript@npm:1.8.15" dependencies: "@volar/typescript": ~1.10.0 - "@vue/language-core": 1.8.10 - checksum: 51926d65f4ea045e1a627e1ec0c5e9d5f17a2b587a17445d85fb8c70f14ffa847d55539c040a43c9f2787d9bb8f752f87f68812faa6c284ddacbdb21ffe1dafc + "@vue/language-core": 1.8.15 + checksum: c68808d29da93e616cd30bd4dc84aad0bb3d245d45537adc74244cc0fe93cb797e4bbdbdf2a4841b6bce088e6ef1bc70fa279fd2e1aabb794c42d908d8e46087 languageName: node linkType: hard @@ -10757,12 +10688,12 @@ __metadata: linkType: hard "@yarnpkg/parsers@npm:^3.0.0-rc.18": - version: 3.0.0-rc.50 - resolution: "@yarnpkg/parsers@npm:3.0.0-rc.50" + version: 3.0.0-rc.53 + resolution: "@yarnpkg/parsers@npm:3.0.0-rc.53" dependencies: js-yaml: ^3.10.0 tslib: ^2.4.0 - checksum: 76c0bc1afccb75b04439c85e2d86303045dcb9b348932dea77c810cc2c38f5b5fffef7c9baeff81028dd08b93d2f9fbd283ec3bb27cc0e83dc06d9c773d08432 + checksum: e384ecc6539e3c5796d87b2910b03331407c0ad817d85bf58ba0b383afb45dd7e1ee0fc862d9756350049b816b72d052de141274804e6e5fee795483c8bd3f12 languageName: node linkType: hard @@ -11466,7 +11397,7 @@ __metadata: languageName: node linkType: hard -"arraybuffer.prototype.slice@npm:^1.0.1": +"arraybuffer.prototype.slice@npm:^1.0.2": version: 1.0.2 resolution: "arraybuffer.prototype.slice@npm:1.0.2" dependencies: @@ -11697,9 +11628,9 @@ __metadata: linkType: hard "axe-core@npm:^4.2.0, axe-core@npm:^4.6.2, axe-core@npm:^4.7.0": - version: 4.8.1 - resolution: "axe-core@npm:4.8.1" - checksum: 160887aac11d0a249adade104379bb3b05d1bca26386137b50ea82861cc4bbbdcc76091309b3c5f03da1fae0f27ab02d8d4aef3d041a16e67f3a012cb5080c90 + version: 4.8.2 + resolution: "axe-core@npm:4.8.2" + checksum: ad9e1125ba226bbc73d442996d8b9b35fed9af8bcfa995831e29c3d6b8ddb0d16bc7d18c66c5a685211296ee99fe966ae4d59051ca6fbef2a7ee7408322b9dbe languageName: node linkType: hard @@ -11725,13 +11656,13 @@ __metadata: linkType: hard "axios@npm:^1.0.0": - version: 1.5.0 - resolution: "axios@npm:1.5.0" + version: 1.5.1 + resolution: "axios@npm:1.5.1" dependencies: follow-redirects: ^1.15.0 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: a3e11e53ff10fa02defb17c82672599a5ef31f8a6f2b0ea1564a61271226a924baef3a899a03c6850bddb0e9a614acdf615e07b30f382403b5e1fc7ec2eef464 + checksum: f9d975a17a9dff8e325e204d5e09ef07bdd1b6fa63983f184c3cf33249ee38339f1e5d8f874f89116be8942b46d1f4d5ce9ddb03757be69614f5775c2dd6da25 languageName: node linkType: hard @@ -11927,14 +11858,14 @@ __metadata: linkType: hard "babel-plugin-polyfill-corejs3@npm:^0.8.2, babel-plugin-polyfill-corejs3@npm:^0.8.3": - version: 0.8.3 - resolution: "babel-plugin-polyfill-corejs3@npm:0.8.3" + version: 0.8.4 + resolution: "babel-plugin-polyfill-corejs3@npm:0.8.4" dependencies: "@babel/helper-define-polyfill-provider": ^0.4.2 - core-js-compat: ^3.31.0 + core-js-compat: ^3.32.2 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: b5cbfad6d3695a1ea65ef62e34de7f9c6f717cd5cc6d64bde726528168ba1d0a81e09a385d9283a489aab9739fbe206f2192fd9f0f60a37a0577de6526553a8d + checksum: d015514433c092d52914319b69cb6b5b9b6e7798d2d3c8c64c2d1dc249361457411dc611b51dabfc6104856029341b37f4e76299c02be7ae47262bf79b7774d5 languageName: node linkType: hard @@ -12629,17 +12560,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.14.5, browserslist@npm:^4.21.10, browserslist@npm:^4.21.5, browserslist@npm:^4.21.9": - version: 4.21.10 - resolution: "browserslist@npm:4.21.10" +"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: ^1.0.30001517 - electron-to-chromium: ^1.4.477 + caniuse-lite: ^1.0.30001541 + electron-to-chromium: ^1.4.535 node-releases: ^2.0.13 - update-browserslist-db: ^1.0.11 + update-browserslist-db: ^1.0.13 bin: browserslist: cli.js - checksum: e8c98496e5f2a5128d0e2f1f186dc0416bfc49c811e568b19c9e07a56cccc1f7f415fa4f532488e6a13dfacbe3332a9b55b152082ff125402696a11a158a0894 + checksum: 6810f2d63f171d0b7b8d38cf091708e00cb31525501810a507839607839320d66e657293b0aa3d7f051ecbc025cb07390a90c037682c1d05d12604991e41050b languageName: node linkType: hard @@ -12941,17 +12872,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001464": - version: 1.0.30001533 - resolution: "caniuse-lite@npm:1.0.30001533" - checksum: bb07dc0845f4f05ee833eaf25c0eb93af2c6e1c59b0897ea85218cf9ef2e880c8b5e1f20c1b32916d4687cd557d945f8c43c64c8e3200d1a433681b30b42fe54 - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001517": - version: 1.0.30001520 - resolution: "caniuse-lite@npm:1.0.30001520" - checksum: 48daf0d55e72e343f09fe17cbd47303a5bf4d65f6ec08ef68cc998c4fed073c9789d710e296496140e8179138dccb4667b786e260ca5451e1663786ef889db3b +"caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001464, caniuse-lite@npm:^1.0.30001541": + version: 1.0.30001543 + resolution: "caniuse-lite@npm:1.0.30001543" + checksum: 3d80abff0c2c70167f2bbc8f5105370a6eb9f4c2b59c520eaa18b76082d45b27a292c39d2a5dcaeca253679cab5aca8ff89b569502839fadd7be8ae04fb41349 languageName: node linkType: hard @@ -13202,9 +13126,9 @@ __metadata: linkType: hard "ci-info@npm:^3.2.0, ci-info@npm:^3.6.1": - version: 3.8.0 - resolution: "ci-info@npm:3.8.0" - checksum: 0d3052193b58356372b34ab40d2668c3e62f1006d5ca33726d1d3c423853b19a85508eadde7f5908496fb41448f465263bf61c1ee58b7832cb6a924537e3863a + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 6f0109e36e111684291d46123d491bc4e7b7a1934c3a20dea28cba89f1d4a03acd892f5f6a81ed3855c38647e285a150e3c9ba062e38943bef57fee6c1554c3a languageName: node linkType: hard @@ -13293,9 +13217,9 @@ __metadata: linkType: hard "cli-spinners@npm:^2.5.0": - version: 2.9.0 - resolution: "cli-spinners@npm:2.9.0" - checksum: c0d5437acc1ace7361b1c58a4fda3c92c2d8691ff3169ac658ce30faee71280b7aa706c072bcb6d0e380c232f3495f7d5ad4668c1391fe02c4d3a39d37798f44 + version: 2.9.1 + resolution: "cli-spinners@npm:2.9.1" + checksum: c9b1152bd387e5b76823bdee6f19079c4017994d352627216e5d3dab9220a8402514519ad96a0a12120b80752fead98d1e7a7a5f56ce32125f92778ef47bdd8c languageName: node linkType: hard @@ -13997,19 +13921,19 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.31.0": - version: 3.32.2 - resolution: "core-js-compat@npm:3.32.2" +"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.32.2": + version: 3.33.0 + resolution: "core-js-compat@npm:3.33.0" dependencies: - browserslist: ^4.21.10 - checksum: d2bbb95b1f46ff5fa7cb9ea6dc4e4cf99e26e4861bd296edbb3168292f0e3c694cdc6ce2b36313b513cc0eb60e967f5b14796c050e874db1e63f8d84e17d8aa9 + browserslist: ^4.22.1 + checksum: 1db27222420548c65fdb92574192aa1ab434e8e3b80a347fc9c20004e459cc146e719dee8a8c3a3c0773190834e865542d3745ada27a160937fc312a14f66d5c languageName: node linkType: hard "core-js-pure@npm:^3.23.3, core-js-pure@npm:^3.30.2": - version: 3.32.2 - resolution: "core-js-pure@npm:3.32.2" - checksum: 93ca80cd5b0b30f452ebc5ebf1249c37c8cb4cf56ed9802bfb422c002bc96685abe07e39249b0feed851a8884cddf712113ddb4f8e8e0397bfd3332b0e51225b + version: 3.33.0 + resolution: "core-js-pure@npm:3.33.0" + checksum: dbb683bf6c5d3671129e5029e0f8047a388818bb9720352c839f46ac5627b5fed763135b9a1df89452f2afee78e49639def6063e82fc6995c4e98c31f2892db5 languageName: node linkType: hard @@ -14021,9 +13945,9 @@ __metadata: linkType: hard "core-js@npm:^3.8.2": - version: 3.32.2 - resolution: "core-js@npm:3.32.2" - checksum: 22f47e0972c6bff2eecbb02ab15ae012e35c7b3344d8569c7d8be906910867a84290d95e85b06a6e5c27a44d34a426ba96ee57874e542e42337428117df9ccde + version: 3.33.0 + resolution: "core-js@npm:3.33.0" + checksum: f51192f311c2d75b94ebe4eb7210f91df2cb6de101b96da1a65f43cf52b9c5cfe1ce5ebebb86281e452d2ee949730afb72fb7ac826c655c9de3a92f793cf3b80 languageName: node linkType: hard @@ -14068,8 +13992,8 @@ __metadata: linkType: hard "cosmiconfig@npm:^8.2.0": - version: 8.3.5 - resolution: "cosmiconfig@npm:8.3.5" + version: 8.3.6 + resolution: "cosmiconfig@npm:8.3.6" dependencies: import-fresh: ^3.3.0 js-yaml: ^4.1.0 @@ -14080,7 +14004,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: ec803b30b49ba686c3a844677ed9d40f7db68e01f75a2e6ad474f2af6ec15ef17561258c9592a0df209f137edc88056c113838b1d54e784de21853920c3a1fa9 + checksum: 0382a9ed13208f8bfc22ca2f62b364855207dffdb73dc26e150ade78c3093f1cf56172df2dd460c8caf2afa91c0ed4ec8a88c62f8f9cd1cf423d26506aa8797a languageName: node linkType: hard @@ -14381,10 +14305,11 @@ __metadata: linkType: hard "danger@npm:^11.2.6": - version: 11.2.8 - resolution: "danger@npm:11.2.8" + version: 11.3.0 + resolution: "danger@npm:11.3.0" dependencies: - "@gitbeaker/node": ^21.3.0 + "@gitbeaker/core": ^35.8.1 + "@gitbeaker/node": ^35.8.1 "@octokit/rest": ^18.12.0 async-retry: 1.2.3 chalk: ^2.3.0 @@ -14431,7 +14356,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: da858724420391a4306597d7e06211a7f7e8f63a357c785563fc4c2493d65d94774a55e87fda24e279b7fed2ab973016c066fb4b0fc6beb610f01e68b9508621 + checksum: 568a6c2bdbef663c9d1fca36651939b39bf7a158867bdf955054bdc0f16533658aaf258ab9bc1c1bf517609b6eabe776e3d24a0364903a5a38bf67d8d690b252 languageName: node linkType: hard @@ -14557,7 +14482,7 @@ __metadata: languageName: node linkType: hard -"decode-uri-component@npm:^0.2.0": +"decode-uri-component@npm:^0.2.0, decode-uri-component@npm:^0.2.2": version: 0.2.2 resolution: "decode-uri-component@npm:0.2.2" checksum: 1f4fa54eb740414a816b3f6c24818fbfcabd74ac478391e9f4e2282c994127db02010ce804f3d08e38255493cfe68608b3f5c8e09fd6efc4ae46c807691f7a31 @@ -14695,6 +14620,17 @@ __metadata: languageName: node linkType: hard +"define-data-property@npm:^1.0.1": + version: 1.1.0 + resolution: "define-data-property@npm:1.1.0" + dependencies: + get-intrinsic: ^1.2.1 + gopd: ^1.0.1 + has-property-descriptors: ^1.0.0 + checksum: 312cab385c681d1fdf4085f02720a487da62c6108faaaedc51668c5f62f3425cb6370ded1d126ac6c13093451864a546074ce5c4acac4caf1d81577c10469b41 + languageName: node + linkType: hard + "define-lazy-prop@npm:^2.0.0": version: 2.0.0 resolution: "define-lazy-prop@npm:2.0.0" @@ -14702,13 +14638,14 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": - version: 1.2.0 - resolution: "define-properties@npm:1.2.0" +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" dependencies: + define-data-property: ^1.0.1 has-property-descriptors: ^1.0.0 object-keys: ^1.1.1 - checksum: 34b58cae4651936a3c8c720310ce393a3227f5123640ab5402e7d6e59bb44f8295b789cb5d74e7513682b2e60ff20586d6f52b726d964d617abffa3da76344e0 + checksum: 88a152319ffe1396ccc6ded510a3896e77efac7a1bfbaa174a7b00414a1747377e0bb525d303794a47cf30e805c2ec84e575758512c6e44a993076d29fd4e6c3 languageName: node linkType: hard @@ -14763,6 +14700,13 @@ __metadata: languageName: node linkType: hard +"delay@npm:^5.0.0": + version: 5.0.0 + resolution: "delay@npm:5.0.0" + checksum: 01cdc4cd0cd35fb622518a3df848e67e09763a38e7cdada2232b6fda9ddda72eddcf74f0e24211200fbe718434f2335f2a2633875a6c96037fefa6de42896ad7 + languageName: node + linkType: hard + "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" @@ -15295,10 +15239,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.477": - version: 1.4.490 - resolution: "electron-to-chromium@npm:1.4.490" - checksum: d205e3c9f4bf14cbaaa2be5bf3f3d498e161ec0cc6f10da7bfdd2c355e4ae1937244335fabe8b376e970d14ba2b2c415aa2a2d89ea61c000f54e6ed137853bb9 +"electron-to-chromium@npm:^1.4.535": + version: 1.4.540 + resolution: "electron-to-chromium@npm:1.4.540" + checksum: 8bacd2a06a6a78875b4f4035c97fb8155447f93d854292005f9958a5d1366597fabecc1561c642eae55815583fa3436b164c8bf8f7ca3cfe15741466b3c5e0cf languageName: node linkType: hard @@ -15749,16 +15693,16 @@ __metadata: linkType: hard "es-abstract@npm:^1.22.1": - version: 1.22.1 - resolution: "es-abstract@npm:1.22.1" + version: 1.22.2 + resolution: "es-abstract@npm:1.22.2" dependencies: array-buffer-byte-length: ^1.0.0 - arraybuffer.prototype.slice: ^1.0.1 + arraybuffer.prototype.slice: ^1.0.2 available-typed-arrays: ^1.0.5 call-bind: ^1.0.2 es-set-tostringtag: ^2.0.1 es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.5 + function.prototype.name: ^1.1.6 get-intrinsic: ^1.2.1 get-symbol-description: ^1.0.0 globalthis: ^1.0.3 @@ -15774,24 +15718,24 @@ __metadata: is-regex: ^1.1.4 is-shared-array-buffer: ^1.0.2 is-string: ^1.0.7 - is-typed-array: ^1.1.10 + is-typed-array: ^1.1.12 is-weakref: ^1.0.2 object-inspect: ^1.12.3 object-keys: ^1.1.1 object.assign: ^4.1.4 - regexp.prototype.flags: ^1.5.0 - safe-array-concat: ^1.0.0 + regexp.prototype.flags: ^1.5.1 + safe-array-concat: ^1.0.1 safe-regex-test: ^1.0.0 - string.prototype.trim: ^1.2.7 - string.prototype.trimend: ^1.0.6 - string.prototype.trimstart: ^1.0.6 + string.prototype.trim: ^1.2.8 + string.prototype.trimend: ^1.0.7 + string.prototype.trimstart: ^1.0.7 typed-array-buffer: ^1.0.0 typed-array-byte-length: ^1.0.0 typed-array-byte-offset: ^1.0.0 typed-array-length: ^1.0.4 unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.10 - checksum: 36abed2b7efa8dd337d938e50d0b97d070c0ef45b2257eec0ae8c3edc5c7e8f3e2906530afda5c0b8a4f44299391d078237fd5ea454ac4e9adb6f8343bf84980 + which-typed-array: ^1.1.11 + checksum: a491c640a01b7c18f3cc626a3d08b5c67f8d3dac70ff8b4268cda6fa0ebed80bb028ff3ee731137512e054d39e98d02575144da904fe28045019fc59e503f1f8 languageName: node linkType: hard @@ -15820,12 +15764,12 @@ __metadata: linkType: hard "es-iterator-helpers@npm:^1.0.12": - version: 1.0.14 - resolution: "es-iterator-helpers@npm:1.0.14" + version: 1.0.15 + resolution: "es-iterator-helpers@npm:1.0.15" dependencies: asynciterator.prototype: ^1.0.0 call-bind: ^1.0.2 - define-properties: ^1.2.0 + define-properties: ^1.2.1 es-abstract: ^1.22.1 es-set-tostringtag: ^2.0.1 function-bind: ^1.1.1 @@ -15835,9 +15779,9 @@ __metadata: has-proto: ^1.0.1 has-symbols: ^1.0.3 internal-slot: ^1.0.5 - iterator.prototype: ^1.1.0 - safe-array-concat: ^1.0.0 - checksum: 47d59ccbcf2fe32d9e5ac4fff65d613210851bbf14ba32726e5eb771194173b66aa233d7e4049b2cb24251545787ac1ea3242f91aa343aaaa7ce699e20d12e1c + iterator.prototype: ^1.1.2 + safe-array-concat: ^1.0.1 + checksum: b4c83f94bfe624260d5238092de3173989f76f1416b1d02c388aea3b2024174e5f5f0e864057311ac99790b57e836ca3545b6e77256b26066dac944519f5e6d6 languageName: node linkType: hard @@ -15935,11 +15879,11 @@ __metadata: linkType: hard "esbuild-wasm@npm:>=0.13.8": - version: 0.19.2 - resolution: "esbuild-wasm@npm:0.19.2" + version: 0.19.4 + resolution: "esbuild-wasm@npm:0.19.4" bin: esbuild: bin/esbuild - checksum: 2f063016adcd15777c65a00b4c6899e22826779ebf4f6bcf940ca043fa730c8ff1e8b289e6d995be068d6ee6b73f0bb475c23ae4b109db99f67dc2eefd33688b + checksum: c2d995a280dbff4d50193dd666d3603afc33f2123c3ce8fc89dbe5915dcf0252e5f4a75429e8e5e5ba8a6df2ff397f08ba314c59868511785164f2380a3ecd18 languageName: node linkType: hard @@ -16145,8 +16089,8 @@ __metadata: linkType: hard "eslint-import-resolver-typescript@npm:^3.5.2": - version: 3.6.0 - resolution: "eslint-import-resolver-typescript@npm:3.6.0" + version: 3.6.1 + resolution: "eslint-import-resolver-typescript@npm:3.6.1" dependencies: debug: ^4.3.4 enhanced-resolve: ^5.12.0 @@ -16158,7 +16102,7 @@ __metadata: peerDependencies: eslint: "*" eslint-plugin-import: "*" - checksum: 4f3b7e629e37c52804da0e4fe3eda5fdd727fd1d945fad5662bcd64a87fafa08b986efe07fb2116c81f2259ba29d6d06b99edafd7d3499cfb78ff71b6e8ca4c1 + checksum: cb1cb4389916fe78bf8c8567aae2f69243dbfe624bfe21078c56ad46fa1ebf0634fa7239dd3b2055ab5c27359e4b4c28b69b11fcb3a5df8a9e6f7add8e034d86 languageName: node linkType: hard @@ -16352,8 +16296,8 @@ __metadata: linkType: hard "eslint-plugin-storybook@npm:^0.6.6": - version: 0.6.13 - resolution: "eslint-plugin-storybook@npm:0.6.13" + version: 0.6.14 + resolution: "eslint-plugin-storybook@npm:0.6.14" dependencies: "@storybook/csf": ^0.0.1 "@typescript-eslint/utils": ^5.45.0 @@ -16361,7 +16305,7 @@ __metadata: ts-dedent: ^2.2.0 peerDependencies: eslint: ">=6" - checksum: 3fa79d8cf765d108f4be697246183d94de448301b56767e292c36ec1a9c12ae4f6b64f32c5e5f84b50e214f5bf2f0385d40f5543908f561319e4c8bb8bcdfb99 + checksum: fa198d9f0328ce0b40af479485d08fe74fc409a5ed4769b9531785e9f8e57553034a63f5bfb9cfa1c901e74c0996566c4bbe312d604e8d3e452f1d2c9d0306b2 languageName: node linkType: hard @@ -16400,13 +16344,13 @@ __metadata: linkType: hard "eslint@npm:^8.28.0": - version: 8.49.0 - resolution: "eslint@npm:8.49.0" + version: 8.50.0 + resolution: "eslint@npm:8.50.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 "@eslint-community/regexpp": ^4.6.1 "@eslint/eslintrc": ^2.1.2 - "@eslint/js": 8.49.0 + "@eslint/js": 8.50.0 "@humanwhocodes/config-array": ^0.11.11 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 @@ -16442,7 +16386,7 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 8d6985a8d60379ea714ad35d7a3d8762ac8c37b986c615e9a7c245794faddf68f61f997ba6f5f903d440e92065a56a4f7832a45adc2d4fc6e977026782f25835 + checksum: 91629528cb240bc61b25480574d35cd54ed444cb61a70fa76f7d5ab26af2b637b94bf8fba94403c9052c1baa944a169b6ab9cc8070496e925f7eeef730ff9038 languageName: node linkType: hard @@ -17090,15 +17034,13 @@ __metadata: languageName: node linkType: hard -"file-system-cache@npm:^2.4.4": - version: 2.4.4 - resolution: "file-system-cache@npm:2.4.4" +"file-system-cache@npm:2.3.0": + version: 2.3.0 + resolution: "file-system-cache@npm:2.3.0" dependencies: - "@types/fs-extra": 11.0.1 - "@types/ramda": 0.29.3 fs-extra: 11.1.1 ramda: 0.29.0 - checksum: 274bd9c2f8f81d0c3b2cc0d077807c969b48cac4857ae77f87b4b480548252aa42d3a43b3e9d4bb54df567eb70f0c384782514fcea74b78765543e9496e27e2d + checksum: 43de19f0db32e6546bb7abeecb1d6ea83c1eca23b38905c9415a29f6219cc9d6d87b0c1a6aca92c46a0f1bc276241a339f2f68b8aa0ca5c2eb64b6e1e3e4da01 languageName: node linkType: hard @@ -17119,9 +17061,9 @@ __metadata: linkType: hard "filesize@npm:^10.0.12": - version: 10.0.12 - resolution: "filesize@npm:10.0.12" - checksum: bbf73a99de198be75c26cec5f1082cde4e9e25c4a63dd4cb315063da9eb23ba4d3868b6010f6d485594c6b9823435c32d9c8a90470083197e25b093599470897 + version: 10.1.0 + resolution: "filesize@npm:10.1.0" + checksum: 4439d2d81ecd98503367cc6d2083ea94de0859a35953325d94f95c4a18302a333a77b80b5421bc9dc663cf9fb2fc1193f15963da4fd0dab3d49168902588a790 languageName: node linkType: hard @@ -17332,16 +17274,16 @@ __metadata: linkType: hard "flatted@npm:^3.2.7": - version: 3.2.7 - resolution: "flatted@npm:3.2.7" - checksum: 207a87c7abfc1ea6928ea16bac84f9eaa6d44d365620ece419e5c41cf44a5e9902b4c1f59c9605771b10e4565a0cb46e99d78e0464e8aabb42c97de880642257 + version: 3.2.9 + resolution: "flatted@npm:3.2.9" + checksum: 5c91c5a0a21bbc0b07b272231e5b4efe6b822bcb4ad317caf6bb06984be4042a9e9045026307da0fdb4583f1f545e317a67ef1231a59e71f7fced3cc429cfc53 languageName: node linkType: hard "flow-parser@npm:0.*": - version: 0.216.1 - resolution: "flow-parser@npm:0.216.1" - checksum: 7e840be6228aa83bbfcca13471d2806bf90d9e0bb50c484d3b85e380dc42ccd94c39e0504aee51fab9515ef051d1171feb57ef37bea0a5f8b4c2573ecf37c80c + version: 0.217.2 + resolution: "flow-parser@npm:0.217.2" + checksum: d61127283db052fddf8275b070eea76dda5d2926aea3d8659250e168d69478f4ebdbc2bede83aa05c29f464c420ce1d701691278d3041af0492bfc16193277b5 languageName: node linkType: hard @@ -17362,12 +17304,12 @@ __metadata: linkType: hard "follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.14.9, follow-redirects@npm:^1.15.0": - version: 1.15.2 - resolution: "follow-redirects@npm:1.15.2" + version: 1.15.3 + resolution: "follow-redirects@npm:1.15.3" peerDependenciesMeta: debug: optional: true - checksum: da5932b70e63944d38eecaa16954bac4347036f08303c913d166eda74809d8797d38386e3a0eb1d2fe37d2aaff2764cce8e9dbd99459d860cf2cdfa237923b5f + checksum: 915a2cf22e667bdf47b1a43cc6b7dce14d95039e9bbf9a24d0e739abfbdfa00077dd43c86d4a7a19efefcc7a99af144920a175eedc3888d268af5df67c272ee5 languageName: node linkType: hard @@ -17469,9 +17411,10 @@ __metadata: linkType: hard "formik@npm:^2.2.9": - version: 2.4.4 - resolution: "formik@npm:2.4.4" + version: 2.4.5 + resolution: "formik@npm:2.4.5" dependencies: + "@types/hoist-non-react-statics": ^3.3.1 deepmerge: ^2.1.1 hoist-non-react-statics: ^3.3.0 lodash: ^4.17.21 @@ -17481,7 +17424,7 @@ __metadata: tslib: ^2.0.0 peerDependencies: react: ">=16.8.0" - checksum: cda0fe0d11cb323467eecf445bc9218cb267dfd74710ca8d264e7caf7619e4fd8aafd22b6a494f8b41e73d0db21938619f50bd9ea1295e92448745b5be54e836 + checksum: 61f0d9eb092edd122f0d2988ca3d0a01073bde38af977e96ba9818382dc1fefd4cdb016cd61f08443055a748bbbbe2a95347d4528b81cc5c1c6f75865fc84927 languageName: node linkType: hard @@ -17628,9 +17571,9 @@ __metadata: linkType: hard "fs-monkey@npm:^1.0.4": - version: 1.0.4 - resolution: "fs-monkey@npm:1.0.4" - checksum: eeb2457ec50f7202c44273de2a42b50868c8e6b2ab4825d517947143d4e727c028e24f6d0f46e6f3e7a149a1c9e7d8b3ca28243c3b10366d280a08016483e829 + version: 1.0.5 + resolution: "fs-monkey@npm:1.0.5" + checksum: 815025e75549fb1ac6c403413b82fd631eded862ae27694a515c0f666069e95874ab34e79c33d1b3b8c87d1e54350d5e4262090d0aa5bd7130143cbc627537e4 languageName: node linkType: hard @@ -17724,7 +17667,7 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.2, function.prototype.name@npm:^1.1.5": +"function.prototype.name@npm:^1.1.2, function.prototype.name@npm:^1.1.5, function.prototype.name@npm:^1.1.6": version: 1.1.6 resolution: "function.prototype.name@npm:1.1.6" dependencies: @@ -17956,11 +17899,11 @@ __metadata: linkType: hard "get-tsconfig@npm:^4.5.0, get-tsconfig@npm:^4.6.2": - version: 4.7.0 - resolution: "get-tsconfig@npm:4.7.0" + version: 4.7.2 + resolution: "get-tsconfig@npm:4.7.2" dependencies: resolve-pkg-maps: ^1.0.0 - checksum: 5844d18a705535808cf535010d9443b47b462c6e91ed00d94500602f220ecb8e518325d5b1f9e0c515c67025819c3df193194144a456e1d8f1cd70b5d48b52aa + checksum: 169b2beababfbb16e8a0ae813ee59d3e14d4960231c816615161ab5be68ec07a394dce59695742ac84295e2efab8d9e89bcf3abaf5e253dfbec3496e01bb9a65 languageName: node linkType: hard @@ -18141,17 +18084,17 @@ __metadata: linkType: hard "glob@npm:^10.0.0, glob@npm:^10.2.2": - version: 10.3.4 - resolution: "glob@npm:10.3.4" + version: 10.3.10 + resolution: "glob@npm:10.3.10" dependencies: foreground-child: ^3.1.0 - jackspeak: ^2.0.3 + jackspeak: ^2.3.5 minimatch: ^9.0.1 minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 path-scurry: ^1.10.1 bin: - glob: dist/cjs/src/bin.js - checksum: fe075f8109749cb0c264fd6eee8bf0cc8bb23a02305619b7a88bf1f79766218cc3ef66a3e8f3cd2e826006f047a3a8833c1694f167e978a6e37c34a8c053e48e + glob: dist/esm/bin.mjs + checksum: 13d8a1feb7eac7945f8c8480e11cd4a44b24d26503d99a8d8ac8d5aefbf3e9802a2b6087318a829fad04cb4e829f25c5f4f1110c68966c498720dd261c7e344d languageName: node linkType: hard @@ -18215,11 +18158,11 @@ __metadata: linkType: hard "globals@npm:^13.19.0": - version: 13.21.0 - resolution: "globals@npm:13.21.0" + version: 13.22.0 + resolution: "globals@npm:13.22.0" dependencies: type-fest: ^0.20.2 - checksum: 90573e825401adbe0ef25db1b52e8f74afe4a1087049edd972f1ace77b391753fc3fe51eba9b6962c62e2282645f0a27ce20251662cdc247631c4861f32d56eb + checksum: e7fda8fe048a3b4fdfb95602b7dcd87d719f4b3797a6ba7f43e50fe148cfe20edfd3abeb16cc301caf679ca0f3e059b561e2d5060f2133f20f52c85bb16ac394 languageName: node linkType: hard @@ -18333,7 +18276,7 @@ __metadata: languageName: node linkType: hard -"got@npm:^11.1.4": +"got@npm:^11.8.3": version: 11.8.6 resolution: "got@npm:11.8.6" dependencies: @@ -18573,11 +18516,9 @@ __metadata: linkType: hard "has@npm:^1.0.3": - version: 1.0.3 - resolution: "has@npm:1.0.3" - dependencies: - function-bind: ^1.1.1 - checksum: e1da0d2bd109f116b632f27782cf23182b42f14972ca9540e4c5aa7e52647407a0a4a76937334fddcb56befe94a3494825ec22b19b51f5e5507c3153fd1a5e1b + version: 1.0.4 + resolution: "has@npm:1.0.4" + checksum: 82c1220573dc1f0a014a5d6189ae52a1f820f99dfdc00323c3a725b5002dcb7f04e44f460fea7af068474b2dd7c88cbe1846925c84017be9e31e1708936d305b languageName: node linkType: hard @@ -20073,7 +20014,7 @@ __metadata: languageName: node linkType: hard -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.3, is-typed-array@npm:^1.1.9": +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.12, is-typed-array@npm:^1.1.3, is-typed-array@npm:^1.1.9": version: 1.1.12 resolution: "is-typed-array@npm:1.1.12" dependencies: @@ -20210,15 +20151,15 @@ __metadata: linkType: hard "istanbul-lib-instrument@npm:^6.0.0": - version: 6.0.0 - resolution: "istanbul-lib-instrument@npm:6.0.0" + version: 6.0.1 + resolution: "istanbul-lib-instrument@npm:6.0.1" dependencies: "@babel/core": ^7.12.3 "@babel/parser": ^7.14.7 "@istanbuljs/schema": ^0.1.2 istanbul-lib-coverage: ^3.2.0 semver: ^7.5.4 - checksum: ee86777f3692f95c3ae35c5cbc9aa979b551241da2de1284f75c507a2bdef948cc56ca90214c3bb47b5dc2ebe748610eb4f7c4d39b304f24a933bcd0867a05e8 + checksum: 313d61aca3f82a04ad9377841d05061d603ea3d4a4dd281fdda2479ec4ddbc86dc1792c73651f21c93480570d1ecadc5f63011e2df86f30ee662b62c0c00e3d8 languageName: node linkType: hard @@ -20265,28 +20206,29 @@ __metadata: languageName: node linkType: hard -"iterator.prototype@npm:^1.1.0": - version: 1.1.1 - resolution: "iterator.prototype@npm:1.1.1" +"iterator.prototype@npm:^1.1.2": + version: 1.1.2 + resolution: "iterator.prototype@npm:1.1.2" dependencies: - define-properties: ^1.2.0 + define-properties: ^1.2.1 get-intrinsic: ^1.2.1 has-symbols: ^1.0.3 - reflect.getprototypeof: ^1.0.3 - checksum: c11d53e4b5723c3c77272cb87f730a71e1a9aa0c5b1ac6f325113a988cfe0bb2da414e84044a2fc364968515095330efc8d49694939b01f283faa4541b997d57 + reflect.getprototypeof: ^1.0.4 + set-function-name: ^2.0.1 + checksum: a32151326095e916f306990d909f6bbf23e3221999a18ba686419535dcd1749b10ded505e89334b77dc4c7a58a8508978f0eb16c2c8573e6d412eb7eb894ea79 languageName: node linkType: hard -"jackspeak@npm:^2.0.3": - version: 2.3.3 - resolution: "jackspeak@npm:2.3.3" +"jackspeak@npm:^2.3.5": + version: 2.3.6 + resolution: "jackspeak@npm:2.3.6" dependencies: "@isaacs/cliui": ^8.0.2 "@pkgjs/parseargs": ^0.11.0 dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: 787b0617dcc534ef793ba685b92347b1b3d634d888b2833a57b140e97eb1f628ec3e460ba1a68fd99bd148004442625db7519be186b38ff51f4951e7c99b52d7 + checksum: f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111 languageName: node linkType: hard @@ -20657,8 +20599,8 @@ __metadata: linkType: hard "jest-preset-angular@npm:^13.0.1": - version: 13.1.1 - resolution: "jest-preset-angular@npm:13.1.1" + version: 13.1.2 + resolution: "jest-preset-angular@npm:13.1.2" dependencies: bs-logger: ^0.2.6 esbuild: ">=0.13.8" @@ -20677,7 +20619,7 @@ __metadata: dependenciesMeta: esbuild: optional: true - checksum: aa2952b32328e5994520eaabd5979ca1fe1ee37ec8c96b1bab5b6f6e56c578637b9af125afe209087c4e1a244cd7022d332df3b0b842014657804474a381b75a + checksum: be7efa5cca7c63d8c6df3d835eef4eff730e6f2f783cb1517e9c0060a9fc9d3d57aa2892d0704dab7226ecc80956717c98af8e6d0b8a2415dee07e88c72e34bf languageName: node linkType: hard @@ -20957,15 +20899,15 @@ __metadata: linkType: hard "joi@npm:^17.7.0": - version: 17.10.1 - resolution: "joi@npm:17.10.1" + version: 17.10.2 + resolution: "joi@npm:17.10.2" dependencies: "@hapi/hoek": ^9.0.0 "@hapi/topo": ^5.0.0 "@sideway/address": ^4.1.3 "@sideway/formula": ^3.0.1 "@sideway/pinpoint": ^2.0.0 - checksum: 1e838808412691de662d64785bf819993e13181e4ae610deef741a4f9a9f5a443ec3c60a7f2bb67972dd27aa75b46da83e3e1e6f8b814a01bd2de4022f6131a7 + checksum: 5999a68f38a24de0b98850e137bbf4134e6dd8de29faa5893d7836f3e3aeb76ed5b2dd4daf836b87d2681aa9dfb6a5531c586d4d361dca9721d9ad0567be6b48 languageName: node linkType: hard @@ -22327,12 +22269,12 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.30.0, magic-string@npm:^0.30.2": - version: 0.30.3 - resolution: "magic-string@npm:0.30.3" +"magic-string@npm:^0.30.0, magic-string@npm:^0.30.3": + version: 0.30.4 + resolution: "magic-string@npm:0.30.4" dependencies: "@jridgewell/sourcemap-codec": ^1.4.15 - checksum: f69f0626192131a8daf0d638a8f31fdd85fd26428dff22401ef251f3913a5c74a710b1edff91ef6203a20d2b1edcc8e55f9320ba84e9b224a3413bdd47f5339e + checksum: 076c0402334a8f7c69d83175b4ff10c83b50fd2c6d884a758a563ad9bea312db3b5c7b16cf717229c11505a1deb52d6225503b3b638e1879101d65d08f03c467 languageName: node linkType: hard @@ -23424,6 +23366,15 @@ __metadata: languageName: node linkType: hard +"mime@npm:^3.0.0": + version: 3.0.0 + resolution: "mime@npm:3.0.0" + bin: + mime: cli.js + checksum: 402e792a8df1b2cc41cb77f0dcc46472b7944b7ec29cb5bbcd398624b6b97096728f1239766d3fdeb20551dd8d94738344c195a6ea10c4f906eb0356323b0531 + languageName: node + linkType: hard + "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" @@ -23656,9 +23607,9 @@ __metadata: linkType: hard "minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.3": - version: 7.0.3 - resolution: "minipass@npm:7.0.3" - checksum: c85426bce6310368218aad1f20b8f242180b6c2058209c78840959d6fff8a4738076a3224c3a6b651080f95684d559be1bdb084939bc40011c653ec4552cf06e + version: 7.0.4 + resolution: "minipass@npm:7.0.4" + checksum: 6c7370a6dfd257bf18222da581ba89a5eaedca10e158781232a8b5542a90547540b4b9b7e7f490e4cda43acfbd12e086f0453728ecf8c19e0ef6921bc5958ac5 languageName: node linkType: hard @@ -23842,7 +23793,7 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.4, nanoid@npm:^3.3.6": +"nanoid@npm:^3.3.6": version: 3.3.6 resolution: "nanoid@npm:3.3.6" bin: @@ -23938,26 +23889,25 @@ __metadata: linkType: hard "next@npm:^13.4.8": - version: 13.4.19 - resolution: "next@npm:13.4.19" - dependencies: - "@next/env": 13.4.19 - "@next/swc-darwin-arm64": 13.4.19 - "@next/swc-darwin-x64": 13.4.19 - "@next/swc-linux-arm64-gnu": 13.4.19 - "@next/swc-linux-arm64-musl": 13.4.19 - "@next/swc-linux-x64-gnu": 13.4.19 - "@next/swc-linux-x64-musl": 13.4.19 - "@next/swc-win32-arm64-msvc": 13.4.19 - "@next/swc-win32-ia32-msvc": 13.4.19 - "@next/swc-win32-x64-msvc": 13.4.19 - "@swc/helpers": 0.5.1 + version: 13.5.4 + resolution: "next@npm:13.5.4" + dependencies: + "@next/env": 13.5.4 + "@next/swc-darwin-arm64": 13.5.4 + "@next/swc-darwin-x64": 13.5.4 + "@next/swc-linux-arm64-gnu": 13.5.4 + "@next/swc-linux-arm64-musl": 13.5.4 + "@next/swc-linux-x64-gnu": 13.5.4 + "@next/swc-linux-x64-musl": 13.5.4 + "@next/swc-win32-arm64-msvc": 13.5.4 + "@next/swc-win32-ia32-msvc": 13.5.4 + "@next/swc-win32-x64-msvc": 13.5.4 + "@swc/helpers": 0.5.2 busboy: 1.6.0 caniuse-lite: ^1.0.30001406 - postcss: 8.4.14 + postcss: 8.4.31 styled-jsx: 5.1.1 watchpack: 2.4.0 - zod: 3.21.4 peerDependencies: "@opentelemetry/api": ^1.1.0 react: ^18.2.0 @@ -23989,7 +23939,7 @@ __metadata: optional: true bin: next: dist/bin/next - checksum: 557fd15a52220f003ec88a79f51de41c5bb9cda5294944985f31ce45e75f98dd3caf902896d8419d96cc81596976671e953391b1eb3707757d261e362a242310 + checksum: 0b0bc7fa42844859a0444a79122a48b5e65116c30ce077a3edaaecd7cee1d7925214a659391ae6ecf8dc612869a7a646ab3a1a8aa12d074ff17e3f18c53a2621 languageName: node linkType: hard @@ -24575,21 +24525,21 @@ __metadata: languageName: node linkType: hard -"nx@npm:15.9.6, nx@npm:>=15.5.2 < 16": - version: 15.9.6 - resolution: "nx@npm:15.9.6" +"nx@npm:15.9.7, nx@npm:>=15.5.2 < 16": + version: 15.9.7 + resolution: "nx@npm:15.9.7" dependencies: - "@nrwl/cli": 15.9.6 - "@nrwl/nx-darwin-arm64": 15.9.6 - "@nrwl/nx-darwin-x64": 15.9.6 - "@nrwl/nx-linux-arm-gnueabihf": 15.9.6 - "@nrwl/nx-linux-arm64-gnu": 15.9.6 - "@nrwl/nx-linux-arm64-musl": 15.9.6 - "@nrwl/nx-linux-x64-gnu": 15.9.6 - "@nrwl/nx-linux-x64-musl": 15.9.6 - "@nrwl/nx-win32-arm64-msvc": 15.9.6 - "@nrwl/nx-win32-x64-msvc": 15.9.6 - "@nrwl/tao": 15.9.6 + "@nrwl/cli": 15.9.7 + "@nrwl/nx-darwin-arm64": 15.9.7 + "@nrwl/nx-darwin-x64": 15.9.7 + "@nrwl/nx-linux-arm-gnueabihf": 15.9.7 + "@nrwl/nx-linux-arm64-gnu": 15.9.7 + "@nrwl/nx-linux-arm64-musl": 15.9.7 + "@nrwl/nx-linux-x64-gnu": 15.9.7 + "@nrwl/nx-linux-x64-musl": 15.9.7 + "@nrwl/nx-win32-arm64-msvc": 15.9.7 + "@nrwl/nx-win32-x64-msvc": 15.9.7 + "@nrwl/tao": 15.9.7 "@parcel/watcher": 2.0.4 "@yarnpkg/lockfile": ^1.1.0 "@yarnpkg/parsers": 3.0.0-rc.46 @@ -24613,7 +24563,7 @@ __metadata: minimatch: 3.0.5 npm-run-path: ^4.0.1 open: ^8.4.0 - semver: 7.3.4 + semver: 7.5.4 string-width: ^4.2.3 strong-log-transformer: ^2.1.0 tar-stream: ~2.2.0 @@ -24652,7 +24602,7 @@ __metadata: optional: true bin: nx: bin/nx.js - checksum: 045ea59d32310f356569f001834d8f015e16929df4101fad643e7a68f5dd05a4dc865c4d86a29469ab06c7e62740c8a76189486f03c26d8030b45aa488c2bafe + checksum: 39b3c7e5efef3a10d0249db321a78fc9bb34806ae3d21ee211df29321367259841556989cbb4391b74f77d78f2629f90e65387b9414030fd921a9a03f8ccfbdc languageName: node linkType: hard @@ -25026,19 +24976,19 @@ __metadata: linkType: hard "overlayscrollbars-react@npm:^0.5.0": - version: 0.5.1 - resolution: "overlayscrollbars-react@npm:0.5.1" + version: 0.5.2 + resolution: "overlayscrollbars-react@npm:0.5.2" peerDependencies: overlayscrollbars: ^2.0.0 react: ">=16.8.0" - checksum: 3a8717d19ab54f6762a92c07ffa1f44d1b7ae72a8b60eaf88877efa9289409171eff840b0374d94935ee586f7c92e4f15a134ddb72d4b7a143defb69039fa6ca + checksum: 56e8df609f589cd38c97408d743ebd9112047c60da340c8f121b10418beabd1b5411396f4c1fd27b46dd0e663e7675ae72df1c531feb1e3f6bf1342dbafa21ef languageName: node linkType: hard "overlayscrollbars@npm:^2.2.0": - version: 2.2.1 - resolution: "overlayscrollbars@npm:2.2.1" - checksum: 718dd563ee17a8c92a54f0b67989806edadd5b999e36d2ab322e7813b369d1cf0198d7267ca42ca9e879023f0658825e2b050d2845e751d876285d1d3549cb5e + version: 2.3.2 + resolution: "overlayscrollbars@npm:2.3.2" + checksum: 6ee3c2d8ffafa8ec090b5f650edb783d83880f7f863d8b57791583a7496e9d1a9a4894cb80bfab75514af71d9ee9d0a15b17ba6006b1e5abc026d349f6535041 languageName: node linkType: hard @@ -26114,25 +26064,25 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.14": - version: 8.4.14 - resolution: "postcss@npm:8.4.14" +"postcss@npm:8.4.27": + version: 8.4.27 + resolution: "postcss@npm:8.4.27" dependencies: - nanoid: ^3.3.4 + nanoid: ^3.3.6 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: 2a4cfa28e2f1bfd358313501f7771bd596e494487c7b735c492e2f8b1faf493d24fcb43e2e6ad825863fc65a77abb949ca8f228602ae46a022f02dc812c4ac8b + checksum: 41a0476e05cb97514ff8d75e4ff9fdcf778f22b2e0d25b7028f219cd408e01d3c4f50459d4a1cd9a430d8ef08202c881374a4fa4ea6009f4a135a07315d606e5 languageName: node linkType: hard -"postcss@npm:8.4.27": - version: 8.4.27 - resolution: "postcss@npm:8.4.27" +"postcss@npm:8.4.31, postcss@npm:^8.1.10, postcss@npm:^8.2.14, postcss@npm:^8.4.14, postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.26, postcss@npm:^8.4.27": + version: 8.4.31 + resolution: "postcss@npm:8.4.31" dependencies: nanoid: ^3.3.6 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: 41a0476e05cb97514ff8d75e4ff9fdcf778f22b2e0d25b7028f219cd408e01d3c4f50459d4a1cd9a430d8ef08202c881374a4fa4ea6009f4a135a07315d606e5 + checksum: 748b82e6e5fc34034dcf2ae88ea3d11fd09f69b6c50ecdd3b4a875cfc7cdca435c958b211e2cb52355422ab6fccb7d8f2f2923161d7a1b281029e4a913d59acf languageName: node linkType: hard @@ -26146,17 +26096,6 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.1.10, postcss@npm:^8.2.14, postcss@npm:^8.4.14, postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.26, postcss@npm:^8.4.27": - version: 8.4.29 - resolution: "postcss@npm:8.4.29" - dependencies: - nanoid: ^3.3.6 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: b50b7ad4ac6c9ba029eda4381863570b7aed2672ffae2566ef109e556bae01823a51180409877ff2cce1fe186025751c7191c301eafc07b0d90c630ab5e0365c - languageName: node - linkType: hard - "preact-render-to-string@npm:^5.1.19": version: 5.2.6 resolution: "preact-render-to-string@npm:5.2.6" @@ -26169,9 +26108,9 @@ __metadata: linkType: hard "preact@npm:^10.5.13": - version: 10.17.1 - resolution: "preact@npm:10.17.1" - checksum: 6a264832afacb2e5c6ffd3bdbbb85cfbb1c5f8e33c616885cdbd8d07474819b6740c834dc3a749f6986366a57cdc33feba10680b2a65dc51d5e40a9c68c7b641 + version: 10.18.1 + resolution: "preact@npm:10.18.1" + checksum: b157c46d5dbece48cf0f31b0e24d27c989ea019e77730427b4c7549953da7de015b34f13f93d0034966f033738ec582829da918c28d084bbb31d59f320f56aa0 languageName: node linkType: hard @@ -26753,9 +26692,9 @@ __metadata: linkType: hard "pure-rand@npm:^6.0.0": - version: 6.0.3 - resolution: "pure-rand@npm:6.0.3" - checksum: f8bf59c29ef7fa6302e462cae3aa47932fb364e1bf8f095667b542d77c6fa26e52068eefa5c39b2e715a6c92d41fd8dd321bf81c07077f45e9373fc33f80e0ed + version: 6.0.4 + resolution: "pure-rand@npm:6.0.4" + checksum: 0fe7b12f25b10ea5b804598a6f37e4bcf645d2be6d44fe963741f014bf0095bdb6ff525106d6da6e76addc8142358fd380f1a9b8c62ea4d5516bf26a96a37c95 languageName: node linkType: hard @@ -26775,7 +26714,7 @@ __metadata: languageName: node linkType: hard -"qs@npm:^6.10.0, qs@npm:^6.11.2, qs@npm:^6.4.0": +"qs@npm:^6.10.0, qs@npm:^6.10.1, qs@npm:^6.11.2, qs@npm:^6.4.0": version: 6.11.2 resolution: "qs@npm:6.11.2" dependencies: @@ -26784,15 +26723,15 @@ __metadata: languageName: node linkType: hard -"query-string@npm:^6.12.1": - version: 6.14.1 - resolution: "query-string@npm:6.14.1" +"query-string@npm:^7.0.0": + version: 7.1.3 + resolution: "query-string@npm:7.1.3" dependencies: - decode-uri-component: ^0.2.0 + decode-uri-component: ^0.2.2 filter-obj: ^1.1.0 split-on-first: ^1.0.0 strict-uri-encode: ^2.0.0 - checksum: 900e0fa788000e9dc5f929b6f4141742dcf281f02d3bab9714bc83bea65fab3de75169ea8d61f19cda996bc0dcec72e156efe3c5614c6bce65dcf234ac955b14 + checksum: a896c08e9e0d4f8ffd89a572d11f668c8d0f7df9c27c6f49b92ab31366d3ba0e9c331b9a620ee747893436cd1f2f821a6327e2bc9776bde2402ac6c270b801b2 languageName: node linkType: hard @@ -26969,20 +26908,20 @@ __metadata: linkType: hard "react-docgen@npm:^6.0.2": - version: 6.0.2 - resolution: "react-docgen@npm:6.0.2" + version: 6.0.4 + resolution: "react-docgen@npm:6.0.4" dependencies: "@babel/core": ^7.18.9 "@babel/traverse": ^7.18.9 "@babel/types": ^7.18.9 "@types/babel__core": ^7.18.0 "@types/babel__traverse": ^7.18.0 - "@types/doctrine": ^0.0.5 + "@types/doctrine": ^0.0.6 "@types/resolve": ^1.20.2 doctrine: ^3.0.0 resolve: ^1.22.1 strip-indent: ^4.0.0 - checksum: 040f9b460982d6b4690ed5381b6181c58f6a2cd9cd6d70cfc449663527eaf93908cc6f7f06b018d9bc345b65d0cb87cb3d05541403556f20c1feab28342b0b4c + checksum: 6e372de705b0ce576c8a46c8aedaea3f584441b18d68c02128f14e20657597fe088c80bb67374d5057001f71505924e07d6e366ec8d768e2456d47395bd32066 languageName: node linkType: hard @@ -27001,15 +26940,15 @@ __metadata: linkType: hard "react-draggable@npm:^4.4.3": - version: 4.4.5 - resolution: "react-draggable@npm:4.4.5" + version: 4.4.6 + resolution: "react-draggable@npm:4.4.6" dependencies: clsx: ^1.1.1 prop-types: ^15.8.1 peerDependencies: react: ">= 16.3.0" react-dom: ">= 16.3.0" - checksum: d950e25b41092ffd689e9882c287f7f49dbd8eb7e8a220af6e08c0dc06f1ae778871b0f414e30bd2891a96c6be1f673c3a698c0e642903542ff5ab5b0cbaf805 + checksum: 1e8cf47414a8554caa68447e5f27749bc40e1eabb4806e2dadcb39ab081d263f517d6aaec5231677e6b425603037c7e3386d1549898f9ffcc98a86cabafb2b9a languageName: node linkType: hard @@ -27622,7 +27561,7 @@ __metadata: languageName: node linkType: hard -"reflect.getprototypeof@npm:^1.0.3": +"reflect.getprototypeof@npm:^1.0.4": version: 1.0.4 resolution: "reflect.getprototypeof@npm:1.0.4" dependencies: @@ -27655,11 +27594,11 @@ __metadata: linkType: hard "regenerate-unicode-properties@npm:^10.1.0": - version: 10.1.0 - resolution: "regenerate-unicode-properties@npm:10.1.0" + version: 10.1.1 + resolution: "regenerate-unicode-properties@npm:10.1.1" dependencies: regenerate: ^1.4.2 - checksum: 17818ea6f67c5a4884b9e18842edc4b3838a12f62e24f843e80fbb6d8cb649274b5b86d98bb02075074e02021850e597a92ff6b58bbe5caba4bf5fd8e4e38b56 + checksum: 89adb5ee5ba081380c78f9057c02e156a8181969f6fcca72451efc45612e0c3df767b4333f8d8479c274d9c6fe52ec4854f0d8a22ef95dccbe87da8e5f2ac77d languageName: node linkType: hard @@ -27717,14 +27656,14 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.2.0, regexp.prototype.flags@npm:^1.5.0": - version: 1.5.0 - resolution: "regexp.prototype.flags@npm:1.5.0" +"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: call-bind: ^1.0.2 define-properties: ^1.2.0 - functions-have-names: ^1.2.3 - checksum: 312b7966c5cd2e6837da4073e0e6450191e3c6e8f07276cbed35e170ea5606f91487b435eb3290593f8aed39b1191c44f5340e6e5392650feaf2b34a98378464 + set-function-name: ^2.0.0 + checksum: 1de7d214c0a726c7c874a7023e47b0e27b9f7fdb64175bfe1861189de1704aaeca05c3d26c35aa375432289b99946f3cf86651a92a8f7601b90d8c226a23bcd8 languageName: node linkType: hard @@ -28292,15 +28231,15 @@ __metadata: linkType: hard "resolve@npm:^1.10.0, resolve@npm:^1.12.0, resolve@npm:^1.13.1, resolve@npm:^1.14.2, resolve@npm:^1.15.1, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4, resolve@npm:^1.3.2, resolve@npm:^1.4.0": - version: 1.22.4 - resolution: "resolve@npm:1.22.4" + version: 1.22.6 + resolution: "resolve@npm:1.22.6" dependencies: is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: b1adb7885a05e31fc2be19e85e338b8d48d9e442b568d91e9c925990ed1c3bff66683ccea03b9e9893b857ec25dee0f7951a0d0630be49e4e1f5c1150ddc35dc + checksum: 967f2eb67c77d1be7ff15676a7dbac9334090cfbf8b967305da5f4bd22fc7d12e7045223dc820bcc783031815b60b7f42f2a495165c320ffb4c7bb92eb2eb2d7 languageName: node linkType: hard @@ -28331,15 +28270,15 @@ __metadata: linkType: hard "resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.12.0#~builtin, resolve@patch:resolve@^1.13.1#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.15.1#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.3.2#~builtin, resolve@patch:resolve@^1.4.0#~builtin": - version: 1.22.4 - resolution: "resolve@patch:resolve@npm%3A1.22.4#~builtin::version=1.22.4&hash=c3c19d" + version: 1.22.6 + resolution: "resolve@patch:resolve@npm%3A1.22.6#~builtin::version=1.22.6&hash=c3c19d" dependencies: is-core-module: ^2.13.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 60ca179599acf8b1bb17b850280a7081781b457d235d48197dc893b82d75741f191c5fe2d93e5729292234d0b0d88e9add273df4b9e04755eeed4fd7d23f1c79 + checksum: acedc45a638b3635730669bb65e87bb61f5bf9b4e81982aba9ece0049ff792472a6fbb0c22cc59073cdbf17a0926c1d3d77ba86c88c60e15cc46f929278210cb languageName: node linkType: hard @@ -28485,8 +28424,8 @@ __metadata: linkType: hard "rollup@npm:^3.20.1, rollup@npm:^3.25.2, rollup@npm:^3.27.1": - version: 3.29.1 - resolution: "rollup@npm:3.29.1" + version: 3.29.4 + resolution: "rollup@npm:3.29.4" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -28494,7 +28433,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 9a04803aa55b844d95458b48734ec4b7716e3cefdb2c08a4ccd71f55b83a9afb970e3c667d114fef08ae640e67f8d1928cf668ba8c30fe3df77a810d50e1b077 + checksum: 65eddf84bf389ea8e4d4c1614b1c6a298d08f8ae785c0c087e723a879190c8aaddbab4aa3b8a0524551b9036750c9f8bfea27b377798accfd2ba5084ceff5aaa languageName: node linkType: hard @@ -28572,7 +28511,7 @@ __metadata: languageName: node linkType: hard -"safe-array-concat@npm:^1.0.0": +"safe-array-concat@npm:^1.0.1": version: 1.0.1 resolution: "safe-array-concat@npm:1.0.1" dependencies: @@ -28707,9 +28646,9 @@ __metadata: linkType: hard "sax@npm:^1.2.4": - version: 1.2.4 - resolution: "sax@npm:1.2.4" - checksum: 6e9b05ff443ee5e5096ce92d31c0740a20d33002fad714ebcb8fc7a664d9ee159103ebe8f7aef0a1f7c5ecacdd01f177f510dff95611c589399baf76437d3fe3 + version: 1.3.0 + resolution: "sax@npm:1.3.0" + checksum: 599dbe0ba9d8bd55e92d920239b21d101823a6cedff71e542589303fa0fa8f3ece6cf608baca0c51be846a2e88365fac94a9101a9c341d94b98e30c4deea5bea languageName: node linkType: hard @@ -28926,6 +28865,17 @@ __metadata: languageName: node linkType: hard +"set-function-name@npm:^2.0.0, set-function-name@npm:^2.0.1": + version: 2.0.1 + resolution: "set-function-name@npm:2.0.1" + dependencies: + define-data-property: ^1.0.1 + functions-have-names: ^1.2.3 + has-property-descriptors: ^1.0.0 + checksum: 6be7d3e15be47f4db8a5a563a35c60b5e7c4af91cc900e8972ffad33d3aaa227900faa55f60121cdb04b85866a734bb7fe4cd91f654c632861cc86121a48312a + languageName: node + linkType: hard + "set-value@npm:^2.0.0, set-value@npm:^2.0.1": version: 2.0.1 resolution: "set-value@npm:2.0.1" @@ -29427,9 +29377,9 @@ __metadata: linkType: hard "spdx-license-ids@npm:^3.0.0": - version: 3.0.13 - resolution: "spdx-license-ids@npm:3.0.13" - checksum: a5cb77ea7be86d574c8876970920e34d9b37f2fb6e361e6b732b61267afbc63dd37831160b731f85c1478f5ba95ae00369742555920e3c694f047f7068d33318 + version: 3.0.15 + resolution: "spdx-license-ids@npm:3.0.15" + checksum: 1d44fa43d2024d4533816ceffac983149f9c76214698033496e13f6224d7fe6e61649a2bb9eb6c88b5f7f71bc19cc5f0aed3dba75b430e27c06e0f71cc251959 languageName: node linkType: hard @@ -29729,8 +29679,8 @@ __metadata: linkType: hard "string.prototype.matchall@npm:^4.0.8": - version: 4.0.9 - resolution: "string.prototype.matchall@npm:4.0.9" + version: 4.0.10 + resolution: "string.prototype.matchall@npm:4.0.10" dependencies: call-bind: ^1.0.2 define-properties: ^1.2.0 @@ -29739,12 +29689,13 @@ __metadata: has-symbols: ^1.0.3 internal-slot: ^1.0.5 regexp.prototype.flags: ^1.5.0 + set-function-name: ^2.0.0 side-channel: ^1.0.4 - checksum: bcd2e34f467b9c474df88cebc1a3ed208f02d0b1452ef8907e74d332b2358f9cf03695693ab7620664b21a0df0c2b4917b631b1fe3c26a3b8c1feded80912ff7 + checksum: cd7495fb0de16d43efeee3887b98701941f3817bd5f09351ad1825b023d307720c86394d56d56380563d97767ab25bf5448db239fcecbb85c28e2180f23e324a languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.1, string.prototype.trim@npm:^1.2.7": +"string.prototype.trim@npm:^1.2.1, string.prototype.trim@npm:^1.2.8": version: 1.2.8 resolution: "string.prototype.trim@npm:1.2.8" dependencies: @@ -29755,7 +29706,7 @@ __metadata: languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.6": +"string.prototype.trimend@npm:^1.0.7": version: 1.0.7 resolution: "string.prototype.trimend@npm:1.0.7" dependencies: @@ -29766,7 +29717,7 @@ __metadata: languageName: node linkType: hard -"string.prototype.trimstart@npm:^1.0.6": +"string.prototype.trimstart@npm:^1.0.7": version: 1.0.7 resolution: "string.prototype.trimstart@npm:1.0.7" dependencies: @@ -30012,8 +29963,8 @@ __metadata: linkType: hard "svelte-check@npm:^3.4.3": - version: 3.5.1 - resolution: "svelte-check@npm:3.5.1" + version: 3.5.2 + resolution: "svelte-check@npm:3.5.2" dependencies: "@jridgewell/trace-mapping": ^0.3.17 chokidar: ^3.4.1 @@ -30027,7 +29978,7 @@ __metadata: svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 bin: svelte-check: bin/svelte-check - checksum: 9dd4d2c1a68950533120722097c57201834ac09e4d62dac43edca7f5f4dc946b32a570111db49e97cac6e1c060ac5dbe42f373dc453f7a16df3cd5a79647f131 + checksum: a07f0f036918351b60dc991a860c746ab20cbeb4cef71be62918fd80d7f81d562a85d6e783ab3d2a19c31c180a4cf9af68a33ffae80ccce185596381876d405d languageName: node linkType: hard @@ -30116,8 +30067,8 @@ __metadata: linkType: hard "svelte@npm:^4.0.0": - version: 4.2.0 - resolution: "svelte@npm:4.2.0" + version: 4.2.1 + resolution: "svelte@npm:4.2.1" dependencies: "@ampproject/remapping": ^2.2.1 "@jridgewell/sourcemap-codec": ^1.4.15 @@ -30132,7 +30083,7 @@ __metadata: locate-character: ^3.0.0 magic-string: ^0.30.0 periscopic: ^3.1.0 - checksum: f2ea970650e80736a3052a0a24699657f0907a456b2ed0543d7dbf96eccec7f54c4627fe18d8e26bd777f3e1b61434a74558a4f5dc182004cca65c157c965d2e + checksum: 5262dfceb99809a7ed01addc684351ac297dc2967b49dc99563af646c113c33a1535fe6ea5b9af4c6986880b6803ac0ca4fecb15a65bb18b641929c400d5dead languageName: node linkType: hard @@ -30366,8 +30317,8 @@ __metadata: linkType: hard "terser@npm:^5.10.0, terser@npm:^5.16.8": - version: 5.19.4 - resolution: "terser@npm:5.19.4" + version: 5.21.0 + resolution: "terser@npm:5.21.0" dependencies: "@jridgewell/source-map": ^0.3.3 acorn: ^8.8.2 @@ -30375,7 +30326,7 @@ __metadata: source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: 39c6687609f5b9061f2fb82bee02d2f9d7756fcb5bd50c67da1482f52cf5977e03e0c5df5cb4ce17e549428024c8859075137c461ec4a9ae8cf91a505759255a + checksum: f14ee816b668e014a2a37f4d00c2d9038374be56f0a141d4eb386b316c5645f49bb038a6b78f75353e9745d622dc66a1d6368aea5b08d46489b57dbf195f761c languageName: node linkType: hard @@ -30813,13 +30764,6 @@ __metadata: languageName: node linkType: hard -"ts-toolbelt@npm:^9.6.0": - version: 9.6.0 - resolution: "ts-toolbelt@npm:9.6.0" - checksum: 838f9a2f0fe881d5065257a23b402c41315b33ff987b73db3e2b39fcb70640c4c7220e1ef118ed5676763543724fdbf4eda7b0e2c17acb667ed1401336af9f8c - languageName: node - linkType: hard - "tsconfig-paths-webpack-plugin@npm:^4.0.1": version: 4.1.0 resolution: "tsconfig-paths-webpack-plugin@npm:4.1.0" @@ -31017,15 +30961,6 @@ __metadata: languageName: node linkType: hard -"types-ramda@npm:^0.29.4": - version: 0.29.4 - resolution: "types-ramda@npm:0.29.4" - dependencies: - ts-toolbelt: ^9.6.0 - checksum: 7f73719de87ad49ffa48bdece4feb41d9707f945cad649c5bd1c0b1c2f80703d9eb90cc9003411a5af4d4eee3c0c582f8baa86af069be29e9c46f802db203825 - languageName: node - linkType: hard - "typescript@npm:^3 || ^4, typescript@npm:^4.9.3, typescript@npm:~4.9.3": version: 4.9.5 resolution: "typescript@npm:4.9.5" @@ -31488,14 +31423,14 @@ __metadata: linkType: hard "unplugin@npm:^1.3.1": - version: 1.4.0 - resolution: "unplugin@npm:1.4.0" + version: 1.5.0 + resolution: "unplugin@npm:1.5.0" dependencies: - acorn: ^8.9.0 + acorn: ^8.10.0 chokidar: ^3.5.3 webpack-sources: ^3.2.3 webpack-virtual-modules: ^0.5.0 - checksum: d006fe3ddfcd6578e36f2951f6a21419af2ba8812bc16681876a725a0981b339c920e6afb2cd222d74ca5943e0aa41260cff8fb3528dae12e66419369ae616fc + checksum: 2f79a7bf6b428a6aac80bf21852ed83cafead0ae3ed8866db1dca1cd4489f3b50c95874275e9a9b0f10c2e3c4892bfe0431c70d13635775c4c620a6a3f9eae37 languageName: node linkType: hard @@ -31523,9 +31458,9 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.11": - version: 1.0.11 - resolution: "update-browserslist-db@npm:1.0.11" +"update-browserslist-db@npm:^1.0.13": + version: 1.0.13 + resolution: "update-browserslist-db@npm:1.0.13" dependencies: escalade: ^3.1.1 picocolors: ^1.0.0 @@ -31533,7 +31468,7 @@ __metadata: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 280d5cf92e302d8de0c12ef840a6af26ec024a5158aa2020975cd01bf0ded09c709793a6f421e6d0f1a47557d6a1a10dc43af80f9c30b8fd0df9691eb98c1c69 + checksum: e52b8b521c78ce1e0c775f356cd16a9c22c70d25f3e01180839c407a5dc787fb05a13f67560cbaf316770d26fa99f78f1acd711b1b54a4f35d4820d4ea7136e6 languageName: node linkType: hard @@ -31571,12 +31506,12 @@ __metadata: linkType: hard "url@npm:^0.11.0": - version: 0.11.2 - resolution: "url@npm:0.11.2" + version: 0.11.3 + resolution: "url@npm:0.11.3" dependencies: punycode: ^1.4.1 qs: ^6.11.2 - checksum: c4a4b783ad30b47e0b4a7a7b9ac908db59898eaaf53e3142af81231c99d065776c2e7f617eb6d8099587a890180cad9726c260a9874d2f6736a67b867fa78e06 + checksum: 7546b878ee7927cfc62ca21dbe2dc395cf70e889c3488b2815bf2c63355cb3c7db555128176a01b0af6cccf265667b6fd0b4806de00cb71c143c53986c08c602 languageName: node linkType: hard @@ -31746,11 +31681,11 @@ __metadata: linkType: hard "uuid@npm:^9.0.0": - version: 9.0.0 - resolution: "uuid@npm:9.0.0" + version: 9.0.1 + resolution: "uuid@npm:9.0.1" bin: uuid: dist/bin/uuid - checksum: 8867e438990d1d33ac61093e2e4e3477a2148b844e4fa9e3c2360fa4399292429c4b6ec64537eb1659c97b2d10db349c673ad58b50e2824a11e0d3630de3c056 + checksum: 1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b languageName: node linkType: hard @@ -31783,13 +31718,13 @@ __metadata: linkType: hard "v8-to-istanbul@npm:^9.0.0, v8-to-istanbul@npm:^9.0.1": - version: 9.1.0 - resolution: "v8-to-istanbul@npm:9.1.0" + version: 9.1.2 + resolution: "v8-to-istanbul@npm:9.1.2" dependencies: "@jridgewell/trace-mapping": ^0.3.12 "@types/istanbul-lib-coverage": ^2.0.1 - convert-source-map: ^1.6.0 - checksum: 657ef7c52a514c1a0769663f96dd6f2cd11d2d3f6c8272d1035f4a543dca0b52c84b005beb7f0ca215eb98425c8bc4aa92a62826b1fc76abc1f7228d33ccbc60 + convert-source-map: ^2.0.0 + checksum: ceed817914e1ddbe88cbeaae37aff82effbbf67846810f24c551315dade629e65f65d8cd853ce0982eb30c8865eeeed2e0d3935e3b227cbcefb2c1607de04e82 languageName: node linkType: hard @@ -31964,8 +31899,8 @@ __metadata: linkType: hard "vite@npm:^4.0.0, vite@npm:^4.0.4": - version: 4.4.9 - resolution: "vite@npm:4.4.9" + version: 4.4.10 + resolution: "vite@npm:4.4.10" dependencies: esbuild: ^0.18.10 fsevents: ~2.3.2 @@ -31999,7 +31934,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 80dbc632fd75b5866567c8fd605115c9d5718654dbf173f509cfd55c53f39dfbee24f62660e57fd5b11eb93f469a65abdbe6bae880ec8392bb70a5d0d7b6e6a9 + checksum: d1359f147eb84aad9922460848184f14295e76f335ab03f90a585886ff070e1a7c74996022b3bb07da0a3130c9829565b5556e6eb1d0db12a8aad26f3694d445 languageName: node linkType: hard @@ -32043,16 +31978,16 @@ __metadata: linkType: hard "vscode-languageserver-textdocument@npm:^1.0.3": - version: 1.0.10 - resolution: "vscode-languageserver-textdocument@npm:1.0.10" - checksum: 0f4e82c262eaea2ed84e004c751453ac900a669763287dee92f9b631804a6ef1dabd62880185fa4d9a063f27d46e65c5251f7f0c8329aee5e3b3db6b6dfa2109 + version: 1.0.11 + resolution: "vscode-languageserver-textdocument@npm:1.0.11" + checksum: 1996a38e24571e05aa21dd4f46e0a6849e22301c9a66996762e77d9c6df3622de0bd31cd5742a0c0c47fb9dfd00b310ad08c44d08241873ea571edacd5238da6 languageName: node linkType: hard "vscode-languageserver-types@npm:^3.16.0": - version: 3.17.3 - resolution: "vscode-languageserver-types@npm:3.17.3" - checksum: a70d4ac0dbc08ba425b97e329e6a5696dabc6a264415bacb861e10d859b224f1b46d1fb41c17b6fdd31b32749d3bdfc819cb1b8a57dbe0d1e70e661ba8cfa397 + version: 3.17.5 + resolution: "vscode-languageserver-types@npm:3.17.5" + checksum: 1e1260de79a2cc8de3e46f2e0182cdc94a7eddab487db5a3bd4ee716f67728e685852707d72c059721ce500447be9a46764a04f0611e94e4321ffa088eef36f8 languageName: node linkType: hard @@ -32080,15 +32015,15 @@ __metadata: linkType: hard "vue-component-type-helpers@npm:latest": - version: 1.8.10 - resolution: "vue-component-type-helpers@npm:1.8.10" - checksum: 6a08058ef19a90bba19b525d15857749b938950f78ad834b629460ef7fca6935a0e1ccb52b4532bd1e1a31078d4315b5b4d9daf0184b6d546f1f16f5ea7ba556 + version: 1.8.15 + resolution: "vue-component-type-helpers@npm:1.8.15" + checksum: 3397faf50844e31d92a29a44616088408cf6eb8b6c88b7deb8841c4bc78e8e258fafbb7052b100e52ebea5d1c4e826b7247b2c48f6f3c330addd53132db141f9 languageName: node linkType: hard "vue-docgen-api@npm:^4.40.0, vue-docgen-api@npm:^4.44.23, vue-docgen-api@npm:^4.46.0": - version: 4.74.1 - resolution: "vue-docgen-api@npm:4.74.1" + version: 4.74.2 + resolution: "vue-docgen-api@npm:4.74.2" dependencies: "@babel/parser": ^7.21.4 "@babel/types": ^7.21.4 @@ -32101,7 +32036,9 @@ __metadata: recast: ^0.23.1 ts-map: ^1.0.3 vue-inbrowser-compiler-independent-utils: ^4.69.0 - checksum: 9d7778204e814fe2bd12199ea69095279efeae8df7d1de7b7777baccaf79cc25fb0c9cb07b4af6aaeb08641ef155b89328769c6d37faf06276c3c5ddc32cfe01 + peerDependencies: + vue: ">=2" + checksum: 9985c3910a40090796cd7f9ca9642134a2001e2afe5dcd6527c559f4e4e912abd45f3559d16801224ba5758551c64b7da61a8300b3a54618f1b8f7da319539cd languageName: node linkType: hard @@ -32235,17 +32172,17 @@ __metadata: linkType: hard "vue-tsc@npm:latest": - version: 1.8.10 - resolution: "vue-tsc@npm:1.8.10" + version: 1.8.15 + resolution: "vue-tsc@npm:1.8.15" dependencies: - "@vue/language-core": 1.8.10 - "@vue/typescript": 1.8.10 + "@vue/language-core": 1.8.15 + "@vue/typescript": 1.8.15 semver: ^7.3.8 peerDependencies: typescript: "*" bin: vue-tsc: bin/vue-tsc.js - checksum: 772c707f9a17c665b2ed8127e0f403d064a6cddd4e8aac1fa02c044acabdf2cd0522d1662bc2809a6e0b87645405baffcb70eb78852c02f178b35ecb2469d9b7 + checksum: 18092627141afcef9515701ea85beae564bc31258358d3b0eb7a3ae5167559ac56d8e218a0490661bae91a4f496d1351f9431074820473206dda9d0c50998216 languageName: node linkType: hard @@ -32785,7 +32722,7 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.10, which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": +"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: @@ -33054,8 +32991,8 @@ __metadata: linkType: hard "ws@npm:^8.11.0, ws@npm:^8.13.0, ws@npm:^8.2.3": - version: 8.14.1 - resolution: "ws@npm:8.14.1" + version: 8.14.2 + resolution: "ws@npm:8.14.2" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -33064,7 +33001,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 71b819d1ea00f8a345dd445f72821df64f5892b497d23deb47707cc09e98035902a7cff9b77a911b1af0dcc0a2fbf61f1f50f25ba4ab684e054dc08877e6095d + checksum: 35b4c2da048b8015c797fd14bcb5a5766216ce65c8a5965616a5440ca7b6c3681ee3cbd0ea0c184a59975556e9d58f2002abf8485a14d11d3371770811050a16 languageName: node linkType: hard @@ -33335,19 +33272,12 @@ __metadata: languageName: node linkType: hard -"zod@npm:3.21.4": - version: 3.21.4 - resolution: "zod@npm:3.21.4" - checksum: 161e8cf7aea38a99244d65da4a9477d9d966f6a533e503feaa20ff7968a9691065c38c6f1eab5cbbdc8374142fff4a05c9cacb8479803ab50ab6a6ca80e5d624 - languageName: node - linkType: hard - "zone.js@npm:^0.13.0": - version: 0.13.1 - resolution: "zone.js@npm:0.13.1" + version: 0.13.3 + resolution: "zone.js@npm:0.13.3" dependencies: tslib: ^2.3.0 - checksum: 3f04ded7d2f5496befbce030aa57ba58d1c604795445e555af1a0079fc9938d0a0a9c128fdbff13563423ea2e2956549383629e39c59a7f1d8d3362deacc5e5b + checksum: c2bfa9470c54742b319e81b617a95ddd72bbd4ee03dd5d4d68ae04f153490123fd38c96d2c40d70cf88722e8214b012842836a62cefb23f8f6282d3f7cc1d2b8 languageName: node linkType: hard From fb06301b8481314a860a70f405091b1d8059aa59 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Wed, 4 Oct 2023 13:30:27 +0200 Subject: [PATCH 089/154] Fix types --- code/addons/docs/src/DocsRenderer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/addons/docs/src/DocsRenderer.tsx b/code/addons/docs/src/DocsRenderer.tsx index 1940a2a0e25b..42d8d279b749 100644 --- a/code/addons/docs/src/DocsRenderer.tsx +++ b/code/addons/docs/src/DocsRenderer.tsx @@ -28,7 +28,7 @@ class ErrorBoundary extends Component<{ const { hasError } = this.state; const { children } = this.props; - return hasError ? null : children; + return hasError ? null : <>{children}; } } From 97e0c602bbc18a5dc921c60359485a8f25a9049a Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Wed, 4 Oct 2023 14:33:49 +0200 Subject: [PATCH 090/154] Restrict allowed zone.js version range --- code/frameworks/angular/package.json | 2 +- code/yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json index bdcd21c0ff44..50ecec42445c 100644 --- a/code/frameworks/angular/package.json +++ b/code/frameworks/angular/package.json @@ -106,7 +106,7 @@ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", "rxjs": "^6.0.0 || ^7.4.0", "typescript": "^4.0.0 || ^5.0.0", - "zone.js": "^0.8.29 || >= 0.9.0 < 1.0.0" + "zone.js": ">= 0.11.1 < 1.0.0" }, "peerDependenciesMeta": { "@angular/cli": { diff --git a/code/yarn.lock b/code/yarn.lock index 915d4281a0ba..f0b314feb3db 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6372,7 +6372,7 @@ __metadata: react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 rxjs: ^6.0.0 || ^7.4.0 typescript: ^4.0.0 || ^5.0.0 - zone.js: ^0.8.29 || >= 0.9.0 < 1.0.0 + zone.js: ">= 0.11.1 < 1.0.0" peerDependenciesMeta: "@angular/cli": optional: true From ed18a24d6477ddd3de7a41d6a91d31fb7ac22451 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Wed, 4 Oct 2023 14:45:08 +0200 Subject: [PATCH 091/154] move ensure-next-ahead from a bash script to a tested node script --- .github/workflows/publish.yml | 19 +--- scripts/package.json | 1 + .../__tests__/ensure-next-ahead.test.ts | 85 +++++++++++++++ scripts/release/ensure-next-ahead.ts | 102 ++++++++++++++++++ 4 files changed, 189 insertions(+), 18 deletions(-) create mode 100644 scripts/release/__tests__/ensure-next-ahead.test.ts create mode 100644 scripts/release/ensure-next-ahead.ts diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index acb787424846..be37b132b1fc 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -165,31 +165,14 @@ jobs: git merge ${{ github.ref_name }} git push origin ${{ steps.target.outputs.target }} - # This step ensures that next is always one minor ahead of main - # this is needed when releasing a stable from next - # next will be at eg. 7.4.0-alpha.4, and main will be at 7.3.0 - # then we release 7.4.0 by merging next to latest-release to main - # we then ensure here that next is bumped to 7.5.0 - without releasing it - # if this is a patch release bumping main to 7.3.1, next will not be touched because it's already ahead - name: Ensure `next` is a minor version ahead of `main` if: steps.target.outputs.target == 'main' run: | git checkout next git pull - CODE_PKG_JSON=$(cat ../code/package.json) - VERSION_ON_NEXT=$(echo $CODE_PKG_JSON | jq --raw-output '.version') - VERSION_ON_MAIN="${{ steps.version.outputs.current-version }}" + yarn release:ensure-next-ahead --main-version "${{ steps.version.outputs.current-version }}" - # skip if next is already ahead of main - if NEXT_IS_AHEAD=$(npx semver --include-prerelease --range ">=$VERSION_ON_MAIN" "$VERSION_ON_NEXT" 2>/dev/null); then - return - fi - - # temporarily set the version on next to be the same as main... - echo "$CODE_PKG_JSON" | jq --arg version "$VERSION_ON_MAIN" '.version = $version' > ../code/package.json - # ... then bump it by one minor - yarn release:version --release-type minor git add .. git commit -m "Bump next to be one minor ahead of main [skip ci]" git push origin next diff --git a/scripts/package.json b/scripts/package.json index 906bb2b95926..4cd557a0736e 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -13,6 +13,7 @@ "lint:js:cmd": "cross-env NODE_ENV=production eslint --cache --cache-location=../.cache/eslint --ext .js,.jsx,.json,.html,.ts,.tsx,.mjs --report-unused-disable-directives", "lint:package": "sort-package-json", "migrate-docs": "node --require esbuild-register ./ts-to-ts49.ts", + "release:ensure-next-ahead": "ts-node --swc ./release/ensure-next-ahead.ts", "release:generate-pr-description": "ts-node --swc ./release/generate-pr-description.ts", "release:get-changelog-from-file": "ts-node --swc ./release/get-changelog-from-file.ts", "release:get-current-version": "ts-node --swc ./release/get-current-version.ts", diff --git a/scripts/release/__tests__/ensure-next-ahead.test.ts b/scripts/release/__tests__/ensure-next-ahead.test.ts new file mode 100644 index 000000000000..0b192d39b106 --- /dev/null +++ b/scripts/release/__tests__/ensure-next-ahead.test.ts @@ -0,0 +1,85 @@ +/* eslint-disable global-require */ +/* eslint-disable no-underscore-dangle */ +import path from 'path'; +import { run as ensureNextAhead } from '../ensure-next-ahead'; +import * as gitClient_ from '../utils/git-client'; +import * as bumpVersion_ from '../version'; + +jest.mock('../utils/git-client', () => jest.requireActual('jest-mock-extended').mockDeep()); +const gitClient = jest.mocked(gitClient_); + +// eslint-disable-next-line jest/no-mocks-import +jest.mock('fs-extra', () => require('../../../code/__mocks__/fs-extra')); +const fsExtra = require('fs-extra'); + +jest.mock('../version', () => jest.requireActual('jest-mock-extended').mockDeep()); +const bumpVersion = jest.mocked(bumpVersion_); + +jest.spyOn(console, 'log').mockImplementation(() => {}); +jest.spyOn(console, 'warn').mockImplementation(() => {}); +jest.spyOn(console, 'error').mockImplementation(() => {}); + +const CODE_PACKAGE_JSON_PATH = path.join(__dirname, '..', '..', '..', 'code', 'package.json'); + +describe('Ensure next ahead', () => { + beforeEach(() => { + jest.clearAllMocks(); + gitClient.git.status.mockResolvedValue({ current: 'next' } as any); + fsExtra.__setMockFiles({ + [CODE_PACKAGE_JSON_PATH]: JSON.stringify({ version: '2.0.0' }), + }); + }); + + it('should throw when main-version is missing', async () => { + await expect(ensureNextAhead({})).rejects.toThrowErrorMatchingInlineSnapshot(` + "[ + { + "code": "invalid_type", + "expected": "string", + "received": "undefined", + "path": [ + "mainVersion" + ], + "message": "Required" + } + ]" + `); + }); + + it('should throw when main-version is not a semver string', async () => { + await expect(ensureNextAhead({ mainVersion: '200' })).rejects + .toThrowErrorMatchingInlineSnapshot(` + "[ + { + "code": "custom", + "message": "main-version must be a valid semver version string like '7.4.2'.", + "path": [] + } + ]" + `); + }); + + it('should not bump version when next is already ahead of main', async () => { + await expect(ensureNextAhead({ mainVersion: '1.0.0' })).resolves.toBeUndefined(); + expect(bumpVersion.run).not.toHaveBeenCalled(); + }); + + it('should bump version to 3.1.0-alpha.0 when main is 3.0.0 and next is 2.0.0', async () => { + await expect(ensureNextAhead({ mainVersion: '3.0.0' })).resolves.toBeUndefined(); + expect(bumpVersion.run).toHaveBeenCalledWith({ exact: '3.1.0-alpha.0' }); + }); + + it('should bump version to 2.1.0-alpha.0 when main and next are both 2.0.0', async () => { + await expect(ensureNextAhead({ mainVersion: '2.0.0' })).resolves.toBeUndefined(); + expect(bumpVersion.run).toHaveBeenCalledWith({ exact: '2.1.0-alpha.0' }); + }); + + it('should bump version to 2.1.0-alpha.0 when main is 2.0.0 and and next is 2.0.0-rc.10', async () => { + fsExtra.__setMockFiles({ + [CODE_PACKAGE_JSON_PATH]: JSON.stringify({ version: '2.0.0-rc.10' }), + }); + + await expect(ensureNextAhead({ mainVersion: '2.0.0' })).resolves.toBeUndefined(); + expect(bumpVersion.run).toHaveBeenCalledWith({ exact: '2.1.0-alpha.0' }); + }); +}); diff --git a/scripts/release/ensure-next-ahead.ts b/scripts/release/ensure-next-ahead.ts new file mode 100644 index 000000000000..280f5fd00fa9 --- /dev/null +++ b/scripts/release/ensure-next-ahead.ts @@ -0,0 +1,102 @@ +/** + * This script ensures that next is always one minor ahead of main. + * This is needed when releasing a stable from next. + * Next will be at eg. 7.4.0-alpha.4, and main will be at 7.3.0. + * Then we release 7.4.0 by merging next to latest-release to main. + * We then ensure here that next is bumped to 7.5.0-alpha.0 - without releasing it. + * If this is a patch release bumping main to 7.3.1, next will not be touched because it's already ahead. + */ + +/* eslint-disable no-console */ +import chalk from 'chalk'; +import path from 'path'; +import program from 'commander'; +import semver from 'semver'; +import { z } from 'zod'; +import { readJson } from 'fs-extra'; +import dedent from 'ts-dedent'; +import { run as bumpVersion } from './version'; +import { git } from './utils/git-client'; + +program + .name('ensure-next-ahead') + .description('ensure the "next" branch is always a minor version ahead of "main"') + .requiredOption('-M, --main-version ', 'The version currently on the "main" branch'); + +const optionsSchema = z + .object({ + mainVersion: z.string(), + }) + .refine((schema) => semver.valid(schema.mainVersion), { + message: "main-version must be a valid semver version string like '7.4.2'.", + }); + +type Options = { + mainVersion: string; +}; + +const CODE_DIR_PATH = path.join(__dirname, '..', '..', 'code'); +const CODE_PACKAGE_JSON_PATH = path.join(CODE_DIR_PATH, 'package.json'); + +const validateOptions = (options: { [key: string]: any }): options is Options => { + optionsSchema.parse(options); + return true; +}; + +const getCurrentVersion = async () => { + const { version } = await readJson(CODE_PACKAGE_JSON_PATH); + console.log(`📐 Current version of Storybook is ${chalk.green(version)}`); + return version; +}; + +export const run = async (options: unknown) => { + if (!validateOptions(options)) { + return; + } + const { mainVersion } = options; + + const { current: currentGitBranch } = await git.status(); + + if (currentGitBranch !== 'next') { + console.warn( + `🚧 The current branch is not "next" but "${currentGitBranch}", this only really makes sense to run on the "next" branch.` + ); + } + + // Get the current version from code/package.json + const currentNextVersion = await getCurrentVersion(); + if (semver.gt(currentNextVersion, mainVersion)) { + console.log( + `✅ The version on next (${chalk.green( + currentNextVersion + )}) is already ahead of the version on main (${chalk.green(mainVersion)}), no action needed.` + ); + return; + } + + const nextNextVersion = `${semver.inc(mainVersion, 'minor')}-alpha.0`; + + console.log( + `🤜 The version on next (${chalk.green( + currentNextVersion + )}) is behind the version on main (${chalk.green(mainVersion)}), bumping to ${chalk.blue( + nextNextVersion + )}...` + ); + + await bumpVersion({ exact: nextNextVersion }); + + console.log( + `✅ bumped all versions to ${chalk.green( + nextNextVersion + )}, remember to commit and push to next.` + ); +}; + +if (require.main === module) { + const parsed = program.parse(); + run(parsed.opts()).catch((err) => { + console.error(err); + process.exit(1); + }); +} From 19b8468770d8edcf9db515f1c8b0572fec764212 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Wed, 4 Oct 2023 15:19:33 +0200 Subject: [PATCH 092/154] add error class to error name --- .../core-events/src/errors/storybook-error.test.ts | 2 +- code/lib/core-events/src/errors/storybook-error.ts | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/code/lib/core-events/src/errors/storybook-error.test.ts b/code/lib/core-events/src/errors/storybook-error.test.ts index dc26a50f9679..63c9ec904b2d 100644 --- a/code/lib/core-events/src/errors/storybook-error.test.ts +++ b/code/lib/core-events/src/errors/storybook-error.test.ts @@ -13,7 +13,7 @@ describe('StorybookError', () => { it('should generate the correct error name', () => { const error = new TestError(); - expect(error.name).toBe('SB_TEST_CATEGORY_0123'); + expect(error.name).toBe('SB_TEST_CATEGORY_0123 (TestError)'); }); it('should generate the correct message without documentation link', () => { diff --git a/code/lib/core-events/src/errors/storybook-error.ts b/code/lib/core-events/src/errors/storybook-error.ts index 40158190d93a..393b0f424f80 100644 --- a/code/lib/core-events/src/errors/storybook-error.ts +++ b/code/lib/core-events/src/errors/storybook-error.ts @@ -33,12 +33,18 @@ export abstract class StorybookError extends Error { */ readonly fromStorybook: true = true as const; + get fullErrorCode() { + const paddedCode = String(this.code).padStart(4, '0'); + return `SB_${this.category}_${paddedCode}` as `SB_${this['category']}_${string}`; + } + /** * Overrides the default `Error.name` property in the format: SB__. */ get name() { - const paddedCode = String(this.code).padStart(4, '0'); - return `SB_${this.category}_${paddedCode}` as `SB_${this['category']}_${string}`; + const errorName = this.constructor.name; + + return `${this.fullErrorCode} (${errorName})`; } /** @@ -48,13 +54,13 @@ export abstract class StorybookError extends Error { let page: string | undefined; if (this.documentation === true) { - page = `https://storybook.js.org/error/${this.name}`; + page = `https://storybook.js.org/error/${this.fullErrorCode}`; } else if (typeof this.documentation === 'string') { page = this.documentation; } else if (Array.isArray(this.documentation)) { page = `\n${this.documentation.map((doc) => `\t- ${doc}`).join('\n')}`; } - return this.template() + (page != null ? `\n\nMore info: ${page}\n` : ''); + return `${this.template()}${page != null ? `\n\nMore info: ${page}\n` : ''}`; } } From b4424c1cc38d05a5655d8ccbe8b0a391cf018973 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Wed, 4 Oct 2023 15:46:35 +0200 Subject: [PATCH 093/154] Pin some package versions --- code/frameworks/nextjs/package.json | 2 +- code/renderers/svelte/package.json | 2 +- code/yarn.lock | 153 ++++++++++++++++------------ scripts/yarn.lock | 25 +++-- 4 files changed, 104 insertions(+), 78 deletions(-) diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index a5fae0c402c5..3d92fc262f44 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -124,7 +124,7 @@ "@types/babel__core": "^7", "@types/babel__plugin-transform-runtime": "^7", "@types/babel__preset-env": "^7", - "next": "^13.4.8", + "next": "13.4.19", "typescript": "^4.9.3", "webpack": "^5.65.0" }, diff --git a/code/renderers/svelte/package.json b/code/renderers/svelte/package.json index 8aaa390671be..329926365d73 100644 --- a/code/renderers/svelte/package.json +++ b/code/renderers/svelte/package.json @@ -66,7 +66,7 @@ "devDependencies": { "expect-type": "^0.15.0", "svelte": "^4.0.0", - "svelte-check": "^3.4.3", + "svelte-check": "3.4.6", "typescript": "^5.0.4" }, "peerDependencies": { diff --git a/code/yarn.lock b/code/yarn.lock index f0b314feb3db..5f41d6621284 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -3973,72 +3973,72 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:13.5.4": - version: 13.5.4 - resolution: "@next/env@npm:13.5.4" - checksum: 69c013047371bde6c4dc6d03ec77140059bd4e3db38c1991a8aa8a9c8ce4d1370b98a141145a6f60e23f32ce97a3040b448bfd0455b0d9e5ba6efda8df33c89f +"@next/env@npm:13.4.19": + version: 13.4.19 + resolution: "@next/env@npm:13.4.19" + checksum: 0d9cb76fedcde6f8116c5f029d999cccaf929c9eb8c55daf1d38ae223a80113abae28834e537b26b81731d84ed14fd5231301b2126cd7d9097a7e175dd79bf59 languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:13.5.4": - version: 13.5.4 - resolution: "@next/swc-darwin-arm64@npm:13.5.4" +"@next/swc-darwin-arm64@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-darwin-arm64@npm:13.4.19" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@next/swc-darwin-x64@npm:13.5.4": - version: 13.5.4 - resolution: "@next/swc-darwin-x64@npm:13.5.4" +"@next/swc-darwin-x64@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-darwin-x64@npm:13.4.19" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:13.5.4": - version: 13.5.4 - resolution: "@next/swc-linux-arm64-gnu@npm:13.5.4" +"@next/swc-linux-arm64-gnu@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-linux-arm64-gnu@npm:13.4.19" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:13.5.4": - version: 13.5.4 - resolution: "@next/swc-linux-arm64-musl@npm:13.5.4" +"@next/swc-linux-arm64-musl@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-linux-arm64-musl@npm:13.4.19" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:13.5.4": - version: 13.5.4 - resolution: "@next/swc-linux-x64-gnu@npm:13.5.4" +"@next/swc-linux-x64-gnu@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-linux-x64-gnu@npm:13.4.19" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:13.5.4": - version: 13.5.4 - resolution: "@next/swc-linux-x64-musl@npm:13.5.4" +"@next/swc-linux-x64-musl@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-linux-x64-musl@npm:13.4.19" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:13.5.4": - version: 13.5.4 - resolution: "@next/swc-win32-arm64-msvc@npm:13.5.4" +"@next/swc-win32-arm64-msvc@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-win32-arm64-msvc@npm:13.4.19" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@next/swc-win32-ia32-msvc@npm:13.5.4": - version: 13.5.4 - resolution: "@next/swc-win32-ia32-msvc@npm:13.5.4" +"@next/swc-win32-ia32-msvc@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-win32-ia32-msvc@npm:13.4.19" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@next/swc-win32-x64-msvc@npm:13.5.4": - version: 13.5.4 - resolution: "@next/swc-win32-x64-msvc@npm:13.5.4" +"@next/swc-win32-x64-msvc@npm:13.4.19": + version: 13.4.19 + resolution: "@next/swc-win32-x64-msvc@npm:13.4.19" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -7275,7 +7275,7 @@ __metadata: fs-extra: ^11.1.0 image-size: ^1.0.0 loader-utils: ^3.2.0 - next: ^13.4.8 + next: 13.4.19 node-polyfill-webpack-plugin: ^2.0.1 pnp-webpack-plugin: ^1.7.0 postcss: ^8.4.21 @@ -8056,7 +8056,7 @@ __metadata: "@storybook/types": "workspace:*" expect-type: ^0.15.0 svelte: ^4.0.0 - svelte-check: ^3.4.3 + svelte-check: 3.4.6 sveltedoc-parser: ^4.2.1 type-fest: ~2.19 typescript: ^5.0.4 @@ -8641,12 +8641,12 @@ __metadata: languageName: node linkType: hard -"@swc/helpers@npm:0.5.2": - version: 0.5.2 - resolution: "@swc/helpers@npm:0.5.2" +"@swc/helpers@npm:0.5.1": + version: 0.5.1 + resolution: "@swc/helpers@npm:0.5.1" dependencies: tslib: ^2.4.0 - checksum: b6fa49bcf6c00571d0eb7837b163f8609960d4d77538160585e27ed167361e9776bd6e5eb9646ffac2fb4d43c58df9ca50dab9d96ab097e6591bc82a75fd1164 + checksum: 2e2272c8278351670e1daf27cc634ace793afb378dcc85be2800d30a7b4d3afad37707371ead2a6d96662fa30294da678d66cdc4dc7f3e698bd8e111235c60fc languageName: node linkType: hard @@ -23793,7 +23793,7 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.6": +"nanoid@npm:^3.3.4, nanoid@npm:^3.3.6": version: 3.3.6 resolution: "nanoid@npm:3.3.6" bin: @@ -23888,26 +23888,27 @@ __metadata: languageName: node linkType: hard -"next@npm:^13.4.8": - version: 13.5.4 - resolution: "next@npm:13.5.4" +"next@npm:13.4.19": + version: 13.4.19 + resolution: "next@npm:13.4.19" dependencies: - "@next/env": 13.5.4 - "@next/swc-darwin-arm64": 13.5.4 - "@next/swc-darwin-x64": 13.5.4 - "@next/swc-linux-arm64-gnu": 13.5.4 - "@next/swc-linux-arm64-musl": 13.5.4 - "@next/swc-linux-x64-gnu": 13.5.4 - "@next/swc-linux-x64-musl": 13.5.4 - "@next/swc-win32-arm64-msvc": 13.5.4 - "@next/swc-win32-ia32-msvc": 13.5.4 - "@next/swc-win32-x64-msvc": 13.5.4 - "@swc/helpers": 0.5.2 + "@next/env": 13.4.19 + "@next/swc-darwin-arm64": 13.4.19 + "@next/swc-darwin-x64": 13.4.19 + "@next/swc-linux-arm64-gnu": 13.4.19 + "@next/swc-linux-arm64-musl": 13.4.19 + "@next/swc-linux-x64-gnu": 13.4.19 + "@next/swc-linux-x64-musl": 13.4.19 + "@next/swc-win32-arm64-msvc": 13.4.19 + "@next/swc-win32-ia32-msvc": 13.4.19 + "@next/swc-win32-x64-msvc": 13.4.19 + "@swc/helpers": 0.5.1 busboy: 1.6.0 caniuse-lite: ^1.0.30001406 - postcss: 8.4.31 + postcss: 8.4.14 styled-jsx: 5.1.1 watchpack: 2.4.0 + zod: 3.21.4 peerDependencies: "@opentelemetry/api": ^1.1.0 react: ^18.2.0 @@ -23939,7 +23940,7 @@ __metadata: optional: true bin: next: dist/bin/next - checksum: 0b0bc7fa42844859a0444a79122a48b5e65116c30ce077a3edaaecd7cee1d7925214a659391ae6ecf8dc612869a7a646ab3a1a8aa12d074ff17e3f18c53a2621 + checksum: 557fd15a52220f003ec88a79f51de41c5bb9cda5294944985f31ce45e75f98dd3caf902896d8419d96cc81596976671e953391b1eb3707757d261e362a242310 languageName: node linkType: hard @@ -26064,25 +26065,25 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.27": - version: 8.4.27 - resolution: "postcss@npm:8.4.27" +"postcss@npm:8.4.14": + version: 8.4.14 + resolution: "postcss@npm:8.4.14" dependencies: - nanoid: ^3.3.6 + nanoid: ^3.3.4 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: 41a0476e05cb97514ff8d75e4ff9fdcf778f22b2e0d25b7028f219cd408e01d3c4f50459d4a1cd9a430d8ef08202c881374a4fa4ea6009f4a135a07315d606e5 + checksum: 2a4cfa28e2f1bfd358313501f7771bd596e494487c7b735c492e2f8b1faf493d24fcb43e2e6ad825863fc65a77abb949ca8f228602ae46a022f02dc812c4ac8b languageName: node linkType: hard -"postcss@npm:8.4.31, postcss@npm:^8.1.10, postcss@npm:^8.2.14, postcss@npm:^8.4.14, postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.26, postcss@npm:^8.4.27": - version: 8.4.31 - resolution: "postcss@npm:8.4.31" +"postcss@npm:8.4.27": + version: 8.4.27 + resolution: "postcss@npm:8.4.27" dependencies: nanoid: ^3.3.6 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: 748b82e6e5fc34034dcf2ae88ea3d11fd09f69b6c50ecdd3b4a875cfc7cdca435c958b211e2cb52355422ab6fccb7d8f2f2923161d7a1b281029e4a913d59acf + checksum: 41a0476e05cb97514ff8d75e4ff9fdcf778f22b2e0d25b7028f219cd408e01d3c4f50459d4a1cd9a430d8ef08202c881374a4fa4ea6009f4a135a07315d606e5 languageName: node linkType: hard @@ -26096,6 +26097,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.1.10, postcss@npm:^8.2.14, postcss@npm:^8.4.14, postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.26, postcss@npm:^8.4.27": + version: 8.4.31 + resolution: "postcss@npm:8.4.31" + dependencies: + nanoid: ^3.3.6 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: 748b82e6e5fc34034dcf2ae88ea3d11fd09f69b6c50ecdd3b4a875cfc7cdca435c958b211e2cb52355422ab6fccb7d8f2f2923161d7a1b281029e4a913d59acf + languageName: node + linkType: hard + "preact-render-to-string@npm:^5.1.19": version: 5.2.6 resolution: "preact-render-to-string@npm:5.2.6" @@ -29962,9 +29974,9 @@ __metadata: languageName: node linkType: hard -"svelte-check@npm:^3.4.3": - version: 3.5.2 - resolution: "svelte-check@npm:3.5.2" +"svelte-check@npm:3.4.6": + version: 3.4.6 + resolution: "svelte-check@npm:3.4.6" dependencies: "@jridgewell/trace-mapping": ^0.3.17 chokidar: ^3.4.1 @@ -29978,7 +29990,7 @@ __metadata: svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 bin: svelte-check: bin/svelte-check - checksum: a07f0f036918351b60dc991a860c746ab20cbeb4cef71be62918fd80d7f81d562a85d6e783ab3d2a19c31c180a4cf9af68a33ffae80ccce185596381876d405d + checksum: 7f537831af8f2c47859ca72f4a929d24c58f2946f949f7c9721351be97ff9d0674c57db003e3ad3883fdd85761b7950c5c11513c2a917c91091f155e2d026350 languageName: node linkType: hard @@ -33272,6 +33284,13 @@ __metadata: languageName: node linkType: hard +"zod@npm:3.21.4": + version: 3.21.4 + resolution: "zod@npm:3.21.4" + checksum: 161e8cf7aea38a99244d65da4a9477d9d966f6a533e503feaa20ff7968a9691065c38c6f1eab5cbbdc8374142fff4a05c9cacb8479803ab50ab6a6ca80e5d624 + languageName: node + linkType: hard + "zone.js@npm:^0.13.0": version: 0.13.3 resolution: "zone.js@npm:0.13.3" diff --git a/scripts/yarn.lock b/scripts/yarn.lock index ee865b1b5b66..19568a9f4a70 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -1712,13 +1712,20 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.4.0": version: 4.8.1 resolution: "@eslint-community/regexpp@npm:4.8.1" checksum: 3443b17de28e42ff2ff07ca6b3488c5d016a01fbedf89dce6c80f6bd4138ec3cf49754dba667844e071bb3fa0b31432e1e6ac6929b32f0bf17ced57073820ec2 languageName: node linkType: hard +"@eslint-community/regexpp@npm:^4.6.1": + version: 4.9.1 + resolution: "@eslint-community/regexpp@npm:4.9.1" + checksum: d0e1bd1a37cb2cb6bbac88dfe97b62b412d4b6ea3a4bb1c4e1e503be03125063db5d80999cef9728f57b19b49979aa902ac68182bcf5f80dfce6fa9a9d34eee1 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^2.1.2": version: 2.1.2 resolution: "@eslint/eslintrc@npm:2.1.2" @@ -1736,10 +1743,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.49.0": - version: 8.49.0 - resolution: "@eslint/js@npm:8.49.0" - checksum: 40b4255866161e16b09eae1830c8ff7379276659ee7ce039e4708bcf3c5a5fd8b95418d32c355294e6c738f23ab42f3e3a55100dffb389edd5d5233ca47c01b3 +"@eslint/js@npm:8.50.0": + version: 8.50.0 + resolution: "@eslint/js@npm:8.50.0" + checksum: 92cb0a823869e85f287bd172f14a6a20d7d65c3f4db886a0356a9efebfe8fe519e9ead84a5687bd18f45eca417bdcce96e3b83fe3feae8baf0f8f44d14073bae languageName: node linkType: hard @@ -7521,13 +7528,13 @@ __metadata: linkType: hard "eslint@npm:^8.28.0": - version: 8.49.0 - resolution: "eslint@npm:8.49.0" + version: 8.50.0 + resolution: "eslint@npm:8.50.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 "@eslint-community/regexpp": ^4.6.1 "@eslint/eslintrc": ^2.1.2 - "@eslint/js": 8.49.0 + "@eslint/js": 8.50.0 "@humanwhocodes/config-array": ^0.11.11 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 @@ -7563,7 +7570,7 @@ __metadata: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 8d6985a8d60379ea714ad35d7a3d8762ac8c37b986c615e9a7c245794faddf68f61f997ba6f5f903d440e92065a56a4f7832a45adc2d4fc6e977026782f25835 + checksum: 91629528cb240bc61b25480574d35cd54ed444cb61a70fa76f7d5ab26af2b637b94bf8fba94403c9052c1baa944a169b6ab9cc8070496e925f7eeef730ff9038 languageName: node linkType: hard From 8e83b97b02ae678fe79b0dc0986be557943caff9 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Wed, 4 Oct 2023 15:47:07 +0200 Subject: [PATCH 094/154] Fix types --- code/frameworks/angular/src/builders/utils/error-handler.ts | 2 +- code/ui/components/src/components/Zoom/ZoomIFrame.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/frameworks/angular/src/builders/utils/error-handler.ts b/code/frameworks/angular/src/builders/utils/error-handler.ts index 2673dbfd0b87..f2ff150495cf 100644 --- a/code/frameworks/angular/src/builders/utils/error-handler.ts +++ b/code/frameworks/angular/src/builders/utils/error-handler.ts @@ -12,7 +12,7 @@ export const printErrorDetails = (error: any): void => { } else if ((error as any).stats && (error as any).stats.compilation.errors) { (error as any).stats.compilation.errors.forEach((e: any) => logger.plain(e)); } else { - logger.error(error); + logger.error(error as any); } } else if (error.compilation?.errors) { error.compilation.errors.forEach((e: any) => logger.plain(e)); diff --git a/code/ui/components/src/components/Zoom/ZoomIFrame.tsx b/code/ui/components/src/components/Zoom/ZoomIFrame.tsx index 3101364bd861..509ef5ce4d85 100644 --- a/code/ui/components/src/components/Zoom/ZoomIFrame.tsx +++ b/code/ui/components/src/components/Zoom/ZoomIFrame.tsx @@ -1,5 +1,5 @@ import type { RefObject, ReactElement } from 'react'; -import { Component } from 'react'; +import React, { Component } from 'react'; export type IZoomIFrameProps = { scale: number; @@ -57,6 +57,6 @@ export class ZoomIFrame extends Component { render() { const { children } = this.props; - return children; + return <>{children}; } } From 556569e5e70b2b20eb8a9d460ad82d1e1a18d610 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Wed, 4 Oct 2023 17:57:38 +0200 Subject: [PATCH 095/154] update @storybook/jest --- code/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/yarn.lock b/code/yarn.lock index 5f41d6621284..ddb34e7b1efa 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -7123,14 +7123,14 @@ __metadata: linkType: soft "@storybook/jest@npm:next": - version: 0.2.2-next.0 - resolution: "@storybook/jest@npm:0.2.2-next.0" + version: 0.2.3-next.0 + resolution: "@storybook/jest@npm:0.2.3-next.0" dependencies: "@storybook/expect": storybook-jest "@testing-library/jest-dom": ^6.1.2 "@types/jest": 28.1.3 jest-mock: ^27.3.0 - checksum: f89149436e0506cfa33fb8678a4d3bcb8fadc16e6a00905c92e9da716772cb5a65e8bdc07f6a7f536e3940af3c676c41857f4093eaed4c3f12c074d45c92e661 + checksum: 96e800be9adb18d689ff66efe3b953f06d3c209cb0a08559ea47a6de0cd09678e161bdd531cb2d008d58eecc33cb9cb49228e9014435818f3259e1b9eac46635 languageName: node linkType: hard From c028ce22cd6051846a62f6443589352bbf6e32be Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Wed, 4 Oct 2023 19:05:11 +0200 Subject: [PATCH 096/154] always set --no-link when creating angular sandboxes --- scripts/tasks/sandbox.ts | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/scripts/tasks/sandbox.ts b/scripts/tasks/sandbox.ts index 24b946049631..117d10948b51 100644 --- a/scripts/tasks/sandbox.ts +++ b/scripts/tasks/sandbox.ts @@ -25,12 +25,24 @@ export const sandbox: Task = { return pathExists(sandboxDir); }, async run(details, options) { - if (options.link && details.template.inDevelopment) { - logger.log( - `The ${options.template} has inDevelopment property enabled, therefore the sandbox for that template cannot be linked. Enabling --no-link mode..` - ); - // eslint-disable-next-line no-param-reassign - options.link = false; + if (options.link) { + if (details.template.expected.framework === '@storybook/angular') { + // In Angular, tsc is spawn via Webpack and for some reason it follows the symlinks and doesn’t recognize it as node_modules. Hence, it does type checking on regular files. + // Angular's tsconfig compilerOptions are more strict than the ones in the mono-repo and results in many errors, therefore we use --no-link to circumvent them. + logger.log( + `Detected an Angular sandbox, which cannot be linked. Enabling --no-link mode..` + ); + // eslint-disable-next-line no-param-reassign + options.link = false; + } + + if (details.template.inDevelopment) { + logger.log( + `The ${options.template} has inDevelopment property enabled, therefore the sandbox for that template cannot be linked. Enabling --no-link mode..` + ); + // eslint-disable-next-line no-param-reassign + options.link = false; + } } if (await this.ready(details)) { logger.info('🗑 Removing old sandbox dir'); From 930adf4da6bb7bd7b6065920c60b9471877c4038 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Wed, 4 Oct 2023 22:59:17 +0200 Subject: [PATCH 097/154] move bash script to cancel preparation runs to tested node script --- .github/workflows/publish.yml | 17 +-- scripts/package.json | 2 + .../__tests__/cancel-preparation-runs.test.ts | 107 ++++++++++++++++++ scripts/release/cancel-preparation-runs.ts | 107 ++++++++++++++++++ scripts/release/utils/github-client.ts | 9 ++ scripts/yarn.lock | 52 +++++++++ 6 files changed, 280 insertions(+), 14 deletions(-) create mode 100644 scripts/release/__tests__/cancel-preparation-runs.test.ts create mode 100644 scripts/release/cancel-preparation-runs.ts diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index be37b132b1fc..df82ca33c9a5 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -37,20 +37,9 @@ jobs: gh run watch ${{ github.run_id }} - name: Cancel all release preparation runs - run: | - # Get a list of all running or pending release preparation runs - # combining both the prepare-patch-release.yml and prepare-non-patch-release.yml workflows - RUNNING_RELEASE_PREPARATIONS=$( - { - gh run list --limit 50 --workflow=prepare-patch-release.yml --json databaseId,status - gh run list --limit 50 --workflow=prepare-non-patch-release.yml --json databaseId,status - } | jq -rc '.[] | select(.status | contains("in_progress", "pending", "queued", "requested", "waiting")) | .databaseId' - ) - - # Loop through each run and pass it to the "gh run cancel" command - while IFS= read -r databaseId; do - gh run cancel "$databaseId" - done <<< "$RUNNING_RELEASE_PREPARATIONS" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: yarn release:cancel-preparation-runs - name: Checkout ${{ github.ref_name }} uses: actions/checkout@v3 diff --git a/scripts/package.json b/scripts/package.json index 4cd557a0736e..9514d8fe5865 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -13,6 +13,7 @@ "lint:js:cmd": "cross-env NODE_ENV=production eslint --cache --cache-location=../.cache/eslint --ext .js,.jsx,.json,.html,.ts,.tsx,.mjs --report-unused-disable-directives", "lint:package": "sort-package-json", "migrate-docs": "node --require esbuild-register ./ts-to-ts49.ts", + "release:cancel-preparation-runs": "ts-node --swc ./release/cancel-preparation-runs.ts", "release:ensure-next-ahead": "ts-node --swc ./release/ensure-next-ahead.ts", "release:generate-pr-description": "ts-node --swc ./release/generate-pr-description.ts", "release:get-changelog-from-file": "ts-node --swc ./release/get-changelog-from-file.ts", @@ -74,6 +75,7 @@ "@jest/globals": "^29.3.1", "@nx/workspace": "16.2.1", "@octokit/graphql": "^5.0.5", + "@octokit/request": "^8.1.2", "@storybook/eslint-config-storybook": "^3.1.2", "@storybook/jest": "next", "@storybook/linter-config": "^3.1.2", diff --git a/scripts/release/__tests__/cancel-preparation-runs.test.ts b/scripts/release/__tests__/cancel-preparation-runs.test.ts new file mode 100644 index 000000000000..aaf8cdbec718 --- /dev/null +++ b/scripts/release/__tests__/cancel-preparation-runs.test.ts @@ -0,0 +1,107 @@ +/* eslint-disable global-require */ +/* eslint-disable no-underscore-dangle */ +import { + PREPARE_NON_PATCH_WORKFLOW_PATH, + PREPARE_PATCH_WORKFLOW_PATH, + run as cancelPreparationWorkflows, +} from '../cancel-preparation-runs'; +import * as github_ from '../utils/github-client'; + +jest.mock('../utils/github-client'); + +const github = jest.mocked(github_); + +jest.spyOn(console, 'log').mockImplementation(() => {}); +jest.spyOn(console, 'warn').mockImplementation(() => {}); +jest.spyOn(console, 'error').mockImplementation(() => {}); + +describe('Cancel preparation runs', () => { + beforeEach(() => { + jest.clearAllMocks(); + github.githubRestClient.mockImplementation(((route: string, options: any) => { + switch (route) { + case 'GET /repos/{owner}/{repo}/actions/workflows': + return { + data: { + workflows: [ + { + id: 1, + path: PREPARE_PATCH_WORKFLOW_PATH, + }, + { + id: 2, + path: PREPARE_NON_PATCH_WORKFLOW_PATH, + }, + ], + }, + }; + case 'GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs': + return { + data: { + workflow_runs: [ + { + id: options.workflow_id === 1 ? 100 : 200, + status: 'in_progress', + }, + { + id: options.workflow_id === 1 ? 150 : 250, + status: 'completed', + }, + ], + }, + }; + case 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel': + return undefined; // success + default: + throw new Error(`Unexpected route: ${route}`); + } + }) as any); + }); + + it('should fail early when no GH_TOKEN is set', async () => { + delete process.env.GH_TOKEN; + await expect(cancelPreparationWorkflows()).rejects.toThrowErrorMatchingInlineSnapshot( + `"GH_TOKEN environment variable must be set, exiting."` + ); + }); + + it('should cancel all running preparation workflows in GitHub', async () => { + process.env.GH_TOKEN = 'MY_SECRET'; + + await expect(cancelPreparationWorkflows()).resolves.toBeUndefined(); + + expect(github.githubRestClient).toHaveBeenCalledTimes(5); + expect(github.githubRestClient).toHaveBeenCalledWith( + 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', + { + owner: 'storybookjs', + repo: 'storybook', + run_id: 100, + } + ); + expect(github.githubRestClient).toHaveBeenCalledWith( + 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', + { + owner: 'storybookjs', + repo: 'storybook', + run_id: 200, + } + ); + expect(github.githubRestClient).not.toHaveBeenCalledWith( + 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', + { + owner: 'storybookjs', + repo: 'storybook', + run_id: 150, + } + ); + expect(github.githubRestClient).not.toHaveBeenCalledWith( + 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', + { + owner: 'storybookjs', + repo: 'storybook', + run_id: 250, + } + ); + }); +}); diff --git a/scripts/release/cancel-preparation-runs.ts b/scripts/release/cancel-preparation-runs.ts new file mode 100644 index 000000000000..630bfb4847b3 --- /dev/null +++ b/scripts/release/cancel-preparation-runs.ts @@ -0,0 +1,107 @@ +/** + * This script cancels all running preparation workflows in GitHub. + * It will fetch all active runs for the preparation workflows, and cancel them. + */ +/* eslint-disable no-console */ +import chalk from 'chalk'; +import program from 'commander'; +import dedent from 'ts-dedent'; +import { githubRestClient } from './utils/github-client'; + +program + .name('cancel-preparation-workflows') + .description('cancel all running preparation workflows in GitHub'); + +export const PREPARE_PATCH_WORKFLOW_PATH = '.github/workflows/prepare-patch-release.yml'; +export const PREPARE_NON_PATCH_WORKFLOW_PATH = '.github/workflows/prepare-non-patch-release.yml'; + +export const run = async () => { + if (!process.env.GH_TOKEN) { + throw new Error('GH_TOKEN environment variable must be set, exiting.'); + } + + console.log(`🔎 Looking for workflows to cancel...`); + const allWorkflows = await githubRestClient('GET /repos/{owner}/{repo}/actions/workflows', { + owner: 'storybookjs', + repo: 'storybook', + }); + + const preparePatchWorkflowId = allWorkflows.data.workflows.find( + ({ path }) => path === PREPARE_PATCH_WORKFLOW_PATH + )?.id; + const prepareNonPatchWorkflowId = allWorkflows.data.workflows.find( + ({ path }) => path === PREPARE_NON_PATCH_WORKFLOW_PATH + )?.id; + + console.log(`Found workflow IDs for the preparation workflows: + ${chalk.blue(PREPARE_PATCH_WORKFLOW_PATH)}: ${chalk.green(preparePatchWorkflowId)} + ${chalk.blue(PREPARE_NON_PATCH_WORKFLOW_PATH)}: ${chalk.green(prepareNonPatchWorkflowId)}`); + + if (!preparePatchWorkflowId || !prepareNonPatchWorkflowId) { + throw new Error(dedent`🚨 Could not find workflow IDs for the preparation workflows + - Looked for paths: "${chalk.blue(PREPARE_PATCH_WORKFLOW_PATH)}" and "${chalk.blue( + PREPARE_NON_PATCH_WORKFLOW_PATH + )}", are they still correct? + - Found workflows: + ${JSON.stringify(allWorkflows.data.workflows, null, 2)}`); + } + + console.log('🔍 Fetching patch and non-patch runs for preparation workflows...'); + const [patchRuns, nonPatchRuns] = await Promise.all([ + githubRestClient('GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs', { + owner: 'storybookjs', + repo: 'storybook', + workflow_id: preparePatchWorkflowId, + }), + githubRestClient('GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs', { + owner: 'storybookjs', + repo: 'storybook', + workflow_id: prepareNonPatchWorkflowId, + }), + ]); + console.log('✅ Successfully fetched patch and non-patch runs for preparation workflows.'); + + const runsToCancel = patchRuns.data.workflow_runs + .concat(nonPatchRuns.data.workflow_runs) + .filter(({ status }) => + ['in_progress', 'pending', 'queued', 'requested', 'waiting'].includes(status) + ); + + if (runsToCancel.length === 0) { + console.log('👍 No runs to cancel.'); + return; + } + + console.log(`🔍 Found ${runsToCancel.length} runs to cancel. Cancelling them now: + ${runsToCancel + .map((r) => `${chalk.green(r.path)} - ${chalk.green(r.id)}: ${chalk.blue(r.status)}`) + .join('\n ')}`); + + const result = await Promise.allSettled( + runsToCancel.map((r) => + githubRestClient('POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', { + owner: 'storybookjs', + repo: 'storybook', + run_id: r.id, + }) + ) + ); + + if (result.some((r) => r.status === 'rejected')) { + console.warn('⚠️ Some runs could not be cancelled:'); + result.forEach((r, index) => { + if (r.status === 'rejected') { + console.warn(`Run ID: ${runsToCancel[index].id} - Reason: ${r.reason}`); + } + }); + } else { + console.log('✅ Successfully cancelled all preparation runs.'); + } +}; + +if (require.main === module) { + run().catch((err) => { + console.error(err); + // this is non-critical work, so we don't want to fail the CI build if this fails + }); +} diff --git a/scripts/release/utils/github-client.ts b/scripts/release/utils/github-client.ts index 646ba1003986..e81991414bf9 100644 --- a/scripts/release/utils/github-client.ts +++ b/scripts/release/utils/github-client.ts @@ -1,6 +1,8 @@ /* eslint-disable no-console */ import type { GraphQlQueryResponseData } from '@octokit/graphql'; import { graphql } from '@octokit/graphql'; +import { request } from '@octokit/request'; +import fetch from 'node-fetch'; export interface PullRequest { number: number; @@ -14,6 +16,13 @@ export const githubGraphQlClient = graphql.defaults({ headers: { authorization: `token ${process.env.GH_TOKEN}` }, }); +export const githubRestClient = request.defaults({ + request: { + fetch, + }, + headers: { authorization: `token ${process.env.GH_TOKEN}`, 'X-GitHub-Api-Version': '2022-11-28' }, +}); + export async function getUnpickedPRs( baseBranch: string, verbose?: boolean diff --git a/scripts/yarn.lock b/scripts/yarn.lock index ee273eaf2d45..690e145e27ea 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -2536,6 +2536,17 @@ __metadata: languageName: node linkType: hard +"@octokit/endpoint@npm:^9.0.0": + version: 9.0.1 + resolution: "@octokit/endpoint@npm:9.0.1" + dependencies: + "@octokit/types": ^12.0.0 + is-plain-object: ^5.0.0 + universal-user-agent: ^6.0.0 + checksum: 757505b1cd634bcd7b71a18c8fe07dfda47790598ddd0d9d13f47d68713070f49953a672ac40ec39787defc2a7e07d08dca97756def7b907118f8f8d4c653f5c + languageName: node + linkType: hard + "@octokit/graphql@npm:^4.3.1, @octokit/graphql@npm:^4.5.8": version: 4.8.0 resolution: "@octokit/graphql@npm:4.8.0" @@ -2572,6 +2583,13 @@ __metadata: languageName: node linkType: hard +"@octokit/openapi-types@npm:^19.0.0": + version: 19.0.0 + resolution: "@octokit/openapi-types@npm:19.0.0" + checksum: 8270e0a224bbef6d1c82396cda873a3528111cb25a772184b39e1fbada4e6433b41c5f4634ecf204e8a2816a802048197e0132b7615b579fab217f7c1e29545b + languageName: node + linkType: hard + "@octokit/plugin-paginate-rest@npm:^2.16.8, @octokit/plugin-paginate-rest@npm:^2.2.0": version: 2.21.3 resolution: "@octokit/plugin-paginate-rest@npm:2.21.3" @@ -2636,6 +2654,17 @@ __metadata: languageName: node linkType: hard +"@octokit/request-error@npm:^5.0.0": + version: 5.0.1 + resolution: "@octokit/request-error@npm:5.0.1" + dependencies: + "@octokit/types": ^12.0.0 + deprecation: ^2.0.0 + once: ^1.4.0 + checksum: e72a4627120de345b54876a1f007664095e5be9d624fce2e14fccf7668cd8f5e4929d444d8fc085d48e1fb5cd548538453974aab129a669101110d6679dce6c6 + languageName: node + linkType: hard + "@octokit/request@npm:^5.4.0, @octokit/request@npm:^5.6.0, @octokit/request@npm:^5.6.3": version: 5.6.3 resolution: "@octokit/request@npm:5.6.3" @@ -2664,6 +2693,19 @@ __metadata: languageName: node linkType: hard +"@octokit/request@npm:^8.1.2": + version: 8.1.2 + resolution: "@octokit/request@npm:8.1.2" + dependencies: + "@octokit/endpoint": ^9.0.0 + "@octokit/request-error": ^5.0.0 + "@octokit/types": ^12.0.0 + is-plain-object: ^5.0.0 + universal-user-agent: ^6.0.0 + checksum: 49219eb71b856acecc8268f05a7a7d074488f9eaeb59439f5c8872e5b4555a4e6c0cf0ebcadf0983466f88957e74c27765f582e473b0dd89b453274501f0dc37 + languageName: node + linkType: hard + "@octokit/rest@npm:^16.43.0 || ^17.11.0 || ^18.12.0, @octokit/rest@npm:^18.12.0": version: 18.12.0 resolution: "@octokit/rest@npm:18.12.0" @@ -2688,6 +2730,15 @@ __metadata: languageName: node linkType: hard +"@octokit/types@npm:^12.0.0": + version: 12.0.0 + resolution: "@octokit/types@npm:12.0.0" + dependencies: + "@octokit/openapi-types": ^19.0.0 + checksum: 6e5b68f8855775638db53244348d2ca07896d36a15aad41d3cb652fafaa1b307c3b6222319174dd5716accd9076e101da838b82f988a7c380a8e9d188e3aadf1 + languageName: node + linkType: hard + "@octokit/types@npm:^4.1.6": version: 4.1.10 resolution: "@octokit/types@npm:4.1.10" @@ -2906,6 +2957,7 @@ __metadata: "@jest/globals": ^29.3.1 "@nx/workspace": 16.2.1 "@octokit/graphql": ^5.0.5 + "@octokit/request": ^8.1.2 "@storybook/eslint-config-storybook": ^3.1.2 "@storybook/jest": next "@storybook/linter-config": ^3.1.2 From 72837aea51221146082d4676dab7a7fade8a9f87 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Wed, 4 Oct 2023 23:11:40 +0200 Subject: [PATCH 098/154] fix tests --- scripts/release/ensure-next-ahead.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/release/ensure-next-ahead.ts b/scripts/release/ensure-next-ahead.ts index 280f5fd00fa9..1aa32bfd932c 100644 --- a/scripts/release/ensure-next-ahead.ts +++ b/scripts/release/ensure-next-ahead.ts @@ -14,7 +14,6 @@ import program from 'commander'; import semver from 'semver'; import { z } from 'zod'; import { readJson } from 'fs-extra'; -import dedent from 'ts-dedent'; import { run as bumpVersion } from './version'; import { git } from './utils/git-client'; From 08efdbdada28d6ca6dbf32323e29fbf1f4be74d4 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Thu, 5 Oct 2023 08:52:30 +0200 Subject: [PATCH 099/154] Pin overlayscrollbars to exact version --- code/ui/components/package.json | 2 +- code/yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/ui/components/package.json b/code/ui/components/package.json index 85c425ea05bf..0e9cc0dc42a4 100644 --- a/code/ui/components/package.json +++ b/code/ui/components/package.json @@ -77,7 +77,7 @@ "@types/react-syntax-highlighter": "11.0.5", "@types/util-deprecate": "^1.0.0", "css": "^3.0.0", - "overlayscrollbars": "^2.2.0", + "overlayscrollbars": "2.2.1", "overlayscrollbars-react": "^0.5.0", "polished": "^4.2.2", "prettier": "^2.8.0", diff --git a/code/yarn.lock b/code/yarn.lock index ddb34e7b1efa..3ec46c6397a8 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6756,7 +6756,7 @@ __metadata: "@types/util-deprecate": ^1.0.0 css: ^3.0.0 memoizerific: ^1.11.3 - overlayscrollbars: ^2.2.0 + overlayscrollbars: 2.2.1 overlayscrollbars-react: ^0.5.0 polished: ^4.2.2 prettier: ^2.8.0 @@ -24986,10 +24986,10 @@ __metadata: languageName: node linkType: hard -"overlayscrollbars@npm:^2.2.0": - version: 2.3.2 - resolution: "overlayscrollbars@npm:2.3.2" - checksum: 6ee3c2d8ffafa8ec090b5f650edb783d83880f7f863d8b57791583a7496e9d1a9a4894cb80bfab75514af71d9ee9d0a15b17ba6006b1e5abc026d349f6535041 +"overlayscrollbars@npm:2.2.1": + version: 2.2.1 + resolution: "overlayscrollbars@npm:2.2.1" + checksum: 718dd563ee17a8c92a54f0b67989806edadd5b999e36d2ab322e7813b369d1cf0198d7267ca42ca9e879023f0658825e2b050d2845e751d876285d1d3549cb5e languageName: node linkType: hard From b838b29ac7acc4a586b04838b825a6fe4938a1c7 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Thu, 5 Oct 2023 08:58:06 +0200 Subject: [PATCH 100/154] Add Resolutions.md file --- RESOLUTIONS.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 RESOLUTIONS.md diff --git a/RESOLUTIONS.md b/RESOLUTIONS.md new file mode 100644 index 000000000000..a21b14b5309f --- /dev/null +++ b/RESOLUTIONS.md @@ -0,0 +1,11 @@ +# Resolutions and Exact versions + +This file keeps track of any resolutions or exact versions specified in any `package.json` file. Resolutions are used to specify a specific version of a package to be used, even if a different version is specified as a dependency of another package. + +## code/renderers/svelte/package.json + +svelte-check@3.4.6 (bug: 3.5.x): Type issues + +## code/ui/components/package.json + +overlayscrollbars@2.2.1 (bug: 2.3.x): The Scrollbar doesn't disappear anymore by default. It might has something to do with the `scrollbars.autoHideSuspend` option, which was introduced in 2.3.0. https://github.com/KingSora/OverlayScrollbars/blob/master/packages/overlayscrollbars/CHANGELOG.md#230 From 5e024807d7ff5e3e58ae7fa59424cb6710d88351 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Thu, 5 Oct 2023 12:13:19 +0200 Subject: [PATCH 101/154] always run registry when generating angular sandboxes --- scripts/tasks/sandbox.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scripts/tasks/sandbox.ts b/scripts/tasks/sandbox.ts index 117d10948b51..1f63527ca056 100644 --- a/scripts/tasks/sandbox.ts +++ b/scripts/tasks/sandbox.ts @@ -11,11 +11,17 @@ const logger = console; export const sandbox: Task = { description: 'Create the sandbox from a template', dependsOn: ({ template }, { link }) => { + let shouldLink = link; + + if (template.expected.framework === '@storybook/angular') { + shouldLink = false; + } + if ('inDevelopment' in template && template.inDevelopment) { return ['run-registry', 'generate']; } - if (link) { + if (shouldLink) { return ['compile']; } From dac7e2fb35583c5686f9fe7653e2f3a04f062dfa Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Thu, 5 Oct 2023 12:16:10 +0200 Subject: [PATCH 102/154] display webpack errors on build --- code/builders/builder-webpack5/src/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/code/builders/builder-webpack5/src/index.ts b/code/builders/builder-webpack5/src/index.ts index 582c3156c71b..7f87d2e8d642 100644 --- a/code/builders/builder-webpack5/src/index.ts +++ b/code/builders/builder-webpack5/src/index.ts @@ -274,6 +274,7 @@ const builder: BuilderFunction = async function* builderGeneratorFn({ startTime, } if (errors.length > 0) { + errors.forEach((e) => logger.error(e.message)); compiler.close(() => fail(new WebpackCompilationError({ errors }))); return; } From b079ed6caa3ce76282c9e6e05c6d3b326fd14f53 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 5 Oct 2023 13:24:57 +0200 Subject: [PATCH 103/154] Revert "Release tooling: Release stable releases from `latest-release`" --- .github/workflows/prepare-patch-release.yml | 11 +- ...tch-release.yml => prepare-prerelease.yml} | 29 +--- .github/workflows/publish.yml | 33 ++-- CONTRIBUTING/RELEASING.md | 164 +++++++++--------- scripts/package.json | 3 - .../__tests__/cancel-preparation-runs.test.ts | 107 ------------ .../__tests__/ensure-next-ahead.test.ts | 85 --------- .../__tests__/generate-pr-description.test.ts | 10 +- .../release/__tests__/is-pr-frozen.test.ts | 12 +- .../release/__tests__/label-patches.test.ts | 1 - scripts/release/cancel-preparation-runs.ts | 107 ------------ scripts/release/ensure-next-ahead.ts | 101 ----------- scripts/release/generate-pr-description.ts | 11 +- scripts/release/is-pr-frozen.ts | 12 +- scripts/release/pick-patches.ts | 1 - scripts/release/utils/get-changes.ts | 2 +- scripts/release/utils/get-github-info.ts | 13 +- scripts/release/utils/github-client.ts | 9 - scripts/yarn.lock | 52 ------ 19 files changed, 115 insertions(+), 648 deletions(-) rename .github/workflows/{prepare-non-patch-release.yml => prepare-prerelease.yml} (81%) delete mode 100644 scripts/release/__tests__/cancel-preparation-runs.test.ts delete mode 100644 scripts/release/__tests__/ensure-next-ahead.test.ts delete mode 100644 scripts/release/cancel-preparation-runs.ts delete mode 100644 scripts/release/ensure-next-ahead.ts diff --git a/.github/workflows/prepare-patch-release.yml b/.github/workflows/prepare-patch-release.yml index 5cdc1ba44fcf..e4f8e38df502 100644 --- a/.github/workflows/prepare-patch-release.yml +++ b/.github/workflows/prepare-patch-release.yml @@ -88,15 +88,6 @@ jobs: git config --global user.email '32066757+storybook-bot@users.noreply.github.com' yarn release:pick-patches - - name: Cancel when no patches to pick - if: steps.pick-patches.outputs.pr-count == '0' && steps.pick-patches.outputs.pr-count != null - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # From https://stackoverflow.com/a/75809743 - run: | - gh run cancel ${{ github.run_id }} - gh run watch ${{ github.run_id }} - - name: Bump version deferred id: bump-version if: steps.unreleased-changes.outputs.has-changes-to-release == 'true' @@ -130,7 +121,7 @@ jobs: git config --global user.email '32066757+storybook-bot@users.noreply.github.com' git checkout -b version-patch-from-${{ steps.versions.outputs.current }} git add . - git commit -m "Write changelog for ${{ steps.versions.outputs.next }} [skip ci]" || true + git commit -m "Write changelog for ${{ steps.versions.outputs.next }}" || true git push --force origin version-patch-from-${{ steps.versions.outputs.current }} - name: Generate PR description diff --git a/.github/workflows/prepare-non-patch-release.yml b/.github/workflows/prepare-prerelease.yml similarity index 81% rename from .github/workflows/prepare-non-patch-release.yml rename to .github/workflows/prepare-prerelease.yml index ea72d924d918..e68a7e1ef63a 100644 --- a/.github/workflows/prepare-non-patch-release.yml +++ b/.github/workflows/prepare-prerelease.yml @@ -34,7 +34,7 @@ concurrency: cancel-in-progress: true jobs: - prepare-non-patch-pull-request: + prepare-prerelease-pull-request: name: Prepare prerelease pull request runs-on: ubuntu-latest environment: release @@ -112,35 +112,21 @@ jobs: run: | yarn release:version --deferred --release-type ${{ inputs.release-type || 'prerelease' }} ${{ inputs.pre-id && format('{0} {1}', '--pre-id', inputs.pre-id) || '' }} --verbose - - name: Check release vs prerelease - id: is-prerelease - run: yarn release:is-prerelease ${{ steps.bump-version.outputs.next-version }} - - name: Write changelog env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | yarn release:write-changelog ${{ steps.bump-version.outputs.next-version }} --verbose - - name: 'Commit changes to branch: version-non-patch-from-${{ steps.bump-version.outputs.current-version }}' + - name: 'Commit changes to branch: version-prerelease-from-${{ steps.bump-version.outputs.current-version }}' working-directory: . run: | git config --global user.name 'storybook-bot' git config --global user.email '32066757+storybook-bot@users.noreply.github.com' - git checkout -b version-non-patch-from-${{ steps.bump-version.outputs.current-version }} - git add . - git commit -m "Write changelog for ${{ steps.bump-version.outputs.next-version }} [skip ci]" || true - git push --force origin version-non-patch-from-${{ steps.bump-version.outputs.current-version }} - - - name: Resolve merge-conflicts with base branch - if: steps.is-prerelease.outputs.prerelease == 'true' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - git pull origin latest-release - git checkout --ours . + git checkout -b version-prerelease-from-${{ steps.bump-version.outputs.current-version }} git add . - git commit -m "Merge latest-release into version-non-patch-from-${{ steps.bump-version.outputs.current-version }} with conflicts resolved to ours [skip ci]" + git commit -m "Write changelog for ${{ steps.bump-version.outputs.next-version }}" || true + git push --force origin version-prerelease-from-${{ steps.bump-version.outputs.current-version }} - name: Generate PR description id: description @@ -158,15 +144,14 @@ jobs: gh pr edit \ --repo "${{github.repository }}" \ --title "Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ - --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ --body "${{ steps.description.outputs.description }}" else gh pr create \ --repo "${{github.repository }}"\ --title "Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ --label "release" \ - --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ - --head version-non-patch-from-${{ steps.bump-version.outputs.current-version }} \ + --base next-release \ + --head version-prerelease-from-${{ steps.bump-version.outputs.current-version }} \ --body "${{ steps.description.outputs.description }}" fi diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index df82ca33c9a5..863b4e9ae7e2 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -5,7 +5,7 @@ on: push: branches: - latest-release - - non-patch-release + - next-release env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 @@ -36,11 +36,6 @@ jobs: gh run cancel ${{ github.run_id }} gh run watch ${{ github.run_id }} - - name: Cancel all release preparation runs - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: yarn release:cancel-preparation-runs - - name: Checkout ${{ github.ref_name }} uses: actions/checkout@v3 with: @@ -68,6 +63,7 @@ jobs: yarn install - name: Apply deferred version bump and commit + id: version-bump working-directory: . run: | CURRENT_VERSION=$(cat ./code/package.json | jq '.version') @@ -126,11 +122,12 @@ jobs: run: git fetch --tags origin # when this is a patch release from main, label any patch PRs included in the release + # when this is a stable release from next, label ALL patch PRs found, as they will per definition be "patched" now - name: Label patch PRs as picked - if: github.ref_name == 'latest-release' + if: github.ref_name == 'latest-release' || (steps.publish-needed.outputs.published == 'false' && steps.target.outputs.target == 'next' && !steps.is-prerelease.outputs.prerelease) env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: yarn release:label-patches + run: yarn release:label-patches ${{ steps.target.outputs.target == 'next' && '--all' || '' }} - name: Create GitHub Release if: steps.publish-needed.outputs.published == 'false' @@ -154,20 +151,8 @@ jobs: git merge ${{ github.ref_name }} git push origin ${{ steps.target.outputs.target }} - - name: Ensure `next` is a minor version ahead of `main` - if: steps.target.outputs.target == 'main' - run: | - git checkout next - git pull - - yarn release:ensure-next-ahead --main-version "${{ steps.version.outputs.current-version }}" - - git add .. - git commit -m "Bump next to be one minor ahead of main [skip ci]" - git push origin next - - name: Sync CHANGELOG.md from `main` to `next` - if: steps.target.outputs.target == 'main' + if: github.ref_name == 'latest-release' working-directory: . run: | git fetch origin next @@ -175,7 +160,7 @@ jobs: git pull git checkout origin/main ./CHANGELOG.md git add ./CHANGELOG.md - git commit -m "Update CHANGELOG.md for v${{ steps.version.outputs.current-version }} [skip ci]" || true + git commit -m "Update CHANGELOG.md for v${{ steps.version.outputs.current-version }} [skip ci]" git push origin next - name: Sync version JSONs from `next-release` to `main` @@ -191,6 +176,10 @@ jobs: git commit -m "Update $VERSION_FILE for v${{ steps.version.outputs.current-version }}" git push origin main + - name: Overwrite main with next + if: steps.target.outputs.target == 'next' && steps.is-prerelease.outputs.prerelease == 'false' + run: git push --force origin next:main + - name: Report job failure to Discord if: failure() env: diff --git a/CONTRIBUTING/RELEASING.md b/CONTRIBUTING/RELEASING.md index e92fa8fa36a3..0997b757b6ea 100644 --- a/CONTRIBUTING/RELEASING.md +++ b/CONTRIBUTING/RELEASING.md @@ -8,8 +8,8 @@ - [Introduction](#introduction) - [Branches](#branches) - [Release Pull Requests](#release-pull-requests) + - [Prereleases](#prereleases) - [Patch Releases](#patch-releases) - - [Non-patch Releases](#non-patch-releases) - [Publishing](#publishing) - [👉 How to Release](#-how-to-release) - [1. Find the Prepared Pull Request](#1-find-the-prepared-pull-request) @@ -21,8 +21,6 @@ - [7. See the "Publish" Workflow Finish](#7-see-the-publish-workflow-finish) - [Releasing Locally in an Emergency 🚨](#releasing-locally-in-an-emergency-) - [Canary Releases](#canary-releases) - - [With GitHub UI](#with-github-ui) - - [With the CLI](#with-the-cli) - [Versioning Scenarios](#versioning-scenarios) - [Prereleases - `7.1.0-alpha.12` -\> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13) - [Prerelease promotions - `7.1.0-alpha.13` -\> `7.1.0-beta.0`](#prerelease-promotions---710-alpha13---710-beta0) @@ -33,7 +31,7 @@ - [Prerelease of upcoming patch release - `7.0.20` -\> `7.0.21-alpha.0`](#prerelease-of-upcoming-patch-release---7020---7021-alpha0) - [Merges to `main` without versioning](#merges-to-main-without-versioning) - [FAQ](#faq) - - [When should I use the "patch:yes" label?](#when-should-i-use-the-patchyes-label) + - [When should I use the "patch" label?](#when-should-i-use-the-patch-label) - [How do I make changes to the release tooling/process?](#how-do-i-make-changes-to-the-release-toolingprocess) - [Why do I need to re-trigger workflows to update the changelog?](#why-do-i-need-to-re-trigger-workflows-to-update-the-changelog) - [Which combination of inputs creates the version bump I need?](#which-combination-of-inputs-creates-the-version-bump-i-need) @@ -45,19 +43,19 @@ This document explains the release process for the Storybook monorepo. There are two types: -1. Non-patch releases - releasing any content that is on the `next` branch, either prereleases or stable releases +1. Prereleases and major/minor releases - releasing any content that is on the `next` branch 2. Patch releases - picking any content from `next` to `main`, that needs to be patched back to the current stable minor release The release process is based on automatically created "Release Pull Requests", that when merged will trigger a new version to be released. A designated Releaser -- which may rotate between core team members -- will go through the release process in the current Release PR. This process is implemented with NodeJS scripts in [`scripts/release`](../scripts/release/) and three GitHub Actions workflows: -- [Prepare `next` PR](../.github/workflows/prepare-non-patch-release.yml) -- [Prepare patch PR](../.github/workflows/prepare-patch-release.yml) +- [Prepare Prerelease PR](../.github/workflows/prepare-prerelease.yml) +- [Prepare Patch PR](../.github/workflows/prepare-patch-release.yml) - [Publish](../.github/workflows/publish.yml) > **Note** -> This document distinguishes between **patch** and **non-patch** releases. The distinction reflects the difference between patching an existing minor version on `main` or releasing a new minor/major/prerelease from `next`. +> This document distinguishes between **patch** releases and **prereleases**. This is a simplification; stable major and minor releases work the same way as prereleases. The distinction reflects the difference between patching an existing minor version on `main` or releasing a new minor/major/prerelease from `next`. ### Branches @@ -103,7 +101,7 @@ Two GitHub Actions workflows automatically create release pull requests, one for The high-level flow is: 1. When a PR is merged to `next` (or a commit is pushed), both release pull requests are (re)generated. -2. They create a new branch - `version-(patch|non-patch)-from-`. +2. They create a new branch - `version-(patch|prerelease)-from-`. 3. They calculate which version to bump to according to the version strategy. 4. They update `CHANGELOG(.prerelease).md` with all changes detected. 5. They commit everything. @@ -117,20 +115,62 @@ A few key points to note in this flow: - The changelogs are committed during the preparation, but the packages are not version bumped and not published until later. - The release pull requests don't target their working branches (`next` and `main`), but rather `next-release` and `latest-release`. +### Prereleases + +> **Note** +> Workflow: [`prepare-prerelease.yml`](../.github/workflows/prepare-prerelease.yml) + +Prereleases are prepared with all content from the `next` branch. The changelog is generated by examining the git history, and looking up all the commits and pull requests between the current prerelease (on `next-release`) and `HEAD` of `next`. + +The default versioning strategy is to increase the current prerelease number, as described in [Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13). If there is no prerelease number (i.e., we just released a new stable minor/major version), it will add one to a patch bump, so it would go from `7.2.0` to `7.2.1-0` by default. + +Prerelease PRs are only created if there are actual changes to release. Content labeled with "build" or "documentation" is [not considered "releasable"](#which-changes-are-considered-releasable-and-what-does-it-mean) and is not user-facing, so it doesn't make sense to create a release. This is explained in more detail in [Why are no release PRs being prepared?](#why-are-no-release-prs-being-prepared). + +The preparation workflow will create a new branch from `next`, called `version-prerelease-from-`, and open a pull request targeting `next-release`. When the Releaser merges it, the [publish workflow](#publishing) will merge `next-release` into `next`. + +Here's an example of a workflow where a feature and a bugfix have been created and then released to a new `7.1.0-alpha.29` version. All the commits highlighted with square dots are the ones that will be considered when generating the changelog. + +```mermaid +%%{init: { 'gitGraph': { 'mainBranchName': 'next' } } }%% +gitGraph + commit + branch next-release + commit tag: "7.1.0-alpha.28" + checkout next + merge next-release + commit type: HIGHLIGHT id: "direct commit" + branch new-feature + commit + commit + checkout next + merge new-feature type: HIGHLIGHT + branch some-bugfix + commit + checkout next + merge some-bugfix type: HIGHLIGHT + branch version-prerelease-from-7.1.0-alpha.28 + commit id: "write changelog" + checkout next-release + merge version-prerelease-from-7.1.0-alpha.28 + commit id: "bump versions" tag: "7.1.0-alpha.29" + checkout next + merge next-release +``` + ### Patch Releases > **Note** > Workflow: [`prepare-patch-release.yml`](../.github/workflows/prepare-patch-release.yml) -Patch releases are created by [cherry-picking](https://www.atlassian.com/git/tutorials/cherry-pick) any merged, unreleased pull requests that have the "**patch:yes**" label applied to the `next` branch. The merge commit of said pull requests are cherry-picked. +Patch releases are created by [cherry-picking](https://www.atlassian.com/git/tutorials/cherry-pick) any merged, unreleased pull requests that have the "**patch**" label applied to the `next` branch. The merge commit of said pull requests are cherry-picked. -Sometimes it is desired to pick pull requests back to `main` even if they are not considered "releasable". Unlike non-patch-release preparation, patch releases will not be canceled if the content is not releasable. It might not make sense to create a new patch release if the changes are only for documentation and/or internal build systems. However, getting the changes back to `main` is the only way to deploy the documentation to the production docs site. You may also want to cherry-pick changes to internal CI to fix issues. These are valid scenarios where you want to cherry-pick the changes without being blocked on "releasable" content. In these cases, where all cherry picks are non-releasable, the preparation workflow creates a "merging" pull request instead of a "releasing" pull request. This pull request does not bump versions or update changelogs; it just cherry-picks the changes and allows you to merge them into `latest-release` -> `main`. +Sometimes it is desired to pick pull requests back to `main` even if they are not considered "releasable". Unlike prerelease preparation, patch releases will not be canceled if the content is not releasable. It might not make sense to create a new patch release if the changes are only for documentation and/or internal build systems. However, getting the changes back to `main` is the only way to deploy the documentation to the production docs site. You may also want to cherry-pick changes to internal CI to fix issues. These are valid scenarios where you want to cherry-pick the changes without being blocked on "releasable" content. In these cases, where all cherry picks are non-releasable, the preparation workflow creates a "merging" pull request instead of a "releasing" pull request. This pull request does not bump versions or update changelogs; it just cherry-picks the changes and allows you to merge them into `latest-release` -> `main`. The preparation workflow sequentially cherry-picks each patch pull request to its branch. If this cherry-picking fails due to conflicts or other reasons, it is ignored and the next pull request is processed. All failing cherry-picks are listed in the release pull request's description, for the Releaser to manually cherry-pick during the release process. This problem occurs more often when `main` and `next` diverge, i.e. the longer it has been since a stable major/minor release. -Similar to the non-patch-release flow, the preparation workflow for patches will create a new branch from `main` called `version-patch-from-`, and open a pull request that targets `latest-release`. When the pull request is merged by the Releaser, the [publish workflow](#publishing) will eventually merge `latest-release` into `main`. +Similar to the prerelease flow, the preparation workflow for patches will create a new branch from `main` called `version-patch-from-`, and open a pull request that targets `latest-release`. When the pull request is merged by the Releaser, the [publish workflow](#publishing) will eventually merge `latest-release` into `main`. -Here is an example of a workflow where a feature and two bug fixes have been merged to `next`. Only the bug fixes have the "**patch:yes**" label, so only those two go into the new `7.0.19` release. Note that it is the merge commits to `next` that are cherry-picked, not the commits on the bugfix branches. +Here is an example of a workflow where a feature and two bug fixes have been merged to `next`. Only the bug fixes have the "**patch**" label, so only those two go into the new `7.0.19` release. Note that it is the merge commits to `next` that are cherry-picked, not the commits on the bugfix branches. ```mermaid gitGraph @@ -168,62 +208,21 @@ gitGraph merge latest-release ``` -### Non-patch Releases - -> **Note** -> Workflow: [`prepare-non-patch-release.yml`](../.github/workflows/prepare-non-patch-release.yml) - -Non-patch-releases are prepared with all content from the `next` branch. The changelog is generated by examining the git history, and looking up all the commits and pull requests between the current prerelease (on `next-release`) and `HEAD` of `next`. - -The default versioning strategy is to increase the current prerelease number, as described in [Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13). If there is no prerelease number (i.e., we just released a new stable minor/major version), it will add one to a patch bump, so it would go from `7.2.0` to `7.2.1-0` by default. - -`next`-PRs are only created if there are actual changes to release. Content labeled with "build" or "documentation" is [not considered "releasable"](#which-changes-are-considered-releasable-and-what-does-it-mean) and is not user-facing, so it doesn't make sense to create a release. This is explained in more detail in [Why are no release PRs being prepared?](#why-are-no-release-prs-being-prepared). - -The preparation workflow will create a new branch from `next`, called `version-non-patch-from-`, and open a pull request targeting `next-release`. When the Releaser merges it, the [publish workflow](#publishing) will merge `next-release` into `next`. - -Here's an example of a workflow where a feature and a bugfix have been created and then released to a new `7.1.0-alpha.29` version. All the commits highlighted with square dots are the ones that will be considered when generating the changelog. - -```mermaid -%%{init: { 'gitGraph': { 'mainBranchName': 'next' } } }%% -gitGraph - commit - branch next-release - commit tag: "7.1.0-alpha.28" - checkout next - merge next-release - commit type: HIGHLIGHT id: "direct commit" - branch new-feature - commit - commit - checkout next - merge new-feature type: HIGHLIGHT - branch some-bugfix - commit - checkout next - merge some-bugfix type: HIGHLIGHT - branch version-non-patch-from-7.1.0-alpha.28 - commit id: "write changelog" - checkout next-release - merge version-non-patch-from-7.1.0-alpha.28 - commit id: "bump versions" tag: "7.1.0-alpha.29" - checkout next - merge next-release -``` - ### Publishing > **Note** > Workflow: [`publish.yml`](../.github/workflows/publish.yml) -When either a non-patch-release or a patch release branch is merged into `latest-release` or `next-release`, the publishing workflow is triggered. This workflow performs the following tasks: +When either a prerelease or a patch release branch is merged into `main` or `next-release`, the publishing workflow is triggered. This workflow performs the following tasks: 1. Bump versions of all packages according to the plan from the prepared PRs 2. Install dependencies and build all packages. 3. Publish packages to npm. -4. (If this is a patch release, add the "**patch:done**" label to all relevant pull requests.) +4. (If this is a patch release, add the "**picked**" label to all relevant pull requests.) 5. Create a new GitHub Release, including a version tag in the release branch (`latest-release` or `next-release`). 6. Merge the release branch into the core branch (`main` or `next`). 7. (If this is a patch release, copy the `CHANGELOG.md` changes from `main` to `next`.) +8. (If this is [a promotion from a prerelease to a stable release](#minormajor-releases---710-rc2---710-or-800-rc3---800), force push `next` to `main`.) The publish workflow runs in the "release" GitHub environment, which has the npm token required to publish packages to the `@storybook` npm organization. For security reasons, this environment can only be accessed from the four "core" branches: `main`, `next`, `latest-release` and `next-release`. @@ -245,7 +244,7 @@ The high-level workflow for a Releaser is: Look for the release pull request that has been prepared for the type of release you're about to release: -- "Release: Prerelease|Minor|Major ``" for releases from `next` +- "Release: Prerelease ``" for prereleases - "Release: Patch ``" for patch releases - "Release: Merge patches to `main` (without version bump)" for patches without releases @@ -267,7 +266,7 @@ It is important to verify that the release includes the right content. Key eleme For example, check if it's a breaking change that isn't allowed in a minor prerelease, or if it's a new feature in a patch release. If it's not suitable, revert the pull request and notify the author. -Sometimes when doing a patch release, a pull request can have the "patch:yes" label but you don't want that change to be part of this release. Maybe you're not confident in the change, or you require more input from maintainers before releasing it. In those situations you should remove the "patch:yes" label from the pull request and follow through with the release (make sure to re-trigger the workflow). When the release is done, add the "patch:yes" label back again, so it will be part of the next release. +Sometimes when doing a patch release, a pull request can have the "patch" label but you don't want that change to be part of this release. Maybe you're not confident in the change, or you require more input from maintainers before releasing it. In those situations you should remove the "patch" label from the pull request and follow through with the release (make sure to re-trigger the workflow). When the release is done, add the patch label back again, so it will be part of the next release. 2. Is the pull request title correct? @@ -301,12 +300,12 @@ When triggering the workflows, always choose the `next` branch as the base, unle The workflows can be triggered here: -- [Prepare next PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) +- [Prepare prerelease PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-prerelease.yml) - [Prepare patch PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml) -Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - Non-patch Releases](#non-patch-releases). When triggering the prerelease workflow manually, you can optionally add inputs: +Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - Prereleases](#prereleases). When triggering the prerelease workflow manually, you can optionally add inputs: -![Screenshot of triggering the non-patch-release workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) +![Screenshot of triggering the prerelease workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) See [Versioning Scenarios](#versioning-scenarios) for a description of each version bump scenario, how to activate it and what it does, and [Which combination of inputs creates the version bump I need?](#which-combination-of-inputs-creates-the-version-bump-i-need) for a detailed description of the workflow inputs. @@ -340,7 +339,7 @@ You can inspect the workflows to see what they are running and copy that, but he Before you start you should make sure that your working tree is clean and the repository is in a clean state by running `git clean -xdf`. -1. Create a new branch from either `next` or `main` (patches) +1. Create a new branch from either `next` (prereleases) or `main` (patches) 2. Get all tags: `git fetch --tags origin` 3. Install dependencies: `yarn task --task=install --start-from=install` 4. `cd scripts` @@ -376,7 +375,7 @@ Before you start you should make sure that your working tree is clean and the re 4. `git add ./CHANGELOG.md` 5. `git commit -m "Update CHANGELOG.md for v"` 6. `git push origin` -19. (If non-patch-release) Sync `versions/next.json` from `next` to `main` +19. (If prerelease) Sync `versions/next.json` from `next` to `main` 1. `git checkout main` 2. `git pull` 3. `git checkout origin/next ./docs/versions/next.json` @@ -435,7 +434,7 @@ There are multiple types of releases that use the same principles, but are done ### Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13` -This is the default strategy for Non-patch releases, there's nothing special needed to trigger this scenario. +This is the default strategy for prereleases, there's nothing special needed to trigger this scenario. ### Prerelease promotions - `7.1.0-alpha.13` -> `7.1.0-beta.0` @@ -446,12 +445,14 @@ To promote a prerelease to a new prerelease ID, during the [Re-trigger the Workf ### Minor/major releases - `7.1.0-rc.2` -> `7.1.0` or `8.0.0-rc.3` -> `8.0.0` -To promote a prerelease to a stable reelase, during the [Re-trigger the Workflow](#4-re-trigger-the-workflow) step, choose: +To promote a prerelease to a new prerelease ID, during the [Re-trigger the Workflow](#4-re-trigger-the-workflow) step, choose: -- Release type: Patch, Minor or Major +- Release type: Patch - Prerelease ID: Leave empty -This scenario is special as it will target `latest-release` instead of `next-release`, and thus merge into `main` when done, and not `next`. So it goes `next` -> `version-non-patch-from-` -> `latest-release` -> `main`. +The "Patch" release type ensures the current prerelease version gets promoted to a stable version without any major/minor/patch bumps. + +This scenario is special as it turns the `next` branch into a stable branch (until the next prerelease). Therefore, this will also force push `next` to `main`, to ensure that `main` contains the latest stable release. Consequently, the history for `main` is lost. ### First prerelease of new major/minor - `7.1.0` -> `7.2.0-alpha.0` or `8.0.0-alpha.0` @@ -480,13 +481,13 @@ As described in more details in [the Patch Releases section](#patch-releases), t ## FAQ -### When should I use the "patch:yes" label? +### When should I use the "patch" label? -Not all pull requests need to be patched back to the stable release, which is why only those with the **"patch:yes"** label gets that treatment. But how do you decide whether or not a give pull requests should have that label? +Not all pull requests need to be patched back to the stable release, which is why only those with the **"patch"** label gets that treatment. But how do you decide whether or not a give pull requests should have that label? -First of all, patches are only for important and time-sensitive fixes, and not minor improvements or completely new features. A pull request that introduces a new feature shouldn't be patched back to the stable release. +First of all, patches are only for fixes and minor improvements, and not completely new features. A pull request that introduces a new feature shouldn't be patched back to the stable release. -Second, PRs that changes the code in a big architectural way should ideally not be patched back either, because that makes merge conflicts more likely in the future. +Second, any destabilizing changes shouldn't be patched back either. Breaking changes are reserved for major releases, but changes can be destabilizing without being strictly breaking, and those shouldn't be patched back either. An example is moving the settings panel in the manager to a completely different place, but with the same functionality. Many wouldn't consider this breaking because no usage will stop working because of this, but it can be considered a destabilizing change because user behavior have to change as a result of this. When in doubt ask the core team for their input. @@ -496,15 +497,12 @@ The whole process is based on [GitHub Action workflows](../.github/workflows/) a The short answer to "how", is to make changes as a regular pull request that is also patched back to `main`. -
- There's a longer answer too, but it's pretty confusing +There's a longer answer too, but it's pretty confusing: The scripts run from either `main` or `next`, so if you're changing a release script, you must patch it back to `main` for it to have an effect on patch releases. If you need the change to take effect immediately, you must manually cherry pick it to `main`. For workflow file changes, they usually run from `next`, but patching them back is recommended for consistency. The "publish" workflow runs from `latest-release` and `next-release`, so you should always patch changes back for _that_. 🙃 -
- ### Why do I need to re-trigger workflows to update the changelog? Changes to pull requests' titles, labels or even reverts won't be reflected in the release pull request. This is because the workflow only triggers on pushes to `next`, not when pull request meta data is changed. @@ -538,7 +536,7 @@ If a pull request does not have any of the above labels at the time of release, This is most likely because `next` only contains [unreleasable changes](#which-changes-are-considered-releasable-and-what-does-it-mean), which causes the preparation workflow to cancel itself. That's because it doesn't make sense to prepare a new release if all the changes are unreleasable, as that wouldn't bump the version nor write a new changelog entry, so "releasing" it would just merge it back to `next` without any differences. -You can always see the workflows and if they have been cancelled [here for non-patch releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) and [here for patch releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml). +You can always see the workflows and if they have been cancelled [here for prereleases](https://github.com/storybookjs/storybook/actions/workflows/prepare-prerelease.yml) and [here for patch releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml). ### Why do we need separate release branches? @@ -560,11 +558,11 @@ gitGraph branch some-simultaneous-bugfix commit checkout next - branch version-non-patch-from-7.1.0-alpha.28 + branch version-prerelease-from-7.1.0-alpha.28 commit id checkout next merge some-simultaneous-bugfix type: HIGHLIGHT id: "whoops!" - merge version-non-patch-from-7.1.0-alpha.28 tag: "v7.1.0-alpha.29" + merge version-prerelease-from-7.1.0-alpha.28 tag: "v7.1.0-alpha.29" ``` When publishing at the last commit with tag `v7.1.0-alpha.29`, it will publish whatever the content is at that point (all the square dots), which includes the "whoops!" commit from merging the bugfix. But the bugfix was never part of the release pull request because it got prepared before the bugfix was merged in. @@ -584,19 +582,19 @@ gitGraph branch some-simultanous-bugfix commit checkout next - branch version-non-patch-from-7.1.0-alpha.28 + branch version-prerelease-from-7.1.0-alpha.28 commit id: "write changelog" checkout next merge some-simultanous-bugfix id: "whoops!" checkout next-release - merge version-non-patch-from-7.1.0-alpha.28 + merge version-prerelease-from-7.1.0-alpha.28 commit id: "bump versions" tag: "v7.1.0-alpha.29" checkout next merge next-release - branch version-non-patch-from-7.1.0-alpha.29 + branch version-prerelease-from-7.1.0-alpha.29 commit id: "write changelog again" checkout next-release - merge version-non-patch-from-7.1.0-alpha.29 + merge version-prerelease-from-7.1.0-alpha.29 commit id: "bump versions again" tag: "v7.1.0-alpha.30" checkout next merge next-release diff --git a/scripts/package.json b/scripts/package.json index f220b8f88742..8a1ace601a4d 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -13,8 +13,6 @@ "lint:js:cmd": "cross-env NODE_ENV=production eslint --cache --cache-location=../.cache/eslint --ext .js,.jsx,.json,.html,.ts,.tsx,.mjs --report-unused-disable-directives", "lint:package": "sort-package-json", "migrate-docs": "node --require esbuild-register ./ts-to-ts49.ts", - "release:cancel-preparation-runs": "ts-node --swc ./release/cancel-preparation-runs.ts", - "release:ensure-next-ahead": "ts-node --swc ./release/ensure-next-ahead.ts", "release:generate-pr-description": "ts-node --swc ./release/generate-pr-description.ts", "release:get-changelog-from-file": "ts-node --swc ./release/get-changelog-from-file.ts", "release:get-current-version": "ts-node --swc ./release/get-current-version.ts", @@ -75,7 +73,6 @@ "@jest/globals": "^29.3.1", "@nx/workspace": "16.2.1", "@octokit/graphql": "^5.0.5", - "@octokit/request": "^8.1.2", "@storybook/eslint-config-storybook": "^3.1.2", "@storybook/jest": "next", "@storybook/linter-config": "^3.1.2", diff --git a/scripts/release/__tests__/cancel-preparation-runs.test.ts b/scripts/release/__tests__/cancel-preparation-runs.test.ts deleted file mode 100644 index aaf8cdbec718..000000000000 --- a/scripts/release/__tests__/cancel-preparation-runs.test.ts +++ /dev/null @@ -1,107 +0,0 @@ -/* eslint-disable global-require */ -/* eslint-disable no-underscore-dangle */ -import { - PREPARE_NON_PATCH_WORKFLOW_PATH, - PREPARE_PATCH_WORKFLOW_PATH, - run as cancelPreparationWorkflows, -} from '../cancel-preparation-runs'; -import * as github_ from '../utils/github-client'; - -jest.mock('../utils/github-client'); - -const github = jest.mocked(github_); - -jest.spyOn(console, 'log').mockImplementation(() => {}); -jest.spyOn(console, 'warn').mockImplementation(() => {}); -jest.spyOn(console, 'error').mockImplementation(() => {}); - -describe('Cancel preparation runs', () => { - beforeEach(() => { - jest.clearAllMocks(); - github.githubRestClient.mockImplementation(((route: string, options: any) => { - switch (route) { - case 'GET /repos/{owner}/{repo}/actions/workflows': - return { - data: { - workflows: [ - { - id: 1, - path: PREPARE_PATCH_WORKFLOW_PATH, - }, - { - id: 2, - path: PREPARE_NON_PATCH_WORKFLOW_PATH, - }, - ], - }, - }; - case 'GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs': - return { - data: { - workflow_runs: [ - { - id: options.workflow_id === 1 ? 100 : 200, - status: 'in_progress', - }, - { - id: options.workflow_id === 1 ? 150 : 250, - status: 'completed', - }, - ], - }, - }; - case 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel': - return undefined; // success - default: - throw new Error(`Unexpected route: ${route}`); - } - }) as any); - }); - - it('should fail early when no GH_TOKEN is set', async () => { - delete process.env.GH_TOKEN; - await expect(cancelPreparationWorkflows()).rejects.toThrowErrorMatchingInlineSnapshot( - `"GH_TOKEN environment variable must be set, exiting."` - ); - }); - - it('should cancel all running preparation workflows in GitHub', async () => { - process.env.GH_TOKEN = 'MY_SECRET'; - - await expect(cancelPreparationWorkflows()).resolves.toBeUndefined(); - - expect(github.githubRestClient).toHaveBeenCalledTimes(5); - expect(github.githubRestClient).toHaveBeenCalledWith( - 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', - { - owner: 'storybookjs', - repo: 'storybook', - run_id: 100, - } - ); - expect(github.githubRestClient).toHaveBeenCalledWith( - 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', - { - owner: 'storybookjs', - repo: 'storybook', - run_id: 200, - } - ); - expect(github.githubRestClient).not.toHaveBeenCalledWith( - 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', - { - owner: 'storybookjs', - repo: 'storybook', - run_id: 150, - } - ); - expect(github.githubRestClient).not.toHaveBeenCalledWith( - 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', - { - owner: 'storybookjs', - repo: 'storybook', - run_id: 250, - } - ); - }); -}); diff --git a/scripts/release/__tests__/ensure-next-ahead.test.ts b/scripts/release/__tests__/ensure-next-ahead.test.ts deleted file mode 100644 index 0b192d39b106..000000000000 --- a/scripts/release/__tests__/ensure-next-ahead.test.ts +++ /dev/null @@ -1,85 +0,0 @@ -/* eslint-disable global-require */ -/* eslint-disable no-underscore-dangle */ -import path from 'path'; -import { run as ensureNextAhead } from '../ensure-next-ahead'; -import * as gitClient_ from '../utils/git-client'; -import * as bumpVersion_ from '../version'; - -jest.mock('../utils/git-client', () => jest.requireActual('jest-mock-extended').mockDeep()); -const gitClient = jest.mocked(gitClient_); - -// eslint-disable-next-line jest/no-mocks-import -jest.mock('fs-extra', () => require('../../../code/__mocks__/fs-extra')); -const fsExtra = require('fs-extra'); - -jest.mock('../version', () => jest.requireActual('jest-mock-extended').mockDeep()); -const bumpVersion = jest.mocked(bumpVersion_); - -jest.spyOn(console, 'log').mockImplementation(() => {}); -jest.spyOn(console, 'warn').mockImplementation(() => {}); -jest.spyOn(console, 'error').mockImplementation(() => {}); - -const CODE_PACKAGE_JSON_PATH = path.join(__dirname, '..', '..', '..', 'code', 'package.json'); - -describe('Ensure next ahead', () => { - beforeEach(() => { - jest.clearAllMocks(); - gitClient.git.status.mockResolvedValue({ current: 'next' } as any); - fsExtra.__setMockFiles({ - [CODE_PACKAGE_JSON_PATH]: JSON.stringify({ version: '2.0.0' }), - }); - }); - - it('should throw when main-version is missing', async () => { - await expect(ensureNextAhead({})).rejects.toThrowErrorMatchingInlineSnapshot(` - "[ - { - "code": "invalid_type", - "expected": "string", - "received": "undefined", - "path": [ - "mainVersion" - ], - "message": "Required" - } - ]" - `); - }); - - it('should throw when main-version is not a semver string', async () => { - await expect(ensureNextAhead({ mainVersion: '200' })).rejects - .toThrowErrorMatchingInlineSnapshot(` - "[ - { - "code": "custom", - "message": "main-version must be a valid semver version string like '7.4.2'.", - "path": [] - } - ]" - `); - }); - - it('should not bump version when next is already ahead of main', async () => { - await expect(ensureNextAhead({ mainVersion: '1.0.0' })).resolves.toBeUndefined(); - expect(bumpVersion.run).not.toHaveBeenCalled(); - }); - - it('should bump version to 3.1.0-alpha.0 when main is 3.0.0 and next is 2.0.0', async () => { - await expect(ensureNextAhead({ mainVersion: '3.0.0' })).resolves.toBeUndefined(); - expect(bumpVersion.run).toHaveBeenCalledWith({ exact: '3.1.0-alpha.0' }); - }); - - it('should bump version to 2.1.0-alpha.0 when main and next are both 2.0.0', async () => { - await expect(ensureNextAhead({ mainVersion: '2.0.0' })).resolves.toBeUndefined(); - expect(bumpVersion.run).toHaveBeenCalledWith({ exact: '2.1.0-alpha.0' }); - }); - - it('should bump version to 2.1.0-alpha.0 when main is 2.0.0 and and next is 2.0.0-rc.10', async () => { - fsExtra.__setMockFiles({ - [CODE_PACKAGE_JSON_PATH]: JSON.stringify({ version: '2.0.0-rc.10' }), - }); - - await expect(ensureNextAhead({ mainVersion: '2.0.0' })).resolves.toBeUndefined(); - expect(bumpVersion.run).toHaveBeenCalledWith({ exact: '2.1.0-alpha.0' }); - }); -}); diff --git a/scripts/release/__tests__/generate-pr-description.test.ts b/scripts/release/__tests__/generate-pr-description.test.ts index 50aa5de8e019..b0f1bbe89db5 100644 --- a/scripts/release/__tests__/generate-pr-description.test.ts +++ b/scripts/release/__tests__/generate-pr-description.test.ts @@ -15,7 +15,6 @@ describe('Generate PR Description', () => { labels: ['bug', 'build', 'other label', 'patch:yes'], commit: 'abc123', pull: 42, - state: 'MERGED', links: { commit: '[abc123](https://github.com/storybookjs/storybook/commit/abc123)', pull: '[#42](https://github.com/storybookjs/storybook/pull/42)', @@ -27,7 +26,6 @@ describe('Generate PR Description', () => { id: null, user: 'storybook-bot', pull: null, - state: null, commit: '012b58140c3606efeacbe99c0c410624b0a1ed1f', title: 'Bump version on `next`: preminor (alpha) from 7.2.0 to 7.3.0-alpha.0', labels: null, @@ -43,7 +41,6 @@ describe('Generate PR Description', () => { user: 'shilman', title: 'Some title for a "direct commit"', labels: null, - state: null, commit: '22bb11', pull: null, links: { @@ -58,7 +55,6 @@ describe('Generate PR Description', () => { title: 'Another PR `title` for docs', labels: ['another label', 'documentation', 'patch:yes'], commit: 'ddd222', - state: 'MERGED', pull: 11, links: { commit: '[ddd222](https://github.com/storybookjs/storybook/commit/ddd222)', @@ -73,7 +69,6 @@ describe('Generate PR Description', () => { labels: ['feature request', 'other label'], commit: 'wow1337', pull: 48, - state: 'MERGED', links: { commit: '[wow1337](https://github.com/storybookjs/storybook/commit/wow1337)', pull: '[#48](https://github.com/storybookjs/storybook/pull/48)', @@ -86,7 +81,6 @@ describe('Generate PR Description', () => { title: 'Some PR title with a missing label', labels: ['incorrect label', 'other label'], commit: 'bad999', - state: 'MERGED', pull: 77, links: { commit: '[bad999](https://github.com/storybookjs/storybook/commit/bad999)', @@ -219,7 +213,7 @@ For each pull request below, you need to either manually cherry pick it, or disc - [ ] [#42](https://github.com/storybookjs/storybook/pull/42): \\\`git cherry-pick -m1 -x abc123\\\` - If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. + If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-prerelease.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. Feel free to manually commit any changes necessary to this branch **after** you\\'ve done the last re-generation, following the [Make Manual Changes](https://github.com/storybookjs/storybook/blob/next/CONTRIBUTING/RELEASING.md#5-make-manual-changes) section in the docs, *especially* if you\\'re making changes to the changelog. @@ -346,7 +340,7 @@ For each pull request below, you need to either manually cherry pick it, or disc - If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. + If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-prerelease.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. Feel free to manually commit any changes necessary to this branch **after** you\\'ve done the last re-generation, following the [Make Manual Changes](https://github.com/storybookjs/storybook/blob/next/CONTRIBUTING/RELEASING.md#5-make-manual-changes) section in the docs, *especially* if you\\'re making changes to the changelog. diff --git a/scripts/release/__tests__/is-pr-frozen.test.ts b/scripts/release/__tests__/is-pr-frozen.test.ts index 00331e0555cd..63747a863ddf 100644 --- a/scripts/release/__tests__/is-pr-frozen.test.ts +++ b/scripts/release/__tests__/is-pr-frozen.test.ts @@ -26,7 +26,6 @@ describe('isPrFrozen', () => { it('should return true when PR is frozen', async () => { getPullInfoFromCommit.mockResolvedValue({ labels: ['freeze'], - state: 'OPEN', }); await expect(isPrFrozen({ patch: false })).resolves.toBe(true); }); @@ -34,15 +33,6 @@ describe('isPrFrozen', () => { it('should return false when PR is not frozen', async () => { getPullInfoFromCommit.mockResolvedValue({ labels: [], - state: 'OPEN', - }); - await expect(isPrFrozen({ patch: false })).resolves.toBe(false); - }); - - it('should return false when PR is closed', async () => { - getPullInfoFromCommit.mockResolvedValue({ - labels: ['freeze'], - state: 'CLOSED', }); await expect(isPrFrozen({ patch: false })).resolves.toBe(false); }); @@ -64,7 +54,7 @@ describe('isPrFrozen', () => { }); await isPrFrozen({ patch: false }); - expect(simpleGit.__fetch).toHaveBeenCalledWith('origin', 'version-non-patch-from-1.0.0', { + expect(simpleGit.__fetch).toHaveBeenCalledWith('origin', 'version-prerelease-from-1.0.0', { '--depth': 1, }); }); diff --git a/scripts/release/__tests__/label-patches.test.ts b/scripts/release/__tests__/label-patches.test.ts index d43290a1828c..d98abc7eb763 100644 --- a/scripts/release/__tests__/label-patches.test.ts +++ b/scripts/release/__tests__/label-patches.test.ts @@ -58,7 +58,6 @@ const pullInfoMock = { commit: '930b47f011f750c44a1782267d698ccdd3c04da3', title: 'Legal: Fix license', labels: ['documentation', 'patch:yes', 'patch:done'], - state: 'MERGED', links: { commit: '[`930b47f011f750c44a1782267d698ccdd3c04da3`](https://github.com/storybookjs/storybook/commit/930b47f011f750c44a1782267d698ccdd3c04da3)', diff --git a/scripts/release/cancel-preparation-runs.ts b/scripts/release/cancel-preparation-runs.ts deleted file mode 100644 index 630bfb4847b3..000000000000 --- a/scripts/release/cancel-preparation-runs.ts +++ /dev/null @@ -1,107 +0,0 @@ -/** - * This script cancels all running preparation workflows in GitHub. - * It will fetch all active runs for the preparation workflows, and cancel them. - */ -/* eslint-disable no-console */ -import chalk from 'chalk'; -import program from 'commander'; -import dedent from 'ts-dedent'; -import { githubRestClient } from './utils/github-client'; - -program - .name('cancel-preparation-workflows') - .description('cancel all running preparation workflows in GitHub'); - -export const PREPARE_PATCH_WORKFLOW_PATH = '.github/workflows/prepare-patch-release.yml'; -export const PREPARE_NON_PATCH_WORKFLOW_PATH = '.github/workflows/prepare-non-patch-release.yml'; - -export const run = async () => { - if (!process.env.GH_TOKEN) { - throw new Error('GH_TOKEN environment variable must be set, exiting.'); - } - - console.log(`🔎 Looking for workflows to cancel...`); - const allWorkflows = await githubRestClient('GET /repos/{owner}/{repo}/actions/workflows', { - owner: 'storybookjs', - repo: 'storybook', - }); - - const preparePatchWorkflowId = allWorkflows.data.workflows.find( - ({ path }) => path === PREPARE_PATCH_WORKFLOW_PATH - )?.id; - const prepareNonPatchWorkflowId = allWorkflows.data.workflows.find( - ({ path }) => path === PREPARE_NON_PATCH_WORKFLOW_PATH - )?.id; - - console.log(`Found workflow IDs for the preparation workflows: - ${chalk.blue(PREPARE_PATCH_WORKFLOW_PATH)}: ${chalk.green(preparePatchWorkflowId)} - ${chalk.blue(PREPARE_NON_PATCH_WORKFLOW_PATH)}: ${chalk.green(prepareNonPatchWorkflowId)}`); - - if (!preparePatchWorkflowId || !prepareNonPatchWorkflowId) { - throw new Error(dedent`🚨 Could not find workflow IDs for the preparation workflows - - Looked for paths: "${chalk.blue(PREPARE_PATCH_WORKFLOW_PATH)}" and "${chalk.blue( - PREPARE_NON_PATCH_WORKFLOW_PATH - )}", are they still correct? - - Found workflows: - ${JSON.stringify(allWorkflows.data.workflows, null, 2)}`); - } - - console.log('🔍 Fetching patch and non-patch runs for preparation workflows...'); - const [patchRuns, nonPatchRuns] = await Promise.all([ - githubRestClient('GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs', { - owner: 'storybookjs', - repo: 'storybook', - workflow_id: preparePatchWorkflowId, - }), - githubRestClient('GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs', { - owner: 'storybookjs', - repo: 'storybook', - workflow_id: prepareNonPatchWorkflowId, - }), - ]); - console.log('✅ Successfully fetched patch and non-patch runs for preparation workflows.'); - - const runsToCancel = patchRuns.data.workflow_runs - .concat(nonPatchRuns.data.workflow_runs) - .filter(({ status }) => - ['in_progress', 'pending', 'queued', 'requested', 'waiting'].includes(status) - ); - - if (runsToCancel.length === 0) { - console.log('👍 No runs to cancel.'); - return; - } - - console.log(`🔍 Found ${runsToCancel.length} runs to cancel. Cancelling them now: - ${runsToCancel - .map((r) => `${chalk.green(r.path)} - ${chalk.green(r.id)}: ${chalk.blue(r.status)}`) - .join('\n ')}`); - - const result = await Promise.allSettled( - runsToCancel.map((r) => - githubRestClient('POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', { - owner: 'storybookjs', - repo: 'storybook', - run_id: r.id, - }) - ) - ); - - if (result.some((r) => r.status === 'rejected')) { - console.warn('⚠️ Some runs could not be cancelled:'); - result.forEach((r, index) => { - if (r.status === 'rejected') { - console.warn(`Run ID: ${runsToCancel[index].id} - Reason: ${r.reason}`); - } - }); - } else { - console.log('✅ Successfully cancelled all preparation runs.'); - } -}; - -if (require.main === module) { - run().catch((err) => { - console.error(err); - // this is non-critical work, so we don't want to fail the CI build if this fails - }); -} diff --git a/scripts/release/ensure-next-ahead.ts b/scripts/release/ensure-next-ahead.ts deleted file mode 100644 index 1aa32bfd932c..000000000000 --- a/scripts/release/ensure-next-ahead.ts +++ /dev/null @@ -1,101 +0,0 @@ -/** - * This script ensures that next is always one minor ahead of main. - * This is needed when releasing a stable from next. - * Next will be at eg. 7.4.0-alpha.4, and main will be at 7.3.0. - * Then we release 7.4.0 by merging next to latest-release to main. - * We then ensure here that next is bumped to 7.5.0-alpha.0 - without releasing it. - * If this is a patch release bumping main to 7.3.1, next will not be touched because it's already ahead. - */ - -/* eslint-disable no-console */ -import chalk from 'chalk'; -import path from 'path'; -import program from 'commander'; -import semver from 'semver'; -import { z } from 'zod'; -import { readJson } from 'fs-extra'; -import { run as bumpVersion } from './version'; -import { git } from './utils/git-client'; - -program - .name('ensure-next-ahead') - .description('ensure the "next" branch is always a minor version ahead of "main"') - .requiredOption('-M, --main-version ', 'The version currently on the "main" branch'); - -const optionsSchema = z - .object({ - mainVersion: z.string(), - }) - .refine((schema) => semver.valid(schema.mainVersion), { - message: "main-version must be a valid semver version string like '7.4.2'.", - }); - -type Options = { - mainVersion: string; -}; - -const CODE_DIR_PATH = path.join(__dirname, '..', '..', 'code'); -const CODE_PACKAGE_JSON_PATH = path.join(CODE_DIR_PATH, 'package.json'); - -const validateOptions = (options: { [key: string]: any }): options is Options => { - optionsSchema.parse(options); - return true; -}; - -const getCurrentVersion = async () => { - const { version } = await readJson(CODE_PACKAGE_JSON_PATH); - console.log(`📐 Current version of Storybook is ${chalk.green(version)}`); - return version; -}; - -export const run = async (options: unknown) => { - if (!validateOptions(options)) { - return; - } - const { mainVersion } = options; - - const { current: currentGitBranch } = await git.status(); - - if (currentGitBranch !== 'next') { - console.warn( - `🚧 The current branch is not "next" but "${currentGitBranch}", this only really makes sense to run on the "next" branch.` - ); - } - - // Get the current version from code/package.json - const currentNextVersion = await getCurrentVersion(); - if (semver.gt(currentNextVersion, mainVersion)) { - console.log( - `✅ The version on next (${chalk.green( - currentNextVersion - )}) is already ahead of the version on main (${chalk.green(mainVersion)}), no action needed.` - ); - return; - } - - const nextNextVersion = `${semver.inc(mainVersion, 'minor')}-alpha.0`; - - console.log( - `🤜 The version on next (${chalk.green( - currentNextVersion - )}) is behind the version on main (${chalk.green(mainVersion)}), bumping to ${chalk.blue( - nextNextVersion - )}...` - ); - - await bumpVersion({ exact: nextNextVersion }); - - console.log( - `✅ bumped all versions to ${chalk.green( - nextNextVersion - )}, remember to commit and push to next.` - ); -}; - -if (require.main === module) { - const parsed = program.parse(); - run(parsed.opts()).catch((err) => { - console.error(err); - process.exit(1); - }); -} diff --git a/scripts/release/generate-pr-description.ts b/scripts/release/generate-pr-description.ts index d437e8dc87bc..16a6928e994f 100644 --- a/scripts/release/generate-pr-description.ts +++ b/scripts/release/generate-pr-description.ts @@ -18,7 +18,7 @@ program 'Which version to generate changelog from, eg. "7.0.7". Defaults to the version at code/package.json' ) .option('-N, --next-version ', 'Which version to generate changelog to, eg. "7.0.8"') - .option('-P, --unpicked-patches', 'Set to only consider PRs labeled with "patch:yes" label') + .option('-P, --unpicked-patches', 'Set to only consider PRs labeled with "patch" label') .option( '-M, --manual-cherry-picks ', 'A stringified JSON array of commit hashes, of patch PRs that needs to be cherry-picked manually' @@ -52,7 +52,6 @@ const CHANGE_TITLES_TO_IGNORE = [ /\[ci skip\]/i, /^Update CHANGELOG\.md for.*/i, /^Release: (Pre)?(Patch|Minor|Major|Release).*\d+$/i, - /^Update \.\/docs\/versions/, ]; export const mapToChangelist = ({ @@ -66,7 +65,7 @@ export const mapToChangelist = ({ .filter((change) => { // eslint-disable-next-line no-restricted-syntax for (const titleToIgnore of CHANGE_TITLES_TO_IGNORE) { - if (change.title?.match(titleToIgnore)) { + if (change.title.match(titleToIgnore)) { return false; } } @@ -91,7 +90,7 @@ export const mapToChangelist = ({ )[0] || 'unknown') as keyof typeof LABELS_BY_IMPORTANCE; return `- [ ] **${LABELS_BY_IMPORTANCE[label]}**: ${change.title} ${change.links.pull}${ - !unpickedPatches && change.labels?.includes('patch:yes') ? ' (will also be patched)' : '' + !unpickedPatches && change.labels.includes('patch:yes') ? ' (will also be patched)' : '' }`; }) .join('\n'); @@ -142,9 +141,7 @@ export const generateReleaseDescription = ({ changelogText: string; manualCherryPicks?: string; }): string => { - const workflow = semver.prerelease(nextVersion) - ? 'prepare-non-patch-release' - : 'prepare-patch-release'; + const workflow = semver.prerelease(nextVersion) ? 'prepare-prerelease' : 'prepare-patch-release'; const workflowUrl = `https://github.com/storybookjs/storybook/actions/workflows/${workflow}.yml`; return ( diff --git a/scripts/release/is-pr-frozen.ts b/scripts/release/is-pr-frozen.ts index e81610a451b9..70289b5369d8 100644 --- a/scripts/release/is-pr-frozen.ts +++ b/scripts/release/is-pr-frozen.ts @@ -12,7 +12,7 @@ program .description( 'returns true if the versioning pull request associated with the current branch has the "freeze" label' ) - .option('-H, --patch', 'Look for patch PR instead of next PR', false) + .option('-P, --patch', 'Look for patch PR instead of prerelease PR', false) .option('-V, --verbose', 'Enable verbose logging', false); const CODE_DIR_PATH = path.join(__dirname, '..', '..', 'code'); @@ -46,7 +46,7 @@ export const run = async (options: unknown) => { const { verbose, patch } = options as { verbose?: boolean; patch?: boolean }; const version = await getCurrentVersion(); - const branch = `version-${patch ? 'patch' : 'non-patch'}-from-${version}`; + const branch = `version-${patch ? 'patch' : 'prerelease'}-from-${version}`; console.log(`💬 Determining if pull request from branch '${chalk.blue(branch)}' is frozen`); @@ -78,14 +78,6 @@ export const run = async (options: unknown) => { console.log(`🔍 Found pull request: ${JSON.stringify(pullRequest, null, 2)}`); - if (pullRequest.state !== 'OPEN') { - console.log('❌ The pull request is already closed, ignoring it'); - if (process.env.GITHUB_ACTIONS === 'true') { - setOutput('frozen', false); - } - return false; - } - const isFrozen = pullRequest.labels?.includes('freeze'); if (process.env.GITHUB_ACTIONS === 'true') { setOutput('frozen', isFrozen); diff --git a/scripts/release/pick-patches.ts b/scripts/release/pick-patches.ts index 9d3169d78c8a..eab1743dcc7b 100644 --- a/scripts/release/pick-patches.ts +++ b/scripts/release/pick-patches.ts @@ -80,7 +80,6 @@ export const run = async (_: unknown) => { } if (process.env.GITHUB_ACTIONS === 'true') { - setOutput('pr-count', JSON.stringify(patchPRs.length)); setOutput('failed-cherry-picks', JSON.stringify(failedCherryPicks)); } }; diff --git a/scripts/release/utils/get-changes.ts b/scripts/release/utils/get-changes.ts index 416ea624fb50..1ad2a0759198 100644 --- a/scripts/release/utils/get-changes.ts +++ b/scripts/release/utils/get-changes.ts @@ -53,7 +53,7 @@ export const getFromCommit = async (from?: string | undefined, verbose?: boolean console.log(`🔍 No 'from' specified, found latest tag: ${chalk.blue(latest)}`); } } - const commit = await getCommitAt(actualFrom!, verbose); + const commit = await getCommitAt(actualFrom, verbose); if (verbose) { console.log(`🔍 Found 'from' commit: ${chalk.blue(commit)}`); } diff --git a/scripts/release/utils/get-github-info.ts b/scripts/release/utils/get-github-info.ts index bdfe995a9001..6bd7126aec04 100644 --- a/scripts/release/utils/get-github-info.ts +++ b/scripts/release/utils/get-github-info.ts @@ -40,7 +40,6 @@ function makeQuery(repos: ReposWithCommitsAndPRsToFetch) { number id title - state url mergedAt labels(first: 50) { @@ -64,7 +63,6 @@ function makeQuery(repos: ReposWithCommitsAndPRsToFetch) { : `pr__${data.pull}: pullRequest(number: ${data.pull}) { url title - state author { login url @@ -163,12 +161,11 @@ export type PullRequestInfo = { user: string | null; id: string | null; title: string | null; - state: string | null; commit: string | null; pull: number | null; labels: string[] | null; links: { - commit: string | null; + commit: string; pull: string | null; user: string | null; }; @@ -200,7 +197,6 @@ export async function getPullInfoFromCommit(request: { pull: null, commit: request.commit, title: null, - state: null, labels: null, links: { commit: request.commit, @@ -209,7 +205,10 @@ export async function getPullInfoFromCommit(request: { }, }; } - let user = data?.author?.user || null; + let user = null; + if (data.author && data.author.user) { + user = data.author.user; + } const associatedPullRequest = data.associatedPullRequests && @@ -246,7 +245,6 @@ export async function getPullInfoFromCommit(request: { pull: associatedPullRequest ? associatedPullRequest.number : null, commit: request.commit, title: associatedPullRequest ? associatedPullRequest.title : null, - state: associatedPullRequest ? associatedPullRequest.state : null, labels: associatedPullRequest ? (associatedPullRequest.labels.nodes || []).map((label: { name: string }) => label.name) : null, @@ -289,7 +287,6 @@ export async function getPullInfoFromPullRequest(request: { pull: request.pull, commit: commit ? commit.oid : null, title: title || null, - state: data?.state || null, labels: data ? (data.labels.nodes || []).map((label: { name: string }) => label.name) : null, links: { commit: commit ? `[\`${commit.oid}\`](${commit.commitUrl})` : null, diff --git a/scripts/release/utils/github-client.ts b/scripts/release/utils/github-client.ts index e81991414bf9..646ba1003986 100644 --- a/scripts/release/utils/github-client.ts +++ b/scripts/release/utils/github-client.ts @@ -1,8 +1,6 @@ /* eslint-disable no-console */ import type { GraphQlQueryResponseData } from '@octokit/graphql'; import { graphql } from '@octokit/graphql'; -import { request } from '@octokit/request'; -import fetch from 'node-fetch'; export interface PullRequest { number: number; @@ -16,13 +14,6 @@ export const githubGraphQlClient = graphql.defaults({ headers: { authorization: `token ${process.env.GH_TOKEN}` }, }); -export const githubRestClient = request.defaults({ - request: { - fetch, - }, - headers: { authorization: `token ${process.env.GH_TOKEN}`, 'X-GitHub-Api-Version': '2022-11-28' }, -}); - export async function getUnpickedPRs( baseBranch: string, verbose?: boolean diff --git a/scripts/yarn.lock b/scripts/yarn.lock index f9d17fe543a8..19568a9f4a70 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -2531,17 +2531,6 @@ __metadata: languageName: node linkType: hard -"@octokit/endpoint@npm:^9.0.0": - version: 9.0.1 - resolution: "@octokit/endpoint@npm:9.0.1" - dependencies: - "@octokit/types": ^12.0.0 - is-plain-object: ^5.0.0 - universal-user-agent: ^6.0.0 - checksum: 757505b1cd634bcd7b71a18c8fe07dfda47790598ddd0d9d13f47d68713070f49953a672ac40ec39787defc2a7e07d08dca97756def7b907118f8f8d4c653f5c - languageName: node - linkType: hard - "@octokit/graphql@npm:^4.3.1, @octokit/graphql@npm:^4.5.8": version: 4.8.0 resolution: "@octokit/graphql@npm:4.8.0" @@ -2578,13 +2567,6 @@ __metadata: languageName: node linkType: hard -"@octokit/openapi-types@npm:^19.0.0": - version: 19.0.0 - resolution: "@octokit/openapi-types@npm:19.0.0" - checksum: 8270e0a224bbef6d1c82396cda873a3528111cb25a772184b39e1fbada4e6433b41c5f4634ecf204e8a2816a802048197e0132b7615b579fab217f7c1e29545b - languageName: node - linkType: hard - "@octokit/plugin-paginate-rest@npm:^2.16.8, @octokit/plugin-paginate-rest@npm:^2.2.0": version: 2.21.3 resolution: "@octokit/plugin-paginate-rest@npm:2.21.3" @@ -2649,17 +2631,6 @@ __metadata: languageName: node linkType: hard -"@octokit/request-error@npm:^5.0.0": - version: 5.0.1 - resolution: "@octokit/request-error@npm:5.0.1" - dependencies: - "@octokit/types": ^12.0.0 - deprecation: ^2.0.0 - once: ^1.4.0 - checksum: e72a4627120de345b54876a1f007664095e5be9d624fce2e14fccf7668cd8f5e4929d444d8fc085d48e1fb5cd548538453974aab129a669101110d6679dce6c6 - languageName: node - linkType: hard - "@octokit/request@npm:^5.4.0, @octokit/request@npm:^5.6.0, @octokit/request@npm:^5.6.3": version: 5.6.3 resolution: "@octokit/request@npm:5.6.3" @@ -2688,19 +2659,6 @@ __metadata: languageName: node linkType: hard -"@octokit/request@npm:^8.1.2": - version: 8.1.2 - resolution: "@octokit/request@npm:8.1.2" - dependencies: - "@octokit/endpoint": ^9.0.0 - "@octokit/request-error": ^5.0.0 - "@octokit/types": ^12.0.0 - is-plain-object: ^5.0.0 - universal-user-agent: ^6.0.0 - checksum: 49219eb71b856acecc8268f05a7a7d074488f9eaeb59439f5c8872e5b4555a4e6c0cf0ebcadf0983466f88957e74c27765f582e473b0dd89b453274501f0dc37 - languageName: node - linkType: hard - "@octokit/rest@npm:^16.43.0 || ^17.11.0 || ^18.12.0, @octokit/rest@npm:^18.12.0": version: 18.12.0 resolution: "@octokit/rest@npm:18.12.0" @@ -2725,15 +2683,6 @@ __metadata: languageName: node linkType: hard -"@octokit/types@npm:^12.0.0": - version: 12.0.0 - resolution: "@octokit/types@npm:12.0.0" - dependencies: - "@octokit/openapi-types": ^19.0.0 - checksum: 6e5b68f8855775638db53244348d2ca07896d36a15aad41d3cb652fafaa1b307c3b6222319174dd5716accd9076e101da838b82f988a7c380a8e9d188e3aadf1 - languageName: node - linkType: hard - "@octokit/types@npm:^4.1.6": version: 4.1.10 resolution: "@octokit/types@npm:4.1.10" @@ -2952,7 +2901,6 @@ __metadata: "@jest/globals": ^29.3.1 "@nx/workspace": 16.2.1 "@octokit/graphql": ^5.0.5 - "@octokit/request": ^8.1.2 "@storybook/eslint-config-storybook": ^3.1.2 "@storybook/jest": next "@storybook/linter-config": ^3.1.2 From 75e585de951932b1178af510f57c05be9612127a Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 5 Oct 2023 14:04:09 +0200 Subject: [PATCH 104/154] Revert "Merge pull request #24379 from storybookjs/revert-24106-release-stable-to-latest" This reverts commit f4e13cd94a80259d7c58ca948e10693462955715, reversing changes made to 33e564e163ecb4018a16f15fd897cb9365eed6f7. --- ...ease.yml => prepare-non-patch-release.yml} | 29 +++- .github/workflows/prepare-patch-release.yml | 11 +- .github/workflows/publish.yml | 33 ++-- CONTRIBUTING/RELEASING.md | 164 +++++++++--------- scripts/package.json | 3 + .../__tests__/cancel-preparation-runs.test.ts | 107 ++++++++++++ .../__tests__/ensure-next-ahead.test.ts | 85 +++++++++ .../__tests__/generate-pr-description.test.ts | 10 +- .../release/__tests__/is-pr-frozen.test.ts | 12 +- .../release/__tests__/label-patches.test.ts | 1 + scripts/release/cancel-preparation-runs.ts | 107 ++++++++++++ scripts/release/ensure-next-ahead.ts | 101 +++++++++++ scripts/release/generate-pr-description.ts | 11 +- scripts/release/is-pr-frozen.ts | 12 +- scripts/release/pick-patches.ts | 1 + scripts/release/utils/get-changes.ts | 2 +- scripts/release/utils/get-github-info.ts | 13 +- scripts/release/utils/github-client.ts | 9 + scripts/yarn.lock | 52 ++++++ 19 files changed, 648 insertions(+), 115 deletions(-) rename .github/workflows/{prepare-prerelease.yml => prepare-non-patch-release.yml} (81%) create mode 100644 scripts/release/__tests__/cancel-preparation-runs.test.ts create mode 100644 scripts/release/__tests__/ensure-next-ahead.test.ts create mode 100644 scripts/release/cancel-preparation-runs.ts create mode 100644 scripts/release/ensure-next-ahead.ts diff --git a/.github/workflows/prepare-prerelease.yml b/.github/workflows/prepare-non-patch-release.yml similarity index 81% rename from .github/workflows/prepare-prerelease.yml rename to .github/workflows/prepare-non-patch-release.yml index e68a7e1ef63a..ea72d924d918 100644 --- a/.github/workflows/prepare-prerelease.yml +++ b/.github/workflows/prepare-non-patch-release.yml @@ -34,7 +34,7 @@ concurrency: cancel-in-progress: true jobs: - prepare-prerelease-pull-request: + prepare-non-patch-pull-request: name: Prepare prerelease pull request runs-on: ubuntu-latest environment: release @@ -112,21 +112,35 @@ jobs: run: | yarn release:version --deferred --release-type ${{ inputs.release-type || 'prerelease' }} ${{ inputs.pre-id && format('{0} {1}', '--pre-id', inputs.pre-id) || '' }} --verbose + - name: Check release vs prerelease + id: is-prerelease + run: yarn release:is-prerelease ${{ steps.bump-version.outputs.next-version }} + - name: Write changelog env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | yarn release:write-changelog ${{ steps.bump-version.outputs.next-version }} --verbose - - name: 'Commit changes to branch: version-prerelease-from-${{ steps.bump-version.outputs.current-version }}' + - name: 'Commit changes to branch: version-non-patch-from-${{ steps.bump-version.outputs.current-version }}' working-directory: . run: | git config --global user.name 'storybook-bot' git config --global user.email '32066757+storybook-bot@users.noreply.github.com' - git checkout -b version-prerelease-from-${{ steps.bump-version.outputs.current-version }} + git checkout -b version-non-patch-from-${{ steps.bump-version.outputs.current-version }} + git add . + git commit -m "Write changelog for ${{ steps.bump-version.outputs.next-version }} [skip ci]" || true + git push --force origin version-non-patch-from-${{ steps.bump-version.outputs.current-version }} + + - name: Resolve merge-conflicts with base branch + if: steps.is-prerelease.outputs.prerelease == 'true' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + git pull origin latest-release + git checkout --ours . git add . - git commit -m "Write changelog for ${{ steps.bump-version.outputs.next-version }}" || true - git push --force origin version-prerelease-from-${{ steps.bump-version.outputs.current-version }} + git commit -m "Merge latest-release into version-non-patch-from-${{ steps.bump-version.outputs.current-version }} with conflicts resolved to ours [skip ci]" - name: Generate PR description id: description @@ -144,14 +158,15 @@ jobs: gh pr edit \ --repo "${{github.repository }}" \ --title "Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ + --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ --body "${{ steps.description.outputs.description }}" else gh pr create \ --repo "${{github.repository }}"\ --title "Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ --label "release" \ - --base next-release \ - --head version-prerelease-from-${{ steps.bump-version.outputs.current-version }} \ + --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ + --head version-non-patch-from-${{ steps.bump-version.outputs.current-version }} \ --body "${{ steps.description.outputs.description }}" fi diff --git a/.github/workflows/prepare-patch-release.yml b/.github/workflows/prepare-patch-release.yml index e4f8e38df502..5cdc1ba44fcf 100644 --- a/.github/workflows/prepare-patch-release.yml +++ b/.github/workflows/prepare-patch-release.yml @@ -88,6 +88,15 @@ jobs: git config --global user.email '32066757+storybook-bot@users.noreply.github.com' yarn release:pick-patches + - name: Cancel when no patches to pick + if: steps.pick-patches.outputs.pr-count == '0' && steps.pick-patches.outputs.pr-count != null + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # From https://stackoverflow.com/a/75809743 + run: | + gh run cancel ${{ github.run_id }} + gh run watch ${{ github.run_id }} + - name: Bump version deferred id: bump-version if: steps.unreleased-changes.outputs.has-changes-to-release == 'true' @@ -121,7 +130,7 @@ jobs: git config --global user.email '32066757+storybook-bot@users.noreply.github.com' git checkout -b version-patch-from-${{ steps.versions.outputs.current }} git add . - git commit -m "Write changelog for ${{ steps.versions.outputs.next }}" || true + git commit -m "Write changelog for ${{ steps.versions.outputs.next }} [skip ci]" || true git push --force origin version-patch-from-${{ steps.versions.outputs.current }} - name: Generate PR description diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 863b4e9ae7e2..df82ca33c9a5 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -5,7 +5,7 @@ on: push: branches: - latest-release - - next-release + - non-patch-release env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 @@ -36,6 +36,11 @@ jobs: gh run cancel ${{ github.run_id }} gh run watch ${{ github.run_id }} + - name: Cancel all release preparation runs + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: yarn release:cancel-preparation-runs + - name: Checkout ${{ github.ref_name }} uses: actions/checkout@v3 with: @@ -63,7 +68,6 @@ jobs: yarn install - name: Apply deferred version bump and commit - id: version-bump working-directory: . run: | CURRENT_VERSION=$(cat ./code/package.json | jq '.version') @@ -122,12 +126,11 @@ jobs: run: git fetch --tags origin # when this is a patch release from main, label any patch PRs included in the release - # when this is a stable release from next, label ALL patch PRs found, as they will per definition be "patched" now - name: Label patch PRs as picked - if: github.ref_name == 'latest-release' || (steps.publish-needed.outputs.published == 'false' && steps.target.outputs.target == 'next' && !steps.is-prerelease.outputs.prerelease) + if: github.ref_name == 'latest-release' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: yarn release:label-patches ${{ steps.target.outputs.target == 'next' && '--all' || '' }} + run: yarn release:label-patches - name: Create GitHub Release if: steps.publish-needed.outputs.published == 'false' @@ -151,8 +154,20 @@ jobs: git merge ${{ github.ref_name }} git push origin ${{ steps.target.outputs.target }} + - name: Ensure `next` is a minor version ahead of `main` + if: steps.target.outputs.target == 'main' + run: | + git checkout next + git pull + + yarn release:ensure-next-ahead --main-version "${{ steps.version.outputs.current-version }}" + + git add .. + git commit -m "Bump next to be one minor ahead of main [skip ci]" + git push origin next + - name: Sync CHANGELOG.md from `main` to `next` - if: github.ref_name == 'latest-release' + if: steps.target.outputs.target == 'main' working-directory: . run: | git fetch origin next @@ -160,7 +175,7 @@ jobs: git pull git checkout origin/main ./CHANGELOG.md git add ./CHANGELOG.md - git commit -m "Update CHANGELOG.md for v${{ steps.version.outputs.current-version }} [skip ci]" + git commit -m "Update CHANGELOG.md for v${{ steps.version.outputs.current-version }} [skip ci]" || true git push origin next - name: Sync version JSONs from `next-release` to `main` @@ -176,10 +191,6 @@ jobs: git commit -m "Update $VERSION_FILE for v${{ steps.version.outputs.current-version }}" git push origin main - - name: Overwrite main with next - if: steps.target.outputs.target == 'next' && steps.is-prerelease.outputs.prerelease == 'false' - run: git push --force origin next:main - - name: Report job failure to Discord if: failure() env: diff --git a/CONTRIBUTING/RELEASING.md b/CONTRIBUTING/RELEASING.md index 0997b757b6ea..e92fa8fa36a3 100644 --- a/CONTRIBUTING/RELEASING.md +++ b/CONTRIBUTING/RELEASING.md @@ -8,8 +8,8 @@ - [Introduction](#introduction) - [Branches](#branches) - [Release Pull Requests](#release-pull-requests) - - [Prereleases](#prereleases) - [Patch Releases](#patch-releases) + - [Non-patch Releases](#non-patch-releases) - [Publishing](#publishing) - [👉 How to Release](#-how-to-release) - [1. Find the Prepared Pull Request](#1-find-the-prepared-pull-request) @@ -21,6 +21,8 @@ - [7. See the "Publish" Workflow Finish](#7-see-the-publish-workflow-finish) - [Releasing Locally in an Emergency 🚨](#releasing-locally-in-an-emergency-) - [Canary Releases](#canary-releases) + - [With GitHub UI](#with-github-ui) + - [With the CLI](#with-the-cli) - [Versioning Scenarios](#versioning-scenarios) - [Prereleases - `7.1.0-alpha.12` -\> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13) - [Prerelease promotions - `7.1.0-alpha.13` -\> `7.1.0-beta.0`](#prerelease-promotions---710-alpha13---710-beta0) @@ -31,7 +33,7 @@ - [Prerelease of upcoming patch release - `7.0.20` -\> `7.0.21-alpha.0`](#prerelease-of-upcoming-patch-release---7020---7021-alpha0) - [Merges to `main` without versioning](#merges-to-main-without-versioning) - [FAQ](#faq) - - [When should I use the "patch" label?](#when-should-i-use-the-patch-label) + - [When should I use the "patch:yes" label?](#when-should-i-use-the-patchyes-label) - [How do I make changes to the release tooling/process?](#how-do-i-make-changes-to-the-release-toolingprocess) - [Why do I need to re-trigger workflows to update the changelog?](#why-do-i-need-to-re-trigger-workflows-to-update-the-changelog) - [Which combination of inputs creates the version bump I need?](#which-combination-of-inputs-creates-the-version-bump-i-need) @@ -43,19 +45,19 @@ This document explains the release process for the Storybook monorepo. There are two types: -1. Prereleases and major/minor releases - releasing any content that is on the `next` branch +1. Non-patch releases - releasing any content that is on the `next` branch, either prereleases or stable releases 2. Patch releases - picking any content from `next` to `main`, that needs to be patched back to the current stable minor release The release process is based on automatically created "Release Pull Requests", that when merged will trigger a new version to be released. A designated Releaser -- which may rotate between core team members -- will go through the release process in the current Release PR. This process is implemented with NodeJS scripts in [`scripts/release`](../scripts/release/) and three GitHub Actions workflows: -- [Prepare Prerelease PR](../.github/workflows/prepare-prerelease.yml) -- [Prepare Patch PR](../.github/workflows/prepare-patch-release.yml) +- [Prepare `next` PR](../.github/workflows/prepare-non-patch-release.yml) +- [Prepare patch PR](../.github/workflows/prepare-patch-release.yml) - [Publish](../.github/workflows/publish.yml) > **Note** -> This document distinguishes between **patch** releases and **prereleases**. This is a simplification; stable major and minor releases work the same way as prereleases. The distinction reflects the difference between patching an existing minor version on `main` or releasing a new minor/major/prerelease from `next`. +> This document distinguishes between **patch** and **non-patch** releases. The distinction reflects the difference between patching an existing minor version on `main` or releasing a new minor/major/prerelease from `next`. ### Branches @@ -101,7 +103,7 @@ Two GitHub Actions workflows automatically create release pull requests, one for The high-level flow is: 1. When a PR is merged to `next` (or a commit is pushed), both release pull requests are (re)generated. -2. They create a new branch - `version-(patch|prerelease)-from-`. +2. They create a new branch - `version-(patch|non-patch)-from-`. 3. They calculate which version to bump to according to the version strategy. 4. They update `CHANGELOG(.prerelease).md` with all changes detected. 5. They commit everything. @@ -115,62 +117,20 @@ A few key points to note in this flow: - The changelogs are committed during the preparation, but the packages are not version bumped and not published until later. - The release pull requests don't target their working branches (`next` and `main`), but rather `next-release` and `latest-release`. -### Prereleases - -> **Note** -> Workflow: [`prepare-prerelease.yml`](../.github/workflows/prepare-prerelease.yml) - -Prereleases are prepared with all content from the `next` branch. The changelog is generated by examining the git history, and looking up all the commits and pull requests between the current prerelease (on `next-release`) and `HEAD` of `next`. - -The default versioning strategy is to increase the current prerelease number, as described in [Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13). If there is no prerelease number (i.e., we just released a new stable minor/major version), it will add one to a patch bump, so it would go from `7.2.0` to `7.2.1-0` by default. - -Prerelease PRs are only created if there are actual changes to release. Content labeled with "build" or "documentation" is [not considered "releasable"](#which-changes-are-considered-releasable-and-what-does-it-mean) and is not user-facing, so it doesn't make sense to create a release. This is explained in more detail in [Why are no release PRs being prepared?](#why-are-no-release-prs-being-prepared). - -The preparation workflow will create a new branch from `next`, called `version-prerelease-from-`, and open a pull request targeting `next-release`. When the Releaser merges it, the [publish workflow](#publishing) will merge `next-release` into `next`. - -Here's an example of a workflow where a feature and a bugfix have been created and then released to a new `7.1.0-alpha.29` version. All the commits highlighted with square dots are the ones that will be considered when generating the changelog. - -```mermaid -%%{init: { 'gitGraph': { 'mainBranchName': 'next' } } }%% -gitGraph - commit - branch next-release - commit tag: "7.1.0-alpha.28" - checkout next - merge next-release - commit type: HIGHLIGHT id: "direct commit" - branch new-feature - commit - commit - checkout next - merge new-feature type: HIGHLIGHT - branch some-bugfix - commit - checkout next - merge some-bugfix type: HIGHLIGHT - branch version-prerelease-from-7.1.0-alpha.28 - commit id: "write changelog" - checkout next-release - merge version-prerelease-from-7.1.0-alpha.28 - commit id: "bump versions" tag: "7.1.0-alpha.29" - checkout next - merge next-release -``` - ### Patch Releases > **Note** > Workflow: [`prepare-patch-release.yml`](../.github/workflows/prepare-patch-release.yml) -Patch releases are created by [cherry-picking](https://www.atlassian.com/git/tutorials/cherry-pick) any merged, unreleased pull requests that have the "**patch**" label applied to the `next` branch. The merge commit of said pull requests are cherry-picked. +Patch releases are created by [cherry-picking](https://www.atlassian.com/git/tutorials/cherry-pick) any merged, unreleased pull requests that have the "**patch:yes**" label applied to the `next` branch. The merge commit of said pull requests are cherry-picked. -Sometimes it is desired to pick pull requests back to `main` even if they are not considered "releasable". Unlike prerelease preparation, patch releases will not be canceled if the content is not releasable. It might not make sense to create a new patch release if the changes are only for documentation and/or internal build systems. However, getting the changes back to `main` is the only way to deploy the documentation to the production docs site. You may also want to cherry-pick changes to internal CI to fix issues. These are valid scenarios where you want to cherry-pick the changes without being blocked on "releasable" content. In these cases, where all cherry picks are non-releasable, the preparation workflow creates a "merging" pull request instead of a "releasing" pull request. This pull request does not bump versions or update changelogs; it just cherry-picks the changes and allows you to merge them into `latest-release` -> `main`. +Sometimes it is desired to pick pull requests back to `main` even if they are not considered "releasable". Unlike non-patch-release preparation, patch releases will not be canceled if the content is not releasable. It might not make sense to create a new patch release if the changes are only for documentation and/or internal build systems. However, getting the changes back to `main` is the only way to deploy the documentation to the production docs site. You may also want to cherry-pick changes to internal CI to fix issues. These are valid scenarios where you want to cherry-pick the changes without being blocked on "releasable" content. In these cases, where all cherry picks are non-releasable, the preparation workflow creates a "merging" pull request instead of a "releasing" pull request. This pull request does not bump versions or update changelogs; it just cherry-picks the changes and allows you to merge them into `latest-release` -> `main`. The preparation workflow sequentially cherry-picks each patch pull request to its branch. If this cherry-picking fails due to conflicts or other reasons, it is ignored and the next pull request is processed. All failing cherry-picks are listed in the release pull request's description, for the Releaser to manually cherry-pick during the release process. This problem occurs more often when `main` and `next` diverge, i.e. the longer it has been since a stable major/minor release. -Similar to the prerelease flow, the preparation workflow for patches will create a new branch from `main` called `version-patch-from-`, and open a pull request that targets `latest-release`. When the pull request is merged by the Releaser, the [publish workflow](#publishing) will eventually merge `latest-release` into `main`. +Similar to the non-patch-release flow, the preparation workflow for patches will create a new branch from `main` called `version-patch-from-`, and open a pull request that targets `latest-release`. When the pull request is merged by the Releaser, the [publish workflow](#publishing) will eventually merge `latest-release` into `main`. -Here is an example of a workflow where a feature and two bug fixes have been merged to `next`. Only the bug fixes have the "**patch**" label, so only those two go into the new `7.0.19` release. Note that it is the merge commits to `next` that are cherry-picked, not the commits on the bugfix branches. +Here is an example of a workflow where a feature and two bug fixes have been merged to `next`. Only the bug fixes have the "**patch:yes**" label, so only those two go into the new `7.0.19` release. Note that it is the merge commits to `next` that are cherry-picked, not the commits on the bugfix branches. ```mermaid gitGraph @@ -208,21 +168,62 @@ gitGraph merge latest-release ``` +### Non-patch Releases + +> **Note** +> Workflow: [`prepare-non-patch-release.yml`](../.github/workflows/prepare-non-patch-release.yml) + +Non-patch-releases are prepared with all content from the `next` branch. The changelog is generated by examining the git history, and looking up all the commits and pull requests between the current prerelease (on `next-release`) and `HEAD` of `next`. + +The default versioning strategy is to increase the current prerelease number, as described in [Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13). If there is no prerelease number (i.e., we just released a new stable minor/major version), it will add one to a patch bump, so it would go from `7.2.0` to `7.2.1-0` by default. + +`next`-PRs are only created if there are actual changes to release. Content labeled with "build" or "documentation" is [not considered "releasable"](#which-changes-are-considered-releasable-and-what-does-it-mean) and is not user-facing, so it doesn't make sense to create a release. This is explained in more detail in [Why are no release PRs being prepared?](#why-are-no-release-prs-being-prepared). + +The preparation workflow will create a new branch from `next`, called `version-non-patch-from-`, and open a pull request targeting `next-release`. When the Releaser merges it, the [publish workflow](#publishing) will merge `next-release` into `next`. + +Here's an example of a workflow where a feature and a bugfix have been created and then released to a new `7.1.0-alpha.29` version. All the commits highlighted with square dots are the ones that will be considered when generating the changelog. + +```mermaid +%%{init: { 'gitGraph': { 'mainBranchName': 'next' } } }%% +gitGraph + commit + branch next-release + commit tag: "7.1.0-alpha.28" + checkout next + merge next-release + commit type: HIGHLIGHT id: "direct commit" + branch new-feature + commit + commit + checkout next + merge new-feature type: HIGHLIGHT + branch some-bugfix + commit + checkout next + merge some-bugfix type: HIGHLIGHT + branch version-non-patch-from-7.1.0-alpha.28 + commit id: "write changelog" + checkout next-release + merge version-non-patch-from-7.1.0-alpha.28 + commit id: "bump versions" tag: "7.1.0-alpha.29" + checkout next + merge next-release +``` + ### Publishing > **Note** > Workflow: [`publish.yml`](../.github/workflows/publish.yml) -When either a prerelease or a patch release branch is merged into `main` or `next-release`, the publishing workflow is triggered. This workflow performs the following tasks: +When either a non-patch-release or a patch release branch is merged into `latest-release` or `next-release`, the publishing workflow is triggered. This workflow performs the following tasks: 1. Bump versions of all packages according to the plan from the prepared PRs 2. Install dependencies and build all packages. 3. Publish packages to npm. -4. (If this is a patch release, add the "**picked**" label to all relevant pull requests.) +4. (If this is a patch release, add the "**patch:done**" label to all relevant pull requests.) 5. Create a new GitHub Release, including a version tag in the release branch (`latest-release` or `next-release`). 6. Merge the release branch into the core branch (`main` or `next`). 7. (If this is a patch release, copy the `CHANGELOG.md` changes from `main` to `next`.) -8. (If this is [a promotion from a prerelease to a stable release](#minormajor-releases---710-rc2---710-or-800-rc3---800), force push `next` to `main`.) The publish workflow runs in the "release" GitHub environment, which has the npm token required to publish packages to the `@storybook` npm organization. For security reasons, this environment can only be accessed from the four "core" branches: `main`, `next`, `latest-release` and `next-release`. @@ -244,7 +245,7 @@ The high-level workflow for a Releaser is: Look for the release pull request that has been prepared for the type of release you're about to release: -- "Release: Prerelease ``" for prereleases +- "Release: Prerelease|Minor|Major ``" for releases from `next` - "Release: Patch ``" for patch releases - "Release: Merge patches to `main` (without version bump)" for patches without releases @@ -266,7 +267,7 @@ It is important to verify that the release includes the right content. Key eleme For example, check if it's a breaking change that isn't allowed in a minor prerelease, or if it's a new feature in a patch release. If it's not suitable, revert the pull request and notify the author. -Sometimes when doing a patch release, a pull request can have the "patch" label but you don't want that change to be part of this release. Maybe you're not confident in the change, or you require more input from maintainers before releasing it. In those situations you should remove the "patch" label from the pull request and follow through with the release (make sure to re-trigger the workflow). When the release is done, add the patch label back again, so it will be part of the next release. +Sometimes when doing a patch release, a pull request can have the "patch:yes" label but you don't want that change to be part of this release. Maybe you're not confident in the change, or you require more input from maintainers before releasing it. In those situations you should remove the "patch:yes" label from the pull request and follow through with the release (make sure to re-trigger the workflow). When the release is done, add the "patch:yes" label back again, so it will be part of the next release. 2. Is the pull request title correct? @@ -300,12 +301,12 @@ When triggering the workflows, always choose the `next` branch as the base, unle The workflows can be triggered here: -- [Prepare prerelease PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-prerelease.yml) +- [Prepare next PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) - [Prepare patch PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml) -Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - Prereleases](#prereleases). When triggering the prerelease workflow manually, you can optionally add inputs: +Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - Non-patch Releases](#non-patch-releases). When triggering the prerelease workflow manually, you can optionally add inputs: -![Screenshot of triggering the prerelease workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) +![Screenshot of triggering the non-patch-release workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) See [Versioning Scenarios](#versioning-scenarios) for a description of each version bump scenario, how to activate it and what it does, and [Which combination of inputs creates the version bump I need?](#which-combination-of-inputs-creates-the-version-bump-i-need) for a detailed description of the workflow inputs. @@ -339,7 +340,7 @@ You can inspect the workflows to see what they are running and copy that, but he Before you start you should make sure that your working tree is clean and the repository is in a clean state by running `git clean -xdf`. -1. Create a new branch from either `next` (prereleases) or `main` (patches) +1. Create a new branch from either `next` or `main` (patches) 2. Get all tags: `git fetch --tags origin` 3. Install dependencies: `yarn task --task=install --start-from=install` 4. `cd scripts` @@ -375,7 +376,7 @@ Before you start you should make sure that your working tree is clean and the re 4. `git add ./CHANGELOG.md` 5. `git commit -m "Update CHANGELOG.md for v"` 6. `git push origin` -19. (If prerelease) Sync `versions/next.json` from `next` to `main` +19. (If non-patch-release) Sync `versions/next.json` from `next` to `main` 1. `git checkout main` 2. `git pull` 3. `git checkout origin/next ./docs/versions/next.json` @@ -434,7 +435,7 @@ There are multiple types of releases that use the same principles, but are done ### Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13` -This is the default strategy for prereleases, there's nothing special needed to trigger this scenario. +This is the default strategy for Non-patch releases, there's nothing special needed to trigger this scenario. ### Prerelease promotions - `7.1.0-alpha.13` -> `7.1.0-beta.0` @@ -445,14 +446,12 @@ To promote a prerelease to a new prerelease ID, during the [Re-trigger the Workf ### Minor/major releases - `7.1.0-rc.2` -> `7.1.0` or `8.0.0-rc.3` -> `8.0.0` -To promote a prerelease to a new prerelease ID, during the [Re-trigger the Workflow](#4-re-trigger-the-workflow) step, choose: +To promote a prerelease to a stable reelase, during the [Re-trigger the Workflow](#4-re-trigger-the-workflow) step, choose: -- Release type: Patch +- Release type: Patch, Minor or Major - Prerelease ID: Leave empty -The "Patch" release type ensures the current prerelease version gets promoted to a stable version without any major/minor/patch bumps. - -This scenario is special as it turns the `next` branch into a stable branch (until the next prerelease). Therefore, this will also force push `next` to `main`, to ensure that `main` contains the latest stable release. Consequently, the history for `main` is lost. +This scenario is special as it will target `latest-release` instead of `next-release`, and thus merge into `main` when done, and not `next`. So it goes `next` -> `version-non-patch-from-` -> `latest-release` -> `main`. ### First prerelease of new major/minor - `7.1.0` -> `7.2.0-alpha.0` or `8.0.0-alpha.0` @@ -481,13 +480,13 @@ As described in more details in [the Patch Releases section](#patch-releases), t ## FAQ -### When should I use the "patch" label? +### When should I use the "patch:yes" label? -Not all pull requests need to be patched back to the stable release, which is why only those with the **"patch"** label gets that treatment. But how do you decide whether or not a give pull requests should have that label? +Not all pull requests need to be patched back to the stable release, which is why only those with the **"patch:yes"** label gets that treatment. But how do you decide whether or not a give pull requests should have that label? -First of all, patches are only for fixes and minor improvements, and not completely new features. A pull request that introduces a new feature shouldn't be patched back to the stable release. +First of all, patches are only for important and time-sensitive fixes, and not minor improvements or completely new features. A pull request that introduces a new feature shouldn't be patched back to the stable release. -Second, any destabilizing changes shouldn't be patched back either. Breaking changes are reserved for major releases, but changes can be destabilizing without being strictly breaking, and those shouldn't be patched back either. An example is moving the settings panel in the manager to a completely different place, but with the same functionality. Many wouldn't consider this breaking because no usage will stop working because of this, but it can be considered a destabilizing change because user behavior have to change as a result of this. +Second, PRs that changes the code in a big architectural way should ideally not be patched back either, because that makes merge conflicts more likely in the future. When in doubt ask the core team for their input. @@ -497,12 +496,15 @@ The whole process is based on [GitHub Action workflows](../.github/workflows/) a The short answer to "how", is to make changes as a regular pull request that is also patched back to `main`. -There's a longer answer too, but it's pretty confusing: +
+ There's a longer answer too, but it's pretty confusing The scripts run from either `main` or `next`, so if you're changing a release script, you must patch it back to `main` for it to have an effect on patch releases. If you need the change to take effect immediately, you must manually cherry pick it to `main`. For workflow file changes, they usually run from `next`, but patching them back is recommended for consistency. The "publish" workflow runs from `latest-release` and `next-release`, so you should always patch changes back for _that_. 🙃 +
+ ### Why do I need to re-trigger workflows to update the changelog? Changes to pull requests' titles, labels or even reverts won't be reflected in the release pull request. This is because the workflow only triggers on pushes to `next`, not when pull request meta data is changed. @@ -536,7 +538,7 @@ If a pull request does not have any of the above labels at the time of release, This is most likely because `next` only contains [unreleasable changes](#which-changes-are-considered-releasable-and-what-does-it-mean), which causes the preparation workflow to cancel itself. That's because it doesn't make sense to prepare a new release if all the changes are unreleasable, as that wouldn't bump the version nor write a new changelog entry, so "releasing" it would just merge it back to `next` without any differences. -You can always see the workflows and if they have been cancelled [here for prereleases](https://github.com/storybookjs/storybook/actions/workflows/prepare-prerelease.yml) and [here for patch releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml). +You can always see the workflows and if they have been cancelled [here for non-patch releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) and [here for patch releases](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml). ### Why do we need separate release branches? @@ -558,11 +560,11 @@ gitGraph branch some-simultaneous-bugfix commit checkout next - branch version-prerelease-from-7.1.0-alpha.28 + branch version-non-patch-from-7.1.0-alpha.28 commit id checkout next merge some-simultaneous-bugfix type: HIGHLIGHT id: "whoops!" - merge version-prerelease-from-7.1.0-alpha.28 tag: "v7.1.0-alpha.29" + merge version-non-patch-from-7.1.0-alpha.28 tag: "v7.1.0-alpha.29" ``` When publishing at the last commit with tag `v7.1.0-alpha.29`, it will publish whatever the content is at that point (all the square dots), which includes the "whoops!" commit from merging the bugfix. But the bugfix was never part of the release pull request because it got prepared before the bugfix was merged in. @@ -582,19 +584,19 @@ gitGraph branch some-simultanous-bugfix commit checkout next - branch version-prerelease-from-7.1.0-alpha.28 + branch version-non-patch-from-7.1.0-alpha.28 commit id: "write changelog" checkout next merge some-simultanous-bugfix id: "whoops!" checkout next-release - merge version-prerelease-from-7.1.0-alpha.28 + merge version-non-patch-from-7.1.0-alpha.28 commit id: "bump versions" tag: "v7.1.0-alpha.29" checkout next merge next-release - branch version-prerelease-from-7.1.0-alpha.29 + branch version-non-patch-from-7.1.0-alpha.29 commit id: "write changelog again" checkout next-release - merge version-prerelease-from-7.1.0-alpha.29 + merge version-non-patch-from-7.1.0-alpha.29 commit id: "bump versions again" tag: "v7.1.0-alpha.30" checkout next merge next-release diff --git a/scripts/package.json b/scripts/package.json index 8a1ace601a4d..f220b8f88742 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -13,6 +13,8 @@ "lint:js:cmd": "cross-env NODE_ENV=production eslint --cache --cache-location=../.cache/eslint --ext .js,.jsx,.json,.html,.ts,.tsx,.mjs --report-unused-disable-directives", "lint:package": "sort-package-json", "migrate-docs": "node --require esbuild-register ./ts-to-ts49.ts", + "release:cancel-preparation-runs": "ts-node --swc ./release/cancel-preparation-runs.ts", + "release:ensure-next-ahead": "ts-node --swc ./release/ensure-next-ahead.ts", "release:generate-pr-description": "ts-node --swc ./release/generate-pr-description.ts", "release:get-changelog-from-file": "ts-node --swc ./release/get-changelog-from-file.ts", "release:get-current-version": "ts-node --swc ./release/get-current-version.ts", @@ -73,6 +75,7 @@ "@jest/globals": "^29.3.1", "@nx/workspace": "16.2.1", "@octokit/graphql": "^5.0.5", + "@octokit/request": "^8.1.2", "@storybook/eslint-config-storybook": "^3.1.2", "@storybook/jest": "next", "@storybook/linter-config": "^3.1.2", diff --git a/scripts/release/__tests__/cancel-preparation-runs.test.ts b/scripts/release/__tests__/cancel-preparation-runs.test.ts new file mode 100644 index 000000000000..aaf8cdbec718 --- /dev/null +++ b/scripts/release/__tests__/cancel-preparation-runs.test.ts @@ -0,0 +1,107 @@ +/* eslint-disable global-require */ +/* eslint-disable no-underscore-dangle */ +import { + PREPARE_NON_PATCH_WORKFLOW_PATH, + PREPARE_PATCH_WORKFLOW_PATH, + run as cancelPreparationWorkflows, +} from '../cancel-preparation-runs'; +import * as github_ from '../utils/github-client'; + +jest.mock('../utils/github-client'); + +const github = jest.mocked(github_); + +jest.spyOn(console, 'log').mockImplementation(() => {}); +jest.spyOn(console, 'warn').mockImplementation(() => {}); +jest.spyOn(console, 'error').mockImplementation(() => {}); + +describe('Cancel preparation runs', () => { + beforeEach(() => { + jest.clearAllMocks(); + github.githubRestClient.mockImplementation(((route: string, options: any) => { + switch (route) { + case 'GET /repos/{owner}/{repo}/actions/workflows': + return { + data: { + workflows: [ + { + id: 1, + path: PREPARE_PATCH_WORKFLOW_PATH, + }, + { + id: 2, + path: PREPARE_NON_PATCH_WORKFLOW_PATH, + }, + ], + }, + }; + case 'GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs': + return { + data: { + workflow_runs: [ + { + id: options.workflow_id === 1 ? 100 : 200, + status: 'in_progress', + }, + { + id: options.workflow_id === 1 ? 150 : 250, + status: 'completed', + }, + ], + }, + }; + case 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel': + return undefined; // success + default: + throw new Error(`Unexpected route: ${route}`); + } + }) as any); + }); + + it('should fail early when no GH_TOKEN is set', async () => { + delete process.env.GH_TOKEN; + await expect(cancelPreparationWorkflows()).rejects.toThrowErrorMatchingInlineSnapshot( + `"GH_TOKEN environment variable must be set, exiting."` + ); + }); + + it('should cancel all running preparation workflows in GitHub', async () => { + process.env.GH_TOKEN = 'MY_SECRET'; + + await expect(cancelPreparationWorkflows()).resolves.toBeUndefined(); + + expect(github.githubRestClient).toHaveBeenCalledTimes(5); + expect(github.githubRestClient).toHaveBeenCalledWith( + 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', + { + owner: 'storybookjs', + repo: 'storybook', + run_id: 100, + } + ); + expect(github.githubRestClient).toHaveBeenCalledWith( + 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', + { + owner: 'storybookjs', + repo: 'storybook', + run_id: 200, + } + ); + expect(github.githubRestClient).not.toHaveBeenCalledWith( + 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', + { + owner: 'storybookjs', + repo: 'storybook', + run_id: 150, + } + ); + expect(github.githubRestClient).not.toHaveBeenCalledWith( + 'POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', + { + owner: 'storybookjs', + repo: 'storybook', + run_id: 250, + } + ); + }); +}); diff --git a/scripts/release/__tests__/ensure-next-ahead.test.ts b/scripts/release/__tests__/ensure-next-ahead.test.ts new file mode 100644 index 000000000000..0b192d39b106 --- /dev/null +++ b/scripts/release/__tests__/ensure-next-ahead.test.ts @@ -0,0 +1,85 @@ +/* eslint-disable global-require */ +/* eslint-disable no-underscore-dangle */ +import path from 'path'; +import { run as ensureNextAhead } from '../ensure-next-ahead'; +import * as gitClient_ from '../utils/git-client'; +import * as bumpVersion_ from '../version'; + +jest.mock('../utils/git-client', () => jest.requireActual('jest-mock-extended').mockDeep()); +const gitClient = jest.mocked(gitClient_); + +// eslint-disable-next-line jest/no-mocks-import +jest.mock('fs-extra', () => require('../../../code/__mocks__/fs-extra')); +const fsExtra = require('fs-extra'); + +jest.mock('../version', () => jest.requireActual('jest-mock-extended').mockDeep()); +const bumpVersion = jest.mocked(bumpVersion_); + +jest.spyOn(console, 'log').mockImplementation(() => {}); +jest.spyOn(console, 'warn').mockImplementation(() => {}); +jest.spyOn(console, 'error').mockImplementation(() => {}); + +const CODE_PACKAGE_JSON_PATH = path.join(__dirname, '..', '..', '..', 'code', 'package.json'); + +describe('Ensure next ahead', () => { + beforeEach(() => { + jest.clearAllMocks(); + gitClient.git.status.mockResolvedValue({ current: 'next' } as any); + fsExtra.__setMockFiles({ + [CODE_PACKAGE_JSON_PATH]: JSON.stringify({ version: '2.0.0' }), + }); + }); + + it('should throw when main-version is missing', async () => { + await expect(ensureNextAhead({})).rejects.toThrowErrorMatchingInlineSnapshot(` + "[ + { + "code": "invalid_type", + "expected": "string", + "received": "undefined", + "path": [ + "mainVersion" + ], + "message": "Required" + } + ]" + `); + }); + + it('should throw when main-version is not a semver string', async () => { + await expect(ensureNextAhead({ mainVersion: '200' })).rejects + .toThrowErrorMatchingInlineSnapshot(` + "[ + { + "code": "custom", + "message": "main-version must be a valid semver version string like '7.4.2'.", + "path": [] + } + ]" + `); + }); + + it('should not bump version when next is already ahead of main', async () => { + await expect(ensureNextAhead({ mainVersion: '1.0.0' })).resolves.toBeUndefined(); + expect(bumpVersion.run).not.toHaveBeenCalled(); + }); + + it('should bump version to 3.1.0-alpha.0 when main is 3.0.0 and next is 2.0.0', async () => { + await expect(ensureNextAhead({ mainVersion: '3.0.0' })).resolves.toBeUndefined(); + expect(bumpVersion.run).toHaveBeenCalledWith({ exact: '3.1.0-alpha.0' }); + }); + + it('should bump version to 2.1.0-alpha.0 when main and next are both 2.0.0', async () => { + await expect(ensureNextAhead({ mainVersion: '2.0.0' })).resolves.toBeUndefined(); + expect(bumpVersion.run).toHaveBeenCalledWith({ exact: '2.1.0-alpha.0' }); + }); + + it('should bump version to 2.1.0-alpha.0 when main is 2.0.0 and and next is 2.0.0-rc.10', async () => { + fsExtra.__setMockFiles({ + [CODE_PACKAGE_JSON_PATH]: JSON.stringify({ version: '2.0.0-rc.10' }), + }); + + await expect(ensureNextAhead({ mainVersion: '2.0.0' })).resolves.toBeUndefined(); + expect(bumpVersion.run).toHaveBeenCalledWith({ exact: '2.1.0-alpha.0' }); + }); +}); diff --git a/scripts/release/__tests__/generate-pr-description.test.ts b/scripts/release/__tests__/generate-pr-description.test.ts index b0f1bbe89db5..50aa5de8e019 100644 --- a/scripts/release/__tests__/generate-pr-description.test.ts +++ b/scripts/release/__tests__/generate-pr-description.test.ts @@ -15,6 +15,7 @@ describe('Generate PR Description', () => { labels: ['bug', 'build', 'other label', 'patch:yes'], commit: 'abc123', pull: 42, + state: 'MERGED', links: { commit: '[abc123](https://github.com/storybookjs/storybook/commit/abc123)', pull: '[#42](https://github.com/storybookjs/storybook/pull/42)', @@ -26,6 +27,7 @@ describe('Generate PR Description', () => { id: null, user: 'storybook-bot', pull: null, + state: null, commit: '012b58140c3606efeacbe99c0c410624b0a1ed1f', title: 'Bump version on `next`: preminor (alpha) from 7.2.0 to 7.3.0-alpha.0', labels: null, @@ -41,6 +43,7 @@ describe('Generate PR Description', () => { user: 'shilman', title: 'Some title for a "direct commit"', labels: null, + state: null, commit: '22bb11', pull: null, links: { @@ -55,6 +58,7 @@ describe('Generate PR Description', () => { title: 'Another PR `title` for docs', labels: ['another label', 'documentation', 'patch:yes'], commit: 'ddd222', + state: 'MERGED', pull: 11, links: { commit: '[ddd222](https://github.com/storybookjs/storybook/commit/ddd222)', @@ -69,6 +73,7 @@ describe('Generate PR Description', () => { labels: ['feature request', 'other label'], commit: 'wow1337', pull: 48, + state: 'MERGED', links: { commit: '[wow1337](https://github.com/storybookjs/storybook/commit/wow1337)', pull: '[#48](https://github.com/storybookjs/storybook/pull/48)', @@ -81,6 +86,7 @@ describe('Generate PR Description', () => { title: 'Some PR title with a missing label', labels: ['incorrect label', 'other label'], commit: 'bad999', + state: 'MERGED', pull: 77, links: { commit: '[bad999](https://github.com/storybookjs/storybook/commit/bad999)', @@ -213,7 +219,7 @@ For each pull request below, you need to either manually cherry pick it, or disc - [ ] [#42](https://github.com/storybookjs/storybook/pull/42): \\\`git cherry-pick -m1 -x abc123\\\` - If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-prerelease.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. + If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. Feel free to manually commit any changes necessary to this branch **after** you\\'ve done the last re-generation, following the [Make Manual Changes](https://github.com/storybookjs/storybook/blob/next/CONTRIBUTING/RELEASING.md#5-make-manual-changes) section in the docs, *especially* if you\\'re making changes to the changelog. @@ -340,7 +346,7 @@ For each pull request below, you need to either manually cherry pick it, or disc - If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-prerelease.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. + If you\\'ve made any changes doing the above QA (change PR titles, revert PRs), manually trigger a re-generation of this PR with [this workflow](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) and wait for it to finish. It will wipe your progress in this to do, which is expected. Feel free to manually commit any changes necessary to this branch **after** you\\'ve done the last re-generation, following the [Make Manual Changes](https://github.com/storybookjs/storybook/blob/next/CONTRIBUTING/RELEASING.md#5-make-manual-changes) section in the docs, *especially* if you\\'re making changes to the changelog. diff --git a/scripts/release/__tests__/is-pr-frozen.test.ts b/scripts/release/__tests__/is-pr-frozen.test.ts index 63747a863ddf..00331e0555cd 100644 --- a/scripts/release/__tests__/is-pr-frozen.test.ts +++ b/scripts/release/__tests__/is-pr-frozen.test.ts @@ -26,6 +26,7 @@ describe('isPrFrozen', () => { it('should return true when PR is frozen', async () => { getPullInfoFromCommit.mockResolvedValue({ labels: ['freeze'], + state: 'OPEN', }); await expect(isPrFrozen({ patch: false })).resolves.toBe(true); }); @@ -33,6 +34,15 @@ describe('isPrFrozen', () => { it('should return false when PR is not frozen', async () => { getPullInfoFromCommit.mockResolvedValue({ labels: [], + state: 'OPEN', + }); + await expect(isPrFrozen({ patch: false })).resolves.toBe(false); + }); + + it('should return false when PR is closed', async () => { + getPullInfoFromCommit.mockResolvedValue({ + labels: ['freeze'], + state: 'CLOSED', }); await expect(isPrFrozen({ patch: false })).resolves.toBe(false); }); @@ -54,7 +64,7 @@ describe('isPrFrozen', () => { }); await isPrFrozen({ patch: false }); - expect(simpleGit.__fetch).toHaveBeenCalledWith('origin', 'version-prerelease-from-1.0.0', { + expect(simpleGit.__fetch).toHaveBeenCalledWith('origin', 'version-non-patch-from-1.0.0', { '--depth': 1, }); }); diff --git a/scripts/release/__tests__/label-patches.test.ts b/scripts/release/__tests__/label-patches.test.ts index d98abc7eb763..d43290a1828c 100644 --- a/scripts/release/__tests__/label-patches.test.ts +++ b/scripts/release/__tests__/label-patches.test.ts @@ -58,6 +58,7 @@ const pullInfoMock = { commit: '930b47f011f750c44a1782267d698ccdd3c04da3', title: 'Legal: Fix license', labels: ['documentation', 'patch:yes', 'patch:done'], + state: 'MERGED', links: { commit: '[`930b47f011f750c44a1782267d698ccdd3c04da3`](https://github.com/storybookjs/storybook/commit/930b47f011f750c44a1782267d698ccdd3c04da3)', diff --git a/scripts/release/cancel-preparation-runs.ts b/scripts/release/cancel-preparation-runs.ts new file mode 100644 index 000000000000..630bfb4847b3 --- /dev/null +++ b/scripts/release/cancel-preparation-runs.ts @@ -0,0 +1,107 @@ +/** + * This script cancels all running preparation workflows in GitHub. + * It will fetch all active runs for the preparation workflows, and cancel them. + */ +/* eslint-disable no-console */ +import chalk from 'chalk'; +import program from 'commander'; +import dedent from 'ts-dedent'; +import { githubRestClient } from './utils/github-client'; + +program + .name('cancel-preparation-workflows') + .description('cancel all running preparation workflows in GitHub'); + +export const PREPARE_PATCH_WORKFLOW_PATH = '.github/workflows/prepare-patch-release.yml'; +export const PREPARE_NON_PATCH_WORKFLOW_PATH = '.github/workflows/prepare-non-patch-release.yml'; + +export const run = async () => { + if (!process.env.GH_TOKEN) { + throw new Error('GH_TOKEN environment variable must be set, exiting.'); + } + + console.log(`🔎 Looking for workflows to cancel...`); + const allWorkflows = await githubRestClient('GET /repos/{owner}/{repo}/actions/workflows', { + owner: 'storybookjs', + repo: 'storybook', + }); + + const preparePatchWorkflowId = allWorkflows.data.workflows.find( + ({ path }) => path === PREPARE_PATCH_WORKFLOW_PATH + )?.id; + const prepareNonPatchWorkflowId = allWorkflows.data.workflows.find( + ({ path }) => path === PREPARE_NON_PATCH_WORKFLOW_PATH + )?.id; + + console.log(`Found workflow IDs for the preparation workflows: + ${chalk.blue(PREPARE_PATCH_WORKFLOW_PATH)}: ${chalk.green(preparePatchWorkflowId)} + ${chalk.blue(PREPARE_NON_PATCH_WORKFLOW_PATH)}: ${chalk.green(prepareNonPatchWorkflowId)}`); + + if (!preparePatchWorkflowId || !prepareNonPatchWorkflowId) { + throw new Error(dedent`🚨 Could not find workflow IDs for the preparation workflows + - Looked for paths: "${chalk.blue(PREPARE_PATCH_WORKFLOW_PATH)}" and "${chalk.blue( + PREPARE_NON_PATCH_WORKFLOW_PATH + )}", are they still correct? + - Found workflows: + ${JSON.stringify(allWorkflows.data.workflows, null, 2)}`); + } + + console.log('🔍 Fetching patch and non-patch runs for preparation workflows...'); + const [patchRuns, nonPatchRuns] = await Promise.all([ + githubRestClient('GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs', { + owner: 'storybookjs', + repo: 'storybook', + workflow_id: preparePatchWorkflowId, + }), + githubRestClient('GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs', { + owner: 'storybookjs', + repo: 'storybook', + workflow_id: prepareNonPatchWorkflowId, + }), + ]); + console.log('✅ Successfully fetched patch and non-patch runs for preparation workflows.'); + + const runsToCancel = patchRuns.data.workflow_runs + .concat(nonPatchRuns.data.workflow_runs) + .filter(({ status }) => + ['in_progress', 'pending', 'queued', 'requested', 'waiting'].includes(status) + ); + + if (runsToCancel.length === 0) { + console.log('👍 No runs to cancel.'); + return; + } + + console.log(`🔍 Found ${runsToCancel.length} runs to cancel. Cancelling them now: + ${runsToCancel + .map((r) => `${chalk.green(r.path)} - ${chalk.green(r.id)}: ${chalk.blue(r.status)}`) + .join('\n ')}`); + + const result = await Promise.allSettled( + runsToCancel.map((r) => + githubRestClient('POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel', { + owner: 'storybookjs', + repo: 'storybook', + run_id: r.id, + }) + ) + ); + + if (result.some((r) => r.status === 'rejected')) { + console.warn('⚠️ Some runs could not be cancelled:'); + result.forEach((r, index) => { + if (r.status === 'rejected') { + console.warn(`Run ID: ${runsToCancel[index].id} - Reason: ${r.reason}`); + } + }); + } else { + console.log('✅ Successfully cancelled all preparation runs.'); + } +}; + +if (require.main === module) { + run().catch((err) => { + console.error(err); + // this is non-critical work, so we don't want to fail the CI build if this fails + }); +} diff --git a/scripts/release/ensure-next-ahead.ts b/scripts/release/ensure-next-ahead.ts new file mode 100644 index 000000000000..1aa32bfd932c --- /dev/null +++ b/scripts/release/ensure-next-ahead.ts @@ -0,0 +1,101 @@ +/** + * This script ensures that next is always one minor ahead of main. + * This is needed when releasing a stable from next. + * Next will be at eg. 7.4.0-alpha.4, and main will be at 7.3.0. + * Then we release 7.4.0 by merging next to latest-release to main. + * We then ensure here that next is bumped to 7.5.0-alpha.0 - without releasing it. + * If this is a patch release bumping main to 7.3.1, next will not be touched because it's already ahead. + */ + +/* eslint-disable no-console */ +import chalk from 'chalk'; +import path from 'path'; +import program from 'commander'; +import semver from 'semver'; +import { z } from 'zod'; +import { readJson } from 'fs-extra'; +import { run as bumpVersion } from './version'; +import { git } from './utils/git-client'; + +program + .name('ensure-next-ahead') + .description('ensure the "next" branch is always a minor version ahead of "main"') + .requiredOption('-M, --main-version ', 'The version currently on the "main" branch'); + +const optionsSchema = z + .object({ + mainVersion: z.string(), + }) + .refine((schema) => semver.valid(schema.mainVersion), { + message: "main-version must be a valid semver version string like '7.4.2'.", + }); + +type Options = { + mainVersion: string; +}; + +const CODE_DIR_PATH = path.join(__dirname, '..', '..', 'code'); +const CODE_PACKAGE_JSON_PATH = path.join(CODE_DIR_PATH, 'package.json'); + +const validateOptions = (options: { [key: string]: any }): options is Options => { + optionsSchema.parse(options); + return true; +}; + +const getCurrentVersion = async () => { + const { version } = await readJson(CODE_PACKAGE_JSON_PATH); + console.log(`📐 Current version of Storybook is ${chalk.green(version)}`); + return version; +}; + +export const run = async (options: unknown) => { + if (!validateOptions(options)) { + return; + } + const { mainVersion } = options; + + const { current: currentGitBranch } = await git.status(); + + if (currentGitBranch !== 'next') { + console.warn( + `🚧 The current branch is not "next" but "${currentGitBranch}", this only really makes sense to run on the "next" branch.` + ); + } + + // Get the current version from code/package.json + const currentNextVersion = await getCurrentVersion(); + if (semver.gt(currentNextVersion, mainVersion)) { + console.log( + `✅ The version on next (${chalk.green( + currentNextVersion + )}) is already ahead of the version on main (${chalk.green(mainVersion)}), no action needed.` + ); + return; + } + + const nextNextVersion = `${semver.inc(mainVersion, 'minor')}-alpha.0`; + + console.log( + `🤜 The version on next (${chalk.green( + currentNextVersion + )}) is behind the version on main (${chalk.green(mainVersion)}), bumping to ${chalk.blue( + nextNextVersion + )}...` + ); + + await bumpVersion({ exact: nextNextVersion }); + + console.log( + `✅ bumped all versions to ${chalk.green( + nextNextVersion + )}, remember to commit and push to next.` + ); +}; + +if (require.main === module) { + const parsed = program.parse(); + run(parsed.opts()).catch((err) => { + console.error(err); + process.exit(1); + }); +} diff --git a/scripts/release/generate-pr-description.ts b/scripts/release/generate-pr-description.ts index 16a6928e994f..d437e8dc87bc 100644 --- a/scripts/release/generate-pr-description.ts +++ b/scripts/release/generate-pr-description.ts @@ -18,7 +18,7 @@ program 'Which version to generate changelog from, eg. "7.0.7". Defaults to the version at code/package.json' ) .option('-N, --next-version ', 'Which version to generate changelog to, eg. "7.0.8"') - .option('-P, --unpicked-patches', 'Set to only consider PRs labeled with "patch" label') + .option('-P, --unpicked-patches', 'Set to only consider PRs labeled with "patch:yes" label') .option( '-M, --manual-cherry-picks ', 'A stringified JSON array of commit hashes, of patch PRs that needs to be cherry-picked manually' @@ -52,6 +52,7 @@ const CHANGE_TITLES_TO_IGNORE = [ /\[ci skip\]/i, /^Update CHANGELOG\.md for.*/i, /^Release: (Pre)?(Patch|Minor|Major|Release).*\d+$/i, + /^Update \.\/docs\/versions/, ]; export const mapToChangelist = ({ @@ -65,7 +66,7 @@ export const mapToChangelist = ({ .filter((change) => { // eslint-disable-next-line no-restricted-syntax for (const titleToIgnore of CHANGE_TITLES_TO_IGNORE) { - if (change.title.match(titleToIgnore)) { + if (change.title?.match(titleToIgnore)) { return false; } } @@ -90,7 +91,7 @@ export const mapToChangelist = ({ )[0] || 'unknown') as keyof typeof LABELS_BY_IMPORTANCE; return `- [ ] **${LABELS_BY_IMPORTANCE[label]}**: ${change.title} ${change.links.pull}${ - !unpickedPatches && change.labels.includes('patch:yes') ? ' (will also be patched)' : '' + !unpickedPatches && change.labels?.includes('patch:yes') ? ' (will also be patched)' : '' }`; }) .join('\n'); @@ -141,7 +142,9 @@ export const generateReleaseDescription = ({ changelogText: string; manualCherryPicks?: string; }): string => { - const workflow = semver.prerelease(nextVersion) ? 'prepare-prerelease' : 'prepare-patch-release'; + const workflow = semver.prerelease(nextVersion) + ? 'prepare-non-patch-release' + : 'prepare-patch-release'; const workflowUrl = `https://github.com/storybookjs/storybook/actions/workflows/${workflow}.yml`; return ( diff --git a/scripts/release/is-pr-frozen.ts b/scripts/release/is-pr-frozen.ts index 70289b5369d8..e81610a451b9 100644 --- a/scripts/release/is-pr-frozen.ts +++ b/scripts/release/is-pr-frozen.ts @@ -12,7 +12,7 @@ program .description( 'returns true if the versioning pull request associated with the current branch has the "freeze" label' ) - .option('-P, --patch', 'Look for patch PR instead of prerelease PR', false) + .option('-H, --patch', 'Look for patch PR instead of next PR', false) .option('-V, --verbose', 'Enable verbose logging', false); const CODE_DIR_PATH = path.join(__dirname, '..', '..', 'code'); @@ -46,7 +46,7 @@ export const run = async (options: unknown) => { const { verbose, patch } = options as { verbose?: boolean; patch?: boolean }; const version = await getCurrentVersion(); - const branch = `version-${patch ? 'patch' : 'prerelease'}-from-${version}`; + const branch = `version-${patch ? 'patch' : 'non-patch'}-from-${version}`; console.log(`💬 Determining if pull request from branch '${chalk.blue(branch)}' is frozen`); @@ -78,6 +78,14 @@ export const run = async (options: unknown) => { console.log(`🔍 Found pull request: ${JSON.stringify(pullRequest, null, 2)}`); + if (pullRequest.state !== 'OPEN') { + console.log('❌ The pull request is already closed, ignoring it'); + if (process.env.GITHUB_ACTIONS === 'true') { + setOutput('frozen', false); + } + return false; + } + const isFrozen = pullRequest.labels?.includes('freeze'); if (process.env.GITHUB_ACTIONS === 'true') { setOutput('frozen', isFrozen); diff --git a/scripts/release/pick-patches.ts b/scripts/release/pick-patches.ts index eab1743dcc7b..9d3169d78c8a 100644 --- a/scripts/release/pick-patches.ts +++ b/scripts/release/pick-patches.ts @@ -80,6 +80,7 @@ export const run = async (_: unknown) => { } if (process.env.GITHUB_ACTIONS === 'true') { + setOutput('pr-count', JSON.stringify(patchPRs.length)); setOutput('failed-cherry-picks', JSON.stringify(failedCherryPicks)); } }; diff --git a/scripts/release/utils/get-changes.ts b/scripts/release/utils/get-changes.ts index 1ad2a0759198..416ea624fb50 100644 --- a/scripts/release/utils/get-changes.ts +++ b/scripts/release/utils/get-changes.ts @@ -53,7 +53,7 @@ export const getFromCommit = async (from?: string | undefined, verbose?: boolean console.log(`🔍 No 'from' specified, found latest tag: ${chalk.blue(latest)}`); } } - const commit = await getCommitAt(actualFrom, verbose); + const commit = await getCommitAt(actualFrom!, verbose); if (verbose) { console.log(`🔍 Found 'from' commit: ${chalk.blue(commit)}`); } diff --git a/scripts/release/utils/get-github-info.ts b/scripts/release/utils/get-github-info.ts index 6bd7126aec04..bdfe995a9001 100644 --- a/scripts/release/utils/get-github-info.ts +++ b/scripts/release/utils/get-github-info.ts @@ -40,6 +40,7 @@ function makeQuery(repos: ReposWithCommitsAndPRsToFetch) { number id title + state url mergedAt labels(first: 50) { @@ -63,6 +64,7 @@ function makeQuery(repos: ReposWithCommitsAndPRsToFetch) { : `pr__${data.pull}: pullRequest(number: ${data.pull}) { url title + state author { login url @@ -161,11 +163,12 @@ export type PullRequestInfo = { user: string | null; id: string | null; title: string | null; + state: string | null; commit: string | null; pull: number | null; labels: string[] | null; links: { - commit: string; + commit: string | null; pull: string | null; user: string | null; }; @@ -197,6 +200,7 @@ export async function getPullInfoFromCommit(request: { pull: null, commit: request.commit, title: null, + state: null, labels: null, links: { commit: request.commit, @@ -205,10 +209,7 @@ export async function getPullInfoFromCommit(request: { }, }; } - let user = null; - if (data.author && data.author.user) { - user = data.author.user; - } + let user = data?.author?.user || null; const associatedPullRequest = data.associatedPullRequests && @@ -245,6 +246,7 @@ export async function getPullInfoFromCommit(request: { pull: associatedPullRequest ? associatedPullRequest.number : null, commit: request.commit, title: associatedPullRequest ? associatedPullRequest.title : null, + state: associatedPullRequest ? associatedPullRequest.state : null, labels: associatedPullRequest ? (associatedPullRequest.labels.nodes || []).map((label: { name: string }) => label.name) : null, @@ -287,6 +289,7 @@ export async function getPullInfoFromPullRequest(request: { pull: request.pull, commit: commit ? commit.oid : null, title: title || null, + state: data?.state || null, labels: data ? (data.labels.nodes || []).map((label: { name: string }) => label.name) : null, links: { commit: commit ? `[\`${commit.oid}\`](${commit.commitUrl})` : null, diff --git a/scripts/release/utils/github-client.ts b/scripts/release/utils/github-client.ts index 646ba1003986..e81991414bf9 100644 --- a/scripts/release/utils/github-client.ts +++ b/scripts/release/utils/github-client.ts @@ -1,6 +1,8 @@ /* eslint-disable no-console */ import type { GraphQlQueryResponseData } from '@octokit/graphql'; import { graphql } from '@octokit/graphql'; +import { request } from '@octokit/request'; +import fetch from 'node-fetch'; export interface PullRequest { number: number; @@ -14,6 +16,13 @@ export const githubGraphQlClient = graphql.defaults({ headers: { authorization: `token ${process.env.GH_TOKEN}` }, }); +export const githubRestClient = request.defaults({ + request: { + fetch, + }, + headers: { authorization: `token ${process.env.GH_TOKEN}`, 'X-GitHub-Api-Version': '2022-11-28' }, +}); + export async function getUnpickedPRs( baseBranch: string, verbose?: boolean diff --git a/scripts/yarn.lock b/scripts/yarn.lock index 19568a9f4a70..f9d17fe543a8 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -2531,6 +2531,17 @@ __metadata: languageName: node linkType: hard +"@octokit/endpoint@npm:^9.0.0": + version: 9.0.1 + resolution: "@octokit/endpoint@npm:9.0.1" + dependencies: + "@octokit/types": ^12.0.0 + is-plain-object: ^5.0.0 + universal-user-agent: ^6.0.0 + checksum: 757505b1cd634bcd7b71a18c8fe07dfda47790598ddd0d9d13f47d68713070f49953a672ac40ec39787defc2a7e07d08dca97756def7b907118f8f8d4c653f5c + languageName: node + linkType: hard + "@octokit/graphql@npm:^4.3.1, @octokit/graphql@npm:^4.5.8": version: 4.8.0 resolution: "@octokit/graphql@npm:4.8.0" @@ -2567,6 +2578,13 @@ __metadata: languageName: node linkType: hard +"@octokit/openapi-types@npm:^19.0.0": + version: 19.0.0 + resolution: "@octokit/openapi-types@npm:19.0.0" + checksum: 8270e0a224bbef6d1c82396cda873a3528111cb25a772184b39e1fbada4e6433b41c5f4634ecf204e8a2816a802048197e0132b7615b579fab217f7c1e29545b + languageName: node + linkType: hard + "@octokit/plugin-paginate-rest@npm:^2.16.8, @octokit/plugin-paginate-rest@npm:^2.2.0": version: 2.21.3 resolution: "@octokit/plugin-paginate-rest@npm:2.21.3" @@ -2631,6 +2649,17 @@ __metadata: languageName: node linkType: hard +"@octokit/request-error@npm:^5.0.0": + version: 5.0.1 + resolution: "@octokit/request-error@npm:5.0.1" + dependencies: + "@octokit/types": ^12.0.0 + deprecation: ^2.0.0 + once: ^1.4.0 + checksum: e72a4627120de345b54876a1f007664095e5be9d624fce2e14fccf7668cd8f5e4929d444d8fc085d48e1fb5cd548538453974aab129a669101110d6679dce6c6 + languageName: node + linkType: hard + "@octokit/request@npm:^5.4.0, @octokit/request@npm:^5.6.0, @octokit/request@npm:^5.6.3": version: 5.6.3 resolution: "@octokit/request@npm:5.6.3" @@ -2659,6 +2688,19 @@ __metadata: languageName: node linkType: hard +"@octokit/request@npm:^8.1.2": + version: 8.1.2 + resolution: "@octokit/request@npm:8.1.2" + dependencies: + "@octokit/endpoint": ^9.0.0 + "@octokit/request-error": ^5.0.0 + "@octokit/types": ^12.0.0 + is-plain-object: ^5.0.0 + universal-user-agent: ^6.0.0 + checksum: 49219eb71b856acecc8268f05a7a7d074488f9eaeb59439f5c8872e5b4555a4e6c0cf0ebcadf0983466f88957e74c27765f582e473b0dd89b453274501f0dc37 + languageName: node + linkType: hard + "@octokit/rest@npm:^16.43.0 || ^17.11.0 || ^18.12.0, @octokit/rest@npm:^18.12.0": version: 18.12.0 resolution: "@octokit/rest@npm:18.12.0" @@ -2683,6 +2725,15 @@ __metadata: languageName: node linkType: hard +"@octokit/types@npm:^12.0.0": + version: 12.0.0 + resolution: "@octokit/types@npm:12.0.0" + dependencies: + "@octokit/openapi-types": ^19.0.0 + checksum: 6e5b68f8855775638db53244348d2ca07896d36a15aad41d3cb652fafaa1b307c3b6222319174dd5716accd9076e101da838b82f988a7c380a8e9d188e3aadf1 + languageName: node + linkType: hard + "@octokit/types@npm:^4.1.6": version: 4.1.10 resolution: "@octokit/types@npm:4.1.10" @@ -2901,6 +2952,7 @@ __metadata: "@jest/globals": ^29.3.1 "@nx/workspace": 16.2.1 "@octokit/graphql": ^5.0.5 + "@octokit/request": ^8.1.2 "@storybook/eslint-config-storybook": ^3.1.2 "@storybook/jest": next "@storybook/linter-config": ^3.1.2 From ced815b2a65f9c501e6c9f983e3d20689a60e4b1 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 5 Oct 2023 12:04:20 +0200 Subject: [PATCH 105/154] fix prerelease -> non-patch naming --- .github/workflows/prepare-non-patch-release.yml | 6 +++--- CONTRIBUTING/RELEASING.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/prepare-non-patch-release.yml b/.github/workflows/prepare-non-patch-release.yml index ea72d924d918..e1a443ff8025 100644 --- a/.github/workflows/prepare-non-patch-release.yml +++ b/.github/workflows/prepare-non-patch-release.yml @@ -1,5 +1,5 @@ -name: Prepare prerelease PR -run-name: Prepare prerelease PR, triggered by ${{ github.triggering_actor }} +name: Prepare non-patch PR +run-name: Prepare non-patch PR, triggered by ${{ github.triggering_actor }} on: push: @@ -35,7 +35,7 @@ concurrency: jobs: prepare-non-patch-pull-request: - name: Prepare prerelease pull request + name: Prepare non-patch pull request runs-on: ubuntu-latest environment: release defaults: diff --git a/CONTRIBUTING/RELEASING.md b/CONTRIBUTING/RELEASING.md index e92fa8fa36a3..7cf29a463c62 100644 --- a/CONTRIBUTING/RELEASING.md +++ b/CONTRIBUTING/RELEASING.md @@ -304,7 +304,7 @@ The workflows can be triggered here: - [Prepare next PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-non-patch-release.yml) - [Prepare patch PR](https://github.com/storybookjs/storybook/actions/workflows/prepare-patch-release.yml) -Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - Non-patch Releases](#non-patch-releases). When triggering the prerelease workflow manually, you can optionally add inputs: +Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - Non-patch Releases](#non-patch-releases). When triggering the non-patch workflow manually, you can optionally add inputs: ![Screenshot of triggering the non-patch-release workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) From d8b6d673471c964f25f92bf6082ecfa910a7caf4 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 5 Oct 2023 13:38:16 +0200 Subject: [PATCH 106/154] improve merge conflict hnadling between next and latest-release --- .github/workflows/prepare-non-patch-release.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prepare-non-patch-release.yml b/.github/workflows/prepare-non-patch-release.yml index e1a443ff8025..6e89369c7c7c 100644 --- a/.github/workflows/prepare-non-patch-release.yml +++ b/.github/workflows/prepare-non-patch-release.yml @@ -133,11 +133,13 @@ jobs: git push --force origin version-non-patch-from-${{ steps.bump-version.outputs.current-version }} - name: Resolve merge-conflicts with base branch - if: steps.is-prerelease.outputs.prerelease == 'true' + if: steps.is-prerelease.outputs.prerelease == 'false' + working-directory: . env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - git pull origin latest-release + git config pull.rebase false + git pull --no-commit --no-ff origin latest-release git checkout --ours . git add . git commit -m "Merge latest-release into version-non-patch-from-${{ steps.bump-version.outputs.current-version }} with conflicts resolved to ours [skip ci]" From cbac1a0f13155114248bc3d560bf29406037e8a2 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 5 Oct 2023 13:44:06 +0200 Subject: [PATCH 107/154] make merge conflict handling more resilient --- .github/workflows/prepare-non-patch-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prepare-non-patch-release.yml b/.github/workflows/prepare-non-patch-release.yml index 6e89369c7c7c..58f2b3e81aa1 100644 --- a/.github/workflows/prepare-non-patch-release.yml +++ b/.github/workflows/prepare-non-patch-release.yml @@ -139,10 +139,10 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git config pull.rebase false - git pull --no-commit --no-ff origin latest-release + git pull --no-commit --no-ff origin latest-release || true git checkout --ours . git add . - git commit -m "Merge latest-release into version-non-patch-from-${{ steps.bump-version.outputs.current-version }} with conflicts resolved to ours [skip ci]" + git commit --amend -m "Merge latest-release into version-non-patch-from-${{ steps.bump-version.outputs.current-version }} with conflicts resolved to ours [skip ci]" - name: Generate PR description id: description From af742751be8997eb00c47e952d458dd07ab58ada Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 5 Oct 2023 13:47:27 +0200 Subject: [PATCH 108/154] fix merging commit message --- .github/workflows/prepare-non-patch-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prepare-non-patch-release.yml b/.github/workflows/prepare-non-patch-release.yml index 58f2b3e81aa1..bc14a9b68e79 100644 --- a/.github/workflows/prepare-non-patch-release.yml +++ b/.github/workflows/prepare-non-patch-release.yml @@ -142,7 +142,7 @@ jobs: git pull --no-commit --no-ff origin latest-release || true git checkout --ours . git add . - git commit --amend -m "Merge latest-release into version-non-patch-from-${{ steps.bump-version.outputs.current-version }} with conflicts resolved to ours [skip ci]" + git commit --no-verify -m "Merge latest-release into version-non-patch-from-${{ steps.bump-version.outputs.current-version }} with conflicts resolved to ours [skip ci]" - name: Generate PR description id: description From bf592f1de4666346c7e5c79fe4a03f1d22a9f9d2 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 5 Oct 2023 14:17:29 +0200 Subject: [PATCH 109/154] test trigger non-patch workflow --- .github/workflows/prepare-non-patch-release.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/prepare-non-patch-release.yml b/.github/workflows/prepare-non-patch-release.yml index bc14a9b68e79..0cd4775363b8 100644 --- a/.github/workflows/prepare-non-patch-release.yml +++ b/.github/workflows/prepare-non-patch-release.yml @@ -2,6 +2,7 @@ name: Prepare non-patch PR run-name: Prepare non-patch PR, triggered by ${{ github.triggering_actor }} on: + pull_request: # to temporarily test the workflow before merging push: branches: - next @@ -45,7 +46,7 @@ jobs: - name: Checkout next uses: actions/checkout@v3 with: - ref: next + ref: release-to-latest-v2 #to temporarily test the workflow before merging # this needs to be set to a high enough number that it will contain the last version tag # as of May 2023, the whole repo had 55K commits fetch-depth: 10000 @@ -127,10 +128,10 @@ jobs: run: | git config --global user.name 'storybook-bot' git config --global user.email '32066757+storybook-bot@users.noreply.github.com' - git checkout -b version-non-patch-from-${{ steps.bump-version.outputs.current-version }} + git checkout -b TEST-version-non-patch-from-${{ steps.bump-version.outputs.current-version }} git add . git commit -m "Write changelog for ${{ steps.bump-version.outputs.next-version }} [skip ci]" || true - git push --force origin version-non-patch-from-${{ steps.bump-version.outputs.current-version }} + git push --force origin TEST-version-non-patch-from-${{ steps.bump-version.outputs.current-version }} - name: Resolve merge-conflicts with base branch if: steps.is-prerelease.outputs.prerelease == 'false' @@ -159,13 +160,13 @@ jobs: if PR_STATE=$(gh pr view --json state --jq .state 2>/dev/null) && [[ -n "$PR_STATE" && "$PR_STATE" == *"OPEN"* ]]; then gh pr edit \ --repo "${{github.repository }}" \ - --title "Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ + --title "TEST Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ --body "${{ steps.description.outputs.description }}" else gh pr create \ --repo "${{github.repository }}"\ - --title "Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ + --title "TEST Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ --label "release" \ --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ --head version-non-patch-from-${{ steps.bump-version.outputs.current-version }} \ From c457e1b33fdeb162c360ba486293d7f1d69cc313 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 5 Oct 2023 14:29:08 +0200 Subject: [PATCH 110/154] test stable preparation workflow --- .github/workflows/prepare-non-patch-release.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/prepare-non-patch-release.yml b/.github/workflows/prepare-non-patch-release.yml index 0cd4775363b8..00741a0495aa 100644 --- a/.github/workflows/prepare-non-patch-release.yml +++ b/.github/workflows/prepare-non-patch-release.yml @@ -115,7 +115,7 @@ jobs: - name: Check release vs prerelease id: is-prerelease - run: yarn release:is-prerelease ${{ steps.bump-version.outputs.next-version }} + run: yarn release:is-prerelease 7.6.0 - name: Write changelog env: @@ -128,10 +128,10 @@ jobs: run: | git config --global user.name 'storybook-bot' git config --global user.email '32066757+storybook-bot@users.noreply.github.com' - git checkout -b TEST-version-non-patch-from-${{ steps.bump-version.outputs.current-version }} + git checkout -b TEST2-version-non-patch-from-${{ steps.bump-version.outputs.current-version }} git add . git commit -m "Write changelog for ${{ steps.bump-version.outputs.next-version }} [skip ci]" || true - git push --force origin TEST-version-non-patch-from-${{ steps.bump-version.outputs.current-version }} + git push --force origin TEST2-version-non-patch-from-${{ steps.bump-version.outputs.current-version }} - name: Resolve merge-conflicts with base branch if: steps.is-prerelease.outputs.prerelease == 'false' @@ -160,13 +160,13 @@ jobs: if PR_STATE=$(gh pr view --json state --jq .state 2>/dev/null) && [[ -n "$PR_STATE" && "$PR_STATE" == *"OPEN"* ]]; then gh pr edit \ --repo "${{github.repository }}" \ - --title "TEST Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ + --title "TEST2 Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ --body "${{ steps.description.outputs.description }}" else gh pr create \ --repo "${{github.repository }}"\ - --title "TEST Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ + --title "TEST2 Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ --label "release" \ --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ --head version-non-patch-from-${{ steps.bump-version.outputs.current-version }} \ From b0d68380677b80a7500d980d069a4f0d8166d598 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Thu, 5 Oct 2023 14:43:48 +0200 Subject: [PATCH 111/154] test stable workflow --- .github/workflows/prepare-non-patch-release.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/prepare-non-patch-release.yml b/.github/workflows/prepare-non-patch-release.yml index 00741a0495aa..c0e3c8b36eaa 100644 --- a/.github/workflows/prepare-non-patch-release.yml +++ b/.github/workflows/prepare-non-patch-release.yml @@ -115,7 +115,7 @@ jobs: - name: Check release vs prerelease id: is-prerelease - run: yarn release:is-prerelease 7.6.0 + run: yarn release:is-prerelease - name: Write changelog env: @@ -128,13 +128,13 @@ jobs: run: | git config --global user.name 'storybook-bot' git config --global user.email '32066757+storybook-bot@users.noreply.github.com' - git checkout -b TEST2-version-non-patch-from-${{ steps.bump-version.outputs.current-version }} + git checkout -b TEST3-version-non-patch-from-${{ steps.bump-version.outputs.current-version }} git add . git commit -m "Write changelog for ${{ steps.bump-version.outputs.next-version }} [skip ci]" || true - git push --force origin TEST2-version-non-patch-from-${{ steps.bump-version.outputs.current-version }} + git push --force origin TEST3-version-non-patch-from-${{ steps.bump-version.outputs.current-version }} - name: Resolve merge-conflicts with base branch - if: steps.is-prerelease.outputs.prerelease == 'false' + if: steps.is-prerelease.outputs.prerelease != 'false' working-directory: . env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -160,15 +160,15 @@ jobs: if PR_STATE=$(gh pr view --json state --jq .state 2>/dev/null) && [[ -n "$PR_STATE" && "$PR_STATE" == *"OPEN"* ]]; then gh pr edit \ --repo "${{github.repository }}" \ - --title "TEST2 Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ - --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ + --title "TEST3 Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ + --base ${{ steps.is-prerelease.outputs.prerelease != 'true' && 'next-release' || 'latest-release' }} \ --body "${{ steps.description.outputs.description }}" else gh pr create \ --repo "${{github.repository }}"\ - --title "TEST2 Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ + --title "TEST3 Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ --label "release" \ - --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ + --base ${{ steps.is-prerelease.outputs.prerelease != 'true' && 'next-release' || 'latest-release' }} \ --head version-non-patch-from-${{ steps.bump-version.outputs.current-version }} \ --body "${{ steps.description.outputs.description }}" fi From 15370fd1c75a02d36b5c60a46573e3930b6d45e0 Mon Sep 17 00:00:00 2001 From: Ian VanSchooten Date: Thu, 5 Oct 2023 08:54:32 -0400 Subject: [PATCH 112/154] Add instructions for installing yarn --- docs/contribute/code.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/contribute/code.md b/docs/contribute/code.md index e0317f634c8d..9b91bd64cb98 100644 --- a/docs/contribute/code.md +++ b/docs/contribute/code.md @@ -17,6 +17,12 @@ Start by [forking](https://docs.github.com/en/github/getting-started-with-github git clone https://github.com/your-username/storybook.git ``` +Storybook uses the [yarn](https://v3.yarnpkg.com/) package manager. Use [corepack](https://github.com/nodejs/corepack) to set up the correct version for use with Storybook. + +```shell +corepack enable +``` + ## Run your first sandbox Storybook development happens in a set of _sandboxes_ which are templated Storybook environments corresponding to different user setups. Within each sandbox, we inject a set of generalized stories that allow us to test core features and addons in all such environments. From 806ea52995e1fe2e637fdfad9b1c7a11ff0d90b4 Mon Sep 17 00:00:00 2001 From: Ian VanSchooten Date: Thu, 5 Oct 2023 08:54:52 -0400 Subject: [PATCH 113/154] Add step to cd into storybook directory --- docs/contribute/code.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contribute/code.md b/docs/contribute/code.md index 9b91bd64cb98..fbc3dda02955 100644 --- a/docs/contribute/code.md +++ b/docs/contribute/code.md @@ -15,6 +15,7 @@ Start by [forking](https://docs.github.com/en/github/getting-started-with-github ```shell git clone https://github.com/your-username/storybook.git +cd storybook ``` Storybook uses the [yarn](https://v3.yarnpkg.com/) package manager. Use [corepack](https://github.com/nodejs/corepack) to set up the correct version for use with Storybook. From 5184a7af6773a2c0e50ee4aa84f3b540d98a1e45 Mon Sep 17 00:00:00 2001 From: Yann Braga Date: Thu, 5 Oct 2023 15:45:01 +0200 Subject: [PATCH 114/154] add more angular options webpackStatsJson previewUrl loglevel --- .../angular/src/builders/build-storybook/index.ts | 3 +++ .../src/builders/build-storybook/schema.json | 4 ++++ .../angular/src/builders/start-storybook/index.ts | 9 +++++++++ .../src/builders/start-storybook/schema.json | 14 ++++++++++++++ 4 files changed, 30 insertions(+) diff --git a/code/frameworks/angular/src/builders/build-storybook/index.ts b/code/frameworks/angular/src/builders/build-storybook/index.ts index a33b1f4b9776..2c72b4d46962 100644 --- a/code/frameworks/angular/src/builders/build-storybook/index.ts +++ b/code/frameworks/angular/src/builders/build-storybook/index.ts @@ -49,6 +49,7 @@ export type StorybookBuilderOptions = JsonObject & { | 'webpackStatsJson' | 'disableTelemetry' | 'debugWebpack' + | 'previewUrl' >; export type StorybookBuilderOutput = JsonObject & BuilderOutput & { [key: string]: any }; @@ -90,6 +91,7 @@ const commandBuilder: BuilderHandlerFn = ( debugWebpack, disableTelemetry, assets, + previewUrl, } = options; const standaloneOptions: StandaloneBuildOptions = { @@ -111,6 +113,7 @@ const commandBuilder: BuilderHandlerFn = ( tsConfig, webpackStatsJson, debugWebpack, + previewUrl, }; return standaloneOptions; diff --git a/code/frameworks/angular/src/builders/build-storybook/schema.json b/code/frameworks/angular/src/builders/build-storybook/schema.json index 51f24c17a46a..958e6ea7cc1f 100644 --- a/code/frameworks/angular/src/builders/build-storybook/schema.json +++ b/code/frameworks/angular/src/builders/build-storybook/schema.json @@ -67,6 +67,10 @@ "description": "Write Webpack Stats JSON to disk", "default": false }, + "previewUrl": { + "type": "string", + "description": "Disables the default storybook preview and lets you use your own" + }, "styles": { "type": "array", "description": "Global styles to be included in the build.", diff --git a/code/frameworks/angular/src/builders/start-storybook/index.ts b/code/frameworks/angular/src/builders/start-storybook/index.ts index cff33f886fb6..b9fabda386f7 100644 --- a/code/frameworks/angular/src/builders/start-storybook/index.ts +++ b/code/frameworks/angular/src/builders/start-storybook/index.ts @@ -54,6 +54,9 @@ export type StorybookBuilderOptions = JsonObject & { | 'open' | 'docs' | 'debugWebpack' + | 'webpackStatsJson' + | 'loglevel' + | 'previewUrl' >; export type StorybookBuilderOutput = JsonObject & BuilderOutput & {}; @@ -105,6 +108,9 @@ const commandBuilder: BuilderHandlerFn = (options, cont initialPath, open, debugWebpack, + loglevel, + webpackStatsJson, + previewUrl, } = options; const standaloneOptions: StandaloneOptions = { @@ -133,6 +139,9 @@ const commandBuilder: BuilderHandlerFn = (options, cont initialPath, open, debugWebpack, + loglevel, + webpackStatsJson, + previewUrl, }; return standaloneOptions; diff --git a/code/frameworks/angular/src/builders/start-storybook/schema.json b/code/frameworks/angular/src/builders/start-storybook/schema.json index 78553109681c..d44d9c9f4f14 100644 --- a/code/frameworks/angular/src/builders/start-storybook/schema.json +++ b/code/frameworks/angular/src/builders/start-storybook/schema.json @@ -128,6 +128,20 @@ "initialPath": { "type": "string", "description": "URL path to be appended when visiting Storybook for the first time" + }, + "webpackStatsJson": { + "type": "string", + "description": "Write Webpack Stats JSON to disk", + "default": false + }, + "previewUrl": { + "type": "string", + "description": "Disables the default storybook preview and lets you use your own" + }, + "loglevel": { + "type": "string", + "description": "Controls level of logging during build. Can be one of: [silly, verbose, info (default), warn, error, silent].", + "pattern": "(silly|verbose|info|warn|silent)" } }, "additionalProperties": false, From a05089d3d3c14a635b76b6ec41a3a9250b738d4c Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Fri, 6 Oct 2023 11:34:39 +0200 Subject: [PATCH 115/154] revert testing workflow --- .github/workflows/prepare-non-patch-release.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/prepare-non-patch-release.yml b/.github/workflows/prepare-non-patch-release.yml index c0e3c8b36eaa..00a09bc5cc92 100644 --- a/.github/workflows/prepare-non-patch-release.yml +++ b/.github/workflows/prepare-non-patch-release.yml @@ -46,7 +46,7 @@ jobs: - name: Checkout next uses: actions/checkout@v3 with: - ref: release-to-latest-v2 #to temporarily test the workflow before merging + ref: next # this needs to be set to a high enough number that it will contain the last version tag # as of May 2023, the whole repo had 55K commits fetch-depth: 10000 @@ -128,13 +128,13 @@ jobs: run: | git config --global user.name 'storybook-bot' git config --global user.email '32066757+storybook-bot@users.noreply.github.com' - git checkout -b TEST3-version-non-patch-from-${{ steps.bump-version.outputs.current-version }} + git checkout -b version-non-patch-from-${{ steps.bump-version.outputs.current-version }} git add . git commit -m "Write changelog for ${{ steps.bump-version.outputs.next-version }} [skip ci]" || true - git push --force origin TEST3-version-non-patch-from-${{ steps.bump-version.outputs.current-version }} + git push --force origin version-non-patch-from-${{ steps.bump-version.outputs.current-version }} - name: Resolve merge-conflicts with base branch - if: steps.is-prerelease.outputs.prerelease != 'false' + if: steps.is-prerelease.outputs.prerelease == 'false' working-directory: . env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -161,14 +161,14 @@ jobs: gh pr edit \ --repo "${{github.repository }}" \ --title "TEST3 Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ - --base ${{ steps.is-prerelease.outputs.prerelease != 'true' && 'next-release' || 'latest-release' }} \ + --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ --body "${{ steps.description.outputs.description }}" else gh pr create \ --repo "${{github.repository }}"\ --title "TEST3 Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ --label "release" \ - --base ${{ steps.is-prerelease.outputs.prerelease != 'true' && 'next-release' || 'latest-release' }} \ + --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ --head version-non-patch-from-${{ steps.bump-version.outputs.current-version }} \ --body "${{ steps.description.outputs.description }}" fi From e6519571de8c094dc416d0d07bd4360e7d366233 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Fri, 6 Oct 2023 11:34:39 +0200 Subject: [PATCH 116/154] revert testing workflow --- .github/workflows/prepare-non-patch-release.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/prepare-non-patch-release.yml b/.github/workflows/prepare-non-patch-release.yml index c0e3c8b36eaa..fab22313a3df 100644 --- a/.github/workflows/prepare-non-patch-release.yml +++ b/.github/workflows/prepare-non-patch-release.yml @@ -2,7 +2,6 @@ name: Prepare non-patch PR run-name: Prepare non-patch PR, triggered by ${{ github.triggering_actor }} on: - pull_request: # to temporarily test the workflow before merging push: branches: - next @@ -46,7 +45,7 @@ jobs: - name: Checkout next uses: actions/checkout@v3 with: - ref: release-to-latest-v2 #to temporarily test the workflow before merging + ref: next # this needs to be set to a high enough number that it will contain the last version tag # as of May 2023, the whole repo had 55K commits fetch-depth: 10000 @@ -128,13 +127,13 @@ jobs: run: | git config --global user.name 'storybook-bot' git config --global user.email '32066757+storybook-bot@users.noreply.github.com' - git checkout -b TEST3-version-non-patch-from-${{ steps.bump-version.outputs.current-version }} + git checkout -b version-non-patch-from-${{ steps.bump-version.outputs.current-version }} git add . git commit -m "Write changelog for ${{ steps.bump-version.outputs.next-version }} [skip ci]" || true - git push --force origin TEST3-version-non-patch-from-${{ steps.bump-version.outputs.current-version }} + git push --force origin version-non-patch-from-${{ steps.bump-version.outputs.current-version }} - name: Resolve merge-conflicts with base branch - if: steps.is-prerelease.outputs.prerelease != 'false' + if: steps.is-prerelease.outputs.prerelease == 'false' working-directory: . env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -161,14 +160,14 @@ jobs: gh pr edit \ --repo "${{github.repository }}" \ --title "TEST3 Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ - --base ${{ steps.is-prerelease.outputs.prerelease != 'true' && 'next-release' || 'latest-release' }} \ + --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ --body "${{ steps.description.outputs.description }}" else gh pr create \ --repo "${{github.repository }}"\ --title "TEST3 Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ --label "release" \ - --base ${{ steps.is-prerelease.outputs.prerelease != 'true' && 'next-release' || 'latest-release' }} \ + --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ --head version-non-patch-from-${{ steps.bump-version.outputs.current-version }} \ --body "${{ steps.description.outputs.description }}" fi From c68bd21a9df3a53c4f76d8f24a3c5c19d23f5b46 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Fri, 6 Oct 2023 15:32:42 +0200 Subject: [PATCH 117/154] cleanup --- .github/workflows/prepare-non-patch-release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prepare-non-patch-release.yml b/.github/workflows/prepare-non-patch-release.yml index fab22313a3df..8d523a17a7ab 100644 --- a/.github/workflows/prepare-non-patch-release.yml +++ b/.github/workflows/prepare-non-patch-release.yml @@ -159,13 +159,13 @@ jobs: if PR_STATE=$(gh pr view --json state --jq .state 2>/dev/null) && [[ -n "$PR_STATE" && "$PR_STATE" == *"OPEN"* ]]; then gh pr edit \ --repo "${{github.repository }}" \ - --title "TEST3 Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ + --title "Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ --body "${{ steps.description.outputs.description }}" else gh pr create \ --repo "${{github.repository }}"\ - --title "TEST3 Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ + --title "Release: $CAPITALIZED_RELEASE_TYPE ${{ inputs.pre-id && format('{0} ', inputs.pre-id) }}${{ steps.bump-version.outputs.next-version }}" \ --label "release" \ --base ${{ steps.is-prerelease.outputs.prerelease == 'true' && 'next-release' || 'latest-release' }} \ --head version-non-patch-from-${{ steps.bump-version.outputs.current-version }} \ From 0e0d01b3cdfa87ca2fa91e78ed49f27e4645aa65 Mon Sep 17 00:00:00 2001 From: Atreay Kukanur <66585295+ATREAY@users.noreply.github.com> Date: Fri, 6 Oct 2023 14:43:57 +0000 Subject: [PATCH 118/154] updated changes --- docs/essentials/highlight.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/docs/essentials/highlight.md b/docs/essentials/highlight.md index 5d59649214ae..6c8da3c6f043 100644 --- a/docs/essentials/highlight.md +++ b/docs/essentials/highlight.md @@ -32,6 +32,12 @@ To highlight DOM elements with the addon, you'll need to emit the `HIGHLIGHT` ev +
+ +ℹ️ The `emit` function derived from the `useChannel` API hook creates a communication channel in Storybook's UI to listen for events and update the UI accordingly. The Highlight addon uses this channel to listen to custom events and update the highlighted elements (if any) accordingly. + +
+ ### Reset highlighted elements Out of the box, Storybook automatically removes highlighted elements when transitioning between stories. However, if you need to clear them manually, you can emit the `RESET_HIGHLIGHT` event from within a story or an addon. For example: @@ -70,11 +76,4 @@ By default, the addon applies a standard style to the highlighted elements you'v ]} /> - - - -
- -📚 In all three provided code snippets, the "emit" function comes from the `useChannel` hook, which is imported from the `@storybook/preview-api` package. This `useChannel` hook is used to create a communication channel for sending and receiving messages within the code. The "emit" function obtained from `useChannel` is then used to send messages with specific event types, such as `HIGHLIGHT` or `RESET_HIGHLIGHT`, to control or customize the behavior in the code. - -
\ No newline at end of file + \ No newline at end of file From 1d52a86089fcb4606666a5b4e7fff55c78bbf2bc Mon Sep 17 00:00:00 2001 From: Atreay Kukanur <66585295+ATREAY@users.noreply.github.com> Date: Fri, 6 Oct 2023 16:10:09 +0000 Subject: [PATCH 119/154] updated alignment changes --- docs/essentials/highlight.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/essentials/highlight.md b/docs/essentials/highlight.md index 6c8da3c6f043..190cfe1e84f8 100644 --- a/docs/essentials/highlight.md +++ b/docs/essentials/highlight.md @@ -32,12 +32,6 @@ To highlight DOM elements with the addon, you'll need to emit the `HIGHLIGHT` ev -
- -ℹ️ The `emit` function derived from the `useChannel` API hook creates a communication channel in Storybook's UI to listen for events and update the UI accordingly. The Highlight addon uses this channel to listen to custom events and update the highlighted elements (if any) accordingly. - -
- ### Reset highlighted elements Out of the box, Storybook automatically removes highlighted elements when transitioning between stories. However, if you need to clear them manually, you can emit the `RESET_HIGHLIGHT` event from within a story or an addon. For example: @@ -58,6 +52,12 @@ Out of the box, Storybook automatically removes highlighted elements when transi +
+ +ℹ️ The `emit` function derived from the `useChannel` API hook creates a communication channel in Storybook's UI to listen for events and update the UI accordingly. The Highlight addon uses this channel to listen to custom events and update the highlighted elements (if any) accordingly. + +
+ ## Customize style By default, the addon applies a standard style to the highlighted elements you've enabled for the story. However, you can enable your custom style by extending the payload object and providing a `color` and/or `style` properties. For example: From a3d6ec87c030dfad58f5abc1f4899a40714b870f Mon Sep 17 00:00:00 2001 From: bkfarnsworth Date: Sat, 7 Oct 2023 18:53:10 -0600 Subject: [PATCH 120/154] Update my-component-story-basic-and-props.js.mdx --- docs/snippets/react/my-component-story-basic-and-props.js.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/snippets/react/my-component-story-basic-and-props.js.mdx b/docs/snippets/react/my-component-story-basic-and-props.js.mdx index c1e3bc64d80f..8d63bbf2ed9f 100644 --- a/docs/snippets/react/my-component-story-basic-and-props.js.mdx +++ b/docs/snippets/react/my-component-story-basic-and-props.js.mdx @@ -1,5 +1,5 @@ ```js -// MyComponent.story.js|jsx +// MyComponent.stories.js|jsx import { MyComponent } from './MyComponent'; From e508783fa62be7712907321b58bc089cb6ce7d86 Mon Sep 17 00:00:00 2001 From: bkfarnsworth Date: Sat, 7 Oct 2023 18:53:39 -0600 Subject: [PATCH 121/154] Update my-component-story-basic-and-props.ts-4-9.mdx --- .../react/my-component-story-basic-and-props.ts-4-9.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/snippets/react/my-component-story-basic-and-props.ts-4-9.mdx b/docs/snippets/react/my-component-story-basic-and-props.ts-4-9.mdx index f693a660cf14..86957338d89e 100644 --- a/docs/snippets/react/my-component-story-basic-and-props.ts-4-9.mdx +++ b/docs/snippets/react/my-component-story-basic-and-props.ts-4-9.mdx @@ -1,5 +1,5 @@ ```tsx -// MyComponent.story.ts|tsx +// MyComponent.stories.ts|tsx import type { Meta, StoryObj } from '@storybook/react'; From ee149dd169bedfc54533aea93fa33d4466c4d2e5 Mon Sep 17 00:00:00 2001 From: bkfarnsworth Date: Sat, 7 Oct 2023 18:53:51 -0600 Subject: [PATCH 122/154] Update my-component-story-basic-and-props.ts.mdx --- docs/snippets/react/my-component-story-basic-and-props.ts.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/snippets/react/my-component-story-basic-and-props.ts.mdx b/docs/snippets/react/my-component-story-basic-and-props.ts.mdx index ee42d9ce9fd2..f93e8cb280f3 100644 --- a/docs/snippets/react/my-component-story-basic-and-props.ts.mdx +++ b/docs/snippets/react/my-component-story-basic-and-props.ts.mdx @@ -1,5 +1,5 @@ ```tsx -// MyComponent.story.ts|tsx +// MyComponent.stories.ts|tsx import type { Meta, StoryObj } from '@storybook/react'; From c74abef79dbd3c053164ca5fe6bbe75a11bebad2 Mon Sep 17 00:00:00 2001 From: Hikaru Yoshino Date: Mon, 9 Oct 2023 02:14:03 +0900 Subject: [PATCH 123/154] fix: pass when callee.name equals local.name --- code/frameworks/nextjs/src/font/babel/helpers.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/code/frameworks/nextjs/src/font/babel/helpers.ts b/code/frameworks/nextjs/src/font/babel/helpers.ts index f964f17022f7..8b027ae2cd44 100644 --- a/code/frameworks/nextjs/src/font/babel/helpers.ts +++ b/code/frameworks/nextjs/src/font/babel/helpers.ts @@ -281,13 +281,16 @@ export function getVariableMetasBySpecifier( return undefined; } + if (!types.isIdentifier(declaration.init.callee)) { + return undefined; + } + if ( - (!types.isIdentifier(declaration.init.callee) || - specifier.type !== 'ImportSpecifier' || + (specifier.type !== 'ImportSpecifier' || specifier.imported.type !== 'Identifier' || - declaration.init.callee.name !== specifier.imported.name) && - (!types.isIdentifier(declaration.init.callee) || - specifier.type !== 'ImportDefaultSpecifier' || + (declaration.init.callee.name !== specifier.imported.name && + declaration.init.callee.name !== specifier.local.name)) && + (specifier.type !== 'ImportDefaultSpecifier' || declaration.init.callee.name !== specifier.local.name) ) { return undefined; From 83c5b0016fdd745eae77bebd6a138ece54a4ff02 Mon Sep 17 00:00:00 2001 From: Hikaru Yoshino Date: Mon, 9 Oct 2023 02:16:10 +0900 Subject: [PATCH 124/154] fix: use imported.name as a functionName --- code/frameworks/nextjs/src/font/babel/helpers.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/code/frameworks/nextjs/src/font/babel/helpers.ts b/code/frameworks/nextjs/src/font/babel/helpers.ts index 8b027ae2cd44..5f588d8c8c2c 100644 --- a/code/frameworks/nextjs/src/font/babel/helpers.ts +++ b/code/frameworks/nextjs/src/font/babel/helpers.ts @@ -314,8 +314,15 @@ export function getVariableMetasBySpecifier( const identifierName = declaration.id.name; const properties = convertNodeToJSON(types, options); - const functionName = declaration.init.callee.name; - + let functionName = declaration.init.callee.name; + if ( + specifier.type === 'ImportSpecifier' && + specifier.imported && + specifier.imported.type === 'Identifier' && + declaration.init.callee.name !== specifier.imported.name + ) { + functionName = specifier.imported.name; + } return { identifierName, properties, functionName }; }) .filter(isDefined); From c30406738d35e17d259981d6cd1455b38000ed08 Mon Sep 17 00:00:00 2001 From: Hikaru Yoshino Date: Mon, 9 Oct 2023 02:22:06 +0900 Subject: [PATCH 125/154] feat: update test of TransformFontImports --- .../frameworks/nextjs/src/font/babel/index.test.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/code/frameworks/nextjs/src/font/babel/index.test.ts b/code/frameworks/nextjs/src/font/babel/index.test.ts index 45a0de5c8bb4..405d25b227cf 100644 --- a/code/frameworks/nextjs/src/font/babel/index.test.ts +++ b/code/frameworks/nextjs/src/font/babel/index.test.ts @@ -3,7 +3,7 @@ import { transform } from '@babel/core'; import TransformFontImports from '.'; const example = ` -import { Inter, Roboto } from 'next/font/google' +import { Inter, Lora as FontLora, Roboto } from 'next/font/google' import localFont from 'next/font/local' const myFont = localFont({ src: './my-font.woff2' }) @@ -12,6 +12,10 @@ const roboto = Roboto({ weight: '400', }) +const lora = FontLora({ + weight: '400', +}) + const inter = Inter({ subsets: ['latin'], }); @@ -20,7 +24,7 @@ const randomObj = {} `; const exampleLegacy = ` -import { Inter, Roboto } from '@next/font/google' +import { Inter, Lora as FontLora, Roboto } from '@next/font/google' import localFont from '@next/font/local' const myFont = localFont({ src: './my-font.woff2' }) @@ -29,6 +33,10 @@ const roboto = Roboto({ weight: '400', }) +const lora = FontLora({ + weight: '400', +}) + const inter = Inter({ subsets: ['latin'], }); @@ -40,6 +48,7 @@ it('should transform next/font AST properly', () => { const { code } = transform(example, { plugins: [TransformFontImports] })!; expect(code).toMatchInlineSnapshot(` "import inter from \\"storybook-nextjs-font-loader?{\\\\\\"source\\\\\\":\\\\\\"next/font/google\\\\\\",\\\\\\"props\\\\\\":{\\\\\\"subsets\\\\\\":[\\\\\\"latin\\\\\\"]},\\\\\\"fontFamily\\\\\\":\\\\\\"Inter\\\\\\",\\\\\\"filename\\\\\\":\\\\\\"\\\\\\"}!next/font/google\\"; + import lora from \\"storybook-nextjs-font-loader?{\\\\\\"source\\\\\\":\\\\\\"next/font/google\\\\\\",\\\\\\"props\\\\\\":{\\\\\\"weight\\\\\\":\\\\\\"400\\\\\\"},\\\\\\"fontFamily\\\\\\":\\\\\\"Lora\\\\\\",\\\\\\"filename\\\\\\":\\\\\\"\\\\\\"}!next/font/google\\"; import roboto from \\"storybook-nextjs-font-loader?{\\\\\\"source\\\\\\":\\\\\\"next/font/google\\\\\\",\\\\\\"props\\\\\\":{\\\\\\"weight\\\\\\":\\\\\\"400\\\\\\"},\\\\\\"fontFamily\\\\\\":\\\\\\"Roboto\\\\\\",\\\\\\"filename\\\\\\":\\\\\\"\\\\\\"}!next/font/google\\"; import myFont from \\"storybook-nextjs-font-loader?{\\\\\\"source\\\\\\":\\\\\\"next/font/local\\\\\\",\\\\\\"props\\\\\\":{\\\\\\"src\\\\\\":\\\\\\"./my-font.woff2\\\\\\"},\\\\\\"fontFamily\\\\\\":\\\\\\"localFont\\\\\\",\\\\\\"filename\\\\\\":\\\\\\"\\\\\\"}!next/font/local\\"; const randomObj = {};" @@ -50,6 +59,7 @@ it('should transform @next/font AST properly', () => { const { code } = transform(exampleLegacy, { plugins: [TransformFontImports] })!; expect(code).toMatchInlineSnapshot(` "import inter from \\"storybook-nextjs-font-loader?{\\\\\\"source\\\\\\":\\\\\\"@next/font/google\\\\\\",\\\\\\"props\\\\\\":{\\\\\\"subsets\\\\\\":[\\\\\\"latin\\\\\\"]},\\\\\\"fontFamily\\\\\\":\\\\\\"Inter\\\\\\",\\\\\\"filename\\\\\\":\\\\\\"\\\\\\"}!@next/font/google\\"; + import lora from \\"storybook-nextjs-font-loader?{\\\\\\"source\\\\\\":\\\\\\"@next/font/google\\\\\\",\\\\\\"props\\\\\\":{\\\\\\"weight\\\\\\":\\\\\\"400\\\\\\"},\\\\\\"fontFamily\\\\\\":\\\\\\"Lora\\\\\\",\\\\\\"filename\\\\\\":\\\\\\"\\\\\\"}!@next/font/google\\"; import roboto from \\"storybook-nextjs-font-loader?{\\\\\\"source\\\\\\":\\\\\\"@next/font/google\\\\\\",\\\\\\"props\\\\\\":{\\\\\\"weight\\\\\\":\\\\\\"400\\\\\\"},\\\\\\"fontFamily\\\\\\":\\\\\\"Roboto\\\\\\",\\\\\\"filename\\\\\\":\\\\\\"\\\\\\"}!@next/font/google\\"; import myFont from \\"storybook-nextjs-font-loader?{\\\\\\"source\\\\\\":\\\\\\"@next/font/local\\\\\\",\\\\\\"props\\\\\\":{\\\\\\"src\\\\\\":\\\\\\"./my-font.woff2\\\\\\"},\\\\\\"fontFamily\\\\\\":\\\\\\"localFont\\\\\\",\\\\\\"filename\\\\\\":\\\\\\"\\\\\\"}!@next/font/local\\"; const randomObj = {};" From d36bca3631ea3b94acae34eadf0791f947039d3f Mon Sep 17 00:00:00 2001 From: storybook-bot <32066757+storybook-bot@users.noreply.github.com> Date: Mon, 9 Oct 2023 07:22:55 +0000 Subject: [PATCH 126/154] Write changelog for 7.5.0-alpha.5 [skip ci] --- CHANGELOG.prerelease.md | 11 +++++++++++ code/package.json | 3 ++- docs/versions/next.json | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.prerelease.md b/CHANGELOG.prerelease.md index cc8636b9d524..b883c7eaa546 100644 --- a/CHANGELOG.prerelease.md +++ b/CHANGELOG.prerelease.md @@ -1,3 +1,14 @@ +## 7.5.0-alpha.5 + +- Angular: Add CLI options (debugWebpack, webpackStatsJson, and more) - [#24388](https://github.com/storybookjs/storybook/pull/24388), thanks [@yannbf](https://github.com/yannbf)! +- Angular: Fix Angular 15 support and add zone.js v0.14.x support - [#24367](https://github.com/storybookjs/storybook/pull/24367), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)! +- Core: Add class name to Storybook error name - [#24371](https://github.com/storybookjs/storybook/pull/24371), thanks [@yannbf](https://github.com/yannbf)! +- ManagerAPI: Fix bug with story redirection when URL has partial storyId - [#24345](https://github.com/storybookjs/storybook/pull/24345), thanks [@ndelangen](https://github.com/ndelangen)! +- NextJS: Fix Image Context re-use via singleton - [#24146](https://github.com/storybookjs/storybook/pull/24146), thanks [@martinnabhan](https://github.com/martinnabhan)! +- NextJS: Fix default next image loader when src has params - [#24187](https://github.com/storybookjs/storybook/pull/24187), thanks [@json-betsec](https://github.com/json-betsec)! +- React: Upgrade `react-docgen` to 6.0.x and improve argTypes - [#23825](https://github.com/storybookjs/storybook/pull/23825), thanks [@shilman](https://github.com/shilman)! +- Webpack: Display errors on build - [#24377](https://github.com/storybookjs/storybook/pull/24377), thanks [@yannbf](https://github.com/yannbf)! + ## 7.5.0-alpha.4 - CLI: Fix Nextjs project detection - [#24346](https://github.com/storybookjs/storybook/pull/24346), thanks [@yannbf](https://github.com/yannbf)! diff --git a/code/package.json b/code/package.json index 7a14a389b3d7..c66b87af4d93 100644 --- a/code/package.json +++ b/code/package.json @@ -328,5 +328,6 @@ "Dependency Upgrades" ] ] - } + }, + "deferredNextVersion": "7.5.0-alpha.5" } diff --git a/docs/versions/next.json b/docs/versions/next.json index e6e5140c4079..482f0159dc1f 100644 --- a/docs/versions/next.json +++ b/docs/versions/next.json @@ -1 +1 @@ -{"version":"7.5.0-alpha.4","info":{"plain":"- CLI: Fix Nextjs project detection - [#24346](https://github.com/storybookjs/storybook/pull/24346), thanks [@yannbf](https://github.com/yannbf)!\n- Core: Deprecate `storyStoreV6` (including `storiesOf`) and `storyIndexers` - [#23938](https://github.com/storybookjs/storybook/pull/23938), thanks [@JReinhold](https://github.com/JReinhold)!\n- Core: Fix Promise cycle bug in useSharedState - [#24268](https://github.com/storybookjs/storybook/pull/24268), thanks [@ndelangen](https://github.com/ndelangen)!\n- Core: Fix missing favicon during dev - [#24356](https://github.com/storybookjs/storybook/pull/24356), thanks [@ndelangen](https://github.com/ndelangen)!\n- NextJS: Change babel plugins from `proposal-...` to `transform-...` - [#24290](https://github.com/storybookjs/storybook/pull/24290), thanks [@roottool](https://github.com/roottool)!\n- Nextjs: Improve support for Windows-style paths - [#23695](https://github.com/storybookjs/storybook/pull/23695), thanks [@T99](https://github.com/T99)!\n- UI: Fix infinite hook call causing browsers to freeze - [#24291](https://github.com/storybookjs/storybook/pull/24291), thanks [@yannbf](https://github.com/yannbf)!\n- UI: Improve contrast ratio between focus / hover - [#24205](https://github.com/storybookjs/storybook/pull/24205), thanks [@chocoscoding](https://github.com/chocoscoding)!\n- Vite: Move mdx-plugin from @storybook/builder-vite to @storybook/addon-docs - [#24166](https://github.com/storybookjs/storybook/pull/24166), thanks [@bryanjtc](https://github.com/bryanjtc)!"}} +{"version":"7.5.0-alpha.5","info":{"plain":"- Angular: Add CLI options (debugWebpack, webpackStatsJson, and more) - [#24388](https://github.com/storybookjs/storybook/pull/24388), thanks [@yannbf](https://github.com/yannbf)!\n- Angular: Fix Angular 15 support and add zone.js v0.14.x support - [#24367](https://github.com/storybookjs/storybook/pull/24367), thanks [@valentinpalkovic](https://github.com/valentinpalkovic)!\n- Core: Add class name to Storybook error name - [#24371](https://github.com/storybookjs/storybook/pull/24371), thanks [@yannbf](https://github.com/yannbf)!\n- ManagerAPI: Fix bug with story redirection when URL has partial storyId - [#24345](https://github.com/storybookjs/storybook/pull/24345), thanks [@ndelangen](https://github.com/ndelangen)!\n- NextJS: Fix Image Context re-use via singleton - [#24146](https://github.com/storybookjs/storybook/pull/24146), thanks [@martinnabhan](https://github.com/martinnabhan)!\n- NextJS: Fix default next image loader when src has params - [#24187](https://github.com/storybookjs/storybook/pull/24187), thanks [@json-betsec](https://github.com/json-betsec)!\n- React: Upgrade `react-docgen` to 6.0.x and improve argTypes - [#23825](https://github.com/storybookjs/storybook/pull/23825), thanks [@shilman](https://github.com/shilman)!\n- Webpack: Display errors on build - [#24377](https://github.com/storybookjs/storybook/pull/24377), thanks [@yannbf](https://github.com/yannbf)!"}} From cbcea150ad13ff0c55b14faa30b4a765396b04ab Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 9 Oct 2023 10:13:21 +0200 Subject: [PATCH 127/154] fix bad non-patch renaming --- .github/workflows/publish.yml | 2 +- CONTRIBUTING/RELEASING.md | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index df82ca33c9a5..8bb5fa3a82a6 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -5,7 +5,7 @@ on: push: branches: - latest-release - - non-patch-release + - next-release env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 diff --git a/CONTRIBUTING/RELEASING.md b/CONTRIBUTING/RELEASING.md index 7cf29a463c62..d1c4eecdb849 100644 --- a/CONTRIBUTING/RELEASING.md +++ b/CONTRIBUTING/RELEASING.md @@ -124,11 +124,11 @@ A few key points to note in this flow: Patch releases are created by [cherry-picking](https://www.atlassian.com/git/tutorials/cherry-pick) any merged, unreleased pull requests that have the "**patch:yes**" label applied to the `next` branch. The merge commit of said pull requests are cherry-picked. -Sometimes it is desired to pick pull requests back to `main` even if they are not considered "releasable". Unlike non-patch-release preparation, patch releases will not be canceled if the content is not releasable. It might not make sense to create a new patch release if the changes are only for documentation and/or internal build systems. However, getting the changes back to `main` is the only way to deploy the documentation to the production docs site. You may also want to cherry-pick changes to internal CI to fix issues. These are valid scenarios where you want to cherry-pick the changes without being blocked on "releasable" content. In these cases, where all cherry picks are non-releasable, the preparation workflow creates a "merging" pull request instead of a "releasing" pull request. This pull request does not bump versions or update changelogs; it just cherry-picks the changes and allows you to merge them into `latest-release` -> `main`. +Sometimes it is desired to pick pull requests back to `main` even if they are not considered "releasable". Unlike non-patch release preparation, patch releases will not be canceled if the content is not releasable. It might not make sense to create a new patch release if the changes are only for documentation and/or internal build systems. However, getting the changes back to `main` is the only way to deploy the documentation to the production docs site. You may also want to cherry-pick changes to internal CI to fix issues. These are valid scenarios where you want to cherry-pick the changes without being blocked on "releasable" content. In these cases, where all cherry picks are non-releasable, the preparation workflow creates a "merging" pull request instead of a "releasing" pull request. This pull request does not bump versions or update changelogs; it just cherry-picks the changes and allows you to merge them into `latest-release` -> `main`. The preparation workflow sequentially cherry-picks each patch pull request to its branch. If this cherry-picking fails due to conflicts or other reasons, it is ignored and the next pull request is processed. All failing cherry-picks are listed in the release pull request's description, for the Releaser to manually cherry-pick during the release process. This problem occurs more often when `main` and `next` diverge, i.e. the longer it has been since a stable major/minor release. -Similar to the non-patch-release flow, the preparation workflow for patches will create a new branch from `main` called `version-patch-from-`, and open a pull request that targets `latest-release`. When the pull request is merged by the Releaser, the [publish workflow](#publishing) will eventually merge `latest-release` into `main`. +Similar to the non-patch release flow, the preparation workflow for patches will create a new branch from `main` called `version-patch-from-`, and open a pull request that targets `latest-release`. When the pull request is merged by the Releaser, the [publish workflow](#publishing) will eventually merge `latest-release` into `main`. Here is an example of a workflow where a feature and two bug fixes have been merged to `next`. Only the bug fixes have the "**patch:yes**" label, so only those two go into the new `7.0.19` release. Note that it is the merge commits to `next` that are cherry-picked, not the commits on the bugfix branches. @@ -173,7 +173,7 @@ gitGraph > **Note** > Workflow: [`prepare-non-patch-release.yml`](../.github/workflows/prepare-non-patch-release.yml) -Non-patch-releases are prepared with all content from the `next` branch. The changelog is generated by examining the git history, and looking up all the commits and pull requests between the current prerelease (on `next-release`) and `HEAD` of `next`. +Non-patch releases are prepared with all content from the `next` branch. The changelog is generated by examining the git history, and looking up all the commits and pull requests between the current prerelease (on `next-release`) and `HEAD` of `next`. The default versioning strategy is to increase the current prerelease number, as described in [Prereleases - `7.1.0-alpha.12` -> `7.1.0-alpha.13`](#prereleases---710-alpha12---710-alpha13). If there is no prerelease number (i.e., we just released a new stable minor/major version), it will add one to a patch bump, so it would go from `7.2.0` to `7.2.1-0` by default. @@ -215,7 +215,7 @@ gitGraph > **Note** > Workflow: [`publish.yml`](../.github/workflows/publish.yml) -When either a non-patch-release or a patch release branch is merged into `latest-release` or `next-release`, the publishing workflow is triggered. This workflow performs the following tasks: +When either a non-patch release or a patch release branch is merged into `latest-release` or `next-release`, the publishing workflow is triggered. This workflow performs the following tasks: 1. Bump versions of all packages according to the plan from the prepared PRs 2. Install dependencies and build all packages. @@ -306,7 +306,7 @@ The workflows can be triggered here: Crucially for prereleases, this is also where you change the versioning strategy if you need something else than the default as described in [Preparing - Non-patch Releases](#non-patch-releases). When triggering the non-patch workflow manually, you can optionally add inputs: -![Screenshot of triggering the non-patch-release workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) +![Screenshot of triggering the non-patch release workflow in GitHub Actions, with a form that shows a release type selector and a prerelease identifier text field](prerelease-workflow-inputs.png) See [Versioning Scenarios](#versioning-scenarios) for a description of each version bump scenario, how to activate it and what it does, and [Which combination of inputs creates the version bump I need?](#which-combination-of-inputs-creates-the-version-bump-i-need) for a detailed description of the workflow inputs. @@ -376,7 +376,7 @@ Before you start you should make sure that your working tree is clean and the re 4. `git add ./CHANGELOG.md` 5. `git commit -m "Update CHANGELOG.md for v"` 6. `git push origin` -19. (If non-patch-release) Sync `versions/next.json` from `next` to `main` +19. (If non-patch release) Sync `versions/next.json` from `next` to `main` 1. `git checkout main` 2. `git pull` 3. `git checkout origin/next ./docs/versions/next.json` From 151440b5ad87171ccd42c8748be88be60ddda92b Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 9 Oct 2023 10:35:54 +0200 Subject: [PATCH 128/154] Trigger release of 7.5.0-alpha.5 with empty commit [skip ci] From 212b2c4b2be7ead4cab2990357a9b583058c5cf2 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 9 Oct 2023 10:42:24 +0200 Subject: [PATCH 129/154] Trigger CI to release 7.5.0-alpha.5 [skip ci] --- code/deprecated/store/package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/deprecated/store/package.json b/code/deprecated/store/package.json index 2362d4bab5c7..67e1584ccda7 100644 --- a/code/deprecated/store/package.json +++ b/code/deprecated/store/package.json @@ -55,6 +55,5 @@ ], "platform": "node", "shim": "@storybook/preview-api/dist/store" - }, - "gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae17" + } } From df45ee6d0f3ad437a50f1103403fa0d9da3757fc Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 9 Oct 2023 10:45:09 +0200 Subject: [PATCH 130/154] Trigger CI to release 7.5.0-alpha.5 [skip ci] --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index df82ca33c9a5..8bb5fa3a82a6 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -5,7 +5,7 @@ on: push: branches: - latest-release - - non-patch-release + - next-release env: PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 From 6018ef7f1366680134667381f6210fd7359d5684 Mon Sep 17 00:00:00 2001 From: Charles de Dreuille Date: Mon, 9 Oct 2023 14:15:06 +0100 Subject: [PATCH 131/154] Update packages --- code/ui/components/package.json | 3 +- code/yarn.lock | 69 ++++++++++++++++++++++++--------- 2 files changed, 51 insertions(+), 21 deletions(-) diff --git a/code/ui/components/package.json b/code/ui/components/package.json index 0e9cc0dc42a4..ea379c9ae697 100644 --- a/code/ui/components/package.json +++ b/code/ui/components/package.json @@ -73,12 +73,11 @@ "devDependencies": { "@chromaui/addon-visual-tests": "^0.0.77", "@popperjs/core": "^2.6.0", + "@radix-ui/react-scroll-area": "^1.0.5", "@storybook/icons": "^1.1.6", "@types/react-syntax-highlighter": "11.0.5", "@types/util-deprecate": "^1.0.0", "css": "^3.0.0", - "overlayscrollbars": "2.2.1", - "overlayscrollbars-react": "^0.5.0", "polished": "^4.2.2", "prettier": "^2.8.0", "react-popper-tooltip": "^4.4.2", diff --git a/code/yarn.lock b/code/yarn.lock index 3ec46c6397a8..3c200a7a8a38 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -5234,6 +5234,27 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-presence@npm:1.0.1": + version: 1.0.1 + resolution: "@radix-ui/react-presence@npm:1.0.1" + dependencies: + "@babel/runtime": ^7.13.10 + "@radix-ui/react-compose-refs": 1.0.1 + "@radix-ui/react-use-layout-effect": 1.0.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: 90780618b265fe794a8f1ddaa5bfd3c71a1127fa79330a14d32722e6265b44452a9dd36efe4e769129d33e57f979f6b8713e2cbf2e2755326aa3b0f337185b6e + languageName: node + linkType: hard + "@radix-ui/react-primitive@npm:1.0.3": version: 1.0.3 resolution: "@radix-ui/react-primitive@npm:1.0.3" @@ -5282,6 +5303,34 @@ __metadata: languageName: node linkType: hard +"@radix-ui/react-scroll-area@npm:^1.0.5": + version: 1.0.5 + resolution: "@radix-ui/react-scroll-area@npm:1.0.5" + dependencies: + "@babel/runtime": ^7.13.10 + "@radix-ui/number": 1.0.1 + "@radix-ui/primitive": 1.0.1 + "@radix-ui/react-compose-refs": 1.0.1 + "@radix-ui/react-context": 1.0.1 + "@radix-ui/react-direction": 1.0.1 + "@radix-ui/react-presence": 1.0.1 + "@radix-ui/react-primitive": 1.0.3 + "@radix-ui/react-use-callback-ref": 1.0.1 + "@radix-ui/react-use-layout-effect": 1.0.1 + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + checksum: a08818aeeb15920a02e708699a8bdc85c26eab0579ab741129b464a799b5d9a04f81810a2d200f1cf4aef03452067770e87b0f81593a689350fcd7e51819e4cb + languageName: node + linkType: hard + "@radix-ui/react-select@npm:^1.2.2": version: 1.2.2 resolution: "@radix-ui/react-select@npm:1.2.2" @@ -6744,6 +6793,7 @@ __metadata: dependencies: "@chromaui/addon-visual-tests": ^0.0.77 "@popperjs/core": ^2.6.0 + "@radix-ui/react-scroll-area": ^1.0.5 "@radix-ui/react-select": ^1.2.2 "@radix-ui/react-toolbar": ^1.0.4 "@storybook/client-logger": "workspace:*" @@ -6756,8 +6806,6 @@ __metadata: "@types/util-deprecate": ^1.0.0 css: ^3.0.0 memoizerific: ^1.11.3 - overlayscrollbars: 2.2.1 - overlayscrollbars-react: ^0.5.0 polished: ^4.2.2 prettier: ^2.8.0 react-popper-tooltip: ^4.4.2 @@ -24976,23 +25024,6 @@ __metadata: languageName: node linkType: hard -"overlayscrollbars-react@npm:^0.5.0": - version: 0.5.2 - resolution: "overlayscrollbars-react@npm:0.5.2" - peerDependencies: - overlayscrollbars: ^2.0.0 - react: ">=16.8.0" - checksum: 56e8df609f589cd38c97408d743ebd9112047c60da340c8f121b10418beabd1b5411396f4c1fd27b46dd0e663e7675ae72df1c531feb1e3f6bf1342dbafa21ef - languageName: node - linkType: hard - -"overlayscrollbars@npm:2.2.1": - version: 2.2.1 - resolution: "overlayscrollbars@npm:2.2.1" - checksum: 718dd563ee17a8c92a54f0b67989806edadd5b999e36d2ab322e7813b369d1cf0198d7267ca42ca9e879023f0658825e2b050d2845e751d876285d1d3549cb5e - languageName: node - linkType: hard - "override-require@npm:^1.1.1": version: 1.1.1 resolution: "override-require@npm:1.1.1" From 4581321dc211183d543f8eeefd80c14974f07bb5 Mon Sep 17 00:00:00 2001 From: Charles de Dreuille Date: Mon, 9 Oct 2023 14:15:23 +0100 Subject: [PATCH 132/154] Remove old styles --- .../ScrollArea/GlobalScrollAreaStyles.tsx | 497 ------------------ .../ScrollArea/OverlayScrollbars.tsx | 5 - 2 files changed, 502 deletions(-) delete mode 100644 code/ui/components/src/components/ScrollArea/GlobalScrollAreaStyles.tsx delete mode 100644 code/ui/components/src/components/ScrollArea/OverlayScrollbars.tsx diff --git a/code/ui/components/src/components/ScrollArea/GlobalScrollAreaStyles.tsx b/code/ui/components/src/components/ScrollArea/GlobalScrollAreaStyles.tsx deleted file mode 100644 index a7650a8f922f..000000000000 --- a/code/ui/components/src/components/ScrollArea/GlobalScrollAreaStyles.tsx +++ /dev/null @@ -1,497 +0,0 @@ -import React from 'react'; -import { Global } from '@storybook/theming'; -import type { Theme, CSSObject } from '@storybook/theming'; - -export const getScrollAreaStyles: (theme: Theme) => CSSObject = (theme: Theme) => - ({ - '.os-size-observer,\n.os-size-observer-listener': { - direction: 'inherit', - pointerEvents: 'none', - overflow: 'hidden', - visibility: 'hidden', - boxSizing: 'border-box', - }, - '.os-size-observer,\n.os-size-observer-listener,\n.os-size-observer-listener-item,\n.os-size-observer-listener-item-final': - { - writingMode: 'horizontal-tb', - position: 'absolute', - left: '0', - top: '0', - }, - '.os-size-observer': { - zIndex: -1, - contain: 'strict', - display: 'flex', - flexDirection: 'row', - flexWrap: 'nowrap', - padding: 'inherit', - border: 'inherit', - boxSizing: 'inherit', - margin: '-133px', - top: '0', - right: '0', - bottom: '0', - left: '0', - transform: 'scale(0.1)', - }, - '.os-size-observer::before': { - content: '""', - flex: 'none', - boxSizing: 'inherit', - padding: '10px', - width: '10px', - height: '10px', - }, - '.os-size-observer-appear': { - animation: 'os-size-observer-appear-animation 1ms forwards', - }, - '.os-size-observer-listener': { - boxSizing: 'border-box', - position: 'relative', - flex: 'auto', - padding: 'inherit', - border: 'inherit', - margin: '-133px', - transform: 'scale(10)', - }, - '.os-size-observer-listener.ltr': { marginRight: '-266px', marginLeft: '0' }, - '.os-size-observer-listener.rtl': { marginLeft: '-266px', marginRight: '0' }, - '.os-size-observer-listener:empty::before': { - content: '""', - width: '100%', - height: '100%', - }, - '.os-size-observer-listener:empty::before, .os-size-observer-listener > .os-size-observer-listener-item': - { - display: 'block', - position: 'relative', - padding: 'inherit', - border: 'inherit', - boxSizing: 'content-box', - flex: 'auto', - }, - '.os-size-observer-listener-scroll': { - boxSizing: 'border-box', - display: 'flex', - }, - '.os-size-observer-listener-item': { - right: '0', - bottom: '0', - overflow: 'hidden', - direction: 'ltr', - flex: 'none', - }, - '.os-size-observer-listener-item-final': { transition: 'none' }, - '@keyframes os-size-observer-appear-animation': { - from: { cursor: 'auto' }, - to: { cursor: 'none' }, - }, - '.os-trinsic-observer': { - flex: 'none', - boxSizing: 'border-box', - position: 'relative', - maxWidth: '0px', - maxHeight: '1px', - padding: '0', - margin: '0', - border: 'none', - overflow: 'hidden', - zIndex: -1, - height: '0', - top: 'calc(100% + 1px)', - contain: 'strict', - }, - '.os-trinsic-observer:not(:empty)': { - height: 'calc(100% + 1px)', - top: '-1px', - }, - '.os-trinsic-observer:not(:empty) > .os-size-observer': { - width: '1000%', - height: '1000%', - minHeight: '1px', - minWidth: '1px', - }, - '.os-environment': { - '--os-custom-prop': '-1', - position: 'fixed', - opacity: 0, - visibility: 'hidden', - overflow: 'scroll', - height: '200px', - width: '200px', - zIndex: 'var(--os-custom-prop)', - }, - '.os-environment div': { width: '200%', height: '200%', margin: '10px 0' }, - '.os-environment.os-environment-flexbox-glue': { - display: 'flex', - flexDirection: 'row', - flexWrap: 'nowrap', - height: 'auto', - width: 'auto', - minHeight: '200px', - minWidth: '200px', - }, - '.os-environment.os-environment-flexbox-glue div': { - flex: 'auto', - width: 'auto', - height: 'auto', - maxHeight: '100%', - maxWidth: '100%', - margin: '0', - }, - '.os-environment.os-environment-flexbox-glue-max': { maxHeight: '200px' }, - '.os-environment.os-environment-flexbox-glue-max div': { - overflow: 'visible', - }, - '.os-environment.os-environment-flexbox-glue-max div::before': { - content: '""', - display: 'block', - height: '999px', - width: '999px', - }, - '.os-environment,\n[data-overlayscrollbars-viewport]': { - msOverflowStyle: 'scrollbar !important', - }, - '[data-overlayscrollbars-initialize],\n[data-overlayscrollbars~=scrollbarHidden],\n[data-overlayscrollbars-viewport~=scrollbarHidden],\n.os-scrollbar-hidden.os-environment': - { - scrollbarWidth: 'none !important', - }, - '[data-overlayscrollbars-initialize]::-webkit-scrollbar,\n[data-overlayscrollbars-initialize]::-webkit-scrollbar-corner,\n[data-overlayscrollbars~=scrollbarHidden]::-webkit-scrollbar,\n[data-overlayscrollbars~=scrollbarHidden]::-webkit-scrollbar-corner,\n[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar,\n[data-overlayscrollbars-viewport~=scrollbarHidden]::-webkit-scrollbar-corner,\n.os-scrollbar-hidden.os-environment::-webkit-scrollbar,\n.os-scrollbar-hidden.os-environment::-webkit-scrollbar-corner': - { - WebkitAppearance: 'none !important', - appearance: 'none !important', - display: 'none !important', - width: '0 !important', - height: '0 !important', - }, - '[data-overlayscrollbars-initialize]': { overflow: 'auto' }, - 'html[data-overlayscrollbars],\nhtml.os-scrollbar-hidden,\nhtml.os-scrollbar-hidden > body': { - boxSizing: 'border-box', - margin: '0', - width: '100%', - height: '100%', - }, - 'html[data-overlayscrollbars] > body': { overflow: 'visible' }, - '[data-overlayscrollbars~=host]': { position: 'relative' }, - '[data-overlayscrollbars~=host],\n[data-overlayscrollbars-padding]': { - display: 'flex', - flexDirection: 'row !important', - flexWrap: 'nowrap !important', - }, - '[data-overlayscrollbars-padding],\n[data-overlayscrollbars-viewport]': { - boxSizing: 'inherit', - position: 'relative', - flex: 'auto !important', - height: 'auto', - width: '100%', - padding: '0', - margin: '0', - border: 'none', - zIndex: 0, - overflow: 'hidden', - }, - '[data-overlayscrollbars-viewport]': { '--os-vaw': '0', '--os-vah': '0' }, - '[data-overlayscrollbars-viewport][data-overlayscrollbars-viewport~=arrange]::before': { - content: '""', - position: 'absolute', - pointerEvents: 'none', - zIndex: -1, - minWidth: '1px', - minHeight: '1px', - width: 'var(--os-vaw)', - height: 'var(--os-vah)', - }, - '[data-overlayscrollbars~=host],\n[data-overlayscrollbars~=viewport]': { - overflow: 'hidden', - }, - '[data-overlayscrollbars~=overflowVisible],\n[data-overlayscrollbars-padding~=overflowVisible],\n[data-overlayscrollbars-viewport~=overflowVisible]': - { - overflow: 'visible', - }, - '[data-overlayscrollbars-overflow-x=hidden]': { - overflowX: 'hidden', - overflowY: 'hidden', - }, - '[data-overlayscrollbars-overflow-x=scroll]': { overflowX: 'scroll' }, - '[data-overlayscrollbars-overflow-y=scroll]': { overflowY: 'scroll' }, - '[data-overlayscrollbars~=scrollbarPressed],\n[data-overlayscrollbars~=scrollbarPressed] [data-overlayscrollbars-viewport]': - { - scrollBehavior: 'auto !important', - }, - '[data-overlayscrollbars-content]': { boxSizing: 'inherit' }, - '[data-overlayscrollbars-grid],\n[data-overlayscrollbars-grid] [data-overlayscrollbars-padding]': - { - display: 'grid', - gridTemplate: '1fr/1fr', - }, - '[data-overlayscrollbars-grid] > [data-overlayscrollbars-padding],\n[data-overlayscrollbars-grid] > [data-overlayscrollbars-viewport],\n[data-overlayscrollbars-grid] > [data-overlayscrollbars-padding] > [data-overlayscrollbars-viewport]': - { - height: 'auto !important', - width: 'auto !important', - }, - '.os-scrollbar': { - contain: ['size layout', 'size layout style'], - transition: - 'opacity 0.15s, visibility 0.15s, top 0.15s, right 0.15s, bottom 0.15s, left 0.15s', - pointerEvents: 'none', - position: 'absolute', - opacity: 0, - visibility: 'hidden', - '--os-size': '0', - '--os-padding-perpendicular': '0', - '--os-padding-axis': '0', - '--os-track-border-radius': '0', - '--os-track-bg': 'none', - '--os-track-bg-hover': 'none', - '--os-track-bg-active': 'none', - '--os-track-border': 'none', - '--os-track-border-hover': 'none', - '--os-track-border-active': 'none', - '--os-handle-border-radius': '0', - '--os-handle-bg': 'none', - '--os-handle-bg-hover': 'none', - '--os-handle-bg-active': 'none', - '--os-handle-border': 'none', - '--os-handle-border-hover': 'none', - '--os-handle-border-active': 'none', - '--os-handle-min-size': '33px', - '--os-handle-max-size': 'none', - '--os-handle-perpendicular-size': '100%', - '--os-handle-perpendicular-size-hover': '100%', - '--os-handle-perpendicular-size-active': '100%', - '--os-handle-interactive-area-offset': '0', - }, - 'body > .os-scrollbar': { position: 'fixed', zIndex: 99999 }, - '.os-scrollbar-transitionless': { transition: 'none' }, - '.os-scrollbar-track': { - position: 'relative', - direction: 'ltr !important', - padding: '0 !important', - border: 'none !important', - }, - '.os-scrollbar-handle': { position: 'absolute' }, - '.os-scrollbar-track,\n.os-scrollbar-handle': { - pointerEvents: 'none', - width: '100%', - height: '100%', - }, - '.os-scrollbar.os-scrollbar-track-interactive .os-scrollbar-track,\n.os-scrollbar.os-scrollbar-handle-interactive .os-scrollbar-handle': - { - pointerEvents: 'auto', - touchAction: 'none', - }, - '.os-scrollbar-horizontal': { - bottom: '0', - left: '0', - padding: 'var(--os-padding-perpendicular) var(--os-padding-axis)', - right: 'var(--os-size)', - height: 'var(--os-size)', - }, - '.os-scrollbar-vertical': { - top: '0', - right: '0', - padding: 'var(--os-padding-axis) var(--os-padding-perpendicular)', - bottom: 'var(--os-size)', - width: 'var(--os-size)', - }, - '.os-scrollbar-rtl.os-scrollbar-horizontal': { right: '0' }, - '.os-scrollbar-rtl.os-scrollbar-vertical': { right: 'auto', left: '0' }, - '.os-scrollbar-visible,\n.os-scrollbar-interaction.os-scrollbar-visible': { - opacity: 1, - visibility: 'visible', - }, - '.os-scrollbar-auto-hidden': { opacity: 0, visibility: 'hidden' }, - '.os-scrollbar-unusable,\n.os-scrollbar-unusable *,\n.os-scrollbar-wheel,\n.os-scrollbar-wheel *': - { - pointerEvents: 'none !important', - }, - '.os-scrollbar-unusable .os-scrollbar-handle': { opacity: '0 !important' }, - '.os-scrollbar-horizontal .os-scrollbar-handle': { - bottom: '0', - minWidth: 'var(--os-handle-min-size)', - maxWidth: 'var(--os-handle-max-size)', - height: 'var(--os-handle-perpendicular-size)', - transition: 'opacity 0.15s, background-color 0.15s, border-color 0.15s, height 0.15s', - }, - '.os-scrollbar-vertical .os-scrollbar-handle': { - right: '0', - minHeight: 'var(--os-handle-min-size)', - maxHeight: 'var(--os-handle-max-size)', - width: 'var(--os-handle-perpendicular-size)', - transition: 'opacity 0.15s, background-color 0.15s, border-color 0.15s, width 0.15s', - }, - '.os-scrollbar-rtl.os-scrollbar-vertical .os-scrollbar-handle': { - right: 'auto', - left: '0', - }, - '.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless,\n.os-scrollbar.os-scrollbar-horizontal.os-scrollbar-cornerless.os-scrollbar-rtl': - { - left: '0', - right: '0', - }, - '.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless,\n.os-scrollbar.os-scrollbar-vertical.os-scrollbar-cornerless.os-scrollbar-rtl': - { - top: '0', - bottom: '0', - }, - '.os-scrollbar .os-scrollbar-track': { - border: 'var(--os-track-border)', - borderRadius: 'var(--os-track-border-radius)', - background: 'var(--os-track-bg)', - transition: 'opacity 0.15s, background-color 0.15s, border-color 0.15s', - }, - '.os-scrollbar .os-scrollbar-track:hover': { - border: 'var(--os-track-border-hover)', - background: 'var(--os-track-bg-hover)', - }, - '.os-scrollbar .os-scrollbar-track:active': { - border: 'var(--os-track-border-active)', - background: 'var(--os-track-bg-active)', - }, - '.os-scrollbar .os-scrollbar-handle': { - border: 'var(--os-handle-border)', - borderRadius: 'var(--os-handle-border-radius)', - background: theme.textMutedColor, - opacity: 0.5, - }, - '.os-scrollbar .os-scrollbar-handle:before': { - content: '""', - position: 'absolute', - left: '0', - right: '0', - top: '0', - bottom: '0', - display: 'block', - }, - '.os-scrollbar .os-scrollbar-handle:hover': { - border: 'var(--os-handle-border-hover)', - opacity: 0.6, - }, - '.os-scrollbar .os-scrollbar-handle:active': { - border: 'var(--os-handle-border-active)', - background: 'var(--os-handle-bg-active)', - }, - '.os-scrollbar-horizontal.os-scrollbar-rtl': { - left: 'var(--os-size)', - right: '0', - }, - '.os-scrollbar-horizontal .os-scrollbar-handle:before': { - top: 'calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1)', - bottom: 'calc(var(--os-padding-perpendicular) * -1)', - }, - '.os-scrollbar-horizontal:hover .os-scrollbar-handle': { - height: 'var(--os-handle-perpendicular-size-hover)', - }, - '.os-scrollbar-horizontal:active .os-scrollbar-handle': { - height: 'var(--os-handle-perpendicular-size-active)', - }, - '.os-scrollbar-vertical .os-scrollbar-handle:before': { - left: 'calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1)', - right: 'calc(var(--os-padding-perpendicular) * -1)', - }, - '.os-scrollbar-vertical.os-scrollbar-rtl .os-scrollbar-handle:before': { - right: - 'calc((var(--os-padding-perpendicular) + var(--os-handle-interactive-area-offset)) * -1)', - left: 'calc(var(--os-padding-perpendicular) * -1)', - }, - '.os-scrollbar-vertical:hover .os-scrollbar-handle': { - width: 'var(--os-handle-perpendicular-size-hover)', - }, - '.os-scrollbar-vertical:active .os-scrollbar-handle': { - width: 'var(--os-handle-perpendicular-size-active)', - }, - '[data-overlayscrollbars~=updating] > .os-scrollbar,\n.os-theme-none.os-scrollbar': { - display: 'none !important', - }, - '.os-theme-dark,\n.os-theme-light': { - boxSizing: 'border-box', - '--os-size': '10px', - '--os-padding-perpendicular': '2px', - '--os-padding-axis': '2px', - '--os-track-border-radius': '10px', - '--os-handle-interactive-area-offset': '4px', - '--os-handle-border-radius': '10px', - }, - '.os-theme-dark': { - '--os-handle-bg': 'rgba(0, 0, 0, 0.44)', - '--os-handle-bg-hover': 'rgba(0, 0, 0, 0.55)', - '--os-handle-bg-active': 'rgba(0, 0, 0, 0.66)', - }, - '.os-theme-light': { - '--os-handle-bg': 'rgba(255, 255, 255, 0.44)', - '--os-handle-bg-hover': 'rgba(255, 255, 255, 0.55)', - '--os-handle-bg-active': 'rgba(255, 255, 255, 0.66)', - }, - '.os-no-css-vars.os-theme-dark.os-scrollbar .os-scrollbar-handle, .os-no-css-vars.os-theme-light.os-scrollbar .os-scrollbar-handle': - { - borderRadius: '10px', - }, - '.os-no-css-vars.os-theme-dark.os-scrollbar .os-scrollbar-track, .os-no-css-vars.os-theme-light.os-scrollbar .os-scrollbar-track': - { - borderRadius: '10px', - }, - '.os-no-css-vars.os-theme-dark.os-scrollbar-horizontal, .os-no-css-vars.os-theme-light.os-scrollbar-horizontal': - { - padding: '2px 2px', - right: '10px', - height: '10px', - }, - '.os-no-css-vars.os-theme-dark.os-scrollbar-horizontal.os-scrollbar-rtl, .os-no-css-vars.os-theme-light.os-scrollbar-horizontal.os-scrollbar-rtl': - { - left: '10px', - right: '0', - }, - '.os-no-css-vars.os-theme-dark.os-scrollbar-horizontal .os-scrollbar-handle, .os-no-css-vars.os-theme-light.os-scrollbar-horizontal .os-scrollbar-handle': - { - minWidth: '33px', - maxWidth: 'none', - }, - '.os-no-css-vars.os-theme-dark.os-scrollbar-horizontal .os-scrollbar-handle:before, .os-no-css-vars.os-theme-light.os-scrollbar-horizontal .os-scrollbar-handle:before': - { - top: 'calc((\n 2px + 4px\n ) * -1)', - bottom: 'calc(2px * -1)', - }, - '.os-no-css-vars.os-theme-dark.os-scrollbar-vertical, .os-no-css-vars.os-theme-light.os-scrollbar-vertical': - { - padding: '2px 2px', - bottom: '10px', - width: '10px', - }, - '.os-no-css-vars.os-theme-dark.os-scrollbar-vertical .os-scrollbar-handle, .os-no-css-vars.os-theme-light.os-scrollbar-vertical .os-scrollbar-handle': - { - minHeight: '33px', - maxHeight: 'none', - }, - '.os-no-css-vars.os-theme-dark.os-scrollbar-vertical .os-scrollbar-handle:before, .os-no-css-vars.os-theme-light.os-scrollbar-vertical .os-scrollbar-handle:before': - { - left: 'calc((\n 2px + 4px\n ) * -1)', - right: 'calc(2px * -1)', - }, - '.os-no-css-vars.os-theme-dark.os-scrollbar-vertical.os-scrollbar-rtl .os-scrollbar-handle:before, .os-no-css-vars.os-theme-light.os-scrollbar-vertical.os-scrollbar-rtl .os-scrollbar-handle:before': - { - right: 'calc((\n 2px + 4px\n ) * -1)', - left: 'calc(2px * -1)', - }, - '.os-no-css-vars.os-theme-dark .os-scrollbar-handle': { - background: 'rgba(0, 0, 0, 0.44)', - }, - '.os-no-css-vars.os-theme-dark:hover .os-scrollbar-handle': { - background: 'rgba(0, 0, 0, 0.55)', - }, - '.os-no-css-vars.os-theme-dark:active .os-scrollbar-handle': { - background: 'rgba(0, 0, 0, 0.66)', - }, - '.os-no-css-vars.os-theme-light .os-scrollbar-handle': { - background: 'rgba(255, 255, 255, 0.44)', - }, - '.os-no-css-vars.os-theme-light:hover .os-scrollbar-handle': { - background: 'rgba(255, 255, 255, 0.55)', - }, - '.os-no-css-vars.os-theme-light:active .os-scrollbar-handle': { - background: 'rgba(255, 255, 255, 0.66)', - }, - } as any as CSSObject); - -const GlobalScrollAreaStyles = () => ; - -export default GlobalScrollAreaStyles; diff --git a/code/ui/components/src/components/ScrollArea/OverlayScrollbars.tsx b/code/ui/components/src/components/ScrollArea/OverlayScrollbars.tsx deleted file mode 100644 index c5043032448c..000000000000 --- a/code/ui/components/src/components/ScrollArea/OverlayScrollbars.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { OverlayScrollbarsComponent } from 'overlayscrollbars-react'; - -export const OverlayScrollbars = OverlayScrollbarsComponent; - -export default OverlayScrollbarsComponent; From 3332ca2f29c269ee838619ca7ba6affe8bcb3265 Mon Sep 17 00:00:00 2001 From: Charles de Dreuille Date: Mon, 9 Oct 2023 14:15:35 +0100 Subject: [PATCH 133/154] Update ScrollArea --- .../ScrollArea/ScrollArea.stories.tsx | 26 ++++ .../src/components/ScrollArea/ScrollArea.tsx | 122 ++++++++++++++---- 2 files changed, 126 insertions(+), 22 deletions(-) diff --git a/code/ui/components/src/components/ScrollArea/ScrollArea.stories.tsx b/code/ui/components/src/components/ScrollArea/ScrollArea.stories.tsx index e4a7a09e7dc2..59eabd84925d 100644 --- a/code/ui/components/src/components/ScrollArea/ScrollArea.stories.tsx +++ b/code/ui/components/src/components/ScrollArea/ScrollArea.stories.tsx @@ -84,3 +84,29 @@ export const WithOuterBorder = () => ( /> ); + +export const CustomOffset = () => ( + + {list((i) => ( + + {list((ii) => ( + {ii * i} + ))} +
+
+ ))} +
+); + +export const CustomSize = () => ( + + {list((i) => ( + + {list((ii) => ( + {ii * i} + ))} +
+
+ ))} +
+); diff --git a/code/ui/components/src/components/ScrollArea/ScrollArea.tsx b/code/ui/components/src/components/ScrollArea/ScrollArea.tsx index 51a0f5786679..013ecb8a07df 100644 --- a/code/ui/components/src/components/ScrollArea/ScrollArea.tsx +++ b/code/ui/components/src/components/ScrollArea/ScrollArea.tsx @@ -1,34 +1,112 @@ import type { FC } from 'react'; -import React, { lazy, Suspense } from 'react'; +import React from 'react'; import { styled } from '@storybook/theming'; - -const GlobalScrollAreaStyles = lazy(() => import('./GlobalScrollAreaStyles')); -const OverlayScrollbars = lazy(() => import('./OverlayScrollbars')); - -const Scroller: FC = ({ horizontal, vertical, ...props }) => ( - }> - - - -); +import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'; export interface ScrollAreaProps { children?: React.ReactNode; horizontal?: boolean; vertical?: boolean; className?: string; + offset?: number; + scrollbarSize?: number; } -export const ScrollArea: FC = styled(Scroller)( - ({ vertical }) => (!vertical ? { overflowY: 'hidden' } : { overflowY: 'auto', height: '100%' }), - ({ horizontal }) => (!horizontal ? { overflowX: 'hidden' } : { overflowX: 'auto', width: '100%' }) +const ScrollAreaRoot = styled(ScrollAreaPrimitive.Root)<{ scrollbarSize: number; offset: number }>( + ({ scrollbarSize, offset }) => ({ + width: '100%', + height: '100%', + overflow: 'hidden', + '--scrollbar-size': `${scrollbarSize + offset}px`, + '--radix-scroll-area-thumb-width': `${scrollbarSize}px`, + }) ); -ScrollArea.defaultProps = { - horizontal: false, - vertical: false, -}; +const ScrollAreaViewport = styled(ScrollAreaPrimitive.Viewport)({ + width: '100%', + height: '100%', +}); + +const ScrollAreaScrollbar = styled(ScrollAreaPrimitive.Scrollbar)<{ + offset: number; + horizontal: boolean; + vertical: boolean; +}>(({ offset, horizontal, vertical }) => ({ + display: 'flex', + userSelect: 'none', // ensures no selection + touchAction: 'none', // disable browser handling of all panning and zooming gestures on touch devices + background: 'transparent', + transition: 'all 0.2s ease-out', + borderRadius: 'var(--scrollbar-size)', + + '&[data-orientation="vertical"]': { + width: 'var(--scrollbar-size)', + paddingRight: offset, + marginTop: offset, + marginBottom: horizontal && vertical ? 0 : offset, + }, + '&[data-orientation="horizontal"]': { + flexDirection: 'column', + height: 'var(--scrollbar-size)', + paddingBottom: offset, + marginLeft: offset, + marginRight: horizontal && vertical ? 0 : offset, + }, +})); + +const ScrollAreaThumb = styled(ScrollAreaPrimitive.Thumb)(({ theme }) => ({ + flex: 1, + background: theme.textMutedColor, + opacity: 0.5, + borderRadius: `var(--scrollbar-size)`, + position: 'relative', + transition: 'opacity 0.2s ease-out', + + '&:hover': { opacity: 0.8 }, + + /* increase target size for touch devices https://www.w3.org/WAI/WCAG21/Understanding/target-size.html */ + '::before': { + content: '""', + position: 'absolute', + top: '50%', + left: '50%', + transform: 'translate(-50%,-50%)', + width: '100%', + height: '100%', + minWidth: 44, + minHeight: 44, + }, +})); + +export const ScrollArea: FC = ({ + children, + horizontal = false, + vertical = false, + offset = 2, + scrollbarSize = 6, +}) => ( + + {children} + {horizontal && ( + + + + )} + {vertical && ( + + + + )} + {horizontal && vertical && } + +); From 182032670bbcc397568ae573e5e095f92ce50433 Mon Sep 17 00:00:00 2001 From: Charles de Dreuille Date: Mon, 9 Oct 2023 14:15:52 +0100 Subject: [PATCH 134/154] Fix Sidebar --- code/ui/manager/src/components/sidebar/Search.tsx | 2 ++ code/ui/manager/src/components/sidebar/Sidebar.tsx | 13 ++----------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/code/ui/manager/src/components/sidebar/Search.tsx b/code/ui/manager/src/components/sidebar/Search.tsx index d9d03217db38..c8c71ae659cd 100644 --- a/code/ui/manager/src/components/sidebar/Search.tsx +++ b/code/ui/manager/src/components/sidebar/Search.tsx @@ -85,6 +85,8 @@ const Input = styled.input(({ theme }) => ({ fontFamily: 'inherit', transition: 'all 150ms', color: theme.color.defaultText, + width: '100%', + '&:focus, &:active': { outline: 0, borderColor: theme.color.secondary, diff --git a/code/ui/manager/src/components/sidebar/Sidebar.tsx b/code/ui/manager/src/components/sidebar/Sidebar.tsx index 23aacc19f099..072603211c21 100644 --- a/code/ui/manager/src/components/sidebar/Sidebar.tsx +++ b/code/ui/manager/src/components/sidebar/Sidebar.tsx @@ -53,15 +53,6 @@ const Bottom = styled.div(({ theme }) => ({ }, })); -const CustomScrollArea = styled(ScrollArea)({ - '&&&&& .os-scrollbar-handle:before': { - left: -12, - }, - '&&&&& .os-scrollbar-vertical': { - right: 5, - }, -}); - const Swap = React.memo(function Swap({ children, condition, @@ -130,7 +121,7 @@ export const Sidebar = React.memo(function Sidebar({ return ( - + - + {isLoading ? null : ( {bottom.map(({ id, render: Render }) => ( From cbbdeaa0492e42d97de36719ea7733a8418b34ac Mon Sep 17 00:00:00 2001 From: Charles de Dreuille Date: Mon, 9 Oct 2023 14:28:09 +0100 Subject: [PATCH 135/154] Change to lowercase --- .../src/components/ScrollArea/ScrollArea.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/ui/components/src/components/ScrollArea/ScrollArea.tsx b/code/ui/components/src/components/ScrollArea/ScrollArea.tsx index 013ecb8a07df..613e75de1f2f 100644 --- a/code/ui/components/src/components/ScrollArea/ScrollArea.tsx +++ b/code/ui/components/src/components/ScrollArea/ScrollArea.tsx @@ -12,13 +12,13 @@ export interface ScrollAreaProps { scrollbarSize?: number; } -const ScrollAreaRoot = styled(ScrollAreaPrimitive.Root)<{ scrollbarSize: number; offset: number }>( - ({ scrollbarSize, offset }) => ({ +const ScrollAreaRoot = styled(ScrollAreaPrimitive.Root)<{ scrollbarsize: number; offset: number }>( + ({ scrollbarsize, offset }) => ({ width: '100%', height: '100%', overflow: 'hidden', - '--scrollbar-size': `${scrollbarSize + offset}px`, - '--radix-scroll-area-thumb-width': `${scrollbarSize}px`, + '--scrollbar-size': `${scrollbarsize + offset}px`, + '--radix-scroll-area-thumb-width': `${scrollbarsize}px`, }) ); @@ -85,7 +85,7 @@ export const ScrollArea: FC = ({ offset = 2, scrollbarSize = 6, }) => ( - + {children} {horizontal && ( Date: Mon, 9 Oct 2023 14:38:44 +0100 Subject: [PATCH 136/154] Fix emotion issues --- .../src/components/ScrollArea/ScrollArea.tsx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/code/ui/components/src/components/ScrollArea/ScrollArea.tsx b/code/ui/components/src/components/ScrollArea/ScrollArea.tsx index 613e75de1f2f..3bb523dddcda 100644 --- a/code/ui/components/src/components/ScrollArea/ScrollArea.tsx +++ b/code/ui/components/src/components/ScrollArea/ScrollArea.tsx @@ -29,8 +29,8 @@ const ScrollAreaViewport = styled(ScrollAreaPrimitive.Viewport)({ const ScrollAreaScrollbar = styled(ScrollAreaPrimitive.Scrollbar)<{ offset: number; - horizontal: boolean; - vertical: boolean; + horizontal: string; + vertical: string; }>(({ offset, horizontal, vertical }) => ({ display: 'flex', userSelect: 'none', // ensures no selection @@ -43,14 +43,14 @@ const ScrollAreaScrollbar = styled(ScrollAreaPrimitive.Scrollbar)<{ width: 'var(--scrollbar-size)', paddingRight: offset, marginTop: offset, - marginBottom: horizontal && vertical ? 0 : offset, + marginBottom: horizontal === 'true' && vertical === 'true' ? 0 : offset, }, '&[data-orientation="horizontal"]': { flexDirection: 'column', height: 'var(--scrollbar-size)', paddingBottom: offset, marginLeft: offset, - marginRight: horizontal && vertical ? 0 : offset, + marginRight: horizontal === 'true' && vertical === 'true' ? 0 : offset, }, })); @@ -91,8 +91,8 @@ export const ScrollArea: FC = ({ @@ -101,8 +101,8 @@ export const ScrollArea: FC = ({ From 26bc2340ae71eb3aa1908a2e0b82d5ec58d9fd21 Mon Sep 17 00:00:00 2001 From: Vanessa Yuen <6842965+vanessayuenn@users.noreply.github.com> Date: Mon, 9 Oct 2023 18:01:13 +0200 Subject: [PATCH 137/154] empty commit [skip ci] From 2660c0a882c7e4bd8493390c5c435479968e2402 Mon Sep 17 00:00:00 2001 From: Vanessa Yuen <6842965+vanessayuenn@users.noreply.github.com> Date: Mon, 9 Oct 2023 18:18:01 +0200 Subject: [PATCH 138/154] another empty commit hoping it will trigger a release From e03993cc990811a54f54fa79ce5fc967f4f818ab Mon Sep 17 00:00:00 2001 From: jonniebigodes Date: Mon, 9 Oct 2023 19:22:38 +0100 Subject: [PATCH 139/154] Fix capitalization --- docs/contribute/code.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contribute/code.md b/docs/contribute/code.md index fbc3dda02955..21337442dd23 100644 --- a/docs/contribute/code.md +++ b/docs/contribute/code.md @@ -18,7 +18,7 @@ git clone https://github.com/your-username/storybook.git cd storybook ``` -Storybook uses the [yarn](https://v3.yarnpkg.com/) package manager. Use [corepack](https://github.com/nodejs/corepack) to set up the correct version for use with Storybook. +Storybook uses the [yarn](https://v3.yarnpkg.com/) package manager. Use [Corepack](https://github.com/nodejs/corepack) to set up the correct version for use with Storybook. ```shell corepack enable From 4b83597b7f0683aaf3e0a1327c449dc2e2bbccb1 Mon Sep 17 00:00:00 2001 From: Jeppe Reinhold Date: Mon, 9 Oct 2023 20:49:13 +0200 Subject: [PATCH 140/154] move preparation cancelation to later in the workflow --- .github/workflows/publish.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 8bb5fa3a82a6..8f02f2d0737c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -36,11 +36,6 @@ jobs: gh run cancel ${{ github.run_id }} gh run watch ${{ github.run_id }} - - name: Cancel all release preparation runs - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: yarn release:cancel-preparation-runs - - name: Checkout ${{ github.ref_name }} uses: actions/checkout@v3 with: @@ -67,6 +62,11 @@ jobs: run: | yarn install + - name: Cancel all release preparation runs + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: yarn release:cancel-preparation-runs + - name: Apply deferred version bump and commit working-directory: . run: | From 816e86e4b2517eb42fb1b3846ba6a4116ac201b3 Mon Sep 17 00:00:00 2001 From: storybook-bot <32066757+storybook-bot@users.noreply.github.com> Date: Mon, 9 Oct 2023 18:51:18 +0000 Subject: [PATCH 141/154] Bump version from "7.5.0-alpha.4" to "7.5.0-alpha.5" [skip ci] --- code/addons/a11y/package.json | 2 +- code/addons/actions/package.json | 2 +- code/addons/backgrounds/package.json | 2 +- code/addons/controls/package.json | 2 +- code/addons/docs/package.json | 2 +- code/addons/essentials/package.json | 2 +- code/addons/gfm/package.json | 2 +- code/addons/highlight/package.json | 2 +- code/addons/interactions/package.json | 2 +- code/addons/jest/package.json | 2 +- code/addons/links/package.json | 2 +- code/addons/measure/package.json | 2 +- code/addons/outline/package.json | 2 +- code/addons/storyshots-core/package.json | 2 +- code/addons/storyshots-puppeteer/package.json | 2 +- code/addons/storysource/package.json | 2 +- code/addons/themes/package.json | 2 +- code/addons/toolbars/package.json | 2 +- code/addons/viewport/package.json | 2 +- code/builders/builder-manager/package.json | 2 +- code/builders/builder-vite/package.json | 2 +- code/builders/builder-webpack5/package.json | 2 +- code/deprecated/addons/package.json | 2 +- .../channel-postmessage/package.json | 2 +- .../deprecated/channel-websocket/package.json | 2 +- code/deprecated/client-api/package.json | 2 +- code/deprecated/core-client/package.json | 2 +- code/deprecated/manager-api-shim/package.json | 2 +- code/deprecated/preview-web/package.json | 2 +- code/deprecated/store/package.json | 2 +- code/frameworks/angular/package.json | 2 +- code/frameworks/ember/package.json | 2 +- code/frameworks/html-vite/package.json | 2 +- code/frameworks/html-webpack5/package.json | 2 +- code/frameworks/nextjs/package.json | 2 +- code/frameworks/preact-vite/package.json | 2 +- code/frameworks/preact-webpack5/package.json | 2 +- code/frameworks/react-vite/package.json | 2 +- code/frameworks/react-webpack5/package.json | 2 +- code/frameworks/server-webpack5/package.json | 2 +- code/frameworks/svelte-vite/package.json | 2 +- code/frameworks/svelte-webpack5/package.json | 2 +- code/frameworks/sveltekit/package.json | 2 +- code/frameworks/vue-vite/package.json | 2 +- code/frameworks/vue-webpack5/package.json | 2 +- code/frameworks/vue3-vite/package.json | 2 +- code/frameworks/vue3-webpack5/package.json | 2 +- .../web-components-vite/package.json | 2 +- .../web-components-webpack5/package.json | 2 +- code/lib/channels/package.json | 2 +- code/lib/cli-sb/package.json | 2 +- code/lib/cli-storybook/package.json | 2 +- code/lib/cli/package.json | 2 +- code/lib/cli/src/versions.ts | 188 +++++++++--------- code/lib/client-logger/package.json | 2 +- code/lib/codemod/package.json | 2 +- code/lib/core-common/package.json | 2 +- code/lib/core-events/package.json | 2 +- code/lib/core-server/package.json | 2 +- code/lib/core-webpack/package.json | 2 +- code/lib/csf-plugin/package.json | 2 +- code/lib/csf-tools/package.json | 2 +- code/lib/docs-tools/package.json | 2 +- code/lib/instrumenter/package.json | 2 +- code/lib/manager-api/package.json | 2 +- code/lib/manager-api/src/version.ts | 2 +- code/lib/node-logger/package.json | 2 +- code/lib/postinstall/package.json | 2 +- code/lib/preview-api/package.json | 2 +- code/lib/preview/package.json | 2 +- code/lib/react-dom-shim/package.json | 2 +- code/lib/router/package.json | 2 +- code/lib/source-loader/package.json | 2 +- code/lib/telemetry/package.json | 2 +- code/lib/theming/package.json | 2 +- code/lib/types/package.json | 2 +- code/package.json | 5 +- code/presets/create-react-app/package.json | 2 +- code/presets/html-webpack/package.json | 2 +- code/presets/preact-webpack/package.json | 2 +- code/presets/react-webpack/package.json | 2 +- code/presets/server-webpack/package.json | 2 +- code/presets/svelte-webpack/package.json | 2 +- code/presets/vue-webpack/package.json | 2 +- code/presets/vue3-webpack/package.json | 2 +- .../web-components-webpack/package.json | 2 +- code/renderers/html/package.json | 2 +- code/renderers/preact/package.json | 2 +- code/renderers/react/package.json | 2 +- code/renderers/server/package.json | 2 +- code/renderers/svelte/package.json | 2 +- code/renderers/vue/package.json | 2 +- code/renderers/vue3/package.json | 2 +- code/renderers/web-components/package.json | 2 +- code/ui/blocks/package.json | 2 +- code/ui/components/package.json | 2 +- code/ui/manager/package.json | 2 +- 97 files changed, 191 insertions(+), 192 deletions(-) diff --git a/code/addons/a11y/package.json b/code/addons/a11y/package.json index 20df88c627d6..071cfbc582bb 100644 --- a/code/addons/a11y/package.json +++ b/code/addons/a11y/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-a11y", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Test component compliance with web accessibility standards", "keywords": [ "a11y", diff --git a/code/addons/actions/package.json b/code/addons/actions/package.json index dda5650f3129..fe7ee2ee969f 100644 --- a/code/addons/actions/package.json +++ b/code/addons/actions/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-actions", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Get UI feedback when an action is performed on an interactive element", "keywords": [ "storybook", diff --git a/code/addons/backgrounds/package.json b/code/addons/backgrounds/package.json index 3fb06769672d..537f61213d13 100644 --- a/code/addons/backgrounds/package.json +++ b/code/addons/backgrounds/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-backgrounds", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Switch backgrounds to view components in different settings", "keywords": [ "addon", diff --git a/code/addons/controls/package.json b/code/addons/controls/package.json index 829829c166b9..7f1b66fce05c 100644 --- a/code/addons/controls/package.json +++ b/code/addons/controls/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-controls", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Interact with component inputs dynamically in the Storybook UI", "keywords": [ "addon", diff --git a/code/addons/docs/package.json b/code/addons/docs/package.json index 39294a7573b8..633fc815b58b 100644 --- a/code/addons/docs/package.json +++ b/code/addons/docs/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-docs", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Document component usage and properties in Markdown", "keywords": [ "addon", diff --git a/code/addons/essentials/package.json b/code/addons/essentials/package.json index e2e95e6e04e3..1c9ff45deb02 100644 --- a/code/addons/essentials/package.json +++ b/code/addons/essentials/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-essentials", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Curated addons to bring out the best of Storybook", "keywords": [ "addon", diff --git a/code/addons/gfm/package.json b/code/addons/gfm/package.json index 1edd50d8d422..12499454e488 100644 --- a/code/addons/gfm/package.json +++ b/code/addons/gfm/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-mdx-gfm", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "GitHub Flavored Markdown in Storybook", "keywords": [ "addon", diff --git a/code/addons/highlight/package.json b/code/addons/highlight/package.json index 22a9069a26a1..c8dccf896d66 100644 --- a/code/addons/highlight/package.json +++ b/code/addons/highlight/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-highlight", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Highlight DOM nodes within your stories", "keywords": [ "storybook-addons", diff --git a/code/addons/interactions/package.json b/code/addons/interactions/package.json index 237b5c71bf4b..76fc4f5e7357 100644 --- a/code/addons/interactions/package.json +++ b/code/addons/interactions/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-interactions", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Automate, test and debug user interactions", "keywords": [ "storybook-addons", diff --git a/code/addons/jest/package.json b/code/addons/jest/package.json index f26d6bc8c8e9..900094bb7b9d 100644 --- a/code/addons/jest/package.json +++ b/code/addons/jest/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-jest", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "React storybook addon that show component jest report", "keywords": [ "addon", diff --git a/code/addons/links/package.json b/code/addons/links/package.json index dfbaeb62ac89..cd945993882b 100644 --- a/code/addons/links/package.json +++ b/code/addons/links/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-links", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Link stories together to build demos and prototypes with your UI components", "keywords": [ "addon", diff --git a/code/addons/measure/package.json b/code/addons/measure/package.json index 4048a81c373e..c81565bbda60 100644 --- a/code/addons/measure/package.json +++ b/code/addons/measure/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-measure", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Inspect layouts by visualizing the box model", "keywords": [ "storybook-addons", diff --git a/code/addons/outline/package.json b/code/addons/outline/package.json index 77bd3f840529..6d6ca3f5f8c0 100644 --- a/code/addons/outline/package.json +++ b/code/addons/outline/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-outline", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Outline all elements with CSS to help with layout placement and alignment", "keywords": [ "storybook-addons", diff --git a/code/addons/storyshots-core/package.json b/code/addons/storyshots-core/package.json index 40c1efefff70..d985f22fa05d 100644 --- a/code/addons/storyshots-core/package.json +++ b/code/addons/storyshots-core/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-storyshots", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Take a code snapshot of every story automatically with Jest", "keywords": [ "addon", diff --git a/code/addons/storyshots-puppeteer/package.json b/code/addons/storyshots-puppeteer/package.json index cad9d29cca7b..4346ba937c6f 100644 --- a/code/addons/storyshots-puppeteer/package.json +++ b/code/addons/storyshots-puppeteer/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-storyshots-puppeteer", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Image snapshots addition to StoryShots based on puppeteer", "keywords": [ "addon", diff --git a/code/addons/storysource/package.json b/code/addons/storysource/package.json index afc05fcb6e9b..0c0cba0cc85f 100644 --- a/code/addons/storysource/package.json +++ b/code/addons/storysource/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-storysource", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "View a story’s source code to see how it works and paste into your app", "keywords": [ "addon", diff --git a/code/addons/themes/package.json b/code/addons/themes/package.json index 8dc2fdac1a59..975f598af39f 100644 --- a/code/addons/themes/package.json +++ b/code/addons/themes/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-themes", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Switch between multiple themes for you components in Storybook", "keywords": [ "css", diff --git a/code/addons/toolbars/package.json b/code/addons/toolbars/package.json index 225542096e83..e3f3b90b0fe0 100644 --- a/code/addons/toolbars/package.json +++ b/code/addons/toolbars/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-toolbars", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Create your own toolbar items that control story rendering", "keywords": [ "addon", diff --git a/code/addons/viewport/package.json b/code/addons/viewport/package.json index e351d612d53f..c2b2d59ba78a 100644 --- a/code/addons/viewport/package.json +++ b/code/addons/viewport/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addon-viewport", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Build responsive components by adjusting Storybook’s viewport size and orientation", "keywords": [ "addon", diff --git a/code/builders/builder-manager/package.json b/code/builders/builder-manager/package.json index e588c64a0f9e..7dc0dc71f951 100644 --- a/code/builders/builder-manager/package.json +++ b/code/builders/builder-manager/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-manager", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook manager builder", "keywords": [ "storybook" diff --git a/code/builders/builder-vite/package.json b/code/builders/builder-vite/package.json index 6e0cc80db781..c20a8164300c 100644 --- a/code/builders/builder-vite/package.json +++ b/code/builders/builder-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-vite", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "A plugin to run and build Storybooks with Vite", "homepage": "https://github.com/storybookjs/storybook/tree/next/code/builders/builder-vite/#readme", "bugs": { diff --git a/code/builders/builder-webpack5/package.json b/code/builders/builder-webpack5/package.json index a9402b286f33..94933ce1d438 100644 --- a/code/builders/builder-webpack5/package.json +++ b/code/builders/builder-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-webpack5", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/deprecated/addons/package.json b/code/deprecated/addons/package.json index 5b5c38aac14d..098acae4e930 100644 --- a/code/deprecated/addons/package.json +++ b/code/deprecated/addons/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addons", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook addons store", "keywords": [ "storybook" diff --git a/code/deprecated/channel-postmessage/package.json b/code/deprecated/channel-postmessage/package.json index aa0b4152b062..a8c92e060480 100644 --- a/code/deprecated/channel-postmessage/package.json +++ b/code/deprecated/channel-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channel-postmessage", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/channel-websocket/package.json b/code/deprecated/channel-websocket/package.json index c0dcf7c19306..7ff85843878a 100644 --- a/code/deprecated/channel-websocket/package.json +++ b/code/deprecated/channel-websocket/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channel-websocket", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/client-api/package.json b/code/deprecated/client-api/package.json index dfe7cc6c40d4..6ebd2c3be4e4 100644 --- a/code/deprecated/client-api/package.json +++ b/code/deprecated/client-api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/client-api", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook Client API", "keywords": [ "storybook" diff --git a/code/deprecated/core-client/package.json b/code/deprecated/core-client/package.json index 40d57044f9b0..b4b6336b45cb 100644 --- a/code/deprecated/core-client/package.json +++ b/code/deprecated/core-client/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-client", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/deprecated/manager-api-shim/package.json b/code/deprecated/manager-api-shim/package.json index 0fa3e479a599..1dff4b53a565 100644 --- a/code/deprecated/manager-api-shim/package.json +++ b/code/deprecated/manager-api-shim/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/api", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook Manager API (facade)", "keywords": [ "storybook" diff --git a/code/deprecated/preview-web/package.json b/code/deprecated/preview-web/package.json index b5845b28acd9..594756177969 100644 --- a/code/deprecated/preview-web/package.json +++ b/code/deprecated/preview-web/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preview-web", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "", "keywords": [ "storybook" diff --git a/code/deprecated/store/package.json b/code/deprecated/store/package.json index 67e1584ccda7..c535020acdd4 100644 --- a/code/deprecated/store/package.json +++ b/code/deprecated/store/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/store", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "", "keywords": [ "storybook" diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json index 50ecec42445c..03d6fb7bf296 100644 --- a/code/frameworks/angular/package.json +++ b/code/frameworks/angular/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/angular", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.", "keywords": [ "storybook", diff --git a/code/frameworks/ember/package.json b/code/frameworks/ember/package.json index 7de04d5536d1..9a713760054a 100644 --- a/code/frameworks/ember/package.json +++ b/code/frameworks/ember/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/ember", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Ember: Develop Ember Component in isolation with Hot Reloading.", "homepage": "https://github.com/storybookjs/storybook/tree/next/code/frameworks/ember", "bugs": { diff --git a/code/frameworks/html-vite/package.json b/code/frameworks/html-vite/package.json index dfddffd7886a..892adcbdb666 100644 --- a/code/frameworks/html-vite/package.json +++ b/code/frameworks/html-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html-vite", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for HTML and Vite: Develop HTML in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json index 02d5ef123a63..601565d96553 100644 --- a/code/frameworks/html-webpack5/package.json +++ b/code/frameworks/html-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html-webpack5", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index 3086efcb7d40..8bf4f92136a2 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/nextjs", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Next.js", "keywords": [ "storybook", diff --git a/code/frameworks/preact-vite/package.json b/code/frameworks/preact-vite/package.json index 3df266adecec..1090b72af835 100644 --- a/code/frameworks/preact-vite/package.json +++ b/code/frameworks/preact-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact-vite", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Preact and Vite: Develop Preact components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json index 8d4d7ecb9beb..e719f43cd5ea 100644 --- a/code/frameworks/preact-webpack5/package.json +++ b/code/frameworks/preact-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact-webpack5", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Preact: Develop Preact Component in isolation.", "keywords": [ "storybook" diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index 15026f5f0af8..56f36bdc4505 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-vite", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for React and Vite: Develop React components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index e767d5e14b42..899296f95257 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-webpack5", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for React: Develop React Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index 3997eaffc5e2..01defb610f9e 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/server-webpack5", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/svelte-vite/package.json b/code/frameworks/svelte-vite/package.json index 5eabe2366d49..b5e71b75978f 100644 --- a/code/frameworks/svelte-vite/package.json +++ b/code/frameworks/svelte-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte-vite", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Svelte and Vite: Develop Svelte components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/svelte-webpack5/package.json b/code/frameworks/svelte-webpack5/package.json index 97ca845f9087..5abc3b833e95 100644 --- a/code/frameworks/svelte-webpack5/package.json +++ b/code/frameworks/svelte-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte-webpack5", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/sveltekit/package.json b/code/frameworks/sveltekit/package.json index 8b9f808420b5..4e528dc944c9 100644 --- a/code/frameworks/sveltekit/package.json +++ b/code/frameworks/sveltekit/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/sveltekit", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for SvelteKit", "keywords": [ "storybook", diff --git a/code/frameworks/vue-vite/package.json b/code/frameworks/vue-vite/package.json index d081aa9f1c37..243796427718 100644 --- a/code/frameworks/vue-vite/package.json +++ b/code/frameworks/vue-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue-vite", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Vue2 and Vite: Develop Vue2 Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/vue-webpack5/package.json b/code/frameworks/vue-webpack5/package.json index 2c6f6d8d6fc2..979688d6e381 100644 --- a/code/frameworks/vue-webpack5/package.json +++ b/code/frameworks/vue-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue-webpack5", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/vue3-vite/package.json b/code/frameworks/vue3-vite/package.json index 440d63740f21..432c782b0a04 100644 --- a/code/frameworks/vue3-vite/package.json +++ b/code/frameworks/vue3-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3-vite", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Vue3 and Vite: Develop Vue3 components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json index cf035615f7b9..88830e05e559 100644 --- a/code/frameworks/vue3-webpack5/package.json +++ b/code/frameworks/vue3-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3-webpack5", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/web-components-vite/package.json b/code/frameworks/web-components-vite/package.json index 1956f8b0047a..5f9104483890 100644 --- a/code/frameworks/web-components-vite/package.json +++ b/code/frameworks/web-components-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components-vite", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for web-components and Vite: Develop Web Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json index 17b38ad48112..a7c172a70388 100644 --- a/code/frameworks/web-components-webpack5/package.json +++ b/code/frameworks/web-components-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components-webpack5", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.", "keywords": [ "lit", diff --git a/code/lib/channels/package.json b/code/lib/channels/package.json index 7108ca6958d9..11cf75c4ba2a 100644 --- a/code/lib/channels/package.json +++ b/code/lib/channels/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channels", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "", "keywords": [ "storybook" diff --git a/code/lib/cli-sb/package.json b/code/lib/cli-sb/package.json index 3802f4407bb8..6aa4fa91a5ea 100644 --- a/code/lib/cli-sb/package.json +++ b/code/lib/cli-sb/package.json @@ -1,6 +1,6 @@ { "name": "sb", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook CLI", "keywords": [ "storybook" diff --git a/code/lib/cli-storybook/package.json b/code/lib/cli-storybook/package.json index de2d447d9f7a..e1dccc73bac6 100644 --- a/code/lib/cli-storybook/package.json +++ b/code/lib/cli-storybook/package.json @@ -1,6 +1,6 @@ { "name": "storybook", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook CLI", "keywords": [ "storybook" diff --git a/code/lib/cli/package.json b/code/lib/cli/package.json index a089338f0950..439bdfc0c047 100644 --- a/code/lib/cli/package.json +++ b/code/lib/cli/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/cli", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook's CLI - easiest method of adding storybook to your projects", "keywords": [ "cli", diff --git a/code/lib/cli/src/versions.ts b/code/lib/cli/src/versions.ts index ef712eb5df59..10b3b53648d7 100644 --- a/code/lib/cli/src/versions.ts +++ b/code/lib/cli/src/versions.ts @@ -1,97 +1,97 @@ // auto generated file, do not edit export default { - '@storybook/addon-a11y': '7.5.0-alpha.4', - '@storybook/addon-actions': '7.5.0-alpha.4', - '@storybook/addon-backgrounds': '7.5.0-alpha.4', - '@storybook/addon-controls': '7.5.0-alpha.4', - '@storybook/addon-docs': '7.5.0-alpha.4', - '@storybook/addon-essentials': '7.5.0-alpha.4', - '@storybook/addon-highlight': '7.5.0-alpha.4', - '@storybook/addon-interactions': '7.5.0-alpha.4', - '@storybook/addon-jest': '7.5.0-alpha.4', - '@storybook/addon-links': '7.5.0-alpha.4', - '@storybook/addon-mdx-gfm': '7.5.0-alpha.4', - '@storybook/addon-measure': '7.5.0-alpha.4', - '@storybook/addon-outline': '7.5.0-alpha.4', - '@storybook/addon-themes': '7.5.0-alpha.4', - '@storybook/addon-storyshots': '7.5.0-alpha.4', - '@storybook/addon-storyshots-puppeteer': '7.5.0-alpha.4', - '@storybook/addon-storysource': '7.5.0-alpha.4', - '@storybook/addon-toolbars': '7.5.0-alpha.4', - '@storybook/addon-viewport': '7.5.0-alpha.4', - '@storybook/addons': '7.5.0-alpha.4', - '@storybook/angular': '7.5.0-alpha.4', - '@storybook/api': '7.5.0-alpha.4', - '@storybook/blocks': '7.5.0-alpha.4', - '@storybook/builder-manager': '7.5.0-alpha.4', - '@storybook/builder-vite': '7.5.0-alpha.4', - '@storybook/builder-webpack5': '7.5.0-alpha.4', - '@storybook/channel-postmessage': '7.5.0-alpha.4', - '@storybook/channel-websocket': '7.5.0-alpha.4', - '@storybook/channels': '7.5.0-alpha.4', - '@storybook/cli': '7.5.0-alpha.4', - '@storybook/client-api': '7.5.0-alpha.4', - '@storybook/client-logger': '7.5.0-alpha.4', - '@storybook/codemod': '7.5.0-alpha.4', - '@storybook/components': '7.5.0-alpha.4', - '@storybook/core-client': '7.5.0-alpha.4', - '@storybook/core-common': '7.5.0-alpha.4', - '@storybook/core-events': '7.5.0-alpha.4', - '@storybook/core-server': '7.5.0-alpha.4', - '@storybook/core-webpack': '7.5.0-alpha.4', - '@storybook/csf-plugin': '7.5.0-alpha.4', - '@storybook/csf-tools': '7.5.0-alpha.4', - '@storybook/docs-tools': '7.5.0-alpha.4', - '@storybook/ember': '7.5.0-alpha.4', - '@storybook/html': '7.5.0-alpha.4', - '@storybook/html-vite': '7.5.0-alpha.4', - '@storybook/html-webpack5': '7.5.0-alpha.4', - '@storybook/instrumenter': '7.5.0-alpha.4', - '@storybook/manager': '7.5.0-alpha.4', - '@storybook/manager-api': '7.5.0-alpha.4', - '@storybook/nextjs': '7.5.0-alpha.4', - '@storybook/node-logger': '7.5.0-alpha.4', - '@storybook/postinstall': '7.5.0-alpha.4', - '@storybook/preact': '7.5.0-alpha.4', - '@storybook/preact-vite': '7.5.0-alpha.4', - '@storybook/preact-webpack5': '7.5.0-alpha.4', - '@storybook/preset-create-react-app': '7.5.0-alpha.4', - '@storybook/preset-html-webpack': '7.5.0-alpha.4', - '@storybook/preset-preact-webpack': '7.5.0-alpha.4', - '@storybook/preset-react-webpack': '7.5.0-alpha.4', - '@storybook/preset-server-webpack': '7.5.0-alpha.4', - '@storybook/preset-svelte-webpack': '7.5.0-alpha.4', - '@storybook/preset-vue-webpack': '7.5.0-alpha.4', - '@storybook/preset-vue3-webpack': '7.5.0-alpha.4', - '@storybook/preset-web-components-webpack': '7.5.0-alpha.4', - '@storybook/preview': '7.5.0-alpha.4', - '@storybook/preview-api': '7.5.0-alpha.4', - '@storybook/preview-web': '7.5.0-alpha.4', - '@storybook/react': '7.5.0-alpha.4', - '@storybook/react-dom-shim': '7.5.0-alpha.4', - '@storybook/react-vite': '7.5.0-alpha.4', - '@storybook/react-webpack5': '7.5.0-alpha.4', - '@storybook/router': '7.5.0-alpha.4', - '@storybook/server': '7.5.0-alpha.4', - '@storybook/server-webpack5': '7.5.0-alpha.4', - '@storybook/source-loader': '7.5.0-alpha.4', - '@storybook/store': '7.5.0-alpha.4', - '@storybook/svelte': '7.5.0-alpha.4', - '@storybook/svelte-vite': '7.5.0-alpha.4', - '@storybook/svelte-webpack5': '7.5.0-alpha.4', - '@storybook/sveltekit': '7.5.0-alpha.4', - '@storybook/telemetry': '7.5.0-alpha.4', - '@storybook/theming': '7.5.0-alpha.4', - '@storybook/types': '7.5.0-alpha.4', - '@storybook/vue': '7.5.0-alpha.4', - '@storybook/vue-vite': '7.5.0-alpha.4', - '@storybook/vue-webpack5': '7.5.0-alpha.4', - '@storybook/vue3': '7.5.0-alpha.4', - '@storybook/vue3-vite': '7.5.0-alpha.4', - '@storybook/vue3-webpack5': '7.5.0-alpha.4', - '@storybook/web-components': '7.5.0-alpha.4', - '@storybook/web-components-vite': '7.5.0-alpha.4', - '@storybook/web-components-webpack5': '7.5.0-alpha.4', - sb: '7.5.0-alpha.4', - storybook: '7.5.0-alpha.4', + '@storybook/addon-a11y': '7.5.0-alpha.5', + '@storybook/addon-actions': '7.5.0-alpha.5', + '@storybook/addon-backgrounds': '7.5.0-alpha.5', + '@storybook/addon-controls': '7.5.0-alpha.5', + '@storybook/addon-docs': '7.5.0-alpha.5', + '@storybook/addon-essentials': '7.5.0-alpha.5', + '@storybook/addon-highlight': '7.5.0-alpha.5', + '@storybook/addon-interactions': '7.5.0-alpha.5', + '@storybook/addon-jest': '7.5.0-alpha.5', + '@storybook/addon-links': '7.5.0-alpha.5', + '@storybook/addon-mdx-gfm': '7.5.0-alpha.5', + '@storybook/addon-measure': '7.5.0-alpha.5', + '@storybook/addon-outline': '7.5.0-alpha.5', + '@storybook/addon-themes': '7.5.0-alpha.5', + '@storybook/addon-storyshots': '7.5.0-alpha.5', + '@storybook/addon-storyshots-puppeteer': '7.5.0-alpha.5', + '@storybook/addon-storysource': '7.5.0-alpha.5', + '@storybook/addon-toolbars': '7.5.0-alpha.5', + '@storybook/addon-viewport': '7.5.0-alpha.5', + '@storybook/addons': '7.5.0-alpha.5', + '@storybook/angular': '7.5.0-alpha.5', + '@storybook/api': '7.5.0-alpha.5', + '@storybook/blocks': '7.5.0-alpha.5', + '@storybook/builder-manager': '7.5.0-alpha.5', + '@storybook/builder-vite': '7.5.0-alpha.5', + '@storybook/builder-webpack5': '7.5.0-alpha.5', + '@storybook/channel-postmessage': '7.5.0-alpha.5', + '@storybook/channel-websocket': '7.5.0-alpha.5', + '@storybook/channels': '7.5.0-alpha.5', + '@storybook/cli': '7.5.0-alpha.5', + '@storybook/client-api': '7.5.0-alpha.5', + '@storybook/client-logger': '7.5.0-alpha.5', + '@storybook/codemod': '7.5.0-alpha.5', + '@storybook/components': '7.5.0-alpha.5', + '@storybook/core-client': '7.5.0-alpha.5', + '@storybook/core-common': '7.5.0-alpha.5', + '@storybook/core-events': '7.5.0-alpha.5', + '@storybook/core-server': '7.5.0-alpha.5', + '@storybook/core-webpack': '7.5.0-alpha.5', + '@storybook/csf-plugin': '7.5.0-alpha.5', + '@storybook/csf-tools': '7.5.0-alpha.5', + '@storybook/docs-tools': '7.5.0-alpha.5', + '@storybook/ember': '7.5.0-alpha.5', + '@storybook/html': '7.5.0-alpha.5', + '@storybook/html-vite': '7.5.0-alpha.5', + '@storybook/html-webpack5': '7.5.0-alpha.5', + '@storybook/instrumenter': '7.5.0-alpha.5', + '@storybook/manager': '7.5.0-alpha.5', + '@storybook/manager-api': '7.5.0-alpha.5', + '@storybook/nextjs': '7.5.0-alpha.5', + '@storybook/node-logger': '7.5.0-alpha.5', + '@storybook/postinstall': '7.5.0-alpha.5', + '@storybook/preact': '7.5.0-alpha.5', + '@storybook/preact-vite': '7.5.0-alpha.5', + '@storybook/preact-webpack5': '7.5.0-alpha.5', + '@storybook/preset-create-react-app': '7.5.0-alpha.5', + '@storybook/preset-html-webpack': '7.5.0-alpha.5', + '@storybook/preset-preact-webpack': '7.5.0-alpha.5', + '@storybook/preset-react-webpack': '7.5.0-alpha.5', + '@storybook/preset-server-webpack': '7.5.0-alpha.5', + '@storybook/preset-svelte-webpack': '7.5.0-alpha.5', + '@storybook/preset-vue-webpack': '7.5.0-alpha.5', + '@storybook/preset-vue3-webpack': '7.5.0-alpha.5', + '@storybook/preset-web-components-webpack': '7.5.0-alpha.5', + '@storybook/preview': '7.5.0-alpha.5', + '@storybook/preview-api': '7.5.0-alpha.5', + '@storybook/preview-web': '7.5.0-alpha.5', + '@storybook/react': '7.5.0-alpha.5', + '@storybook/react-dom-shim': '7.5.0-alpha.5', + '@storybook/react-vite': '7.5.0-alpha.5', + '@storybook/react-webpack5': '7.5.0-alpha.5', + '@storybook/router': '7.5.0-alpha.5', + '@storybook/server': '7.5.0-alpha.5', + '@storybook/server-webpack5': '7.5.0-alpha.5', + '@storybook/source-loader': '7.5.0-alpha.5', + '@storybook/store': '7.5.0-alpha.5', + '@storybook/svelte': '7.5.0-alpha.5', + '@storybook/svelte-vite': '7.5.0-alpha.5', + '@storybook/svelte-webpack5': '7.5.0-alpha.5', + '@storybook/sveltekit': '7.5.0-alpha.5', + '@storybook/telemetry': '7.5.0-alpha.5', + '@storybook/theming': '7.5.0-alpha.5', + '@storybook/types': '7.5.0-alpha.5', + '@storybook/vue': '7.5.0-alpha.5', + '@storybook/vue-vite': '7.5.0-alpha.5', + '@storybook/vue-webpack5': '7.5.0-alpha.5', + '@storybook/vue3': '7.5.0-alpha.5', + '@storybook/vue3-vite': '7.5.0-alpha.5', + '@storybook/vue3-webpack5': '7.5.0-alpha.5', + '@storybook/web-components': '7.5.0-alpha.5', + '@storybook/web-components-vite': '7.5.0-alpha.5', + '@storybook/web-components-webpack5': '7.5.0-alpha.5', + sb: '7.5.0-alpha.5', + storybook: '7.5.0-alpha.5', }; diff --git a/code/lib/client-logger/package.json b/code/lib/client-logger/package.json index f63b74e572f4..abe02a29211f 100644 --- a/code/lib/client-logger/package.json +++ b/code/lib/client-logger/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/client-logger", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "", "keywords": [ "storybook" diff --git a/code/lib/codemod/package.json b/code/lib/codemod/package.json index fa8caf281dea..386f5e2d0463 100644 --- a/code/lib/codemod/package.json +++ b/code/lib/codemod/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/codemod", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "A collection of codemod scripts written with JSCodeshift", "keywords": [ "storybook" diff --git a/code/lib/core-common/package.json b/code/lib/core-common/package.json index 29c09387e5fd..4b7d3e777fd5 100644 --- a/code/lib/core-common/package.json +++ b/code/lib/core-common/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-common", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/lib/core-events/package.json b/code/lib/core-events/package.json index dd9fbd3c7757..9f93caaaa4a2 100644 --- a/code/lib/core-events/package.json +++ b/code/lib/core-events/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-events", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Event names used in storybook core", "keywords": [ "storybook" diff --git a/code/lib/core-server/package.json b/code/lib/core-server/package.json index fc62f70ccc6a..cb7a42f3f07a 100644 --- a/code/lib/core-server/package.json +++ b/code/lib/core-server/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-server", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/lib/core-webpack/package.json b/code/lib/core-webpack/package.json index ca5739b08558..d621ab88b06d 100644 --- a/code/lib/core-webpack/package.json +++ b/code/lib/core-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-webpack", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" diff --git a/code/lib/csf-plugin/package.json b/code/lib/csf-plugin/package.json index 07483a79d5f7..db7fdf9e9418 100644 --- a/code/lib/csf-plugin/package.json +++ b/code/lib/csf-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/csf-plugin", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Enrich CSF files via static analysis", "keywords": [ "storybook" diff --git a/code/lib/csf-tools/package.json b/code/lib/csf-tools/package.json index 27d9e30aaa7f..a1b3e043f02e 100644 --- a/code/lib/csf-tools/package.json +++ b/code/lib/csf-tools/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/csf-tools", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Parse and manipulate CSF and Storybook config files", "keywords": [ "storybook" diff --git a/code/lib/docs-tools/package.json b/code/lib/docs-tools/package.json index d552f6bc6208..25792f43aafe 100644 --- a/code/lib/docs-tools/package.json +++ b/code/lib/docs-tools/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/docs-tools", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Shared utility functions for frameworks to implement docs", "keywords": [ "storybook" diff --git a/code/lib/instrumenter/package.json b/code/lib/instrumenter/package.json index b9d22eb8445f..360f32cd936e 100644 --- a/code/lib/instrumenter/package.json +++ b/code/lib/instrumenter/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/instrumenter", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "", "keywords": [ "storybook" diff --git a/code/lib/manager-api/package.json b/code/lib/manager-api/package.json index 086a2a2fc55f..4252a06b8dc1 100644 --- a/code/lib/manager-api/package.json +++ b/code/lib/manager-api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/manager-api", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Core Storybook Manager API & Context", "keywords": [ "storybook" diff --git a/code/lib/manager-api/src/version.ts b/code/lib/manager-api/src/version.ts index e1a280d5aa14..45269c17f9b7 100644 --- a/code/lib/manager-api/src/version.ts +++ b/code/lib/manager-api/src/version.ts @@ -1 +1 @@ -export const version = '7.5.0-alpha.4'; +export const version = '7.5.0-alpha.5'; diff --git a/code/lib/node-logger/package.json b/code/lib/node-logger/package.json index c3a2bfc8abe9..27ced003c339 100644 --- a/code/lib/node-logger/package.json +++ b/code/lib/node-logger/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/node-logger", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "", "keywords": [ "storybook" diff --git a/code/lib/postinstall/package.json b/code/lib/postinstall/package.json index 93e9ef630ebc..b364e160780c 100644 --- a/code/lib/postinstall/package.json +++ b/code/lib/postinstall/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/postinstall", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook addons postinstall utilities", "keywords": [ "api", diff --git a/code/lib/preview-api/package.json b/code/lib/preview-api/package.json index 9079669709e9..929f45d54281 100644 --- a/code/lib/preview-api/package.json +++ b/code/lib/preview-api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preview-api", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "", "keywords": [ "storybook" diff --git a/code/lib/preview/package.json b/code/lib/preview/package.json index 47f22adf59bf..33a91a4aa268 100644 --- a/code/lib/preview/package.json +++ b/code/lib/preview/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preview", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "", "keywords": [ "storybook" diff --git a/code/lib/react-dom-shim/package.json b/code/lib/react-dom-shim/package.json index 250b0cab82bd..0993a4723482 100644 --- a/code/lib/react-dom-shim/package.json +++ b/code/lib/react-dom-shim/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-dom-shim", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "", "keywords": [ "storybook" diff --git a/code/lib/router/package.json b/code/lib/router/package.json index 3e20f332cde8..6fa6f8b74a3d 100644 --- a/code/lib/router/package.json +++ b/code/lib/router/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/router", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Core Storybook Router", "keywords": [ "storybook" diff --git a/code/lib/source-loader/package.json b/code/lib/source-loader/package.json index 8cf27fd7efef..a3a09030064b 100644 --- a/code/lib/source-loader/package.json +++ b/code/lib/source-loader/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/source-loader", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Source loader", "keywords": [ "lib", diff --git a/code/lib/telemetry/package.json b/code/lib/telemetry/package.json index 90aced13b741..5d02f48e0f1f 100644 --- a/code/lib/telemetry/package.json +++ b/code/lib/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/telemetry", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Telemetry logging for crash reports and usage statistics", "keywords": [ "storybook" diff --git a/code/lib/theming/package.json b/code/lib/theming/package.json index 47baae612c16..4b4c29614b0d 100644 --- a/code/lib/theming/package.json +++ b/code/lib/theming/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/theming", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Core Storybook Components", "keywords": [ "storybook" diff --git a/code/lib/types/package.json b/code/lib/types/package.json index c0a3fda13d64..263c3d7fcc79 100644 --- a/code/lib/types/package.json +++ b/code/lib/types/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/types", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Core Storybook TS Types", "keywords": [ "storybook" diff --git a/code/package.json b/code/package.json index c66b87af4d93..2cbba9109ae0 100644 --- a/code/package.json +++ b/code/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/root", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "private": true, "description": "Storybook root", "homepage": "https://storybook.js.org/", @@ -328,6 +328,5 @@ "Dependency Upgrades" ] ] - }, - "deferredNextVersion": "7.5.0-alpha.5" + } } diff --git a/code/presets/create-react-app/package.json b/code/presets/create-react-app/package.json index ff11ebc6ac0d..1fb9244d2b41 100644 --- a/code/presets/create-react-app/package.json +++ b/code/presets/create-react-app/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-create-react-app", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Create React App preset", "keywords": [ "storybook" diff --git a/code/presets/html-webpack/package.json b/code/presets/html-webpack/package.json index 7169a9b7f06a..326f623663b9 100644 --- a/code/presets/html-webpack/package.json +++ b/code/presets/html-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-html-webpack", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/preact-webpack/package.json b/code/presets/preact-webpack/package.json index 6a4df6a8d8ab..3894f3c84696 100644 --- a/code/presets/preact-webpack/package.json +++ b/code/presets/preact-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-preact-webpack", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Preact: Develop Preact Component in isolation.", "keywords": [ "storybook" diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json index 57ec0135a2ef..4471b944e093 100644 --- a/code/presets/react-webpack/package.json +++ b/code/presets/react-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-react-webpack", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for React: Develop React Component in isolation with Hot Reloading", "keywords": [ "storybook" diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json index 7998e916bdc1..13da8091ab46 100644 --- a/code/presets/server-webpack/package.json +++ b/code/presets/server-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-server-webpack", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/svelte-webpack/package.json b/code/presets/svelte-webpack/package.json index 99251c3a8a68..93eff7122f12 100644 --- a/code/presets/svelte-webpack/package.json +++ b/code/presets/svelte-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-svelte-webpack", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/vue-webpack/package.json b/code/presets/vue-webpack/package.json index b1479512dedd..0aaf1b2b48f1 100644 --- a/code/presets/vue-webpack/package.json +++ b/code/presets/vue-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-vue-webpack", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/vue3-webpack/package.json b/code/presets/vue3-webpack/package.json index b89f171428eb..8368d0f7f1a8 100644 --- a/code/presets/vue3-webpack/package.json +++ b/code/presets/vue3-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-vue3-webpack", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.", "keywords": [ "storybook" diff --git a/code/presets/web-components-webpack/package.json b/code/presets/web-components-webpack/package.json index 170535b14155..29cca0ef340d 100644 --- a/code/presets/web-components-webpack/package.json +++ b/code/presets/web-components-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-web-components-webpack", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.", "keywords": [ "lit", diff --git a/code/renderers/html/package.json b/code/renderers/html/package.json index 3ea6ca17deae..f8a3588d2268 100644 --- a/code/renderers/html/package.json +++ b/code/renderers/html/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook HTML renderer", "keywords": [ "storybook" diff --git a/code/renderers/preact/package.json b/code/renderers/preact/package.json index f49856e1cb95..1b53ce813f47 100644 --- a/code/renderers/preact/package.json +++ b/code/renderers/preact/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook Preact renderer", "keywords": [ "storybook" diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json index 75c51405d7e7..2bfe26f1b76b 100644 --- a/code/renderers/react/package.json +++ b/code/renderers/react/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook React renderer", "keywords": [ "storybook" diff --git a/code/renderers/server/package.json b/code/renderers/server/package.json index e1b7a638cecb..a0187b4082be 100644 --- a/code/renderers/server/package.json +++ b/code/renderers/server/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/server", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook Server renderer", "keywords": [ "storybook" diff --git a/code/renderers/svelte/package.json b/code/renderers/svelte/package.json index 329926365d73..a39494b112d7 100644 --- a/code/renderers/svelte/package.json +++ b/code/renderers/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook Svelte renderer", "keywords": [ "storybook" diff --git a/code/renderers/vue/package.json b/code/renderers/vue/package.json index 8f0adba6c632..9e8450babd4f 100644 --- a/code/renderers/vue/package.json +++ b/code/renderers/vue/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook Vue renderer", "keywords": [ "storybook" diff --git a/code/renderers/vue3/package.json b/code/renderers/vue3/package.json index db1f0e632e47..b38c9da920d6 100644 --- a/code/renderers/vue3/package.json +++ b/code/renderers/vue3/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook Vue 3 renderer", "keywords": [ "storybook" diff --git a/code/renderers/web-components/package.json b/code/renderers/web-components/package.json index c248bd3a41c4..1a857d6a2880 100644 --- a/code/renderers/web-components/package.json +++ b/code/renderers/web-components/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook web-components renderer", "keywords": [ "lit", diff --git a/code/ui/blocks/package.json b/code/ui/blocks/package.json index 060dc07626e3..97526cc355ca 100644 --- a/code/ui/blocks/package.json +++ b/code/ui/blocks/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/blocks", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Storybook Doc Blocks", "keywords": [ "storybook" diff --git a/code/ui/components/package.json b/code/ui/components/package.json index 0e9cc0dc42a4..b74b8e34be79 100644 --- a/code/ui/components/package.json +++ b/code/ui/components/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/components", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Core Storybook Components", "keywords": [ "storybook" diff --git a/code/ui/manager/package.json b/code/ui/manager/package.json index 9a13dc094783..ae03af55430e 100644 --- a/code/ui/manager/package.json +++ b/code/ui/manager/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/manager", - "version": "7.5.0-alpha.4", + "version": "7.5.0-alpha.5", "description": "Core Storybook UI", "keywords": [ "storybook" From 1fc5ed41b765ed8b49fee5b0bf1eaf7aa9a21de9 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Tue, 10 Oct 2023 14:58:34 +0200 Subject: [PATCH 142/154] upgrade to node18 in a backwards compatible way --- .circleci/config.yml | 4 +- .github/workflows/generate-sandboxes-main.yml | 2 +- .github/workflows/generate-sandboxes-next.yml | 2 +- .github/workflows/tests-unit.yml | 7 +- .nvmrc | 2 +- code/addons/interactions/package.json | 2 +- code/builders/builder-vite/package.json | 2 +- code/builders/builder-webpack5/package.json | 2 +- code/frameworks/angular/package.json | 2 +- code/frameworks/html-vite/package.json | 2 +- code/frameworks/html-webpack5/package.json | 2 +- code/frameworks/nextjs/package.json | 2 +- code/frameworks/preact-vite/package.json | 2 +- code/frameworks/preact-webpack5/package.json | 2 +- code/frameworks/react-vite/package.json | 2 +- code/frameworks/react-webpack5/package.json | 2 +- code/frameworks/server-webpack5/package.json | 2 +- code/frameworks/svelte-vite/package.json | 2 +- code/frameworks/sveltekit/package.json | 2 +- code/frameworks/vue-webpack5/package.json | 2 +- code/frameworks/vue3-vite/package.json | 2 +- code/frameworks/vue3-webpack5/package.json | 2 +- .../web-components-vite/package.json | 2 +- .../web-components-webpack5/package.json | 2 +- .../fixes/nodejs-requirement.test.ts | 5 ++ code/lib/cli/src/link.ts | 2 +- code/lib/core-common/package.json | 2 +- code/lib/core-server/package.json | 2 +- code/lib/core-webpack/package.json | 2 +- code/lib/theming/package.json | 2 +- code/lib/types/package.json | 2 +- code/package.json | 4 +- code/presets/create-react-app/package.json | 2 +- code/presets/html-webpack/package.json | 2 +- code/presets/preact-webpack/package.json | 2 +- code/presets/react-webpack/package.json | 2 +- code/presets/server-webpack/package.json | 2 +- code/presets/vue-webpack/package.json | 2 +- code/presets/vue3-webpack/package.json | 2 +- .../web-components-webpack/package.json | 2 +- code/renderers/react/package.json | 2 +- code/renderers/web-components/package.json | 2 +- code/yarn.lock | 78 +++++++++---------- .../test-runner-local-build-workflow.yml.mdx | 2 +- ...-runner-with-deploy-event-workflow.yml.mdx | 2 +- scripts/.babelrc.js | 2 +- scripts/package.json | 4 +- scripts/yarn.lock | 4 +- 48 files changed, 96 insertions(+), 92 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 617cdac42c28..9b03dd3739bc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,7 +17,7 @@ executors: default: 'small' working_directory: /tmp/storybook docker: - - image: cimg/node:16.20.0 + - image: cimg/node:18.18.0 environment: NODE_OPTIONS: --max_old_space_size=6144 resource_class: <> @@ -30,7 +30,7 @@ executors: default: 'small' working_directory: /tmp/storybook docker: - - image: cimg/node:16.20.0-browsers + - image: cimg/node:18.18.0-browsers environment: NODE_OPTIONS: --max_old_space_size=6144 resource_class: <> diff --git a/.github/workflows/generate-sandboxes-main.yml b/.github/workflows/generate-sandboxes-main.yml index 474542495848..a99b2288cf0c 100644 --- a/.github/workflows/generate-sandboxes-main.yml +++ b/.github/workflows/generate-sandboxes-main.yml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version: 16 + node-version-file: '.nvmrc' - uses: actions/checkout@v3 with: ref: main diff --git a/.github/workflows/generate-sandboxes-next.yml b/.github/workflows/generate-sandboxes-next.yml index c20f5491ef30..91515e0862e9 100644 --- a/.github/workflows/generate-sandboxes-next.yml +++ b/.github/workflows/generate-sandboxes-next.yml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version: 16 + node-version-file: '.nvmrc' - uses: actions/checkout@v3 with: ref: next diff --git a/.github/workflows/tests-unit.yml b/.github/workflows/tests-unit.yml index 6c355ec1714b..650d40d3ff10 100644 --- a/.github/workflows/tests-unit.yml +++ b/.github/workflows/tests-unit.yml @@ -9,19 +9,18 @@ on: jobs: build: - name: Core Unit Tests node-${{ matrix.node_version }}, ${{ matrix.os }} + name: Core Unit Tests, ${{ matrix.os }} strategy: fail-fast: false matrix: os: [windows-latest] - node_version: [16] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 - - name: Set node version to ${{ matrix.node_version }} + - name: Set node version uses: actions/setup-node@v3 with: - node-version: ${{ matrix.node_version }} + node-version-file: '.nvmrc' - name: install and compile run: yarn task --task compile --start-from=auto --no-link - name: test diff --git a/.nvmrc b/.nvmrc index 59ea99ee63cb..4a58985bb483 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -16.20 +18.18 diff --git a/code/addons/interactions/package.json b/code/addons/interactions/package.json index 76fc4f5e7357..963a4e19e142 100644 --- a/code/addons/interactions/package.json +++ b/code/addons/interactions/package.json @@ -91,7 +91,7 @@ "@devtools-ds/object-inspector": "^1.1.2", "@storybook/jest": "next", "@storybook/testing-library": "next", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "formik": "^2.2.9", "typescript": "~4.9.3" }, diff --git a/code/builders/builder-vite/package.json b/code/builders/builder-vite/package.json index c20a8164300c..c5faa0453b67 100644 --- a/code/builders/builder-vite/package.json +++ b/code/builders/builder-vite/package.json @@ -62,7 +62,7 @@ }, "devDependencies": { "@types/express": "^4.17.13", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "glob": "^10.0.0", "rollup": "^3.20.1", "slash": "^5.0.0", diff --git a/code/builders/builder-webpack5/package.json b/code/builders/builder-webpack5/package.json index 94933ce1d438..8662e84ff190 100644 --- a/code/builders/builder-webpack5/package.json +++ b/code/builders/builder-webpack5/package.json @@ -66,7 +66,7 @@ "@storybook/preview": "workspace:*", "@storybook/preview-api": "workspace:*", "@swc/core": "^1.3.82", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "@types/semver": "^7.3.4", "babel-loader": "^9.0.0", "babel-plugin-named-exports-order": "^0.0.2", diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json index 03d6fb7bf296..e51bd6912e00 100644 --- a/code/frameworks/angular/package.json +++ b/code/frameworks/angular/package.json @@ -51,7 +51,7 @@ "@storybook/preview-api": "workspace:*", "@storybook/telemetry": "workspace:*", "@storybook/types": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "@types/react": "^16.14.34", "@types/react-dom": "^16.9.14", "@types/semver": "^7.3.4", diff --git a/code/frameworks/html-vite/package.json b/code/frameworks/html-vite/package.json index 892adcbdb666..912bb381d147 100644 --- a/code/frameworks/html-vite/package.json +++ b/code/frameworks/html-vite/package.json @@ -57,7 +57,7 @@ "magic-string": "^0.30.0" }, "devDependencies": { - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "typescript": "~4.9.3" }, "engines": { diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json index 601565d96553..b7f8385597be 100644 --- a/code/frameworks/html-webpack5/package.json +++ b/code/frameworks/html-webpack5/package.json @@ -52,7 +52,7 @@ "@storybook/global": "^5.0.0", "@storybook/html": "workspace:*", "@storybook/preset-html-webpack": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.0.0" }, "devDependencies": { "typescript": "~4.9.3" diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index 8bf4f92136a2..33fd5427e83d 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -95,7 +95,7 @@ "@storybook/preset-react-webpack": "workspace:*", "@storybook/preview-api": "workspace:*", "@storybook/react": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "css-loader": "^6.7.3", "find-up": "^5.0.0", "fs-extra": "^11.1.0", diff --git a/code/frameworks/preact-vite/package.json b/code/frameworks/preact-vite/package.json index 1090b72af835..845adbbce1b6 100644 --- a/code/frameworks/preact-vite/package.json +++ b/code/frameworks/preact-vite/package.json @@ -52,7 +52,7 @@ "@storybook/preact": "workspace:*" }, "devDependencies": { - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "typescript": "~4.9.3", "vite": "^4.0.0" }, diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json index e719f43cd5ea..94d7855f70bd 100644 --- a/code/frameworks/preact-webpack5/package.json +++ b/code/frameworks/preact-webpack5/package.json @@ -51,7 +51,7 @@ "@storybook/core-common": "workspace:*", "@storybook/preact": "workspace:*", "@storybook/preset-preact-webpack": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.0.0" }, "devDependencies": { "preact": "^10.5.13", diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index 56f36bdc4505..d790ff016b9d 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -56,7 +56,7 @@ "react-docgen": "^6.0.2" }, "devDependencies": { - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "typescript": "~4.9.3", "vite": "^4.0.0" }, diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index 899296f95257..c2824a89292d 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -50,7 +50,7 @@ "@storybook/builder-webpack5": "workspace:*", "@storybook/preset-react-webpack": "workspace:*", "@storybook/react": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.0.0" }, "devDependencies": { "jest-specific-snapshot": "^8.0.0" diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index 01defb610f9e..2e45e7c5d356 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -51,7 +51,7 @@ "@storybook/core-common": "workspace:*", "@storybook/preset-server-webpack": "workspace:*", "@storybook/server": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.0.0" }, "devDependencies": { "typescript": "~4.9.3" diff --git a/code/frameworks/svelte-vite/package.json b/code/frameworks/svelte-vite/package.json index b5e71b75978f..9e98f5a68858 100644 --- a/code/frameworks/svelte-vite/package.json +++ b/code/frameworks/svelte-vite/package.json @@ -56,7 +56,7 @@ "ts-dedent": "^2.2.0" }, "devDependencies": { - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "svelte": "^4.0.0", "typescript": "~4.9.3", "vite": "^4.0.0" diff --git a/code/frameworks/sveltekit/package.json b/code/frameworks/sveltekit/package.json index 4e528dc944c9..99996c2ecb31 100644 --- a/code/frameworks/sveltekit/package.json +++ b/code/frameworks/sveltekit/package.json @@ -55,7 +55,7 @@ "@storybook/svelte-vite": "workspace:*" }, "devDependencies": { - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "typescript": "^4.9.3", "vite": "^4.0.0" }, diff --git a/code/frameworks/vue-webpack5/package.json b/code/frameworks/vue-webpack5/package.json index 979688d6e381..31cf2befa97e 100644 --- a/code/frameworks/vue-webpack5/package.json +++ b/code/frameworks/vue-webpack5/package.json @@ -51,7 +51,7 @@ "@storybook/core-common": "workspace:*", "@storybook/preset-vue-webpack": "workspace:*", "@storybook/vue": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.0.0" }, "devDependencies": { "typescript": "~4.9.3", diff --git a/code/frameworks/vue3-vite/package.json b/code/frameworks/vue3-vite/package.json index 432c782b0a04..cc70a2915a25 100644 --- a/code/frameworks/vue3-vite/package.json +++ b/code/frameworks/vue3-vite/package.json @@ -55,7 +55,7 @@ "vue-docgen-api": "^4.40.0" }, "devDependencies": { - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "typescript": "~4.9.3", "vite": "^4.0.0" }, diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json index 88830e05e559..aac61c51b0c3 100644 --- a/code/frameworks/vue3-webpack5/package.json +++ b/code/frameworks/vue3-webpack5/package.json @@ -51,7 +51,7 @@ "@storybook/core-common": "workspace:*", "@storybook/preset-vue3-webpack": "workspace:*", "@storybook/vue3": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.0.0" }, "devDependencies": { "@vue/compiler-sfc": "3.0.0", diff --git a/code/frameworks/web-components-vite/package.json b/code/frameworks/web-components-vite/package.json index 5f9104483890..89dcc86acac8 100644 --- a/code/frameworks/web-components-vite/package.json +++ b/code/frameworks/web-components-vite/package.json @@ -54,7 +54,7 @@ "magic-string": "^0.30.0" }, "devDependencies": { - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "typescript": "~4.9.3" }, "peerDependencies": { diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json index a7c172a70388..5301efc1a31d 100644 --- a/code/frameworks/web-components-webpack5/package.json +++ b/code/frameworks/web-components-webpack5/package.json @@ -55,7 +55,7 @@ "@storybook/core-common": "workspace:*", "@storybook/preset-web-components-webpack": "workspace:*", "@storybook/web-components": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.0.0" }, "devDependencies": { "lit": "2.3.1", diff --git a/code/lib/cli/src/automigrate/fixes/nodejs-requirement.test.ts b/code/lib/cli/src/automigrate/fixes/nodejs-requirement.test.ts index d86b266b6081..721aa49772c7 100644 --- a/code/lib/cli/src/automigrate/fixes/nodejs-requirement.test.ts +++ b/code/lib/cli/src/automigrate/fixes/nodejs-requirement.test.ts @@ -38,6 +38,11 @@ describe('nodejs-requirement fix', () => { await expect(check({})).resolves.toBeNull(); }); + it('skips when node >= 18.0.0', async () => { + mockNodeVersion('18.0.0'); + await expect(check({})).resolves.toBeNull(); + }); + it('prompts when node <= 16.0.0', async () => { mockNodeVersion('14.0.0'); await expect(check({})).resolves.toEqual({ nodeVersion: '14.0.0' }); diff --git a/code/lib/cli/src/link.ts b/code/lib/cli/src/link.ts index 3a61eb02a147..b00b04b8035e 100644 --- a/code/lib/cli/src/link.ts +++ b/code/lib/cli/src/link.ts @@ -105,7 +105,7 @@ export const link = async ({ target, local, start }: LinkOptions) => { } // ensure that linking is possible - await exec(`yarn add @types/node@16`, { cwd: reproDir }); + await exec(`yarn add @types/node@18`, { cwd: reproDir }); if (start) { logger.info(`Running ${reproName} storybook`); diff --git a/code/lib/core-common/package.json b/code/lib/core-common/package.json index 4b7d3e777fd5..aca8375d84f2 100644 --- a/code/lib/core-common/package.json +++ b/code/lib/core-common/package.json @@ -48,7 +48,7 @@ "@storybook/node-logger": "workspace:*", "@storybook/types": "workspace:*", "@types/find-cache-dir": "^3.2.1", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "@types/node-fetch": "^2.6.4", "@types/pretty-hrtime": "^1.0.0", "chalk": "^4.1.0", diff --git a/code/lib/core-server/package.json b/code/lib/core-server/package.json index cb7a42f3f07a..ad893185ea12 100644 --- a/code/lib/core-server/package.json +++ b/code/lib/core-server/package.json @@ -76,7 +76,7 @@ "@storybook/telemetry": "workspace:*", "@storybook/types": "workspace:*", "@types/detect-port": "^1.3.0", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "@types/pretty-hrtime": "^1.0.0", "@types/semver": "^7.3.4", "better-opn": "^3.0.2", diff --git a/code/lib/core-webpack/package.json b/code/lib/core-webpack/package.json index d621ab88b06d..04497fd2cba7 100644 --- a/code/lib/core-webpack/package.json +++ b/code/lib/core-webpack/package.json @@ -47,7 +47,7 @@ "@storybook/core-common": "workspace:*", "@storybook/node-logger": "workspace:*", "@storybook/types": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "ts-dedent": "^2.0.0" }, "devDependencies": { diff --git a/code/lib/theming/package.json b/code/lib/theming/package.json index 4b4c29614b0d..40d9e5d6e435 100644 --- a/code/lib/theming/package.json +++ b/code/lib/theming/package.json @@ -60,7 +60,7 @@ "@emotion/react": "^11.10.4", "@emotion/styled": "^11.10.4", "@types/fs-extra": "^11.0.1", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "deep-object-diff": "^1.1.0", "fs-extra": "^11.1.0", "polished": "^4.2.2", diff --git a/code/lib/types/package.json b/code/lib/types/package.json index 263c3d7fcc79..37269a233f3b 100644 --- a/code/lib/types/package.json +++ b/code/lib/types/package.json @@ -52,7 +52,7 @@ "devDependencies": { "@storybook/csf": "^0.1.0", "@types/fs-extra": "^11.0.1", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "typescript": "~4.9.3" }, "publishConfig": { diff --git a/code/package.json b/code/package.json index 2cbba9109ae0..53dbc4866166 100644 --- a/code/package.json +++ b/code/package.json @@ -205,7 +205,7 @@ "@types/express": "^4.17.11", "@types/fs-extra": "^11.0.1", "@types/lodash": "^4.14.167", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "@types/react": "^16.14.34", "@types/react-dom": "^16.9.14", "@types/semver": "^7.3.4", @@ -288,7 +288,7 @@ }, "packageManager": "yarn@3.5.1", "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" }, "collective": { "type": "opencollective", diff --git a/code/presets/create-react-app/package.json b/code/presets/create-react-app/package.json index 1fb9244d2b41..65cb01397b35 100644 --- a/code/presets/create-react-app/package.json +++ b/code/presets/create-react-app/package.json @@ -59,7 +59,7 @@ }, "devDependencies": { "@storybook/node-logger": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "typescript": "~4.9.3" }, "peerDependencies": { diff --git a/code/presets/html-webpack/package.json b/code/presets/html-webpack/package.json index 326f623663b9..9a60a82aaa59 100644 --- a/code/presets/html-webpack/package.json +++ b/code/presets/html-webpack/package.json @@ -50,7 +50,7 @@ }, "dependencies": { "@storybook/core-webpack": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "html-loader": "^3.1.0", "webpack": "5" }, diff --git a/code/presets/preact-webpack/package.json b/code/presets/preact-webpack/package.json index 3894f3c84696..39ee253465c2 100644 --- a/code/presets/preact-webpack/package.json +++ b/code/presets/preact-webpack/package.json @@ -52,7 +52,7 @@ "@babel/plugin-transform-react-jsx": "^7.22.5", "@babel/preset-typescript": "^7.22.5", "@storybook/core-webpack": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.0.0" }, "devDependencies": { "preact": "^10.5.13", diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json index 4471b944e093..332896742991 100644 --- a/code/presets/react-webpack/package.json +++ b/code/presets/react-webpack/package.json @@ -72,7 +72,7 @@ "@storybook/node-logger": "workspace:*", "@storybook/react": "workspace:*", "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "@types/semver": "^7.3.4", "babel-plugin-add-react-displayname": "^0.0.5", "babel-plugin-react-docgen": "^4.2.1", diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json index 13da8091ab46..38b7a4dd53cb 100644 --- a/code/presets/server-webpack/package.json +++ b/code/presets/server-webpack/package.json @@ -58,7 +58,7 @@ "@storybook/core-webpack": "workspace:*", "@storybook/global": "^5.0.0", "@storybook/server": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "safe-identifier": "^0.4.1", "ts-dedent": "^2.0.0", "yaml-loader": "^0.8.0" diff --git a/code/presets/vue-webpack/package.json b/code/presets/vue-webpack/package.json index 0aaf1b2b48f1..08c244e55b28 100644 --- a/code/presets/vue-webpack/package.json +++ b/code/presets/vue-webpack/package.json @@ -61,7 +61,7 @@ "dependencies": { "@storybook/core-webpack": "workspace:*", "@storybook/docs-tools": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "ts-loader": "^9.2.8", "vue-docgen-api": "^4.44.23", "vue-docgen-loader": "^1.5.1", diff --git a/code/presets/vue3-webpack/package.json b/code/presets/vue3-webpack/package.json index 8368d0f7f1a8..6b2dcaf62b63 100644 --- a/code/presets/vue3-webpack/package.json +++ b/code/presets/vue3-webpack/package.json @@ -61,7 +61,7 @@ "dependencies": { "@storybook/core-webpack": "workspace:*", "@storybook/docs-tools": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "ts-loader": "^9.2.8", "vue-docgen-api": "^4.46.0", "vue-docgen-loader": "^1.5.1", diff --git a/code/presets/web-components-webpack/package.json b/code/presets/web-components-webpack/package.json index 29cca0ef340d..26ef2710ab56 100644 --- a/code/presets/web-components-webpack/package.json +++ b/code/presets/web-components-webpack/package.json @@ -56,7 +56,7 @@ "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/preset-env": "^7.22.9", "@storybook/core-webpack": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "babel-loader": "^7.0.0 || ^8.0.0 || ^9.0.0", "babel-plugin-bundled-import-meta": "^0.3.1" }, diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json index 2bfe26f1b76b..6578d02d65fc 100644 --- a/code/renderers/react/package.json +++ b/code/renderers/react/package.json @@ -62,7 +62,7 @@ "@storybook/types": "workspace:*", "@types/escodegen": "^0.0.6", "@types/estree": "^0.0.51", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "acorn": "^7.4.1", "acorn-jsx": "^5.3.1", "acorn-walk": "^7.2.0", diff --git a/code/renderers/web-components/package.json b/code/renderers/web-components/package.json index 1a857d6a2880..577bd14559c1 100644 --- a/code/renderers/web-components/package.json +++ b/code/renderers/web-components/package.json @@ -64,7 +64,7 @@ }, "devDependencies": { "@types/cross-spawn": "^6.0.2", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "cross-spawn": "^7.0.3", "lit": "2.3.1", "typescript": "~4.9.3", diff --git a/code/yarn.lock b/code/yarn.lock index 3c200a7a8a38..a758346ffb19 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6001,7 +6001,7 @@ __metadata: "@storybook/testing-library": next "@storybook/theming": "workspace:*" "@storybook/types": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 formik: ^2.2.9 jest-mock: ^27.0.6 polished: ^4.2.2 @@ -6383,7 +6383,7 @@ __metadata: "@storybook/telemetry": "workspace:*" "@storybook/types": "workspace:*" "@types/cross-spawn": ^6.0.2 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 "@types/react": ^16.14.34 "@types/react-dom": ^16.9.14 "@types/semver": ^7.3.4 @@ -6551,7 +6551,7 @@ __metadata: "@storybook/types": "workspace:*" "@types/express": ^4.17.13 "@types/find-cache-dir": ^3.2.1 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 browser-assert: ^1.2.1 es-module-lexer: ^0.9.3 express: ^4.17.3 @@ -6592,7 +6592,7 @@ __metadata: "@storybook/preview": "workspace:*" "@storybook/preview-api": "workspace:*" "@swc/core": ^1.3.82 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 "@types/pretty-hrtime": ^1.0.0 "@types/semver": ^7.3.4 "@types/terser-webpack-plugin": ^5.2.0 @@ -6840,7 +6840,7 @@ __metadata: "@types/find-cache-dir": ^3.2.1 "@types/fs-extra": ^11.0.1 "@types/mock-fs": ^4.13.1 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 "@types/node-fetch": ^2.6.4 "@types/picomatch": ^2.3.0 "@types/pretty-hrtime": ^1.0.0 @@ -6899,7 +6899,7 @@ __metadata: "@types/compression": ^1.7.0 "@types/detect-port": ^1.3.0 "@types/ip": ^1.1.0 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 "@types/node-fetch": ^2.5.7 "@types/pretty-hrtime": ^1.0.0 "@types/semver": ^7.3.4 @@ -6942,7 +6942,7 @@ __metadata: "@storybook/core-common": "workspace:*" "@storybook/node-logger": "workspace:*" "@storybook/types": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 ts-dedent: ^2.0.0 typescript: ~4.9.3 webpack: 5 @@ -7107,7 +7107,7 @@ __metadata: "@storybook/html": "workspace:*" "@storybook/node-logger": "workspace:*" "@storybook/preview-web": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 magic-string: ^0.30.0 typescript: ~4.9.3 languageName: unknown @@ -7122,7 +7122,7 @@ __metadata: "@storybook/global": ^5.0.0 "@storybook/html": "workspace:*" "@storybook/preset-html-webpack": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 typescript: ~4.9.3 peerDependencies: "@babel/core": "*" @@ -7317,7 +7317,7 @@ __metadata: "@types/babel__core": ^7 "@types/babel__plugin-transform-runtime": ^7 "@types/babel__preset-env": ^7 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 css-loader: ^6.7.3 find-up: ^5.0.0 fs-extra: ^11.1.0 @@ -7387,7 +7387,7 @@ __metadata: "@preact/preset-vite": ^2.0.0 "@storybook/builder-vite": "workspace:*" "@storybook/preact": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 typescript: ~4.9.3 vite: ^4.0.0 peerDependencies: @@ -7404,7 +7404,7 @@ __metadata: "@storybook/core-common": "workspace:*" "@storybook/preact": "workspace:*" "@storybook/preset-preact-webpack": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 preact: ^10.5.13 typescript: ~4.9.3 peerDependencies: @@ -7440,7 +7440,7 @@ __metadata: "@storybook/react-docgen-typescript-plugin": 1.0.6--canary.9.0c3f3b7.0 "@storybook/types": "workspace:*" "@types/babel__core": ^7.1.7 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 babel-plugin-react-docgen: ^4.1.0 pnp-webpack-plugin: ^1.7.0 semver: ^7.3.5 @@ -7456,7 +7456,7 @@ __metadata: resolution: "@storybook/preset-html-webpack@workspace:presets/html-webpack" dependencies: "@storybook/core-webpack": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 html-loader: ^3.1.0 typescript: ~4.9.3 webpack: 5 @@ -7472,7 +7472,7 @@ __metadata: "@babel/plugin-transform-react-jsx": ^7.22.5 "@babel/preset-typescript": ^7.22.5 "@storybook/core-webpack": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 preact: ^10.5.13 typescript: ~4.9.3 peerDependencies: @@ -7493,7 +7493,7 @@ __metadata: "@storybook/node-logger": "workspace:*" "@storybook/react": "workspace:*" "@storybook/react-docgen-typescript-plugin": 1.0.6--canary.9.0c3f3b7.0 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 "@types/semver": ^7.3.4 babel-plugin-add-react-displayname: ^0.0.5 babel-plugin-react-docgen: ^4.2.1 @@ -7522,7 +7522,7 @@ __metadata: "@storybook/core-webpack": "workspace:*" "@storybook/global": ^5.0.0 "@storybook/server": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 fs-extra: ^11.1.0 jest-specific-snapshot: ^8.0.0 safe-identifier: ^0.4.1 @@ -7557,7 +7557,7 @@ __metadata: dependencies: "@storybook/core-webpack": "workspace:*" "@storybook/docs-tools": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 ts-loader: ^9.2.8 typescript: ~4.9.3 vue: ^2.6.12 @@ -7582,7 +7582,7 @@ __metadata: dependencies: "@storybook/core-webpack": "workspace:*" "@storybook/docs-tools": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 "@vue/compiler-sfc": ^3.2.33 ts-loader: ^9.2.8 typescript: ~4.9.3 @@ -7607,7 +7607,7 @@ __metadata: "@babel/plugin-syntax-import-meta": ^7.10.4 "@babel/preset-env": ^7.22.9 "@storybook/core-webpack": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 babel-loader: ^7.0.0 || ^8.0.0 || ^9.0.0 babel-plugin-bundled-import-meta: ^0.3.1 lit: 2.3.1 @@ -7704,7 +7704,7 @@ __metadata: "@rollup/pluginutils": ^5.0.2 "@storybook/builder-vite": "workspace:*" "@storybook/react": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 "@vitejs/plugin-react": ^3.0.1 magic-string: ^0.30.0 react-docgen: ^6.0.2 @@ -7724,7 +7724,7 @@ __metadata: "@storybook/builder-webpack5": "workspace:*" "@storybook/preset-react-webpack": "workspace:*" "@storybook/react": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 jest-specific-snapshot: ^8.0.0 peerDependencies: "@babel/core": ^7.22.0 @@ -7753,7 +7753,7 @@ __metadata: "@storybook/types": "workspace:*" "@types/escodegen": ^0.0.6 "@types/estree": ^0.0.51 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 "@types/util-deprecate": ^1.0.0 acorn: ^7.4.1 acorn-jsx: ^5.3.1 @@ -7896,7 +7896,7 @@ __metadata: "@types/express": ^4.17.11 "@types/fs-extra": ^11.0.1 "@types/lodash": ^4.14.167 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 "@types/react": ^16.14.34 "@types/react-dom": ^16.9.14 "@types/semver": ^7.3.4 @@ -7998,7 +7998,7 @@ __metadata: "@storybook/core-common": "workspace:*" "@storybook/preset-server-webpack": "workspace:*" "@storybook/server": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 typescript: ~4.9.3 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -8058,7 +8058,7 @@ __metadata: "@storybook/node-logger": "workspace:*" "@storybook/svelte": "workspace:*" "@sveltejs/vite-plugin-svelte": ^2.4.2 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 magic-string: ^0.30.0 svelte: ^4.0.0 sveltedoc-parser: ^4.2.1 @@ -8120,7 +8120,7 @@ __metadata: "@storybook/builder-vite": "workspace:*" "@storybook/svelte": "workspace:*" "@storybook/svelte-vite": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 typescript: ^4.9.3 vite: ^4.0.0 peerDependencies: @@ -8185,7 +8185,7 @@ __metadata: "@storybook/client-logger": "workspace:*" "@storybook/global": ^5.0.0 "@types/fs-extra": ^11.0.1 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 deep-object-diff: ^1.1.0 fs-extra: ^11.1.0 memoizerific: ^1.11.3 @@ -8207,7 +8207,7 @@ __metadata: "@types/babel__core": ^7.0.0 "@types/express": ^4.7.0 "@types/fs-extra": ^11.0.1 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 file-system-cache: 2.3.0 typescript: ~4.9.3 languageName: unknown @@ -8242,7 +8242,7 @@ __metadata: "@storybook/core-common": "workspace:*" "@storybook/preset-vue-webpack": "workspace:*" "@storybook/vue": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 typescript: ~4.9.3 vue: ^2.6.12 vue-loader: ^15.7.0 @@ -8266,7 +8266,7 @@ __metadata: "@storybook/builder-vite": "workspace:*" "@storybook/core-server": "workspace:*" "@storybook/vue3": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 "@vitejs/plugin-vue": ^4.0.0 magic-string: ^0.30.0 typescript: ~4.9.3 @@ -8287,7 +8287,7 @@ __metadata: "@storybook/core-common": "workspace:*" "@storybook/preset-vue3-webpack": "workspace:*" "@storybook/vue3": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 "@vue/compiler-sfc": 3.0.0 typescript: ~4.9.3 vue: 3.0.0 @@ -8361,7 +8361,7 @@ __metadata: "@storybook/core-server": "workspace:*" "@storybook/node-logger": "workspace:*" "@storybook/web-components": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 magic-string: ^0.30.0 typescript: ~4.9.3 peerDependencies: @@ -8379,7 +8379,7 @@ __metadata: "@storybook/core-common": "workspace:*" "@storybook/preset-web-components-webpack": "workspace:*" "@storybook/web-components": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 lit: 2.3.1 typescript: ~4.9.3 peerDependencies: @@ -8401,7 +8401,7 @@ __metadata: "@storybook/preview-api": "workspace:*" "@storybook/types": "workspace:*" "@types/cross-spawn": ^6.0.2 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 cross-spawn: ^7.0.3 lit: 2.3.1 tiny-invariant: ^1.3.1 @@ -9501,10 +9501,10 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^16.0.0": - version: 16.18.57 - resolution: "@types/node@npm:16.18.57" - checksum: 191cfb12fde8c882f1d982a07302f7b87cda7b93ec227b0607f908f3b3b11c5ff96bbed613f370818ea60a8a98140962b193324bdadff679bd5ca75d04407e60 +"@types/node@npm:^18.0.0": + version: 18.18.4 + resolution: "@types/node@npm:18.18.4" + checksum: 17891f8b8fd107813eaea0dce58d2008173f3c90df4f5998da3d01d6b225e9908922156ac83240b0230d3813f1a29b5f7e065a2aa993285af062e3a3779f88dd languageName: node linkType: hard diff --git a/docs/snippets/common/test-runner-local-build-workflow.yml.mdx b/docs/snippets/common/test-runner-local-build-workflow.yml.mdx index 000ccf44ba14..40443a0e7f67 100644 --- a/docs/snippets/common/test-runner-local-build-workflow.yml.mdx +++ b/docs/snippets/common/test-runner-local-build-workflow.yml.mdx @@ -11,7 +11,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: - node-version: '16.x' + node-version-file: '.nvmrc' - name: Install dependencies run: yarn - name: Install Playwright diff --git a/docs/snippets/common/test-runner-with-deploy-event-workflow.yml.mdx b/docs/snippets/common/test-runner-with-deploy-event-workflow.yml.mdx index ff965af6f45d..b79f70920e43 100644 --- a/docs/snippets/common/test-runner-with-deploy-event-workflow.yml.mdx +++ b/docs/snippets/common/test-runner-with-deploy-event-workflow.yml.mdx @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: - node-version: '16.x' + node-version-file: '.nvmrc' - name: Install dependencies run: yarn - name: Install Playwright diff --git a/scripts/.babelrc.js b/scripts/.babelrc.js index 508d8180dc10..31016fd42625 100644 --- a/scripts/.babelrc.js +++ b/scripts/.babelrc.js @@ -9,7 +9,7 @@ module.exports = { shippedProposals: true, useBuiltIns: 'usage', corejs: '3', - targets: { node: '16' }, + targets: { node: '18' }, }, ], ], diff --git a/scripts/package.json b/scripts/package.json index f220b8f88742..b6020c436390 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -93,7 +93,7 @@ "@types/fs-extra": "^11.0.1", "@types/http-server": "^0.12.1", "@types/lodash": "^4", - "@types/node": "^16.0.0", + "@types/node": "^18.0.0", "@types/node-fetch": "^2.5.7", "@types/prettier": "^2", "@types/pretty-hrtime": "^1.0.0", @@ -203,6 +203,6 @@ }, "packageManager": "yarn@3.3.0", "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" } } diff --git a/scripts/yarn.lock b/scripts/yarn.lock index f9d17fe543a8..504a13091f02 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -2970,7 +2970,7 @@ __metadata: "@types/fs-extra": ^11.0.1 "@types/http-server": ^0.12.1 "@types/lodash": ^4 - "@types/node": ^16.0.0 + "@types/node": ^18.0.0 "@types/node-fetch": ^2.5.7 "@types/prettier": ^2 "@types/pretty-hrtime": ^1.0.0 @@ -3711,7 +3711,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>= 8, @types/node@npm:^16.0.0": +"@types/node@npm:*, @types/node@npm:>= 8": version: 16.18.50 resolution: "@types/node@npm:16.18.50" checksum: 4fc76918cc4e09d6cf087b385a1e2283580b1a88518f309764365cbdbdc28cdf48a77a5615ac4ce28dccee078b3da79442a032cc8aa312406943754144938cdb From e9313b7bc592a3de5cf27c6bd3aef2f958d310cc Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Mon, 9 Oct 2023 14:43:30 +0200 Subject: [PATCH 143/154] Update CI to Node.js v18 --- .circleci/config.yml | 4 ++-- .github/workflows/generate-sandboxes-main.yml | 2 +- .github/workflows/generate-sandboxes-next.yml | 2 +- .nvmrc | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 617cdac42c28..9b03dd3739bc 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -17,7 +17,7 @@ executors: default: 'small' working_directory: /tmp/storybook docker: - - image: cimg/node:16.20.0 + - image: cimg/node:18.18.0 environment: NODE_OPTIONS: --max_old_space_size=6144 resource_class: <> @@ -30,7 +30,7 @@ executors: default: 'small' working_directory: /tmp/storybook docker: - - image: cimg/node:16.20.0-browsers + - image: cimg/node:18.18.0-browsers environment: NODE_OPTIONS: --max_old_space_size=6144 resource_class: <> diff --git a/.github/workflows/generate-sandboxes-main.yml b/.github/workflows/generate-sandboxes-main.yml index 474542495848..47205b3dbe25 100644 --- a/.github/workflows/generate-sandboxes-main.yml +++ b/.github/workflows/generate-sandboxes-main.yml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - uses: actions/checkout@v3 with: ref: main diff --git a/.github/workflows/generate-sandboxes-next.yml b/.github/workflows/generate-sandboxes-next.yml index c20f5491ef30..6eece02f06bd 100644 --- a/.github/workflows/generate-sandboxes-next.yml +++ b/.github/workflows/generate-sandboxes-next.yml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18 - uses: actions/checkout@v3 with: ref: next diff --git a/.nvmrc b/.nvmrc index 59ea99ee63cb..4a58985bb483 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -16.20 +18.18 From 483eb52d0f2489f79b756dba3403446a298496ae Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Tue, 10 Oct 2023 14:29:38 +0200 Subject: [PATCH 144/154] Update @types/node to v18 --- code/addons/interactions/package.json | 2 +- code/builders/builder-vite/package.json | 2 +- code/builders/builder-webpack5/package.json | 2 +- code/frameworks/angular/package.json | 2 +- code/frameworks/html-vite/package.json | 2 +- code/frameworks/html-webpack5/package.json | 2 +- code/frameworks/nextjs/package.json | 2 +- code/frameworks/preact-vite/package.json | 2 +- code/frameworks/preact-webpack5/package.json | 2 +- code/frameworks/react-vite/package.json | 2 +- code/frameworks/react-webpack5/package.json | 2 +- code/frameworks/server-webpack5/package.json | 2 +- code/frameworks/svelte-vite/package.json | 2 +- code/frameworks/sveltekit/package.json | 2 +- code/frameworks/vue-webpack5/package.json | 2 +- code/frameworks/vue3-vite/package.json | 2 +- code/frameworks/vue3-webpack5/package.json | 2 +- .../web-components-vite/package.json | 2 +- .../web-components-webpack5/package.json | 2 +- code/lib/core-common/package.json | 2 +- code/lib/core-server/package.json | 2 +- code/lib/core-webpack/package.json | 2 +- code/lib/theming/package.json | 2 +- code/lib/types/package.json | 2 +- code/package.json | 2 +- code/presets/create-react-app/package.json | 2 +- code/presets/html-webpack/package.json | 2 +- code/presets/preact-webpack/package.json | 2 +- code/presets/react-webpack/package.json | 2 +- code/presets/server-webpack/package.json | 2 +- code/presets/vue-webpack/package.json | 2 +- code/presets/vue3-webpack/package.json | 2 +- .../web-components-webpack/package.json | 2 +- code/renderers/react/package.json | 2 +- code/renderers/web-components/package.json | 2 +- code/yarn.lock | 78 +++++++++---------- scripts/package.json | 2 +- scripts/yarn.lock | 11 ++- 38 files changed, 84 insertions(+), 77 deletions(-) diff --git a/code/addons/interactions/package.json b/code/addons/interactions/package.json index 76fc4f5e7357..fde2a50cdd5f 100644 --- a/code/addons/interactions/package.json +++ b/code/addons/interactions/package.json @@ -91,7 +91,7 @@ "@devtools-ds/object-inspector": "^1.1.2", "@storybook/jest": "next", "@storybook/testing-library": "next", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "formik": "^2.2.9", "typescript": "~4.9.3" }, diff --git a/code/builders/builder-vite/package.json b/code/builders/builder-vite/package.json index c20a8164300c..9b9b44449b5f 100644 --- a/code/builders/builder-vite/package.json +++ b/code/builders/builder-vite/package.json @@ -62,7 +62,7 @@ }, "devDependencies": { "@types/express": "^4.17.13", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "glob": "^10.0.0", "rollup": "^3.20.1", "slash": "^5.0.0", diff --git a/code/builders/builder-webpack5/package.json b/code/builders/builder-webpack5/package.json index 94933ce1d438..6cecabe57914 100644 --- a/code/builders/builder-webpack5/package.json +++ b/code/builders/builder-webpack5/package.json @@ -66,7 +66,7 @@ "@storybook/preview": "workspace:*", "@storybook/preview-api": "workspace:*", "@swc/core": "^1.3.82", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "@types/semver": "^7.3.4", "babel-loader": "^9.0.0", "babel-plugin-named-exports-order": "^0.0.2", diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json index 03d6fb7bf296..59b99ec12e19 100644 --- a/code/frameworks/angular/package.json +++ b/code/frameworks/angular/package.json @@ -51,7 +51,7 @@ "@storybook/preview-api": "workspace:*", "@storybook/telemetry": "workspace:*", "@storybook/types": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "@types/react": "^16.14.34", "@types/react-dom": "^16.9.14", "@types/semver": "^7.3.4", diff --git a/code/frameworks/html-vite/package.json b/code/frameworks/html-vite/package.json index 892adcbdb666..9d55fcceeb81 100644 --- a/code/frameworks/html-vite/package.json +++ b/code/frameworks/html-vite/package.json @@ -57,7 +57,7 @@ "magic-string": "^0.30.0" }, "devDependencies": { - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "typescript": "~4.9.3" }, "engines": { diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json index 601565d96553..ac184328399e 100644 --- a/code/frameworks/html-webpack5/package.json +++ b/code/frameworks/html-webpack5/package.json @@ -52,7 +52,7 @@ "@storybook/global": "^5.0.0", "@storybook/html": "workspace:*", "@storybook/preset-html-webpack": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.18.4" }, "devDependencies": { "typescript": "~4.9.3" diff --git a/code/frameworks/nextjs/package.json b/code/frameworks/nextjs/package.json index 8bf4f92136a2..f1ff36a58826 100644 --- a/code/frameworks/nextjs/package.json +++ b/code/frameworks/nextjs/package.json @@ -95,7 +95,7 @@ "@storybook/preset-react-webpack": "workspace:*", "@storybook/preview-api": "workspace:*", "@storybook/react": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "css-loader": "^6.7.3", "find-up": "^5.0.0", "fs-extra": "^11.1.0", diff --git a/code/frameworks/preact-vite/package.json b/code/frameworks/preact-vite/package.json index 1090b72af835..42536eb5d979 100644 --- a/code/frameworks/preact-vite/package.json +++ b/code/frameworks/preact-vite/package.json @@ -52,7 +52,7 @@ "@storybook/preact": "workspace:*" }, "devDependencies": { - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "typescript": "~4.9.3", "vite": "^4.0.0" }, diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json index e719f43cd5ea..d59183863347 100644 --- a/code/frameworks/preact-webpack5/package.json +++ b/code/frameworks/preact-webpack5/package.json @@ -51,7 +51,7 @@ "@storybook/core-common": "workspace:*", "@storybook/preact": "workspace:*", "@storybook/preset-preact-webpack": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.18.4" }, "devDependencies": { "preact": "^10.5.13", diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index 56f36bdc4505..55cb89beb3a3 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -56,7 +56,7 @@ "react-docgen": "^6.0.2" }, "devDependencies": { - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "typescript": "~4.9.3", "vite": "^4.0.0" }, diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index 899296f95257..d8f921cd6a76 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -50,7 +50,7 @@ "@storybook/builder-webpack5": "workspace:*", "@storybook/preset-react-webpack": "workspace:*", "@storybook/react": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.18.4" }, "devDependencies": { "jest-specific-snapshot": "^8.0.0" diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index 01defb610f9e..5daa202b0577 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -51,7 +51,7 @@ "@storybook/core-common": "workspace:*", "@storybook/preset-server-webpack": "workspace:*", "@storybook/server": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.18.4" }, "devDependencies": { "typescript": "~4.9.3" diff --git a/code/frameworks/svelte-vite/package.json b/code/frameworks/svelte-vite/package.json index b5e71b75978f..869f223ddbf0 100644 --- a/code/frameworks/svelte-vite/package.json +++ b/code/frameworks/svelte-vite/package.json @@ -56,7 +56,7 @@ "ts-dedent": "^2.2.0" }, "devDependencies": { - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "svelte": "^4.0.0", "typescript": "~4.9.3", "vite": "^4.0.0" diff --git a/code/frameworks/sveltekit/package.json b/code/frameworks/sveltekit/package.json index 4e528dc944c9..9c5fe6acdb41 100644 --- a/code/frameworks/sveltekit/package.json +++ b/code/frameworks/sveltekit/package.json @@ -55,7 +55,7 @@ "@storybook/svelte-vite": "workspace:*" }, "devDependencies": { - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "typescript": "^4.9.3", "vite": "^4.0.0" }, diff --git a/code/frameworks/vue-webpack5/package.json b/code/frameworks/vue-webpack5/package.json index 979688d6e381..a168129d3d6d 100644 --- a/code/frameworks/vue-webpack5/package.json +++ b/code/frameworks/vue-webpack5/package.json @@ -51,7 +51,7 @@ "@storybook/core-common": "workspace:*", "@storybook/preset-vue-webpack": "workspace:*", "@storybook/vue": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.18.4" }, "devDependencies": { "typescript": "~4.9.3", diff --git a/code/frameworks/vue3-vite/package.json b/code/frameworks/vue3-vite/package.json index 432c782b0a04..10158be769f1 100644 --- a/code/frameworks/vue3-vite/package.json +++ b/code/frameworks/vue3-vite/package.json @@ -55,7 +55,7 @@ "vue-docgen-api": "^4.40.0" }, "devDependencies": { - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "typescript": "~4.9.3", "vite": "^4.0.0" }, diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json index 88830e05e559..508a65edf3fc 100644 --- a/code/frameworks/vue3-webpack5/package.json +++ b/code/frameworks/vue3-webpack5/package.json @@ -51,7 +51,7 @@ "@storybook/core-common": "workspace:*", "@storybook/preset-vue3-webpack": "workspace:*", "@storybook/vue3": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.18.4" }, "devDependencies": { "@vue/compiler-sfc": "3.0.0", diff --git a/code/frameworks/web-components-vite/package.json b/code/frameworks/web-components-vite/package.json index 5f9104483890..05f79bea4f20 100644 --- a/code/frameworks/web-components-vite/package.json +++ b/code/frameworks/web-components-vite/package.json @@ -54,7 +54,7 @@ "magic-string": "^0.30.0" }, "devDependencies": { - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "typescript": "~4.9.3" }, "peerDependencies": { diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json index a7c172a70388..301eac71d572 100644 --- a/code/frameworks/web-components-webpack5/package.json +++ b/code/frameworks/web-components-webpack5/package.json @@ -55,7 +55,7 @@ "@storybook/core-common": "workspace:*", "@storybook/preset-web-components-webpack": "workspace:*", "@storybook/web-components": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.18.4" }, "devDependencies": { "lit": "2.3.1", diff --git a/code/lib/core-common/package.json b/code/lib/core-common/package.json index 4b7d3e777fd5..deb1511aff15 100644 --- a/code/lib/core-common/package.json +++ b/code/lib/core-common/package.json @@ -48,7 +48,7 @@ "@storybook/node-logger": "workspace:*", "@storybook/types": "workspace:*", "@types/find-cache-dir": "^3.2.1", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "@types/node-fetch": "^2.6.4", "@types/pretty-hrtime": "^1.0.0", "chalk": "^4.1.0", diff --git a/code/lib/core-server/package.json b/code/lib/core-server/package.json index cb7a42f3f07a..c43885ee61da 100644 --- a/code/lib/core-server/package.json +++ b/code/lib/core-server/package.json @@ -76,7 +76,7 @@ "@storybook/telemetry": "workspace:*", "@storybook/types": "workspace:*", "@types/detect-port": "^1.3.0", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "@types/pretty-hrtime": "^1.0.0", "@types/semver": "^7.3.4", "better-opn": "^3.0.2", diff --git a/code/lib/core-webpack/package.json b/code/lib/core-webpack/package.json index d621ab88b06d..2963a2fa4c72 100644 --- a/code/lib/core-webpack/package.json +++ b/code/lib/core-webpack/package.json @@ -47,7 +47,7 @@ "@storybook/core-common": "workspace:*", "@storybook/node-logger": "workspace:*", "@storybook/types": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "ts-dedent": "^2.0.0" }, "devDependencies": { diff --git a/code/lib/theming/package.json b/code/lib/theming/package.json index 4b4c29614b0d..c1a3567ceb08 100644 --- a/code/lib/theming/package.json +++ b/code/lib/theming/package.json @@ -60,7 +60,7 @@ "@emotion/react": "^11.10.4", "@emotion/styled": "^11.10.4", "@types/fs-extra": "^11.0.1", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "deep-object-diff": "^1.1.0", "fs-extra": "^11.1.0", "polished": "^4.2.2", diff --git a/code/lib/types/package.json b/code/lib/types/package.json index 263c3d7fcc79..0c5b0813ba52 100644 --- a/code/lib/types/package.json +++ b/code/lib/types/package.json @@ -52,7 +52,7 @@ "devDependencies": { "@storybook/csf": "^0.1.0", "@types/fs-extra": "^11.0.1", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "typescript": "~4.9.3" }, "publishConfig": { diff --git a/code/package.json b/code/package.json index 2cbba9109ae0..6223c221a3d4 100644 --- a/code/package.json +++ b/code/package.json @@ -205,7 +205,7 @@ "@types/express": "^4.17.11", "@types/fs-extra": "^11.0.1", "@types/lodash": "^4.14.167", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "@types/react": "^16.14.34", "@types/react-dom": "^16.9.14", "@types/semver": "^7.3.4", diff --git a/code/presets/create-react-app/package.json b/code/presets/create-react-app/package.json index 1fb9244d2b41..8fd642c00ba4 100644 --- a/code/presets/create-react-app/package.json +++ b/code/presets/create-react-app/package.json @@ -59,7 +59,7 @@ }, "devDependencies": { "@storybook/node-logger": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "typescript": "~4.9.3" }, "peerDependencies": { diff --git a/code/presets/html-webpack/package.json b/code/presets/html-webpack/package.json index 326f623663b9..529fc5bf3e6a 100644 --- a/code/presets/html-webpack/package.json +++ b/code/presets/html-webpack/package.json @@ -50,7 +50,7 @@ }, "dependencies": { "@storybook/core-webpack": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "html-loader": "^3.1.0", "webpack": "5" }, diff --git a/code/presets/preact-webpack/package.json b/code/presets/preact-webpack/package.json index 3894f3c84696..de942bd4fd48 100644 --- a/code/presets/preact-webpack/package.json +++ b/code/presets/preact-webpack/package.json @@ -52,7 +52,7 @@ "@babel/plugin-transform-react-jsx": "^7.22.5", "@babel/preset-typescript": "^7.22.5", "@storybook/core-webpack": "workspace:*", - "@types/node": "^16.0.0" + "@types/node": "^18.18.4" }, "devDependencies": { "preact": "^10.5.13", diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json index 4471b944e093..6388bbcc0796 100644 --- a/code/presets/react-webpack/package.json +++ b/code/presets/react-webpack/package.json @@ -72,7 +72,7 @@ "@storybook/node-logger": "workspace:*", "@storybook/react": "workspace:*", "@storybook/react-docgen-typescript-plugin": "1.0.6--canary.9.0c3f3b7.0", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "@types/semver": "^7.3.4", "babel-plugin-add-react-displayname": "^0.0.5", "babel-plugin-react-docgen": "^4.2.1", diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json index 13da8091ab46..d0dd5853b66f 100644 --- a/code/presets/server-webpack/package.json +++ b/code/presets/server-webpack/package.json @@ -58,7 +58,7 @@ "@storybook/core-webpack": "workspace:*", "@storybook/global": "^5.0.0", "@storybook/server": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "safe-identifier": "^0.4.1", "ts-dedent": "^2.0.0", "yaml-loader": "^0.8.0" diff --git a/code/presets/vue-webpack/package.json b/code/presets/vue-webpack/package.json index 0aaf1b2b48f1..112bf1089738 100644 --- a/code/presets/vue-webpack/package.json +++ b/code/presets/vue-webpack/package.json @@ -61,7 +61,7 @@ "dependencies": { "@storybook/core-webpack": "workspace:*", "@storybook/docs-tools": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "ts-loader": "^9.2.8", "vue-docgen-api": "^4.44.23", "vue-docgen-loader": "^1.5.1", diff --git a/code/presets/vue3-webpack/package.json b/code/presets/vue3-webpack/package.json index 8368d0f7f1a8..e6a1793b8c2b 100644 --- a/code/presets/vue3-webpack/package.json +++ b/code/presets/vue3-webpack/package.json @@ -61,7 +61,7 @@ "dependencies": { "@storybook/core-webpack": "workspace:*", "@storybook/docs-tools": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "ts-loader": "^9.2.8", "vue-docgen-api": "^4.46.0", "vue-docgen-loader": "^1.5.1", diff --git a/code/presets/web-components-webpack/package.json b/code/presets/web-components-webpack/package.json index 29cca0ef340d..6a554cf0a2c2 100644 --- a/code/presets/web-components-webpack/package.json +++ b/code/presets/web-components-webpack/package.json @@ -56,7 +56,7 @@ "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/preset-env": "^7.22.9", "@storybook/core-webpack": "workspace:*", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "babel-loader": "^7.0.0 || ^8.0.0 || ^9.0.0", "babel-plugin-bundled-import-meta": "^0.3.1" }, diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json index 2bfe26f1b76b..2d4c8760da8d 100644 --- a/code/renderers/react/package.json +++ b/code/renderers/react/package.json @@ -62,7 +62,7 @@ "@storybook/types": "workspace:*", "@types/escodegen": "^0.0.6", "@types/estree": "^0.0.51", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "acorn": "^7.4.1", "acorn-jsx": "^5.3.1", "acorn-walk": "^7.2.0", diff --git a/code/renderers/web-components/package.json b/code/renderers/web-components/package.json index 1a857d6a2880..d9fe1128468d 100644 --- a/code/renderers/web-components/package.json +++ b/code/renderers/web-components/package.json @@ -64,7 +64,7 @@ }, "devDependencies": { "@types/cross-spawn": "^6.0.2", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "cross-spawn": "^7.0.3", "lit": "2.3.1", "typescript": "~4.9.3", diff --git a/code/yarn.lock b/code/yarn.lock index 3c200a7a8a38..4a8900976cf5 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6001,7 +6001,7 @@ __metadata: "@storybook/testing-library": next "@storybook/theming": "workspace:*" "@storybook/types": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 formik: ^2.2.9 jest-mock: ^27.0.6 polished: ^4.2.2 @@ -6383,7 +6383,7 @@ __metadata: "@storybook/telemetry": "workspace:*" "@storybook/types": "workspace:*" "@types/cross-spawn": ^6.0.2 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 "@types/react": ^16.14.34 "@types/react-dom": ^16.9.14 "@types/semver": ^7.3.4 @@ -6551,7 +6551,7 @@ __metadata: "@storybook/types": "workspace:*" "@types/express": ^4.17.13 "@types/find-cache-dir": ^3.2.1 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 browser-assert: ^1.2.1 es-module-lexer: ^0.9.3 express: ^4.17.3 @@ -6592,7 +6592,7 @@ __metadata: "@storybook/preview": "workspace:*" "@storybook/preview-api": "workspace:*" "@swc/core": ^1.3.82 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 "@types/pretty-hrtime": ^1.0.0 "@types/semver": ^7.3.4 "@types/terser-webpack-plugin": ^5.2.0 @@ -6840,7 +6840,7 @@ __metadata: "@types/find-cache-dir": ^3.2.1 "@types/fs-extra": ^11.0.1 "@types/mock-fs": ^4.13.1 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 "@types/node-fetch": ^2.6.4 "@types/picomatch": ^2.3.0 "@types/pretty-hrtime": ^1.0.0 @@ -6899,7 +6899,7 @@ __metadata: "@types/compression": ^1.7.0 "@types/detect-port": ^1.3.0 "@types/ip": ^1.1.0 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 "@types/node-fetch": ^2.5.7 "@types/pretty-hrtime": ^1.0.0 "@types/semver": ^7.3.4 @@ -6942,7 +6942,7 @@ __metadata: "@storybook/core-common": "workspace:*" "@storybook/node-logger": "workspace:*" "@storybook/types": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 ts-dedent: ^2.0.0 typescript: ~4.9.3 webpack: 5 @@ -7107,7 +7107,7 @@ __metadata: "@storybook/html": "workspace:*" "@storybook/node-logger": "workspace:*" "@storybook/preview-web": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 magic-string: ^0.30.0 typescript: ~4.9.3 languageName: unknown @@ -7122,7 +7122,7 @@ __metadata: "@storybook/global": ^5.0.0 "@storybook/html": "workspace:*" "@storybook/preset-html-webpack": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 typescript: ~4.9.3 peerDependencies: "@babel/core": "*" @@ -7317,7 +7317,7 @@ __metadata: "@types/babel__core": ^7 "@types/babel__plugin-transform-runtime": ^7 "@types/babel__preset-env": ^7 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 css-loader: ^6.7.3 find-up: ^5.0.0 fs-extra: ^11.1.0 @@ -7387,7 +7387,7 @@ __metadata: "@preact/preset-vite": ^2.0.0 "@storybook/builder-vite": "workspace:*" "@storybook/preact": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 typescript: ~4.9.3 vite: ^4.0.0 peerDependencies: @@ -7404,7 +7404,7 @@ __metadata: "@storybook/core-common": "workspace:*" "@storybook/preact": "workspace:*" "@storybook/preset-preact-webpack": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 preact: ^10.5.13 typescript: ~4.9.3 peerDependencies: @@ -7440,7 +7440,7 @@ __metadata: "@storybook/react-docgen-typescript-plugin": 1.0.6--canary.9.0c3f3b7.0 "@storybook/types": "workspace:*" "@types/babel__core": ^7.1.7 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 babel-plugin-react-docgen: ^4.1.0 pnp-webpack-plugin: ^1.7.0 semver: ^7.3.5 @@ -7456,7 +7456,7 @@ __metadata: resolution: "@storybook/preset-html-webpack@workspace:presets/html-webpack" dependencies: "@storybook/core-webpack": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 html-loader: ^3.1.0 typescript: ~4.9.3 webpack: 5 @@ -7472,7 +7472,7 @@ __metadata: "@babel/plugin-transform-react-jsx": ^7.22.5 "@babel/preset-typescript": ^7.22.5 "@storybook/core-webpack": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 preact: ^10.5.13 typescript: ~4.9.3 peerDependencies: @@ -7493,7 +7493,7 @@ __metadata: "@storybook/node-logger": "workspace:*" "@storybook/react": "workspace:*" "@storybook/react-docgen-typescript-plugin": 1.0.6--canary.9.0c3f3b7.0 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 "@types/semver": ^7.3.4 babel-plugin-add-react-displayname: ^0.0.5 babel-plugin-react-docgen: ^4.2.1 @@ -7522,7 +7522,7 @@ __metadata: "@storybook/core-webpack": "workspace:*" "@storybook/global": ^5.0.0 "@storybook/server": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 fs-extra: ^11.1.0 jest-specific-snapshot: ^8.0.0 safe-identifier: ^0.4.1 @@ -7557,7 +7557,7 @@ __metadata: dependencies: "@storybook/core-webpack": "workspace:*" "@storybook/docs-tools": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 ts-loader: ^9.2.8 typescript: ~4.9.3 vue: ^2.6.12 @@ -7582,7 +7582,7 @@ __metadata: dependencies: "@storybook/core-webpack": "workspace:*" "@storybook/docs-tools": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 "@vue/compiler-sfc": ^3.2.33 ts-loader: ^9.2.8 typescript: ~4.9.3 @@ -7607,7 +7607,7 @@ __metadata: "@babel/plugin-syntax-import-meta": ^7.10.4 "@babel/preset-env": ^7.22.9 "@storybook/core-webpack": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 babel-loader: ^7.0.0 || ^8.0.0 || ^9.0.0 babel-plugin-bundled-import-meta: ^0.3.1 lit: 2.3.1 @@ -7704,7 +7704,7 @@ __metadata: "@rollup/pluginutils": ^5.0.2 "@storybook/builder-vite": "workspace:*" "@storybook/react": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 "@vitejs/plugin-react": ^3.0.1 magic-string: ^0.30.0 react-docgen: ^6.0.2 @@ -7724,7 +7724,7 @@ __metadata: "@storybook/builder-webpack5": "workspace:*" "@storybook/preset-react-webpack": "workspace:*" "@storybook/react": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 jest-specific-snapshot: ^8.0.0 peerDependencies: "@babel/core": ^7.22.0 @@ -7753,7 +7753,7 @@ __metadata: "@storybook/types": "workspace:*" "@types/escodegen": ^0.0.6 "@types/estree": ^0.0.51 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 "@types/util-deprecate": ^1.0.0 acorn: ^7.4.1 acorn-jsx: ^5.3.1 @@ -7896,7 +7896,7 @@ __metadata: "@types/express": ^4.17.11 "@types/fs-extra": ^11.0.1 "@types/lodash": ^4.14.167 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 "@types/react": ^16.14.34 "@types/react-dom": ^16.9.14 "@types/semver": ^7.3.4 @@ -7998,7 +7998,7 @@ __metadata: "@storybook/core-common": "workspace:*" "@storybook/preset-server-webpack": "workspace:*" "@storybook/server": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 typescript: ~4.9.3 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -8058,7 +8058,7 @@ __metadata: "@storybook/node-logger": "workspace:*" "@storybook/svelte": "workspace:*" "@sveltejs/vite-plugin-svelte": ^2.4.2 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 magic-string: ^0.30.0 svelte: ^4.0.0 sveltedoc-parser: ^4.2.1 @@ -8120,7 +8120,7 @@ __metadata: "@storybook/builder-vite": "workspace:*" "@storybook/svelte": "workspace:*" "@storybook/svelte-vite": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 typescript: ^4.9.3 vite: ^4.0.0 peerDependencies: @@ -8185,7 +8185,7 @@ __metadata: "@storybook/client-logger": "workspace:*" "@storybook/global": ^5.0.0 "@types/fs-extra": ^11.0.1 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 deep-object-diff: ^1.1.0 fs-extra: ^11.1.0 memoizerific: ^1.11.3 @@ -8207,7 +8207,7 @@ __metadata: "@types/babel__core": ^7.0.0 "@types/express": ^4.7.0 "@types/fs-extra": ^11.0.1 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 file-system-cache: 2.3.0 typescript: ~4.9.3 languageName: unknown @@ -8242,7 +8242,7 @@ __metadata: "@storybook/core-common": "workspace:*" "@storybook/preset-vue-webpack": "workspace:*" "@storybook/vue": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 typescript: ~4.9.3 vue: ^2.6.12 vue-loader: ^15.7.0 @@ -8266,7 +8266,7 @@ __metadata: "@storybook/builder-vite": "workspace:*" "@storybook/core-server": "workspace:*" "@storybook/vue3": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 "@vitejs/plugin-vue": ^4.0.0 magic-string: ^0.30.0 typescript: ~4.9.3 @@ -8287,7 +8287,7 @@ __metadata: "@storybook/core-common": "workspace:*" "@storybook/preset-vue3-webpack": "workspace:*" "@storybook/vue3": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 "@vue/compiler-sfc": 3.0.0 typescript: ~4.9.3 vue: 3.0.0 @@ -8361,7 +8361,7 @@ __metadata: "@storybook/core-server": "workspace:*" "@storybook/node-logger": "workspace:*" "@storybook/web-components": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 magic-string: ^0.30.0 typescript: ~4.9.3 peerDependencies: @@ -8379,7 +8379,7 @@ __metadata: "@storybook/core-common": "workspace:*" "@storybook/preset-web-components-webpack": "workspace:*" "@storybook/web-components": "workspace:*" - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 lit: 2.3.1 typescript: ~4.9.3 peerDependencies: @@ -8401,7 +8401,7 @@ __metadata: "@storybook/preview-api": "workspace:*" "@storybook/types": "workspace:*" "@types/cross-spawn": ^6.0.2 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 cross-spawn: ^7.0.3 lit: 2.3.1 tiny-invariant: ^1.3.1 @@ -9501,10 +9501,10 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^16.0.0": - version: 16.18.57 - resolution: "@types/node@npm:16.18.57" - checksum: 191cfb12fde8c882f1d982a07302f7b87cda7b93ec227b0607f908f3b3b11c5ff96bbed613f370818ea60a8a98140962b193324bdadff679bd5ca75d04407e60 +"@types/node@npm:^18.18.4": + version: 18.18.4 + resolution: "@types/node@npm:18.18.4" + checksum: 17891f8b8fd107813eaea0dce58d2008173f3c90df4f5998da3d01d6b225e9908922156ac83240b0230d3813f1a29b5f7e065a2aa993285af062e3a3779f88dd languageName: node linkType: hard diff --git a/scripts/package.json b/scripts/package.json index f220b8f88742..806bcf50640b 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -93,7 +93,7 @@ "@types/fs-extra": "^11.0.1", "@types/http-server": "^0.12.1", "@types/lodash": "^4", - "@types/node": "^16.0.0", + "@types/node": "^18.18.4", "@types/node-fetch": "^2.5.7", "@types/prettier": "^2", "@types/pretty-hrtime": "^1.0.0", diff --git a/scripts/yarn.lock b/scripts/yarn.lock index f9d17fe543a8..c4b44eed9971 100644 --- a/scripts/yarn.lock +++ b/scripts/yarn.lock @@ -2970,7 +2970,7 @@ __metadata: "@types/fs-extra": ^11.0.1 "@types/http-server": ^0.12.1 "@types/lodash": ^4 - "@types/node": ^16.0.0 + "@types/node": ^18.18.4 "@types/node-fetch": ^2.5.7 "@types/prettier": ^2 "@types/pretty-hrtime": ^1.0.0 @@ -3711,7 +3711,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:>= 8, @types/node@npm:^16.0.0": +"@types/node@npm:*, @types/node@npm:>= 8": version: 16.18.50 resolution: "@types/node@npm:16.18.50" checksum: 4fc76918cc4e09d6cf087b385a1e2283580b1a88518f309764365cbdbdc28cdf48a77a5615ac4ce28dccee078b3da79442a032cc8aa312406943754144938cdb @@ -3725,6 +3725,13 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^18.18.4": + version: 18.18.4 + resolution: "@types/node@npm:18.18.4" + checksum: 17891f8b8fd107813eaea0dce58d2008173f3c90df4f5998da3d01d6b225e9908922156ac83240b0230d3813f1a29b5f7e065a2aa993285af062e3a3779f88dd + languageName: node + linkType: hard + "@types/normalize-package-data@npm:^2.4.0": version: 2.4.1 resolution: "@types/normalize-package-data@npm:2.4.1" From b078e37e6b3f8a02cdf2a33139ae5195b8ea0e28 Mon Sep 17 00:00:00 2001 From: Norbert de Langen Date: Tue, 10 Oct 2023 15:37:21 +0200 Subject: [PATCH 145/154] Apply suggestions from code review --- .github/workflows/generate-sandboxes-main.yml | 2 +- .github/workflows/generate-sandboxes-next.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/generate-sandboxes-main.yml b/.github/workflows/generate-sandboxes-main.yml index a99b2288cf0c..47205b3dbe25 100644 --- a/.github/workflows/generate-sandboxes-main.yml +++ b/.github/workflows/generate-sandboxes-main.yml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version-file: '.nvmrc' + node-version: 18 - uses: actions/checkout@v3 with: ref: main diff --git a/.github/workflows/generate-sandboxes-next.yml b/.github/workflows/generate-sandboxes-next.yml index 91515e0862e9..6eece02f06bd 100644 --- a/.github/workflows/generate-sandboxes-next.yml +++ b/.github/workflows/generate-sandboxes-next.yml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version-file: '.nvmrc' + node-version: 18 - uses: actions/checkout@v3 with: ref: next From edd0f61eb9e0d96c55b4bc1c52b7525cb7a7957e Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Tue, 10 Oct 2023 16:19:24 +0200 Subject: [PATCH 146/154] Replace setting node version to nvmrc --- .github/workflows/generate-sandboxes-main.yml | 2 +- .github/workflows/generate-sandboxes-next.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/generate-sandboxes-main.yml b/.github/workflows/generate-sandboxes-main.yml index 47205b3dbe25..a99b2288cf0c 100644 --- a/.github/workflows/generate-sandboxes-main.yml +++ b/.github/workflows/generate-sandboxes-main.yml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version: 18 + node-version-file: '.nvmrc' - uses: actions/checkout@v3 with: ref: main diff --git a/.github/workflows/generate-sandboxes-next.yml b/.github/workflows/generate-sandboxes-next.yml index 6eece02f06bd..91515e0862e9 100644 --- a/.github/workflows/generate-sandboxes-next.yml +++ b/.github/workflows/generate-sandboxes-next.yml @@ -21,7 +21,7 @@ jobs: steps: - uses: actions/setup-node@v3 with: - node-version: 18 + node-version-file: '.nvmrc' - uses: actions/checkout@v3 with: ref: next From dc9a7748d0e7c1830ed922a09da9d00491df17b4 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Tue, 10 Oct 2023 16:21:59 +0200 Subject: [PATCH 147/154] Increase node version in scripts/.babelrc --- scripts/.babelrc.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/.babelrc.js b/scripts/.babelrc.js index 508d8180dc10..31016fd42625 100644 --- a/scripts/.babelrc.js +++ b/scripts/.babelrc.js @@ -9,7 +9,7 @@ module.exports = { shippedProposals: true, useBuiltIns: 'usage', corejs: '3', - targets: { node: '16' }, + targets: { node: '18' }, }, ], ], From 3146415aaf9dc078cd43d0e40e77e696fa67b2e4 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Wed, 11 Oct 2023 09:17:18 +0200 Subject: [PATCH 148/154] Add argsToTemplate helper function --- .../angular/src/client/argsToTemplate.test.ts | 90 +++++++++++++++++++ .../angular/src/client/argsToTemplate.ts | 71 +++++++++++++++ code/frameworks/angular/src/client/index.ts | 1 + 3 files changed, 162 insertions(+) create mode 100644 code/frameworks/angular/src/client/argsToTemplate.test.ts create mode 100644 code/frameworks/angular/src/client/argsToTemplate.ts diff --git a/code/frameworks/angular/src/client/argsToTemplate.test.ts b/code/frameworks/angular/src/client/argsToTemplate.test.ts new file mode 100644 index 000000000000..213d34188088 --- /dev/null +++ b/code/frameworks/angular/src/client/argsToTemplate.test.ts @@ -0,0 +1,90 @@ +import { argsToTemplate, ArgsToTemplateOptions } from './argsToTemplate'; // adjust path + +describe('argsToTemplate', () => { + it('should correctly convert args to template string and exclude undefined values', () => { + const args: Record = { + prop1: 'value1', + prop2: undefined, + prop3: 'value3', + }; + const options: ArgsToTemplateOptions = {}; + const result = argsToTemplate(args, options); + expect(result).toBe('[prop1]="prop1" [prop3]="prop3"'); + }); + + it('should include properties from include option', () => { + const args = { + prop1: 'value1', + prop2: 'value2', + prop3: 'value3', + }; + const options: ArgsToTemplateOptions = { + include: ['prop1', 'prop3'], + }; + const result = argsToTemplate(args, options); + expect(result).toBe('[prop1]="prop1" [prop3]="prop3"'); + }); + + it('should include non-undefined properties from include option', () => { + const args: Record = { + prop1: 'value1', + prop2: 'value2', + prop3: undefined, + }; + const options: ArgsToTemplateOptions = { + include: ['prop1', 'prop3'], + }; + const result = argsToTemplate(args, options); + expect(result).toBe('[prop1]="prop1"'); + }); + + it('should exclude properties from exclude option', () => { + const args = { + prop1: 'value1', + prop2: 'value2', + prop3: 'value3', + }; + const options: ArgsToTemplateOptions = { + exclude: ['prop2'], + }; + const result = argsToTemplate(args, options); + expect(result).toBe('[prop1]="prop1" [prop3]="prop3"'); + }); + + it('should exclude properties from exclude option and undefined properties', () => { + const args: Record = { + prop1: 'value1', + prop2: 'value2', + prop3: undefined, + }; + const options: ArgsToTemplateOptions = { + exclude: ['prop2'], + }; + const result = argsToTemplate(args, options); + expect(result).toBe('[prop1]="prop1"'); + }); + + it('should prioritize include over exclude when both options are given', () => { + const args = { + prop1: 'value1', + prop2: 'value2', + prop3: 'value3', + }; + const options: ArgsToTemplateOptions = { + include: ['prop1', 'prop2'], + exclude: ['prop2', 'prop3'], + }; + const result = argsToTemplate(args, options); + expect(result).toBe('[prop1]="prop1" [prop2]="prop2"'); + }); + + it('should work when neither include nor exclude options are given', () => { + const args = { + prop1: 'value1', + prop2: 'value2', + }; + const options: ArgsToTemplateOptions = {}; + const result = argsToTemplate(args, options); + expect(result).toBe('[prop1]="prop1" [prop2]="prop2"'); + }); +}); diff --git a/code/frameworks/angular/src/client/argsToTemplate.ts b/code/frameworks/angular/src/client/argsToTemplate.ts new file mode 100644 index 000000000000..b00a6987942b --- /dev/null +++ b/code/frameworks/angular/src/client/argsToTemplate.ts @@ -0,0 +1,71 @@ +/** + * Options for controlling the behavior of the argsToTemplate function. + * + * @template T The type of the keys in the target object. + */ +export interface ArgsToTemplateOptions { + /** + * An array of keys to specifically include in the output. + * If provided, only the keys from this array will be included in the output, + * irrespective of the `exclude` option. Undefined values will still be excluded from the output. + */ + include?: Array; + /** + * An array of keys to specifically exclude from the output. + * If provided, these keys will be omitted from the output. This option is + * ignored if the `include` option is also provided + */ + exclude?: Array; +} + +/** + * Converts an object of arguments to a string of property bindings and excludes undefined values. + * Why? Because Angular treats undefined values in property bindings as an actual value + * and does not apply the default value of the property as soon as the binding is set. + * This feels counter-intuitive and is a common source of bugs in stories. + * @example + * ```ts + * // component.ts + *ㅤ@Component({ selector: 'example' }) + * export class ExampleComponent { + * ㅤ@Input() input1: string = 'Default Input1'; + * ㅤ@Input() input2: string = 'Default Input2'; + * } + * + * // component.stories.ts + * import { argsToTemplate } from '@storybook/angular'; + * export const Input1: Story = { + * render: (args) => ({ + * props: args, + * // Problem1: This will set input2 to undefined and the internal default value will not be used. + * // Problem2: The default value of input2 will be used, but it is not overridable by the user via controls. + * template: ``, + * }), + * args: { + * // In this Story, we want to set the input1 property, and the internal default property of input2 should be used. + * input1: 'Input 1', + * }, + *}; + * ``` + */ +export function argsToTemplate>( + args: A, + options: ArgsToTemplateOptions = {} +) { + return Object.entries(args) + .flatMap(([key, value]) => { + if (value === undefined) return []; + + if (options.include) { + if (options.include.includes(key)) { + return [`[${key}]="${key}"`]; + } + return []; + } + + if (options.exclude?.includes(key)) return []; + + return [`[${key}]="${key}"`]; + }) + .join(' '); +} diff --git a/code/frameworks/angular/src/client/index.ts b/code/frameworks/angular/src/client/index.ts index bfc209efb4d4..2377678bda2e 100644 --- a/code/frameworks/angular/src/client/index.ts +++ b/code/frameworks/angular/src/client/index.ts @@ -10,6 +10,7 @@ export * from './public-types'; export type { StoryFnAngularReturnType as IStory } from './types'; export { moduleMetadata, componentWrapperDecorator, applicationConfig } from './decorators'; +export { argsToTemplate } from './argsToTemplate'; // optimization: stop HMR propagation in webpack if (typeof module !== 'undefined') module?.hot?.decline(); From c769e4b5daff0c2184424f42594195bfc605bae2 Mon Sep 17 00:00:00 2001 From: Valentin Palkovic Date: Wed, 11 Oct 2023 09:18:13 +0200 Subject: [PATCH 149/154] Rewrite Angular Stories to CSF 3 --- .../argTypes/doc-button/doc-button.stories.ts | 35 +++-- .../doc-directive/doc-directive.stories.ts | 21 +-- .../doc-injectable/doc-injectable.stories.ts | 21 +-- .../argTypes/doc-pipe/doc-pipe.stories.ts | 21 +-- .../custom-cva-component.stories.ts | 23 ++-- .../attribute-selectors.component.stories.ts | 9 +- .../enums.component.stories.ts | 29 ++-- .../base-button.stories.ts | 11 +- .../icon-button.stories.ts | 13 +- .../ng-content-about-parent.stories.ts | 36 ++--- .../ng-content-simple.stories.ts | 32 +++-- .../component-with-on-destroy.stories.ts | 8 +- .../component-with-on-push/on-push.stories.ts | 18 +-- .../custom-pipes.stories.ts | 37 ++--- .../di.component.stories.ts | 36 ++--- .../styled.component.stories.ts | 11 +- ...ut-selector-ng-component-outlet.stories.ts | 45 +++--- ...ut-selector-ng-factory-resolver.stories.ts | 71 ---------- .../without-selector.stories.ts | 34 +++-- .../ng-module/import-module-chip.stories.ts | 24 ++-- .../import-module-for-root.stories.ts | 42 +++--- .../basics/ng-module/import-module.stories.ts | 43 +++--- .../decorators.stories.ts | 129 ++++++++++-------- .../parameters/bootstrap-options.stories.ts | 12 +- .../app-initializer-use-factory.stories.ts | 6 +- .../issues/12009-unknown-component.stories.ts | 17 +-- 26 files changed, 408 insertions(+), 376 deletions(-) delete mode 100644 code/frameworks/angular/template/stories/basics/component-without-selector/without-selector-ng-factory-resolver.stories.ts diff --git a/code/frameworks/angular/template/stories/argTypes/doc-button/doc-button.stories.ts b/code/frameworks/angular/template/stories/argTypes/doc-button/doc-button.stories.ts index d23f3896359f..11dc4d7cd32d 100644 --- a/code/frameworks/angular/template/stories/argTypes/doc-button/doc-button.stories.ts +++ b/code/frameworks/angular/template/stories/argTypes/doc-button/doc-button.stories.ts @@ -1,24 +1,29 @@ -import { Args } from '@storybook/angular'; +import { Meta, StoryObj, argsToTemplate } from '@storybook/angular'; import { DocButtonComponent } from './doc-button.component'; -export default { +const meta: Meta> = { component: DocButtonComponent, }; -export const Basic = (args: Args) => ({ - props: args, -}); -Basic.args = { label: 'Args test', isDisabled: false }; -Basic.ArgTypes = { - theDefaultValue: { - table: { - defaultValue: { summary: 'Basic default value' }, +export default meta; + +type Story = StoryObj>; + +export const Basic: Story = { + args: { label: 'Args test', isDisabled: false }, + argTypes: { + theDefaultValue: { + table: { + defaultValue: { summary: 'Basic default value' }, + }, }, }, }; -export const WithTemplate = (args: Args) => ({ - props: args, - template: '', -}); -WithTemplate.args = { label: 'Template test', appearance: 'primary' }; +export const WithTemplate: Story = { + args: { label: 'Template test', appearance: 'primary' }, + render: (args) => ({ + props: args, + template: ``, + }), +}; diff --git a/code/frameworks/angular/template/stories/argTypes/doc-directive/doc-directive.stories.ts b/code/frameworks/angular/template/stories/argTypes/doc-directive/doc-directive.stories.ts index b734b93bf40d..e949d8e88252 100644 --- a/code/frameworks/angular/template/stories/argTypes/doc-directive/doc-directive.stories.ts +++ b/code/frameworks/angular/template/stories/argTypes/doc-directive/doc-directive.stories.ts @@ -1,14 +1,19 @@ +import { Meta, StoryObj } from '@storybook/angular'; import { DocDirective } from './doc-directive.directive'; -export default { +const meta: Meta = { component: DocDirective, }; -const modules = { - declarations: [DocDirective], -}; +export default meta; + +type Story = StoryObj; -export const Basic = () => ({ - moduleMetadata: modules, - template: '

DocDirective

', -}); +export const Basic: Story = { + render: () => ({ + moduleMetadata: { + declarations: [DocDirective], + }, + template: '

DocDirective

', + }), +}; diff --git a/code/frameworks/angular/template/stories/argTypes/doc-injectable/doc-injectable.stories.ts b/code/frameworks/angular/template/stories/argTypes/doc-injectable/doc-injectable.stories.ts index eca5e10fb11d..7741bca9ba88 100644 --- a/code/frameworks/angular/template/stories/argTypes/doc-injectable/doc-injectable.stories.ts +++ b/code/frameworks/angular/template/stories/argTypes/doc-injectable/doc-injectable.stories.ts @@ -1,14 +1,19 @@ +import { Meta, StoryObj } from '@storybook/angular'; import { DocInjectableService } from './doc-injectable.service'; -export default { +const meta: Meta = { component: DocInjectableService, }; -const modules = { - provider: [DocInjectableService], -}; +export default meta; + +type Story = StoryObj; -export const Basic = () => ({ - moduleMetadata: modules, - template: '

DocInjectable

', -}); +export const Basic: Story = { + render: () => ({ + moduleMetadata: { + providers: [DocInjectableService], + }, + template: '

DocInjectable

', + }), +}; diff --git a/code/frameworks/angular/template/stories/argTypes/doc-pipe/doc-pipe.stories.ts b/code/frameworks/angular/template/stories/argTypes/doc-pipe/doc-pipe.stories.ts index 6ab616f16ee2..018ab04a9951 100644 --- a/code/frameworks/angular/template/stories/argTypes/doc-pipe/doc-pipe.stories.ts +++ b/code/frameworks/angular/template/stories/argTypes/doc-pipe/doc-pipe.stories.ts @@ -1,14 +1,19 @@ +import { Meta, StoryObj } from '@storybook/angular'; import { DocPipe } from './doc-pipe.pipe'; -export default { +const meta: Meta = { component: DocPipe, }; -const modules = { - declarations: [DocPipe], -}; +export default meta; + +type Story = StoryObj; -export const Basic = () => ({ - moduleMetadata: modules, - template: `

{{ 'DocPipe' | docPipe }}

`, -}); +export const Basic: Story = { + render: () => ({ + moduleMetadata: { + declarations: [DocPipe], + }, + template: `

{{ 'DocPipe' | docPipe }}

`, + }), +}; diff --git a/code/frameworks/angular/template/stories/basics/angular-forms/customControlValueAccessor/custom-cva-component.stories.ts b/code/frameworks/angular/template/stories/basics/angular-forms/customControlValueAccessor/custom-cva-component.stories.ts index 228e2d7b9045..c5fb49653135 100644 --- a/code/frameworks/angular/template/stories/basics/angular-forms/customControlValueAccessor/custom-cva-component.stories.ts +++ b/code/frameworks/angular/template/stories/basics/angular-forms/customControlValueAccessor/custom-cva-component.stories.ts @@ -1,8 +1,8 @@ import { FormsModule } from '@angular/forms'; -import { Meta, StoryFn, moduleMetadata } from '@storybook/angular'; +import { Meta, StoryFn, StoryObj, moduleMetadata } from '@storybook/angular'; import { CustomCvaComponent } from './custom-cva.component'; -export default { +const meta: Meta = { // title: 'Basics / Angular forms / ControlValueAccessor', component: CustomCvaComponent, decorators: [ @@ -17,11 +17,16 @@ export default { ], } as Meta; -export const SimpleInput: StoryFn = () => ({ - props: { - ngModel: 'Type anything', - ngModelChange: () => {}, - }, -}); +export default meta; -SimpleInput.storyName = 'Simple input'; +type Story = StoryObj; + +export const SimpleInput: Story = { + storyName: 'Simple input', + render: () => ({ + props: { + ngModel: 'Type anything', + ngModelChange: () => {}, + }, + }), +}; diff --git a/code/frameworks/angular/template/stories/basics/component-with-complex-selectors/attribute-selectors.component.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-complex-selectors/attribute-selectors.component.stories.ts index d935de5215d7..73894b83b34a 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-complex-selectors/attribute-selectors.component.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-complex-selectors/attribute-selectors.component.stories.ts @@ -1,8 +1,13 @@ +import { Meta, StoryObj } from '@storybook/angular'; import { AttributeSelectorComponent } from './attribute-selector.component'; -export default { +const meta: Meta = { // title: 'Basics / Component / With Complex Selectors', component: AttributeSelectorComponent, }; -export const AttributeSelectors = {}; +export default meta; + +type Story = StoryObj; + +export const AttributeSelectors: Story = {}; diff --git a/code/frameworks/angular/template/stories/basics/component-with-enums/enums.component.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-enums/enums.component.stories.ts index 647ca86d8d67..b79bd371baf3 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-enums/enums.component.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-enums/enums.component.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryFn } from '@storybook/angular'; +import { Meta, StoryObj } from '@storybook/angular'; import { EnumsComponent, EnumNumeric, @@ -6,19 +6,22 @@ import { EnumStringValues, } from './enums.component'; -export default { +const meta: Meta = { // title: 'Basics / Component / With Enum Types', component: EnumsComponent, -} as Meta; +}; + +export default meta; + +type Story = StoryObj; -export const Basic: StoryFn = (args) => ({ - props: args, -}); -Basic.args = { - unionType: 'union a', - aliasedUnionType: 'Type Alias 1', - enumNumeric: EnumNumeric.FIRST, - enumNumericInitial: EnumNumericInitial.UNO, - enumStrings: EnumStringValues.PRIMARY, - enumAlias: EnumNumeric.FIRST, +export const Basic: Story = { + args: { + unionType: 'Union A', + aliasedUnionType: 'Type Alias 1', + enumNumeric: EnumNumeric.FIRST, + enumNumericInitial: EnumNumericInitial.UNO, + enumStrings: EnumStringValues.PRIMARY, + enumAlias: EnumNumeric.FIRST, + }, }; diff --git a/code/frameworks/angular/template/stories/basics/component-with-inheritance/base-button.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-inheritance/base-button.stories.ts index a206115f5de7..271e6a3fcc9d 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-inheritance/base-button.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-inheritance/base-button.stories.ts @@ -1,12 +1,15 @@ +import { Meta, StoryObj } from '@storybook/angular'; import { BaseButtonComponent } from './base-button.component'; -export default { +const meta: Meta = { // title: 'Basics / Component / With Inheritance', component: BaseButtonComponent, }; -export const BaseButton = () => ({ - props: { +export default meta; + +export const BaseButton: StoryObj = { + args: { label: 'this is label', }, -}); +}; diff --git a/code/frameworks/angular/template/stories/basics/component-with-inheritance/icon-button.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-inheritance/icon-button.stories.ts index baefe65c4f58..bb5c5fb02bcb 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-inheritance/icon-button.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-inheritance/icon-button.stories.ts @@ -1,13 +1,18 @@ +import { Meta, StoryObj } from '@storybook/angular'; import { IconButtonComponent } from './icon-button.component'; -export default { +const meta: Meta = { // title: 'Basics / Component / With Inheritance', component: IconButtonComponent, }; -export const IconButton = () => ({ - props: { +export default meta; + +type Story = StoryObj; + +export const IconButton: Story = { + args: { icon: 'this is icon', label: 'this is label', }, -}); +}; diff --git a/code/frameworks/angular/template/stories/basics/component-with-ng-content/ng-content-about-parent.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-ng-content/ng-content-about-parent.stories.ts index 0512582aca6e..ae936092f96b 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-ng-content/ng-content-about-parent.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-ng-content/ng-content-about-parent.stories.ts @@ -1,5 +1,5 @@ import { Component, Input } from '@angular/core'; -import { componentWrapperDecorator, Meta, StoryFn } from '@storybook/angular'; +import { componentWrapperDecorator, Meta, StoryFn, StoryObj } from '@storybook/angular'; @Component({ selector: 'sb-button', @@ -17,7 +17,7 @@ class SbButtonComponent { color = '#5eadf5'; } -export default { +const meta: Meta = { // title: 'Basics / Component / With ng-content / Button with different contents', // Implicitly declares the component to Angular // This will be the component described by the addon docs @@ -35,24 +35,24 @@ export default { }, } as Meta; +export default meta; + +type Story = StoryObj; + // By default storybook uses the default export component if no template or component is defined in the story // So Storybook nests the component twice because it is first added by the componentWrapperDecorator. -export const AlwaysDefineTemplateOrComponent: StoryFn = () => ({}); +export const AlwaysDefineTemplateOrComponent: Story = {}; -export const EmptyButton: StoryFn = () => ({ - template: '', -}); - -export const WithDynamicContentAndArgs: StoryFn = (args) => ({ - template: `${args['content']}`, -}); -WithDynamicContentAndArgs.argTypes = { - content: { control: 'text' }, +export const EmptyButton: Story = { + render: () => ({ + template: '', + }), }; -WithDynamicContentAndArgs.args = { content: 'My button text' }; -export const InH1: StoryFn = () => ({ - template: 'My button in h1', -}); -InH1.decorators = [componentWrapperDecorator((story) => `

${story}

`)]; -InH1.storyName = 'In

'; +export const InH1: Story = { + render: () => ({ + template: 'My button in h1', + }), + decorators: [componentWrapperDecorator((story) => `

${story}

`)], + storyName: 'In

', +}; diff --git a/code/frameworks/angular/template/stories/basics/component-with-ng-content/ng-content-simple.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-ng-content/ng-content-simple.stories.ts index 13cc2eb550c5..71b0fe84df38 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-ng-content/ng-content-simple.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-ng-content/ng-content-simple.stories.ts @@ -1,6 +1,6 @@ import { Component } from '@angular/core'; -import { Meta, StoryFn } from '@storybook/angular/'; +import { Meta, StoryObj } from '@storybook/angular'; @Component({ selector: 'storybook-with-ng-content', @@ -9,21 +9,29 @@ import { Meta, StoryFn } from '@storybook/angular/'; }) class WithNgContentComponent {} -export default { +const meta: Meta = { // title: 'Basics / Component / With ng-content / Simple', component: WithNgContentComponent, } as Meta; -export const OnlyComponent: StoryFn = () => ({}); +export default meta; -export const Default: StoryFn = () => ({ - template: `

This is rendered in ng-content

`, -}); +type Story = StoryObj; -export const WithDynamicContentAndArgs: StoryFn = (args) => ({ - template: `

${args['content']}

`, -}); -WithDynamicContentAndArgs.argTypes = { - content: { control: 'text' }, +export const OnlyComponent: Story = {}; + +export const Default: Story = { + render: () => ({ + template: `

This is rendered in ng-content

`, + }), +}; + +export const WithDynamicContentAndArgs: Story = { + render: (args) => ({ + template: `

${args['content']}

`, + }), + args: { content: 'Default content' }, + argTypes: { + content: { control: 'text' }, + }, }; -WithDynamicContentAndArgs.args = { content: 'Default content' }; diff --git a/code/frameworks/angular/template/stories/basics/component-with-ng-on-destroy/component-with-on-destroy.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-ng-on-destroy/component-with-on-destroy.stories.ts index b833424367bb..9ac53d2dde03 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-ng-on-destroy/component-with-on-destroy.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-ng-on-destroy/component-with-on-destroy.stories.ts @@ -27,7 +27,7 @@ class OnDestroyComponent implements OnInit, OnDestroy { } } -export default { +const meta: Meta = { // title: 'Basics / Component / with ngOnDestroy', component: OnDestroyComponent, parameters: { @@ -37,4 +37,8 @@ export default { }, } as Meta; -export const SimpleComponent: StoryObj = {}; +export default meta; + +type Story = StoryObj; + +export const SimpleComponent: Story = {}; diff --git a/code/frameworks/angular/template/stories/basics/component-with-on-push/on-push.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-on-push/on-push.stories.ts index 6ad452797bc2..5da4366a606f 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-on-push/on-push.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-on-push/on-push.stories.ts @@ -1,7 +1,7 @@ -import { Meta, StoryFn } from '@storybook/angular'; +import { Meta, StoryObj } from '@storybook/angular'; import { OnPushBoxComponent } from './on-push-box.component'; -export default { +const meta: Meta = { // title: 'Basics / Component / With OnPush strategy', component: OnPushBoxComponent, argTypes: { @@ -12,10 +12,12 @@ export default { word: 'The text', bgColor: '#FFF000', }, -} as Meta; +}; -export const ClassSpecifiedComponentWithOnPushAndArgs: StoryFn = (args) => ({ - props: args, -}); -ClassSpecifiedComponentWithOnPushAndArgs.storyName = - 'Class-specified component with OnPush and Args'; +export default meta; + +type Story = StoryObj; + +export const ClassSpecifiedComponentWithOnPushAndArgs: Story = { + storyName: 'Class-specified component with OnPush and Args', +}; diff --git a/code/frameworks/angular/template/stories/basics/component-with-pipe/custom-pipes.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-pipe/custom-pipes.stories.ts index 6c8f9254208f..e9c3037b28ec 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-pipe/custom-pipes.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-pipe/custom-pipes.stories.ts @@ -1,9 +1,9 @@ -import { Meta, StoryFn, moduleMetadata } from '@storybook/angular'; +import { Meta, StoryObj, moduleMetadata } from '@storybook/angular'; import { CustomPipePipe } from './custom.pipe'; import { WithPipeComponent } from './with-pipe.component'; -export default { +const meta: Meta = { // title: 'Basics / Component / With Pipes', component: WithPipeComponent, decorators: [ @@ -11,21 +11,26 @@ export default { declarations: [CustomPipePipe], }), ], -} as Meta; +}; -export const Simple: StoryFn = () => ({ - props: { - field: 'foobar', - }, -}); +export default meta; + +type Story = StoryObj; -export const WithArgsStory: StoryFn = (args) => ({ - props: args, -}); -WithArgsStory.storyName = 'With args'; -WithArgsStory.argTypes = { - field: { control: 'text' }, +export const Simple: Story = { + render: () => ({ + props: { + field: 'foobar', + }, + }), }; -WithArgsStory.args = { - field: 'Foo Bar', + +export const WithArgsStory: Story = { + storyName: 'With args', + argTypes: { + field: { control: 'text' }, + }, + args: { + field: 'Foo Bar', + }, }; diff --git a/code/frameworks/angular/template/stories/basics/component-with-provider/di.component.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-provider/di.component.stories.ts index fea1bc95c15f..2b676f567d23 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-provider/di.component.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-provider/di.component.stories.ts @@ -1,26 +1,30 @@ -import { Args } from '@storybook/angular'; +import { Args, Meta, StoryObj } from '@storybook/angular'; import { DiComponent } from './di.component'; -export default { +const meta: Meta = { // title: 'Basics / Component / With Provider', component: DiComponent, }; -export const InputsAndInjectDependencies = () => ({ - props: { - title: 'Component dependencies', - }, -}); +export default meta; -InputsAndInjectDependencies.storyName = 'inputs and inject dependencies'; +type Story = StoryObj; -export const InputsAndInjectDependenciesWithArgs = (args: Args) => ({ - props: args, -}); -InputsAndInjectDependenciesWithArgs.storyName = 'inputs and inject dependencies with args'; -InputsAndInjectDependenciesWithArgs.argTypes = { - title: { control: 'text' }, +export const InputsAndInjectDependencies: Story = { + render: () => ({ + props: { + title: 'Component dependencies', + }, + }), + storyName: 'inputs and inject dependencies', }; -InputsAndInjectDependenciesWithArgs.args = { - title: 'Component dependencies', + +export const InputsAndInjectDependenciesWithArgs: Story = { + storyName: 'inputs and inject dependencies with args', + argTypes: { + title: { control: 'text' }, + }, + args: { + title: 'Component dependencies', + }, }; diff --git a/code/frameworks/angular/template/stories/basics/component-with-style/styled.component.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-style/styled.component.stories.ts index 0818ff28cc6f..32116ba05090 100644 --- a/code/frameworks/angular/template/stories/basics/component-with-style/styled.component.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-with-style/styled.component.stories.ts @@ -1,10 +1,15 @@ +import { Meta, StoryObj } from '@storybook/angular'; import { StyledComponent } from './styled.component'; -export default { +const meta: Meta = { // title: 'Basics / Component / With StyleUrls', component: StyledComponent, }; -export const ComponentWithStyles = () => ({}); +export default meta; -ComponentWithStyles.storyName = 'Component with styles'; +type Story = StoryObj; + +export const ComponentWithStyles: Story = { + storyName: 'Component with styles', +}; diff --git a/code/frameworks/angular/template/stories/basics/component-without-selector/without-selector-ng-component-outlet.stories.ts b/code/frameworks/angular/template/stories/basics/component-without-selector/without-selector-ng-component-outlet.stories.ts index beff6c157988..5e7cbabee628 100644 --- a/code/frameworks/angular/template/stories/basics/component-without-selector/without-selector-ng-component-outlet.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-without-selector/without-selector-ng-component-outlet.stories.ts @@ -1,8 +1,8 @@ import { OnInit, Type, Component, Injector, Input } from '@angular/core'; -import { StoryFn, Meta, componentWrapperDecorator, moduleMetadata } from '@storybook/angular'; +import { Meta, componentWrapperDecorator, moduleMetadata, StoryObj } from '@storybook/angular'; import { WithoutSelectorComponent, WITHOUT_SELECTOR_DATA } from './without-selector.component'; -export default { +const meta: Meta = { // title: 'Basics / Component / without selector / Custom wrapper *NgComponentOutlet', component: WithoutSelectorComponent, decorators: [ @@ -12,6 +12,10 @@ export default { ], } as Meta; +export default meta; + +type Story = StoryObj; + // Advanced example with custom *ngComponentOutlet @Component({ @@ -51,23 +55,22 @@ class NgComponentOutletWrapperComponent implements OnInit { // Live changing of args by controls does not work at the moment. When changing args storybook does not fully // reload and therefore does not take into account the change of provider. -export const WithCustomNgComponentOutletWrapper: StoryFn = (args) => ({ - props: args, -}); -WithCustomNgComponentOutletWrapper.storyName = 'Custom wrapper *NgComponentOutlet'; -WithCustomNgComponentOutletWrapper.argTypes = { - name: { control: 'text' }, - color: { control: 'color' }, -}; -WithCustomNgComponentOutletWrapper.args = { name: 'Color', color: 'green' }; -WithCustomNgComponentOutletWrapper.decorators = [ - moduleMetadata({ - declarations: [NgComponentOutletWrapperComponent], - }), - componentWrapperDecorator(NgComponentOutletWrapperComponent, (args) => ({ - name: args.name, +export const WithCustomNgComponentOutletWrapper: Story = { + storyName: 'Custom wrapper *NgComponentOutlet', + argTypes: { + name: { control: 'text' }, + color: { control: 'color' }, + }, + args: { name: 'Color', color: 'green' }, + decorators: [ + moduleMetadata({ + declarations: [NgComponentOutletWrapperComponent], + }), + componentWrapperDecorator(NgComponentOutletWrapperComponent, (args) => ({ + name: args.name, - color: args['color'], - componentOutlet: WithoutSelectorComponent, - })), -]; + color: args['color'], + componentOutlet: WithoutSelectorComponent, + })), + ], +}; diff --git a/code/frameworks/angular/template/stories/basics/component-without-selector/without-selector-ng-factory-resolver.stories.ts b/code/frameworks/angular/template/stories/basics/component-without-selector/without-selector-ng-factory-resolver.stories.ts deleted file mode 100644 index 5256c9de2894..000000000000 --- a/code/frameworks/angular/template/stories/basics/component-without-selector/without-selector-ng-factory-resolver.stories.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { - AfterViewInit, - ComponentFactoryResolver, - Type, - Component, - Input, - ViewChild, - ViewContainerRef, -} from '@angular/core'; -import { StoryFn, Meta, componentWrapperDecorator, moduleMetadata } from '@storybook/angular'; - -import { WithoutSelectorComponent } from './without-selector.component'; - -export default { - // title: 'Basics / Component / without selector / Custom wrapper ComponentFactoryResolver', - component: WithoutSelectorComponent, - decorators: [ - moduleMetadata({ - entryComponents: [WithoutSelectorComponent], - }), - ], -} as Meta; - -// Advanced example with custom ComponentFactoryResolver - -@Component({ selector: 'component-factory-wrapper', template: '' }) -class ComponentFactoryWrapperComponent implements AfterViewInit { - @ViewChild('dynamicInsert', { read: ViewContainerRef }) dynamicInsert: any; - - @Input() - componentOutlet?: Type; - - @Input() - args: any; - - constructor( - private viewContainerRef: ViewContainerRef, - private componentFactoryResolver: ComponentFactoryResolver - ) {} - - ngAfterViewInit() { - const componentFactory = this.componentFactoryResolver.resolveComponentFactory( - this.componentOutlet! - ); - const containerRef = this.viewContainerRef; - containerRef.clear(); - const dynamicComponent = containerRef.createComponent(componentFactory); - Object.assign(dynamicComponent.instance as any, this.args); - } -} - -// Live changing of args by controls does not work at the moment. When changing args storybook does not fully -// reload and therefore does not take into account the change of provider. -export const WithComponentFactoryResolver: StoryFn = (args) => ({ - props: args, -}); -WithComponentFactoryResolver.storyName = 'Custom wrapper ComponentFactoryResolver'; -WithComponentFactoryResolver.argTypes = { - name: { control: 'text' }, - color: { control: 'color' }, -}; -WithComponentFactoryResolver.args = { name: 'Color', color: 'chartreuse' }; -WithComponentFactoryResolver.decorators = [ - moduleMetadata({ - declarations: [ComponentFactoryWrapperComponent], - }), - componentWrapperDecorator(ComponentFactoryWrapperComponent, ({ args }) => ({ - args, - componentOutlet: WithoutSelectorComponent, - })), -]; diff --git a/code/frameworks/angular/template/stories/basics/component-without-selector/without-selector.stories.ts b/code/frameworks/angular/template/stories/basics/component-without-selector/without-selector.stories.ts index dec59310b0c3..a7f635252a69 100644 --- a/code/frameworks/angular/template/stories/basics/component-without-selector/without-selector.stories.ts +++ b/code/frameworks/angular/template/stories/basics/component-without-selector/without-selector.stories.ts @@ -1,7 +1,7 @@ -import { StoryFn, Meta, moduleMetadata } from '@storybook/angular'; +import { StoryObj, Meta, moduleMetadata } from '@storybook/angular'; import { WithoutSelectorComponent, WITHOUT_SELECTOR_DATA } from './without-selector.component'; -export default { +const meta: Meta = { // title: 'Basics / Component / without selector', component: WithoutSelectorComponent, decorators: [ @@ -11,20 +11,26 @@ export default { ], } as Meta; -export const SimpleComponent: StoryFn = () => ({}); +export default meta; + +type Story = StoryObj; + +export const SimpleComponent: Story = {}; // Live changing of args by controls does not work for now. When changing args storybook does not fully // reload and therefore does not take into account the change of provider. -export const WithInjectionTokenAndArgs: StoryFn = (args) => ({ - props: args, - moduleMetadata: { - providers: [ - { provide: WITHOUT_SELECTOR_DATA, useValue: { color: args['color'], name: args['name'] } }, - ], +export const WithInjectionTokenAndArgs: StoryObj = { + render: (args) => ({ + props: args, + moduleMetadata: { + providers: [ + { provide: WITHOUT_SELECTOR_DATA, useValue: { color: args['color'], name: args['name'] } }, + ], + }, + }), + argTypes: { + name: { control: 'text' }, + color: { control: 'color' }, }, -}); -WithInjectionTokenAndArgs.argTypes = { - name: { control: 'text' }, - color: { control: 'color' }, + args: { name: 'Color', color: 'red' }, }; -WithInjectionTokenAndArgs.args = { name: 'Color', color: 'red' }; diff --git a/code/frameworks/angular/template/stories/basics/ng-module/import-module-chip.stories.ts b/code/frameworks/angular/template/stories/basics/ng-module/import-module-chip.stories.ts index 14e163e3b9d8..3c3f58851125 100644 --- a/code/frameworks/angular/template/stories/basics/ng-module/import-module-chip.stories.ts +++ b/code/frameworks/angular/template/stories/basics/ng-module/import-module-chip.stories.ts @@ -1,23 +1,25 @@ -import { StoryFn, Meta, moduleMetadata } from '@storybook/angular'; +import { StoryFn, Meta, moduleMetadata, StoryObj } from '@storybook/angular'; import { ChipsModule } from './angular-src/chips.module'; import { ChipComponent } from './angular-src/chip.component'; -export default { +const meta: Meta = { component: ChipComponent, decorators: [ moduleMetadata({ imports: [ChipsModule], }), ], -} as Meta; +}; -export const Chip: StoryFn = (args) => ({ - props: args, -}); +export default meta; -Chip.args = { - displayText: 'Chip', -}; -Chip.argTypes = { - removeClicked: { action: 'Remove icon clicked' }, +type Story = StoryObj; + +export const Chip: Story = { + args: { + displayText: 'Chip', + }, + argTypes: { + removeClicked: { action: 'Remove icon clicked' }, + }, }; diff --git a/code/frameworks/angular/template/stories/basics/ng-module/import-module-for-root.stories.ts b/code/frameworks/angular/template/stories/basics/ng-module/import-module-for-root.stories.ts index 4777d60ccb5b..f94dd25d1b50 100644 --- a/code/frameworks/angular/template/stories/basics/ng-module/import-module-for-root.stories.ts +++ b/code/frameworks/angular/template/stories/basics/ng-module/import-module-for-root.stories.ts @@ -1,9 +1,9 @@ -import { StoryFn, Meta, moduleMetadata } from '@storybook/angular'; +import { StoryFn, Meta, moduleMetadata, StoryObj } from '@storybook/angular'; import { ChipsModule } from './angular-src/chips.module'; import { ChipsGroupComponent } from './angular-src/chips-group.component'; import { CHIP_COLOR } from './angular-src/chip-color.token'; -export default { +const meta: Meta = { // title: 'Basics / NgModule / forRoot() pattern', component: ChipsGroupComponent, decorators: [ @@ -27,24 +27,26 @@ export default { removeChipClick: { action: 'Remove chip' }, removeAllChipsClick: { action: 'Remove all chips clicked' }, }, -} as Meta; +}; -const Template = (): StoryFn => (args) => ({ - props: args, -}); +export default meta; -export const Base = Template(); -Base.storyName = 'Chips group'; +type Story = StoryObj; -export const WithCustomProvider = Template(); -WithCustomProvider.decorators = [ - moduleMetadata({ - providers: [ - { - provide: CHIP_COLOR, - useValue: 'yellow', - }, - ], - }), -]; -WithCustomProvider.storyName = 'Chips group with overridden provider'; +export const Base = { + storyName: 'Chips group', +}; + +export const WithCustomProvider = { + decorators: [ + moduleMetadata({ + providers: [ + { + provide: CHIP_COLOR, + useValue: 'yellow', + }, + ], + }), + ], + storyName: 'Chips group with overridden provider', +}; diff --git a/code/frameworks/angular/template/stories/basics/ng-module/import-module.stories.ts b/code/frameworks/angular/template/stories/basics/ng-module/import-module.stories.ts index 936f27235df7..83c250fc0856 100644 --- a/code/frameworks/angular/template/stories/basics/ng-module/import-module.stories.ts +++ b/code/frameworks/angular/template/stories/basics/ng-module/import-module.stories.ts @@ -1,8 +1,8 @@ -import { StoryFn, Meta, moduleMetadata } from '@storybook/angular'; +import { StoryFn, Meta, moduleMetadata, StoryObj } from '@storybook/angular'; import { ChipsModule } from './angular-src/chips.module'; import { ChipsGroupComponent } from './angular-src/chips-group.component'; -export default { +const meta: Meta = { // title: 'Basics / NgModule / Module with multiple component', component: ChipsGroupComponent, decorators: [ @@ -10,26 +10,27 @@ export default { imports: [ChipsModule], }), ], -} as Meta; +}; -export const ChipsGroup: StoryFn = (args) => ({ - props: args, -}); +export default meta; -ChipsGroup.args = { - chips: [ - { - id: 1, - text: 'Chip 1', - }, - { - id: 2, - text: 'Chip 2', - }, - ], -}; +type Story = StoryObj; -ChipsGroup.argTypes = { - removeChipClick: { action: 'Remove chip' }, - removeAllChipsClick: { action: 'Remove all chips clicked' }, +export const ChipsGroup: Story = { + args: { + chips: [ + { + id: 1, + text: 'Chip 1', + }, + { + id: 2, + text: 'Chip 2', + }, + ], + }, + argTypes: { + removeChipClick: { action: 'Remove chip' }, + removeAllChipsClick: { action: 'Remove all chips clicked' }, + }, }; diff --git a/code/frameworks/angular/template/stories/core/decorators/componentWrapperDecorator/decorators.stories.ts b/code/frameworks/angular/template/stories/core/decorators/componentWrapperDecorator/decorators.stories.ts index 0a69ddb34aba..78fa47cf8c00 100644 --- a/code/frameworks/angular/template/stories/core/decorators/componentWrapperDecorator/decorators.stories.ts +++ b/code/frameworks/angular/template/stories/core/decorators/componentWrapperDecorator/decorators.stories.ts @@ -1,10 +1,16 @@ // your-component.stories.ts -import { Args, Meta, Story, componentWrapperDecorator, moduleMetadata } from '@storybook/angular'; +import { + Args, + Meta, + StoryObj, + componentWrapperDecorator, + moduleMetadata, +} from '@storybook/angular'; import ChildComponent from './child.component'; import ParentComponent from './parent.component'; -export default { +const meta: Meta = { // title: 'Core / Decorators / ComponentWrapperDecorator', component: ChildComponent, decorators: [ @@ -14,72 +20,79 @@ export default { ], args: { childText: 'Child text', childPrivateText: 'Child private text' }, argTypes: { onClickChild: { action: 'onClickChild' } }, -} as Meta; +}; -export const WithTemplate = (args: Args) => ({ - template: `Child Template`, - props: { - ...args, - }, -}); +export default meta; -export const WithComponent = (args: Args) => ({ - props: { - ...args, - }, -}); +type Story = StoryObj; -export const WithLegacyComponent = (args: Args) => ({ - component: ChildComponent, - props: { - ...args, - }, -}); +export const WithTemplate: Story = { + render: (args: Args) => ({ + template: `Child Template`, + props: args, + }), +}; -export const WithComponentWrapperDecorator = (args: Args) => ({ - component: ChildComponent, - props: { - ...args, - }, -}); -WithComponentWrapperDecorator.decorators = [ - moduleMetadata({ declarations: [ParentComponent] }), - componentWrapperDecorator(ParentComponent), -]; +export const WithComponent: Story = {}; -export const WithComponentWrapperDecoratorAndProps = (args: Args) => ({ - component: ChildComponent, - props: { - ...args, - }, -}); -WithComponentWrapperDecoratorAndProps.decorators = [ - moduleMetadata({ declarations: [ParentComponent] }), - componentWrapperDecorator(ParentComponent, { - parentText: 'Parent text', - onClickParent: () => { - console.log('onClickParent'); +export const WithLegacyComponent: Story = { + render: (args: Args) => ({ + component: ChildComponent, + props: args, + }), +}; + +export const WithComponentWrapperDecorator: Story = { + render: (args: Args) => ({ + component: ChildComponent, + props: args, + }), + decorators: [ + moduleMetadata({ declarations: [ParentComponent] }), + componentWrapperDecorator(ParentComponent), + ], +}; + +export const WithComponentWrapperDecoratorAndProps: Story = { + render: (args: Args) => ({ + component: ChildComponent, + props: { + ...args, }, }), -]; + decorators: [ + moduleMetadata({ declarations: [ParentComponent] }), + componentWrapperDecorator(ParentComponent, { + parentText: 'Parent text', + onClickParent: () => { + console.log('onClickParent'); + }, + }), + ], +}; -export const WithComponentWrapperDecoratorAndArgs = (args: Args) => ({ - component: ChildComponent, - props: { - ...args, +export const WithComponentWrapperDecoratorAndArgs: StoryObj<{ + parentText: string; + onClickParent: () => void; +}> = { + render: (args: Args) => ({ + component: ChildComponent, + props: { + ...args, + }, + }), + argTypes: { + parentText: { control: { type: 'text' } }, + onClickParent: { action: 'onClickParent' }, }, -}); -WithComponentWrapperDecoratorAndArgs.argTypes = { - parentText: { control: { type: 'text' } }, - onClickParent: { action: 'onClickParent' }, + decorators: [ + moduleMetadata({ declarations: [ParentComponent] }), + componentWrapperDecorator(ParentComponent, ({ args }) => ({ + parentText: args.parentText, + onClickParent: args.onClickParent, + })), + ], }; -WithComponentWrapperDecoratorAndArgs.decorators = [ - moduleMetadata({ declarations: [ParentComponent] }), - componentWrapperDecorator(ParentComponent, ({ args }) => ({ - parentText: args.parentText, - onClickParent: args.onClickParent, - })), -]; export const WithCustomDecorator = (args: Args) => ({ template: `Child Template`, diff --git a/code/frameworks/angular/template/stories/core/parameters/bootstrap-options.stories.ts b/code/frameworks/angular/template/stories/core/parameters/bootstrap-options.stories.ts index d49a6b4ef4f7..527b10a0082f 100644 --- a/code/frameworks/angular/template/stories/core/parameters/bootstrap-options.stories.ts +++ b/code/frameworks/angular/template/stories/core/parameters/bootstrap-options.stories.ts @@ -1,4 +1,4 @@ -import { Meta, StoryFn } from '@storybook/angular'; +import { Meta, StoryObj } from '@storybook/angular'; import { Component } from '@angular/core'; @Component({ @@ -10,9 +10,13 @@ import { Component } from '@angular/core'; }) class ComponentWithWhitespace {} -export default { +const meta: Meta = { // title: 'Core / Parameters / With Bootstrap Options', component: ComponentWithWhitespace, -} as Meta; +}; -export const WithPreserveWhitespaces: StoryFn = (_args) => ({}); +export default meta; + +type Story = StoryObj; + +export const WithPreserveWhitespaces: Story = {}; diff --git a/code/frameworks/angular/template/stories/others/app-initializer-use-factory/app-initializer-use-factory.stories.ts b/code/frameworks/angular/template/stories/others/app-initializer-use-factory/app-initializer-use-factory.stories.ts index 2dc73b7ad3a0..32c5d1ebe296 100644 --- a/code/frameworks/angular/template/stories/others/app-initializer-use-factory/app-initializer-use-factory.stories.ts +++ b/code/frameworks/angular/template/stories/others/app-initializer-use-factory/app-initializer-use-factory.stories.ts @@ -1,4 +1,4 @@ -import { moduleMetadata, Meta } from '@storybook/angular'; +import { moduleMetadata, Meta, StoryObj } from '@storybook/angular'; import { APP_INITIALIZER } from '@angular/core'; import { action } from '@storybook/addon-actions'; import Button from '../../button.component'; @@ -27,7 +27,9 @@ const meta: Meta
+ `, + styles: [], + standalone: true, +}) +export class Template { + @Input() label = 'default label'; + + @Input() label2 = 'default label2'; + + @Output() changed = new EventEmitter(); + + inc() { + this.changed.emit('Increase'); + } +} diff --git a/code/frameworks/angular/template/stories/basics/component-with-template/template.stories.ts b/code/frameworks/angular/template/stories/basics/component-with-template/template.stories.ts new file mode 100644 index 000000000000..55639870f262 --- /dev/null +++ b/code/frameworks/angular/template/stories/basics/component-with-template/template.stories.ts @@ -0,0 +1,24 @@ +import { Meta, StoryObj, argsToTemplate } from '@storybook/angular'; +import { Template } from './template.component'; + +const meta: Meta