@storybook/cli 9.0.0-rc.4 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -103,7 +103,7 @@
103
103
  2. Upgrade to ${import_picocolors33.default.bold("Vitest 3")} to continue using the addon
104
104
 
105
105
  After addressing this, you can try running the upgrade command again.
106
- `}}}});var import_cli5=require("storybook/internal/cli"),import_common25=require("storybook/internal/common"),import_core_server2=require("storybook/internal/core-server"),import_node_logger4=require("storybook/internal/node-logger"),import_telemetry2=require("storybook/internal/telemetry"),import_commander=require("commander"),import_envinfo=__toESM(require("envinfo"),1),import_leven=__toESM(require("leven"),1),import_picocolors36=__toESM(require_picocolors(),1);var version="9.0.0-rc.4";var import_node_path2=require("path"),import_common3=require("storybook/internal/common"),import_csf_tools2=require("storybook/internal/csf-tools"),import_prompts=__toESM(require("prompts"),1),import_semver=__toESM(require("semver"),1),import_ts_dedent2=require("ts-dedent");var import_babel=require("storybook/internal/babel"),defaultRequireWrapperName="getAbsolutePath";function doesVariableOrFunctionDeclarationExist(node,name){return import_babel.types.isVariableDeclaration(node)&&node.declarations.length===1&&import_babel.types.isVariableDeclarator(node.declarations[0])&&import_babel.types.isIdentifier(node.declarations[0].id)&&node.declarations[0].id?.name===name||import_babel.types.isFunctionDeclaration(node)&&import_babel.types.isIdentifier(node.id)&&node.id.name===name}function getReferenceToRequireWrapper(config,value){return import_babel.types.callExpression(import_babel.types.identifier(getRequireWrapperName(config)??defaultRequireWrapperName),[import_babel.types.stringLiteral(value)])}function getRequireWrapperName(config){let declarationName=config.getBodyDeclarations().flatMap(node=>doesVariableOrFunctionDeclarationExist(node,"wrapForPnp")?["wrapForPnp"]:doesVariableOrFunctionDeclarationExist(node,defaultRequireWrapperName)?[defaultRequireWrapperName]:[]);return declarationName.length?declarationName[0]:null}function isRequireWrapperNecessary(node,cb=()=>{}){if(import_babel.types.isStringLiteral(node))return cb(node),!0;if(import_babel.types.isObjectExpression(node)){let nameProperty=node.properties.find(property=>import_babel.types.isObjectProperty(property)&&import_babel.types.isIdentifier(property.key)&&property.key.name==="name");if(nameProperty&&import_babel.types.isStringLiteral(nameProperty.value))return cb(nameProperty),!0}return import_babel.types.isArrayExpression(node)&&node.elements.some(element=>element&&isRequireWrapperNecessary(element))?(cb(node),!0):!1}function getFieldsForRequireWrapper(config){let frameworkNode=config.getFieldNode(["framework"]),builderNode=config.getFieldNode(["core","builder"]),rendererNode=config.getFieldNode(["core","renderer"]),addons=config.getFieldNode(["addons"]);return[...frameworkNode?[frameworkNode]:[],...builderNode?[builderNode]:[],...rendererNode?[rendererNode]:[],...addons&&import_babel.types.isArrayExpression(addons)?[addons]:[]]}function getRequireWrapperAsCallExpression(isConfigTypescript){let functionDeclaration={...import_babel.types.functionDeclaration(import_babel.types.identifier(defaultRequireWrapperName),[{...import_babel.types.identifier("value"),...isConfigTypescript?{typeAnnotation:import_babel.types.tsTypeAnnotation(import_babel.types.tSStringKeyword())}:{}}],import_babel.types.blockStatement([import_babel.types.returnStatement(import_babel.types.callExpression(import_babel.types.identifier("dirname"),[import_babel.types.callExpression(import_babel.types.memberExpression(import_babel.types.identifier("require"),import_babel.types.identifier("resolve")),[import_babel.types.callExpression(import_babel.types.identifier("join"),[import_babel.types.identifier("value"),import_babel.types.stringLiteral("package.json")])])]))])),...isConfigTypescript?{returnType:import_babel.types.tSTypeAnnotation(import_babel.types.tsAnyKeyword())}:{}};return import_babel.types.addComment(functionDeclaration,"leading",`*
106
+ `}}}});var import_cli5=require("storybook/internal/cli"),import_common25=require("storybook/internal/common"),import_core_server2=require("storybook/internal/core-server"),import_node_logger4=require("storybook/internal/node-logger"),import_telemetry2=require("storybook/internal/telemetry"),import_commander=require("commander"),import_envinfo=__toESM(require("envinfo"),1),import_leven=__toESM(require("leven"),1),import_picocolors36=__toESM(require_picocolors(),1);var version="9.0.0";var import_node_path2=require("path"),import_common3=require("storybook/internal/common"),import_csf_tools2=require("storybook/internal/csf-tools"),import_prompts=__toESM(require("prompts"),1),import_semver=__toESM(require("semver"),1),import_ts_dedent2=require("ts-dedent");var import_babel=require("storybook/internal/babel"),defaultRequireWrapperName="getAbsolutePath";function doesVariableOrFunctionDeclarationExist(node,name){return import_babel.types.isVariableDeclaration(node)&&node.declarations.length===1&&import_babel.types.isVariableDeclarator(node.declarations[0])&&import_babel.types.isIdentifier(node.declarations[0].id)&&node.declarations[0].id?.name===name||import_babel.types.isFunctionDeclaration(node)&&import_babel.types.isIdentifier(node.id)&&node.id.name===name}function getReferenceToRequireWrapper(config,value){return import_babel.types.callExpression(import_babel.types.identifier(getRequireWrapperName(config)??defaultRequireWrapperName),[import_babel.types.stringLiteral(value)])}function getRequireWrapperName(config){let declarationName=config.getBodyDeclarations().flatMap(node=>doesVariableOrFunctionDeclarationExist(node,"wrapForPnp")?["wrapForPnp"]:doesVariableOrFunctionDeclarationExist(node,defaultRequireWrapperName)?[defaultRequireWrapperName]:[]);return declarationName.length?declarationName[0]:null}function isRequireWrapperNecessary(node,cb=()=>{}){if(import_babel.types.isStringLiteral(node))return cb(node),!0;if(import_babel.types.isObjectExpression(node)){let nameProperty=node.properties.find(property=>import_babel.types.isObjectProperty(property)&&import_babel.types.isIdentifier(property.key)&&property.key.name==="name");if(nameProperty&&import_babel.types.isStringLiteral(nameProperty.value))return cb(nameProperty),!0}return import_babel.types.isArrayExpression(node)&&node.elements.some(element=>element&&isRequireWrapperNecessary(element))?(cb(node),!0):!1}function getFieldsForRequireWrapper(config){let frameworkNode=config.getFieldNode(["framework"]),builderNode=config.getFieldNode(["core","builder"]),rendererNode=config.getFieldNode(["core","renderer"]),addons=config.getFieldNode(["addons"]);return[...frameworkNode?[frameworkNode]:[],...builderNode?[builderNode]:[],...rendererNode?[rendererNode]:[],...addons&&import_babel.types.isArrayExpression(addons)?[addons]:[]]}function getRequireWrapperAsCallExpression(isConfigTypescript){let functionDeclaration={...import_babel.types.functionDeclaration(import_babel.types.identifier(defaultRequireWrapperName),[{...import_babel.types.identifier("value"),...isConfigTypescript?{typeAnnotation:import_babel.types.tsTypeAnnotation(import_babel.types.tSStringKeyword())}:{}}],import_babel.types.blockStatement([import_babel.types.returnStatement(import_babel.types.callExpression(import_babel.types.identifier("dirname"),[import_babel.types.callExpression(import_babel.types.memberExpression(import_babel.types.identifier("require"),import_babel.types.identifier("resolve")),[import_babel.types.callExpression(import_babel.types.identifier("join"),[import_babel.types.identifier("value"),import_babel.types.stringLiteral("package.json")])])]))])),...isConfigTypescript?{returnType:import_babel.types.tSTypeAnnotation(import_babel.types.tsAnyKeyword())}:{}};return import_babel.types.addComment(functionDeclaration,"leading",`*
107
107
  * This function is used to resolve the absolute path of a package.
108
108
  * It is needed in projects that use Yarn PnP or are set up within a monorepo.
109
109
  `),functionDeclaration}function wrapValueWithRequireWrapper(config,node){isRequireWrapperNecessary(node,n=>{if(import_babel.types.isStringLiteral(n)){let wrapperNode=getReferenceToRequireWrapper(config,n.value);Object.keys(n).forEach(k=>{delete n[k]}),Object.keys(wrapperNode).forEach(k=>{n[k]=wrapperNode[k]})}import_babel.types.isObjectProperty(n)&&import_babel.types.isStringLiteral(n.value)&&(n.value=getReferenceToRequireWrapper(config,n.value.value)),import_babel.types.isArrayExpression(n)&&n.elements.forEach(element=>{element&&isRequireWrapperNecessary(element)&&wrapValueWithRequireWrapper(config,element)})})}var import_node_path=require("path"),import_common=require("storybook/internal/common"),import_common2=require("storybook/internal/common"),import_csf_tools=require("storybook/internal/csf-tools"),import_picocolors=__toESM(require_picocolors(),1),import_ts_dedent=require("ts-dedent"),logger=console,getFrameworkPackageName=mainConfig=>{let packageNameOrPath=typeof mainConfig?.framework=="string"?mainConfig.framework:mainConfig?.framework?.name;return packageNameOrPath?(0,import_common.extractProperFrameworkName)(packageNameOrPath):null};var getStorybookData=async({packageManager,configDir:userDefinedConfigDir})=>{let packageJson=await packageManager.retrievePackageJson(),{mainConfig:mainConfigPath,version:storybookVersionSpecifier,configDir:configDirFromScript,previewConfig:previewConfigPath}=(0,import_common.getStorybookInfo)(packageJson,userDefinedConfigDir),storybookVersion=await(0,import_common2.getCoercedStorybookVersion)(packageManager),configDir=userDefinedConfigDir||configDirFromScript||".storybook",mainConfig;try{mainConfig=await(0,import_common.loadMainConfig)({configDir,noCache:!0})}catch(err){throw new Error(import_ts_dedent.dedent`Unable to find or evaluate ${import_picocolors.default.blue(mainConfigPath)}: ${String(err)}`)}return{configDir,mainConfig,storybookVersionSpecifier,storybookVersion,mainConfigPath,previewConfigPath,packageJson}},updateMainConfig=async({mainConfigPath,dryRun},callback)=>{try{let main=await(0,import_csf_tools.readConfig)(mainConfigPath);await callback(main),dryRun||await(0,import_csf_tools.writeConfig)(main)}catch(e){logger.info(`\u274C The migration failed to update your ${import_picocolors.default.blue(mainConfigPath)} on your behalf because of the following error:
@@ -180,7 +180,7 @@ ${err}`),info.source}let metaVariableName=csf._metaVariableName??"meta",programN
180
180
 
181
181
  For more info, check out the docs:
182
182
  ${import_picocolors8.default.yellow("https://storybook.js.org/docs/api/csf/csf-factories")}
183
- `))}};var import_common11=require("storybook/internal/common"),import_csf_tools5=require("storybook/internal/csf-tools"),import_fs2=require("fs"),jscodeshift=__toESM(require("jscodeshift"),1),import_path2=__toESM(require("path"),1),import_picocolors9=__toESM(require_picocolors(),1),import_ts_dedent5=require("ts-dedent");var ADDON_ID="storybook/a11y",PANEL_ID=`${ADDON_ID}/panel`;var RESULT=`${ADDON_ID}/result`,REQUEST=`${ADDON_ID}/request`,RUNNING=`${ADDON_ID}/running`,ERROR=`${ADDON_ID}/error`,MANUAL=`${ADDON_ID}/manual`,SELECT=`${ADDON_ID}/select`,DOCUMENTATION_LINK="writing-tests/accessibility-testing",DOCUMENTATION_DISCREPANCY_LINK=`${DOCUMENTATION_LINK}#why-are-my-tests-failing-in-different-environments`;var ADDON_ID2="storybook/test",TEST_PROVIDER_ID=`${ADDON_ID2}/test-provider`;var DOCUMENTATION_LINK2="writing-tests/vitest-addon",DOCUMENTATION_FATAL_ERROR_LINK=`${DOCUMENTATION_LINK2}#what-happens-if-vitest-itself-has-an-error`;var SUPPORTED_FRAMEWORKS=["@storybook/nextjs","@storybook/nextjs-vite","@storybook/react-vite","@storybook/svelte-vite","@storybook/vue3-vite","@storybook/html-vite","@storybook/web-components-vite","@storybook/sveltekit","@storybook/react-native-web-vite"],storeOptions={id:ADDON_ID2,initialState:{config:{coverage:!1,a11y:!1},watching:!1,cancelling:!1,fatalError:void 0,indexUrl:void 0,previewAnnotations:[],currentRun:{triggeredBy:void 0,config:{coverage:!1,a11y:!1},componentTestCount:{success:0,error:0},a11yCount:{success:0,warning:0,error:0},storyIds:void 0,totalTestCount:void 0,startedAt:void 0,finishedAt:void 0,unhandledErrors:[],coverageSummary:void 0}}};var STORE_CHANNEL_EVENT_NAME=`UNIVERSAL_STORE:${storeOptions.id}`;var fileExtensions=[".js",".ts",".cts",".mts",".cjs",".mjs",".jsx",".tsx"],addonA11yAddonTest={id:"addonA11yAddonTest",versionRange:["<9.0.0","^9.0.0-0 || ^9.0.0"],promptType(result){return result.setupFile===null&&result.previewFile===null?"manual":"auto"},async check({mainConfig,configDir}){let addons=(0,import_common11.getAddonNames)(mainConfig),frameworkPackageName=getFrameworkPackageName(mainConfig),hasA11yAddon=!!addons.find(addon=>addon.includes("@storybook/addon-a11y")),hasTestAddon=!!addons.find(addon=>addon.includes("@storybook/addon-vitest"));if(!SUPPORTED_FRAMEWORKS.find(framework=>frameworkPackageName?.includes(framework))||!hasA11yAddon||!hasTestAddon||!configDir)return null;let vitestSetupFile=fileExtensions.map(ext=>import_path2.default.join(configDir,`vitest.setup${ext}`)).find(filePath=>(0,import_fs2.existsSync)(filePath))??null,previewFile=fileExtensions.map(ext=>import_path2.default.join(configDir,`preview${ext}`)).find(filePath=>(0,import_fs2.existsSync)(filePath))??null,skipVitestSetupTransformation=!1,skipPreviewTransformation=!1;if(vitestSetupFile&&previewFile){let vitestSetupSource=(0,import_fs2.readFileSync)(vitestSetupFile,"utf8"),previewSetupSource=(0,import_fs2.readFileSync)(previewFile,"utf8");if(skipVitestSetupTransformation=vitestSetupSource.includes("@storybook/addon-a11y"),skipPreviewTransformation=!shouldPreviewFileBeTransformed(previewSetupSource),skipVitestSetupTransformation&&skipPreviewTransformation)return null}let getTransformedSetupCode=()=>{if(!vitestSetupFile||skipVitestSetupTransformation)return null;try{let vitestSetupSource=(0,import_fs2.readFileSync)(vitestSetupFile,"utf8");return transformSetupFile(vitestSetupSource)}catch{return null}},getTransformedPreviewCode=()=>{if(!previewFile||skipPreviewTransformation)return null;try{let previewSetupSource=(0,import_fs2.readFileSync)(previewFile,"utf8");return transformPreviewFile(previewSetupSource,previewFile)}catch{return null}};return{setupFile:vitestSetupFile,previewFile,transformedSetupCode:getTransformedSetupCode(),transformedPreviewCode:await getTransformedPreviewCode(),skipVitestSetupTransformation,skipPreviewTransformation}},prompt({setupFile,previewFile,transformedSetupCode,transformedPreviewCode,skipPreviewTransformation,skipVitestSetupTransformation}){let prompt=[import_ts_dedent5.dedent`
183
+ `))}};var import_common11=require("storybook/internal/common"),import_csf_tools5=require("storybook/internal/csf-tools"),import_fs2=require("fs"),jscodeshift=__toESM(require("jscodeshift"),1),import_path2=__toESM(require("path"),1),import_picocolors9=__toESM(require_picocolors(),1),import_ts_dedent5=require("ts-dedent");var ADDON_ID="storybook/a11y",PANEL_ID=`${ADDON_ID}/panel`;var RESULT=`${ADDON_ID}/result`,REQUEST=`${ADDON_ID}/request`,RUNNING=`${ADDON_ID}/running`,ERROR=`${ADDON_ID}/error`,MANUAL=`${ADDON_ID}/manual`,SELECT=`${ADDON_ID}/select`,DOCUMENTATION_LINK="writing-tests/accessibility-testing",DOCUMENTATION_DISCREPANCY_LINK=`${DOCUMENTATION_LINK}#why-are-my-tests-failing-in-different-environments`;var ADDON_ID2="storybook/test",TEST_PROVIDER_ID=`${ADDON_ID2}/test-provider`;var DOCUMENTATION_LINK2="writing-tests/integrations/vitest-addon",DOCUMENTATION_FATAL_ERROR_LINK=`${DOCUMENTATION_LINK2}#what-happens-if-vitest-itself-has-an-error`;var SUPPORTED_FRAMEWORKS=["@storybook/nextjs","@storybook/nextjs-vite","@storybook/react-vite","@storybook/svelte-vite","@storybook/vue3-vite","@storybook/html-vite","@storybook/web-components-vite","@storybook/sveltekit","@storybook/react-native-web-vite"],storeOptions={id:ADDON_ID2,initialState:{config:{coverage:!1,a11y:!1},watching:!1,cancelling:!1,fatalError:void 0,indexUrl:void 0,previewAnnotations:[],currentRun:{triggeredBy:void 0,config:{coverage:!1,a11y:!1},componentTestCount:{success:0,error:0},a11yCount:{success:0,warning:0,error:0},storyIds:void 0,totalTestCount:void 0,startedAt:void 0,finishedAt:void 0,unhandledErrors:[],coverageSummary:void 0}}};var STORE_CHANNEL_EVENT_NAME=`UNIVERSAL_STORE:${storeOptions.id}`;var fileExtensions=[".js",".ts",".cts",".mts",".cjs",".mjs",".jsx",".tsx"],addonA11yAddonTest={id:"addonA11yAddonTest",versionRange:["<9.0.0","^9.0.0-0 || ^9.0.0"],promptType(result){return result.setupFile===null&&result.previewFile===null?"manual":"auto"},async check({mainConfig,configDir}){let addons=(0,import_common11.getAddonNames)(mainConfig),frameworkPackageName=getFrameworkPackageName(mainConfig),hasA11yAddon=!!addons.find(addon=>addon.includes("@storybook/addon-a11y")),hasTestAddon=!!addons.find(addon=>addon.includes("@storybook/addon-vitest"));if(!SUPPORTED_FRAMEWORKS.find(framework=>frameworkPackageName?.includes(framework))||!hasA11yAddon||!hasTestAddon||!configDir)return null;let vitestSetupFile=fileExtensions.map(ext=>import_path2.default.join(configDir,`vitest.setup${ext}`)).find(filePath=>(0,import_fs2.existsSync)(filePath))??null,previewFile=fileExtensions.map(ext=>import_path2.default.join(configDir,`preview${ext}`)).find(filePath=>(0,import_fs2.existsSync)(filePath))??null,skipVitestSetupTransformation=!1,skipPreviewTransformation=!1;if(vitestSetupFile&&previewFile){let vitestSetupSource=(0,import_fs2.readFileSync)(vitestSetupFile,"utf8"),previewSetupSource=(0,import_fs2.readFileSync)(previewFile,"utf8");if(skipVitestSetupTransformation=vitestSetupSource.includes("@storybook/addon-a11y"),skipPreviewTransformation=!shouldPreviewFileBeTransformed(previewSetupSource),skipVitestSetupTransformation&&skipPreviewTransformation)return null}let getTransformedSetupCode=()=>{if(!vitestSetupFile||skipVitestSetupTransformation)return null;try{let vitestSetupSource=(0,import_fs2.readFileSync)(vitestSetupFile,"utf8");return transformSetupFile(vitestSetupSource)}catch{return null}},getTransformedPreviewCode=()=>{if(!previewFile||skipPreviewTransformation)return null;try{let previewSetupSource=(0,import_fs2.readFileSync)(previewFile,"utf8");return transformPreviewFile(previewSetupSource,previewFile)}catch{return null}};return{setupFile:vitestSetupFile,previewFile,transformedSetupCode:getTransformedSetupCode(),transformedPreviewCode:await getTransformedPreviewCode(),skipVitestSetupTransformation,skipPreviewTransformation}},prompt({setupFile,previewFile,transformedSetupCode,transformedPreviewCode,skipPreviewTransformation,skipVitestSetupTransformation}){let prompt=[import_ts_dedent5.dedent`
184
184
  We have detected that you have ${import_picocolors9.default.magenta("@storybook/addon-a11y")} and ${import_picocolors9.default.magenta("@storybook/addon-vitest")} installed.
185
185
 
186
186
  ${import_picocolors9.default.magenta("@storybook/addon-a11y")} now integrates with ${import_picocolors9.default.magenta("@storybook/addon-vitest")} to provide automatic accessibility checks for your stories, powered by Axe and Vitest.
@@ -218,7 +218,7 @@ ${err}`),info.source}let metaVariableName=csf._metaVariableName??"meta",programN
218
218
  `),parametersLineIndex=lines.findIndex(line=>line.includes('test: "todo"')||line.includes("test: 'todo'"));if(parametersLineIndex===-1)return formattedPreviewConfig;let indentation=lines[parametersLineIndex]?.match(/^\s*/)?.[0],comment=`${indentation}// 'todo' - show a11y violations in the test UI only
219
219
  ${indentation}// 'error' - fail CI on a11y violations
220
220
  ${indentation}// 'off' - skip a11y checks entirely`;return lines.splice(parametersLineIndex,0,comment),(0,import_common11.formatFileContent)(filePath,lines.join(`
221
- `))}function shouldPreviewFileBeTransformed(source){return!(0,import_csf_tools5.loadConfig)(source).parse().getFieldNode(["parameters","a11y","test"])}var import_promises2=require("fs/promises"),import_node_path4=require("path"),import_common12=require("storybook/internal/common"),import_csf_tools7=require("storybook/internal/csf-tools"),import_picocolors10=__toESM(require_picocolors(),1),import_ts_dedent6=require("ts-dedent");var import_csf_tools6=require("storybook/internal/csf-tools"),t5=__toESM(require("@babel/types"),1),isStoryAnnotation=(stmt,objectExports)=>t5.isExpressionStatement(stmt)&&t5.isAssignmentExpression(stmt.expression)&&t5.isMemberExpression(stmt.expression.left)&&t5.isIdentifier(stmt.expression.left.object)&&objectExports[stmt.expression.left.object.name];function migrateA11yParameters(obj){let parametersProp=obj.properties.find(prop=>t5.isObjectProperty(prop)&&t5.isIdentifier(prop.key)&&prop.key.name==="parameters");if(parametersProp&&t5.isObjectProperty(parametersProp)){let a11yProp=parametersProp.value.properties.find(prop=>t5.isObjectProperty(prop)&&t5.isIdentifier(prop.key)&&prop.key.name==="a11y");if(a11yProp&&t5.isObjectProperty(a11yProp)){let elementProp=a11yProp.value.properties.find(prop=>t5.isObjectProperty(prop)&&t5.isIdentifier(prop.key)&&prop.key.name==="element");if(elementProp&&t5.isObjectProperty(elementProp))return elementProp.key=t5.identifier("context"),!0}}return!1}function transformStoryA11yParameters(code){let parsed=(0,import_csf_tools6.loadCsf)(code,{makeTitle:title=>title}).parse(),hasChanges=!1;return t5.isObjectExpression(parsed._metaNode)&&migrateA11yParameters(parsed._metaNode)&&(hasChanges=!0),parsed._ast.program.body.forEach(stmt=>{let statement=stmt;isStoryAnnotation(statement,parsed._storyExports)&&t5.isExpressionStatement(statement)&&t5.isAssignmentExpression(statement.expression)&&t5.isObjectExpression(statement.expression.right)&&statement.expression.right.properties.forEach(param=>{if(t5.isObjectProperty(param)&&t5.isIdentifier(param.key)&&param.key.name==="a11y"){let elementProp=param.value.properties.find(prop=>t5.isObjectProperty(prop)&&t5.isIdentifier(prop.key)&&prop.key.name==="element");elementProp&&t5.isObjectProperty(elementProp)&&(elementProp.key=t5.identifier("context"),hasChanges=!0)}})}),Object.values(parsed._storyExports).forEach(declaration=>{let declarator=declaration,init=t5.isVariableDeclarator(declarator)?declarator.init:void 0;(t5.isTSSatisfiesExpression(init)||t5.isTSAsExpression(init))&&(init=init.expression),t5.isObjectExpression(init)&&migrateA11yParameters(init)&&(hasChanges=!0)}),hasChanges?parsed:null}function transformPreviewA11yParameters(code){let parsed=(0,import_csf_tools6.loadConfig)(code).parse();return parsed._exportsObject&&t5.isObjectExpression(parsed._exportsObject)&&migrateA11yParameters(parsed._exportsObject)?parsed:null}var logger5=console,addonA11yParameters={id:"addon-a11y-parameters",versionRange:["<9.0.0","^9.0.0-0 || ^9.0.0"],check:async({mainConfig,previewConfigPath})=>{if(!mainConfig.addons?.some(addon=>typeof addon=="string"?addon==="@storybook/addon-a11y":addon.name==="@storybook/addon-a11y"))return null;let projectRoot=(0,import_common12.getProjectRoot)(),globby=(await import("globby")).globby,storyFiles=await globby([(0,import_node_path4.join)(projectRoot,"**/*.stor(y|ies).@(js|jsx|mjs|ts|tsx)")],{...(0,import_common12.commonGlobOptions)(""),cwd:projectRoot,gitignore:!0,absolute:!0}),storyFilesWithA11y=(await Promise.all(storyFiles.map(async file=>{let content=await(0,import_promises2.readFile)(file,"utf-8");return content.includes("a11y")&&content.includes("element")?file:null}))).filter(file=>file!==null),hasA11yConfigInPreview=!1;if(previewConfigPath){let content=await(0,import_promises2.readFile)(previewConfigPath,"utf-8");hasA11yConfigInPreview=content.includes("a11y")&&content.includes("element")}return storyFilesWithA11y.length===0&&!hasA11yConfigInPreview?null:{storyFilesToUpdate:storyFilesWithA11y,previewFileToUpdate:hasA11yConfigInPreview?previewConfigPath:void 0}},prompt:()=>import_ts_dedent6.dedent`
221
+ `))}function shouldPreviewFileBeTransformed(source){return!(0,import_csf_tools5.loadConfig)(source).parse().getFieldNode(["parameters","a11y","test"])}var import_promises2=require("fs/promises"),import_node_path4=require("path"),import_common12=require("storybook/internal/common"),import_csf_tools7=require("storybook/internal/csf-tools"),import_picocolors10=__toESM(require_picocolors(),1),import_ts_dedent6=require("ts-dedent");var import_csf_tools6=require("storybook/internal/csf-tools"),t5=__toESM(require("@babel/types"),1),isStoryAnnotation=(stmt,objectExports)=>t5.isExpressionStatement(stmt)&&t5.isAssignmentExpression(stmt.expression)&&t5.isMemberExpression(stmt.expression.left)&&t5.isIdentifier(stmt.expression.left.object)&&objectExports[stmt.expression.left.object.name];function migrateA11yParameters(obj){let parametersProp=obj.properties.find(prop=>t5.isObjectProperty(prop)&&t5.isIdentifier(prop.key)&&prop.key.name==="parameters");if(parametersProp&&t5.isObjectProperty(parametersProp)){let a11yProp=parametersProp.value.properties.find(prop=>t5.isObjectProperty(prop)&&t5.isIdentifier(prop.key)&&prop.key.name==="a11y");if(a11yProp&&t5.isObjectProperty(a11yProp)){let elementProp=a11yProp.value.properties.find(prop=>t5.isObjectProperty(prop)&&t5.isIdentifier(prop.key)&&prop.key.name==="element");if(elementProp&&t5.isObjectProperty(elementProp))return elementProp.key=t5.identifier("context"),!0}}return!1}function transformStoryA11yParameters(code){let parsed=(0,import_csf_tools6.loadCsf)(code,{makeTitle:title=>title||"default"}).parse(),hasChanges=!1;return t5.isObjectExpression(parsed._metaNode)&&migrateA11yParameters(parsed._metaNode)&&(hasChanges=!0),parsed._ast.program.body.forEach(stmt=>{let statement=stmt;isStoryAnnotation(statement,parsed._storyExports)&&t5.isExpressionStatement(statement)&&t5.isAssignmentExpression(statement.expression)&&t5.isObjectExpression(statement.expression.right)&&statement.expression.right.properties.forEach(param=>{if(t5.isObjectProperty(param)&&t5.isIdentifier(param.key)&&param.key.name==="a11y"){let elementProp=param.value.properties.find(prop=>t5.isObjectProperty(prop)&&t5.isIdentifier(prop.key)&&prop.key.name==="element");elementProp&&t5.isObjectProperty(elementProp)&&(elementProp.key=t5.identifier("context"),hasChanges=!0)}})}),Object.values(parsed._storyExports).forEach(declaration=>{let declarator=declaration,init=t5.isVariableDeclarator(declarator)?declarator.init:void 0;(t5.isTSSatisfiesExpression(init)||t5.isTSAsExpression(init))&&(init=init.expression),t5.isObjectExpression(init)&&migrateA11yParameters(init)&&(hasChanges=!0)}),hasChanges?parsed:null}function transformPreviewA11yParameters(code){let parsed=(0,import_csf_tools6.loadConfig)(code).parse();return parsed._exportsObject&&t5.isObjectExpression(parsed._exportsObject)&&migrateA11yParameters(parsed._exportsObject)?parsed:null}var logger5=console,addonA11yParameters={id:"addon-a11y-parameters",versionRange:["<9.0.0","^9.0.0-0 || ^9.0.0"],check:async({mainConfig,previewConfigPath})=>{if(!mainConfig.addons?.some(addon=>typeof addon=="string"?addon==="@storybook/addon-a11y":addon.name==="@storybook/addon-a11y"))return null;let projectRoot=(0,import_common12.getProjectRoot)(),globby=(await import("globby")).globby,storyFiles=await globby([(0,import_node_path4.join)(projectRoot,"**/*.stor(y|ies).@(js|jsx|mjs|ts|tsx)")],{...(0,import_common12.commonGlobOptions)(""),cwd:projectRoot,gitignore:!0,absolute:!0}),maybeHasA11yParameter=content=>content.includes("a11y:")&&content.includes("element:"),storyFilesWithA11y=(await Promise.all(storyFiles.map(async file=>{let content=await(0,import_promises2.readFile)(file,"utf-8");return maybeHasA11yParameter(content)?file:null}))).filter(file=>file!==null),hasA11yConfigInPreview=!1;if(previewConfigPath){let content=await(0,import_promises2.readFile)(previewConfigPath,"utf-8");hasA11yConfigInPreview=maybeHasA11yParameter(content)}return storyFilesWithA11y.length===0&&!hasA11yConfigInPreview?null:{storyFilesToUpdate:storyFilesWithA11y,previewFileToUpdate:hasA11yConfigInPreview?previewConfigPath:void 0}},prompt:()=>import_ts_dedent6.dedent`
222
222
  Found story or config files that may need to be updated.
223
223
 
224
224
  The a11y addon has removed the ${import_picocolors10.default.yellow("element")} parameter and replaced it with the ${import_picocolors10.default.yellow("context")} parameter:
@@ -390,7 +390,7 @@ Migrating ${rendererPackage} to ${selectedFramework}`);let sourceFiles=await glo
390
390
  `)}console.log()}};var import_babel5=require("storybook/internal/babel"),import_cli2=require("storybook/internal/cli"),import_csf_tools10=require("storybook/internal/csf-tools"),import_picocolors23=__toESM(require_picocolors(),1),import_ts_dedent19=require("ts-dedent");var wrapRequire={id:"wrap-require",versionRange:["*","*"],async check({packageManager,storybookVersion,mainConfigPath}){let isStorybookInMonorepo=await packageManager.isStorybookInMonorepo(),isPnp=await(0,import_cli2.detectPnp)();if(!mainConfigPath)return null;let config=await(0,import_csf_tools10.readConfig)(mainConfigPath);if(!isStorybookInMonorepo&&!isPnp||!getFieldsForRequireWrapper(config).some(node=>isRequireWrapperNecessary(node)))return null;let isConfigTypescript=mainConfigPath.endsWith(".ts")||mainConfigPath.endsWith(".tsx");return{storybookVersion,isStorybookInMonorepo,isPnp,isConfigTypescript}},prompt({storybookVersion,isStorybookInMonorepo}){let sbFormatted=import_picocolors23.default.cyan(`Storybook ${storybookVersion}`);return import_ts_dedent19.dedent`We have detected that you're using ${sbFormatted} in a ${isStorybookInMonorepo?"monorepo":"PnP"} project.
391
391
  For Storybook to work correctly, some fields in your main config must be updated. We can do this for you automatically.
392
392
 
393
- More info: https://storybook.js.org/docs/faq#how-do-i-fix-module-resolution-in-special-environments`},async run({dryRun,mainConfigPath,result}){await updateMainConfig({dryRun:!!dryRun,mainConfigPath},mainConfig=>{getFieldsForRequireWrapper(mainConfig).forEach(node=>{wrapValueWithRequireWrapper(mainConfig,node)}),getRequireWrapperName(mainConfig)===null&&(mainConfig?.fileName?.endsWith(".cjs")||mainConfig?.fileName?.endsWith(".cts")||mainConfig?.fileName?.endsWith(".cjsx")||mainConfig?.fileName?.endsWith(".ctsx")?mainConfig.setRequireImport(["dirname","join"],"node:path"):(mainConfig.setImport(["dirname","join"],"node:path"),mainConfig.setImport(["createRequire"],"node:module"),mainConfig.getBodyDeclarations().some(node=>doesVariableOrFunctionDeclarationExist(node,"require"))||mainConfig.setBodyDeclaration(import_babel5.types.variableDeclaration("const",[import_babel5.types.variableDeclarator(import_babel5.types.identifier("require"),import_babel5.types.callExpression(import_babel5.types.identifier("createRequire"),[import_babel5.types.identifier("import.meta.url")]))]))),mainConfig.setBodyDeclaration(getRequireWrapperAsCallExpression(result.isConfigTypescript)))})}};var allFixes=[eslintPlugin,wrapRequire,addonMdxGfmRemove,addonStorysourceCodePanel,upgradeStorybookRelatedDependencies,initialGlobals,addonA11yAddonTest,consolidatedImports,addonExperimentalTest,rnstorybookConfig,removeAddonInteractions,rendererToFramework,removeEssentials,addonA11yParameters,removeDocsAutodocs];var commandFixes=[csfFactories];var import_picocolors24=__toESM(require_picocolors(),1),import_ts_dedent20=require("ts-dedent");var messageDivider2=`
393
+ More info: https://storybook.js.org/docs/faq#how-do-i-fix-module-resolution-in-special-environments`},async run({dryRun,mainConfigPath,result}){await updateMainConfig({dryRun:!!dryRun,mainConfigPath},mainConfig=>{if(getFieldsForRequireWrapper(mainConfig).forEach(node=>{wrapValueWithRequireWrapper(mainConfig,node)}),getRequireWrapperName(mainConfig)===null){if(mainConfig?.fileName?.endsWith(".cjs")||mainConfig?.fileName?.endsWith(".cts")||mainConfig?.fileName?.endsWith(".cjsx")||mainConfig?.fileName?.endsWith(".ctsx"))mainConfig.setRequireImport(["dirname","join"],"node:path");else if(mainConfig.setImport(["dirname","join"],"node:path"),mainConfig.setImport(["createRequire"],"node:module"),!mainConfig.getBodyDeclarations().some(node=>doesVariableOrFunctionDeclarationExist(node,"require"))){let body=mainConfig._ast.program.body,lastImportIndex=body.findLastIndex(node=>import_babel5.types.isImportDeclaration(node)),requireDeclaration=import_babel5.types.variableDeclaration("const",[import_babel5.types.variableDeclarator(import_babel5.types.identifier("require"),import_babel5.types.callExpression(import_babel5.types.identifier("createRequire"),[import_babel5.types.identifier("import.meta.url")]))]);body.splice(lastImportIndex+1,0,requireDeclaration)}mainConfig.setBodyDeclaration(getRequireWrapperAsCallExpression(result.isConfigTypescript))}})}};var allFixes=[eslintPlugin,wrapRequire,addonMdxGfmRemove,addonStorysourceCodePanel,upgradeStorybookRelatedDependencies,initialGlobals,addonA11yAddonTest,consolidatedImports,addonExperimentalTest,rnstorybookConfig,removeAddonInteractions,rendererToFramework,removeEssentials,addonA11yParameters,removeDocsAutodocs];var commandFixes=[csfFactories];var import_picocolors24=__toESM(require_picocolors(),1),import_ts_dedent20=require("ts-dedent");var messageDivider2=`
394
394
 
395
395
  `,segmentDivider=`
396
396
 
@@ -416,7 +416,7 @@ ${error.stack}`),fixSummary.failed[f.id]=error.message),fixResults[f.id]="check_
416
416
  npx create-react-app {{beforeDir}} && cd {{beforeDir}} && jq '.browserslist.production[0] = ">0.9%"' package.json > tmp.json && mv tmp.json package.json
417
417
  `,expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench","vitest-integration"],modifications:{useCsfFactory:!0,extraDependencies:["prop-types"],mainConfig:config=>({stories:config.getFieldValue(["stories"])?.map(s=>typeof s=="string"?s.replace(/\|(tsx?|ts)\b|\b(tsx?|ts)\|/g,""):s)})}},"cra/default-ts":{name:"Create React App Latest (Webpack | TypeScript)",script:`
418
418
  npx create-react-app {{beforeDir}} --template typescript && cd {{beforeDir}} && jq '.browserslist.production[0] = ">0.9%"' package.json > tmp.json && mv tmp.json package.json
419
- `,skipTasks:["smoke-test","bench","vitest-integration"],expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"]}},"nextjs/14-ts":{name:"Next.js v14.2 (Webpack | TypeScript)",script:'yarn create next-app {{beforeDir}} -e https://github.com/vercel/next.js/tree/v14.2.17/examples/hello-world && cd {{beforeDir}} && npm pkg set "dependencies.next"="^14.2.17" && yarn && git add . && git commit --amend --no-edit && cd ..',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,mainConfig:{features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"nextjs/default-ts":{name:"Next.js Latest (Webpack | TypeScript)",script:'npx create-next-app {{beforeDir}} --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,mainConfig:{features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"nextjs/prerelease":{name:"Next.js Prerelease (Webpack | TypeScript)",script:'npx create-next-app@canary {{beforeDir}} --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,mainConfig:{features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"nextjs-vite/14-ts":{name:"Next.js Latest (Vite | TypeScript)",script:'npx create-next-app@^14 {{beforeDir}} --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0,mainConfig:{framework:"@storybook/nextjs-vite",features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","@storybook/nextjs-vite","vite","prop-types"]},skipTasks:["e2e-tests-dev","bench"]},"nextjs-vite/default-ts":{name:"Next.js Latest (Vite | TypeScript)",script:'npx create-next-app {{beforeDir}} --eslint --no-tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0,mainConfig:{framework:"@storybook/nextjs-vite",features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","@storybook/nextjs-vite","vite","prop-types"]},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-js":{name:"React Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template react",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"],mainConfig:{features:{developmentModeForBuild:!0}}},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-ts":{name:"React Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template react-ts",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"],mainConfig:{features:{developmentModeForBuild:!0}}},skipTasks:["bench"]},"react-vite/prerelease-ts":{name:"React Prerelease (Vite | TypeScript)",script:`
419
+ `,skipTasks:["smoke-test","bench","vitest-integration"],expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"]}},"nextjs/14-ts":{name:"Next.js v14.2 (Webpack | TypeScript)",script:'yarn create next-app {{beforeDir}} -e https://github.com/vercel/next.js/tree/v14.2.17/examples/hello-world && cd {{beforeDir}} && npm pkg set "dependencies.next"="^14.2.17" && yarn && git add . && git commit --amend --no-edit && cd ..',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,mainConfig:{features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"nextjs/default-ts":{name:"Next.js Latest (Webpack | TypeScript)",script:'npx create-next-app {{beforeDir}} --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,mainConfig:{features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"nextjs/prerelease":{name:"Next.js Prerelease (Webpack | TypeScript)",script:'npx create-next-app@canary {{beforeDir}} --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,mainConfig:{features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"nextjs-vite/14-ts":{name:"Next.js v14 (Vite | TypeScript)",script:'npx create-next-app@^14 {{beforeDir}} --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0,mainConfig:{framework:"@storybook/nextjs-vite",features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","@storybook/nextjs-vite","vite","prop-types"]},skipTasks:["e2e-tests-dev","bench"]},"nextjs-vite/default-ts":{name:"Next.js Latest (Vite | TypeScript)",script:'npx create-next-app {{beforeDir}} --eslint --no-tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0,mainConfig:{framework:"@storybook/nextjs-vite",features:{experimentalRSC:!0,developmentModeForBuild:!0}},extraDependencies:["server-only","@storybook/nextjs-vite","vite","prop-types"]},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-js":{name:"React Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template react",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"],mainConfig:{features:{developmentModeForBuild:!0}}},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-ts":{name:"React Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template react-ts",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"],mainConfig:{features:{developmentModeForBuild:!0}}},skipTasks:["bench"]},"react-vite/prerelease-ts":{name:"React Prerelease (Vite | TypeScript)",script:`
420
420
  npm create vite --yes {{beforeDir}} -- --template react-ts && cd {{beforeDir}} && yarn add react@beta react-dom@beta && jq '.resolutions += {"@types/react": "npm:types-react@beta", "@types/react-dom": "npm:types-react-dom@beta"}' package.json > tmp.json && mv tmp.json package.json && yarn add --dev @types/react@npm:types-react@beta @types/react-dom@npm:types-react-dom@beta
421
421
  `,expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"],mainConfig:{features:{developmentModeForBuild:!0}}},skipTasks:["e2e-tests-dev","bench"]},"react-webpack/18-ts":{name:"React Latest (Webpack | TypeScript)",script:"yarn create webpack5-react {{beforeDir}}",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"react-webpack/17-ts":{name:"React v17 (Webpack | TypeScript)",script:'yarn create webpack5-react {{beforeDir}} --version-react="17" --version-react-dom="17"',expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},modifications:{useCsfFactory:!0,extraDependencies:["prop-types"]},skipTasks:["e2e-tests-dev","bench","vitest-integration"]},"react-webpack/prerelease-ts":{name:"React Prerelease (Webpack | TypeScript)",script:`
422
422
  yarn create webpack5-react {{beforeDir}} --version-react="beta" --version-react-dom="beta" && cd {{beforeDir}} && jq '.resolutions += {"@types/react": "npm:types-react@beta", "@types/react-dom": "npm:types-react-dom@beta"}' package.json > tmp.json && mv tmp.json package.json && yarn add --dev @types/react@npm:types-react@beta @types/react-dom@npm:types-react-dom@beta
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/cli",
3
- "version": "9.0.0-rc.4",
3
+ "version": "9.0.0",
4
4
  "description": "Storybook CLI",
5
5
  "keywords": [
6
6
  "storybook"
@@ -42,10 +42,10 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@babel/types": "^7.24.0",
45
- "@storybook/codemod": "9.0.0-rc.4",
45
+ "@storybook/codemod": "9.0.0",
46
46
  "@types/semver": "^7.3.4",
47
47
  "commander": "^12.1.0",
48
- "create-storybook": "9.0.0-rc.4",
48
+ "create-storybook": "9.0.0",
49
49
  "cross-spawn": "^7.0.6",
50
50
  "envinfo": "^7.7.3",
51
51
  "execa": "^9.5.2",
@@ -56,7 +56,7 @@
56
56
  "p-limit": "^6.2.0",
57
57
  "prompts": "^2.4.0",
58
58
  "semver": "^7.3.7",
59
- "storybook": "9.0.0-rc.4",
59
+ "storybook": "9.0.0",
60
60
  "tiny-invariant": "^1.3.1",
61
61
  "ts-dedent": "^2.0.0"
62
62
  },