@storybook/cli 7.6.11 → 7.6.13

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.
@@ -20,7 +20,7 @@ import { logger as logger$1 } from '@storybook/node-logger';
20
20
  import { ZipOpenFS, VirtualFS, PosixFS } from '@yarnpkg/fslib';
21
21
  import { getLibzipSync } from '@yarnpkg/libzip';
22
22
 
23
- 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 __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 Error('Dynamic require of "'+x+'" is not supported')});var __commonJS=(cb,mod)=>function(){return mod||(0, cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};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 versions_default={"@storybook/addon-a11y":"7.6.11","@storybook/addon-actions":"7.6.11","@storybook/addon-backgrounds":"7.6.11","@storybook/addon-controls":"7.6.11","@storybook/addon-docs":"7.6.11","@storybook/addon-essentials":"7.6.11","@storybook/addon-highlight":"7.6.11","@storybook/addon-interactions":"7.6.11","@storybook/addon-jest":"7.6.11","@storybook/addon-links":"7.6.11","@storybook/addon-mdx-gfm":"7.6.11","@storybook/addon-measure":"7.6.11","@storybook/addon-outline":"7.6.11","@storybook/addon-themes":"7.6.11","@storybook/addon-storyshots":"7.6.11","@storybook/addon-storyshots-puppeteer":"7.6.11","@storybook/addon-storysource":"7.6.11","@storybook/addon-toolbars":"7.6.11","@storybook/addon-viewport":"7.6.11","@storybook/addons":"7.6.11","@storybook/angular":"7.6.11","@storybook/api":"7.6.11","@storybook/blocks":"7.6.11","@storybook/builder-manager":"7.6.11","@storybook/builder-vite":"7.6.11","@storybook/builder-webpack5":"7.6.11","@storybook/channel-postmessage":"7.6.11","@storybook/channel-websocket":"7.6.11","@storybook/channels":"7.6.11","@storybook/cli":"7.6.11","@storybook/client-api":"7.6.11","@storybook/client-logger":"7.6.11","@storybook/codemod":"7.6.11","@storybook/components":"7.6.11","@storybook/core-client":"7.6.11","@storybook/core-common":"7.6.11","@storybook/core-events":"7.6.11","@storybook/core-server":"7.6.11","@storybook/core-webpack":"7.6.11","@storybook/csf-plugin":"7.6.11","@storybook/csf-tools":"7.6.11","@storybook/docs-tools":"7.6.11","@storybook/ember":"7.6.11","@storybook/html":"7.6.11","@storybook/html-vite":"7.6.11","@storybook/html-webpack5":"7.6.11","@storybook/instrumenter":"7.6.11","@storybook/manager":"7.6.11","@storybook/manager-api":"7.6.11","@storybook/nextjs":"7.6.11","@storybook/node-logger":"7.6.11","@storybook/postinstall":"7.6.11","@storybook/preact":"7.6.11","@storybook/preact-vite":"7.6.11","@storybook/preact-webpack5":"7.6.11","@storybook/preset-create-react-app":"7.6.11","@storybook/preset-html-webpack":"7.6.11","@storybook/preset-preact-webpack":"7.6.11","@storybook/preset-react-webpack":"7.6.11","@storybook/preset-server-webpack":"7.6.11","@storybook/preset-svelte-webpack":"7.6.11","@storybook/preset-vue-webpack":"7.6.11","@storybook/preset-vue3-webpack":"7.6.11","@storybook/preset-web-components-webpack":"7.6.11","@storybook/preview":"7.6.11","@storybook/preview-api":"7.6.11","@storybook/preview-web":"7.6.11","@storybook/react":"7.6.11","@storybook/react-dom-shim":"7.6.11","@storybook/react-vite":"7.6.11","@storybook/react-webpack5":"7.6.11","@storybook/router":"7.6.11","@storybook/server":"7.6.11","@storybook/server-webpack5":"7.6.11","@storybook/source-loader":"7.6.11","@storybook/store":"7.6.11","@storybook/svelte":"7.6.11","@storybook/svelte-vite":"7.6.11","@storybook/svelte-webpack5":"7.6.11","@storybook/sveltekit":"7.6.11","@storybook/telemetry":"7.6.11","@storybook/theming":"7.6.11","@storybook/types":"7.6.11","@storybook/test":"7.6.11","@storybook/vue":"7.6.11","@storybook/vue-vite":"7.6.11","@storybook/vue-webpack5":"7.6.11","@storybook/vue3":"7.6.11","@storybook/vue3-vite":"7.6.11","@storybook/vue3-webpack5":"7.6.11","@storybook/web-components":"7.6.11","@storybook/web-components-vite":"7.6.11","@storybook/web-components-webpack5":"7.6.11",sb:"7.6.11",storybook:"7.6.11"};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 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="REACT",ProjectType2.REACT_SCRIPTS="REACT_SCRIPTS",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"],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","NX"],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(`
23
+ 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 __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 Error('Dynamic require of "'+x+'" is not supported')});var __commonJS=(cb,mod)=>function(){return mod||(0, cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};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 versions_default={"@storybook/addon-a11y":"7.6.13","@storybook/addon-actions":"7.6.13","@storybook/addon-backgrounds":"7.6.13","@storybook/addon-controls":"7.6.13","@storybook/addon-docs":"7.6.13","@storybook/addon-essentials":"7.6.13","@storybook/addon-highlight":"7.6.13","@storybook/addon-interactions":"7.6.13","@storybook/addon-jest":"7.6.13","@storybook/addon-links":"7.6.13","@storybook/addon-mdx-gfm":"7.6.13","@storybook/addon-measure":"7.6.13","@storybook/addon-outline":"7.6.13","@storybook/addon-themes":"7.6.13","@storybook/addon-storyshots":"7.6.13","@storybook/addon-storyshots-puppeteer":"7.6.13","@storybook/addon-storysource":"7.6.13","@storybook/addon-toolbars":"7.6.13","@storybook/addon-viewport":"7.6.13","@storybook/addons":"7.6.13","@storybook/angular":"7.6.13","@storybook/api":"7.6.13","@storybook/blocks":"7.6.13","@storybook/builder-manager":"7.6.13","@storybook/builder-vite":"7.6.13","@storybook/builder-webpack5":"7.6.13","@storybook/channel-postmessage":"7.6.13","@storybook/channel-websocket":"7.6.13","@storybook/channels":"7.6.13","@storybook/cli":"7.6.13","@storybook/client-api":"7.6.13","@storybook/client-logger":"7.6.13","@storybook/codemod":"7.6.13","@storybook/components":"7.6.13","@storybook/core-client":"7.6.13","@storybook/core-common":"7.6.13","@storybook/core-events":"7.6.13","@storybook/core-server":"7.6.13","@storybook/core-webpack":"7.6.13","@storybook/csf-plugin":"7.6.13","@storybook/csf-tools":"7.6.13","@storybook/docs-tools":"7.6.13","@storybook/ember":"7.6.13","@storybook/html":"7.6.13","@storybook/html-vite":"7.6.13","@storybook/html-webpack5":"7.6.13","@storybook/instrumenter":"7.6.13","@storybook/manager":"7.6.13","@storybook/manager-api":"7.6.13","@storybook/nextjs":"7.6.13","@storybook/node-logger":"7.6.13","@storybook/postinstall":"7.6.13","@storybook/preact":"7.6.13","@storybook/preact-vite":"7.6.13","@storybook/preact-webpack5":"7.6.13","@storybook/preset-create-react-app":"7.6.13","@storybook/preset-html-webpack":"7.6.13","@storybook/preset-preact-webpack":"7.6.13","@storybook/preset-react-webpack":"7.6.13","@storybook/preset-server-webpack":"7.6.13","@storybook/preset-svelte-webpack":"7.6.13","@storybook/preset-vue-webpack":"7.6.13","@storybook/preset-vue3-webpack":"7.6.13","@storybook/preset-web-components-webpack":"7.6.13","@storybook/preview":"7.6.13","@storybook/preview-api":"7.6.13","@storybook/preview-web":"7.6.13","@storybook/react":"7.6.13","@storybook/react-dom-shim":"7.6.13","@storybook/react-vite":"7.6.13","@storybook/react-webpack5":"7.6.13","@storybook/router":"7.6.13","@storybook/server":"7.6.13","@storybook/server-webpack5":"7.6.13","@storybook/source-loader":"7.6.13","@storybook/store":"7.6.13","@storybook/svelte":"7.6.13","@storybook/svelte-vite":"7.6.13","@storybook/svelte-webpack5":"7.6.13","@storybook/sveltekit":"7.6.13","@storybook/telemetry":"7.6.13","@storybook/theming":"7.6.13","@storybook/types":"7.6.13","@storybook/test":"7.6.13","@storybook/vue":"7.6.13","@storybook/vue-vite":"7.6.13","@storybook/vue-webpack5":"7.6.13","@storybook/vue3":"7.6.13","@storybook/vue3-vite":"7.6.13","@storybook/vue3-webpack5":"7.6.13","@storybook/web-components":"7.6.13","@storybook/web-components-vite":"7.6.13","@storybook/web-components-webpack5":"7.6.13",sb:"7.6.13",storybook:"7.6.13"};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 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="REACT",ProjectType2.REACT_SCRIPTS="REACT_SCRIPTS",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"],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","NX"],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(`
24
24
 
25
25
  `)}`)}var logger=console;var commandLog=message=>(process.stdout.write(chalk.cyan(" \u2022 ")+message),(errorMessage,errorInfo)=>{if(errorMessage){if(process.stdout.write(`. ${chalk.red("\u2716")}
26
26
  `),logger.error(`
package/dist/generate.js CHANGED
@@ -8,7 +8,7 @@ var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropD
8
8
  `).map(line=>exec2(line,columns,options)).join(`
9
9
  `)}});var require_boxen=__commonJS({"../../node_modules/boxen/index.js"(exports,module2){"use strict";var stringWidth=require_string_width(),chalk35=require("chalk"),widestLine=require_widest_line(),cliBoxes=require_cli_boxes(),camelCase=require_camelcase(),ansiAlign=require_ansi_align(),wrapAnsi=require_wrap_ansi(),NL=`
10
10
  `,PAD=" ",terminalColumns=()=>{let{env,stdout,stderr}=process;return stdout&&stdout.columns?stdout.columns:stderr&&stderr.columns?stderr.columns:env.COLUMNS?Number.parseInt(env.COLUMNS,10):80},getObject=detail=>typeof detail=="number"?{top:detail,right:detail*3,bottom:detail,left:detail*3}:{top:0,right:0,bottom:0,left:0,...detail},getBorderChars=borderStyle=>{let sides=["topLeft","topRight","bottomRight","bottomLeft","vertical","horizontal"],chararacters;if(typeof borderStyle=="string"){if(chararacters=cliBoxes[borderStyle],!chararacters)throw new TypeError(`Invalid border style: ${borderStyle}`)}else{for(let side of sides)if(!borderStyle[side]||typeof borderStyle[side]!="string")throw new TypeError(`Invalid border style: ${side}`);chararacters=borderStyle}return chararacters},makeTitle=(text,horizontal,alignement)=>{let title="",textWidth=stringWidth(text);switch(alignement){case"left":title=text+horizontal.slice(textWidth);break;case"right":title=horizontal.slice(textWidth)+text;break;default:horizontal=horizontal.slice(textWidth),horizontal.length%2===1?(horizontal=horizontal.slice(Math.floor(horizontal.length/2)),title=horizontal.slice(1)+text+horizontal):(horizontal=horizontal.slice(horizontal.length/2),title=horizontal+text+horizontal);break}return title},makeContentText=(text,padding,columns,align)=>{text=ansiAlign(text,{align});let lines=text.split(NL),textWidth=widestLine(text),max=columns-padding.left-padding.right;if(textWidth>max){let newLines=[];for(let line of lines){let createdLines=wrapAnsi(line,max,{hard:!0}),alignedLinesArray=ansiAlign(createdLines,{align}).split(`
11
- `),longestLength=Math.max(...alignedLinesArray.map(s=>stringWidth(s)));for(let alignedLine of alignedLinesArray){let paddedLine;switch(align){case"center":paddedLine=PAD.repeat((max-longestLength)/2)+alignedLine;break;case"right":paddedLine=PAD.repeat(max-longestLength)+alignedLine;break;default:paddedLine=alignedLine;break}newLines.push(paddedLine)}}lines=newLines}align==="center"&&textWidth<max?lines=lines.map(line=>PAD.repeat((max-textWidth)/2)+line):align==="right"&&textWidth<max&&(lines=lines.map(line=>PAD.repeat(max-textWidth)+line));let paddingLeft=PAD.repeat(padding.left),paddingRight=PAD.repeat(padding.right);return lines=lines.map(line=>paddingLeft+line+paddingRight),lines=lines.map(line=>{if(columns-stringWidth(line)>0)switch(align){case"center":return line+PAD.repeat(columns-stringWidth(line));case"right":return line+PAD.repeat(columns-stringWidth(line));default:return line+PAD.repeat(columns-stringWidth(line))}return line}),padding.top>0&&(lines=new Array(padding.top).fill(PAD.repeat(columns)).concat(lines)),padding.bottom>0&&(lines=lines.concat(new Array(padding.bottom).fill(PAD.repeat(columns)))),lines.join(NL)},isHex=color=>color.match(/^#(?:[0-f]{3}){1,2}$/i),isColorValid=color=>typeof color=="string"&&(chalk35[color]||isHex(color)),getColorFn=color=>isHex(color)?chalk35.hex(color):chalk35[color],getBGColorFn=color=>isHex(color)?chalk35.bgHex(color):chalk35[camelCase(["bg",color])];module2.exports=(text,options)=>{options={padding:0,borderStyle:"single",dimBorder:!1,textAlignment:"left",float:"left",titleAlignment:"left",...options},options.align&&(options.textAlignment=options.align);let BORDERS_WIDTH=2;if(options.borderColor&&!isColorValid(options.borderColor))throw new Error(`${options.borderColor} is not a valid borderColor`);if(options.backgroundColor&&!isColorValid(options.backgroundColor))throw new Error(`${options.backgroundColor} is not a valid backgroundColor`);let chars=getBorderChars(options.borderStyle),padding=getObject(options.padding),margin=getObject(options.margin),colorizeBorder=border=>{let newBorder=options.borderColor?getColorFn(options.borderColor)(border):border;return options.dimBorder?chalk35.dim(newBorder):newBorder},colorizeContent=content=>options.backgroundColor?getBGColorFn(options.backgroundColor)(content):content,columns=terminalColumns(),contentWidth=widestLine(wrapAnsi(text,columns-BORDERS_WIDTH,{hard:!0,trim:!1}))+padding.left+padding.right,title=options.title&&options.title.slice(0,columns-4-margin.left-margin.right);if(title&&(title=` ${title} `,stringWidth(title)>contentWidth&&(contentWidth=stringWidth(title))),margin.left&&margin.right&&contentWidth+BORDERS_WIDTH+margin.left+margin.right>columns){let multiplier=(columns-contentWidth-BORDERS_WIDTH)/(margin.left+margin.right);margin.left=Math.max(0,Math.floor(margin.left*multiplier)),margin.right=Math.max(0,Math.floor(margin.right*multiplier))}contentWidth=Math.min(contentWidth,columns-BORDERS_WIDTH-margin.left-margin.right),text=makeContentText(text,padding,contentWidth,options.textAlignment);let marginLeft=PAD.repeat(margin.left);if(options.float==="center"){let marginWidth=Math.max((columns-contentWidth-BORDERS_WIDTH)/2,0);marginLeft=PAD.repeat(marginWidth)}else if(options.float==="right"){let marginWidth=Math.max(columns-contentWidth-margin.right-BORDERS_WIDTH,0);marginLeft=PAD.repeat(marginWidth)}let horizontal=chars.horizontal.repeat(contentWidth),top=colorizeBorder(NL.repeat(margin.top)+marginLeft+chars.topLeft+(title?makeTitle(title,horizontal,options.titleAlignment):horizontal)+chars.topRight),bottom=colorizeBorder(marginLeft+chars.bottomLeft+horizontal+chars.bottomRight+NL.repeat(margin.bottom)),side=colorizeBorder(chars.vertical),LINE_SEPARATOR=contentWidth+BORDERS_WIDTH+margin.left>=columns?"":NL,middle=text.split(NL).map(line=>marginLeft+side+colorizeContent(line)+side).join(LINE_SEPARATOR);return top+LINE_SEPARATOR+middle+LINE_SEPARATOR+bottom};module2.exports._borderStyles=cliBoxes}});var import_commander=__toESM(require("commander")),import_path25=__toESM(require("path")),import_chalk34=__toESM(require("chalk")),import_envinfo=__toESM(require("envinfo")),import_leven=__toESM(require("leven")),import_read_pkg_up3=require("read-pkg-up"),import_node_logger9=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_server_errors2=require("@storybook/core-events/server-errors"),import_ts_dedent11=__toESM(require("ts-dedent")),import_boxen=__toESM(require_boxen()),import_fs_extra9=require("fs-extra"),import_semver10=require("semver");var import_semver=require("semver");function ltMajor(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="REACT",ProjectType2.REACT_SCRIPTS="REACT_SCRIPTS",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"],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","NX"],installableProjectTypes=Object.values(ProjectType).filter(type=>!notInstallableProjectTypes.includes(type)).map(type=>type.toLowerCase());var import_fs2=__toESM(require("fs")),import_find_up2=__toESM(require("find-up")),import_semver3=__toESM(require("semver")),import_node_logger=require("@storybook/node-logger"),import_path3=require("path"),import_prompts=__toESM(require("prompts"));var import_chalk=__toESM(require("chalk")),import_fs=__toESM(require("fs")),import_fs_extra=__toESM(require("fs-extra")),import_path2=__toESM(require("path")),import_semver2=require("semver"),import_strip_json_comments=__toESM(require("strip-json-comments")),import_find_up=__toESM(require("find-up"));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.6.11","@storybook/addon-actions":"7.6.11","@storybook/addon-backgrounds":"7.6.11","@storybook/addon-controls":"7.6.11","@storybook/addon-docs":"7.6.11","@storybook/addon-essentials":"7.6.11","@storybook/addon-highlight":"7.6.11","@storybook/addon-interactions":"7.6.11","@storybook/addon-jest":"7.6.11","@storybook/addon-links":"7.6.11","@storybook/addon-mdx-gfm":"7.6.11","@storybook/addon-measure":"7.6.11","@storybook/addon-outline":"7.6.11","@storybook/addon-themes":"7.6.11","@storybook/addon-storyshots":"7.6.11","@storybook/addon-storyshots-puppeteer":"7.6.11","@storybook/addon-storysource":"7.6.11","@storybook/addon-toolbars":"7.6.11","@storybook/addon-viewport":"7.6.11","@storybook/addons":"7.6.11","@storybook/angular":"7.6.11","@storybook/api":"7.6.11","@storybook/blocks":"7.6.11","@storybook/builder-manager":"7.6.11","@storybook/builder-vite":"7.6.11","@storybook/builder-webpack5":"7.6.11","@storybook/channel-postmessage":"7.6.11","@storybook/channel-websocket":"7.6.11","@storybook/channels":"7.6.11","@storybook/cli":"7.6.11","@storybook/client-api":"7.6.11","@storybook/client-logger":"7.6.11","@storybook/codemod":"7.6.11","@storybook/components":"7.6.11","@storybook/core-client":"7.6.11","@storybook/core-common":"7.6.11","@storybook/core-events":"7.6.11","@storybook/core-server":"7.6.11","@storybook/core-webpack":"7.6.11","@storybook/csf-plugin":"7.6.11","@storybook/csf-tools":"7.6.11","@storybook/docs-tools":"7.6.11","@storybook/ember":"7.6.11","@storybook/html":"7.6.11","@storybook/html-vite":"7.6.11","@storybook/html-webpack5":"7.6.11","@storybook/instrumenter":"7.6.11","@storybook/manager":"7.6.11","@storybook/manager-api":"7.6.11","@storybook/nextjs":"7.6.11","@storybook/node-logger":"7.6.11","@storybook/postinstall":"7.6.11","@storybook/preact":"7.6.11","@storybook/preact-vite":"7.6.11","@storybook/preact-webpack5":"7.6.11","@storybook/preset-create-react-app":"7.6.11","@storybook/preset-html-webpack":"7.6.11","@storybook/preset-preact-webpack":"7.6.11","@storybook/preset-react-webpack":"7.6.11","@storybook/preset-server-webpack":"7.6.11","@storybook/preset-svelte-webpack":"7.6.11","@storybook/preset-vue-webpack":"7.6.11","@storybook/preset-vue3-webpack":"7.6.11","@storybook/preset-web-components-webpack":"7.6.11","@storybook/preview":"7.6.11","@storybook/preview-api":"7.6.11","@storybook/preview-web":"7.6.11","@storybook/react":"7.6.11","@storybook/react-dom-shim":"7.6.11","@storybook/react-vite":"7.6.11","@storybook/react-webpack5":"7.6.11","@storybook/router":"7.6.11","@storybook/server":"7.6.11","@storybook/server-webpack5":"7.6.11","@storybook/source-loader":"7.6.11","@storybook/store":"7.6.11","@storybook/svelte":"7.6.11","@storybook/svelte-vite":"7.6.11","@storybook/svelte-webpack5":"7.6.11","@storybook/sveltekit":"7.6.11","@storybook/telemetry":"7.6.11","@storybook/theming":"7.6.11","@storybook/types":"7.6.11","@storybook/test":"7.6.11","@storybook/vue":"7.6.11","@storybook/vue-vite":"7.6.11","@storybook/vue-webpack5":"7.6.11","@storybook/vue3":"7.6.11","@storybook/vue3-vite":"7.6.11","@storybook/vue3-webpack5":"7.6.11","@storybook/web-components":"7.6.11","@storybook/web-components-vite":"7.6.11","@storybook/web-components-webpack5":"7.6.11",sb:"7.6.11",storybook:"7.6.11"};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(`
11
+ `),longestLength=Math.max(...alignedLinesArray.map(s=>stringWidth(s)));for(let alignedLine of alignedLinesArray){let paddedLine;switch(align){case"center":paddedLine=PAD.repeat((max-longestLength)/2)+alignedLine;break;case"right":paddedLine=PAD.repeat(max-longestLength)+alignedLine;break;default:paddedLine=alignedLine;break}newLines.push(paddedLine)}}lines=newLines}align==="center"&&textWidth<max?lines=lines.map(line=>PAD.repeat((max-textWidth)/2)+line):align==="right"&&textWidth<max&&(lines=lines.map(line=>PAD.repeat(max-textWidth)+line));let paddingLeft=PAD.repeat(padding.left),paddingRight=PAD.repeat(padding.right);return lines=lines.map(line=>paddingLeft+line+paddingRight),lines=lines.map(line=>{if(columns-stringWidth(line)>0)switch(align){case"center":return line+PAD.repeat(columns-stringWidth(line));case"right":return line+PAD.repeat(columns-stringWidth(line));default:return line+PAD.repeat(columns-stringWidth(line))}return line}),padding.top>0&&(lines=new Array(padding.top).fill(PAD.repeat(columns)).concat(lines)),padding.bottom>0&&(lines=lines.concat(new Array(padding.bottom).fill(PAD.repeat(columns)))),lines.join(NL)},isHex=color=>color.match(/^#(?:[0-f]{3}){1,2}$/i),isColorValid=color=>typeof color=="string"&&(chalk35[color]||isHex(color)),getColorFn=color=>isHex(color)?chalk35.hex(color):chalk35[color],getBGColorFn=color=>isHex(color)?chalk35.bgHex(color):chalk35[camelCase(["bg",color])];module2.exports=(text,options)=>{options={padding:0,borderStyle:"single",dimBorder:!1,textAlignment:"left",float:"left",titleAlignment:"left",...options},options.align&&(options.textAlignment=options.align);let BORDERS_WIDTH=2;if(options.borderColor&&!isColorValid(options.borderColor))throw new Error(`${options.borderColor} is not a valid borderColor`);if(options.backgroundColor&&!isColorValid(options.backgroundColor))throw new Error(`${options.backgroundColor} is not a valid backgroundColor`);let chars=getBorderChars(options.borderStyle),padding=getObject(options.padding),margin=getObject(options.margin),colorizeBorder=border=>{let newBorder=options.borderColor?getColorFn(options.borderColor)(border):border;return options.dimBorder?chalk35.dim(newBorder):newBorder},colorizeContent=content=>options.backgroundColor?getBGColorFn(options.backgroundColor)(content):content,columns=terminalColumns(),contentWidth=widestLine(wrapAnsi(text,columns-BORDERS_WIDTH,{hard:!0,trim:!1}))+padding.left+padding.right,title=options.title&&options.title.slice(0,columns-4-margin.left-margin.right);if(title&&(title=` ${title} `,stringWidth(title)>contentWidth&&(contentWidth=stringWidth(title))),margin.left&&margin.right&&contentWidth+BORDERS_WIDTH+margin.left+margin.right>columns){let multiplier=(columns-contentWidth-BORDERS_WIDTH)/(margin.left+margin.right);margin.left=Math.max(0,Math.floor(margin.left*multiplier)),margin.right=Math.max(0,Math.floor(margin.right*multiplier))}contentWidth=Math.min(contentWidth,columns-BORDERS_WIDTH-margin.left-margin.right),text=makeContentText(text,padding,contentWidth,options.textAlignment);let marginLeft=PAD.repeat(margin.left);if(options.float==="center"){let marginWidth=Math.max((columns-contentWidth-BORDERS_WIDTH)/2,0);marginLeft=PAD.repeat(marginWidth)}else if(options.float==="right"){let marginWidth=Math.max(columns-contentWidth-margin.right-BORDERS_WIDTH,0);marginLeft=PAD.repeat(marginWidth)}let horizontal=chars.horizontal.repeat(contentWidth),top=colorizeBorder(NL.repeat(margin.top)+marginLeft+chars.topLeft+(title?makeTitle(title,horizontal,options.titleAlignment):horizontal)+chars.topRight),bottom=colorizeBorder(marginLeft+chars.bottomLeft+horizontal+chars.bottomRight+NL.repeat(margin.bottom)),side=colorizeBorder(chars.vertical),LINE_SEPARATOR=contentWidth+BORDERS_WIDTH+margin.left>=columns?"":NL,middle=text.split(NL).map(line=>marginLeft+side+colorizeContent(line)+side).join(LINE_SEPARATOR);return top+LINE_SEPARATOR+middle+LINE_SEPARATOR+bottom};module2.exports._borderStyles=cliBoxes}});var import_commander=__toESM(require("commander")),import_path25=__toESM(require("path")),import_chalk34=__toESM(require("chalk")),import_envinfo=__toESM(require("envinfo")),import_leven=__toESM(require("leven")),import_read_pkg_up3=require("read-pkg-up"),import_node_logger9=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_server_errors2=require("@storybook/core-events/server-errors"),import_ts_dedent11=__toESM(require("ts-dedent")),import_boxen=__toESM(require_boxen()),import_fs_extra9=require("fs-extra"),import_semver10=require("semver");var import_semver=require("semver");function ltMajor(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="REACT",ProjectType2.REACT_SCRIPTS="REACT_SCRIPTS",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"],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","NX"],installableProjectTypes=Object.values(ProjectType).filter(type=>!notInstallableProjectTypes.includes(type)).map(type=>type.toLowerCase());var import_fs2=__toESM(require("fs")),import_find_up2=__toESM(require("find-up")),import_semver3=__toESM(require("semver")),import_node_logger=require("@storybook/node-logger"),import_path3=require("path"),import_prompts=__toESM(require("prompts"));var import_chalk=__toESM(require("chalk")),import_fs=__toESM(require("fs")),import_fs_extra=__toESM(require("fs-extra")),import_path2=__toESM(require("path")),import_semver2=require("semver"),import_strip_json_comments=__toESM(require("strip-json-comments")),import_find_up=__toESM(require("find-up"));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.6.13","@storybook/addon-actions":"7.6.13","@storybook/addon-backgrounds":"7.6.13","@storybook/addon-controls":"7.6.13","@storybook/addon-docs":"7.6.13","@storybook/addon-essentials":"7.6.13","@storybook/addon-highlight":"7.6.13","@storybook/addon-interactions":"7.6.13","@storybook/addon-jest":"7.6.13","@storybook/addon-links":"7.6.13","@storybook/addon-mdx-gfm":"7.6.13","@storybook/addon-measure":"7.6.13","@storybook/addon-outline":"7.6.13","@storybook/addon-themes":"7.6.13","@storybook/addon-storyshots":"7.6.13","@storybook/addon-storyshots-puppeteer":"7.6.13","@storybook/addon-storysource":"7.6.13","@storybook/addon-toolbars":"7.6.13","@storybook/addon-viewport":"7.6.13","@storybook/addons":"7.6.13","@storybook/angular":"7.6.13","@storybook/api":"7.6.13","@storybook/blocks":"7.6.13","@storybook/builder-manager":"7.6.13","@storybook/builder-vite":"7.6.13","@storybook/builder-webpack5":"7.6.13","@storybook/channel-postmessage":"7.6.13","@storybook/channel-websocket":"7.6.13","@storybook/channels":"7.6.13","@storybook/cli":"7.6.13","@storybook/client-api":"7.6.13","@storybook/client-logger":"7.6.13","@storybook/codemod":"7.6.13","@storybook/components":"7.6.13","@storybook/core-client":"7.6.13","@storybook/core-common":"7.6.13","@storybook/core-events":"7.6.13","@storybook/core-server":"7.6.13","@storybook/core-webpack":"7.6.13","@storybook/csf-plugin":"7.6.13","@storybook/csf-tools":"7.6.13","@storybook/docs-tools":"7.6.13","@storybook/ember":"7.6.13","@storybook/html":"7.6.13","@storybook/html-vite":"7.6.13","@storybook/html-webpack5":"7.6.13","@storybook/instrumenter":"7.6.13","@storybook/manager":"7.6.13","@storybook/manager-api":"7.6.13","@storybook/nextjs":"7.6.13","@storybook/node-logger":"7.6.13","@storybook/postinstall":"7.6.13","@storybook/preact":"7.6.13","@storybook/preact-vite":"7.6.13","@storybook/preact-webpack5":"7.6.13","@storybook/preset-create-react-app":"7.6.13","@storybook/preset-html-webpack":"7.6.13","@storybook/preset-preact-webpack":"7.6.13","@storybook/preset-react-webpack":"7.6.13","@storybook/preset-server-webpack":"7.6.13","@storybook/preset-svelte-webpack":"7.6.13","@storybook/preset-vue-webpack":"7.6.13","@storybook/preset-vue3-webpack":"7.6.13","@storybook/preset-web-components-webpack":"7.6.13","@storybook/preview":"7.6.13","@storybook/preview-api":"7.6.13","@storybook/preview-web":"7.6.13","@storybook/react":"7.6.13","@storybook/react-dom-shim":"7.6.13","@storybook/react-vite":"7.6.13","@storybook/react-webpack5":"7.6.13","@storybook/router":"7.6.13","@storybook/server":"7.6.13","@storybook/server-webpack5":"7.6.13","@storybook/source-loader":"7.6.13","@storybook/store":"7.6.13","@storybook/svelte":"7.6.13","@storybook/svelte-vite":"7.6.13","@storybook/svelte-webpack5":"7.6.13","@storybook/sveltekit":"7.6.13","@storybook/telemetry":"7.6.13","@storybook/theming":"7.6.13","@storybook/types":"7.6.13","@storybook/test":"7.6.13","@storybook/vue":"7.6.13","@storybook/vue-vite":"7.6.13","@storybook/vue-webpack5":"7.6.13","@storybook/vue3":"7.6.13","@storybook/vue3-vite":"7.6.13","@storybook/vue3-webpack5":"7.6.13","@storybook/web-components":"7.6.13","@storybook/web-components-vite":"7.6.13","@storybook/web-components-webpack5":"7.6.13",sb:"7.6.13",storybook:"7.6.13"};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(`
12
12
 
13
13
  `)}`)}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")}
14
14
  `),logger.error(`
@@ -89,7 +89,7 @@ An error occurred while installing dependencies:`),logger4.log(e.message),new Ha
89
89
  import { setCompodocJson } from "@storybook/addon-docs/angular";
90
90
  import docJson from "../documentation.json";
91
91
  setCompodocJson(docJson);
92
- `.trimStart(),promptForCompoDocs=async()=>{let{useCompoDoc}=await(0,import_prompts4.default)({type:"confirm",name:"useCompoDoc",message:"Do you want to use Compodoc for documentation?"});return useCompoDoc},AngularJSON=class{constructor(){if(!import_fs8.default.existsSync(ANGULAR_JSON_PATH))throw new import_server_errors.MissingAngularJsonError({path:(0,import_path13.join)(process.cwd(),ANGULAR_JSON_PATH)});let jsonContent=import_fs8.default.readFileSync(ANGULAR_JSON_PATH,"utf8");this.json=JSON.parse(jsonContent)}get projects(){return this.json.projects}get projectsWithoutStorybook(){return Object.keys(this.projects).filter(projectName=>{let{architect}=this.projects[projectName];return!architect.storybook})}get hasStorybookBuilder(){return Object.keys(this.projects).some(projectName=>{let{architect}=this.projects[projectName];return Object.keys(architect).some(key=>architect[key].builder==="@storybook/angular:start-storybook")})}get rootProject(){let rootProjectName=Object.keys(this.projects).find(projectName=>{let{root}=this.projects[projectName];return root===""||root==="."});return rootProjectName?this.projects[rootProjectName]:null}getProjectSettingsByName(projectName){return this.projects[projectName]}async getProjectName(){if(this.projectsWithoutStorybook.length>1){let{projectName}=await(0,import_prompts4.default)({type:"select",name:"projectName",message:"For which project do you want to generate Storybook configuration?",choices:this.projectsWithoutStorybook.map(name=>({title:name,value:name}))});return projectName}return this.projectsWithoutStorybook[0]}addStorybookEntries({angularProjectName,storybookFolder,useCompodoc,root}){let{architect}=this.projects[angularProjectName],baseOptions={configDir:storybookFolder,browserTarget:`${angularProjectName}:build`,compodoc:useCompodoc,...useCompodoc&&{compodocArgs:["-e","json","-d",root||"."]}};architect.storybook||(architect.storybook={builder:"@storybook/angular:start-storybook",options:{...baseOptions,port:6006}}),architect["build-storybook"]||(architect["build-storybook"]={builder:"@storybook/angular:build-storybook",options:{...baseOptions,outputDir:Object.keys(this.projects).length===1?"storybook-static":`dist/storybook/${angularProjectName}`}})}write(){import_fs8.default.writeFileSync(ANGULAR_JSON_PATH,JSON.stringify(this.json,null,2))}};var generator=async(packageManager,npmOptions,options,commandOptions)=>{let angularJSON=new AngularJSON;if(!angularJSON.projects||angularJSON.projects&&Object.keys(angularJSON.projects).length===0)throw new Error("Storybook was not able to find any projects in your angular.json file. Are you sure this is an Angular CLI project?");if(angularJSON.projectsWithoutStorybook.length===0)throw new Error("Every project in your workspace is already set up with Storybook. There is nothing to do!");let angularProjectName=await angularJSON.getProjectName();paddedLog(`Adding Storybook support to your "${angularProjectName}" project`);let angularProject=angularJSON.getProjectSettingsByName(angularProjectName);if(!angularProject)throw new Error(`Somehow we were not able to retrieve the "${angularProjectName}" project in your angular.json file. This is likely a bug in Storybook, please file an issue.`);let{root,projectType}=angularProject,{projects}=angularJSON,useCompodoc=commandOptions.yes?!0:await promptForCompoDocs(),storybookFolder=root?`${root}/.storybook`:".storybook";angularJSON.addStorybookEntries({angularProjectName,storybookFolder,useCompodoc,root}),angularJSON.write(),await baseGenerator(packageManager,npmOptions,{...options,builder:"webpack5",...useCompodoc&&{frameworkPreviewParts:{prefix:compoDocPreviewPrefix}}},"angular",{...useCompodoc&&{extraPackages:["@compodoc/compodoc","@storybook/addon-docs"]},addScripts:!1,componentsDestinationPath:root?`${root}/src/stories`:void 0,storybookConfigFolder:storybookFolder},"angular"),Object.keys(projects).length===1&&packageManager.addScripts({storybook:`ng run ${angularProjectName}:storybook`,"build-storybook":`ng run ${angularProjectName}:build-storybook`});let projectTypeValue=projectType||"application";projectTypeValue!=="application"&&projectTypeValue!=="library"&&(projectTypeValue="application");let templateDir=(0,import_path14.join)(getCliDir(),"templates","angular",projectTypeValue);return templateDir&&copyTemplate(templateDir,root||void 0),{projectName:angularProjectName,configDir:storybookFolder}},ANGULAR_default=generator;var generator2=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:"webpack5"},"ember",{extraPackages:["babel-plugin-ember-modules-api-polyfill","babel-plugin-htmlbars-inline-precompile"],staticDir:"dist"})},EMBER_default=generator2;var generator3=async(packageManager,npmOptions,options)=>{let extraPackages=await detectLanguage(packageManager)==="javascript"?["prop-types"]:[];await baseGenerator(packageManager,npmOptions,options,"react",{extraPackages,useSWC:({builder})=>builder==="webpack5",extraAddons:["@storybook/addon-onboarding@^1.0.0"]})},REACT_default=generator3;var generator4=async(packageManager,npmOptions)=>{let packageJson=await packageManager.retrievePackageJson(),missingReactDom=!packageJson.dependencies["react-dom"]&&!packageJson.devDependencies["react-dom"],reactVersion=packageJson.dependencies.react,packagesToResolve=["react-native-safe-area-context","@react-native-async-storage/async-storage","@react-native-community/datetimepicker","@react-native-community/slider","@storybook/addon-ondevice-controls","@storybook/addon-ondevice-actions","@storybook/react-native"],packagesWithFixedVersion=[],versionedPackages=await packageManager.getVersionedPackages(packagesToResolve),babelDependencies=await getBabelDependencies(packageManager,packageJson),packages=[];packages.push(...babelDependencies),packages.push(...packagesWithFixedVersion),packages.push(...versionedPackages),missingReactDom&&reactVersion&&packages.push(`react-dom@${reactVersion}`),await packageManager.addDependencies({...npmOptions,packageJson},packages),packageManager.addScripts({"storybook-generate":"sb-rn-get-stories","storybook-watch":"sb-rn-watcher"});let storybookConfigFolder=".storybook";await copyTemplateFiles({packageManager,renderer:"react-native",language:"typescript-3-8",destination:storybookConfigFolder,includeCommonAssets:!1})},REACT_NATIVE_default=generator4;var import_path15=__toESM(require("path")),import_fs9=__toESM(require("fs")),import_semver9=__toESM(require("semver")),import_ts_dedent10=__toESM(require("ts-dedent"));var generator5=async(packageManager,npmOptions,options)=>{let monorepoRootPath=import_path15.default.join(__dirname,"..","..","..","..","..",".."),extraMain=options.linkable?{webpackFinal:`%%(config) => {
92
+ `.trimStart(),promptForCompoDocs=async()=>{let{useCompoDoc}=await(0,import_prompts4.default)({type:"confirm",name:"useCompoDoc",message:"Do you want to use Compodoc for documentation?"});return useCompoDoc},AngularJSON=class{constructor(){if(!import_fs8.default.existsSync(ANGULAR_JSON_PATH))throw new import_server_errors.MissingAngularJsonError({path:(0,import_path13.join)(process.cwd(),ANGULAR_JSON_PATH)});let jsonContent=import_fs8.default.readFileSync(ANGULAR_JSON_PATH,"utf8");this.json=JSON.parse(jsonContent)}get projects(){return this.json.projects}get projectsWithoutStorybook(){return Object.keys(this.projects).filter(projectName=>{let{architect}=this.projects[projectName];return!architect.storybook})}get hasStorybookBuilder(){return Object.keys(this.projects).some(projectName=>{let{architect}=this.projects[projectName];return Object.keys(architect).some(key=>architect[key].builder==="@storybook/angular:start-storybook")})}get rootProject(){let rootProjectName=Object.keys(this.projects).find(projectName=>{let{root}=this.projects[projectName];return root===""||root==="."});return rootProjectName?this.projects[rootProjectName]:null}getProjectSettingsByName(projectName){return this.projects[projectName]}async getProjectName(){if(this.projectsWithoutStorybook.length>1){let{projectName}=await(0,import_prompts4.default)({type:"select",name:"projectName",message:"For which project do you want to generate Storybook configuration?",choices:this.projectsWithoutStorybook.map(name=>({title:name,value:name}))});return projectName}return this.projectsWithoutStorybook[0]}addStorybookEntries({angularProjectName,storybookFolder,useCompodoc,root}){let{architect}=this.projects[angularProjectName],baseOptions={configDir:storybookFolder,browserTarget:`${angularProjectName}:build`,compodoc:useCompodoc,...useCompodoc&&{compodocArgs:["-e","json","-d",root||"."]}};architect.storybook||(architect.storybook={builder:"@storybook/angular:start-storybook",options:{...baseOptions,port:6006}}),architect["build-storybook"]||(architect["build-storybook"]={builder:"@storybook/angular:build-storybook",options:{...baseOptions,outputDir:Object.keys(this.projects).length===1?"storybook-static":`dist/storybook/${angularProjectName}`}})}write(){import_fs8.default.writeFileSync(ANGULAR_JSON_PATH,JSON.stringify(this.json,null,2))}};var generator=async(packageManager,npmOptions,options,commandOptions)=>{let angularJSON=new AngularJSON;if(!angularJSON.projects||angularJSON.projects&&Object.keys(angularJSON.projects).length===0)throw new Error("Storybook was not able to find any projects in your angular.json file. Are you sure this is an Angular CLI project?");if(angularJSON.projectsWithoutStorybook.length===0)throw new Error("Every project in your workspace is already set up with Storybook. There is nothing to do!");let angularProjectName=await angularJSON.getProjectName();paddedLog(`Adding Storybook support to your "${angularProjectName}" project`);let angularProject=angularJSON.getProjectSettingsByName(angularProjectName);if(!angularProject)throw new Error(`Somehow we were not able to retrieve the "${angularProjectName}" project in your angular.json file. This is likely a bug in Storybook, please file an issue.`);let{root,projectType}=angularProject,{projects}=angularJSON,useCompodoc=commandOptions.yes?!0:await promptForCompoDocs(),storybookFolder=root?`${root}/.storybook`:".storybook";angularJSON.addStorybookEntries({angularProjectName,storybookFolder,useCompodoc,root}),angularJSON.write(),await baseGenerator(packageManager,npmOptions,{...options,builder:"webpack5",...useCompodoc&&{frameworkPreviewParts:{prefix:compoDocPreviewPrefix}}},"angular",{...useCompodoc&&{extraPackages:["@compodoc/compodoc","@storybook/addon-docs"]},addScripts:!1,componentsDestinationPath:root?`${root}/src/stories`:void 0,storybookConfigFolder:storybookFolder},"angular"),Object.keys(projects).length===1&&packageManager.addScripts({storybook:`ng run ${angularProjectName}:storybook`,"build-storybook":`ng run ${angularProjectName}:build-storybook`});let projectTypeValue=projectType||"application";projectTypeValue!=="application"&&projectTypeValue!=="library"&&(projectTypeValue="application");let templateDir=(0,import_path14.join)(getCliDir(),"templates","angular",projectTypeValue);return templateDir&&copyTemplate(templateDir,root||void 0),{projectName:angularProjectName,configDir:storybookFolder}},ANGULAR_default=generator;var generator2=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:"webpack5"},"ember",{extraPackages:["babel-plugin-ember-modules-api-polyfill","babel-plugin-htmlbars-inline-precompile"],staticDir:"dist"})},EMBER_default=generator2;var generator3=async(packageManager,npmOptions,options)=>{let extraPackages=await detectLanguage(packageManager)==="javascript"?["prop-types"]:[];await baseGenerator(packageManager,npmOptions,options,"react",{extraPackages,useSWC:({builder})=>builder==="webpack5",extraAddons:["@storybook/addon-onboarding@^1.0.0"]})},REACT_default=generator3;var generator4=async(packageManager,npmOptions)=>{let packageJson=await packageManager.retrievePackageJson(),missingReactDom=!packageJson.dependencies["react-dom"]&&!packageJson.devDependencies["react-dom"],reactVersion=packageJson.dependencies.react,packagesToResolve=[...["react-native-safe-area-context","@react-native-async-storage/async-storage","@react-native-community/datetimepicker","@react-native-community/slider"].filter(dep=>!packageJson.dependencies[dep]&&!packageJson.devDependencies[dep]),"@storybook/addon-ondevice-controls","@storybook/addon-ondevice-actions","@storybook/react-native"],packagesWithFixedVersion=[],versionedPackages=await packageManager.getVersionedPackages(packagesToResolve),babelDependencies=await getBabelDependencies(packageManager,packageJson),packages=[];packages.push(...babelDependencies),packages.push(...packagesWithFixedVersion),packages.push(...versionedPackages),missingReactDom&&reactVersion&&packages.push(`react-dom@${reactVersion}`),await packageManager.addDependencies({...npmOptions,packageJson},packages),packageManager.addScripts({"storybook-generate":"sb-rn-get-stories"});let storybookConfigFolder=".storybook";await copyTemplateFiles({packageManager,renderer:"react-native",language:"typescript-3-8",destination:storybookConfigFolder,includeCommonAssets:!1})},REACT_NATIVE_default=generator4;var import_path15=__toESM(require("path")),import_fs9=__toESM(require("fs")),import_semver9=__toESM(require("semver")),import_ts_dedent10=__toESM(require("ts-dedent"));var generator5=async(packageManager,npmOptions,options)=>{let monorepoRootPath=import_path15.default.join(__dirname,"..","..","..","..","..",".."),extraMain=options.linkable?{webpackFinal:`%%(config) => {
93
93
  // add monorepo root as a valid directory to import modules from
94
94
  config.resolve.plugins.forEach((p) => {
95
95
  if (Array.isArray(p.appSrcs)) {
@@ -452,15 +452,15 @@ ${error.stack}`),fixSummary.failed[f.id]=error.message,fixResults[f.id]="check_f
452
452
  ${JSON.stringify(nextStoriesEntries,null,2)}`),dryRun||await updateMainConfig({mainConfigPath,dryRun},async main=>{main.setFieldValue(["stories"],nextStoriesEntries)})}};var logger25=console;async function migrate(migration,{glob:glob2,dryRun,list,rename,parser}){if(list)(0,import_codemod.listCodemods)().forEach(key=>logger25.log(key));else if(migration)migration==="mdx-to-csf"&&!dryRun&&(await runFixes({fixes:[bareMdxStoriesGlob]}),await addStorybookBlocksPackage()),await(0,import_codemod.runCodemod)(migration,{glob:glob2,dryRun,logger:logger25,rename,parser});else throw new Error("Migrate: please specify a migration name or --list")}async function addStorybookBlocksPackage(){let packageManager=JsPackageManagerFactory.getPackageManager(),packageJson=await packageManager.retrievePackageJson(),versionToInstall=getStorybookVersionSpecifier(await packageManager.retrievePackageJson());logger25.info('\u2705 Adding "@storybook/blocks" package'),await packageManager.addDependencies({installAsDevDependencies:!0,packageJson},[`@storybook/blocks@${versionToInstall}`])}var import_path21=__toESM(require("path")),import_fs_extra13=require("fs-extra"),import_puppeteer_core=__toESM(require("puppeteer-core")),import_express=__toESM(require("express")),import_get_port=__toESM(require("get-port")),import_node_logger5=require("@storybook/node-logger"),read=async url=>{let browser=await usePuppeteerBrowser(),page=await browser.newPage();await page.goto(url),await page.waitForFunction(`
453
453
  (window.__STORYBOOK_PREVIEW__ && window.__STORYBOOK_PREVIEW__.extract && window.__STORYBOOK_PREVIEW__.extract()) ||
454
454
  (window.__STORYBOOK_STORY_STORE__ && window.__STORYBOOK_STORY_STORE__.extract && window.__STORYBOOK_STORY_STORE__.extract())
455
- `);let data=JSON.parse(await page.evaluate(async()=>JSON.stringify(window.__STORYBOOK_STORY_STORE__.getStoriesJsonData(),null,2)));return setImmediate(()=>{browser.close()}),data},useLocation=async input=>{if(await(0,import_fs_extra13.stat)(import_path21.default.resolve(input)),input.match(/^http/))return[input,async()=>{}];let app=(0,import_express.default)();app.use(import_express.default.static(input));let port=await(0,import_get_port.default)();return new Promise(resolve2=>{let server=app.listen(port,()=>{let result=`http://localhost:${port}/iframe.html`;import_node_logger5.logger.info(`connecting to: ${result}`),resolve2([result,server.close.bind(server)])})})},usePuppeteerBrowser=async()=>{let args=["--no-sandbox ","--disable-setuid-sandbox"];try{return await import_puppeteer_core.default.launch({args,executablePath:process.env.SB_CHROMIUM_PATH})}catch{return import_node_logger5.logger.info("installing puppeteer..."),new Promise((resolve2,reject)=>{require("child_process").exec(`node ${require.resolve(import_path21.default.join("puppeteer-core","install.js"))}`,error=>error?reject(error):resolve2(import_puppeteer_core.default.launch({args})))})}};async function extract(input,targetPath){if(input&&targetPath){let[location,exit]=await useLocation(input),data=await read(location);await(0,import_fs_extra13.writeFile)(targetPath,JSON.stringify(data,null,2)),await exit()}else throw new Error("Extract: please specify a path where your built-storybook is (can be a public url) and a target directory")}var import_cross_spawn2=require("cross-spawn"),import_telemetry2=require("@storybook/telemetry"),import_semver27=__toESM(require("semver")),import_node_logger6=require("@storybook/node-logger"),import_core_server2=require("@storybook/core-server"),import_server_errors3=require("@storybook/core-events/server-errors"),import_chalk29=__toESM(require("chalk")),import_ts_dedent37=__toESM(require("ts-dedent")),import_boxen4=__toESM(require_boxen());var versionRegex=/(@storybook\/[^@]+)@(\S+)/,getStorybookVersion2=line=>{if(line.startsWith("npm "))return null;let match=versionRegex.exec(line);return!match||!import_semver27.default.clean(match[2])?null:{package:match[1],version:match[2]}},deprecatedPackages=[{minVersion:"6.0.0-alpha.0",url:"https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#60-deprecations",deprecations:["@storybook/addon-notes","@storybook/addon-info","@storybook/addon-contexts","@storybook/addon-options","@storybook/addon-centered"]}],formatPackage=pkg2=>`${pkg2.package}@${pkg2.version}`,warnPackages=pkgs=>pkgs.forEach(pkg2=>import_node_logger6.logger.warn(`- ${formatPackage(pkg2)}`)),checkVersionConsistency=()=>{let storybookPackages=(0,import_cross_spawn2.sync)("npm",["ls"],{stdio:"pipe",shell:!0}).output.toString().split(`
456
- `).map(getStorybookVersion2).filter(Boolean).filter(pkg2=>isCorePackage(pkg2.package));if(!storybookPackages.length){import_node_logger6.logger.warn("No storybook core packages found."),import_node_logger6.logger.warn("'npm ls | grep storybook' can show if multiple versions are installed.");return}storybookPackages.sort((a,b)=>import_semver27.default.rcompare(a.version,b.version));let latestVersion=storybookPackages[0].version,outdated=storybookPackages.filter(pkg2=>pkg2.version!==latestVersion);outdated.length>0&&(import_node_logger6.logger.warn(`Found ${outdated.length} outdated packages (relative to '${formatPackage(storybookPackages[0])}')`),import_node_logger6.logger.warn("Please make sure your packages are updated to ensure a consistent experience."),warnPackages(outdated)),deprecatedPackages.forEach(({minVersion:minVersion2,url,deprecations})=>{if(import_semver27.default.gte(latestVersion,minVersion2)){let deprecated=storybookPackages.filter(pkg2=>deprecations.includes(pkg2.package));deprecated.length>0&&(import_node_logger6.logger.warn(`Found ${deprecated.length} deprecated packages since ${minVersion2}`),import_node_logger6.logger.warn(`See ${url}`),warnPackages(deprecated))}})},EXTRA_FLAGS={"react-scripts@<5":["--reject","/preset-create-react-app/"]},addExtraFlags=(extraFlags,flags,{dependencies,devDependencies})=>Object.entries(extraFlags).reduce((acc,entry)=>{let[pattern,extra]=entry,[pkg2,specifier]=getPackageDetails(pattern),pkgVersion=dependencies[pkg2]||devDependencies[pkg2];return pkgVersion&&import_semver27.default.satisfies(import_semver27.default.coerce(pkgVersion),specifier)?[...acc,...extra]:acc},[...flags]),addNxPackagesToReject=flags=>{let newFlags=[...flags],index=flags.indexOf("--reject");return index>-1?newFlags[index+1].endsWith("/")&&newFlags[index+1].startsWith("/")?(newFlags[index+1]=newFlags[index+1].substring(1,newFlags[index+1].length-1),newFlags[index+1]=`/(${newFlags[index+1]}|@nrwl/storybook|@nx/storybook)/`):newFlags[index+1]=`${newFlags[index+1]},@nrwl/storybook,@nx/storybook`:(newFlags.push("--reject"),newFlags.push("@nrwl/storybook,@nx/storybook")),newFlags},deprecatedUpgrade=async({tag,prerelease:prerelease3,skipCheck,useNpm,packageManager:pkgMgr,dryRun,configDir,yes,...options})=>{useNpm&&(useNpmWarning(),pkgMgr="npm"),tag?(0,import_node_logger6.deprecate)("The --tag flag is deprecated. Specify the version you want to upgrade to with `npx storybook@<version> upgrade` instead"):prerelease3&&(0,import_node_logger6.deprecate)("The --prerelease flag is deprecated. Specify the version you want to upgrade to with `npx storybook@<version> upgrade` instead");let packageManager=JsPackageManagerFactory.getPackageManager({force:pkgMgr}),beforeVersion=await(0,import_telemetry2.getStorybookCoreVersion)();if(commandLog("Checking for latest versions of '@storybook/*' packages"),tag&&prerelease3)throw new Error("Cannot set both --tag and --prerelease. Use --tag next to get the latest prereleae");let target="latest";prerelease3?target="@next":tag&&(target=`@${tag}`);let flags=[];dryRun||flags.push("--upgrade"),flags.push("--target"),flags.push(target),flags=addExtraFlags(EXTRA_FLAGS,flags,await packageManager.retrievePackageJson()),flags=addNxPackagesToReject(flags);let check=(0,import_cross_spawn2.sync)("npx",["npm-check-updates@latest","/storybook/",...flags],{stdio:"pipe",shell:!0});import_node_logger6.logger.info(check.stdout.toString()),import_node_logger6.logger.info(check.stderr.toString());let checkSb=(0,import_cross_spawn2.sync)("npx",["npm-check-updates@latest","sb",...flags],{stdio:"pipe",shell:!0});import_node_logger6.logger.info(checkSb.stdout.toString()),import_node_logger6.logger.info(checkSb.stderr.toString()),dryRun||(commandLog("Installing upgrades"),await packageManager.installDependencies());let automigrationResults;if(skipCheck||(checkVersionConsistency(),automigrationResults=await automigrate({dryRun,yes,packageManager:pkgMgr,configDir})),!options.disableTelemetry){let afterVersion=await(0,import_telemetry2.getStorybookCoreVersion)(),{preCheckFailure,fixResults}=automigrationResults||{};(0,import_telemetry2.telemetry)("upgrade",{prerelease:prerelease3,tag,beforeVersion,afterVersion,...{automigrationResults:preCheckFailure?null:fixResults,automigrationPreCheckFailure:preCheckFailure||null}})}},doUpgrade=async({tag,prerelease:prerelease3,skipCheck,useNpm,packageManager:pkgMgr,dryRun,configDir,yes,...options})=>{if(useNpm&&(useNpmWarning(),pkgMgr="npm"),tag||prerelease3){await deprecatedUpgrade({tag,prerelease:prerelease3,skipCheck,useNpm,packageManager:pkgMgr,dryRun,configDir,yes,...options});return}let packageManager=JsPackageManagerFactory.getPackageManager({force:pkgMgr}),beforeVersion=await(0,import_telemetry2.getStorybookCoreVersion)()??"0.0.0",currentVersion=versions_default["@storybook/cli"],isCanary=currentVersion.startsWith("0.0.0");if(!isCanary&&(0,import_semver27.lt)(currentVersion,beforeVersion))throw new import_server_errors3.UpgradeStorybookToLowerVersionError({beforeVersion,currentVersion});if(!isCanary&&(0,import_semver27.eq)(currentVersion,beforeVersion))throw new import_server_errors3.UpgradeStorybookToSameVersionError({beforeVersion});let latestVersion=await packageManager.latestVersion("@storybook/cli"),isOutdated=(0,import_semver27.lt)(currentVersion,latestVersion),isPrerelease=import_semver27.default.prerelease(currentVersion)!==null,borderColor=isOutdated?"#FC521F":"#F1618C",messages={welcome:`Upgrading Storybook from version ${import_chalk29.default.bold(beforeVersion)} to version ${import_chalk29.default.bold(currentVersion)}..`,notLatest:import_chalk29.default.red(import_ts_dedent37.default`
455
+ `);let data=JSON.parse(await page.evaluate(async()=>JSON.stringify(window.__STORYBOOK_STORY_STORE__.getStoriesJsonData(),null,2)));return setImmediate(()=>{browser.close()}),data},useLocation=async input=>{if(await(0,import_fs_extra13.stat)(import_path21.default.resolve(input)),input.match(/^http/))return[input,async()=>{}];let app=(0,import_express.default)();app.use(import_express.default.static(input));let port=await(0,import_get_port.default)();return new Promise(resolve2=>{let server=app.listen(port,()=>{let result=`http://localhost:${port}/iframe.html`;import_node_logger5.logger.info(`connecting to: ${result}`),resolve2([result,server.close.bind(server)])})})},usePuppeteerBrowser=async()=>{let args=["--no-sandbox ","--disable-setuid-sandbox"];try{return await import_puppeteer_core.default.launch({args,executablePath:process.env.SB_CHROMIUM_PATH})}catch{return import_node_logger5.logger.info("installing puppeteer..."),new Promise((resolve2,reject)=>{require("child_process").exec(`node ${require.resolve(import_path21.default.join("puppeteer-core","install.js"))}`,error=>error?reject(error):resolve2(import_puppeteer_core.default.launch({args})))})}};async function extract(input,targetPath){if(input&&targetPath){let[location,exit]=await useLocation(input),data=await read(location);await(0,import_fs_extra13.writeFile)(targetPath,JSON.stringify(data,null,2)),await exit()}else throw new Error("Extract: please specify a path where your built-storybook is (can be a public url) and a target directory")}var import_cross_spawn2=require("cross-spawn"),import_telemetry2=require("@storybook/telemetry"),import_semver27=__toESM(require("semver")),import_node_logger6=require("@storybook/node-logger"),import_core_server2=require("@storybook/core-server"),import_server_errors3=require("@storybook/core-events/server-errors"),import_chalk29=__toESM(require("chalk")),import_ts_dedent37=__toESM(require("ts-dedent")),import_boxen4=__toESM(require_boxen());var versionRegex=/(@storybook\/[^@]+)@(\S+)/,getStorybookVersion2=line=>{if(line.startsWith("npm "))return null;let match=versionRegex.exec(line);return!match||!import_semver27.default.clean(match[2])?null:{package:match[1],version:match[2]}},getInstalledStorybookVersion=async packageManager=>{var _a,_b;let installations=await packageManager.findInstallations(["storybook","@storybook/cli"]);if(!installations)return;let cliVersion=(_a=installations.dependencies["@storybook/cli"])==null?void 0:_a[0].version;return cliVersion||((_b=installations.dependencies.storybook)==null?void 0:_b[0].version)},deprecatedPackages=[{minVersion:"6.0.0-alpha.0",url:"https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#60-deprecations",deprecations:["@storybook/addon-notes","@storybook/addon-info","@storybook/addon-contexts","@storybook/addon-options","@storybook/addon-centered"]}],formatPackage=pkg2=>`${pkg2.package}@${pkg2.version}`,warnPackages=pkgs=>pkgs.forEach(pkg2=>import_node_logger6.logger.warn(`- ${formatPackage(pkg2)}`)),checkVersionConsistency=()=>{let storybookPackages=(0,import_cross_spawn2.sync)("npm",["ls"],{stdio:"pipe",shell:!0}).output.toString().split(`
456
+ `).map(getStorybookVersion2).filter(Boolean).filter(pkg2=>isCorePackage(pkg2.package));if(!storybookPackages.length){import_node_logger6.logger.warn("No storybook core packages found."),import_node_logger6.logger.warn("'npm ls | grep storybook' can show if multiple versions are installed.");return}storybookPackages.sort((a,b)=>import_semver27.default.rcompare(a.version,b.version));let latestVersion=storybookPackages[0].version,outdated=storybookPackages.filter(pkg2=>pkg2.version!==latestVersion);outdated.length>0&&(import_node_logger6.logger.warn(`Found ${outdated.length} outdated packages (relative to '${formatPackage(storybookPackages[0])}')`),import_node_logger6.logger.warn("Please make sure your packages are updated to ensure a consistent experience."),warnPackages(outdated)),deprecatedPackages.forEach(({minVersion:minVersion2,url,deprecations})=>{if(import_semver27.default.gte(latestVersion,minVersion2)){let deprecated=storybookPackages.filter(pkg2=>deprecations.includes(pkg2.package));deprecated.length>0&&(import_node_logger6.logger.warn(`Found ${deprecated.length} deprecated packages since ${minVersion2}`),import_node_logger6.logger.warn(`See ${url}`),warnPackages(deprecated))}})},EXTRA_FLAGS={"react-scripts@<5":["--reject","/preset-create-react-app/"]},addExtraFlags=(extraFlags,flags,{dependencies,devDependencies})=>Object.entries(extraFlags).reduce((acc,entry)=>{let[pattern,extra]=entry,[pkg2,specifier]=getPackageDetails(pattern),pkgVersion=dependencies[pkg2]||devDependencies[pkg2];return pkgVersion&&import_semver27.default.satisfies(import_semver27.default.coerce(pkgVersion),specifier)?[...acc,...extra]:acc},[...flags]),addNxPackagesToReject=flags=>{let newFlags=[...flags],index=flags.indexOf("--reject");return index>-1?newFlags[index+1].endsWith("/")&&newFlags[index+1].startsWith("/")?(newFlags[index+1]=newFlags[index+1].substring(1,newFlags[index+1].length-1),newFlags[index+1]=`/(${newFlags[index+1]}|@nrwl/storybook|@nx/storybook)/`):newFlags[index+1]=`${newFlags[index+1]},@nrwl/storybook,@nx/storybook`:(newFlags.push("--reject"),newFlags.push("@nrwl/storybook,@nx/storybook")),newFlags},deprecatedUpgrade=async({tag,prerelease:prerelease3,skipCheck,useNpm,packageManager:pkgMgr,dryRun,configDir,yes,...options})=>{useNpm&&(useNpmWarning(),pkgMgr="npm"),tag?(0,import_node_logger6.deprecate)("The --tag flag is deprecated. Specify the version you want to upgrade to with `npx storybook@<version> upgrade` instead"):prerelease3&&(0,import_node_logger6.deprecate)("The --prerelease flag is deprecated. Specify the version you want to upgrade to with `npx storybook@<version> upgrade` instead");let packageManager=JsPackageManagerFactory.getPackageManager({force:pkgMgr}),beforeVersion=await getInstalledStorybookVersion(packageManager)??"0.0.0";if(commandLog("Checking for latest versions of '@storybook/*' packages"),tag&&prerelease3)throw new Error("Cannot set both --tag and --prerelease. Use --tag next to get the latest prereleae");let target="latest";prerelease3?target="@next":tag&&(target=`@${tag}`);let flags=[];dryRun||flags.push("--upgrade"),flags.push("--target"),flags.push(target),flags=addExtraFlags(EXTRA_FLAGS,flags,await packageManager.retrievePackageJson()),flags=addNxPackagesToReject(flags);let check=(0,import_cross_spawn2.sync)("npx",["npm-check-updates@latest","/storybook/",...flags],{stdio:"pipe",shell:!0});import_node_logger6.logger.info(check.stdout.toString()),import_node_logger6.logger.info(check.stderr.toString());let checkSb=(0,import_cross_spawn2.sync)("npx",["npm-check-updates@latest","sb",...flags],{stdio:"pipe",shell:!0});import_node_logger6.logger.info(checkSb.stdout.toString()),import_node_logger6.logger.info(checkSb.stderr.toString()),dryRun||(commandLog("Installing upgrades"),await packageManager.installDependencies());let automigrationResults;if(skipCheck||(checkVersionConsistency(),automigrationResults=await automigrate({dryRun,yes,packageManager:pkgMgr,configDir})),!options.disableTelemetry){let afterVersion=await getInstalledStorybookVersion(packageManager),{preCheckFailure,fixResults}=automigrationResults||{};(0,import_telemetry2.telemetry)("upgrade",{prerelease:prerelease3,tag,beforeVersion,afterVersion,...{automigrationResults:preCheckFailure?null:fixResults,automigrationPreCheckFailure:preCheckFailure||null}})}},doUpgrade=async({tag,prerelease:prerelease3,skipCheck,useNpm,packageManager:pkgMgr,dryRun,configDir,yes,...options})=>{if(useNpm&&(useNpmWarning(),pkgMgr="npm"),tag||prerelease3){await deprecatedUpgrade({tag,prerelease:prerelease3,skipCheck,useNpm,packageManager:pkgMgr,dryRun,configDir,yes,...options});return}let packageManager=JsPackageManagerFactory.getPackageManager({force:pkgMgr}),beforeVersion=await getInstalledStorybookVersion(packageManager)??"0.0.0",currentVersion=versions_default["@storybook/cli"],isCanary=currentVersion.startsWith("0.0.0");if(!isCanary&&(0,import_semver27.lt)(currentVersion,beforeVersion))throw new import_server_errors3.UpgradeStorybookToLowerVersionError({beforeVersion,currentVersion});if(!isCanary&&(0,import_semver27.eq)(currentVersion,beforeVersion))throw new import_server_errors3.UpgradeStorybookToSameVersionError({beforeVersion});let latestVersion=await packageManager.latestVersion("@storybook/cli"),isOutdated=(0,import_semver27.lt)(currentVersion,latestVersion),isPrerelease=import_semver27.default.prerelease(currentVersion)!==null,borderColor=isOutdated?"#FC521F":"#F1618C",messages={welcome:`Upgrading Storybook from version ${import_chalk29.default.bold(beforeVersion)} to version ${import_chalk29.default.bold(currentVersion)}..`,notLatest:import_chalk29.default.red(import_ts_dedent37.default`
457
457
  This version is behind the latest release, which is: ${import_chalk29.default.bold(latestVersion)}!
458
458
  You likely ran the upgrade command through npx, which can use a locally cached version, to upgrade to the latest version please run:
459
459
  ${import_chalk29.default.bold("npx storybook@latest upgrade")}
460
460
 
461
461
  You may want to CTRL+C to stop, and run with the latest version instead.
462
462
  `),prelease:import_chalk29.default.yellow("This is a pre-release version.")};import_node_logger6.logger.plain((0,import_boxen4.default)([messages.welcome].concat(isOutdated&&!isPrerelease?[messages.notLatest]:[]).concat(isPrerelease?[messages.prelease]:[]).join(`
463
- `),{borderStyle:"round",padding:1,borderColor}));let packageJson=await packageManager.retrievePackageJson(),toUpgradedDependencies=deps=>Object.keys(deps||{}).filter(dependency=>{if(dependency==="@storybook/preset-create-react-app"){let reactScriptsVersion=packageJson.dependencies["react-scripts"]??packageJson.devDependencies["react-scripts"];if(reactScriptsVersion&&(0,import_semver27.lt)((0,import_semver27.coerce)(reactScriptsVersion),"5.0.0"))return!1}return dependency in versions_default}).map(dependency=>`${dependency}@${(!isOutdated||isPrerelease)&&!isCanary?"^":""}${versions_default[dependency]}`),upgradedDependencies=toUpgradedDependencies(packageJson.dependencies),upgradedDevDependencies=toUpgradedDependencies(packageJson.devDependencies);dryRun||(commandLog(`Updating dependencies in ${import_chalk29.default.cyan("package.json")}..`),import_node_logger6.logger.plain(""),upgradedDependencies.length>0&&await packageManager.addDependencies({installAsDevDependencies:!1,skipInstall:!0,packageJson},upgradedDependencies),upgradedDevDependencies.length>0&&await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall:!0,packageJson},upgradedDevDependencies),await packageManager.installDependencies());let automigrationResults;if(skipCheck||(checkVersionConsistency(),automigrationResults=await automigrate({dryRun,yes,packageManager:pkgMgr,configDir})),!options.disableTelemetry){let afterVersion=await(0,import_telemetry2.getStorybookCoreVersion)(),{preCheckFailure,fixResults}=automigrationResults||{};(0,import_telemetry2.telemetry)("upgrade",{beforeVersion,afterVersion,...{automigrationResults:preCheckFailure?null:fixResults,automigrationPreCheckFailure:preCheckFailure||null}})}};async function upgrade(options){await(0,import_core_server2.withTelemetry)("upgrade",{cliOptions:options},()=>doUpgrade(options))}var import_prompts9=__toESM(require("prompts")),import_path22=__toESM(require("path")),import_chalk30=__toESM(require("chalk")),import_boxen5=__toESM(require_boxen()),import_ts_dedent38=require("ts-dedent"),import_giget=require("giget"),import_fs_extra14=require("fs-extra"),import_semver28=require("semver");var baseTemplates={"cra/default-js":{name:"Create React App Latest (Webpack | JavaScript)",script:"npx create-react-app {{beforeDir}}",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"cra/default-ts":{name:"Create React App Latest (Webpack | TypeScript)",script:"npx create-react-app {{beforeDir}} --template typescript",skipTasks:["smoke-test","bench"],expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"}},"nextjs/default-js":{name:"Next.js Latest (Webpack | JavaScript)",script:'yarn create next-app {{beforeDir}} --javascript --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"nextjs/default-ts":{name:"Next.js Latest (Webpack | TypeScript)",script:'yarn create next-app {{beforeDir}} --typescript --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"nextjs/prerelease":{name:"Next.js Prerelease (Webpack | TypeScript)",script:'npx create-next-app@canary {{beforeDir}} --typescript --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-js":{name:"React Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template react",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-ts":{name:"React Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template react-ts",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},skipTasks:["bench"]},"react-webpack/18-ts":{name:"React Latest (Webpack | TypeScript)",script:"yarn create webpack5-react {{beforeDir}}",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"react-webpack/17-ts":{name:"React v17 (Webpack | TypeScript)",script:'yarn create webpack5-react {{beforeDir}} --version-react="17" --version-react-dom="17"',expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"solid-vite/default-js":{name:"SolidJS Latest (Vite | JavaScript)",script:"npx degit solidjs/templates/js {{beforeDir}}",expected:{framework:"storybook-solidjs-vite",renderer:"storybook-solidjs",builder:"@storybook/builder-vite"},inDevelopment:!0,skipTasks:["e2e-tests-dev","bench"]},"solid-vite/default-ts":{name:"SolidJS Latest (Vite | TypeScript)",script:"npx degit solidjs/templates/ts {{beforeDir}}",expected:{framework:"storybook-solidjs-vite",renderer:"storybook-solidjs",builder:"@storybook/builder-vite"},inDevelopment:!0,skipTasks:["e2e-tests-dev","bench"]},"vue3-vite/default-js":{name:"Vue v3 (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template vue",expected:{framework:"@storybook/vue3-vite",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"vue3-vite/default-ts":{name:"Vue v3 (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template vue-ts",expected:{framework:"@storybook/vue3-vite",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"vue2-vite/2.7-js":{name:"Vue v2 (Vite | JavaScript)",script:"npx create-vue@2 {{beforeDir}} --default",expected:{framework:"@storybook/vue-vite",renderer:"@storybook/vue",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"html-webpack/default":{name:"HTML Latest (Webpack | JavaScript)",script:"yarn create webpack5-html {{beforeDir}}",expected:{framework:"@storybook/html-webpack5",renderer:"@storybook/html",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"html-vite/default-js":{name:"HTML Latest (Vite | JavaScript)",script:'npm create vite --yes {{beforeDir}} -- --template vanilla && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/html-vite",renderer:"@storybook/html",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"html-vite/default-ts":{name:"HTML Latest (Vite | TypeScript)",script:'npm create vite --yes {{beforeDir}} -- --template vanilla-ts && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/html-vite",renderer:"@storybook/html",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-vite/default-js":{name:"Svelte Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template svelte",expected:{framework:"@storybook/svelte-vite",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-vite/default-ts":{name:"Svelte Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template svelte-ts",expected:{framework:"@storybook/svelte-vite",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"angular-cli/prerelease":{name:"Angular CLI Prerelease (Webpack | TypeScript)",script:"npx -p @angular/cli@next ng new angular-v16 --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn --ssr",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"angular-cli/default-ts":{name:"Angular CLI Latest (Webpack | TypeScript)",script:"npx -p @angular/cli ng new angular-latest --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn --ssr",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"angular-cli/15-ts":{name:"Angular CLI v15 (Webpack | TypeScript)",script:"npx -p @angular/cli@15 ng new angular-v15 --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"svelte-kit/skeleton-js":{name:"SvelteKit Latest (Vite | JavaScript)",script:"yarn create svelte-with-args --name=svelte-kit/skeleton-js --directory={{beforeDir}} --template=skeleton --types=null --no-prettier --no-eslint --no-playwright --no-vitest --no-svelte5",expected:{framework:"@storybook/sveltekit",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-kit/skeleton-ts":{name:"SvelteKit Latest (Vite | TypeScript)",script:"yarn create svelte-with-args --name=svelte-kit/skeleton-ts --directory={{beforeDir}} --template=skeleton --types=typescript --no-prettier --no-eslint --no-playwright --no-vitest --no-svelte5",expected:{framework:"@storybook/sveltekit",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"lit-vite/default-js":{name:"Lit Latest (Vite | JavaScript)",script:'npm create vite --yes {{beforeDir}} -- --template lit && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/web-components-vite",renderer:"@storybook/web-components",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"lit-vite/default-ts":{name:"Lit Latest (Vite | TypeScript)",script:'npm create vite --yes {{beforeDir}} -- --template lit-ts && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/web-components-vite",renderer:"@storybook/web-components",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"vue-cli/default-js":{name:"Vue CLI v3 (Webpack | JavaScript)",script:'npx -p @vue/cli vue create {{beforeDir}} --default --packageManager=yarn --force --merge && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/vue3-webpack5",renderer:"@storybook/vue3",builder:"@storybook/builder-webpack5"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"preact-webpack5/default-js":{name:"Preact CLI Latest (Webpack | JavaScript)",script:'npx preact-cli create default {{beforeDir}} --name preact-app --yarn --no-install && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/preact-webpack5",renderer:"@storybook/preact",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"preact-webpack5/default-ts":{name:"Preact CLI Latest (Webpack | TypeScript)",script:'npx preact-cli create typescript {{beforeDir}} --name preact-app --yarn --no-install && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/preact-webpack5",renderer:"@storybook/preact",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"preact-vite/default-js":{name:"Preact Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template preact",expected:{framework:"@storybook/preact-vite",renderer:"@storybook/preact",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"preact-vite/default-ts":{name:"Preact Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template preact-ts",expected:{framework:"@storybook/preact-vite",renderer:"@storybook/preact",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"qwik-vite/default-ts":{name:"Qwik CLI Latest (Vite | TypeScript)",script:"yarn create qwik basic {{beforeDir}}",inDevelopment:!0,expected:{framework:"storybook-framework-qwik",renderer:"storybook-framework-qwik",builder:"storybook-framework-qwik"},skipTasks:["e2e-tests","e2e-tests-dev","bench"]}},internalTemplates={"internal/swc-webpack":{...baseTemplates["react-webpack/18-ts"],name:"SWC (react-webpack/18-ts)",isInternal:!0,inDevelopment:!0,modifications:{mainConfig:{framework:{name:"@storybook/react-webpack5",options:{builder:{useSWC:!0}}}}},skipTasks:["bench"]},"internal/server-webpack5":{name:"Server Webpack5",script:'yarn init -y && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/server-webpack5",renderer:"@storybook/server",builder:"@storybook/builder-webpack5"},isInternal:!0,skipTasks:["bench"]}},benchTemplates={"bench/react-vite-default-ts":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts)",isInternal:!0,modifications:{skipTemplateStories:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic"]},"bench/react-webpack-18-ts":{...baseTemplates["react-webpack/18-ts"],name:"Bench (react-webpack/18-ts)",isInternal:!0,modifications:{skipTemplateStories:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic"]},"bench/react-vite-default-ts-nodocs":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts, no docs)",isInternal:!0,modifications:{skipTemplateStories:!0,disableDocs:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic"]},"bench/react-vite-default-ts-test-build":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts, test-build)",isInternal:!0,modifications:{skipTemplateStories:!0,testBuild:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests"]},"bench/react-webpack-18-ts-test-build":{...baseTemplates["react-webpack/18-ts"],name:"Bench (react-webpack/18-ts, test-build)",isInternal:!0,modifications:{skipTemplateStories:!0,testBuild:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests"]}},allTemplates={...baseTemplates,...internalTemplates,...benchTemplates},normal=["cra/default-ts","react-vite/default-ts","angular-cli/default-ts","vue3-vite/default-ts","lit-vite/default-ts","svelte-vite/default-ts","svelte-kit/skeleton-ts","nextjs/default-ts","bench/react-vite-default-ts","bench/react-webpack-18-ts","bench/react-vite-default-ts-nodocs","bench/react-vite-default-ts-test-build","bench/react-webpack-18-ts-test-build"],merged=[...normal,"react-webpack/18-ts","react-webpack/17-ts","preact-webpack5/default-ts","preact-vite/default-ts","html-webpack/default","html-vite/default-ts"],daily=[...merged,"angular-cli/prerelease","cra/default-js","react-vite/default-js","vue3-vite/default-js","vue2-vite/2.7-js","vue-cli/default-js","lit-vite/default-js","svelte-kit/skeleton-js","svelte-vite/default-js","nextjs/default-js","nextjs/prerelease","qwik-vite/default-ts","preact-webpack5/default-js","preact-vite/default-js","html-vite/default-js"];var logger28=console,toChoices=c=>({title:allTemplates[c].name,value:c}),sandbox=async({output:outputDirectory,filterValue,init,...options},pkg2)=>{let selectedConfig=allTemplates[filterValue],templateId=selectedConfig?filterValue:null,{packageManager:pkgMgr}=options,packageManager=JsPackageManagerFactory.getPackageManager({force:pkgMgr}),latestVersion=await packageManager.latestVersion("@storybook/cli"),nextVersion=await packageManager.latestVersion("@storybook/cli@next").catch(e=>"0.0.0"),currentVersion=versions_default["@storybook/cli"],isPrerelease=(0,import_semver28.prerelease)(currentVersion),isOutdated=(0,import_semver28.lt)(currentVersion,isPrerelease?nextVersion:latestVersion),borderColor=isOutdated?"#FC521F":"#F1618C",downloadType=!isOutdated&&init?"after-storybook":"before-storybook",branch=isPrerelease?"next":"main",messages={welcome:`Creating a Storybook ${import_chalk30.default.bold(currentVersion)} sandbox..`,notLatest:import_chalk30.default.red(import_ts_dedent38.dedent`
463
+ `),{borderStyle:"round",padding:1,borderColor}));let packageJson=await packageManager.retrievePackageJson(),toUpgradedDependencies=deps=>Object.keys(deps||{}).filter(dependency=>{if(dependency==="@storybook/preset-create-react-app"){let reactScriptsVersion=packageJson.dependencies["react-scripts"]??packageJson.devDependencies["react-scripts"];if(reactScriptsVersion&&(0,import_semver27.lt)((0,import_semver27.coerce)(reactScriptsVersion),"5.0.0"))return!1}return dependency in versions_default}).map(dependency=>`${dependency}@${(!isOutdated||isPrerelease)&&!isCanary?"^":""}${versions_default[dependency]}`),upgradedDependencies=toUpgradedDependencies(packageJson.dependencies),upgradedDevDependencies=toUpgradedDependencies(packageJson.devDependencies);dryRun||(commandLog(`Updating dependencies in ${import_chalk29.default.cyan("package.json")}..`),import_node_logger6.logger.plain(""),upgradedDependencies.length>0&&await packageManager.addDependencies({installAsDevDependencies:!1,skipInstall:!0,packageJson},upgradedDependencies),upgradedDevDependencies.length>0&&await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall:!0,packageJson},upgradedDevDependencies),await packageManager.installDependencies());let automigrationResults;if(skipCheck||(checkVersionConsistency(),automigrationResults=await automigrate({dryRun,yes,packageManager:pkgMgr,configDir})),!options.disableTelemetry){let afterVersion=await getInstalledStorybookVersion(packageManager),{preCheckFailure,fixResults}=automigrationResults||{};(0,import_telemetry2.telemetry)("upgrade",{beforeVersion,afterVersion,...{automigrationResults:preCheckFailure?null:fixResults,automigrationPreCheckFailure:preCheckFailure||null}})}};async function upgrade(options){await(0,import_core_server2.withTelemetry)("upgrade",{cliOptions:options},()=>doUpgrade(options))}var import_prompts9=__toESM(require("prompts")),import_path22=__toESM(require("path")),import_chalk30=__toESM(require("chalk")),import_boxen5=__toESM(require_boxen()),import_ts_dedent38=require("ts-dedent"),import_giget=require("giget"),import_fs_extra14=require("fs-extra"),import_semver28=require("semver");var baseTemplates={"cra/default-js":{name:"Create React App Latest (Webpack | JavaScript)",script:"npx create-react-app {{beforeDir}}",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"cra/default-ts":{name:"Create React App Latest (Webpack | TypeScript)",script:"npx create-react-app {{beforeDir}} --template typescript",skipTasks:["smoke-test","bench"],expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"}},"nextjs/default-js":{name:"Next.js Latest (Webpack | JavaScript)",script:'yarn create next-app {{beforeDir}} --javascript --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"nextjs/default-ts":{name:"Next.js Latest (Webpack | TypeScript)",script:'yarn create next-app {{beforeDir}} --typescript --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"nextjs/prerelease":{name:"Next.js Prerelease (Webpack | TypeScript)",script:'npx create-next-app@canary {{beforeDir}} --typescript --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-js":{name:"React Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template react",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-ts":{name:"React Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template react-ts",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},skipTasks:["bench"]},"react-webpack/18-ts":{name:"React Latest (Webpack | TypeScript)",script:"yarn create webpack5-react {{beforeDir}}",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"react-webpack/17-ts":{name:"React v17 (Webpack | TypeScript)",script:'yarn create webpack5-react {{beforeDir}} --version-react="17" --version-react-dom="17"',expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"solid-vite/default-js":{name:"SolidJS Latest (Vite | JavaScript)",script:"npx degit solidjs/templates/js {{beforeDir}}",expected:{framework:"storybook-solidjs-vite",renderer:"storybook-solidjs",builder:"@storybook/builder-vite"},inDevelopment:!0,skipTasks:["e2e-tests-dev","bench"]},"solid-vite/default-ts":{name:"SolidJS Latest (Vite | TypeScript)",script:"npx degit solidjs/templates/ts {{beforeDir}}",expected:{framework:"storybook-solidjs-vite",renderer:"storybook-solidjs",builder:"@storybook/builder-vite"},inDevelopment:!0,skipTasks:["e2e-tests-dev","bench"]},"vue3-vite/default-js":{name:"Vue v3 (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template vue",expected:{framework:"@storybook/vue3-vite",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"vue3-vite/default-ts":{name:"Vue v3 (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template vue-ts",expected:{framework:"@storybook/vue3-vite",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"vue2-vite/2.7-js":{name:"Vue v2 (Vite | JavaScript)",script:"npx create-vue@2 {{beforeDir}} --default",expected:{framework:"@storybook/vue-vite",renderer:"@storybook/vue",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"html-webpack/default":{name:"HTML Latest (Webpack | JavaScript)",script:"yarn create webpack5-html {{beforeDir}}",expected:{framework:"@storybook/html-webpack5",renderer:"@storybook/html",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"html-vite/default-js":{name:"HTML Latest (Vite | JavaScript)",script:'npm create vite --yes {{beforeDir}} -- --template vanilla && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/html-vite",renderer:"@storybook/html",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"html-vite/default-ts":{name:"HTML Latest (Vite | TypeScript)",script:'npm create vite --yes {{beforeDir}} -- --template vanilla-ts && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/html-vite",renderer:"@storybook/html",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-vite/default-js":{name:"Svelte Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template svelte",expected:{framework:"@storybook/svelte-vite",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-vite/default-ts":{name:"Svelte Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template svelte-ts",expected:{framework:"@storybook/svelte-vite",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"angular-cli/prerelease":{name:"Angular CLI Prerelease (Webpack | TypeScript)",script:"npx -p @angular/cli@next ng new angular-v16 --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn --ssr",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"angular-cli/default-ts":{name:"Angular CLI Latest (Webpack | TypeScript)",script:"npx -p @angular/cli ng new angular-latest --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn --ssr",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"angular-cli/15-ts":{name:"Angular CLI v15 (Webpack | TypeScript)",script:"npx -p @angular/cli@15 ng new angular-v15 --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"svelte-kit/skeleton-js":{name:"SvelteKit Latest (Vite | JavaScript)",script:"yarn create svelte-with-args --name=svelte-kit/skeleton-js --directory={{beforeDir}} --template=skeleton --types=null --no-prettier --no-eslint --no-playwright --no-vitest --no-svelte5",expected:{framework:"@storybook/sveltekit",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-kit/skeleton-ts":{name:"SvelteKit Latest (Vite | TypeScript)",script:"yarn create svelte-with-args --name=svelte-kit/skeleton-ts --directory={{beforeDir}} --template=skeleton --types=typescript --no-prettier --no-eslint --no-playwright --no-vitest --no-svelte5",expected:{framework:"@storybook/sveltekit",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"lit-vite/default-js":{name:"Lit Latest (Vite | JavaScript)",script:'npm create vite --yes {{beforeDir}} -- --template lit && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/web-components-vite",renderer:"@storybook/web-components",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"lit-vite/default-ts":{name:"Lit Latest (Vite | TypeScript)",script:'npm create vite --yes {{beforeDir}} -- --template lit-ts && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/web-components-vite",renderer:"@storybook/web-components",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"vue-cli/default-js":{name:"Vue CLI v3 (Webpack | JavaScript)",script:'npx -p @vue/cli vue create {{beforeDir}} --default --packageManager=yarn --force --merge && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/vue3-webpack5",renderer:"@storybook/vue3",builder:"@storybook/builder-webpack5"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"preact-webpack5/default-js":{name:"Preact CLI Latest (Webpack | JavaScript)",script:'npx preact-cli create default {{beforeDir}} --name preact-app --yarn --no-install && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/preact-webpack5",renderer:"@storybook/preact",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"preact-webpack5/default-ts":{name:"Preact CLI Latest (Webpack | TypeScript)",script:'npx preact-cli create typescript {{beforeDir}} --name preact-app --yarn --no-install && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/preact-webpack5",renderer:"@storybook/preact",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"preact-vite/default-js":{name:"Preact Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template preact",expected:{framework:"@storybook/preact-vite",renderer:"@storybook/preact",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"preact-vite/default-ts":{name:"Preact Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template preact-ts",expected:{framework:"@storybook/preact-vite",renderer:"@storybook/preact",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"qwik-vite/default-ts":{name:"Qwik CLI Latest (Vite | TypeScript)",script:"yarn create qwik basic {{beforeDir}}",inDevelopment:!0,expected:{framework:"storybook-framework-qwik",renderer:"storybook-framework-qwik",builder:"storybook-framework-qwik"},skipTasks:["e2e-tests","e2e-tests-dev","bench"]}},internalTemplates={"internal/swc-webpack":{...baseTemplates["react-webpack/18-ts"],name:"SWC (react-webpack/18-ts)",isInternal:!0,inDevelopment:!0,modifications:{mainConfig:{framework:{name:"@storybook/react-webpack5",options:{builder:{useSWC:!0}}}}},skipTasks:["bench"]},"internal/server-webpack5":{name:"Server Webpack5",script:'yarn init -y && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/server-webpack5",renderer:"@storybook/server",builder:"@storybook/builder-webpack5"},isInternal:!0,skipTasks:["bench"]}},benchTemplates={"bench/react-vite-default-ts":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts)",isInternal:!0,modifications:{skipTemplateStories:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic"]},"bench/react-webpack-18-ts":{...baseTemplates["react-webpack/18-ts"],name:"Bench (react-webpack/18-ts)",isInternal:!0,modifications:{skipTemplateStories:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic"]},"bench/react-vite-default-ts-nodocs":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts, no docs)",isInternal:!0,modifications:{skipTemplateStories:!0,disableDocs:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic"]},"bench/react-vite-default-ts-test-build":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts, test-build)",isInternal:!0,modifications:{skipTemplateStories:!0,testBuild:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests"]},"bench/react-webpack-18-ts-test-build":{...baseTemplates["react-webpack/18-ts"],name:"Bench (react-webpack/18-ts, test-build)",isInternal:!0,modifications:{skipTemplateStories:!0,testBuild:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests"]}},allTemplates={...baseTemplates,...internalTemplates,...benchTemplates},normal=["cra/default-ts","react-vite/default-ts","angular-cli/default-ts","vue3-vite/default-ts","lit-vite/default-ts","svelte-vite/default-ts","svelte-kit/skeleton-ts","nextjs/default-ts","bench/react-vite-default-ts","bench/react-webpack-18-ts","bench/react-vite-default-ts-nodocs","bench/react-vite-default-ts-test-build","bench/react-webpack-18-ts-test-build"],merged=[...normal,"react-webpack/18-ts","react-webpack/17-ts","preact-webpack5/default-ts","preact-vite/default-ts","html-webpack/default","html-vite/default-ts"],daily=[...merged,"angular-cli/prerelease","cra/default-js","react-vite/default-js","vue3-vite/default-js","vue2-vite/2.7-js","vue-cli/default-js","lit-vite/default-js","svelte-kit/skeleton-js","svelte-vite/default-js","nextjs/default-js","nextjs/prerelease","qwik-vite/default-ts","preact-webpack5/default-js","preact-vite/default-js","html-vite/default-js"];var logger28=console,toChoices=c=>({title:allTemplates[c].name,value:c}),sandbox=async({output:outputDirectory,filterValue,init,...options},pkg2)=>{let selectedConfig=allTemplates[filterValue],templateId=selectedConfig?filterValue:null,{packageManager:pkgMgr}=options,packageManager=JsPackageManagerFactory.getPackageManager({force:pkgMgr}),latestVersion=await packageManager.latestVersion("@storybook/cli"),nextVersion=await packageManager.latestVersion("@storybook/cli@next").catch(e=>"0.0.0"),currentVersion=versions_default["@storybook/cli"],isPrerelease=(0,import_semver28.prerelease)(currentVersion),isOutdated=(0,import_semver28.lt)(currentVersion,isPrerelease?nextVersion:latestVersion),borderColor=isOutdated?"#FC521F":"#F1618C",downloadType=!isOutdated&&init?"after-storybook":"before-storybook",branch=isPrerelease?"next":"main",messages={welcome:`Creating a Storybook ${import_chalk30.default.bold(currentVersion)} sandbox..`,notLatest:import_chalk30.default.red(import_ts_dedent38.dedent`
464
464
  This version is behind the latest release, which is: ${import_chalk30.default.bold(latestVersion)}!
465
465
  You likely ran the init command through npx, which can use a locally cached version, to get the latest please run:
466
466
  ${import_chalk30.default.bold("npx storybook@latest sandbox")}
package/dist/generate.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { __commonJS, __require, __toESM, versions_default, JsPackageManagerFactory, parseList, getEnvConfig, useNpmWarning, isCorePackage, getStorybookVersion, getStorybookVersionSpecifier, HandledError, commandLog, installableProjectTypes, paddedLog, isNxProject, supportedTemplates, unsupportedTemplate, getPackageDetails, getCliDir, copyTemplate, getBabelDependencies, copyTemplateFiles, externalFrameworks } from './chunk-4DXRA4YG.mjs';
1
+ import { __commonJS, __require, __toESM, versions_default, JsPackageManagerFactory, parseList, getEnvConfig, useNpmWarning, isCorePackage, getStorybookVersion, getStorybookVersionSpecifier, HandledError, commandLog, installableProjectTypes, paddedLog, isNxProject, supportedTemplates, unsupportedTemplate, getPackageDetails, getCliDir, copyTemplate, getBabelDependencies, copyTemplateFiles, externalFrameworks } from './chunk-JAPTRNJ6.mjs';
2
2
  import program from 'commander';
3
3
  import path8, { join, isAbsolute, resolve, basename } from 'path';
4
4
  import chalk12 from 'chalk';
@@ -6,7 +6,7 @@ import envinfo from 'envinfo';
6
6
  import leven from 'leven';
7
7
  import { sync } from 'read-pkg-up';
8
8
  import { logger, instance, deprecate } from '@storybook/node-logger';
9
- import { addToGlobalContext, telemetry, getStorybookCoreVersion } from '@storybook/telemetry';
9
+ import { addToGlobalContext, telemetry } from '@storybook/telemetry';
10
10
  import prompts5 from 'prompts';
11
11
  import { withTelemetry, buildDevStandalone, buildStaticStandalone } from '@storybook/core-server';
12
12
  import { UpgradeStorybookToLowerVersionError, UpgradeStorybookToSameVersionError, NxProjectDetectedError, MissingAngularJsonError } from '@storybook/core-events/server-errors';
@@ -96,7 +96,7 @@ We were not able to detect the right builder for your project. Please select one
96
96
  import { setCompodocJson } from "@storybook/addon-docs/angular";
97
97
  import docJson from "../documentation.json";
98
98
  setCompodocJson(docJson);
99
- `.trimStart(),promptForCompoDocs=async()=>{let{useCompoDoc}=await prompts5({type:"confirm",name:"useCompoDoc",message:"Do you want to use Compodoc for documentation?"});return useCompoDoc},AngularJSON=class{constructor(){if(!fs.existsSync(ANGULAR_JSON_PATH))throw new MissingAngularJsonError({path:join(process.cwd(),ANGULAR_JSON_PATH)});let jsonContent=fs.readFileSync(ANGULAR_JSON_PATH,"utf8");this.json=JSON.parse(jsonContent);}get projects(){return this.json.projects}get projectsWithoutStorybook(){return Object.keys(this.projects).filter(projectName=>{let{architect}=this.projects[projectName];return !architect.storybook})}get hasStorybookBuilder(){return Object.keys(this.projects).some(projectName=>{let{architect}=this.projects[projectName];return Object.keys(architect).some(key=>architect[key].builder==="@storybook/angular:start-storybook")})}get rootProject(){let rootProjectName=Object.keys(this.projects).find(projectName=>{let{root}=this.projects[projectName];return root===""||root==="."});return rootProjectName?this.projects[rootProjectName]:null}getProjectSettingsByName(projectName){return this.projects[projectName]}async getProjectName(){if(this.projectsWithoutStorybook.length>1){let{projectName}=await prompts5({type:"select",name:"projectName",message:"For which project do you want to generate Storybook configuration?",choices:this.projectsWithoutStorybook.map(name=>({title:name,value:name}))});return projectName}return this.projectsWithoutStorybook[0]}addStorybookEntries({angularProjectName,storybookFolder,useCompodoc,root}){let{architect}=this.projects[angularProjectName],baseOptions={configDir:storybookFolder,browserTarget:`${angularProjectName}:build`,compodoc:useCompodoc,...useCompodoc&&{compodocArgs:["-e","json","-d",root||"."]}};architect.storybook||(architect.storybook={builder:"@storybook/angular:start-storybook",options:{...baseOptions,port:6006}}),architect["build-storybook"]||(architect["build-storybook"]={builder:"@storybook/angular:build-storybook",options:{...baseOptions,outputDir:Object.keys(this.projects).length===1?"storybook-static":`dist/storybook/${angularProjectName}`}});}write(){fs.writeFileSync(ANGULAR_JSON_PATH,JSON.stringify(this.json,null,2));}};var generator=async(packageManager,npmOptions,options,commandOptions)=>{let angularJSON=new AngularJSON;if(!angularJSON.projects||angularJSON.projects&&Object.keys(angularJSON.projects).length===0)throw new Error("Storybook was not able to find any projects in your angular.json file. Are you sure this is an Angular CLI project?");if(angularJSON.projectsWithoutStorybook.length===0)throw new Error("Every project in your workspace is already set up with Storybook. There is nothing to do!");let angularProjectName=await angularJSON.getProjectName();paddedLog(`Adding Storybook support to your "${angularProjectName}" project`);let angularProject=angularJSON.getProjectSettingsByName(angularProjectName);if(!angularProject)throw new Error(`Somehow we were not able to retrieve the "${angularProjectName}" project in your angular.json file. This is likely a bug in Storybook, please file an issue.`);let{root,projectType}=angularProject,{projects}=angularJSON,useCompodoc=commandOptions.yes?!0:await promptForCompoDocs(),storybookFolder=root?`${root}/.storybook`:".storybook";angularJSON.addStorybookEntries({angularProjectName,storybookFolder,useCompodoc,root}),angularJSON.write(),await baseGenerator(packageManager,npmOptions,{...options,builder:"webpack5",...useCompodoc&&{frameworkPreviewParts:{prefix:compoDocPreviewPrefix}}},"angular",{...useCompodoc&&{extraPackages:["@compodoc/compodoc","@storybook/addon-docs"]},addScripts:!1,componentsDestinationPath:root?`${root}/src/stories`:void 0,storybookConfigFolder:storybookFolder},"angular"),Object.keys(projects).length===1&&packageManager.addScripts({storybook:`ng run ${angularProjectName}:storybook`,"build-storybook":`ng run ${angularProjectName}:build-storybook`});let projectTypeValue=projectType||"application";projectTypeValue!=="application"&&projectTypeValue!=="library"&&(projectTypeValue="application");let templateDir=join(getCliDir(),"templates","angular",projectTypeValue);return templateDir&&copyTemplate(templateDir,root||void 0),{projectName:angularProjectName,configDir:storybookFolder}},ANGULAR_default=generator;var generator2=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:"webpack5"},"ember",{extraPackages:["babel-plugin-ember-modules-api-polyfill","babel-plugin-htmlbars-inline-precompile"],staticDir:"dist"});},EMBER_default=generator2;var generator3=async(packageManager,npmOptions,options)=>{let extraPackages=await detectLanguage(packageManager)==="javascript"?["prop-types"]:[];await baseGenerator(packageManager,npmOptions,options,"react",{extraPackages,useSWC:({builder})=>builder==="webpack5",extraAddons:["@storybook/addon-onboarding@^1.0.0"]});},REACT_default=generator3;var generator4=async(packageManager,npmOptions)=>{let packageJson=await packageManager.retrievePackageJson(),missingReactDom=!packageJson.dependencies["react-dom"]&&!packageJson.devDependencies["react-dom"],reactVersion=packageJson.dependencies.react,packagesToResolve=["react-native-safe-area-context","@react-native-async-storage/async-storage","@react-native-community/datetimepicker","@react-native-community/slider","@storybook/addon-ondevice-controls","@storybook/addon-ondevice-actions","@storybook/react-native"],packagesWithFixedVersion=[],versionedPackages=await packageManager.getVersionedPackages(packagesToResolve),babelDependencies=await getBabelDependencies(packageManager,packageJson),packages=[];packages.push(...babelDependencies),packages.push(...packagesWithFixedVersion),packages.push(...versionedPackages),missingReactDom&&reactVersion&&packages.push(`react-dom@${reactVersion}`),await packageManager.addDependencies({...npmOptions,packageJson},packages),packageManager.addScripts({"storybook-generate":"sb-rn-get-stories","storybook-watch":"sb-rn-watcher"});let storybookConfigFolder=".storybook";await copyTemplateFiles({packageManager,renderer:"react-native",language:"typescript-3-8",destination:storybookConfigFolder,includeCommonAssets:!1});},REACT_NATIVE_default=generator4;var generator5=async(packageManager,npmOptions,options)=>{let monorepoRootPath=path8.join(__dirname,"..","..","..","..","..",".."),extraMain=options.linkable?{webpackFinal:`%%(config) => {
99
+ `.trimStart(),promptForCompoDocs=async()=>{let{useCompoDoc}=await prompts5({type:"confirm",name:"useCompoDoc",message:"Do you want to use Compodoc for documentation?"});return useCompoDoc},AngularJSON=class{constructor(){if(!fs.existsSync(ANGULAR_JSON_PATH))throw new MissingAngularJsonError({path:join(process.cwd(),ANGULAR_JSON_PATH)});let jsonContent=fs.readFileSync(ANGULAR_JSON_PATH,"utf8");this.json=JSON.parse(jsonContent);}get projects(){return this.json.projects}get projectsWithoutStorybook(){return Object.keys(this.projects).filter(projectName=>{let{architect}=this.projects[projectName];return !architect.storybook})}get hasStorybookBuilder(){return Object.keys(this.projects).some(projectName=>{let{architect}=this.projects[projectName];return Object.keys(architect).some(key=>architect[key].builder==="@storybook/angular:start-storybook")})}get rootProject(){let rootProjectName=Object.keys(this.projects).find(projectName=>{let{root}=this.projects[projectName];return root===""||root==="."});return rootProjectName?this.projects[rootProjectName]:null}getProjectSettingsByName(projectName){return this.projects[projectName]}async getProjectName(){if(this.projectsWithoutStorybook.length>1){let{projectName}=await prompts5({type:"select",name:"projectName",message:"For which project do you want to generate Storybook configuration?",choices:this.projectsWithoutStorybook.map(name=>({title:name,value:name}))});return projectName}return this.projectsWithoutStorybook[0]}addStorybookEntries({angularProjectName,storybookFolder,useCompodoc,root}){let{architect}=this.projects[angularProjectName],baseOptions={configDir:storybookFolder,browserTarget:`${angularProjectName}:build`,compodoc:useCompodoc,...useCompodoc&&{compodocArgs:["-e","json","-d",root||"."]}};architect.storybook||(architect.storybook={builder:"@storybook/angular:start-storybook",options:{...baseOptions,port:6006}}),architect["build-storybook"]||(architect["build-storybook"]={builder:"@storybook/angular:build-storybook",options:{...baseOptions,outputDir:Object.keys(this.projects).length===1?"storybook-static":`dist/storybook/${angularProjectName}`}});}write(){fs.writeFileSync(ANGULAR_JSON_PATH,JSON.stringify(this.json,null,2));}};var generator=async(packageManager,npmOptions,options,commandOptions)=>{let angularJSON=new AngularJSON;if(!angularJSON.projects||angularJSON.projects&&Object.keys(angularJSON.projects).length===0)throw new Error("Storybook was not able to find any projects in your angular.json file. Are you sure this is an Angular CLI project?");if(angularJSON.projectsWithoutStorybook.length===0)throw new Error("Every project in your workspace is already set up with Storybook. There is nothing to do!");let angularProjectName=await angularJSON.getProjectName();paddedLog(`Adding Storybook support to your "${angularProjectName}" project`);let angularProject=angularJSON.getProjectSettingsByName(angularProjectName);if(!angularProject)throw new Error(`Somehow we were not able to retrieve the "${angularProjectName}" project in your angular.json file. This is likely a bug in Storybook, please file an issue.`);let{root,projectType}=angularProject,{projects}=angularJSON,useCompodoc=commandOptions.yes?!0:await promptForCompoDocs(),storybookFolder=root?`${root}/.storybook`:".storybook";angularJSON.addStorybookEntries({angularProjectName,storybookFolder,useCompodoc,root}),angularJSON.write(),await baseGenerator(packageManager,npmOptions,{...options,builder:"webpack5",...useCompodoc&&{frameworkPreviewParts:{prefix:compoDocPreviewPrefix}}},"angular",{...useCompodoc&&{extraPackages:["@compodoc/compodoc","@storybook/addon-docs"]},addScripts:!1,componentsDestinationPath:root?`${root}/src/stories`:void 0,storybookConfigFolder:storybookFolder},"angular"),Object.keys(projects).length===1&&packageManager.addScripts({storybook:`ng run ${angularProjectName}:storybook`,"build-storybook":`ng run ${angularProjectName}:build-storybook`});let projectTypeValue=projectType||"application";projectTypeValue!=="application"&&projectTypeValue!=="library"&&(projectTypeValue="application");let templateDir=join(getCliDir(),"templates","angular",projectTypeValue);return templateDir&&copyTemplate(templateDir,root||void 0),{projectName:angularProjectName,configDir:storybookFolder}},ANGULAR_default=generator;var generator2=async(packageManager,npmOptions,options)=>{await baseGenerator(packageManager,npmOptions,{...options,builder:"webpack5"},"ember",{extraPackages:["babel-plugin-ember-modules-api-polyfill","babel-plugin-htmlbars-inline-precompile"],staticDir:"dist"});},EMBER_default=generator2;var generator3=async(packageManager,npmOptions,options)=>{let extraPackages=await detectLanguage(packageManager)==="javascript"?["prop-types"]:[];await baseGenerator(packageManager,npmOptions,options,"react",{extraPackages,useSWC:({builder})=>builder==="webpack5",extraAddons:["@storybook/addon-onboarding@^1.0.0"]});},REACT_default=generator3;var generator4=async(packageManager,npmOptions)=>{let packageJson=await packageManager.retrievePackageJson(),missingReactDom=!packageJson.dependencies["react-dom"]&&!packageJson.devDependencies["react-dom"],reactVersion=packageJson.dependencies.react,packagesToResolve=[...["react-native-safe-area-context","@react-native-async-storage/async-storage","@react-native-community/datetimepicker","@react-native-community/slider"].filter(dep=>!packageJson.dependencies[dep]&&!packageJson.devDependencies[dep]),"@storybook/addon-ondevice-controls","@storybook/addon-ondevice-actions","@storybook/react-native"],packagesWithFixedVersion=[],versionedPackages=await packageManager.getVersionedPackages(packagesToResolve),babelDependencies=await getBabelDependencies(packageManager,packageJson),packages=[];packages.push(...babelDependencies),packages.push(...packagesWithFixedVersion),packages.push(...versionedPackages),missingReactDom&&reactVersion&&packages.push(`react-dom@${reactVersion}`),await packageManager.addDependencies({...npmOptions,packageJson},packages),packageManager.addScripts({"storybook-generate":"sb-rn-get-stories"});let storybookConfigFolder=".storybook";await copyTemplateFiles({packageManager,renderer:"react-native",language:"typescript-3-8",destination:storybookConfigFolder,includeCommonAssets:!1});},REACT_NATIVE_default=generator4;var generator5=async(packageManager,npmOptions,options)=>{let monorepoRootPath=path8.join(__dirname,"..","..","..","..","..",".."),extraMain=options.linkable?{webpackFinal:`%%(config) => {
100
100
  // add monorepo root as a valid directory to import modules from
101
101
  config.resolve.plugins.forEach((p) => {
102
102
  if (Array.isArray(p.appSrcs)) {
@@ -459,15 +459,15 @@ ${error.stack}`),fixSummary.failed[f.id]=error.message,fixResults[f.id]="check_f
459
459
  ${JSON.stringify(nextStoriesEntries,null,2)}`),dryRun||await updateMainConfig({mainConfigPath,dryRun},async main=>{main.setFieldValue(["stories"],nextStoriesEntries);});}};var logger22=console;async function migrate(migration,{glob:glob2,dryRun,list,rename,parser}){if(list)listCodemods().forEach(key=>logger22.log(key));else if(migration)migration==="mdx-to-csf"&&!dryRun&&(await runFixes({fixes:[bareMdxStoriesGlob]}),await addStorybookBlocksPackage()),await runCodemod(migration,{glob:glob2,dryRun,logger:logger22,rename,parser});else throw new Error("Migrate: please specify a migration name or --list")}async function addStorybookBlocksPackage(){let packageManager=JsPackageManagerFactory.getPackageManager(),packageJson=await packageManager.retrievePackageJson(),versionToInstall=getStorybookVersionSpecifier(await packageManager.retrievePackageJson());logger22.info('\u2705 Adding "@storybook/blocks" package'),await packageManager.addDependencies({installAsDevDependencies:!0,packageJson},[`@storybook/blocks@${versionToInstall}`]);}var read=async url=>{let browser=await usePuppeteerBrowser(),page=await browser.newPage();await page.goto(url),await page.waitForFunction(`
460
460
  (window.__STORYBOOK_PREVIEW__ && window.__STORYBOOK_PREVIEW__.extract && window.__STORYBOOK_PREVIEW__.extract()) ||
461
461
  (window.__STORYBOOK_STORY_STORE__ && window.__STORYBOOK_STORY_STORE__.extract && window.__STORYBOOK_STORY_STORE__.extract())
462
- `);let data=JSON.parse(await page.evaluate(async()=>JSON.stringify(window.__STORYBOOK_STORY_STORE__.getStoriesJsonData(),null,2)));return setImmediate(()=>{browser.close();}),data},useLocation=async input=>{if(await stat(path8.resolve(input)),input.match(/^http/))return [input,async()=>{}];let app=express();app.use(express.static(input));let port=await getPort();return new Promise(resolve2=>{let server=app.listen(port,()=>{let result=`http://localhost:${port}/iframe.html`;logger.info(`connecting to: ${result}`),resolve2([result,server.close.bind(server)]);});})},usePuppeteerBrowser=async()=>{let args=["--no-sandbox ","--disable-setuid-sandbox"];try{return await puppeteerCore.launch({args,executablePath:process.env.SB_CHROMIUM_PATH})}catch{return logger.info("installing puppeteer..."),new Promise((resolve2,reject)=>{__require("child_process").exec(`node ${__require.resolve(path8.join("puppeteer-core","install.js"))}`,error=>error?reject(error):resolve2(puppeteerCore.launch({args})));})}};async function extract(input,targetPath){if(input&&targetPath){let[location,exit]=await useLocation(input),data=await read(location);await writeFile(targetPath,JSON.stringify(data,null,2)),await exit();}else throw new Error("Extract: please specify a path where your built-storybook is (can be a public url) and a target directory")}var import_boxen4=__toESM(require_boxen());var versionRegex=/(@storybook\/[^@]+)@(\S+)/,getStorybookVersion2=line=>{if(line.startsWith("npm "))return null;let match=versionRegex.exec(line);return !match||!semver.clean(match[2])?null:{package:match[1],version:match[2]}},deprecatedPackages=[{minVersion:"6.0.0-alpha.0",url:"https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#60-deprecations",deprecations:["@storybook/addon-notes","@storybook/addon-info","@storybook/addon-contexts","@storybook/addon-options","@storybook/addon-centered"]}],formatPackage=pkg2=>`${pkg2.package}@${pkg2.version}`,warnPackages=pkgs=>pkgs.forEach(pkg2=>logger.warn(`- ${formatPackage(pkg2)}`)),checkVersionConsistency=()=>{let storybookPackages=sync$1("npm",["ls"],{stdio:"pipe",shell:!0}).output.toString().split(`
463
- `).map(getStorybookVersion2).filter(Boolean).filter(pkg2=>isCorePackage(pkg2.package));if(!storybookPackages.length){logger.warn("No storybook core packages found."),logger.warn("'npm ls | grep storybook' can show if multiple versions are installed.");return}storybookPackages.sort((a,b)=>semver.rcompare(a.version,b.version));let latestVersion=storybookPackages[0].version,outdated=storybookPackages.filter(pkg2=>pkg2.version!==latestVersion);outdated.length>0&&(logger.warn(`Found ${outdated.length} outdated packages (relative to '${formatPackage(storybookPackages[0])}')`),logger.warn("Please make sure your packages are updated to ensure a consistent experience."),warnPackages(outdated)),deprecatedPackages.forEach(({minVersion,url,deprecations})=>{if(semver.gte(latestVersion,minVersion)){let deprecated=storybookPackages.filter(pkg2=>deprecations.includes(pkg2.package));deprecated.length>0&&(logger.warn(`Found ${deprecated.length} deprecated packages since ${minVersion}`),logger.warn(`See ${url}`),warnPackages(deprecated));}});},EXTRA_FLAGS={"react-scripts@<5":["--reject","/preset-create-react-app/"]},addExtraFlags=(extraFlags,flags,{dependencies,devDependencies})=>Object.entries(extraFlags).reduce((acc,entry)=>{let[pattern,extra]=entry,[pkg2,specifier]=getPackageDetails(pattern),pkgVersion=dependencies[pkg2]||devDependencies[pkg2];return pkgVersion&&semver.satisfies(semver.coerce(pkgVersion),specifier)?[...acc,...extra]:acc},[...flags]),addNxPackagesToReject=flags=>{let newFlags=[...flags],index=flags.indexOf("--reject");return index>-1?newFlags[index+1].endsWith("/")&&newFlags[index+1].startsWith("/")?(newFlags[index+1]=newFlags[index+1].substring(1,newFlags[index+1].length-1),newFlags[index+1]=`/(${newFlags[index+1]}|@nrwl/storybook|@nx/storybook)/`):newFlags[index+1]=`${newFlags[index+1]},@nrwl/storybook,@nx/storybook`:(newFlags.push("--reject"),newFlags.push("@nrwl/storybook,@nx/storybook")),newFlags},deprecatedUpgrade=async({tag,prerelease:prerelease3,skipCheck,useNpm,packageManager:pkgMgr,dryRun,configDir,yes,...options})=>{useNpm&&(useNpmWarning(),pkgMgr="npm"),tag?deprecate("The --tag flag is deprecated. Specify the version you want to upgrade to with `npx storybook@<version> upgrade` instead"):prerelease3&&deprecate("The --prerelease flag is deprecated. Specify the version you want to upgrade to with `npx storybook@<version> upgrade` instead");let packageManager=JsPackageManagerFactory.getPackageManager({force:pkgMgr}),beforeVersion=await getStorybookCoreVersion();if(commandLog("Checking for latest versions of '@storybook/*' packages"),tag&&prerelease3)throw new Error("Cannot set both --tag and --prerelease. Use --tag next to get the latest prereleae");let target="latest";prerelease3?target="@next":tag&&(target=`@${tag}`);let flags=[];dryRun||flags.push("--upgrade"),flags.push("--target"),flags.push(target),flags=addExtraFlags(EXTRA_FLAGS,flags,await packageManager.retrievePackageJson()),flags=addNxPackagesToReject(flags);let check=sync$1("npx",["npm-check-updates@latest","/storybook/",...flags],{stdio:"pipe",shell:!0});logger.info(check.stdout.toString()),logger.info(check.stderr.toString());let checkSb=sync$1("npx",["npm-check-updates@latest","sb",...flags],{stdio:"pipe",shell:!0});logger.info(checkSb.stdout.toString()),logger.info(checkSb.stderr.toString()),dryRun||(commandLog("Installing upgrades"),await packageManager.installDependencies());let automigrationResults;if(skipCheck||(checkVersionConsistency(),automigrationResults=await automigrate({dryRun,yes,packageManager:pkgMgr,configDir})),!options.disableTelemetry){let afterVersion=await getStorybookCoreVersion(),{preCheckFailure,fixResults}=automigrationResults||{};telemetry("upgrade",{prerelease:prerelease3,tag,beforeVersion,afterVersion,...{automigrationResults:preCheckFailure?null:fixResults,automigrationPreCheckFailure:preCheckFailure||null}});}},doUpgrade=async({tag,prerelease:prerelease3,skipCheck,useNpm,packageManager:pkgMgr,dryRun,configDir,yes,...options})=>{if(useNpm&&(useNpmWarning(),pkgMgr="npm"),tag||prerelease3){await deprecatedUpgrade({tag,prerelease:prerelease3,skipCheck,useNpm,packageManager:pkgMgr,dryRun,configDir,yes,...options});return}let packageManager=JsPackageManagerFactory.getPackageManager({force:pkgMgr}),beforeVersion=await getStorybookCoreVersion()??"0.0.0",currentVersion=versions_default["@storybook/cli"],isCanary=currentVersion.startsWith("0.0.0");if(!isCanary&&lt(currentVersion,beforeVersion))throw new UpgradeStorybookToLowerVersionError({beforeVersion,currentVersion});if(!isCanary&&eq(currentVersion,beforeVersion))throw new UpgradeStorybookToSameVersionError({beforeVersion});let latestVersion=await packageManager.latestVersion("@storybook/cli"),isOutdated=lt(currentVersion,latestVersion),isPrerelease=semver.prerelease(currentVersion)!==null,borderColor=isOutdated?"#FC521F":"#F1618C",messages={welcome:`Upgrading Storybook from version ${chalk12.bold(beforeVersion)} to version ${chalk12.bold(currentVersion)}..`,notLatest:chalk12.red(dedent18`
462
+ `);let data=JSON.parse(await page.evaluate(async()=>JSON.stringify(window.__STORYBOOK_STORY_STORE__.getStoriesJsonData(),null,2)));return setImmediate(()=>{browser.close();}),data},useLocation=async input=>{if(await stat(path8.resolve(input)),input.match(/^http/))return [input,async()=>{}];let app=express();app.use(express.static(input));let port=await getPort();return new Promise(resolve2=>{let server=app.listen(port,()=>{let result=`http://localhost:${port}/iframe.html`;logger.info(`connecting to: ${result}`),resolve2([result,server.close.bind(server)]);});})},usePuppeteerBrowser=async()=>{let args=["--no-sandbox ","--disable-setuid-sandbox"];try{return await puppeteerCore.launch({args,executablePath:process.env.SB_CHROMIUM_PATH})}catch{return logger.info("installing puppeteer..."),new Promise((resolve2,reject)=>{__require("child_process").exec(`node ${__require.resolve(path8.join("puppeteer-core","install.js"))}`,error=>error?reject(error):resolve2(puppeteerCore.launch({args})));})}};async function extract(input,targetPath){if(input&&targetPath){let[location,exit]=await useLocation(input),data=await read(location);await writeFile(targetPath,JSON.stringify(data,null,2)),await exit();}else throw new Error("Extract: please specify a path where your built-storybook is (can be a public url) and a target directory")}var import_boxen4=__toESM(require_boxen());var versionRegex=/(@storybook\/[^@]+)@(\S+)/,getStorybookVersion2=line=>{if(line.startsWith("npm "))return null;let match=versionRegex.exec(line);return !match||!semver.clean(match[2])?null:{package:match[1],version:match[2]}},getInstalledStorybookVersion=async packageManager=>{let installations=await packageManager.findInstallations(["storybook","@storybook/cli"]);if(!installations)return;let cliVersion=installations.dependencies["@storybook/cli"]?.[0].version;return cliVersion||installations.dependencies.storybook?.[0].version},deprecatedPackages=[{minVersion:"6.0.0-alpha.0",url:"https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#60-deprecations",deprecations:["@storybook/addon-notes","@storybook/addon-info","@storybook/addon-contexts","@storybook/addon-options","@storybook/addon-centered"]}],formatPackage=pkg2=>`${pkg2.package}@${pkg2.version}`,warnPackages=pkgs=>pkgs.forEach(pkg2=>logger.warn(`- ${formatPackage(pkg2)}`)),checkVersionConsistency=()=>{let storybookPackages=sync$1("npm",["ls"],{stdio:"pipe",shell:!0}).output.toString().split(`
463
+ `).map(getStorybookVersion2).filter(Boolean).filter(pkg2=>isCorePackage(pkg2.package));if(!storybookPackages.length){logger.warn("No storybook core packages found."),logger.warn("'npm ls | grep storybook' can show if multiple versions are installed.");return}storybookPackages.sort((a,b)=>semver.rcompare(a.version,b.version));let latestVersion=storybookPackages[0].version,outdated=storybookPackages.filter(pkg2=>pkg2.version!==latestVersion);outdated.length>0&&(logger.warn(`Found ${outdated.length} outdated packages (relative to '${formatPackage(storybookPackages[0])}')`),logger.warn("Please make sure your packages are updated to ensure a consistent experience."),warnPackages(outdated)),deprecatedPackages.forEach(({minVersion,url,deprecations})=>{if(semver.gte(latestVersion,minVersion)){let deprecated=storybookPackages.filter(pkg2=>deprecations.includes(pkg2.package));deprecated.length>0&&(logger.warn(`Found ${deprecated.length} deprecated packages since ${minVersion}`),logger.warn(`See ${url}`),warnPackages(deprecated));}});},EXTRA_FLAGS={"react-scripts@<5":["--reject","/preset-create-react-app/"]},addExtraFlags=(extraFlags,flags,{dependencies,devDependencies})=>Object.entries(extraFlags).reduce((acc,entry)=>{let[pattern,extra]=entry,[pkg2,specifier]=getPackageDetails(pattern),pkgVersion=dependencies[pkg2]||devDependencies[pkg2];return pkgVersion&&semver.satisfies(semver.coerce(pkgVersion),specifier)?[...acc,...extra]:acc},[...flags]),addNxPackagesToReject=flags=>{let newFlags=[...flags],index=flags.indexOf("--reject");return index>-1?newFlags[index+1].endsWith("/")&&newFlags[index+1].startsWith("/")?(newFlags[index+1]=newFlags[index+1].substring(1,newFlags[index+1].length-1),newFlags[index+1]=`/(${newFlags[index+1]}|@nrwl/storybook|@nx/storybook)/`):newFlags[index+1]=`${newFlags[index+1]},@nrwl/storybook,@nx/storybook`:(newFlags.push("--reject"),newFlags.push("@nrwl/storybook,@nx/storybook")),newFlags},deprecatedUpgrade=async({tag,prerelease:prerelease3,skipCheck,useNpm,packageManager:pkgMgr,dryRun,configDir,yes,...options})=>{useNpm&&(useNpmWarning(),pkgMgr="npm"),tag?deprecate("The --tag flag is deprecated. Specify the version you want to upgrade to with `npx storybook@<version> upgrade` instead"):prerelease3&&deprecate("The --prerelease flag is deprecated. Specify the version you want to upgrade to with `npx storybook@<version> upgrade` instead");let packageManager=JsPackageManagerFactory.getPackageManager({force:pkgMgr}),beforeVersion=await getInstalledStorybookVersion(packageManager)??"0.0.0";if(commandLog("Checking for latest versions of '@storybook/*' packages"),tag&&prerelease3)throw new Error("Cannot set both --tag and --prerelease. Use --tag next to get the latest prereleae");let target="latest";prerelease3?target="@next":tag&&(target=`@${tag}`);let flags=[];dryRun||flags.push("--upgrade"),flags.push("--target"),flags.push(target),flags=addExtraFlags(EXTRA_FLAGS,flags,await packageManager.retrievePackageJson()),flags=addNxPackagesToReject(flags);let check=sync$1("npx",["npm-check-updates@latest","/storybook/",...flags],{stdio:"pipe",shell:!0});logger.info(check.stdout.toString()),logger.info(check.stderr.toString());let checkSb=sync$1("npx",["npm-check-updates@latest","sb",...flags],{stdio:"pipe",shell:!0});logger.info(checkSb.stdout.toString()),logger.info(checkSb.stderr.toString()),dryRun||(commandLog("Installing upgrades"),await packageManager.installDependencies());let automigrationResults;if(skipCheck||(checkVersionConsistency(),automigrationResults=await automigrate({dryRun,yes,packageManager:pkgMgr,configDir})),!options.disableTelemetry){let afterVersion=await getInstalledStorybookVersion(packageManager),{preCheckFailure,fixResults}=automigrationResults||{};telemetry("upgrade",{prerelease:prerelease3,tag,beforeVersion,afterVersion,...{automigrationResults:preCheckFailure?null:fixResults,automigrationPreCheckFailure:preCheckFailure||null}});}},doUpgrade=async({tag,prerelease:prerelease3,skipCheck,useNpm,packageManager:pkgMgr,dryRun,configDir,yes,...options})=>{if(useNpm&&(useNpmWarning(),pkgMgr="npm"),tag||prerelease3){await deprecatedUpgrade({tag,prerelease:prerelease3,skipCheck,useNpm,packageManager:pkgMgr,dryRun,configDir,yes,...options});return}let packageManager=JsPackageManagerFactory.getPackageManager({force:pkgMgr}),beforeVersion=await getInstalledStorybookVersion(packageManager)??"0.0.0",currentVersion=versions_default["@storybook/cli"],isCanary=currentVersion.startsWith("0.0.0");if(!isCanary&&lt(currentVersion,beforeVersion))throw new UpgradeStorybookToLowerVersionError({beforeVersion,currentVersion});if(!isCanary&&eq(currentVersion,beforeVersion))throw new UpgradeStorybookToSameVersionError({beforeVersion});let latestVersion=await packageManager.latestVersion("@storybook/cli"),isOutdated=lt(currentVersion,latestVersion),isPrerelease=semver.prerelease(currentVersion)!==null,borderColor=isOutdated?"#FC521F":"#F1618C",messages={welcome:`Upgrading Storybook from version ${chalk12.bold(beforeVersion)} to version ${chalk12.bold(currentVersion)}..`,notLatest:chalk12.red(dedent18`
464
464
  This version is behind the latest release, which is: ${chalk12.bold(latestVersion)}!
465
465
  You likely ran the upgrade command through npx, which can use a locally cached version, to upgrade to the latest version please run:
466
466
  ${chalk12.bold("npx storybook@latest upgrade")}
467
467
 
468
468
  You may want to CTRL+C to stop, and run with the latest version instead.
469
469
  `),prelease:chalk12.yellow("This is a pre-release version.")};logger.plain((0, import_boxen4.default)([messages.welcome].concat(isOutdated&&!isPrerelease?[messages.notLatest]:[]).concat(isPrerelease?[messages.prelease]:[]).join(`
470
- `),{borderStyle:"round",padding:1,borderColor}));let packageJson=await packageManager.retrievePackageJson(),toUpgradedDependencies=deps=>Object.keys(deps||{}).filter(dependency=>{if(dependency==="@storybook/preset-create-react-app"){let reactScriptsVersion=packageJson.dependencies["react-scripts"]??packageJson.devDependencies["react-scripts"];if(reactScriptsVersion&&lt(coerce(reactScriptsVersion),"5.0.0"))return !1}return dependency in versions_default}).map(dependency=>`${dependency}@${(!isOutdated||isPrerelease)&&!isCanary?"^":""}${versions_default[dependency]}`),upgradedDependencies=toUpgradedDependencies(packageJson.dependencies),upgradedDevDependencies=toUpgradedDependencies(packageJson.devDependencies);dryRun||(commandLog(`Updating dependencies in ${chalk12.cyan("package.json")}..`),logger.plain(""),upgradedDependencies.length>0&&await packageManager.addDependencies({installAsDevDependencies:!1,skipInstall:!0,packageJson},upgradedDependencies),upgradedDevDependencies.length>0&&await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall:!0,packageJson},upgradedDevDependencies),await packageManager.installDependencies());let automigrationResults;if(skipCheck||(checkVersionConsistency(),automigrationResults=await automigrate({dryRun,yes,packageManager:pkgMgr,configDir})),!options.disableTelemetry){let afterVersion=await getStorybookCoreVersion(),{preCheckFailure,fixResults}=automigrationResults||{};telemetry("upgrade",{beforeVersion,afterVersion,...{automigrationResults:preCheckFailure?null:fixResults,automigrationPreCheckFailure:preCheckFailure||null}});}};async function upgrade(options){await withTelemetry("upgrade",{cliOptions:options},()=>doUpgrade(options));}var import_boxen5=__toESM(require_boxen());var baseTemplates={"cra/default-js":{name:"Create React App Latest (Webpack | JavaScript)",script:"npx create-react-app {{beforeDir}}",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"cra/default-ts":{name:"Create React App Latest (Webpack | TypeScript)",script:"npx create-react-app {{beforeDir}} --template typescript",skipTasks:["smoke-test","bench"],expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"}},"nextjs/default-js":{name:"Next.js Latest (Webpack | JavaScript)",script:'yarn create next-app {{beforeDir}} --javascript --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"nextjs/default-ts":{name:"Next.js Latest (Webpack | TypeScript)",script:'yarn create next-app {{beforeDir}} --typescript --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"nextjs/prerelease":{name:"Next.js Prerelease (Webpack | TypeScript)",script:'npx create-next-app@canary {{beforeDir}} --typescript --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-js":{name:"React Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template react",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-ts":{name:"React Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template react-ts",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},skipTasks:["bench"]},"react-webpack/18-ts":{name:"React Latest (Webpack | TypeScript)",script:"yarn create webpack5-react {{beforeDir}}",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"react-webpack/17-ts":{name:"React v17 (Webpack | TypeScript)",script:'yarn create webpack5-react {{beforeDir}} --version-react="17" --version-react-dom="17"',expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"solid-vite/default-js":{name:"SolidJS Latest (Vite | JavaScript)",script:"npx degit solidjs/templates/js {{beforeDir}}",expected:{framework:"storybook-solidjs-vite",renderer:"storybook-solidjs",builder:"@storybook/builder-vite"},inDevelopment:!0,skipTasks:["e2e-tests-dev","bench"]},"solid-vite/default-ts":{name:"SolidJS Latest (Vite | TypeScript)",script:"npx degit solidjs/templates/ts {{beforeDir}}",expected:{framework:"storybook-solidjs-vite",renderer:"storybook-solidjs",builder:"@storybook/builder-vite"},inDevelopment:!0,skipTasks:["e2e-tests-dev","bench"]},"vue3-vite/default-js":{name:"Vue v3 (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template vue",expected:{framework:"@storybook/vue3-vite",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"vue3-vite/default-ts":{name:"Vue v3 (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template vue-ts",expected:{framework:"@storybook/vue3-vite",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"vue2-vite/2.7-js":{name:"Vue v2 (Vite | JavaScript)",script:"npx create-vue@2 {{beforeDir}} --default",expected:{framework:"@storybook/vue-vite",renderer:"@storybook/vue",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"html-webpack/default":{name:"HTML Latest (Webpack | JavaScript)",script:"yarn create webpack5-html {{beforeDir}}",expected:{framework:"@storybook/html-webpack5",renderer:"@storybook/html",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"html-vite/default-js":{name:"HTML Latest (Vite | JavaScript)",script:'npm create vite --yes {{beforeDir}} -- --template vanilla && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/html-vite",renderer:"@storybook/html",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"html-vite/default-ts":{name:"HTML Latest (Vite | TypeScript)",script:'npm create vite --yes {{beforeDir}} -- --template vanilla-ts && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/html-vite",renderer:"@storybook/html",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-vite/default-js":{name:"Svelte Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template svelte",expected:{framework:"@storybook/svelte-vite",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-vite/default-ts":{name:"Svelte Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template svelte-ts",expected:{framework:"@storybook/svelte-vite",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"angular-cli/prerelease":{name:"Angular CLI Prerelease (Webpack | TypeScript)",script:"npx -p @angular/cli@next ng new angular-v16 --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn --ssr",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"angular-cli/default-ts":{name:"Angular CLI Latest (Webpack | TypeScript)",script:"npx -p @angular/cli ng new angular-latest --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn --ssr",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"angular-cli/15-ts":{name:"Angular CLI v15 (Webpack | TypeScript)",script:"npx -p @angular/cli@15 ng new angular-v15 --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"svelte-kit/skeleton-js":{name:"SvelteKit Latest (Vite | JavaScript)",script:"yarn create svelte-with-args --name=svelte-kit/skeleton-js --directory={{beforeDir}} --template=skeleton --types=null --no-prettier --no-eslint --no-playwright --no-vitest --no-svelte5",expected:{framework:"@storybook/sveltekit",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-kit/skeleton-ts":{name:"SvelteKit Latest (Vite | TypeScript)",script:"yarn create svelte-with-args --name=svelte-kit/skeleton-ts --directory={{beforeDir}} --template=skeleton --types=typescript --no-prettier --no-eslint --no-playwright --no-vitest --no-svelte5",expected:{framework:"@storybook/sveltekit",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"lit-vite/default-js":{name:"Lit Latest (Vite | JavaScript)",script:'npm create vite --yes {{beforeDir}} -- --template lit && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/web-components-vite",renderer:"@storybook/web-components",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"lit-vite/default-ts":{name:"Lit Latest (Vite | TypeScript)",script:'npm create vite --yes {{beforeDir}} -- --template lit-ts && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/web-components-vite",renderer:"@storybook/web-components",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"vue-cli/default-js":{name:"Vue CLI v3 (Webpack | JavaScript)",script:'npx -p @vue/cli vue create {{beforeDir}} --default --packageManager=yarn --force --merge && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/vue3-webpack5",renderer:"@storybook/vue3",builder:"@storybook/builder-webpack5"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"preact-webpack5/default-js":{name:"Preact CLI Latest (Webpack | JavaScript)",script:'npx preact-cli create default {{beforeDir}} --name preact-app --yarn --no-install && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/preact-webpack5",renderer:"@storybook/preact",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"preact-webpack5/default-ts":{name:"Preact CLI Latest (Webpack | TypeScript)",script:'npx preact-cli create typescript {{beforeDir}} --name preact-app --yarn --no-install && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/preact-webpack5",renderer:"@storybook/preact",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"preact-vite/default-js":{name:"Preact Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template preact",expected:{framework:"@storybook/preact-vite",renderer:"@storybook/preact",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"preact-vite/default-ts":{name:"Preact Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template preact-ts",expected:{framework:"@storybook/preact-vite",renderer:"@storybook/preact",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"qwik-vite/default-ts":{name:"Qwik CLI Latest (Vite | TypeScript)",script:"yarn create qwik basic {{beforeDir}}",inDevelopment:!0,expected:{framework:"storybook-framework-qwik",renderer:"storybook-framework-qwik",builder:"storybook-framework-qwik"},skipTasks:["e2e-tests","e2e-tests-dev","bench"]}},internalTemplates={"internal/swc-webpack":{...baseTemplates["react-webpack/18-ts"],name:"SWC (react-webpack/18-ts)",isInternal:!0,inDevelopment:!0,modifications:{mainConfig:{framework:{name:"@storybook/react-webpack5",options:{builder:{useSWC:!0}}}}},skipTasks:["bench"]},"internal/server-webpack5":{name:"Server Webpack5",script:'yarn init -y && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/server-webpack5",renderer:"@storybook/server",builder:"@storybook/builder-webpack5"},isInternal:!0,skipTasks:["bench"]}},benchTemplates={"bench/react-vite-default-ts":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts)",isInternal:!0,modifications:{skipTemplateStories:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic"]},"bench/react-webpack-18-ts":{...baseTemplates["react-webpack/18-ts"],name:"Bench (react-webpack/18-ts)",isInternal:!0,modifications:{skipTemplateStories:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic"]},"bench/react-vite-default-ts-nodocs":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts, no docs)",isInternal:!0,modifications:{skipTemplateStories:!0,disableDocs:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic"]},"bench/react-vite-default-ts-test-build":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts, test-build)",isInternal:!0,modifications:{skipTemplateStories:!0,testBuild:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests"]},"bench/react-webpack-18-ts-test-build":{...baseTemplates["react-webpack/18-ts"],name:"Bench (react-webpack/18-ts, test-build)",isInternal:!0,modifications:{skipTemplateStories:!0,testBuild:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests"]}},allTemplates={...baseTemplates,...internalTemplates,...benchTemplates};var logger25=console,toChoices=c=>({title:allTemplates[c].name,value:c}),sandbox=async({output:outputDirectory,filterValue,init,...options},pkg2)=>{let selectedConfig=allTemplates[filterValue],templateId=selectedConfig?filterValue:null,{packageManager:pkgMgr}=options,packageManager=JsPackageManagerFactory.getPackageManager({force:pkgMgr}),latestVersion=await packageManager.latestVersion("@storybook/cli"),nextVersion=await packageManager.latestVersion("@storybook/cli@next").catch(e=>"0.0.0"),currentVersion=versions_default["@storybook/cli"],isPrerelease=prerelease(currentVersion),isOutdated=lt(currentVersion,isPrerelease?nextVersion:latestVersion),borderColor=isOutdated?"#FC521F":"#F1618C",downloadType=!isOutdated&&init?"after-storybook":"before-storybook",branch=isPrerelease?"next":"main",messages={welcome:`Creating a Storybook ${chalk12.bold(currentVersion)} sandbox..`,notLatest:chalk12.red(dedent`
470
+ `),{borderStyle:"round",padding:1,borderColor}));let packageJson=await packageManager.retrievePackageJson(),toUpgradedDependencies=deps=>Object.keys(deps||{}).filter(dependency=>{if(dependency==="@storybook/preset-create-react-app"){let reactScriptsVersion=packageJson.dependencies["react-scripts"]??packageJson.devDependencies["react-scripts"];if(reactScriptsVersion&&lt(coerce(reactScriptsVersion),"5.0.0"))return !1}return dependency in versions_default}).map(dependency=>`${dependency}@${(!isOutdated||isPrerelease)&&!isCanary?"^":""}${versions_default[dependency]}`),upgradedDependencies=toUpgradedDependencies(packageJson.dependencies),upgradedDevDependencies=toUpgradedDependencies(packageJson.devDependencies);dryRun||(commandLog(`Updating dependencies in ${chalk12.cyan("package.json")}..`),logger.plain(""),upgradedDependencies.length>0&&await packageManager.addDependencies({installAsDevDependencies:!1,skipInstall:!0,packageJson},upgradedDependencies),upgradedDevDependencies.length>0&&await packageManager.addDependencies({installAsDevDependencies:!0,skipInstall:!0,packageJson},upgradedDevDependencies),await packageManager.installDependencies());let automigrationResults;if(skipCheck||(checkVersionConsistency(),automigrationResults=await automigrate({dryRun,yes,packageManager:pkgMgr,configDir})),!options.disableTelemetry){let afterVersion=await getInstalledStorybookVersion(packageManager),{preCheckFailure,fixResults}=automigrationResults||{};telemetry("upgrade",{beforeVersion,afterVersion,...{automigrationResults:preCheckFailure?null:fixResults,automigrationPreCheckFailure:preCheckFailure||null}});}};async function upgrade(options){await withTelemetry("upgrade",{cliOptions:options},()=>doUpgrade(options));}var import_boxen5=__toESM(require_boxen());var baseTemplates={"cra/default-js":{name:"Create React App Latest (Webpack | JavaScript)",script:"npx create-react-app {{beforeDir}}",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"cra/default-ts":{name:"Create React App Latest (Webpack | TypeScript)",script:"npx create-react-app {{beforeDir}} --template typescript",skipTasks:["smoke-test","bench"],expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"}},"nextjs/default-js":{name:"Next.js Latest (Webpack | JavaScript)",script:'yarn create next-app {{beforeDir}} --javascript --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"nextjs/default-ts":{name:"Next.js Latest (Webpack | TypeScript)",script:'yarn create next-app {{beforeDir}} --typescript --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"nextjs/prerelease":{name:"Next.js Prerelease (Webpack | TypeScript)",script:'npx create-next-app@canary {{beforeDir}} --typescript --eslint --tailwind --app --import-alias="@/*" --src-dir',expected:{framework:"@storybook/nextjs",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-js":{name:"React Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template react",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"react-vite/default-ts":{name:"React Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template react-ts",expected:{framework:"@storybook/react-vite",renderer:"@storybook/react",builder:"@storybook/builder-vite"},skipTasks:["bench"]},"react-webpack/18-ts":{name:"React Latest (Webpack | TypeScript)",script:"yarn create webpack5-react {{beforeDir}}",expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"react-webpack/17-ts":{name:"React v17 (Webpack | TypeScript)",script:'yarn create webpack5-react {{beforeDir}} --version-react="17" --version-react-dom="17"',expected:{framework:"@storybook/react-webpack5",renderer:"@storybook/react",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"solid-vite/default-js":{name:"SolidJS Latest (Vite | JavaScript)",script:"npx degit solidjs/templates/js {{beforeDir}}",expected:{framework:"storybook-solidjs-vite",renderer:"storybook-solidjs",builder:"@storybook/builder-vite"},inDevelopment:!0,skipTasks:["e2e-tests-dev","bench"]},"solid-vite/default-ts":{name:"SolidJS Latest (Vite | TypeScript)",script:"npx degit solidjs/templates/ts {{beforeDir}}",expected:{framework:"storybook-solidjs-vite",renderer:"storybook-solidjs",builder:"@storybook/builder-vite"},inDevelopment:!0,skipTasks:["e2e-tests-dev","bench"]},"vue3-vite/default-js":{name:"Vue v3 (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template vue",expected:{framework:"@storybook/vue3-vite",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"vue3-vite/default-ts":{name:"Vue v3 (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template vue-ts",expected:{framework:"@storybook/vue3-vite",renderer:"@storybook/vue3",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"vue2-vite/2.7-js":{name:"Vue v2 (Vite | JavaScript)",script:"npx create-vue@2 {{beforeDir}} --default",expected:{framework:"@storybook/vue-vite",renderer:"@storybook/vue",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"html-webpack/default":{name:"HTML Latest (Webpack | JavaScript)",script:"yarn create webpack5-html {{beforeDir}}",expected:{framework:"@storybook/html-webpack5",renderer:"@storybook/html",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"html-vite/default-js":{name:"HTML Latest (Vite | JavaScript)",script:'npm create vite --yes {{beforeDir}} -- --template vanilla && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/html-vite",renderer:"@storybook/html",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"html-vite/default-ts":{name:"HTML Latest (Vite | TypeScript)",script:'npm create vite --yes {{beforeDir}} -- --template vanilla-ts && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/html-vite",renderer:"@storybook/html",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-vite/default-js":{name:"Svelte Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template svelte",expected:{framework:"@storybook/svelte-vite",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-vite/default-ts":{name:"Svelte Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template svelte-ts",expected:{framework:"@storybook/svelte-vite",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"angular-cli/prerelease":{name:"Angular CLI Prerelease (Webpack | TypeScript)",script:"npx -p @angular/cli@next ng new angular-v16 --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn --ssr",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"angular-cli/default-ts":{name:"Angular CLI Latest (Webpack | TypeScript)",script:"npx -p @angular/cli ng new angular-latest --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn --ssr",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"angular-cli/15-ts":{name:"Angular CLI v15 (Webpack | TypeScript)",script:"npx -p @angular/cli@15 ng new angular-v15 --directory {{beforeDir}} --routing=true --minimal=true --style=scss --strict --skip-git --skip-install --package-manager=yarn",expected:{framework:"@storybook/angular",renderer:"@storybook/angular",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"svelte-kit/skeleton-js":{name:"SvelteKit Latest (Vite | JavaScript)",script:"yarn create svelte-with-args --name=svelte-kit/skeleton-js --directory={{beforeDir}} --template=skeleton --types=null --no-prettier --no-eslint --no-playwright --no-vitest --no-svelte5",expected:{framework:"@storybook/sveltekit",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"svelte-kit/skeleton-ts":{name:"SvelteKit Latest (Vite | TypeScript)",script:"yarn create svelte-with-args --name=svelte-kit/skeleton-ts --directory={{beforeDir}} --template=skeleton --types=typescript --no-prettier --no-eslint --no-playwright --no-vitest --no-svelte5",expected:{framework:"@storybook/sveltekit",renderer:"@storybook/svelte",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"lit-vite/default-js":{name:"Lit Latest (Vite | JavaScript)",script:'npm create vite --yes {{beforeDir}} -- --template lit && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/web-components-vite",renderer:"@storybook/web-components",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"lit-vite/default-ts":{name:"Lit Latest (Vite | TypeScript)",script:'npm create vite --yes {{beforeDir}} -- --template lit-ts && cd {{beforeDir}} && echo "export default {}" > vite.config.js',expected:{framework:"@storybook/web-components-vite",renderer:"@storybook/web-components",builder:"@storybook/builder-vite"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"vue-cli/default-js":{name:"Vue CLI v3 (Webpack | JavaScript)",script:'npx -p @vue/cli vue create {{beforeDir}} --default --packageManager=yarn --force --merge && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/vue3-webpack5",renderer:"@storybook/vue3",builder:"@storybook/builder-webpack5"},skipTasks:["smoke-test","e2e-tests-dev","bench"]},"preact-webpack5/default-js":{name:"Preact CLI Latest (Webpack | JavaScript)",script:'npx preact-cli create default {{beforeDir}} --name preact-app --yarn --no-install && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/preact-webpack5",renderer:"@storybook/preact",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"preact-webpack5/default-ts":{name:"Preact CLI Latest (Webpack | TypeScript)",script:'npx preact-cli create typescript {{beforeDir}} --name preact-app --yarn --no-install && cd {{beforeDir}} && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/preact-webpack5",renderer:"@storybook/preact",builder:"@storybook/builder-webpack5"},skipTasks:["e2e-tests-dev","bench"]},"preact-vite/default-js":{name:"Preact Latest (Vite | JavaScript)",script:"npm create vite --yes {{beforeDir}} -- --template preact",expected:{framework:"@storybook/preact-vite",renderer:"@storybook/preact",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"preact-vite/default-ts":{name:"Preact Latest (Vite | TypeScript)",script:"npm create vite --yes {{beforeDir}} -- --template preact-ts",expected:{framework:"@storybook/preact-vite",renderer:"@storybook/preact",builder:"@storybook/builder-vite"},skipTasks:["e2e-tests-dev","bench"]},"qwik-vite/default-ts":{name:"Qwik CLI Latest (Vite | TypeScript)",script:"yarn create qwik basic {{beforeDir}}",inDevelopment:!0,expected:{framework:"storybook-framework-qwik",renderer:"storybook-framework-qwik",builder:"storybook-framework-qwik"},skipTasks:["e2e-tests","e2e-tests-dev","bench"]}},internalTemplates={"internal/swc-webpack":{...baseTemplates["react-webpack/18-ts"],name:"SWC (react-webpack/18-ts)",isInternal:!0,inDevelopment:!0,modifications:{mainConfig:{framework:{name:"@storybook/react-webpack5",options:{builder:{useSWC:!0}}}}},skipTasks:["bench"]},"internal/server-webpack5":{name:"Server Webpack5",script:'yarn init -y && echo "module.exports = {}" > webpack.config.js',expected:{framework:"@storybook/server-webpack5",renderer:"@storybook/server",builder:"@storybook/builder-webpack5"},isInternal:!0,skipTasks:["bench"]}},benchTemplates={"bench/react-vite-default-ts":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts)",isInternal:!0,modifications:{skipTemplateStories:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic"]},"bench/react-webpack-18-ts":{...baseTemplates["react-webpack/18-ts"],name:"Bench (react-webpack/18-ts)",isInternal:!0,modifications:{skipTemplateStories:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic"]},"bench/react-vite-default-ts-nodocs":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts, no docs)",isInternal:!0,modifications:{skipTemplateStories:!0,disableDocs:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests","chromatic"]},"bench/react-vite-default-ts-test-build":{...baseTemplates["react-vite/default-ts"],name:"Bench (react-vite/default-ts, test-build)",isInternal:!0,modifications:{skipTemplateStories:!0,testBuild:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests"]},"bench/react-webpack-18-ts-test-build":{...baseTemplates["react-webpack/18-ts"],name:"Bench (react-webpack/18-ts, test-build)",isInternal:!0,modifications:{skipTemplateStories:!0,testBuild:!0},skipTasks:["e2e-tests-dev","test-runner","test-runner-dev","e2e-tests"]}},allTemplates={...baseTemplates,...internalTemplates,...benchTemplates};var logger25=console,toChoices=c=>({title:allTemplates[c].name,value:c}),sandbox=async({output:outputDirectory,filterValue,init,...options},pkg2)=>{let selectedConfig=allTemplates[filterValue],templateId=selectedConfig?filterValue:null,{packageManager:pkgMgr}=options,packageManager=JsPackageManagerFactory.getPackageManager({force:pkgMgr}),latestVersion=await packageManager.latestVersion("@storybook/cli"),nextVersion=await packageManager.latestVersion("@storybook/cli@next").catch(e=>"0.0.0"),currentVersion=versions_default["@storybook/cli"],isPrerelease=prerelease(currentVersion),isOutdated=lt(currentVersion,isPrerelease?nextVersion:latestVersion),borderColor=isOutdated?"#FC521F":"#F1618C",downloadType=!isOutdated&&init?"after-storybook":"before-storybook",branch=isPrerelease?"next":"main",messages={welcome:`Creating a Storybook ${chalk12.bold(currentVersion)} sandbox..`,notLatest:chalk12.red(dedent`
471
471
  This version is behind the latest release, which is: ${chalk12.bold(latestVersion)}!
472
472
  You likely ran the init command through npx, which can use a locally cached version, to get the latest please run:
473
473
  ${chalk12.bold("npx storybook@latest sandbox")}
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,getStorybookVersion:()=>getStorybookVersion,isCorePackage:()=>isCorePackage,parseList:()=>parseList,useNpmWarning:()=>useNpmWarning,versions:()=>versions_default});module.exports=__toCommonJS(src_exports);var versions_default={"@storybook/addon-a11y":"7.6.11","@storybook/addon-actions":"7.6.11","@storybook/addon-backgrounds":"7.6.11","@storybook/addon-controls":"7.6.11","@storybook/addon-docs":"7.6.11","@storybook/addon-essentials":"7.6.11","@storybook/addon-highlight":"7.6.11","@storybook/addon-interactions":"7.6.11","@storybook/addon-jest":"7.6.11","@storybook/addon-links":"7.6.11","@storybook/addon-mdx-gfm":"7.6.11","@storybook/addon-measure":"7.6.11","@storybook/addon-outline":"7.6.11","@storybook/addon-themes":"7.6.11","@storybook/addon-storyshots":"7.6.11","@storybook/addon-storyshots-puppeteer":"7.6.11","@storybook/addon-storysource":"7.6.11","@storybook/addon-toolbars":"7.6.11","@storybook/addon-viewport":"7.6.11","@storybook/addons":"7.6.11","@storybook/angular":"7.6.11","@storybook/api":"7.6.11","@storybook/blocks":"7.6.11","@storybook/builder-manager":"7.6.11","@storybook/builder-vite":"7.6.11","@storybook/builder-webpack5":"7.6.11","@storybook/channel-postmessage":"7.6.11","@storybook/channel-websocket":"7.6.11","@storybook/channels":"7.6.11","@storybook/cli":"7.6.11","@storybook/client-api":"7.6.11","@storybook/client-logger":"7.6.11","@storybook/codemod":"7.6.11","@storybook/components":"7.6.11","@storybook/core-client":"7.6.11","@storybook/core-common":"7.6.11","@storybook/core-events":"7.6.11","@storybook/core-server":"7.6.11","@storybook/core-webpack":"7.6.11","@storybook/csf-plugin":"7.6.11","@storybook/csf-tools":"7.6.11","@storybook/docs-tools":"7.6.11","@storybook/ember":"7.6.11","@storybook/html":"7.6.11","@storybook/html-vite":"7.6.11","@storybook/html-webpack5":"7.6.11","@storybook/instrumenter":"7.6.11","@storybook/manager":"7.6.11","@storybook/manager-api":"7.6.11","@storybook/nextjs":"7.6.11","@storybook/node-logger":"7.6.11","@storybook/postinstall":"7.6.11","@storybook/preact":"7.6.11","@storybook/preact-vite":"7.6.11","@storybook/preact-webpack5":"7.6.11","@storybook/preset-create-react-app":"7.6.11","@storybook/preset-html-webpack":"7.6.11","@storybook/preset-preact-webpack":"7.6.11","@storybook/preset-react-webpack":"7.6.11","@storybook/preset-server-webpack":"7.6.11","@storybook/preset-svelte-webpack":"7.6.11","@storybook/preset-vue-webpack":"7.6.11","@storybook/preset-vue3-webpack":"7.6.11","@storybook/preset-web-components-webpack":"7.6.11","@storybook/preview":"7.6.11","@storybook/preview-api":"7.6.11","@storybook/preview-web":"7.6.11","@storybook/react":"7.6.11","@storybook/react-dom-shim":"7.6.11","@storybook/react-vite":"7.6.11","@storybook/react-webpack5":"7.6.11","@storybook/router":"7.6.11","@storybook/server":"7.6.11","@storybook/server-webpack5":"7.6.11","@storybook/source-loader":"7.6.11","@storybook/store":"7.6.11","@storybook/svelte":"7.6.11","@storybook/svelte-vite":"7.6.11","@storybook/svelte-webpack5":"7.6.11","@storybook/sveltekit":"7.6.11","@storybook/telemetry":"7.6.11","@storybook/theming":"7.6.11","@storybook/types":"7.6.11","@storybook/test":"7.6.11","@storybook/vue":"7.6.11","@storybook/vue-vite":"7.6.11","@storybook/vue-webpack5":"7.6.11","@storybook/vue3":"7.6.11","@storybook/vue3-vite":"7.6.11","@storybook/vue3-webpack5":"7.6.11","@storybook/web-components":"7.6.11","@storybook/web-components-vite":"7.6.11","@storybook/web-components-webpack5":"7.6.11",sb:"7.6.11",storybook:"7.6.11"};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_up6=require("find-up");var import_sort=__toESM(require("semver/functions/sort")),import_os=require("os"),import_ts_dedent2=__toESM(require("ts-dedent")),import_find_up2=require("find-up"),import_fs2=require("fs"),import_path3=__toESM(require("path")),import_semver4=__toESM(require("semver")),import_node_logger=require("@storybook/node-logger");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_chalk=__toESM(require("chalk"));var import_fs_extra=__toESM(require("fs-extra"));var import_semver2=require("semver"),import_strip_json_comments=__toESM(require("strip-json-comments")),import_find_up=__toESM(require("find-up"));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="REACT",ProjectType2.REACT_SCRIPTS="REACT_SCRIPTS",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","NX"],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")}
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,getStorybookVersion:()=>getStorybookVersion,isCorePackage:()=>isCorePackage,parseList:()=>parseList,useNpmWarning:()=>useNpmWarning,versions:()=>versions_default});module.exports=__toCommonJS(src_exports);var versions_default={"@storybook/addon-a11y":"7.6.13","@storybook/addon-actions":"7.6.13","@storybook/addon-backgrounds":"7.6.13","@storybook/addon-controls":"7.6.13","@storybook/addon-docs":"7.6.13","@storybook/addon-essentials":"7.6.13","@storybook/addon-highlight":"7.6.13","@storybook/addon-interactions":"7.6.13","@storybook/addon-jest":"7.6.13","@storybook/addon-links":"7.6.13","@storybook/addon-mdx-gfm":"7.6.13","@storybook/addon-measure":"7.6.13","@storybook/addon-outline":"7.6.13","@storybook/addon-themes":"7.6.13","@storybook/addon-storyshots":"7.6.13","@storybook/addon-storyshots-puppeteer":"7.6.13","@storybook/addon-storysource":"7.6.13","@storybook/addon-toolbars":"7.6.13","@storybook/addon-viewport":"7.6.13","@storybook/addons":"7.6.13","@storybook/angular":"7.6.13","@storybook/api":"7.6.13","@storybook/blocks":"7.6.13","@storybook/builder-manager":"7.6.13","@storybook/builder-vite":"7.6.13","@storybook/builder-webpack5":"7.6.13","@storybook/channel-postmessage":"7.6.13","@storybook/channel-websocket":"7.6.13","@storybook/channels":"7.6.13","@storybook/cli":"7.6.13","@storybook/client-api":"7.6.13","@storybook/client-logger":"7.6.13","@storybook/codemod":"7.6.13","@storybook/components":"7.6.13","@storybook/core-client":"7.6.13","@storybook/core-common":"7.6.13","@storybook/core-events":"7.6.13","@storybook/core-server":"7.6.13","@storybook/core-webpack":"7.6.13","@storybook/csf-plugin":"7.6.13","@storybook/csf-tools":"7.6.13","@storybook/docs-tools":"7.6.13","@storybook/ember":"7.6.13","@storybook/html":"7.6.13","@storybook/html-vite":"7.6.13","@storybook/html-webpack5":"7.6.13","@storybook/instrumenter":"7.6.13","@storybook/manager":"7.6.13","@storybook/manager-api":"7.6.13","@storybook/nextjs":"7.6.13","@storybook/node-logger":"7.6.13","@storybook/postinstall":"7.6.13","@storybook/preact":"7.6.13","@storybook/preact-vite":"7.6.13","@storybook/preact-webpack5":"7.6.13","@storybook/preset-create-react-app":"7.6.13","@storybook/preset-html-webpack":"7.6.13","@storybook/preset-preact-webpack":"7.6.13","@storybook/preset-react-webpack":"7.6.13","@storybook/preset-server-webpack":"7.6.13","@storybook/preset-svelte-webpack":"7.6.13","@storybook/preset-vue-webpack":"7.6.13","@storybook/preset-vue3-webpack":"7.6.13","@storybook/preset-web-components-webpack":"7.6.13","@storybook/preview":"7.6.13","@storybook/preview-api":"7.6.13","@storybook/preview-web":"7.6.13","@storybook/react":"7.6.13","@storybook/react-dom-shim":"7.6.13","@storybook/react-vite":"7.6.13","@storybook/react-webpack5":"7.6.13","@storybook/router":"7.6.13","@storybook/server":"7.6.13","@storybook/server-webpack5":"7.6.13","@storybook/source-loader":"7.6.13","@storybook/store":"7.6.13","@storybook/svelte":"7.6.13","@storybook/svelte-vite":"7.6.13","@storybook/svelte-webpack5":"7.6.13","@storybook/sveltekit":"7.6.13","@storybook/telemetry":"7.6.13","@storybook/theming":"7.6.13","@storybook/types":"7.6.13","@storybook/test":"7.6.13","@storybook/vue":"7.6.13","@storybook/vue-vite":"7.6.13","@storybook/vue-webpack5":"7.6.13","@storybook/vue3":"7.6.13","@storybook/vue3-vite":"7.6.13","@storybook/vue3-webpack5":"7.6.13","@storybook/web-components":"7.6.13","@storybook/web-components-vite":"7.6.13","@storybook/web-components-webpack5":"7.6.13",sb:"7.6.13",storybook:"7.6.13"};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_up6=require("find-up");var import_sort=__toESM(require("semver/functions/sort")),import_os=require("os"),import_ts_dedent2=__toESM(require("ts-dedent")),import_find_up2=require("find-up"),import_fs2=require("fs"),import_path3=__toESM(require("path")),import_semver4=__toESM(require("semver")),import_node_logger=require("@storybook/node-logger");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_chalk=__toESM(require("chalk"));var import_fs_extra=__toESM(require("fs-extra"));var import_semver2=require("semver"),import_strip_json_comments=__toESM(require("strip-json-comments")),import_find_up=__toESM(require("find-up"));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="REACT",ProjectType2.REACT_SCRIPTS="REACT_SCRIPTS",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","NX"],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, getStorybookVersion, isCorePackage, parseList, useNpmWarning, versions_default as versions } from './chunk-4DXRA4YG.mjs';
1
+ export { JsPackageManager, JsPackageManagerFactory, createLogStream, getEnvConfig, getPackageDetails, getStorybookVersion, isCorePackage, parseList, useNpmWarning, versions_default as versions } from './chunk-JAPTRNJ6.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/cli",
3
- "version": "7.6.11",
3
+ "version": "7.6.13",
4
4
  "description": "Storybook's CLI - easiest method of adding storybook to your projects",
5
5
  "keywords": [
6
6
  "cli",
@@ -59,14 +59,14 @@
59
59
  "@babel/preset-env": "^7.23.2",
60
60
  "@babel/types": "^7.23.0",
61
61
  "@ndelangen/get-tarball": "^3.0.7",
62
- "@storybook/codemod": "7.6.11",
63
- "@storybook/core-common": "7.6.11",
64
- "@storybook/core-events": "7.6.11",
65
- "@storybook/core-server": "7.6.11",
66
- "@storybook/csf-tools": "7.6.11",
67
- "@storybook/node-logger": "7.6.11",
68
- "@storybook/telemetry": "7.6.11",
69
- "@storybook/types": "7.6.11",
62
+ "@storybook/codemod": "7.6.13",
63
+ "@storybook/core-common": "7.6.13",
64
+ "@storybook/core-events": "7.6.13",
65
+ "@storybook/core-server": "7.6.13",
66
+ "@storybook/csf-tools": "7.6.13",
67
+ "@storybook/node-logger": "7.6.13",
68
+ "@storybook/telemetry": "7.6.13",
69
+ "@storybook/types": "7.6.13",
70
70
  "@types/semver": "^7.3.4",
71
71
  "@yarnpkg/fslib": "2.10.3",
72
72
  "@yarnpkg/libzip": "2.3.0",
@@ -97,7 +97,7 @@
97
97
  "util-deprecate": "^1.0.2"
98
98
  },
99
99
  "devDependencies": {
100
- "@storybook/client-api": "7.6.11",
100
+ "@storybook/client-api": "7.6.13",
101
101
  "@types/cross-spawn": "^6.0.2",
102
102
  "@types/prompts": "^2.0.9",
103
103
  "@types/puppeteer-core": "^2.1.0",