@storybook/cli 0.0.0-pr-27171-sha-04378b75 → 0.0.0-pr-27039-sha-9bd21423
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/generate.js +45 -45
- package/dist/generate.mjs +11 -11
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +6 -9
package/dist/generate.mjs
CHANGED
|
@@ -5,17 +5,16 @@ import envinfo from 'envinfo';
|
|
|
5
5
|
import leven from 'leven';
|
|
6
6
|
import { sync as sync$1 } from 'read-pkg-up';
|
|
7
7
|
import invariant5 from 'tiny-invariant';
|
|
8
|
-
import { logger, instance } from '@storybook/node-logger';
|
|
9
|
-
import { addToGlobalContext, telemetry } from '@storybook/telemetry';
|
|
10
|
-
import { versions, removeAddon, JsPackageManagerFactory, parseList, getEnvConfig, getStorybookInfo, getCoercedStorybookVersion, cache, commandLog, paddedLog, HandledError, getProjectRoot, serverRequire, loadMainConfig, isCorePackage, frameworkPackages, commonGlobOptions, rendererPackages, frameworkToRenderer as frameworkToRenderer$1, extractProperFrameworkName, builderPackages, getPackageDetails } from '@storybook/core
|
|
8
|
+
import { logger, instance } from '@storybook/core/dist/node-logger';
|
|
9
|
+
import { addToGlobalContext, telemetry } from '@storybook/core/dist/telemetry';
|
|
10
|
+
import { versions, removeAddon, JsPackageManagerFactory, parseList, getEnvConfig, getStorybookInfo, getCoercedStorybookVersion, cache, commandLog, paddedLog, HandledError, getProjectRoot, serverRequire, loadMainConfig, isCorePackage, frameworkPackages, commonGlobOptions, rendererPackages, frameworkToRenderer as frameworkToRenderer$1, extractProperFrameworkName, builderPackages, getPackageDetails } from '@storybook/core/dist/common';
|
|
11
11
|
import { withTelemetry, buildDevStandalone, buildStaticStandalone } from '@storybook/core-server';
|
|
12
|
-
import * as fs5 from 'fs/promises';
|
|
13
12
|
import { readFile, appendFile, lstat, readdir as readdir$2, readlink, realpath } from 'fs/promises';
|
|
14
13
|
import findUp2 from 'find-up';
|
|
15
14
|
import prompts5, { prompt } from 'prompts';
|
|
16
|
-
import { UpgradeStorybookInWrongWorkingDirectory, UpgradeStorybookToLowerVersionError, UpgradeStorybookToSameVersionError, UpgradeStorybookUnknownCurrentVersionError, GenerateNewProjectOnInitError, MissingAngularJsonError, NxProjectDetectedError } from '@storybook/core
|
|
15
|
+
import { UpgradeStorybookInWrongWorkingDirectory, UpgradeStorybookToLowerVersionError, UpgradeStorybookToSameVersionError, UpgradeStorybookUnknownCurrentVersionError, GenerateNewProjectOnInitError, MissingAngularJsonError, NxProjectDetectedError } from '@storybook/core/dist/server-errors';
|
|
17
16
|
import dedent21, { dedent } from 'ts-dedent';
|
|
18
|
-
import process2 from 'process';
|
|
17
|
+
import process2 from 'node:process';
|
|
19
18
|
import semver, { prerelease, lt, gt, eq, validRange, minVersion, satisfies } from 'semver';
|
|
20
19
|
import * as fs2 from 'fs';
|
|
21
20
|
import fs2__default, { realpathSync as realpathSync$1, lstatSync, readdir as readdir$1, readdirSync as readdirSync$1, readlinkSync, existsSync as existsSync$1 } from 'fs';
|
|
@@ -28,7 +27,7 @@ import * as tempy from 'tempy';
|
|
|
28
27
|
import tempy__default from 'tempy';
|
|
29
28
|
import ora from 'ora';
|
|
30
29
|
import detectIndent from 'detect-indent';
|
|
31
|
-
import { readConfig, writeConfig, babelParse } from '@storybook/csf-tools';
|
|
30
|
+
import { readConfig, writeConfig, babelParse } from '@storybook/core/dist/csf-tools';
|
|
32
31
|
import execa from 'execa';
|
|
33
32
|
import { listCodemods, runCodemod } from '@storybook/codemod';
|
|
34
33
|
import * as t from '@babel/types';
|
|
@@ -36,6 +35,7 @@ import { fileURLToPath } from 'url';
|
|
|
36
35
|
import { EventEmitter } from 'events';
|
|
37
36
|
import Stream from 'stream';
|
|
38
37
|
import { StringDecoder } from 'string_decoder';
|
|
38
|
+
import * as fs5 from 'node:fs/promises';
|
|
39
39
|
import * as babel from '@babel/core';
|
|
40
40
|
import { EOL } from 'os';
|
|
41
41
|
import { sync as sync$2, spawn } from 'cross-spawn';
|
|
@@ -87,7 +87,7 @@ We were not able to detect the right builder for your project. Please select one
|
|
|
87
87
|
Sorry, for now, you can not do this, please use a framework such as @storybook/react-webpack5
|
|
88
88
|
|
|
89
89
|
https://github.com/storybookjs/storybook/issues/18360
|
|
90
|
-
`);let extraPackagesToInstall=typeof extraPackages=="function"?await extraPackages({builder:builder||builderInclude,framework:framework||frameworkInclude}):extraPackages,allPackages=["storybook",getExternalFramework(rendererId)?void 0:`@storybook/${rendererId}`,...frameworkPackages8,...addonPackages,...extraPackagesToInstall||[]].filter(Boolean),packages=[...new Set(allPackages)].filter(packageToInstall=>!installedDependencies.has(getPackageDetails(packageToInstall)[0]));logger3.log();let versionedPackagesSpinner=ora({indent:2,text:`Getting the correct version of ${packages.length} packages`}).start(),versionedPackages=await packageManager.getVersionedPackages(packages);versionedPackagesSpinner.succeed();try{if(process.env.CI!=="true"){let{hasEslint,isStorybookPluginInstalled,eslintConfigFile}=await extractEslintInfo(packageManager);hasEslint&&!isStorybookPluginInstalled&&(versionedPackages.push("eslint-plugin-storybook"),await configureEslintPlugin(eslintConfigFile??void 0,packageManager));}}catch{}if(versionedPackages.length>0){let addDependenciesSpinner=ora({indent:2,text:"Installing Storybook dependencies"}).start();await packageManager.addDependencies({...npmOptions,packageJson},versionedPackages),addDependenciesSpinner.succeed();}if(await fse.ensureDir(`./${storybookConfigFolder}`),addMainFile){let prefixes=shouldApplyRequireWrapperOnPackageNames?['import { join, dirname } from "path"',language==="javascript"?dedent`/**
|
|
90
|
+
`);let extraPackagesToInstall=typeof extraPackages=="function"?await extraPackages({builder:builder||builderInclude,framework:framework||frameworkInclude}):extraPackages,allPackages=["storybook","@storybook/core",getExternalFramework(rendererId)?void 0:`@storybook/${rendererId}`,...frameworkPackages8,...addonPackages,...extraPackagesToInstall||[]].filter(Boolean),packages=[...new Set(allPackages)].filter(packageToInstall=>!installedDependencies.has(getPackageDetails(packageToInstall)[0]));logger3.log();let versionedPackagesSpinner=ora({indent:2,text:`Getting the correct version of ${packages.length} packages`}).start(),versionedPackages=await packageManager.getVersionedPackages(packages);versionedPackagesSpinner.succeed();try{if(process.env.CI!=="true"){let{hasEslint,isStorybookPluginInstalled,eslintConfigFile}=await extractEslintInfo(packageManager);hasEslint&&!isStorybookPluginInstalled&&(versionedPackages.push("eslint-plugin-storybook"),await configureEslintPlugin(eslintConfigFile??void 0,packageManager));}}catch{}if(versionedPackages.length>0){let addDependenciesSpinner=ora({indent:2,text:"Installing Storybook dependencies"}).start();await packageManager.addDependencies({...npmOptions,packageJson},versionedPackages),addDependenciesSpinner.succeed();}if(await fse.ensureDir(`./${storybookConfigFolder}`),addMainFile){let prefixes=shouldApplyRequireWrapperOnPackageNames?['import { join, dirname } from "path"',language==="javascript"?dedent`/**
|
|
91
91
|
* This function is used to resolve the absolute path of a package.
|
|
92
92
|
* It is needed in projects that use Yarn PnP or are set up within a monorepo.
|
|
93
93
|
*/
|
|
@@ -144,7 +144,7 @@ We were not able to detect the right builder for your project. Please select one
|
|
|
144
144
|
|
|
145
145
|
You may want to CTRL+C to stop, and run with the latest version instead.
|
|
146
146
|
`),prelease:chalk15.yellow("This is a pre-release version.")};logger6.log(boxen([messages.welcome].concat(isOutdated&&!isPrerelease?[messages.notLatest]:[]).concat(isPrerelease?[messages.prelease]:[]).join(`
|
|
147
|
-
`),{borderStyle:"round",padding:1,borderColor})),options.force!==!0&¤tDirectoryIsEmpty(packageManager.type)&&(packageManager.type==="yarn1"&&(packageManager=JsPackageManagerFactory.getPackageManager({force:"npm"})),await scaffoldNewProject(packageManager.type,options)
|
|
147
|
+
`),{borderStyle:"round",padding:1,borderColor})),options.force!==!0&¤tDirectoryIsEmpty(packageManager.type)&&(packageManager.type==="yarn1"&&(packageManager=JsPackageManagerFactory.getPackageManager({force:"npm"})),await scaffoldNewProject(packageManager.type,options));let projectType,projectTypeProvided=options.type,infoText=projectTypeProvided?`Installing Storybook for user specified project type: ${projectTypeProvided}`:"Detecting project type",done=commandLog(infoText);if(projectTypeProvided)if(installableProjectTypes.includes(projectTypeProvided))projectType=projectTypeProvided.toUpperCase();else throw done(`The provided project type was not recognized by Storybook: ${projectTypeProvided}`),logger6.log(`
|
|
148
148
|
The project types currently supported by Storybook are:
|
|
149
149
|
`),installableProjectTypes.sort().forEach(framework=>paddedLog(`- ${framework}`)),logger6.log(),new HandledError(`Unknown project type supplied: ${projectTypeProvided}`);else try{projectType=await detect(packageManager,options);}catch(err){throw done(String(err)),new HandledError(err)}done();let storybookInstantiated=isStorybookInstantiated();if(options.force===!1&&storybookInstantiated&&projectType!=="ANGULAR"){logger6.log();let{force}=await prompts5([{type:"confirm",name:"force",message:"We found a .storybook config directory in your project. Therefore we assume that Storybook is already instantiated for your project. Do you still want to continue and force the initialization?"}]);logger6.log(),force?options.force=!0:process.exit(0);}options.skipInstall||await packageManager.installDependencies();let installResult=await installStorybook(projectType,packageManager,options);if(options.skipInstall||await packageManager.installDependencies(),options.disableTelemetry||await telemetry("init",{projectType}),projectType==="REACT_NATIVE")return logger6.log(dedent21`
|
|
150
150
|
${chalk15.yellow("NOTE: installation is not 100% automated.")}
|
|
@@ -607,7 +607,7 @@ ${error}`).join(`
|
|
|
607
607
|
|
|
608
608
|
`)}catch{return}}function hasMultipleVersions(versions7){return versions7.find(v=>{let major=semver.major(v);if(major===0){let minor=semver.minor(v);if(minor===0){let patch=semver.patch(v);return versions7.some(v2=>semver.patch(v2)!==patch)}return versions7.some(v2=>semver.minor(v2)!==minor)}return versions7.some(v2=>semver.major(v2)!==major)})}var messageDivider2=`
|
|
609
609
|
|
|
610
|
-
`,allowList=["@storybook/csf","@storybook/addons","@storybook/channel-postmessage","@storybook/channel-websocket","@storybook/client-api","@storybook/client-logger","@storybook/core-client","@storybook/preview-web","@storybook/preview-api","@storybook/store","@storybook/components","@storybook/router","@storybook/theming","@storybook/api","@storybook/manager-api"],disallowList=[Object.keys(rendererPackages),Object.keys(frameworkPackages),"@storybook/core-events","@storybook/instrumenter","@storybook/core
|
|
610
|
+
`,allowList=["@storybook/csf","@storybook/addons","@storybook/channel-postmessage","@storybook/channel-websocket","@storybook/client-api","@storybook/core/dist/client-logger","@storybook/core-client","@storybook/preview-web","@storybook/core/dist/preview-api","@storybook/store","@storybook/components","@storybook/core/dist/router","@storybook/core/dist/theming","@storybook/api","@storybook/manager-api"],disallowList=[Object.keys(rendererPackages),Object.keys(frameworkPackages),"@storybook/core/dist/core-events","@storybook/core/dist/instrumenter","@storybook/core/dist/common","@storybook/core-server","@storybook/manager","@storybook/preview"];function getDuplicatedDepsWarnings(installationMetadata){try{if(!installationMetadata||!installationMetadata?.duplicatedDependencies||Object.keys(installationMetadata.duplicatedDependencies).length===0)return;let messages=[],{critical,trivial}=Object.entries(installationMetadata?.duplicatedDependencies).reduce((acc,[dep,packageVersions2])=>{if(allowList.includes(dep))return acc;let hasMultipleMajorVersions=hasMultipleVersions(packageVersions2);return disallowList.includes(dep)&&hasMultipleMajorVersions?acc.critical.push(`${chalk15.redBright(dep)}:
|
|
611
611
|
${packageVersions2.join(", ")}`):acc.trivial.push(`${chalk15.hex("#ff9800")(dep)}:
|
|
612
612
|
${packageVersions2.join(", ")}`),acc},{critical:[],trivial:[]});return critical.length===0&&trivial.length===0||(critical.length>0&&(messages.push(`${chalk15.bold("Critical:")} The following dependencies are duplicated and WILL cause unexpected behavior:`),messages.push(critical.join(messageDivider2),`
|
|
613
613
|
`)),trivial.length>0&&(messages.push(`${chalk15.bold("Attention:")} The following dependencies are duplicated which might cause unexpected behavior:`),messages.push(trivial.join(messageDivider2))),messages.push(`
|
|
@@ -690,7 +690,7 @@ ${error.stack}`),fixSummary.failed[f.id]=error.message),fixResults[f.id]="check_
|
|
|
690
690
|
Having a clean repro helps us solve your issue faster! 🙏
|
|
691
691
|
`.trim(),{borderStyle:"round",padding:1,borderColor:"#F1618C"}));}catch(error){throw logger30.error("\u{1F6A8} Failed to create sandbox"),error}};async function promptSelectedTemplate(choices){let{template}=await prompts5({type:"select",message:"\u{1F308} Select the template",name:"template",choices:choices.map(toChoices)},{onCancel:()=>{logger30.log("Command cancelled by the user. Exiting..."),process.exit(1);}});return template||null}var exec2=async(command2,options={},{startMessage,errorMessage,dryRun}={})=>{if(startMessage&&logger.info(startMessage),dryRun){logger.info(`
|
|
692
692
|
> ${command2}
|
|
693
|
-
`);return}return logger.info(command2),new Promise((resolve2,reject)=>{let child=spawn(command2,{...options,shell:!0,stdio:"pipe"});child.stderr.pipe(process.stdout),child.stdout.pipe(process.stdout),child.on("exit",code=>{code===0?resolve2(void 0):(logger.error(chalk15.red(`An error occurred while executing: \`${command2}\``)),errorMessage&&logger.info(errorMessage),reject(new Error(`command exited with code: ${code}: `)));});})},link=async({target,local,start})=>{let storybookDir=process.cwd();try{if((await fse.readJSON("package.json")).name!=="@storybook/root")throw new Error}catch{throw new Error("Expected to run link from the root of the storybook monorepo")}let reproDir=target,reproName=path9.basename(target);if(!local){let reprosDir=path9.join(storybookDir,"../storybook-repros");logger.info(`Ensuring directory ${reprosDir}`),await fse.ensureDir(reprosDir),logger.info(`Cloning ${target}`),await exec2(`git clone ${target}`,{cwd:reprosDir}),reproName=path9.basename(target,path9.extname(target)),reproDir=path9.join(reprosDir,reproName);}let reproPackageJson=await fse.readJSON(path9.join(reproDir,"package.json")),version=sync$2("yarn",["--version"],{cwd:reproDir,stdio:"pipe",shell:!0}).stdout.toString();if(!/^[2-4]\./.test(version)){logger.warn(`\u{1F6A8} Expected yarn 2 or higher in ${reproDir}!`),logger.warn(""),logger.warn("Please set it up with `yarn set version berry`,"),logger.warn(`then link '${reproDir}' with the '--local' flag.`);return}logger.info(`Linking ${reproDir}`),await exec2(`yarn link --all ${storybookDir}`,{cwd:reproDir}),logger.info(`Installing ${reproName}`),await exec2("yarn install",{cwd:reproDir}),reproPackageJson.devDependencies?.vite||await exec2("yarn add -D webpack-hot-middleware",{cwd:reproDir}),await exec2("yarn add @types/node@18",{cwd:reproDir}),start&&(logger.info(`Running ${reproName} storybook`),await exec2("yarn run storybook",{cwd:reproDir}));};function printError(error){instance.heading="",error instanceof Error?error.error?logger.error(error.error):error.stats&&error.stats.compilation.errors?error.stats.compilation.errors.forEach(e=>logger.plain(e)):logger.error(error):error.compilation?.errors&&error.compilation.errors.forEach(e=>logger.plain(e)),logger.line(),logger.warn(error.close?dedent`
|
|
693
|
+
`);return}return logger.info(command2),new Promise((resolve2,reject)=>{let child=spawn(command2,{...options,shell:!0,stdio:"pipe"});child.stderr.pipe(process.stdout),child.stdout.pipe(process.stdout),child.on("exit",code=>{code===0?resolve2(void 0):(logger.error(chalk15.red(`An error occurred while executing: \`${command2}\``)),errorMessage&&logger.info(errorMessage),reject(new Error(`command exited with code: ${code}: `)));});})},link=async({target,local,start})=>{let storybookDir=process.cwd();try{if((await fse.readJSON("package.json")).name!=="@storybook/root")throw new Error}catch{throw new Error("Expected to run link from the root of the storybook monorepo")}let reproDir=target,reproName=path9.basename(target);if(!local){let reprosDir=path9.join(storybookDir,"../storybook-repros");logger.info(`Ensuring directory ${reprosDir}`),await fse.ensureDir(reprosDir),logger.info(`Cloning ${target}`),await exec2(`git clone ${target}`,{cwd:reprosDir}),reproName=path9.basename(target,path9.extname(target)),reproDir=path9.join(reprosDir,reproName);}let reproPackageJson=await fse.readJSON(path9.join(reproDir,"package.json")),version=sync$2("yarn",["--version"],{cwd:reproDir,stdio:"pipe",shell:!0}).stdout.toString();if(!/^[2-4]\./.test(version)){logger.warn(`\u{1F6A8} Expected yarn 2 or higher in ${reproDir}!`),logger.warn(""),logger.warn("Please set it up with `yarn set version berry`,"),logger.warn(`then link '${reproDir}' with the '--local' flag.`);return}logger.info(`Linking ${reproDir}`),await exec2(`yarn link --all --relative ${storybookDir}`,{cwd:reproDir}),logger.info(`Installing ${reproName}`),await exec2("yarn install",{cwd:reproDir}),reproPackageJson.devDependencies?.vite||await exec2("yarn add -D webpack-hot-middleware",{cwd:reproDir}),await exec2("yarn add @types/node@18",{cwd:reproDir}),start&&(logger.info(`Running ${reproName} storybook`),await exec2("yarn run storybook",{cwd:reproDir}));};function printError(error){instance.heading="",error instanceof Error?error.error?logger.error(error.error):error.stats&&error.stats.compilation.errors?error.stats.compilation.errors.forEach(e=>logger.plain(e)):logger.error(error):error.compilation?.errors&&error.compilation.errors.forEach(e=>logger.plain(e)),logger.line(),logger.warn(error.close?dedent`
|
|
694
694
|
FATAL broken build!, will close the process,
|
|
695
695
|
Fix the error below and restart storybook.
|
|
696
696
|
`:dedent`
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var import_node_logger=require("@storybook/node-logger");(0,import_node_logger.deprecate)("Exports from @storybook/cli are removed. Please import from @storybook/core-common instead.");
|
|
1
|
+
"use strict";var import_node_logger=require("@storybook/core/dist/node-logger");(0,import_node_logger.deprecate)("Exports from @storybook/cli are removed. Please import from @storybook/core-common instead.");
|
package/dist/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/cli",
|
|
3
|
-
"version": "0.0.0-pr-
|
|
3
|
+
"version": "0.0.0-pr-27039-sha-9bd21423",
|
|
4
4
|
"description": "Storybook's CLI - install, dev, build, upgrade, and more",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -59,14 +59,8 @@
|
|
|
59
59
|
"@babel/core": "^7.24.4",
|
|
60
60
|
"@babel/types": "^7.24.0",
|
|
61
61
|
"@ndelangen/get-tarball": "^3.0.7",
|
|
62
|
-
"@storybook/codemod": "0.0.0-pr-
|
|
63
|
-
"@storybook/core-
|
|
64
|
-
"@storybook/core-events": "0.0.0-pr-27171-sha-04378b75",
|
|
65
|
-
"@storybook/core-server": "0.0.0-pr-27171-sha-04378b75",
|
|
66
|
-
"@storybook/csf-tools": "0.0.0-pr-27171-sha-04378b75",
|
|
67
|
-
"@storybook/node-logger": "0.0.0-pr-27171-sha-04378b75",
|
|
68
|
-
"@storybook/telemetry": "0.0.0-pr-27171-sha-04378b75",
|
|
69
|
-
"@storybook/types": "0.0.0-pr-27171-sha-04378b75",
|
|
62
|
+
"@storybook/codemod": "0.0.0-pr-27039-sha-9bd21423",
|
|
63
|
+
"@storybook/core-server": "0.0.0-pr-27039-sha-9bd21423",
|
|
70
64
|
"@types/semver": "^7.3.4",
|
|
71
65
|
"@yarnpkg/fslib": "2.10.3",
|
|
72
66
|
"@yarnpkg/libzip": "2.3.0",
|
|
@@ -103,6 +97,9 @@
|
|
|
103
97
|
"strip-json-comments": "^3.1.1",
|
|
104
98
|
"typescript": "^5.3.2"
|
|
105
99
|
},
|
|
100
|
+
"peerDependencies": {
|
|
101
|
+
"@storybook/core": "0.0.0-pr-27039-sha-9bd21423"
|
|
102
|
+
},
|
|
106
103
|
"publishConfig": {
|
|
107
104
|
"access": "public"
|
|
108
105
|
},
|