diff --git a/code/addons/links/package.json b/code/addons/links/package.json index 7811c108d2a7..8a98d88b01e3 100644 --- a/code/addons/links/package.json +++ b/code/addons/links/package.json @@ -65,7 +65,7 @@ "prep": "jiti ../../../scripts/prepare/addon-bundle.ts" }, "dependencies": { - "@storybook/csf": "^0.1.11", + "@storybook/csf": "0.1.12--canary.109.1cc9957.0", "@storybook/global": "^5.0.0", "ts-dedent": "^2.0.0" }, diff --git a/code/addons/test/package.json b/code/addons/test/package.json index b778853351e5..f365e14a4c9a 100644 --- a/code/addons/test/package.json +++ b/code/addons/test/package.json @@ -75,7 +75,7 @@ "prep": "jiti ../../../scripts/prepare/addon-bundle.ts" }, "dependencies": { - "@storybook/csf": "^0.1.11", + "@storybook/csf": "0.1.12--canary.109.1cc9957.0", "@storybook/global": "^5.0.0", "@storybook/icons": "^1.2.12", "@storybook/instrumenter": "workspace:*", diff --git a/code/core/package.json b/code/core/package.json index 919e462ebd30..cca9b1b9ed92 100644 --- a/code/core/package.json +++ b/code/core/package.json @@ -277,7 +277,7 @@ "prep": "jiti ./scripts/prep.ts" }, "dependencies": { - "@storybook/csf": "^0.1.11", + "@storybook/csf": "0.1.12--canary.109.1cc9957.0", "better-opn": "^3.0.2", "browser-assert": "^1.2.1", "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0", diff --git a/code/core/src/preview-api/modules/preview-web/render/StoryRender.test.ts b/code/core/src/preview-api/modules/preview-web/render/StoryRender.test.ts index 2bd3a9ca3830..8c5572b136f9 100644 --- a/code/core/src/preview-api/modules/preview-web/render/StoryRender.test.ts +++ b/code/core/src/preview-api/modules/preview-web/render/StoryRender.test.ts @@ -40,6 +40,7 @@ const buildStory = (overrides: Partial = {}): PreparedStory => tags: [], applyLoaders: vi.fn(), applyBeforeEach: vi.fn(), + applyAfterEach: vi.fn(), unboundStoryFn: vi.fn(), playFunction: vi.fn(), mount: (context: StoryContext) => () => mountSpy(context), diff --git a/code/core/src/preview-api/modules/preview-web/render/StoryRender.ts b/code/core/src/preview-api/modules/preview-web/render/StoryRender.ts index 3441a5c64e97..02ceb34376b5 100644 --- a/code/core/src/preview-api/modules/preview-web/render/StoryRender.ts +++ b/code/core/src/preview-api/modules/preview-web/render/StoryRender.ts @@ -33,6 +33,7 @@ export type RenderPhase = | 'rendering' | 'playing' | 'played' + | 'afterEach' | 'completed' | 'aborted' | 'errored'; @@ -132,7 +133,9 @@ export class StoryRender implements Render implements Render implements Render { + await applyAfterEach(context); + }); } catch (error) { // Remove the loading screen, even if there was an error before rendering this.callbacks.showStoryDuringRender?.(); diff --git a/code/core/src/preview-api/modules/store/StoryStore.test.ts b/code/core/src/preview-api/modules/store/StoryStore.test.ts index 4cc27210c5af..b28638960727 100644 --- a/code/core/src/preview-api/modules/store/StoryStore.test.ts +++ b/code/core/src/preview-api/modules/store/StoryStore.test.ts @@ -645,6 +645,7 @@ describe('StoryStore', () => { expect(store.raw()).toMatchInlineSnapshot(` [ { + "applyAfterEach": [Function], "applyBeforeEach": [Function], "applyLoaders": [Function], "argTypes": { @@ -698,6 +699,7 @@ describe('StoryStore', () => { "usesMount": false, }, { + "applyAfterEach": [Function], "applyBeforeEach": [Function], "applyLoaders": [Function], "argTypes": { @@ -751,6 +753,7 @@ describe('StoryStore', () => { "usesMount": false, }, { + "applyAfterEach": [Function], "applyBeforeEach": [Function], "applyLoaders": [Function], "argTypes": { diff --git a/code/core/src/preview-api/modules/store/csf/composeConfigs.test.ts b/code/core/src/preview-api/modules/store/csf/composeConfigs.test.ts index 035aa60e7e14..f329468148eb 100644 --- a/code/core/src/preview-api/modules/store/csf/composeConfigs.test.ts +++ b/code/core/src/preview-api/modules/store/csf/composeConfigs.test.ts @@ -25,6 +25,7 @@ describe('composeConfigs', () => { loaders: [], beforeAll: expect.any(Function), beforeEach: [], + afterEach: [], runStep: expect.any(Function), tags: [], }); @@ -53,6 +54,7 @@ describe('composeConfigs', () => { loaders: [], beforeAll: expect.any(Function), beforeEach: [], + afterEach: [], runStep: expect.any(Function), tags: [], }); @@ -85,6 +87,7 @@ describe('composeConfigs', () => { loaders: [], beforeAll: expect.any(Function), beforeEach: [], + afterEach: [], runStep: expect.any(Function), tags: [], }); @@ -123,6 +126,7 @@ describe('composeConfigs', () => { loaders: [], beforeAll: expect.any(Function), beforeEach: [], + afterEach: [], runStep: expect.any(Function), tags: [], }); @@ -164,6 +168,7 @@ describe('composeConfigs', () => { loaders: [], beforeAll: expect.any(Function), beforeEach: [], + afterEach: [], runStep: expect.any(Function), tags: [], }); @@ -196,6 +201,7 @@ describe('composeConfigs', () => { loaders: ['1', '2', '3', '4'], beforeAll: expect.any(Function), beforeEach: [], + afterEach: [], runStep: expect.any(Function), tags: [], }); @@ -228,6 +234,7 @@ describe('composeConfigs', () => { loaders: ['1', '2', '3'], beforeAll: expect.any(Function), beforeEach: [], + afterEach: [], runStep: expect.any(Function), tags: [], }); @@ -256,6 +263,7 @@ describe('composeConfigs', () => { loaders: [], beforeAll: expect.any(Function), beforeEach: [], + afterEach: [], runStep: expect.any(Function), tags: [], }); @@ -285,6 +293,7 @@ describe('composeConfigs', () => { loaders: [], beforeAll: expect.any(Function), beforeEach: [], + afterEach: [], runStep: expect.any(Function), tags: [], }); @@ -317,6 +326,7 @@ describe('composeConfigs', () => { loaders: [], beforeAll: expect.any(Function), beforeEach: [], + afterEach: [], render: 'render-2', renderToCanvas: 'renderToCanvas-2', applyDecorators: 'applyDecorators-2', diff --git a/code/core/src/preview-api/modules/store/csf/composeConfigs.ts b/code/core/src/preview-api/modules/store/csf/composeConfigs.ts index 545ab719e5a3..5aa30ac84202 100644 --- a/code/core/src/preview-api/modules/store/csf/composeConfigs.ts +++ b/code/core/src/preview-api/modules/store/csf/composeConfigs.ts @@ -64,6 +64,7 @@ export function composeConfigs( loaders: getArrayField(moduleExportList, 'loaders'), beforeAll: composeBeforeAllHooks(beforeAllHooks), beforeEach: getArrayField(moduleExportList, 'beforeEach'), + afterEach: getArrayField(moduleExportList, 'afterEach'), render: getSingletonField(moduleExportList, 'render'), renderToCanvas: getSingletonField(moduleExportList, 'renderToCanvas'), renderToDOM: getSingletonField(moduleExportList, 'renderToDOM'), // deprecated diff --git a/code/core/src/preview-api/modules/store/csf/normalizeProjectAnnotations.ts b/code/core/src/preview-api/modules/store/csf/normalizeProjectAnnotations.ts index 26711a130106..44d86344dbab 100644 --- a/code/core/src/preview-api/modules/store/csf/normalizeProjectAnnotations.ts +++ b/code/core/src/preview-api/modules/store/csf/normalizeProjectAnnotations.ts @@ -26,6 +26,7 @@ export function normalizeProjectAnnotations({ decorators, loaders, beforeEach, + afterEach, globals, initialGlobals, ...annotations @@ -44,6 +45,7 @@ export function normalizeProjectAnnotations({ decorators: normalizeArrays(decorators), loaders: normalizeArrays(loaders), beforeEach: normalizeArrays(beforeEach), + afterEach: normalizeArrays(afterEach), argTypesEnhancers: [ ...(argTypesEnhancers || []), inferArgTypes, diff --git a/code/core/src/preview-api/modules/store/csf/normalizeStory.test.ts b/code/core/src/preview-api/modules/store/csf/normalizeStory.test.ts index ddacda230514..d20a8c3dbe1d 100644 --- a/code/core/src/preview-api/modules/store/csf/normalizeStory.test.ts +++ b/code/core/src/preview-api/modules/store/csf/normalizeStory.test.ts @@ -52,6 +52,7 @@ describe('normalizeStory', () => { const meta = { id: 'title', title: 'title' }; expect(normalizeStory('storyExport', storyFn, meta)).toMatchInlineSnapshot(` { + "afterEach": [], "argTypes": {}, "args": {}, "beforeEach": [], @@ -123,6 +124,7 @@ describe('normalizeStory', () => { const normalized = normalizeStory('storyExport', storyObj, meta); expect(normalized).toMatchInlineSnapshot(` { + "afterEach": [], "argTypes": {}, "args": {}, "beforeEach": [], @@ -152,6 +154,7 @@ describe('normalizeStory', () => { const { moduleExport, ...normalized } = normalizeStory('storyExport', storyObj, meta); expect(normalized).toMatchInlineSnapshot(` { + "afterEach": [], "argTypes": { "storyArgType": { "name": "storyArgType", @@ -202,6 +205,7 @@ describe('normalizeStory', () => { const { moduleExport, ...normalized } = normalizeStory('storyExport', storyObj, meta); expect(normalized).toMatchInlineSnapshot(` { + "afterEach": [], "argTypes": { "storyArgType": { "name": "storyArgType", diff --git a/code/core/src/preview-api/modules/store/csf/normalizeStory.ts b/code/core/src/preview-api/modules/store/csf/normalizeStory.ts index 2dd2ae957390..a7472c17aa2e 100644 --- a/code/core/src/preview-api/modules/store/csf/normalizeStory.ts +++ b/code/core/src/preview-api/modules/store/csf/normalizeStory.ts @@ -60,6 +60,10 @@ export function normalizeStory( ...normalizeArrays(storyObject.beforeEach), ...normalizeArrays(story?.beforeEach), ]; + const afterEach = [ + ...normalizeArrays(storyObject.afterEach), + ...normalizeArrays(story?.afterEach), + ]; const { render, play, tags = [], globals = {} } = storyObject; // eslint-disable-next-line no-underscore-dangle @@ -75,6 +79,7 @@ export function normalizeStory( argTypes: normalizeInputTypes(argTypes), loaders, beforeEach, + afterEach, globals, ...(render && { render }), ...(userStoryFn && { userStoryFn }), diff --git a/code/core/src/preview-api/modules/store/csf/portable-stories.ts b/code/core/src/preview-api/modules/store/csf/portable-stories.ts index b9efd7da9792..3e09278cdc04 100644 --- a/code/core/src/preview-api/modules/store/csf/portable-stories.ts +++ b/code/core/src/preview-api/modules/store/csf/portable-stories.ts @@ -408,4 +408,6 @@ async function runStory( } await playFunction(context); } + + await story.applyAfterEach(context); } diff --git a/code/core/src/preview-api/modules/store/csf/prepareStory.test.ts b/code/core/src/preview-api/modules/store/csf/prepareStory.test.ts index e91a6fcfea05..0b97531629b1 100644 --- a/code/core/src/preview-api/modules/store/csf/prepareStory.test.ts +++ b/code/core/src/preview-api/modules/store/csf/prepareStory.test.ts @@ -792,6 +792,7 @@ describe('prepareMeta', () => { story, applyLoaders, applyBeforeEach, + applyAfterEach, originalStoryFn, unboundStoryFn, undecoratedStoryFn, diff --git a/code/core/src/preview-api/modules/store/csf/prepareStory.ts b/code/core/src/preview-api/modules/store/csf/prepareStory.ts index d6db661270d3..fd22bd34a110 100644 --- a/code/core/src/preview-api/modules/store/csf/prepareStory.ts +++ b/code/core/src/preview-api/modules/store/csf/prepareStory.ts @@ -92,6 +92,20 @@ export function prepareStory( return cleanupCallbacks; }; + const applyAfterEach = async (context: StoryContext): Promise => { + const reversedFinalizers = [ + ...normalizeArrays(projectAnnotations.afterEach), + ...normalizeArrays(componentAnnotations.afterEach), + ...normalizeArrays(storyAnnotations.afterEach), + ].reverse(); + for (const finalizer of reversedFinalizers) { + if (context.abortSignal.aborted) { + return; + } + await finalizer(context); + } + }; + const undecoratedStoryFn = (context: StoryContext) => (context.originalStoryFn as ArgsStoryFn)(context.args, context); @@ -150,6 +164,7 @@ export function prepareStory( unboundStoryFn, applyLoaders, applyBeforeEach, + applyAfterEach, playFunction, runStep, mount, diff --git a/code/core/src/types/modules/story.ts b/code/core/src/types/modules/story.ts index f8deb8c522f0..c4b07fa1cd30 100644 --- a/code/core/src/types/modules/story.ts +++ b/code/core/src/types/modules/story.ts @@ -109,6 +109,7 @@ export type PreparedStory = unboundStoryFn: LegacyStoryFn; applyLoaders: (context: StoryContext) => Promise['loaded']>; applyBeforeEach: (context: StoryContext) => Promise; + applyAfterEach: (context: StoryContext) => Promise; playFunction?: (context: StoryContext) => Promise | void; runStep: StepRunner; mount: (context: StoryContext) => () => Promise; diff --git a/code/lib/blocks/package.json b/code/lib/blocks/package.json index d7206af15ab5..343765ee1583 100644 --- a/code/lib/blocks/package.json +++ b/code/lib/blocks/package.json @@ -43,7 +43,7 @@ "prep": "jiti ../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/csf": "^0.1.11", + "@storybook/csf": "0.1.12--canary.109.1cc9957.0", "@storybook/icons": "^1.2.12", "ts-dedent": "^2.0.0" }, diff --git a/code/lib/codemod/package.json b/code/lib/codemod/package.json index 0ba9b276559b..6793853a3cd4 100644 --- a/code/lib/codemod/package.json +++ b/code/lib/codemod/package.json @@ -58,7 +58,7 @@ "@babel/preset-env": "^7.24.4", "@babel/types": "^7.24.0", "@storybook/core": "workspace:*", - "@storybook/csf": "^0.1.11", + "@storybook/csf": "0.1.12--canary.109.1cc9957.0", "@types/cross-spawn": "^6.0.2", "cross-spawn": "^7.0.3", "es-toolkit": "^1.22.0", diff --git a/code/lib/source-loader/package.json b/code/lib/source-loader/package.json index 126a0aa63551..fc28821b3922 100644 --- a/code/lib/source-loader/package.json +++ b/code/lib/source-loader/package.json @@ -44,7 +44,7 @@ "prep": "jiti ../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/csf": "^0.1.11", + "@storybook/csf": "0.1.12--canary.109.1cc9957.0", "es-toolkit": "^1.22.0", "estraverse": "^5.2.0", "prettier": "^3.1.1" diff --git a/code/lib/test/package.json b/code/lib/test/package.json index 036df428d0bc..fe1bb19fd958 100644 --- a/code/lib/test/package.json +++ b/code/lib/test/package.json @@ -43,7 +43,7 @@ "prep": "jiti ../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/csf": "^0.1.11", + "@storybook/csf": "0.1.12--canary.109.1cc9957.0", "@storybook/global": "^5.0.0", "@storybook/instrumenter": "workspace:*", "@testing-library/dom": "10.4.0", diff --git a/code/lib/test/template/stories/before-each.stories.ts b/code/lib/test/template/stories/before-each.stories.ts index 79c31874c813..040c1e88043a 100644 --- a/code/lib/test/template/stories/before-each.stories.ts +++ b/code/lib/test/template/stories/before-each.stories.ts @@ -3,45 +3,11 @@ import { expect, getByRole, mocked, spyOn, userEvent } from '@storybook/test'; const meta = { component: globalThis.Components.Button, - loaders() { - spyOn(console, 'log').mockName('console.log'); - console.log('1 - [from loaders]'); - }, - beforeEach() { - console.log('2 - [from meta beforeEach]'); - }, + args: { label: 'Button' }, }; export default meta; -export const BeforeEachOrder = { - parameters: { chromatic: { disable: true } }, - beforeEach() { - console.log('3 - [from story beforeEach]'); - }, - decorators: (StoryFn: any) => { - console.log('4 - [from decorator]'); - return StoryFn(); - }, - args: { - label: 'Button', - onClick: () => { - console.log('5 - [from onClick]'); - }, - }, - async play({ canvasElement }: any) { - await userEvent.click(getByRole(canvasElement, 'button')); - - await expect(mocked(console.log).mock.calls).toEqual([ - ['1 - [from loaders]'], - ['2 - [from meta beforeEach]'], - ['3 - [from story beforeEach]'], - ['4 - [from decorator]'], - ['5 - [from onClick]'], - ]); - }, -}; - export const before_each_and_loaders_can_extend_context = { parameters: { chromatic: { disable: true } }, loaders(context) { diff --git a/code/lib/test/template/stories/mount-in-play.stories.ts b/code/lib/test/template/stories/mount-in-play.stories.ts index c7acb7dce688..22c92497783d 100644 --- a/code/lib/test/template/stories/mount-in-play.stories.ts +++ b/code/lib/test/template/stories/mount-in-play.stories.ts @@ -1,49 +1,9 @@ -import { expect, fn, getByRole, mocked, spyOn, userEvent } from '@storybook/test'; +import { expect, fn } from '@storybook/test'; -const meta = { - component: globalThis.Components.Button, - loaders() { - spyOn(console, 'log').mockName('console.log'); - console.log('1 - [from loaders]'); - }, - beforeEach() { - console.log('2 - [from meta beforeEach]'); - }, -}; +const meta = { component: globalThis.Components.Button }; export default meta; -export const MountInPlay = { - beforeEach() { - console.log('3 - [from story beforeEach]'); - }, - decorators: (storyFn) => { - console.log('5 - [from decorator]'); - return storyFn(); - }, - args: { - label: 'Button', - onClick: () => { - console.log('7 - [from onClick]'); - }, - }, - async play({ mount, canvasElement }) { - console.log('4 - [before mount]'); - await mount(); - console.log('6 - [after mount]'); - await userEvent.click(getByRole(canvasElement, 'button')); - await expect(mocked(console.log).mock.calls).toEqual([ - ['1 - [from loaders]'], - ['2 - [from meta beforeEach]'], - ['3 - [from story beforeEach]'], - ['4 - [before mount]'], - ['5 - [from decorator]'], - ['6 - [after mount]'], - ['7 - [from onClick]'], - ]); - }, -}; - export const MountShouldBeDestructured = { parameters: { chromatic: { disable: true } }, args: { diff --git a/code/lib/test/template/stories/order-of-hooks.ts b/code/lib/test/template/stories/order-of-hooks.ts new file mode 100644 index 000000000000..36867f78dc59 --- /dev/null +++ b/code/lib/test/template/stories/order-of-hooks.ts @@ -0,0 +1,54 @@ +import { expect, fn, getByRole, mocked, spyOn, userEvent } from '@storybook/test'; + +const meta = { + component: globalThis.Components.Button, + loaders() { + spyOn(console, 'log').mockName('console.log'); + console.log('1 - [from loaders]'); + }, + beforeEach() { + console.log('2 - [from meta beforeEach]'); + }, + async afterEach() { + console.log('9 - [from meta afterEach]'); + + await expect(mocked(console.log).mock.calls).toEqual([ + ['1 - [from loaders]'], + ['2 - [from meta beforeEach]'], + ['3 - [from story beforeEach]'], + ['4 - [before mount]'], + ['5 - [from decorator]'], + ['6 - [after mount]'], + ['7 - [from onClick]'], + ['8 - [from story afterEach]'], + ['9 - [from meta afterEach]'], + ]); + }, +}; + +export default meta; + +export const OrderOfHooks = { + beforeEach() { + console.log('3 - [from story beforeEach]'); + }, + decorators: (storyFn) => { + console.log('5 - [from decorator]'); + return storyFn(); + }, + args: { + label: 'Button', + onClick: () => { + console.log('7 - [from onClick]'); + }, + }, + async play({ mount, canvasElement }) { + console.log('4 - [before mount]'); + await mount(); + console.log('6 - [after mount]'); + await userEvent.click(getByRole(canvasElement, 'button')); + }, + async afterEach() { + console.log('8 - [from story afterEach]'); + }, +}; diff --git a/code/package.json b/code/package.json index 2fc645efc459..e99dfaa28ff3 100644 --- a/code/package.json +++ b/code/package.json @@ -123,7 +123,7 @@ "@storybook/codemod": "workspace:*", "@storybook/core": "workspace:*", "@storybook/core-webpack": "workspace:*", - "@storybook/csf": "0.1.11", + "@storybook/csf": "0.1.12--canary.109.1cc9957.0", "@storybook/csf-plugin": "workspace:*", "@storybook/ember": "workspace:*", "@storybook/eslint-config-storybook": "^4.0.0", diff --git a/code/renderers/server/package.json b/code/renderers/server/package.json index 4881b9b86228..0c91b62b8b1b 100644 --- a/code/renderers/server/package.json +++ b/code/renderers/server/package.json @@ -46,7 +46,7 @@ }, "dependencies": { "@storybook/components": "workspace:*", - "@storybook/csf": "^0.1.11", + "@storybook/csf": "0.1.12--canary.109.1cc9957.0", "@storybook/global": "^5.0.0", "@storybook/manager-api": "workspace:*", "@storybook/preview-api": "workspace:*", diff --git a/code/yarn.lock b/code/yarn.lock index 272933533d60..65f531aa7ba5 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -5541,7 +5541,7 @@ __metadata: version: 0.0.0-use.local resolution: "@storybook/addon-links@workspace:addons/links" dependencies: - "@storybook/csf": "npm:^0.1.11" + "@storybook/csf": "npm:0.1.12--canary.109.1cc9957.0" "@storybook/global": "npm:^5.0.0" ts-dedent: "npm:^2.0.0" typescript: "npm:^5.3.2" @@ -5767,7 +5767,7 @@ __metadata: resolution: "@storybook/blocks@workspace:lib/blocks" dependencies: "@storybook/addon-actions": "workspace:*" - "@storybook/csf": "npm:^0.1.11" + "@storybook/csf": "npm:0.1.12--canary.109.1cc9957.0" "@storybook/icons": "npm:^1.2.12" "@storybook/react": "workspace:*" "@storybook/test": "workspace:*" @@ -5937,7 +5937,7 @@ __metadata: "@babel/preset-env": "npm:^7.24.4" "@babel/types": "npm:^7.24.0" "@storybook/core": "workspace:*" - "@storybook/csf": "npm:^0.1.11" + "@storybook/csf": "npm:0.1.12--canary.109.1cc9957.0" "@types/cross-spawn": "npm:^6.0.2" "@types/jscodeshift": "npm:^0.11.10" ansi-regex: "npm:^6.0.1" @@ -6033,7 +6033,7 @@ __metadata: "@radix-ui/react-dialog": "npm:^1.0.5" "@radix-ui/react-scroll-area": "npm:1.2.0-rc.7" "@radix-ui/react-slot": "npm:^1.0.2" - "@storybook/csf": "npm:^0.1.11" + "@storybook/csf": "npm:0.1.12--canary.109.1cc9957.0" "@storybook/docs-mdx": "npm:4.0.0-next.1" "@storybook/global": "npm:^5.0.0" "@storybook/icons": "npm:^1.2.12" @@ -6172,12 +6172,12 @@ __metadata: languageName: unknown linkType: soft -"@storybook/csf@npm:0.1.11, @storybook/csf@npm:^0.1.11": - version: 0.1.11 - resolution: "@storybook/csf@npm:0.1.11" +"@storybook/csf@npm:0.1.12--canary.109.1cc9957.0": + version: 0.1.12--canary.109.1cc9957.0 + resolution: "@storybook/csf@npm:0.1.12--canary.109.1cc9957.0" dependencies: type-fest: "npm:^2.19.0" - checksum: 10c0/c5329fc13e7d762049b5c91df1bc1c0e510a1a898c401b72b68f1ff64139a85ab64a92f8e681d2fcb226c0a4a55d0f23b569b2bdb517e0f067bd05ea46228356 + checksum: 10c0/2c76529d168a7bfc39f6a8d42b5485df7e1e6d08af43a420e476cdc850689c0ce999e659a3e491b30a512034c668ed594872d11f51d0fd5222714d7a85911287 languageName: node linkType: hard @@ -6244,7 +6244,7 @@ __metadata: resolution: "@storybook/experimental-addon-test@workspace:addons/test" dependencies: "@devtools-ds/object-inspector": "npm:^1.1.2" - "@storybook/csf": "npm:^0.1.11" + "@storybook/csf": "npm:0.1.12--canary.109.1cc9957.0" "@storybook/global": "npm:^5.0.0" "@storybook/icons": "npm:^1.2.12" "@storybook/instrumenter": "workspace:*" @@ -6866,7 +6866,7 @@ __metadata: "@storybook/codemod": "workspace:*" "@storybook/core": "workspace:*" "@storybook/core-webpack": "workspace:*" - "@storybook/csf": "npm:0.1.11" + "@storybook/csf": "npm:0.1.12--canary.109.1cc9957.0" "@storybook/csf-plugin": "workspace:*" "@storybook/ember": "workspace:*" "@storybook/eslint-config-storybook": "npm:^4.0.0" @@ -7012,7 +7012,7 @@ __metadata: resolution: "@storybook/server@workspace:renderers/server" dependencies: "@storybook/components": "workspace:*" - "@storybook/csf": "npm:^0.1.11" + "@storybook/csf": "npm:0.1.12--canary.109.1cc9957.0" "@storybook/global": "npm:^5.0.0" "@storybook/manager-api": "workspace:*" "@storybook/preview-api": "workspace:*" @@ -7029,7 +7029,7 @@ __metadata: version: 0.0.0-use.local resolution: "@storybook/source-loader@workspace:lib/source-loader" dependencies: - "@storybook/csf": "npm:^0.1.11" + "@storybook/csf": "npm:0.1.12--canary.109.1cc9957.0" es-toolkit: "npm:^1.22.0" estraverse: "npm:^5.2.0" prettier: "npm:^3.1.1" @@ -7143,7 +7143,7 @@ __metadata: version: 0.0.0-use.local resolution: "@storybook/test@workspace:lib/test" dependencies: - "@storybook/csf": "npm:^0.1.11" + "@storybook/csf": "npm:0.1.12--canary.109.1cc9957.0" "@storybook/global": "npm:^5.0.0" "@storybook/instrumenter": "workspace:*" "@testing-library/dom": "npm:10.4.0"