@storybook/cli 7.0.20 → 7.0.21
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/__mocks__/@aw-web-design/x-default-browser.js +2 -0
- package/dist/{chunk-HKX3ZBWJ.mjs → chunk-HV52AGW6.mjs} +1 -1
- package/dist/generate.js +3 -3
- package/dist/generate.mjs +3 -3
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +10 -10
- package/scripts/generate-sb-packages-versions.js +73 -0
- package/src/typings.d.ts +2 -0
- package/src/window.d.ts +8 -0
- package/test/default/cli.test.js +12 -0
- package/test/helpers.js +15 -0
|
@@ -16,7 +16,7 @@ import { sync as sync$1 } from 'find-up';
|
|
|
16
16
|
import sort from 'semver/functions/sort';
|
|
17
17
|
import { platform } from 'os';
|
|
18
18
|
|
|
19
|
-
var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(a,b)=>(typeof require<"u"?require:a)[b]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+x+'" is not supported')});var versions_default={"@storybook/addon-a11y":"7.0.
|
|
19
|
+
var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(a,b)=>(typeof require<"u"?require:a)[b]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+x+'" is not supported')});var versions_default={"@storybook/addon-a11y":"7.0.21","@storybook/addon-actions":"7.0.21","@storybook/addon-backgrounds":"7.0.21","@storybook/addon-controls":"7.0.21","@storybook/addon-docs":"7.0.21","@storybook/addon-essentials":"7.0.21","@storybook/addon-highlight":"7.0.21","@storybook/addon-interactions":"7.0.21","@storybook/addon-jest":"7.0.21","@storybook/addon-links":"7.0.21","@storybook/addon-mdx-gfm":"7.0.21","@storybook/addon-measure":"7.0.21","@storybook/addon-outline":"7.0.21","@storybook/addon-storyshots":"7.0.21","@storybook/addon-storyshots-puppeteer":"7.0.21","@storybook/addon-storysource":"7.0.21","@storybook/addon-toolbars":"7.0.21","@storybook/addon-viewport":"7.0.21","@storybook/addons":"7.0.21","@storybook/angular":"7.0.21","@storybook/api":"7.0.21","@storybook/blocks":"7.0.21","@storybook/builder-manager":"7.0.21","@storybook/builder-vite":"7.0.21","@storybook/builder-webpack5":"7.0.21","@storybook/channel-postmessage":"7.0.21","@storybook/channel-websocket":"7.0.21","@storybook/channels":"7.0.21","@storybook/cli":"7.0.21","@storybook/client-api":"7.0.21","@storybook/client-logger":"7.0.21","@storybook/codemod":"7.0.21","@storybook/components":"7.0.21","@storybook/core-client":"7.0.21","@storybook/core-common":"7.0.21","@storybook/core-events":"7.0.21","@storybook/core-server":"7.0.21","@storybook/core-webpack":"7.0.21","@storybook/csf-plugin":"7.0.21","@storybook/csf-tools":"7.0.21","@storybook/docs-tools":"7.0.21","@storybook/ember":"7.0.21","@storybook/html":"7.0.21","@storybook/html-vite":"7.0.21","@storybook/html-webpack5":"7.0.21","@storybook/instrumenter":"7.0.21","@storybook/manager":"7.0.21","@storybook/manager-api":"7.0.21","@storybook/nextjs":"7.0.21","@storybook/node-logger":"7.0.21","@storybook/postinstall":"7.0.21","@storybook/preact":"7.0.21","@storybook/preact-vite":"7.0.21","@storybook/preact-webpack5":"7.0.21","@storybook/preset-create-react-app":"7.0.21","@storybook/preset-html-webpack":"7.0.21","@storybook/preset-preact-webpack":"7.0.21","@storybook/preset-react-webpack":"7.0.21","@storybook/preset-server-webpack":"7.0.21","@storybook/preset-svelte-webpack":"7.0.21","@storybook/preset-vue-webpack":"7.0.21","@storybook/preset-vue3-webpack":"7.0.21","@storybook/preset-web-components-webpack":"7.0.21","@storybook/preview":"7.0.21","@storybook/preview-api":"7.0.21","@storybook/preview-web":"7.0.21","@storybook/react":"7.0.21","@storybook/react-dom-shim":"7.0.21","@storybook/react-vite":"7.0.21","@storybook/react-webpack5":"7.0.21","@storybook/router":"7.0.21","@storybook/server":"7.0.21","@storybook/server-webpack5":"7.0.21","@storybook/source-loader":"7.0.21","@storybook/store":"7.0.21","@storybook/svelte":"7.0.21","@storybook/svelte-vite":"7.0.21","@storybook/svelte-webpack5":"7.0.21","@storybook/sveltekit":"7.0.21","@storybook/telemetry":"7.0.21","@storybook/theming":"7.0.21","@storybook/types":"7.0.21","@storybook/vue":"7.0.21","@storybook/vue-vite":"7.0.21","@storybook/vue-webpack5":"7.0.21","@storybook/vue3":"7.0.21","@storybook/vue3-vite":"7.0.21","@storybook/vue3-webpack5":"7.0.21","@storybook/web-components":"7.0.21","@storybook/web-components-vite":"7.0.21","@storybook/web-components-webpack5":"7.0.21",sb:"7.0.21",storybook:"7.0.21"};var useNpmWarning=deprecate(()=>{},"`--use-npm` is deprecated and will be removed in Storybook 8.0. \nPlease use the `--package-manager=npm` option instead.\nRead more at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#cli-option---use-npm-deprecated");function ltMajor(versionRange,major){return validRange(versionRange)&&minVersion(versionRange).major<major}function gtMajor(versionRange,major){return validRange(versionRange)&&minVersion(versionRange).major>major}function eqMajor(versionRange,major){return validRange(versionRange)&&minVersion(versionRange).major===major}var externalFrameworks=[{name:"qwik",packageName:"storybook-framework-qwik"},{name:"solid",frameworks:["storybook-solidjs-vite"],renderer:"storybook-solidjs"}];var ProjectType=(ProjectType2=>(ProjectType2.UNDETECTED="UNDETECTED",ProjectType2.UNSUPPORTED="UNSUPPORTED",ProjectType2.REACT_SCRIPTS="REACT_SCRIPTS",ProjectType2.REACT="REACT",ProjectType2.REACT_NATIVE="REACT_NATIVE",ProjectType2.REACT_PROJECT="REACT_PROJECT",ProjectType2.WEBPACK_REACT="WEBPACK_REACT",ProjectType2.NEXTJS="NEXTJS",ProjectType2.VUE="VUE",ProjectType2.VUE3="VUE3",ProjectType2.SFC_VUE="SFC_VUE",ProjectType2.ANGULAR="ANGULAR",ProjectType2.EMBER="EMBER",ProjectType2.WEB_COMPONENTS="WEB_COMPONENTS",ProjectType2.HTML="HTML",ProjectType2.QWIK="QWIK",ProjectType2.PREACT="PREACT",ProjectType2.SVELTE="SVELTE",ProjectType2.SVELTEKIT="SVELTEKIT",ProjectType2.SERVER="SERVER",ProjectType2.NX="NX",ProjectType2.SOLID="SOLID",ProjectType2))(ProjectType||{});var supportedTemplates=[{preset:"SFC_VUE",dependencies:{"vue-loader":versionRange=>ltMajor(versionRange,16),vuetify:versionRange=>ltMajor(versionRange,3)},matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"VUE",dependencies:{vue:versionRange=>ltMajor(versionRange,3),nuxt:versionRange=>ltMajor(versionRange,3)},matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"VUE3",dependencies:{vue:versionRange=>versionRange==="next"||eqMajor(versionRange,3)},matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"EMBER",dependencies:["ember-cli"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"NEXTJS",dependencies:{next:versionRange=>eqMajor(versionRange,9)||gtMajor(versionRange,9)},matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"QWIK",dependencies:["@builder.io/qwik"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"REACT_PROJECT",peerDependencies:["react"],matcherFunction:({peerDependencies})=>peerDependencies.every(Boolean)},{preset:"REACT_NATIVE",dependencies:["react-native","react-native-scripts"],matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"REACT_SCRIPTS",files:["/node_modules/.bin/react-scripts"],dependencies:["react-scripts"],matcherFunction:({dependencies,files})=>dependencies.every(Boolean)||files.every(Boolean)},{preset:"ANGULAR",dependencies:["@angular/core"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"WEB_COMPONENTS",dependencies:["lit-element","lit-html","lit"],matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"PREACT",dependencies:["preact"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"SVELTEKIT",dependencies:["@sveltejs/kit"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"SVELTE",dependencies:["svelte"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"SOLID",dependencies:["solid-js"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"WEBPACK_REACT",dependencies:["react","webpack"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"REACT",dependencies:["react"],matcherFunction:({dependencies})=>dependencies.every(Boolean)}],unsupportedTemplate={preset:"UNSUPPORTED",dependencies:{nuxt:versionRange=>eqMajor(versionRange,3)},matcherFunction:({dependencies})=>dependencies.some(Boolean)},notInstallableProjectTypes=["UNDETECTED","UNSUPPORTED"],installableProjectTypes=Object.values(ProjectType).filter(type=>!notInstallableProjectTypes.includes(type)).map(type=>type.toLowerCase());function getCliDir(){return dirname(__require.resolve("@storybook/cli/package.json"))}var resolveUsingBranchInstall=async(packageManager,request)=>{let tempDirectory=tempy.directory(),version=versions_default[request]||await packageManager.latestVersion(request),url=getNpmTarballUrl(request,version,{registry:await packageManager.getRegistryURL()});return await downloadTarball({url,dir:tempDirectory}),join(tempDirectory,"package")};async function getRendererDir(packageManager,renderer){let externalFramework=externalFrameworks.find(framework=>framework.name===renderer),frameworkPackageName=externalFramework?.renderer||externalFramework?.packageName||`@storybook/${renderer}`,packageJsonPath=join(frameworkPackageName,"package.json"),errors=[];try{return dirname(__require.resolve(packageJsonPath,{paths:[process.cwd()]}))}catch(e){errors.push(e);}try{return await resolveUsingBranchInstall(packageManager,frameworkPackageName)}catch(e){errors.push(e);}throw new Error(`Cannot find ${packageJsonPath}, ${errors.map(e=>e.stack).join(`
|
|
20
20
|
|
|
21
21
|
`)}`)}var logger=console;function getBowerJson(){let bowerJsonPath=path.resolve("bower.json");if(!fs.existsSync(bowerJsonPath))return !1;let jsonContent=fs.readFileSync(bowerJsonPath,"utf8");return JSON.parse(jsonContent)}var commandLog=message=>(process.stdout.write(chalk.cyan(" \u2022 ")+message),(errorMessage,errorInfo)=>{if(errorMessage){if(process.stdout.write(`. ${chalk.red("\u2716")}
|
|
22
22
|
`),logger.error(`
|
package/dist/generate.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod));var import_commander=__toESM(require("commander")),import_path19=__toESM(require("path")),import_chalk30=__toESM(require("chalk")),import_envinfo=__toESM(require("envinfo")),import_leven=__toESM(require("leven")),import_read_pkg_up3=require("read-pkg-up"),import_node_logger7=require("@storybook/node-logger"),import_telemetry3=require("@storybook/telemetry");var import_chalk4=__toESM(require("chalk")),import_prompts5=__toESM(require("prompts")),import_telemetry=require("@storybook/telemetry"),import_core_server=require("@storybook/core-server"),import_ts_dedent11=__toESM(require("ts-dedent"));var import_semver=require("semver");function ltMajor(versionRange,major){return(0,import_semver.validRange)(versionRange)&&(0,import_semver.minVersion)(versionRange).major<major}function gtMajor(versionRange,major){return(0,import_semver.validRange)(versionRange)&&(0,import_semver.minVersion)(versionRange).major>major}function eqMajor(versionRange,major){return(0,import_semver.validRange)(versionRange)&&(0,import_semver.minVersion)(versionRange).major===major}var externalFrameworks=[{name:"qwik",packageName:"storybook-framework-qwik"},{name:"solid",frameworks:["storybook-solidjs-vite"],renderer:"storybook-solidjs"}];var ProjectType=(ProjectType2=>(ProjectType2.UNDETECTED="UNDETECTED",ProjectType2.UNSUPPORTED="UNSUPPORTED",ProjectType2.REACT_SCRIPTS="REACT_SCRIPTS",ProjectType2.REACT="REACT",ProjectType2.REACT_NATIVE="REACT_NATIVE",ProjectType2.REACT_PROJECT="REACT_PROJECT",ProjectType2.WEBPACK_REACT="WEBPACK_REACT",ProjectType2.NEXTJS="NEXTJS",ProjectType2.VUE="VUE",ProjectType2.VUE3="VUE3",ProjectType2.SFC_VUE="SFC_VUE",ProjectType2.ANGULAR="ANGULAR",ProjectType2.EMBER="EMBER",ProjectType2.WEB_COMPONENTS="WEB_COMPONENTS",ProjectType2.HTML="HTML",ProjectType2.QWIK="QWIK",ProjectType2.PREACT="PREACT",ProjectType2.SVELTE="SVELTE",ProjectType2.SVELTEKIT="SVELTEKIT",ProjectType2.SERVER="SERVER",ProjectType2.NX="NX",ProjectType2.SOLID="SOLID",ProjectType2))(ProjectType||{});var supportedTemplates=[{preset:"SFC_VUE",dependencies:{"vue-loader":versionRange=>ltMajor(versionRange,16),vuetify:versionRange=>ltMajor(versionRange,3)},matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"VUE",dependencies:{vue:versionRange=>ltMajor(versionRange,3),nuxt:versionRange=>ltMajor(versionRange,3)},matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"VUE3",dependencies:{vue:versionRange=>versionRange==="next"||eqMajor(versionRange,3)},matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"EMBER",dependencies:["ember-cli"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"NEXTJS",dependencies:{next:versionRange=>eqMajor(versionRange,9)||gtMajor(versionRange,9)},matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"QWIK",dependencies:["@builder.io/qwik"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"REACT_PROJECT",peerDependencies:["react"],matcherFunction:({peerDependencies})=>peerDependencies.every(Boolean)},{preset:"REACT_NATIVE",dependencies:["react-native","react-native-scripts"],matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"REACT_SCRIPTS",files:["/node_modules/.bin/react-scripts"],dependencies:["react-scripts"],matcherFunction:({dependencies,files})=>dependencies.every(Boolean)||files.every(Boolean)},{preset:"ANGULAR",dependencies:["@angular/core"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"WEB_COMPONENTS",dependencies:["lit-element","lit-html","lit"],matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"PREACT",dependencies:["preact"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"SVELTEKIT",dependencies:["@sveltejs/kit"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"SVELTE",dependencies:["svelte"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"SOLID",dependencies:["solid-js"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"WEBPACK_REACT",dependencies:["react","webpack"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"REACT",dependencies:["react"],matcherFunction:({dependencies})=>dependencies.every(Boolean)}],unsupportedTemplate={preset:"UNSUPPORTED",dependencies:{nuxt:versionRange=>eqMajor(versionRange,3)},matcherFunction:({dependencies})=>dependencies.some(Boolean)},notInstallableProjectTypes=["UNDETECTED","UNSUPPORTED"],installableProjectTypes=Object.values(ProjectType).filter(type=>!notInstallableProjectTypes.includes(type)).map(type=>type.toLowerCase());var import_fs2=__toESM(require("fs")),import_find_up=__toESM(require("find-up")),import_semver3=__toESM(require("semver")),import_node_logger=require("@storybook/node-logger"),import_fs_extra2=require("fs-extra"),import_path3=require("path"),import_prompts=__toESM(require("prompts"));var import_path2=__toESM(require("path")),import_fs=__toESM(require("fs")),import_fs_extra=__toESM(require("fs-extra")),import_chalk=__toESM(require("chalk")),import_semver2=require("semver"),import_strip_json_comments=__toESM(require("strip-json-comments"));var import_path=require("path"),import_get_tarball=__toESM(require("@ndelangen/get-tarball")),import_get_npm_tarball_url=__toESM(require("get-npm-tarball-url")),tempy=__toESM(require("tempy"));var versions_default={"@storybook/addon-a11y":"7.0.20","@storybook/addon-actions":"7.0.20","@storybook/addon-backgrounds":"7.0.20","@storybook/addon-controls":"7.0.20","@storybook/addon-docs":"7.0.20","@storybook/addon-essentials":"7.0.20","@storybook/addon-highlight":"7.0.20","@storybook/addon-interactions":"7.0.20","@storybook/addon-jest":"7.0.20","@storybook/addon-links":"7.0.20","@storybook/addon-mdx-gfm":"7.0.20","@storybook/addon-measure":"7.0.20","@storybook/addon-outline":"7.0.20","@storybook/addon-storyshots":"7.0.20","@storybook/addon-storyshots-puppeteer":"7.0.20","@storybook/addon-storysource":"7.0.20","@storybook/addon-toolbars":"7.0.20","@storybook/addon-viewport":"7.0.20","@storybook/addons":"7.0.20","@storybook/angular":"7.0.20","@storybook/api":"7.0.20","@storybook/blocks":"7.0.20","@storybook/builder-manager":"7.0.20","@storybook/builder-vite":"7.0.20","@storybook/builder-webpack5":"7.0.20","@storybook/channel-postmessage":"7.0.20","@storybook/channel-websocket":"7.0.20","@storybook/channels":"7.0.20","@storybook/cli":"7.0.20","@storybook/client-api":"7.0.20","@storybook/client-logger":"7.0.20","@storybook/codemod":"7.0.20","@storybook/components":"7.0.20","@storybook/core-client":"7.0.20","@storybook/core-common":"7.0.20","@storybook/core-events":"7.0.20","@storybook/core-server":"7.0.20","@storybook/core-webpack":"7.0.20","@storybook/csf-plugin":"7.0.20","@storybook/csf-tools":"7.0.20","@storybook/docs-tools":"7.0.20","@storybook/ember":"7.0.20","@storybook/html":"7.0.20","@storybook/html-vite":"7.0.20","@storybook/html-webpack5":"7.0.20","@storybook/instrumenter":"7.0.20","@storybook/manager":"7.0.20","@storybook/manager-api":"7.0.20","@storybook/nextjs":"7.0.20","@storybook/node-logger":"7.0.20","@storybook/postinstall":"7.0.20","@storybook/preact":"7.0.20","@storybook/preact-vite":"7.0.20","@storybook/preact-webpack5":"7.0.20","@storybook/preset-create-react-app":"7.0.20","@storybook/preset-html-webpack":"7.0.20","@storybook/preset-preact-webpack":"7.0.20","@storybook/preset-react-webpack":"7.0.20","@storybook/preset-server-webpack":"7.0.20","@storybook/preset-svelte-webpack":"7.0.20","@storybook/preset-vue-webpack":"7.0.20","@storybook/preset-vue3-webpack":"7.0.20","@storybook/preset-web-components-webpack":"7.0.20","@storybook/preview":"7.0.20","@storybook/preview-api":"7.0.20","@storybook/preview-web":"7.0.20","@storybook/react":"7.0.20","@storybook/react-dom-shim":"7.0.20","@storybook/react-vite":"7.0.20","@storybook/react-webpack5":"7.0.20","@storybook/router":"7.0.20","@storybook/server":"7.0.20","@storybook/server-webpack5":"7.0.20","@storybook/source-loader":"7.0.20","@storybook/store":"7.0.20","@storybook/svelte":"7.0.20","@storybook/svelte-vite":"7.0.20","@storybook/svelte-webpack5":"7.0.20","@storybook/sveltekit":"7.0.20","@storybook/telemetry":"7.0.20","@storybook/theming":"7.0.20","@storybook/types":"7.0.20","@storybook/vue":"7.0.20","@storybook/vue-vite":"7.0.20","@storybook/vue-webpack5":"7.0.20","@storybook/vue3":"7.0.20","@storybook/vue3-vite":"7.0.20","@storybook/vue3-webpack5":"7.0.20","@storybook/web-components":"7.0.20","@storybook/web-components-vite":"7.0.20","@storybook/web-components-webpack5":"7.0.20",sb:"7.0.20",storybook:"7.0.20"};function getCliDir(){return(0,import_path.dirname)(require.resolve("@storybook/cli/package.json"))}var resolveUsingBranchInstall=async(packageManager,request)=>{let tempDirectory=tempy.directory(),version=versions_default[request]||await packageManager.latestVersion(request),url=(0,import_get_npm_tarball_url.default)(request,version,{registry:await packageManager.getRegistryURL()});return await(0,import_get_tarball.default)({url,dir:tempDirectory}),(0,import_path.join)(tempDirectory,"package")};async function getRendererDir(packageManager,renderer){let externalFramework=externalFrameworks.find(framework=>framework.name===renderer),frameworkPackageName=(externalFramework==null?void 0:externalFramework.renderer)||(externalFramework==null?void 0:externalFramework.packageName)||`@storybook/${renderer}`,packageJsonPath=(0,import_path.join)(frameworkPackageName,"package.json"),errors=[];try{return(0,import_path.dirname)(require.resolve(packageJsonPath,{paths:[process.cwd()]}))}catch(e){errors.push(e)}try{return await resolveUsingBranchInstall(packageManager,frameworkPackageName)}catch(e){errors.push(e)}throw new Error(`Cannot find ${packageJsonPath}, ${errors.map(e=>e.stack).join(`
|
|
1
|
+
var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod));var import_commander=__toESM(require("commander")),import_path19=__toESM(require("path")),import_chalk30=__toESM(require("chalk")),import_envinfo=__toESM(require("envinfo")),import_leven=__toESM(require("leven")),import_read_pkg_up3=require("read-pkg-up"),import_node_logger7=require("@storybook/node-logger"),import_telemetry3=require("@storybook/telemetry");var import_chalk4=__toESM(require("chalk")),import_prompts5=__toESM(require("prompts")),import_telemetry=require("@storybook/telemetry"),import_core_server=require("@storybook/core-server"),import_ts_dedent11=__toESM(require("ts-dedent"));var import_semver=require("semver");function ltMajor(versionRange,major){return(0,import_semver.validRange)(versionRange)&&(0,import_semver.minVersion)(versionRange).major<major}function gtMajor(versionRange,major){return(0,import_semver.validRange)(versionRange)&&(0,import_semver.minVersion)(versionRange).major>major}function eqMajor(versionRange,major){return(0,import_semver.validRange)(versionRange)&&(0,import_semver.minVersion)(versionRange).major===major}var externalFrameworks=[{name:"qwik",packageName:"storybook-framework-qwik"},{name:"solid",frameworks:["storybook-solidjs-vite"],renderer:"storybook-solidjs"}];var ProjectType=(ProjectType2=>(ProjectType2.UNDETECTED="UNDETECTED",ProjectType2.UNSUPPORTED="UNSUPPORTED",ProjectType2.REACT_SCRIPTS="REACT_SCRIPTS",ProjectType2.REACT="REACT",ProjectType2.REACT_NATIVE="REACT_NATIVE",ProjectType2.REACT_PROJECT="REACT_PROJECT",ProjectType2.WEBPACK_REACT="WEBPACK_REACT",ProjectType2.NEXTJS="NEXTJS",ProjectType2.VUE="VUE",ProjectType2.VUE3="VUE3",ProjectType2.SFC_VUE="SFC_VUE",ProjectType2.ANGULAR="ANGULAR",ProjectType2.EMBER="EMBER",ProjectType2.WEB_COMPONENTS="WEB_COMPONENTS",ProjectType2.HTML="HTML",ProjectType2.QWIK="QWIK",ProjectType2.PREACT="PREACT",ProjectType2.SVELTE="SVELTE",ProjectType2.SVELTEKIT="SVELTEKIT",ProjectType2.SERVER="SERVER",ProjectType2.NX="NX",ProjectType2.SOLID="SOLID",ProjectType2))(ProjectType||{});var supportedTemplates=[{preset:"SFC_VUE",dependencies:{"vue-loader":versionRange=>ltMajor(versionRange,16),vuetify:versionRange=>ltMajor(versionRange,3)},matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"VUE",dependencies:{vue:versionRange=>ltMajor(versionRange,3),nuxt:versionRange=>ltMajor(versionRange,3)},matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"VUE3",dependencies:{vue:versionRange=>versionRange==="next"||eqMajor(versionRange,3)},matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"EMBER",dependencies:["ember-cli"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"NEXTJS",dependencies:{next:versionRange=>eqMajor(versionRange,9)||gtMajor(versionRange,9)},matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"QWIK",dependencies:["@builder.io/qwik"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"REACT_PROJECT",peerDependencies:["react"],matcherFunction:({peerDependencies})=>peerDependencies.every(Boolean)},{preset:"REACT_NATIVE",dependencies:["react-native","react-native-scripts"],matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"REACT_SCRIPTS",files:["/node_modules/.bin/react-scripts"],dependencies:["react-scripts"],matcherFunction:({dependencies,files})=>dependencies.every(Boolean)||files.every(Boolean)},{preset:"ANGULAR",dependencies:["@angular/core"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"WEB_COMPONENTS",dependencies:["lit-element","lit-html","lit"],matcherFunction:({dependencies})=>dependencies.some(Boolean)},{preset:"PREACT",dependencies:["preact"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"SVELTEKIT",dependencies:["@sveltejs/kit"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"SVELTE",dependencies:["svelte"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"SOLID",dependencies:["solid-js"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"WEBPACK_REACT",dependencies:["react","webpack"],matcherFunction:({dependencies})=>dependencies.every(Boolean)},{preset:"REACT",dependencies:["react"],matcherFunction:({dependencies})=>dependencies.every(Boolean)}],unsupportedTemplate={preset:"UNSUPPORTED",dependencies:{nuxt:versionRange=>eqMajor(versionRange,3)},matcherFunction:({dependencies})=>dependencies.some(Boolean)},notInstallableProjectTypes=["UNDETECTED","UNSUPPORTED"],installableProjectTypes=Object.values(ProjectType).filter(type=>!notInstallableProjectTypes.includes(type)).map(type=>type.toLowerCase());var import_fs2=__toESM(require("fs")),import_find_up=__toESM(require("find-up")),import_semver3=__toESM(require("semver")),import_node_logger=require("@storybook/node-logger"),import_fs_extra2=require("fs-extra"),import_path3=require("path"),import_prompts=__toESM(require("prompts"));var import_path2=__toESM(require("path")),import_fs=__toESM(require("fs")),import_fs_extra=__toESM(require("fs-extra")),import_chalk=__toESM(require("chalk")),import_semver2=require("semver"),import_strip_json_comments=__toESM(require("strip-json-comments"));var import_path=require("path"),import_get_tarball=__toESM(require("@ndelangen/get-tarball")),import_get_npm_tarball_url=__toESM(require("get-npm-tarball-url")),tempy=__toESM(require("tempy"));var versions_default={"@storybook/addon-a11y":"7.0.21","@storybook/addon-actions":"7.0.21","@storybook/addon-backgrounds":"7.0.21","@storybook/addon-controls":"7.0.21","@storybook/addon-docs":"7.0.21","@storybook/addon-essentials":"7.0.21","@storybook/addon-highlight":"7.0.21","@storybook/addon-interactions":"7.0.21","@storybook/addon-jest":"7.0.21","@storybook/addon-links":"7.0.21","@storybook/addon-mdx-gfm":"7.0.21","@storybook/addon-measure":"7.0.21","@storybook/addon-outline":"7.0.21","@storybook/addon-storyshots":"7.0.21","@storybook/addon-storyshots-puppeteer":"7.0.21","@storybook/addon-storysource":"7.0.21","@storybook/addon-toolbars":"7.0.21","@storybook/addon-viewport":"7.0.21","@storybook/addons":"7.0.21","@storybook/angular":"7.0.21","@storybook/api":"7.0.21","@storybook/blocks":"7.0.21","@storybook/builder-manager":"7.0.21","@storybook/builder-vite":"7.0.21","@storybook/builder-webpack5":"7.0.21","@storybook/channel-postmessage":"7.0.21","@storybook/channel-websocket":"7.0.21","@storybook/channels":"7.0.21","@storybook/cli":"7.0.21","@storybook/client-api":"7.0.21","@storybook/client-logger":"7.0.21","@storybook/codemod":"7.0.21","@storybook/components":"7.0.21","@storybook/core-client":"7.0.21","@storybook/core-common":"7.0.21","@storybook/core-events":"7.0.21","@storybook/core-server":"7.0.21","@storybook/core-webpack":"7.0.21","@storybook/csf-plugin":"7.0.21","@storybook/csf-tools":"7.0.21","@storybook/docs-tools":"7.0.21","@storybook/ember":"7.0.21","@storybook/html":"7.0.21","@storybook/html-vite":"7.0.21","@storybook/html-webpack5":"7.0.21","@storybook/instrumenter":"7.0.21","@storybook/manager":"7.0.21","@storybook/manager-api":"7.0.21","@storybook/nextjs":"7.0.21","@storybook/node-logger":"7.0.21","@storybook/postinstall":"7.0.21","@storybook/preact":"7.0.21","@storybook/preact-vite":"7.0.21","@storybook/preact-webpack5":"7.0.21","@storybook/preset-create-react-app":"7.0.21","@storybook/preset-html-webpack":"7.0.21","@storybook/preset-preact-webpack":"7.0.21","@storybook/preset-react-webpack":"7.0.21","@storybook/preset-server-webpack":"7.0.21","@storybook/preset-svelte-webpack":"7.0.21","@storybook/preset-vue-webpack":"7.0.21","@storybook/preset-vue3-webpack":"7.0.21","@storybook/preset-web-components-webpack":"7.0.21","@storybook/preview":"7.0.21","@storybook/preview-api":"7.0.21","@storybook/preview-web":"7.0.21","@storybook/react":"7.0.21","@storybook/react-dom-shim":"7.0.21","@storybook/react-vite":"7.0.21","@storybook/react-webpack5":"7.0.21","@storybook/router":"7.0.21","@storybook/server":"7.0.21","@storybook/server-webpack5":"7.0.21","@storybook/source-loader":"7.0.21","@storybook/store":"7.0.21","@storybook/svelte":"7.0.21","@storybook/svelte-vite":"7.0.21","@storybook/svelte-webpack5":"7.0.21","@storybook/sveltekit":"7.0.21","@storybook/telemetry":"7.0.21","@storybook/theming":"7.0.21","@storybook/types":"7.0.21","@storybook/vue":"7.0.21","@storybook/vue-vite":"7.0.21","@storybook/vue-webpack5":"7.0.21","@storybook/vue3":"7.0.21","@storybook/vue3-vite":"7.0.21","@storybook/vue3-webpack5":"7.0.21","@storybook/web-components":"7.0.21","@storybook/web-components-vite":"7.0.21","@storybook/web-components-webpack5":"7.0.21",sb:"7.0.21",storybook:"7.0.21"};function getCliDir(){return(0,import_path.dirname)(require.resolve("@storybook/cli/package.json"))}var resolveUsingBranchInstall=async(packageManager,request)=>{let tempDirectory=tempy.directory(),version=versions_default[request]||await packageManager.latestVersion(request),url=(0,import_get_npm_tarball_url.default)(request,version,{registry:await packageManager.getRegistryURL()});return await(0,import_get_tarball.default)({url,dir:tempDirectory}),(0,import_path.join)(tempDirectory,"package")};async function getRendererDir(packageManager,renderer){let externalFramework=externalFrameworks.find(framework=>framework.name===renderer),frameworkPackageName=(externalFramework==null?void 0:externalFramework.renderer)||(externalFramework==null?void 0:externalFramework.packageName)||`@storybook/${renderer}`,packageJsonPath=(0,import_path.join)(frameworkPackageName,"package.json"),errors=[];try{return(0,import_path.dirname)(require.resolve(packageJsonPath,{paths:[process.cwd()]}))}catch(e){errors.push(e)}try{return await resolveUsingBranchInstall(packageManager,frameworkPackageName)}catch(e){errors.push(e)}throw new Error(`Cannot find ${packageJsonPath}, ${errors.map(e=>e.stack).join(`
|
|
2
2
|
|
|
3
3
|
`)}`)}var logger=console;function getBowerJson(){let bowerJsonPath=import_path2.default.resolve("bower.json");if(!import_fs.default.existsSync(bowerJsonPath))return!1;let jsonContent=import_fs.default.readFileSync(bowerJsonPath,"utf8");return JSON.parse(jsonContent)}var commandLog=message=>(process.stdout.write(import_chalk.default.cyan(" \u2022 ")+message),(errorMessage,errorInfo)=>{if(errorMessage){if(process.stdout.write(`. ${import_chalk.default.red("\u2716")}
|
|
4
4
|
`),logger.error(`
|
|
@@ -9,7 +9,7 @@ var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropD
|
|
|
9
9
|
`)});function paddedLog(message){let newMessage=message.split(`
|
|
10
10
|
`).map(line=>` ${line}`).join(`
|
|
11
11
|
`);logger.log(newMessage)}function getChars(char,amount){let line="";for(let lc=0;lc<amount;lc+=1)line+=char;return line}function codeLog(codeLines,leftPadAmount){let maxLength=0,finalResult=codeLines.map(line=>(maxLength=line.length>maxLength?line.length:maxLength,line)).map(line=>{let rightPadAmount=maxLength-line.length,newLine=line+getChars(" ",rightPadAmount);return newLine=getChars(" ",leftPadAmount||2)+import_chalk.default.inverse(` ${newLine} `),newLine}).join(`
|
|
12
|
-
`);logger.log(finalResult)}async function getBabelDependencies(packageManager,packageJson){let dependenciesToAdd=[],babelLoaderVersion="^8.0.0-0",babelCoreVersion=packageJson.dependencies["babel-core"]||packageJson.devDependencies["babel-core"];if(babelCoreVersion){let latestCompatibleBabelVersion=await packageManager.latestVersion("babel-core",babelCoreVersion);(0,import_semver2.satisfies)(latestCompatibleBabelVersion,"^6.0.0")&&(babelLoaderVersion="^7.0.0")}else if(!packageJson.dependencies["@babel/core"]&&!packageJson.devDependencies["@babel/core"]){let babelCoreInstallVersion=await packageManager.getVersion("@babel/core");dependenciesToAdd.push(`@babel/core@${babelCoreInstallVersion}`)}if(!packageJson.dependencies["babel-loader"]&&!packageJson.devDependencies["babel-loader"]){let babelLoaderInstallVersion=await packageManager.getVersion("babel-loader",babelLoaderVersion);dependenciesToAdd.push(`babel-loader@${babelLoaderInstallVersion}`)}return dependenciesToAdd}function copyTemplate(templateRoot,destination="."){let templateDir=import_path2.default.resolve(templateRoot,"template-csf/");if(!import_fs.default.existsSync(templateDir))throw new Error("Couldn't find template dir");import_fs_extra.default.copySync(templateDir,destination,{overwrite:!0})}async function copyTemplateFiles({packageManager,renderer,language,destination,includeCommonAssets=!0}){let languageFolderMapping={typescript:"ts",["javascript"]:"js",["typescript-3-8"]:"ts-3-8",["typescript-4-9"]:"ts-4-9"},templatePath=async()=>{let baseDir=await getRendererDir(packageManager,renderer),assetsDir=(0,import_path2.join)(baseDir,"template","cli"),assetsLanguage=(0,import_path2.join)(assetsDir,languageFolderMapping[language]),assetsJS=(0,import_path2.join)(assetsDir,languageFolderMapping["javascript"]),assetsTS=(0,import_path2.join)(assetsDir,languageFolderMapping.typescript),assetsTS38=(0,import_path2.join)(assetsDir,languageFolderMapping["typescript-3-8"]);if(await import_fs_extra.default.pathExists(assetsLanguage))return assetsLanguage;if(language==="typescript-4-9"&&await import_fs_extra.default.pathExists(assetsTS38))return assetsTS38;if(await import_fs_extra.default.pathExists(assetsTS))return assetsTS;if(await import_fs_extra.default.pathExists(assetsJS))return assetsJS;if(await import_fs_extra.default.pathExists(assetsDir))return assetsDir;throw new Error(`Unsupported renderer: ${renderer} (${baseDir})`)},destinationPath=destination??await(async()=>await import_fs_extra.default.pathExists("./src")?"./src/stories":"./stories")();includeCommonAssets&&await import_fs_extra.default.copy((0,import_path2.join)(getCliDir(),"rendererAssets","common"),destinationPath,{overwrite:!0}),await import_fs_extra.default.copy(await templatePath(),destinationPath,{overwrite:!0})}function getStorybookVersionSpecifier(packageJson){let allDeps={...packageJson.dependencies,...packageJson.devDependencies},storybookPackage=Object.keys(allDeps).find(name=>versions_default[name]);if(!storybookPackage)throw new Error("Couldn't find any official storybook packages in package.json");return allDeps[storybookPackage]}function isNxProject(packageJSON){var _a;return!!((_a=packageJSON.devDependencies)!=null&&_a.nx)||import_fs.default.existsSync("nx.json")}var viteConfigFiles=["vite.config.ts","vite.config.js","vite.config.mjs"],webpackConfigFiles=["webpack.config.js"],hasDependency=(packageJson,name,matcher)=>{var _a,_b;let version=((_a=packageJson.dependencies)==null?void 0:_a[name])||((_b=packageJson.devDependencies)==null?void 0:_b[name]);return version&&typeof matcher=="function"?matcher(version):!!version},hasPeerDependency=(packageJson,name,matcher)=>{var _a;let version=(_a=packageJson.peerDependencies)==null?void 0:_a[name];return version&&typeof matcher=="function"?matcher(version):!!version},getFrameworkPreset=(packageJson,framework)=>{let matcher={dependencies:[!1],peerDependencies:[!1],files:[!1]},{preset,files,dependencies,peerDependencies,matcherFunction}=framework,dependencySearches=[];Array.isArray(dependencies)?dependencySearches=dependencies.map(name=>[name,void 0]):typeof dependencies=="object"&&(dependencySearches=Object.entries(dependencies)),dependencySearches.length>0&&(matcher.dependencies=dependencySearches.map(([name,matchFn])=>hasDependency(packageJson,name,matchFn)));let peerDependencySearches=[];return Array.isArray(peerDependencies)?peerDependencySearches=peerDependencies.map(name=>[name,void 0]):typeof peerDependencies=="object"&&(peerDependencySearches=Object.entries(peerDependencies)),peerDependencySearches.length>0&&(matcher.peerDependencies=peerDependencySearches.map(([name,matchFn])=>hasPeerDependency(packageJson,name,matchFn))),Array.isArray(files)&&files.length>0&&(matcher.files=files.map(name=>import_fs2.default.existsSync(name))),matcherFunction(matcher)?preset:null};function detectFrameworkPreset(packageJson={}){let result=[...supportedTemplates,unsupportedTemplate].find(framework=>getFrameworkPreset(packageJson,framework)!==null);return result?result.preset:"UNDETECTED"}async function detectBuilder(packageManager,projectType){let viteConfig=import_find_up.default.sync(viteConfigFiles),webpackConfig=import_find_up.default.sync(webpackConfigFiles),dependencies=await packageManager.getAllDependencies();if(viteConfig||dependencies.vite&&dependencies.webpack===void 0)return commandLog("Detected Vite project. Setting builder to Vite")(),"vite";if(webpackConfig||dependencies.webpack&&dependencies.vite!==void 0)return commandLog("Detected webpack project. Setting builder to webpack")(),"webpack5";switch(projectType){case"SFC_VUE":return"vite";case"REACT_SCRIPTS":case"ANGULAR":case"NEXTJS":return"webpack5";default:let{builder}=await(0,import_prompts.default)({type:"select",name:"builder",message:"We were not able to detect the right builder for your project. Please select one:",choices:[{title:"Vite",value:"vite"},{title:"Webpack 5",value:"webpack5"}]});return builder}}function isStorybookInstantiated(configDir=(0,import_path3.resolve)(process.cwd(),".storybook")){return import_fs2.default.existsSync(configDir)}function detectPnp(){return(0,import_fs_extra2.pathExistsSync)((0,import_path3.join)(process.cwd(),".pnp.cjs"))}function detectLanguage(packageJson){let language="javascript";return!packageJson||import_fs2.default.existsSync("jsconfig.json")||(hasDependency(packageJson,"typescript",version=>import_semver3.default.gte(import_semver3.default.coerce(version),"4.9.0"))&&(!hasDependency(packageJson,"prettier")||hasDependency(packageJson,"prettier",version=>import_semver3.default.gte(import_semver3.default.coerce(version),"2.8.0")))&&(!hasDependency(packageJson,"@babel/plugin-transform-typescript")||hasDependency(packageJson,"@babel/plugin-transform-typescript",version=>import_semver3.default.gte(import_semver3.default.coerce(version),"7.20.0")))&&(!hasDependency(packageJson,"@typescript-eslint/parser")||hasDependency(packageJson,"@typescript-eslint/parser",version=>import_semver3.default.gte(import_semver3.default.coerce(version),"5.44.0")))&&(!hasDependency(packageJson,"eslint-plugin-storybook")||hasDependency(packageJson,"eslint-plugin-storybook",version=>import_semver3.default.gte(import_semver3.default.coerce(version),"0.6.8")))?language="typescript-4-9":hasDependency(packageJson,"typescript",version=>import_semver3.default.gte(import_semver3.default.coerce(version),"3.8.0"))?language="typescript-3-8":hasDependency(packageJson,"typescript",version=>import_semver3.default.lt(import_semver3.default.coerce(version),"3.8.0"))&&import_node_logger.logger.warn("Detected TypeScript < 3.8, populating with JavaScript examples")),language}function detect(packageJson,options={}){let bowerJson=getBowerJson();return!packageJson&&!bowerJson?"UNDETECTED":isNxProject(packageJson)?"NX":options.html?"HTML":detectFrameworkPreset(packageJson||bowerJson)}var import_path9=require("path"),import_semver5=__toESM(require("semver"));var import_path8=__toESM(require("path")),import_fs_extra9=__toESM(require("fs-extra")),import_ts_dedent8=require("ts-dedent"),import_ora=__toESM(require("ora"));var import_fs_extra3=__toESM(require("fs-extra")),import_path4=__toESM(require("path")),import_ts_dedent=require("ts-dedent");var logger3=console,sanitizeFramework=framework=>{let matches=framework.match(/(@storybook\/\w+(?:-\w+)*)|(storybook-(\w+(?:-\w+)*))/g);if(matches)return matches[0]};async function configureMain({addons,extensions=["js","jsx","ts","tsx"],storybookConfigFolder,language,...custom}){var _a,_b;let srcPath=import_path4.default.resolve(storybookConfigFolder,"../src"),prefix=await import_fs_extra3.default.pathExists(srcPath)?"../src":"../stories",config={stories:[`${prefix}/**/*.mdx`,`${prefix}/**/*.stories.@(${extensions.join("|")})`],addons,...custom},isTypescript=language==="typescript-4-9"||language==="typescript-3-8",mainConfigTemplate=import_ts_dedent.dedent`<<import>>const config<<type>> = <<mainContents>>;
|
|
12
|
+
`);logger.log(finalResult)}async function getBabelDependencies(packageManager,packageJson){let dependenciesToAdd=[],babelLoaderVersion="^8.0.0-0",babelCoreVersion=packageJson.dependencies["babel-core"]||packageJson.devDependencies["babel-core"];if(babelCoreVersion){let latestCompatibleBabelVersion=await packageManager.latestVersion("babel-core",babelCoreVersion);(0,import_semver2.satisfies)(latestCompatibleBabelVersion,"^6.0.0")&&(babelLoaderVersion="^7.0.0")}else if(!packageJson.dependencies["@babel/core"]&&!packageJson.devDependencies["@babel/core"]){let babelCoreInstallVersion=await packageManager.getVersion("@babel/core");dependenciesToAdd.push(`@babel/core@${babelCoreInstallVersion}`)}if(!packageJson.dependencies["babel-loader"]&&!packageJson.devDependencies["babel-loader"]){let babelLoaderInstallVersion=await packageManager.getVersion("babel-loader",babelLoaderVersion);dependenciesToAdd.push(`babel-loader@${babelLoaderInstallVersion}`)}return dependenciesToAdd}function copyTemplate(templateRoot,destination="."){let templateDir=import_path2.default.resolve(templateRoot,"template-csf/");if(!import_fs.default.existsSync(templateDir))throw new Error("Couldn't find template dir");import_fs_extra.default.copySync(templateDir,destination,{overwrite:!0})}async function copyTemplateFiles({packageManager,renderer,language,destination,includeCommonAssets=!0}){let languageFolderMapping={typescript:"ts",["javascript"]:"js",["typescript-3-8"]:"ts-3-8",["typescript-4-9"]:"ts-4-9"},templatePath=async()=>{let baseDir=await getRendererDir(packageManager,renderer),assetsDir=(0,import_path2.join)(baseDir,"template","cli"),assetsLanguage=(0,import_path2.join)(assetsDir,languageFolderMapping[language]),assetsJS=(0,import_path2.join)(assetsDir,languageFolderMapping["javascript"]),assetsTS=(0,import_path2.join)(assetsDir,languageFolderMapping.typescript),assetsTS38=(0,import_path2.join)(assetsDir,languageFolderMapping["typescript-3-8"]);if(await import_fs_extra.default.pathExists(assetsLanguage))return assetsLanguage;if(language==="typescript-4-9"&&await import_fs_extra.default.pathExists(assetsTS38))return assetsTS38;if(await import_fs_extra.default.pathExists(assetsTS))return assetsTS;if(await import_fs_extra.default.pathExists(assetsJS))return assetsJS;if(await import_fs_extra.default.pathExists(assetsDir))return assetsDir;throw new Error(`Unsupported renderer: ${renderer} (${baseDir})`)},destinationPath=destination??await(async()=>await import_fs_extra.default.pathExists("./src")?"./src/stories":"./stories")();includeCommonAssets&&await import_fs_extra.default.copy((0,import_path2.join)(getCliDir(),"rendererAssets","common"),destinationPath,{overwrite:!0}),await import_fs_extra.default.copy(await templatePath(),destinationPath,{overwrite:!0})}function getStorybookVersionSpecifier(packageJson){let allDeps={...packageJson.dependencies,...packageJson.devDependencies},storybookPackage=Object.keys(allDeps).find(name=>versions_default[name]);if(!storybookPackage)throw new Error("Couldn't find any official storybook packages in package.json");return allDeps[storybookPackage]}function isNxProject(packageJSON){var _a;return!!((_a=packageJSON.devDependencies)!=null&&_a.nx)||import_fs.default.existsSync("nx.json")}var viteConfigFiles=["vite.config.ts","vite.config.js","vite.config.mjs"],webpackConfigFiles=["webpack.config.js"],hasDependency=(packageJson,name,matcher)=>{var _a,_b;let version=((_a=packageJson.dependencies)==null?void 0:_a[name])||((_b=packageJson.devDependencies)==null?void 0:_b[name]);return version&&typeof matcher=="function"?matcher(version):!!version},hasPeerDependency=(packageJson,name,matcher)=>{var _a;let version=(_a=packageJson.peerDependencies)==null?void 0:_a[name];return version&&typeof matcher=="function"?matcher(version):!!version},getFrameworkPreset=(packageJson,framework)=>{let matcher={dependencies:[!1],peerDependencies:[!1],files:[!1]},{preset,files,dependencies,peerDependencies,matcherFunction}=framework,dependencySearches=[];Array.isArray(dependencies)?dependencySearches=dependencies.map(name=>[name,void 0]):typeof dependencies=="object"&&(dependencySearches=Object.entries(dependencies)),dependencySearches.length>0&&(matcher.dependencies=dependencySearches.map(([name,matchFn])=>hasDependency(packageJson,name,matchFn)));let peerDependencySearches=[];return Array.isArray(peerDependencies)?peerDependencySearches=peerDependencies.map(name=>[name,void 0]):typeof peerDependencies=="object"&&(peerDependencySearches=Object.entries(peerDependencies)),peerDependencySearches.length>0&&(matcher.peerDependencies=peerDependencySearches.map(([name,matchFn])=>hasPeerDependency(packageJson,name,matchFn))),Array.isArray(files)&&files.length>0&&(matcher.files=files.map(name=>import_fs2.default.existsSync(name))),matcherFunction(matcher)?preset:null};function detectFrameworkPreset(packageJson={}){let result=[...supportedTemplates,unsupportedTemplate].find(framework=>getFrameworkPreset(packageJson,framework)!==null);return result?result.preset:"UNDETECTED"}async function detectBuilder(packageManager,projectType){let viteConfig=import_find_up.default.sync(viteConfigFiles),webpackConfig=import_find_up.default.sync(webpackConfigFiles),dependencies=await packageManager.getAllDependencies();if(viteConfig||dependencies.vite&&dependencies.webpack===void 0)return commandLog("Detected Vite project. Setting builder to Vite")(),"vite";if(webpackConfig||dependencies.webpack&&dependencies.vite!==void 0)return commandLog("Detected webpack project. Setting builder to webpack")(),"webpack5";switch(projectType){case"SFC_VUE":return"vite";case"REACT_SCRIPTS":case"ANGULAR":case"REACT_NATIVE":case"NEXTJS":return"webpack5";default:let{builder}=await(0,import_prompts.default)({type:"select",name:"builder",message:"We were not able to detect the right builder for your project. Please select one:",choices:[{title:"Vite",value:"vite"},{title:"Webpack 5",value:"webpack5"}]});return builder}}function isStorybookInstantiated(configDir=(0,import_path3.resolve)(process.cwd(),".storybook")){return import_fs2.default.existsSync(configDir)}function detectPnp(){return(0,import_fs_extra2.pathExistsSync)((0,import_path3.join)(process.cwd(),".pnp.cjs"))}function detectLanguage(packageJson){let language="javascript";return!packageJson||import_fs2.default.existsSync("jsconfig.json")||(hasDependency(packageJson,"typescript",version=>import_semver3.default.gte(import_semver3.default.coerce(version),"4.9.0"))&&(!hasDependency(packageJson,"prettier")||hasDependency(packageJson,"prettier",version=>import_semver3.default.gte(import_semver3.default.coerce(version),"2.8.0")))&&(!hasDependency(packageJson,"@babel/plugin-transform-typescript")||hasDependency(packageJson,"@babel/plugin-transform-typescript",version=>import_semver3.default.gte(import_semver3.default.coerce(version),"7.20.0")))&&(!hasDependency(packageJson,"@typescript-eslint/parser")||hasDependency(packageJson,"@typescript-eslint/parser",version=>import_semver3.default.gte(import_semver3.default.coerce(version),"5.44.0")))&&(!hasDependency(packageJson,"eslint-plugin-storybook")||hasDependency(packageJson,"eslint-plugin-storybook",version=>import_semver3.default.gte(import_semver3.default.coerce(version),"0.6.8")))?language="typescript-4-9":hasDependency(packageJson,"typescript",version=>import_semver3.default.gte(import_semver3.default.coerce(version),"3.8.0"))?language="typescript-3-8":hasDependency(packageJson,"typescript",version=>import_semver3.default.lt(import_semver3.default.coerce(version),"3.8.0"))&&import_node_logger.logger.warn("Detected TypeScript < 3.8, populating with JavaScript examples")),language}function detect(packageJson,options={}){let bowerJson=getBowerJson();return!packageJson&&!bowerJson?"UNDETECTED":isNxProject(packageJson)?"NX":options.html?"HTML":detectFrameworkPreset(packageJson||bowerJson)}var import_path9=require("path"),import_semver5=__toESM(require("semver"));var import_path8=__toESM(require("path")),import_fs_extra9=__toESM(require("fs-extra")),import_ts_dedent8=require("ts-dedent"),import_ora=__toESM(require("ora"));var import_fs_extra3=__toESM(require("fs-extra")),import_path4=__toESM(require("path")),import_ts_dedent=require("ts-dedent");var logger3=console,sanitizeFramework=framework=>{let matches=framework.match(/(@storybook\/\w+(?:-\w+)*)|(storybook-(\w+(?:-\w+)*))/g);if(matches)return matches[0]};async function configureMain({addons,extensions=["js","jsx","ts","tsx"],storybookConfigFolder,language,...custom}){var _a,_b;let srcPath=import_path4.default.resolve(storybookConfigFolder,"../src"),prefix=await import_fs_extra3.default.pathExists(srcPath)?"../src":"../stories",config={stories:[`${prefix}/**/*.mdx`,`${prefix}/**/*.stories.@(${extensions.join("|")})`],addons,...custom},isTypescript=language==="typescript-4-9"||language==="typescript-3-8",mainConfigTemplate=import_ts_dedent.dedent`<<import>>const config<<type>> = <<mainContents>>;
|
|
13
13
|
export default config;`,frameworkPackage=sanitizeFramework((_a=custom.framework)==null?void 0:_a.name);frameworkPackage||(mainConfigTemplate=mainConfigTemplate.replace("<<import>>","").replace("<<type>>",""),logger3.warn("Could not find framework package name"));let mainContents=JSON.stringify(config,null,2).replace(/['"]%%/g,"").replace(/%%['"]/g,""),imports=[];(_b=custom.framework)!=null&&_b.name.includes("path.dirname(")&&imports.push("import path from 'path';"),isTypescript?imports.push(`import type { StorybookConfig } from '${frameworkPackage}';`):imports.push(`/** @type { import('${frameworkPackage}').StorybookConfig } */`);let mainJsContents=mainConfigTemplate.replace("<<import>>",`${imports.join(`
|
|
14
14
|
|
|
15
15
|
`)}
|
|
@@ -59,7 +59,7 @@ An error occurred while installing dependencies:`),logger4.log(e.message),new Ha
|
|
|
59
59
|
Sorry, for now, you can not do this, please use a framework such as @storybook/react-webpack5
|
|
60
60
|
|
|
61
61
|
https://github.com/storybookjs/storybook/issues/18360
|
|
62
|
-
`);let
|
|
62
|
+
`);let allPackages=["storybook",getExternalFramework(rendererId)?void 0:`@storybook/${rendererId}`,...frameworkPackages4,...addonPackages,...extraPackages].filter(Boolean),packages=[...new Set(allPackages)].filter(packageToInstall=>!installedDependencies.has(getPackageDetails(packageToInstall)[0]));logger6.log();let versionedPackagesSpinner=(0,import_ora.default)({indent:2,text:`Getting the correct version of ${packages.length} packages`}).start(),versionedPackages=await stopIfExiting(async()=>packageManager.getVersionedPackages(packages));versionedPackagesSpinner.succeed();let depsToInstall=[...versionedPackages];if(builder!=="vite"&&!skipBabel){let frameworksThatNeedBabelConfig2=["@storybook/react-webpack5","@storybook/vue-webpack5","@storybook/vue3-webpack5","@storybook/html-webpack5","@storybook/web-components-webpack5"],needsBabelConfig=frameworkPackages4.find(pkg2=>frameworksThatNeedBabelConfig2.includes(pkg2));if(!files.some(fname=>fname.startsWith(".babel")||fname.startsWith("babel"))&&needsBabelConfig){let isTypescript=language!=="javascript",isReact=rendererId==="react";depsToInstall.push(...getBabelPresets({typescript:isTypescript,jsx:isReact})),await writeBabelConfigFile({typescript:isTypescript,jsx:isReact})}}try{if(process.env.CI!=="true"){let{hasEslint,isStorybookPluginInstalled,eslintConfigFile}=await extractEslintInfo(packageManager);hasEslint&&!isStorybookPluginInstalled&&(skipPrompts||await suggestESLintPlugin())&&(depsToInstall.push("eslint-plugin-storybook"),await configureEslintPlugin(eslintConfigFile,packageManager))}}catch{}if(depsToInstall.length>0){let addDependenciesSpinner=(0,import_ora.default)({indent:2,text:"Installing Storybook dependencies"}).start();await stopIfExiting(async()=>packageManager.addDependencies({...npmOptions,packageJson},depsToInstall)),addDependenciesSpinner.succeed()}if(await import_fs_extra9.default.ensureDir(`./${storybookConfigFolder}`),addMainFile&&await configureMain({framework:{name:frameworkInclude,options:options.framework||{}},storybookConfigFolder,docs:{autodocs:"tag"},addons:pnp?addons.map(wrapForPnp):addons,extensions,language,...staticDir?{staticDirs:[import_path8.default.join("..",staticDir)]}:null,...extraMain,...type!=="framework"?{core:{builder:builderInclude}}:{}}),await configurePreview({frameworkPreviewParts,storybookConfigFolder,language,rendererId}),addScripts&&await stopIfExiting(async()=>packageManager.addStorybookCommandInScripts({port:6006})),addComponents){let templateLocation=hasFrameworkTemplates(framework)?framework:rendererId;await stopIfExiting(async()=>copyTemplateFiles({renderer:templateLocation,packageManager,language,destination:componentsDestinationPath}))}process.off("SIGINT",setNodeProcessExiting)}var import_fs4=__toESM(require("fs")),import_prompts4=__toESM(require("prompts")),import_ts_dedent9=__toESM(require("ts-dedent")),ANGULAR_JSON_PATH="angular.json",compoDocPreviewPrefix=import_ts_dedent9.default`
|
|
63
63
|
import { setCompodocJson } from "@storybook/addon-docs/angular";
|
|
64
64
|
import docJson from "../documentation.json";
|
|
65
65
|
setCompodocJson(docJson);
|
package/dist/generate.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { versions_default, parseList, getEnvConfig, JsPackageManagerFactory, useNpmWarning, getStorybookVersionSpecifier, commandLog, installableProjectTypes, paddedLog, HandledError, codeLog, __require, getBowerJson, isNxProject, getPackageDetails, supportedTemplates, unsupportedTemplate, getCliDir, copyTemplate, getBabelDependencies, copyTemplateFiles, externalFrameworks } from './chunk-
|
|
1
|
+
import { versions_default, parseList, getEnvConfig, JsPackageManagerFactory, useNpmWarning, getStorybookVersionSpecifier, commandLog, installableProjectTypes, paddedLog, HandledError, codeLog, __require, getBowerJson, isNxProject, getPackageDetails, supportedTemplates, unsupportedTemplate, getCliDir, copyTemplate, getBabelDependencies, copyTemplateFiles, externalFrameworks } from './chunk-HV52AGW6.mjs';
|
|
2
2
|
import program from 'commander';
|
|
3
3
|
import path9, { join, resolve, basename } from 'path';
|
|
4
4
|
import chalk13 from 'chalk';
|
|
@@ -32,7 +32,7 @@ import getPort from 'get-port';
|
|
|
32
32
|
import { downloadTemplate } from 'giget';
|
|
33
33
|
import shell from 'shelljs';
|
|
34
34
|
|
|
35
|
-
var viteConfigFiles=["vite.config.ts","vite.config.js","vite.config.mjs"],webpackConfigFiles=["webpack.config.js"],hasDependency=(packageJson,name,matcher)=>{let version=packageJson.dependencies?.[name]||packageJson.devDependencies?.[name];return version&&typeof matcher=="function"?matcher(version):!!version},hasPeerDependency=(packageJson,name,matcher)=>{let version=packageJson.peerDependencies?.[name];return version&&typeof matcher=="function"?matcher(version):!!version},getFrameworkPreset=(packageJson,framework)=>{let matcher={dependencies:[!1],peerDependencies:[!1],files:[!1]},{preset,files,dependencies,peerDependencies,matcherFunction}=framework,dependencySearches=[];Array.isArray(dependencies)?dependencySearches=dependencies.map(name=>[name,void 0]):typeof dependencies=="object"&&(dependencySearches=Object.entries(dependencies)),dependencySearches.length>0&&(matcher.dependencies=dependencySearches.map(([name,matchFn])=>hasDependency(packageJson,name,matchFn)));let peerDependencySearches=[];return Array.isArray(peerDependencies)?peerDependencySearches=peerDependencies.map(name=>[name,void 0]):typeof peerDependencies=="object"&&(peerDependencySearches=Object.entries(peerDependencies)),peerDependencySearches.length>0&&(matcher.peerDependencies=peerDependencySearches.map(([name,matchFn])=>hasPeerDependency(packageJson,name,matchFn))),Array.isArray(files)&&files.length>0&&(matcher.files=files.map(name=>fs4.existsSync(name))),matcherFunction(matcher)?preset:null};function detectFrameworkPreset(packageJson={}){let result=[...supportedTemplates,unsupportedTemplate].find(framework=>getFrameworkPreset(packageJson,framework)!==null);return result?result.preset:"UNDETECTED"}async function detectBuilder(packageManager,projectType){let viteConfig=findUp.sync(viteConfigFiles),webpackConfig=findUp.sync(webpackConfigFiles),dependencies=await packageManager.getAllDependencies();if(viteConfig||dependencies.vite&&dependencies.webpack===void 0)return commandLog("Detected Vite project. Setting builder to Vite")(),"vite";if(webpackConfig||dependencies.webpack&&dependencies.vite!==void 0)return commandLog("Detected webpack project. Setting builder to webpack")(),"webpack5";switch(projectType){case"SFC_VUE":return "vite";case"REACT_SCRIPTS":case"ANGULAR":case"NEXTJS":return "webpack5";default:let{builder}=await prompts5({type:"select",name:"builder",message:"We were not able to detect the right builder for your project. Please select one:",choices:[{title:"Vite",value:"vite"},{title:"Webpack 5",value:"webpack5"}]});return builder}}function isStorybookInstantiated(configDir=resolve(process.cwd(),".storybook")){return fs4.existsSync(configDir)}function detectPnp(){return pathExistsSync(join(process.cwd(),".pnp.cjs"))}function detectLanguage(packageJson){let language="javascript";return !packageJson||fs4.existsSync("jsconfig.json")||(hasDependency(packageJson,"typescript",version=>semver.gte(semver.coerce(version),"4.9.0"))&&(!hasDependency(packageJson,"prettier")||hasDependency(packageJson,"prettier",version=>semver.gte(semver.coerce(version),"2.8.0")))&&(!hasDependency(packageJson,"@babel/plugin-transform-typescript")||hasDependency(packageJson,"@babel/plugin-transform-typescript",version=>semver.gte(semver.coerce(version),"7.20.0")))&&(!hasDependency(packageJson,"@typescript-eslint/parser")||hasDependency(packageJson,"@typescript-eslint/parser",version=>semver.gte(semver.coerce(version),"5.44.0")))&&(!hasDependency(packageJson,"eslint-plugin-storybook")||hasDependency(packageJson,"eslint-plugin-storybook",version=>semver.gte(semver.coerce(version),"0.6.8")))?language="typescript-4-9":hasDependency(packageJson,"typescript",version=>semver.gte(semver.coerce(version),"3.8.0"))?language="typescript-3-8":hasDependency(packageJson,"typescript",version=>semver.lt(semver.coerce(version),"3.8.0"))&&logger.warn("Detected TypeScript < 3.8, populating with JavaScript examples")),language}function detect(packageJson,options={}){let bowerJson=getBowerJson();return !packageJson&&!bowerJson?"UNDETECTED":isNxProject(packageJson)?"NX":options.html?"HTML":detectFrameworkPreset(packageJson||bowerJson)}var logger2=console,sanitizeFramework=framework=>{let matches=framework.match(/(@storybook\/\w+(?:-\w+)*)|(storybook-(\w+(?:-\w+)*))/g);if(matches)return matches[0]};async function configureMain({addons,extensions=["js","jsx","ts","tsx"],storybookConfigFolder,language,...custom}){let srcPath=path9.resolve(storybookConfigFolder,"../src"),prefix=await fse__default.pathExists(srcPath)?"../src":"../stories",config={stories:[`${prefix}/**/*.mdx`,`${prefix}/**/*.stories.@(${extensions.join("|")})`],addons,...custom},isTypescript=language==="typescript-4-9"||language==="typescript-3-8",mainConfigTemplate=dedent`<<import>>const config<<type>> = <<mainContents>>;
|
|
35
|
+
var viteConfigFiles=["vite.config.ts","vite.config.js","vite.config.mjs"],webpackConfigFiles=["webpack.config.js"],hasDependency=(packageJson,name,matcher)=>{let version=packageJson.dependencies?.[name]||packageJson.devDependencies?.[name];return version&&typeof matcher=="function"?matcher(version):!!version},hasPeerDependency=(packageJson,name,matcher)=>{let version=packageJson.peerDependencies?.[name];return version&&typeof matcher=="function"?matcher(version):!!version},getFrameworkPreset=(packageJson,framework)=>{let matcher={dependencies:[!1],peerDependencies:[!1],files:[!1]},{preset,files,dependencies,peerDependencies,matcherFunction}=framework,dependencySearches=[];Array.isArray(dependencies)?dependencySearches=dependencies.map(name=>[name,void 0]):typeof dependencies=="object"&&(dependencySearches=Object.entries(dependencies)),dependencySearches.length>0&&(matcher.dependencies=dependencySearches.map(([name,matchFn])=>hasDependency(packageJson,name,matchFn)));let peerDependencySearches=[];return Array.isArray(peerDependencies)?peerDependencySearches=peerDependencies.map(name=>[name,void 0]):typeof peerDependencies=="object"&&(peerDependencySearches=Object.entries(peerDependencies)),peerDependencySearches.length>0&&(matcher.peerDependencies=peerDependencySearches.map(([name,matchFn])=>hasPeerDependency(packageJson,name,matchFn))),Array.isArray(files)&&files.length>0&&(matcher.files=files.map(name=>fs4.existsSync(name))),matcherFunction(matcher)?preset:null};function detectFrameworkPreset(packageJson={}){let result=[...supportedTemplates,unsupportedTemplate].find(framework=>getFrameworkPreset(packageJson,framework)!==null);return result?result.preset:"UNDETECTED"}async function detectBuilder(packageManager,projectType){let viteConfig=findUp.sync(viteConfigFiles),webpackConfig=findUp.sync(webpackConfigFiles),dependencies=await packageManager.getAllDependencies();if(viteConfig||dependencies.vite&&dependencies.webpack===void 0)return commandLog("Detected Vite project. Setting builder to Vite")(),"vite";if(webpackConfig||dependencies.webpack&&dependencies.vite!==void 0)return commandLog("Detected webpack project. Setting builder to webpack")(),"webpack5";switch(projectType){case"SFC_VUE":return "vite";case"REACT_SCRIPTS":case"ANGULAR":case"REACT_NATIVE":case"NEXTJS":return "webpack5";default:let{builder}=await prompts5({type:"select",name:"builder",message:"We were not able to detect the right builder for your project. Please select one:",choices:[{title:"Vite",value:"vite"},{title:"Webpack 5",value:"webpack5"}]});return builder}}function isStorybookInstantiated(configDir=resolve(process.cwd(),".storybook")){return fs4.existsSync(configDir)}function detectPnp(){return pathExistsSync(join(process.cwd(),".pnp.cjs"))}function detectLanguage(packageJson){let language="javascript";return !packageJson||fs4.existsSync("jsconfig.json")||(hasDependency(packageJson,"typescript",version=>semver.gte(semver.coerce(version),"4.9.0"))&&(!hasDependency(packageJson,"prettier")||hasDependency(packageJson,"prettier",version=>semver.gte(semver.coerce(version),"2.8.0")))&&(!hasDependency(packageJson,"@babel/plugin-transform-typescript")||hasDependency(packageJson,"@babel/plugin-transform-typescript",version=>semver.gte(semver.coerce(version),"7.20.0")))&&(!hasDependency(packageJson,"@typescript-eslint/parser")||hasDependency(packageJson,"@typescript-eslint/parser",version=>semver.gte(semver.coerce(version),"5.44.0")))&&(!hasDependency(packageJson,"eslint-plugin-storybook")||hasDependency(packageJson,"eslint-plugin-storybook",version=>semver.gte(semver.coerce(version),"0.6.8")))?language="typescript-4-9":hasDependency(packageJson,"typescript",version=>semver.gte(semver.coerce(version),"3.8.0"))?language="typescript-3-8":hasDependency(packageJson,"typescript",version=>semver.lt(semver.coerce(version),"3.8.0"))&&logger.warn("Detected TypeScript < 3.8, populating with JavaScript examples")),language}function detect(packageJson,options={}){let bowerJson=getBowerJson();return !packageJson&&!bowerJson?"UNDETECTED":isNxProject(packageJson)?"NX":options.html?"HTML":detectFrameworkPreset(packageJson||bowerJson)}var logger2=console,sanitizeFramework=framework=>{let matches=framework.match(/(@storybook\/\w+(?:-\w+)*)|(storybook-(\w+(?:-\w+)*))/g);if(matches)return matches[0]};async function configureMain({addons,extensions=["js","jsx","ts","tsx"],storybookConfigFolder,language,...custom}){let srcPath=path9.resolve(storybookConfigFolder,"../src"),prefix=await fse__default.pathExists(srcPath)?"../src":"../stories",config={stories:[`${prefix}/**/*.mdx`,`${prefix}/**/*.stories.@(${extensions.join("|")})`],addons,...custom},isTypescript=language==="typescript-4-9"||language==="typescript-3-8",mainConfigTemplate=dedent`<<import>>const config<<type>> = <<mainContents>>;
|
|
36
36
|
export default config;`,frameworkPackage=sanitizeFramework(custom.framework?.name);frameworkPackage||(mainConfigTemplate=mainConfigTemplate.replace("<<import>>","").replace("<<type>>",""),logger2.warn("Could not find framework package name"));let mainContents=JSON.stringify(config,null,2).replace(/['"]%%/g,"").replace(/%%['"]/g,""),imports=[];custom.framework?.name.includes("path.dirname(")&&imports.push("import path from 'path';"),isTypescript?imports.push(`import type { StorybookConfig } from '${frameworkPackage}';`):imports.push(`/** @type { import('${frameworkPackage}').StorybookConfig } */`);let mainJsContents=mainConfigTemplate.replace("<<import>>",`${imports.join(`
|
|
37
37
|
|
|
38
38
|
`)}
|
|
@@ -66,7 +66,7 @@ var viteConfigFiles=["vite.config.ts","vite.config.js","vite.config.mjs"],webpac
|
|
|
66
66
|
Sorry, for now, you can not do this, please use a framework such as @storybook/react-webpack5
|
|
67
67
|
|
|
68
68
|
https://github.com/storybookjs/storybook/issues/18360
|
|
69
|
-
`);let
|
|
69
|
+
`);let allPackages=["storybook",getExternalFramework(rendererId)?void 0:`@storybook/${rendererId}`,...frameworkPackages4,...addonPackages,...extraPackages].filter(Boolean),packages=[...new Set(allPackages)].filter(packageToInstall=>!installedDependencies.has(getPackageDetails(packageToInstall)[0]));logger4.log();let versionedPackagesSpinner=ora({indent:2,text:`Getting the correct version of ${packages.length} packages`}).start(),versionedPackages=await stopIfExiting(async()=>packageManager.getVersionedPackages(packages));versionedPackagesSpinner.succeed();let depsToInstall=[...versionedPackages];if(builder!=="vite"&&!skipBabel){let frameworksThatNeedBabelConfig2=["@storybook/react-webpack5","@storybook/vue-webpack5","@storybook/vue3-webpack5","@storybook/html-webpack5","@storybook/web-components-webpack5"],needsBabelConfig=frameworkPackages4.find(pkg2=>frameworksThatNeedBabelConfig2.includes(pkg2));if(!files.some(fname=>fname.startsWith(".babel")||fname.startsWith("babel"))&&needsBabelConfig){let isTypescript=language!=="javascript",isReact=rendererId==="react";depsToInstall.push(...getBabelPresets({typescript:isTypescript,jsx:isReact})),await writeBabelConfigFile({typescript:isTypescript,jsx:isReact});}}try{if(process.env.CI!=="true"){let{hasEslint,isStorybookPluginInstalled,eslintConfigFile}=await extractEslintInfo(packageManager);hasEslint&&!isStorybookPluginInstalled&&(skipPrompts||await suggestESLintPlugin())&&(depsToInstall.push("eslint-plugin-storybook"),await configureEslintPlugin(eslintConfigFile,packageManager));}}catch{}if(depsToInstall.length>0){let addDependenciesSpinner=ora({indent:2,text:"Installing Storybook dependencies"}).start();await stopIfExiting(async()=>packageManager.addDependencies({...npmOptions,packageJson},depsToInstall)),addDependenciesSpinner.succeed();}if(await fse__default.ensureDir(`./${storybookConfigFolder}`),addMainFile&&await configureMain({framework:{name:frameworkInclude,options:options.framework||{}},storybookConfigFolder,docs:{autodocs:"tag"},addons:pnp?addons.map(wrapForPnp):addons,extensions,language,...staticDir?{staticDirs:[path9.join("..",staticDir)]}:null,...extraMain,...type!=="framework"?{core:{builder:builderInclude}}:{}}),await configurePreview({frameworkPreviewParts,storybookConfigFolder,language,rendererId}),addScripts&&await stopIfExiting(async()=>packageManager.addStorybookCommandInScripts({port:6006})),addComponents){let templateLocation=hasFrameworkTemplates(framework)?framework:rendererId;await stopIfExiting(async()=>copyTemplateFiles({renderer:templateLocation,packageManager,language,destination:componentsDestinationPath}));}process.off("SIGINT",setNodeProcessExiting);}var ANGULAR_JSON_PATH="angular.json",compoDocPreviewPrefix=dedent18`
|
|
70
70
|
import { setCompodocJson } from "@storybook/addon-docs/angular";
|
|
71
71
|
import docJson from "../documentation.json";
|
|
72
72
|
setCompodocJson(docJson);
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var src_exports={};__export(src_exports,{JsPackageManager:()=>JsPackageManager,JsPackageManagerFactory:()=>JsPackageManagerFactory,createLogStream:()=>createLogStream,getEnvConfig:()=>getEnvConfig,getPackageDetails:()=>getPackageDetails,parseList:()=>parseList,useNpmWarning:()=>useNpmWarning,versions:()=>versions_default});module.exports=__toCommonJS(src_exports);var versions_default={"@storybook/addon-a11y":"7.0.
|
|
1
|
+
var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var src_exports={};__export(src_exports,{JsPackageManager:()=>JsPackageManager,JsPackageManagerFactory:()=>JsPackageManagerFactory,createLogStream:()=>createLogStream,getEnvConfig:()=>getEnvConfig,getPackageDetails:()=>getPackageDetails,parseList:()=>parseList,useNpmWarning:()=>useNpmWarning,versions:()=>versions_default});module.exports=__toCommonJS(src_exports);var versions_default={"@storybook/addon-a11y":"7.0.21","@storybook/addon-actions":"7.0.21","@storybook/addon-backgrounds":"7.0.21","@storybook/addon-controls":"7.0.21","@storybook/addon-docs":"7.0.21","@storybook/addon-essentials":"7.0.21","@storybook/addon-highlight":"7.0.21","@storybook/addon-interactions":"7.0.21","@storybook/addon-jest":"7.0.21","@storybook/addon-links":"7.0.21","@storybook/addon-mdx-gfm":"7.0.21","@storybook/addon-measure":"7.0.21","@storybook/addon-outline":"7.0.21","@storybook/addon-storyshots":"7.0.21","@storybook/addon-storyshots-puppeteer":"7.0.21","@storybook/addon-storysource":"7.0.21","@storybook/addon-toolbars":"7.0.21","@storybook/addon-viewport":"7.0.21","@storybook/addons":"7.0.21","@storybook/angular":"7.0.21","@storybook/api":"7.0.21","@storybook/blocks":"7.0.21","@storybook/builder-manager":"7.0.21","@storybook/builder-vite":"7.0.21","@storybook/builder-webpack5":"7.0.21","@storybook/channel-postmessage":"7.0.21","@storybook/channel-websocket":"7.0.21","@storybook/channels":"7.0.21","@storybook/cli":"7.0.21","@storybook/client-api":"7.0.21","@storybook/client-logger":"7.0.21","@storybook/codemod":"7.0.21","@storybook/components":"7.0.21","@storybook/core-client":"7.0.21","@storybook/core-common":"7.0.21","@storybook/core-events":"7.0.21","@storybook/core-server":"7.0.21","@storybook/core-webpack":"7.0.21","@storybook/csf-plugin":"7.0.21","@storybook/csf-tools":"7.0.21","@storybook/docs-tools":"7.0.21","@storybook/ember":"7.0.21","@storybook/html":"7.0.21","@storybook/html-vite":"7.0.21","@storybook/html-webpack5":"7.0.21","@storybook/instrumenter":"7.0.21","@storybook/manager":"7.0.21","@storybook/manager-api":"7.0.21","@storybook/nextjs":"7.0.21","@storybook/node-logger":"7.0.21","@storybook/postinstall":"7.0.21","@storybook/preact":"7.0.21","@storybook/preact-vite":"7.0.21","@storybook/preact-webpack5":"7.0.21","@storybook/preset-create-react-app":"7.0.21","@storybook/preset-html-webpack":"7.0.21","@storybook/preset-preact-webpack":"7.0.21","@storybook/preset-react-webpack":"7.0.21","@storybook/preset-server-webpack":"7.0.21","@storybook/preset-svelte-webpack":"7.0.21","@storybook/preset-vue-webpack":"7.0.21","@storybook/preset-vue3-webpack":"7.0.21","@storybook/preset-web-components-webpack":"7.0.21","@storybook/preview":"7.0.21","@storybook/preview-api":"7.0.21","@storybook/preview-web":"7.0.21","@storybook/react":"7.0.21","@storybook/react-dom-shim":"7.0.21","@storybook/react-vite":"7.0.21","@storybook/react-webpack5":"7.0.21","@storybook/router":"7.0.21","@storybook/server":"7.0.21","@storybook/server-webpack5":"7.0.21","@storybook/source-loader":"7.0.21","@storybook/store":"7.0.21","@storybook/svelte":"7.0.21","@storybook/svelte-vite":"7.0.21","@storybook/svelte-webpack5":"7.0.21","@storybook/sveltekit":"7.0.21","@storybook/telemetry":"7.0.21","@storybook/theming":"7.0.21","@storybook/types":"7.0.21","@storybook/vue":"7.0.21","@storybook/vue-vite":"7.0.21","@storybook/vue-webpack5":"7.0.21","@storybook/vue3":"7.0.21","@storybook/vue3-vite":"7.0.21","@storybook/vue3-webpack5":"7.0.21","@storybook/web-components":"7.0.21","@storybook/web-components-vite":"7.0.21","@storybook/web-components-webpack5":"7.0.21",sb:"7.0.21",storybook:"7.0.21"};var import_util_deprecate=__toESM(require("util-deprecate")),useNpmWarning=(0,import_util_deprecate.default)(()=>{},"`--use-npm` is deprecated and will be removed in Storybook 8.0. \nPlease use the `--package-manager=npm` option instead.\nRead more at https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#cli-option---use-npm-deprecated");var import_node_path=__toESM(require("path")),import_cross_spawn=require("cross-spawn"),import_find_up=require("find-up");var import_sort=__toESM(require("semver/functions/sort")),import_os=require("os"),import_ts_dedent2=__toESM(require("ts-dedent"));var import_chalk2=__toESM(require("chalk")),import_semver3=require("semver"),import_execa=require("execa"),import_path=__toESM(require("path")),import_fs=__toESM(require("fs")),import_ts_dedent=__toESM(require("ts-dedent")),import_fs_extra2=require("fs-extra");var import_fs_extra=__toESM(require("fs-extra")),import_chalk=__toESM(require("chalk")),import_semver2=require("semver"),import_strip_json_comments=__toESM(require("strip-json-comments"));var import_get_tarball=__toESM(require("@ndelangen/get-tarball")),import_get_npm_tarball_url=__toESM(require("get-npm-tarball-url")),tempy=__toESM(require("tempy"));var import_semver=require("semver");var ProjectType=(ProjectType2=>(ProjectType2.UNDETECTED="UNDETECTED",ProjectType2.UNSUPPORTED="UNSUPPORTED",ProjectType2.REACT_SCRIPTS="REACT_SCRIPTS",ProjectType2.REACT="REACT",ProjectType2.REACT_NATIVE="REACT_NATIVE",ProjectType2.REACT_PROJECT="REACT_PROJECT",ProjectType2.WEBPACK_REACT="WEBPACK_REACT",ProjectType2.NEXTJS="NEXTJS",ProjectType2.VUE="VUE",ProjectType2.VUE3="VUE3",ProjectType2.SFC_VUE="SFC_VUE",ProjectType2.ANGULAR="ANGULAR",ProjectType2.EMBER="EMBER",ProjectType2.WEB_COMPONENTS="WEB_COMPONENTS",ProjectType2.HTML="HTML",ProjectType2.QWIK="QWIK",ProjectType2.PREACT="PREACT",ProjectType2.SVELTE="SVELTE",ProjectType2.SVELTEKIT="SVELTEKIT",ProjectType2.SERVER="SERVER",ProjectType2.NX="NX",ProjectType2.SOLID="SOLID",ProjectType2))(ProjectType||{});var notInstallableProjectTypes=["UNDETECTED","UNSUPPORTED"],installableProjectTypes=Object.values(ProjectType).filter(type=>!notInstallableProjectTypes.includes(type)).map(type=>type.toLowerCase());var logger=console;var commandLog=message=>(process.stdout.write(import_chalk.default.cyan(" \u2022 ")+message),(errorMessage,errorInfo)=>{if(errorMessage){if(process.stdout.write(`. ${import_chalk.default.red("\u2716")}
|
|
2
2
|
`),logger.error(`
|
|
3
3
|
${import_chalk.default.red(errorMessage)}`),!errorInfo)return;let newErrorInfo=errorInfo.split(`
|
|
4
4
|
`).map(line=>` ${import_chalk.default.dim(line)}`).join(`
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { JsPackageManager, JsPackageManagerFactory, createLogStream, getEnvConfig, getPackageDetails, parseList, useNpmWarning, versions_default as versions } from './chunk-
|
|
1
|
+
export { JsPackageManager, JsPackageManagerFactory, createLogStream, getEnvConfig, getPackageDetails, parseList, useNpmWarning, versions_default as versions } from './chunk-HV52AGW6.mjs';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/cli",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.21",
|
|
4
4
|
"description": "Storybook's CLI - easiest method of adding storybook to your projects",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -57,13 +57,13 @@
|
|
|
57
57
|
"@babel/core": "^7.20.2",
|
|
58
58
|
"@babel/preset-env": "^7.20.2",
|
|
59
59
|
"@ndelangen/get-tarball": "^3.0.7",
|
|
60
|
-
"@storybook/codemod": "7.0.
|
|
61
|
-
"@storybook/core-common": "7.0.
|
|
62
|
-
"@storybook/core-server": "7.0.
|
|
63
|
-
"@storybook/csf-tools": "7.0.
|
|
64
|
-
"@storybook/node-logger": "7.0.
|
|
65
|
-
"@storybook/telemetry": "7.0.
|
|
66
|
-
"@storybook/types": "7.0.
|
|
60
|
+
"@storybook/codemod": "7.0.21",
|
|
61
|
+
"@storybook/core-common": "7.0.21",
|
|
62
|
+
"@storybook/core-server": "7.0.21",
|
|
63
|
+
"@storybook/csf-tools": "7.0.21",
|
|
64
|
+
"@storybook/node-logger": "7.0.21",
|
|
65
|
+
"@storybook/telemetry": "7.0.21",
|
|
66
|
+
"@storybook/types": "7.0.21",
|
|
67
67
|
"@types/semver": "^7.3.4",
|
|
68
68
|
"boxen": "^5.1.2",
|
|
69
69
|
"chalk": "^4.1.0",
|
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
"util-deprecate": "^1.0.2"
|
|
96
96
|
},
|
|
97
97
|
"devDependencies": {
|
|
98
|
-
"@storybook/client-api": "7.0.
|
|
98
|
+
"@storybook/client-api": "7.0.21",
|
|
99
99
|
"@types/cross-spawn": "^6.0.2",
|
|
100
100
|
"@types/prompts": "^2.0.9",
|
|
101
101
|
"@types/puppeteer-core": "^2.1.0",
|
|
@@ -117,4 +117,4 @@
|
|
|
117
117
|
"platform": "node"
|
|
118
118
|
},
|
|
119
119
|
"gitHead": "9fb2573aa274f3f69d3358050e8df9c903e8245f"
|
|
120
|
-
}
|
|
120
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { promisify } = require('util');
|
|
4
|
+
const { readJson, writeFile } = require('fs-extra');
|
|
5
|
+
const { exec } = require('child_process');
|
|
6
|
+
const path = require('path');
|
|
7
|
+
const semver = require('semver');
|
|
8
|
+
const { default: dedent } = require('ts-dedent');
|
|
9
|
+
|
|
10
|
+
const rootDirectory = path.join(__dirname, '..', '..', '..');
|
|
11
|
+
|
|
12
|
+
const logger = console;
|
|
13
|
+
|
|
14
|
+
const getMonorepoPackages = async () => {
|
|
15
|
+
const process = promisify(exec);
|
|
16
|
+
const contents = await process('yarn lerna ls --json', {
|
|
17
|
+
cwd: rootDirectory,
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
const projects = JSON.parse(contents.stdout);
|
|
21
|
+
return projects.reduce((acc, project) => {
|
|
22
|
+
acc[project.name] = path.join(project.location, 'package.json');
|
|
23
|
+
return acc;
|
|
24
|
+
}, []);
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const run = async () => {
|
|
28
|
+
const updatedVersion = process.argv[process.argv.length - 1];
|
|
29
|
+
|
|
30
|
+
if (!semver.valid(updatedVersion)) throw new Error(`Invalid version: ${updatedVersion}`);
|
|
31
|
+
|
|
32
|
+
logger.log(`Generating versions.ts with v${updatedVersion}`);
|
|
33
|
+
|
|
34
|
+
const storybookPackages = await getMonorepoPackages();
|
|
35
|
+
|
|
36
|
+
const packageToVersionMap = (
|
|
37
|
+
await Promise.all(
|
|
38
|
+
Object.keys(storybookPackages).map(async (pkgName) => {
|
|
39
|
+
const { name, version } = await readJson(storybookPackages[pkgName]);
|
|
40
|
+
|
|
41
|
+
return {
|
|
42
|
+
name,
|
|
43
|
+
version,
|
|
44
|
+
};
|
|
45
|
+
})
|
|
46
|
+
)
|
|
47
|
+
)
|
|
48
|
+
.filter(({ name }) => /^(@storybook|sb$|storybook$)/.test(name))
|
|
49
|
+
// As some previous steps are asynchronous order is not always the same so sort them to avoid that
|
|
50
|
+
.sort((package1, package2) => package1.name.localeCompare(package2.name))
|
|
51
|
+
.reduce((acc, { name }) => ({ ...acc, [name]: updatedVersion }), {});
|
|
52
|
+
|
|
53
|
+
const versionsPath = path.join(__dirname, '..', 'src', 'versions.ts');
|
|
54
|
+
|
|
55
|
+
await writeFile(
|
|
56
|
+
versionsPath,
|
|
57
|
+
dedent`
|
|
58
|
+
// auto generated file, do not edit
|
|
59
|
+
export default ${JSON.stringify(packageToVersionMap, null, 2)}
|
|
60
|
+
`
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
logger.log(`Updating versions and formatting results at: ${versionsPath}`);
|
|
64
|
+
|
|
65
|
+
exec(`yarn lint:js:cmd --fix ${versionsPath}`, {
|
|
66
|
+
cwd: path.join(__dirname, '..', '..', '..'),
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
run().catch((e) => {
|
|
71
|
+
logger.error(e);
|
|
72
|
+
process.exit(1);
|
|
73
|
+
});
|
package/src/typings.d.ts
ADDED
package/src/window.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
const run = require('../helpers');
|
|
2
|
+
|
|
3
|
+
describe('Default behavior', () => {
|
|
4
|
+
it('suggests the closest match to an unknown command', () => {
|
|
5
|
+
const { status, stderr, stdout } = run(['upgraed']);
|
|
6
|
+
|
|
7
|
+
// Assertions
|
|
8
|
+
expect(status).toBe(1);
|
|
9
|
+
expect(stderr.toString()).toContain('Invalid command: upgraed.');
|
|
10
|
+
expect(stdout.toString()).toContain('Did you mean upgrade?');
|
|
11
|
+
});
|
|
12
|
+
});
|
package/test/helpers.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const { sync: spawnSync } = require('cross-spawn');
|
|
2
|
+
const path = require('path');
|
|
3
|
+
|
|
4
|
+
const CLI_PATH = path.join(__dirname, '..', 'bin');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Execute command
|
|
8
|
+
* @param {String[]} args - args to be passed in
|
|
9
|
+
* @param {Object} options - customize the behavior
|
|
10
|
+
*
|
|
11
|
+
* @returns {Object}
|
|
12
|
+
*/
|
|
13
|
+
const run = (args, options = {}) => spawnSync('node', [CLI_PATH].concat(args), options);
|
|
14
|
+
|
|
15
|
+
module.exports = run;
|