@storybook/cli 9.0.0-beta.6 → 9.0.0-beta.8
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.
- package/dist/bin/index.cjs +5 -5
- package/package.json +4 -4
package/dist/bin/index.cjs
CHANGED
|
@@ -103,10 +103,10 @@
|
|
|
103
103
|
2. Upgrade to ${import_picocolors32.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_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_picocolors35=__toESM(require_picocolors(),1);var version="9.0.0-beta.
|
|
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_picocolors35=__toESM(require_picocolors(),1);var version="9.0.0-beta.8";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
|
-
`),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(
|
|
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:
|
|
110
110
|
${e}
|
|
111
111
|
`),logger.info(`\u26A0\uFE0F Storybook automigrations are based on AST parsing and it's possible that your ${import_picocolors.default.blue(mainConfigPath)} file contains a non-standard format (e.g. your export is not an object) or that there was an error when parsing dynamic values (e.g. "require" calls, or usage of environment variables). When your main config is non-standard, automigrations are unfortunately not possible. Please follow the instructions given previously and follow the documentation to make the updates manually.`)}};var postinstallAddon=async(addonName,options)=>{try{let modulePath=require.resolve(`${addonName}/postinstall`,{paths:[process.cwd()]}),postinstall=require(modulePath);try{console.log(`Running postinstall script for ${addonName}`),await postinstall(options)}catch(e){console.error(`Error running postinstall script for ${addonName}`),console.error(e)}}catch{}};var getVersionSpecifier=addon=>{let groups=/^(@{0,1}[^@]+)(?:@(.+))?$/.exec(addon);return groups?[groups[1],groups[2]]:[addon,void 0]};var checkInstalled=(addonName,main)=>!!main.addons?.find(entry=>(typeof entry=="string"?entry:entry.name)?.endsWith(addonName)),isCoreAddon=addonName=>Object.hasOwn(import_common3.versions,addonName);async function add(addon,{packageManager:pkgMgr,skipPostinstall,configDir:userSpecifiedConfigDir,yes},logger16=console){let[addonName,inputVersion]=getVersionSpecifier(addon),packageManager=import_common3.JsPackageManagerFactory.getPackageManager({force:pkgMgr}),{mainConfig,mainConfigPath,configDir,previewConfigPath,storybookVersion}=await getStorybookData({packageManager,configDir:userSpecifiedConfigDir});if(typeof configDir>"u")throw new Error(import_ts_dedent2.dedent`
|
|
112
112
|
Unable to find storybook config directory. Please specify your Storybook config directory with the --config-dir flag.
|
|
@@ -304,7 +304,7 @@ ${errors.map(({file,error})=>`- ${file}: ${error.message}`).join(`
|
|
|
304
304
|
|
|
305
305
|
We can set it up automatically for you.
|
|
306
306
|
|
|
307
|
-
More info: ${import_picocolors16.default.yellow("https://storybook.js.org/docs/configure/integration/eslint-plugin")}
|
|
307
|
+
More info: ${import_picocolors16.default.yellow("https://storybook.js.org/docs/9/configure/integration/eslint-plugin")}
|
|
308
308
|
`},async run({result:{eslintConfigFile,unsupportedExtension,isFlatConfig},packageManager,dryRun,skipInstall,storybookVersion}){let deps=[`eslint-plugin-storybook@${storybookVersion}`];if(logger7.info(`\u2705 Adding dependencies: ${deps}`),dryRun||await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall},deps),!dryRun&&unsupportedExtension){logger7.info(import_ts_dedent12.dedent`
|
|
309
309
|
⚠️ The plugin was successfully installed but failed to be configured.
|
|
310
310
|
|
|
@@ -382,7 +382,7 @@ ${errors.map(({file,error})=>`- ${file}: ${error.message}`).join(`
|
|
|
382
382
|
`)}console.log()}};var import_cli2=require("storybook/internal/cli"),import_csf_tools10=require("storybook/internal/csf-tools"),import_picocolors22=__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_picocolors22.default.cyan(`Storybook ${storybookVersion}`);return import_ts_dedent19.dedent`We have detected that you're using ${sbFormatted} in a ${isStorybookInMonorepo?"monorepo":"PnP"} project.
|
|
383
383
|
For Storybook to work correctly, some fields in your main config must be updated. We can do this for you automatically.
|
|
384
384
|
|
|
385
|
-
More info: https://storybook.js.org/docs/faq#how-do-i-fix-module-resolution-in-special-environments`},async run({dryRun,mainConfigPath,result}){
|
|
385
|
+
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"],"path"):mainConfig.setImport(["dirname","join"],"path"),mainConfig.setBodyDeclaration(getRequireWrapperAsCallExpression(result.isConfigTypescript)))})}};var allFixes=[eslintPlugin,wrapRequire,addonMdxGfmRemove,addonStorysourceRemove,upgradeStorybookRelatedDependencies,initialGlobals,addonA11yAddonTest,consolidatedImports,addonExperimentalTest,rnstorybookConfig,removeAddonInteractions,rendererToFramework,addonEssentialsRemoveDocs,addonA11yParameters,removeDocsAutodocs];var commandFixes=[csfFactories];var import_picocolors23=__toESM(require_picocolors(),1),import_ts_dedent20=require("ts-dedent");var messageDivider2=`
|
|
386
386
|
|
|
387
387
|
`,segmentDivider=`
|
|
388
388
|
|
|
@@ -469,7 +469,7 @@ ${error.stack}`),fixSummary.failed[f.id]=error.message),fixResults[f.id]="check_
|
|
|
469
469
|
|
|
470
470
|
You may want to CTRL+C to stop, and run with the latest version instead.
|
|
471
471
|
`),prerelease:import_picocolors34.default.yellow("This is a pre-release version.")};import_node_logger3.logger.plain(boxen([messages.welcome].concat(isCLIOutdated&&!isCLIPrerelease?[messages.notLatest]:[]).concat(isCLIPrerelease?[messages.prerelease]:[]).join(`
|
|
472
|
-
`),{borderStyle:"round",padding:1,borderColor}));let results,{configDir,mainConfig,mainConfigPath,previewConfigPath,packageJson}=await getStorybookData({packageManager,configDir:userSpecifiedConfigDir});if(!beforeVersion)throw new import_server_errors.UpgradeStorybookUnknownCurrentVersionError;if(!results&&typeof mainConfig!="boolean"&&typeof mainConfigPath<"u"&&!options.force){let blockResult=await autoblock({packageManager,configDir,packageJson,mainConfig,mainConfigPath});blockResult&&(results={preCheckFailure:blockResult})}if(!dryRun&&!results){let toUpgradedDependencies=deps=>Object.keys(deps||{}).filter(dependency=>dependency in import_common24.versions).map(dependency=>{let char="^";return isCLIOutdated&&(char=""),isCanary&&(char=""),`${dependency}@${char}${import_common24.versions[dependency]}`}),upgradedDependencies=toUpgradedDependencies(packageJson.dependencies),upgradedDevDependencies=toUpgradedDependencies(packageJson.devDependencies);if(packageManager.type==="npm")try{packageJson.overrides||(packageJson.overrides={}),packageJson.overrides.storybook="$storybook",dryRun||(await packageManager.writePackageJson(packageJson),import_node_logger3.logger.info(`Added Storybook overrides to ${import_picocolors34.default.cyan("package.json")} to ensure consistent dependency resolution`))}catch{import_node_logger3.logger.warn("Failed to add Storybook overrides to package.json")}if(packageManager.type==="npm"){let getPackageName=dep=>{let lastAtIndex=dep.lastIndexOf("@");return lastAtIndex>0?dep.slice(0,lastAtIndex):dep};await packageManager.removeDependencies({skipInstall:!1},[...upgradedDependencies,...upgradedDevDependencies].map(getPackageName).filter(dep=>dep!=="storybook"));let findStorybookPackage=deps=>deps.find(dep=>getPackageName(dep)==="storybook"),storybookDep=findStorybookPackage(upgradedDependencies),storybookDevDep=findStorybookPackage(upgradedDevDependencies);storybookDep&&await packageManager.addDependencies({installAsDevDependencies:!1},[storybookDep]),storybookDevDep&&await packageManager.addDependencies({installAsDevDependencies:!0},[storybookDevDep])}import_node_logger3.logger.info(`Updating dependencies in ${import_picocolors34.default.cyan("package.json")}..`);let addDeps=async(deps,isDev)=>{deps.length>0&&await packageManager.addDependencies({installAsDevDependencies:isDev,skipInstall:!0,packageJson},deps)};await addDeps(upgradedDependencies,!1),await addDeps(upgradedDevDependencies,!0),await packageManager.installDependencies()}if(!skipCheck&&!results&&mainConfigPath&&(checkVersionConsistency(),results=await automigrate({dryRun,yes,packageManager,packageJson,mainConfig,configDir,previewConfigPath,mainConfigPath,beforeVersion,storybookVersion:currentCLIVersion,isUpgrade,isLatest:isCLIExactLatest})),!options.disableTelemetry){let{preCheckFailure,fixResults}=results||{};await(0,import_telemetry.telemetry)("upgrade",{beforeVersion,afterVersion:currentCLIVersion,...{automigrationResults:preCheckFailure?null:fixResults,automigrationPreCheckFailure:preCheckFailure||null}})}};async function upgrade(options){await(0,import_core_server.withTelemetry)("upgrade",{cliOptions:options},()=>doUpgrade(options))}(0,import_telemetry2.addToGlobalContext)("cliVersion",import_common25.versions.storybook);var consoleLogger=console,command=name=>import_commander.program.command(name).option("--disable-telemetry","Disable sending telemetry data",process.env.STORYBOOK_DISABLE_TELEMETRY&&process.env.STORYBOOK_DISABLE_TELEMETRY!=="false").option("--debug","Get more logs in debug mode",!1).option("--enable-crash-reports","Enable sending crash reports to telemetry data");command("init").description("Initialize Storybook into your project").option("-f --force","Force add Storybook").option("-s --skip-install","Skip installing deps").option("--package-manager <npm|pnpm|yarn1|yarn2>","Force package manager for installing deps").option("--use-pnp","Enable PnP mode for Yarn 2+").option("-p --parser <babel | babylon | flow | ts | tsx>","jscodeshift parser").option("-t --type <type>","Add Storybook for a specific project type").option("-y --yes","Answer yes to all prompts").option("-b --builder <webpack5 | vite>","Builder library").option("-l --linkable","Prepare installation for link (contributor helper)").option("--dev","Launch the development server after completing initialization. Enabled by default (default: true)",process.env.CI!=="true"&&process.env.IN_STORYBOOK_SANDBOX!=="true").option("--no-dev","Complete the initialization of Storybook without launching the Storybook development server");command("add <addon>").description("Add an addon to your Storybook").option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager for installing dependencies").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").option("-s --skip-postinstall","Skip package specific postinstall config modifications").option("-y --yes","Skip prompting the user").action((addonName,options)=>add(addonName,options));command("remove <addon>").description("Remove an addon from your Storybook").option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager for installing dependencies").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").action((addonName,options)=>(0,import_core_server2.withTelemetry)("remove",{cliOptions:options},async()=>{await(0,import_common25.removeAddon)(addonName,options),options.disableTelemetry||await(0,import_telemetry2.telemetry)("remove",{addon:addonName,source:"cli"})}));command("upgrade").description(`Upgrade your Storybook packages to v${import_common25.versions.storybook}`).option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager for installing dependencies").option("-y --yes","Skip prompting the user").option("-f --force","force the upgrade, skipping autoblockers").option("-n --dry-run","Only check for upgrades, do not install").option("-s --skip-check","Skip postinstall version and automigration checks").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").action(async options=>upgrade(options).catch(()=>process.exit(1)));command("info").description("Prints debugging information about the local environment").action(async()=>{consoleLogger.log(import_picocolors35.default.bold(`
|
|
472
|
+
`),{borderStyle:"round",padding:1,borderColor}));let results,{configDir,mainConfig,mainConfigPath,previewConfigPath,packageJson}=await getStorybookData({packageManager,configDir:userSpecifiedConfigDir});if(!beforeVersion)throw new import_server_errors.UpgradeStorybookUnknownCurrentVersionError;if(!results&&typeof mainConfig!="boolean"&&typeof mainConfigPath<"u"&&!options.force){let blockResult=await autoblock({packageManager,configDir,packageJson,mainConfig,mainConfigPath});blockResult&&(results={preCheckFailure:blockResult})}if(!dryRun&&!results){let toUpgradedDependencies=deps=>Object.keys(deps||{}).filter(dependency=>dependency in import_common24.versions).map(dependency=>{let char="^";return isCLIOutdated&&(char=""),isCanary&&(char=""),`${dependency}@${char}${import_common24.versions[dependency]}`}),upgradedDependencies=toUpgradedDependencies(packageJson.dependencies),upgradedDevDependencies=toUpgradedDependencies(packageJson.devDependencies);if(packageManager.type==="npm")try{packageJson.overrides||(packageJson.overrides={}),packageJson.overrides.storybook="$storybook",dryRun||(await packageManager.writePackageJson(packageJson),import_node_logger3.logger.info(`Added Storybook overrides to ${import_picocolors34.default.cyan("package.json")} to ensure consistent dependency resolution`))}catch{import_node_logger3.logger.warn("Failed to add Storybook overrides to package.json")}if(packageManager.type==="npm"){let getPackageName=dep=>{let lastAtIndex=dep.lastIndexOf("@");return lastAtIndex>0?dep.slice(0,lastAtIndex):dep};await packageManager.removeDependencies({skipInstall:!1},[...upgradedDependencies,...upgradedDevDependencies].map(getPackageName).filter(dep=>dep!=="storybook"));let findStorybookPackage=deps=>deps.find(dep=>getPackageName(dep)==="storybook"),storybookDep=findStorybookPackage(upgradedDependencies),storybookDevDep=findStorybookPackage(upgradedDevDependencies);storybookDep&&await packageManager.addDependencies({installAsDevDependencies:!1},[storybookDep]),storybookDevDep&&await packageManager.addDependencies({installAsDevDependencies:!0},[storybookDevDep])}import_node_logger3.logger.info(`Updating dependencies in ${import_picocolors34.default.cyan("package.json")}..`);let addDeps=async(deps,isDev)=>{deps.length>0&&await packageManager.addDependencies({installAsDevDependencies:isDev,skipInstall:!0,packageJson},deps)};await addDeps(upgradedDependencies,!1),await addDeps(upgradedDevDependencies,!0),await packageManager.installDependencies()}if(!skipCheck&&!results&&mainConfigPath&&(checkVersionConsistency(),results=await automigrate({dryRun,yes,packageManager,packageJson,mainConfig,configDir,previewConfigPath,mainConfigPath,beforeVersion,storybookVersion:currentCLIVersion,isUpgrade,isLatest:isCLIExactLatest})),!options.disableTelemetry){let{preCheckFailure,fixResults}=results||{};await(0,import_telemetry.telemetry)("upgrade",{beforeVersion,afterVersion:currentCLIVersion,...{automigrationResults:preCheckFailure?null:fixResults,automigrationPreCheckFailure:preCheckFailure||null}})}};async function upgrade(options){await(0,import_core_server.withTelemetry)("upgrade",{cliOptions:options},()=>doUpgrade(options))}(0,import_telemetry2.addToGlobalContext)("cliVersion",import_common25.versions.storybook);var consoleLogger=console,command=name=>import_commander.program.command(name).option("--disable-telemetry","Disable sending telemetry data",process.env.STORYBOOK_DISABLE_TELEMETRY&&process.env.STORYBOOK_DISABLE_TELEMETRY!=="false").option("--debug","Get more logs in debug mode",!1).option("--enable-crash-reports","Enable sending crash reports to telemetry data").hook("preAction",async()=>{try{await(0,import_cli5.globalSettings)()}catch(e){consoleLogger.info("Error loading global settings",e)}});command("init").description("Initialize Storybook into your project").option("-f --force","Force add Storybook").option("-s --skip-install","Skip installing deps").option("--package-manager <npm|pnpm|yarn1|yarn2>","Force package manager for installing deps").option("--use-pnp","Enable PnP mode for Yarn 2+").option("-p --parser <babel | babylon | flow | ts | tsx>","jscodeshift parser").option("-t --type <type>","Add Storybook for a specific project type").option("-y --yes","Answer yes to all prompts").option("-b --builder <webpack5 | vite>","Builder library").option("-l --linkable","Prepare installation for link (contributor helper)").option("--dev","Launch the development server after completing initialization. Enabled by default (default: true)",process.env.CI!=="true"&&process.env.IN_STORYBOOK_SANDBOX!=="true").option("--no-dev","Complete the initialization of Storybook without launching the Storybook development server");command("add <addon>").description("Add an addon to your Storybook").option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager for installing dependencies").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").option("-s --skip-postinstall","Skip package specific postinstall config modifications").option("-y --yes","Skip prompting the user").action((addonName,options)=>add(addonName,options));command("remove <addon>").description("Remove an addon from your Storybook").option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager for installing dependencies").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").action((addonName,options)=>(0,import_core_server2.withTelemetry)("remove",{cliOptions:options},async()=>{await(0,import_common25.removeAddon)(addonName,options),options.disableTelemetry||await(0,import_telemetry2.telemetry)("remove",{addon:addonName,source:"cli"})}));command("upgrade").description(`Upgrade your Storybook packages to v${import_common25.versions.storybook}`).option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager for installing dependencies").option("-y --yes","Skip prompting the user").option("-f --force","force the upgrade, skipping autoblockers").option("-n --dry-run","Only check for upgrades, do not install").option("-s --skip-check","Skip postinstall version and automigration checks").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").action(async options=>upgrade(options).catch(()=>process.exit(1)));command("info").description("Prints debugging information about the local environment").action(async()=>{consoleLogger.log(import_picocolors35.default.bold(`
|
|
473
473
|
Storybook Environment Info:`));let activePackageManager=(await import_common25.JsPackageManagerFactory.getPackageManager()).type.replace(/\d/,""),output=await import_envinfo.default.run({System:["OS","CPU","Shell"],Binaries:["Node","Yarn","npm","pnpm"],Browsers:["Chrome","Edge","Firefox","Safari"],npmPackages:"{@storybook/*,*storybook*,sb,chromatic}",npmGlobalPackages:"{@storybook/*,*storybook*,sb,chromatic}"}),activePackageManagerLine=output.match(new RegExp(`${activePackageManager}:.*`,"i"));consoleLogger.log(output.replace(activePackageManagerLine,import_picocolors35.default.bold(`${activePackageManagerLine} <----- active`)))});command("migrate [migration]").description("Run a Storybook codemod migration on your source files").option("-l --list","List available migrations").option("-g --glob <glob>","Glob for files upon which to apply the migration","**/*.js").option("-p --parser <babel | babylon | flow | ts | tsx>","jscodeshift parser").option("-c, --config-dir <dir-name>","Directory where to load Storybook configurations from").option("-n --dry-run","Dry run: verify the migration exists and show the files to which it will be applied").option("-r --rename <from-to>",'Rename suffix of matching files after codemod has been applied, e.g. ".js:.ts"').action((migration,{configDir,glob,dryRun,list,rename:rename4,parser})=>{migrate(migration,{configDir,glob,dryRun,list,rename:rename4,parser}).catch(err=>{import_node_logger4.logger.error(err),process.exit(1)})});command("sandbox [filterValue]").alias("repro").description("Create a sandbox from a set of possible templates").option("-o --output <outDir>","Define an output directory").option("--no-init","Whether to download a template without an initialized Storybook",!1).action((filterValue,options)=>sandbox({filterValue,...options}).catch(e=>{import_node_logger4.logger.error(e),process.exit(1)}));command("link <repo-url-or-directory>").description("Pull down a repro from a URL (or a local directory), link it, and run storybook").option("--local","Link a local directory already in your file system").option("--no-start","Start the storybook",!0).action((target,{local,start})=>link({target,local,start}).catch(e=>{import_node_logger4.logger.error(e),process.exit(1)}));command("automigrate [fixId]").description("Check storybook for incompatibilities or migrations and apply fixes").option("-y --yes","Skip prompting the user").option("-n --dry-run","Only check for fixes, do not actually run them").option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager").option("-l --list","List available migrations").option("-c, --config-dir <dir-name>","Directory of Storybook configurations to migrate").option("-s --skip-install","Skip installing deps").option("--renderer <renderer-pkg-name>","The renderer package for the framework Storybook is using.").action(async(fixId,options)=>{await doAutomigrate({fixId,...options}).catch(e=>{import_node_logger4.logger.error(e),process.exit(1)})});command("doctor").description("Check Storybook for known problems and provide suggestions or fixes").option("--package-manager <npm|pnpm|yarn1|yarn2|bun>","Force package manager").option("-c, --config-dir <dir-name>","Directory of Storybook configuration").action(async options=>{await doctor(options).catch(e=>{import_node_logger4.logger.error(e),process.exit(1)})});import_commander.program.on("command:*",([invalidCmd])=>{consoleLogger.error(` Invalid command: %s.
|
|
474
474
|
See --help for a list of available commands.`,invalidCmd);let suggestion=import_commander.program.commands.map(cmd=>cmd.name()).find(cmd=>(0,import_leven.default)(cmd,invalidCmd)<3);suggestion&&consoleLogger.info(`
|
|
475
475
|
Did you mean ${suggestion}?`),process.exit(1)});import_commander.program.usage("<command> [options]").version(String(version)).parse(process.argv);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/cli",
|
|
3
|
-
"version": "9.0.0-beta.
|
|
3
|
+
"version": "9.0.0-beta.8",
|
|
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-beta.
|
|
45
|
+
"@storybook/codemod": "9.0.0-beta.8",
|
|
46
46
|
"@types/semver": "^7.3.4",
|
|
47
47
|
"commander": "^12.1.0",
|
|
48
|
-
"create-storybook": "9.0.0-beta.
|
|
48
|
+
"create-storybook": "9.0.0-beta.8",
|
|
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-beta.
|
|
59
|
+
"storybook": "9.0.0-beta.8",
|
|
60
60
|
"tiny-invariant": "^1.3.1",
|
|
61
61
|
"ts-dedent": "^2.0.0"
|
|
62
62
|
},
|