@storybook/core-server 7.0.0-beta.40 → 7.0.0-beta.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropD
17
17
  Could not open ${address} inside a browser. If you're running this command inside a
18
18
  docker container or on a CI, you need to pass the '--ci' flag to prevent opening a
19
19
  browser by default.
20
- `)}})}var import_core_common5=require("@storybook/core-common");var import_express2=require("express"),router=new import_express2.Router;async function getStoryIndexGenerator(features,options,serverChannel){let initializedStoryIndexGenerator=Promise.resolve(void 0);if(features!=null&&features.buildStoriesJson||features!=null&&features.storyStoreV7){let workingDir=process.cwd(),directories={configDir:options.configDir,workingDir},stories=options.presets.apply("stories"),storyIndexers=options.presets.apply("storyIndexers",[]),docsOptions=options.presets.apply("docs",{}),normalizedStories=(0,import_core_common5.normalizeStories)(await stories,directories),generator=new StoryIndexGenerator(normalizedStories,{...directories,storyIndexers:await storyIndexers,docs:await docsOptions,workingDir,storiesV2Compatibility:!(features!=null&&features.breakingChangesV7)&&!(features!=null&&features.storyStoreV7),storyStoreV7:features==null?void 0:features.storyStoreV7});initializedStoryIndexGenerator=generator.initialize().then(()=>generator),useStoriesJson({router,initializedStoryIndexGenerator,normalizedStories,serverChannel,workingDir})}return initializedStoryIndexGenerator}var import_telemetry3=require("@storybook/telemetry");var versionStatus=versionCheck=>versionCheck.error?"error":versionCheck.cached?"cached":"success";async function doTelemetry(core,initializedStoryIndexGenerator,options){core!=null&&core.disableTelemetry||initializedStoryIndexGenerator.then(async generator=>{let storyIndex=await(generator==null?void 0:generator.getIndex()),{versionCheck,versionUpdates}=options,payload={precedingUpgrade:await(0,import_telemetry3.getPrecedingUpgrade)()};storyIndex&&Object.assign(payload,{versionStatus:versionUpdates?versionStatus(versionCheck):"disabled",storyIndex:summarizeIndex(storyIndex)}),(0,import_telemetry3.telemetry)("dev",payload,{configDir:options.configDir})}),core!=null&&core.disableProjectJson||useStorybookMetadata(router,options.configDir)}function getAccessControlMiddleware(crossOriginIsolated){return(req,res,next)=>{res.header("Access-Control-Allow-Origin","*"),res.header("Access-Control-Allow-Headers","Origin, X-Requested-With, Content-Type, Accept"),crossOriginIsolated&&(res.header("Cross-Origin-Opener-Policy","same-origin"),res.header("Cross-Origin-Embedder-Policy","require-corp")),next()}}async function storybookDevServer(options){var _a;let app=(0,import_express3.default)(),[server,features,core]=await Promise.all([getServer(app,options),options.presets.apply("features"),options.presets.apply("core")]),serverChannel=getServerChannel(server),initializedStoryIndexGenerator=getStoryIndexGenerator(features,options,serverChannel);app.use((0,import_compression.default)({level:1})),typeof options.extendServer=="function"&&options.extendServer(server),app.use(getAccessControlMiddleware(core==null?void 0:core.crossOriginIsolated));let usingStatics=useStatics(router,options);getMiddleware(options.configDir)(router),app.use(router);let{port,host}=options,proto=options.https?"https":"http",{address,networkAddress}=getServerAddresses(port,host,proto),listening=new Promise((resolve3,reject)=>{server.listen({port,host},error=>error?reject(error):resolve3())}),builderName=typeof(core==null?void 0:core.builder)=="string"?core.builder:(_a=core==null?void 0:core.builder)==null?void 0:_a.name,[previewBuilder,managerBuilder]=await Promise.all([getPreviewBuilder(builderName,options.configDir),getManagerBuilder()]);options.debugWebpack&&(0,import_core_common6.logConfig)("Preview webpack config",await previewBuilder.getConfig(options));let managerResult=await managerBuilder.start({startTime:process.hrtime(),options,router,server,channel:serverChannel}),previewStarted=Promise.resolve();options.ignorePreview||(previewStarted=previewBuilder.start({startTime:process.hrtime(),options,router,server,channel:serverChannel}).catch(async e=>{throw await(managerBuilder==null?void 0:managerBuilder.bail().catch()),await(previewBuilder==null?void 0:previewBuilder.bail().catch()),e})),router.get("/iframe.html",(req,res,next)=>{previewStarted.catch(()=>{}).then(()=>next())}),Promise.all([initializedStoryIndexGenerator,listening,usingStatics]).then(async()=>{!options.ci&&!options.smokeTest&&options.open&&openInBrowser(host?networkAddress:address)});let previewResult=await previewStarted;return doTelemetry(core,initializedStoryIndexGenerator,options),{previewResult,managerResult,address,networkAddress}}var import_semver=__toESM(require("semver")),getReleaseNotesVersion=version=>{let{major,minor}=import_semver.default.parse(version),{version:releaseNotesVersion}=import_semver.default.coerce(`${major}.${minor}`);return releaseNotesVersion},getReleaseNotesFailedState=version=>({success:!1,currentVersion:getReleaseNotesVersion(version),showOnFirstLaunch:!1});var getReleaseNotesData=async(currentVersionToParse,fileSystemCache)=>{let result;try{let fromCache=await fileSystemCache.get("releaseNotesData",[]).catch(()=>{})||[],releaseNotesVersion=getReleaseNotesVersion(currentVersionToParse),versionHasNotBeenSeen=!fromCache.includes(releaseNotesVersion);versionHasNotBeenSeen&&await fileSystemCache.set("releaseNotesData",[...fromCache,releaseNotesVersion]);let highestVersionSeenInThePast=import_semver.default.sort(fromCache).slice(-1)[0],isUpgrading=!1,isMajorOrMinorDiff=!1;if(highestVersionSeenInThePast){isUpgrading=import_semver.default.gt(releaseNotesVersion,highestVersionSeenInThePast);let versionDiff=import_semver.default.diff(releaseNotesVersion,highestVersionSeenInThePast);isMajorOrMinorDiff=versionDiff==="major"||versionDiff==="minor"}result={success:!0,showOnFirstLaunch:versionHasNotBeenSeen&&!!highestVersionSeenInThePast&&isUpgrading&&isMajorOrMinorDiff,currentVersion:releaseNotesVersion}}catch{result=getReleaseNotesFailedState(currentVersionToParse)}return result};var import_chalk6=__toESM(require("chalk")),import_node_logger10=require("@storybook/node-logger"),import_boxen=__toESM(require("boxen")),import_ts_dedent5=require("ts-dedent"),import_cli_table3=__toESM(require("cli-table3")),import_pretty_hrtime=__toESM(require("pretty-hrtime"));var import_node_fetch=__toESM(require("node-fetch")),import_chalk5=__toESM(require("chalk")),import_node_logger9=require("@storybook/node-logger"),import_semver2=__toESM(require("semver")),import_ts_dedent4=require("ts-dedent"),import_core_common7=require("@storybook/core-common"),{STORYBOOK_VERSION_BASE="https://storybook.js.org",CI}=process.env,updateCheck=async version=>{let result,time=Date.now();try{let fromCache=await import_core_common7.cache.get("lastUpdateCheck",{success:!1,time:0});time-864e5>fromCache.time&&!CI?(result={success:!0,cached:!1,data:await(await Promise.race([(0,import_node_fetch.default)(`${STORYBOOK_VERSION_BASE}/versions.json?current=${version}`),new Promise((res,rej)=>global.setTimeout(rej,1500))])).json(),time},await import_core_common7.cache.set("lastUpdateCheck",result)):result={...fromCache,cached:!0}}catch(error){result={success:!1,cached:!1,error,time}}return result};function createUpdateMessage(updateInfo,version){let updateMessage;try{let upgradeCommand=`npx storybook@latest upgrade ${import_semver2.default.prerelease(updateInfo.data.latest.version)?"--prerelease":""}`.trim();updateMessage=updateInfo.success&&import_semver2.default.lt(version,updateInfo.data.latest.version)?import_ts_dedent4.dedent`
20
+ `)}})}var import_core_common5=require("@storybook/core-common");var import_express2=require("express"),router=new import_express2.Router;async function getStoryIndexGenerator(features,options,serverChannel){let initializedStoryIndexGenerator=Promise.resolve(void 0);if(features!=null&&features.buildStoriesJson||features!=null&&features.storyStoreV7){let workingDir=process.cwd(),directories={configDir:options.configDir,workingDir},stories=options.presets.apply("stories"),storyIndexers=options.presets.apply("storyIndexers",[]),docsOptions=options.presets.apply("docs",{}),normalizedStories=(0,import_core_common5.normalizeStories)(await stories,directories),generator=new StoryIndexGenerator(normalizedStories,{...directories,storyIndexers:await storyIndexers,docs:await docsOptions,workingDir,storiesV2Compatibility:!(features!=null&&features.breakingChangesV7)&&!(features!=null&&features.storyStoreV7),storyStoreV7:features==null?void 0:features.storyStoreV7});initializedStoryIndexGenerator=generator.initialize().then(()=>generator),useStoriesJson({router,initializedStoryIndexGenerator,normalizedStories,serverChannel,workingDir})}return initializedStoryIndexGenerator}var import_telemetry3=require("@storybook/telemetry");var versionStatus=versionCheck=>versionCheck.error?"error":versionCheck.cached?"cached":"success";async function doTelemetry(core,initializedStoryIndexGenerator,options){core!=null&&core.disableTelemetry||initializedStoryIndexGenerator.then(async generator=>{let storyIndex=await(generator==null?void 0:generator.getIndex()),{versionCheck,versionUpdates}=options,payload={precedingUpgrade:await(0,import_telemetry3.getPrecedingUpgrade)()};storyIndex&&Object.assign(payload,{versionStatus:versionUpdates?versionStatus(versionCheck):"disabled",storyIndex:summarizeIndex(storyIndex)}),(0,import_telemetry3.telemetry)("dev",payload,{configDir:options.configDir})}),core!=null&&core.disableProjectJson||useStorybookMetadata(router,options.configDir)}function getAccessControlMiddleware(crossOriginIsolated){return(req,res,next)=>{res.header("Access-Control-Allow-Origin","*"),res.header("Access-Control-Allow-Headers","Origin, X-Requested-With, Content-Type, Accept"),crossOriginIsolated&&(res.header("Cross-Origin-Opener-Policy","same-origin"),res.header("Cross-Origin-Embedder-Policy","require-corp")),next()}}async function storybookDevServer(options){var _a;let app=(0,import_express3.default)(),[server,features,core]=await Promise.all([getServer(app,options),options.presets.apply("features"),options.presets.apply("core")]),serverChannel=getServerChannel(server),indexError,initializedStoryIndexGenerator=getStoryIndexGenerator(features,options,serverChannel).catch(err=>{indexError=err});app.use((0,import_compression.default)({level:1})),typeof options.extendServer=="function"&&options.extendServer(server),app.use(getAccessControlMiddleware(core==null?void 0:core.crossOriginIsolated));let usingStatics=useStatics(router,options);getMiddleware(options.configDir)(router),app.use(router);let{port,host}=options,proto=options.https?"https":"http",{address,networkAddress}=getServerAddresses(port,host,proto),listening=new Promise((resolve3,reject)=>{server.listen({port,host},error=>error?reject(error):resolve3())}),builderName=typeof(core==null?void 0:core.builder)=="string"?core.builder:(_a=core==null?void 0:core.builder)==null?void 0:_a.name,[previewBuilder,managerBuilder]=await Promise.all([getPreviewBuilder(builderName,options.configDir),getManagerBuilder()]);options.debugWebpack&&(0,import_core_common6.logConfig)("Preview webpack config",await previewBuilder.getConfig(options));let managerResult=await managerBuilder.start({startTime:process.hrtime(),options,router,server,channel:serverChannel}),previewStarted=Promise.resolve();if(options.ignorePreview||(previewStarted=previewBuilder.start({startTime:process.hrtime(),options,router,server,channel:serverChannel}).catch(async e=>{throw await(managerBuilder==null?void 0:managerBuilder.bail().catch()),await(previewBuilder==null?void 0:previewBuilder.bail().catch()),e})),router.get("/iframe.html",(req,res,next)=>{previewStarted.catch(()=>{}).then(()=>next())}),await Promise.all([initializedStoryIndexGenerator,listening,usingStatics]).then(async([indexGenerator])=>{indexGenerator&&!options.ci&&!options.smokeTest&&options.open&&openInBrowser(host?networkAddress:address)}),indexError)throw await(managerBuilder==null?void 0:managerBuilder.bail().catch()),await(previewBuilder==null?void 0:previewBuilder.bail().catch()),indexError;let previewResult=await previewStarted;return doTelemetry(core,initializedStoryIndexGenerator,options),{previewResult,managerResult,address,networkAddress}}var import_semver=__toESM(require("semver")),getReleaseNotesVersion=version=>{let{major,minor}=import_semver.default.parse(version),{version:releaseNotesVersion}=import_semver.default.coerce(`${major}.${minor}`);return releaseNotesVersion},getReleaseNotesFailedState=version=>({success:!1,currentVersion:getReleaseNotesVersion(version),showOnFirstLaunch:!1});var getReleaseNotesData=async(currentVersionToParse,fileSystemCache)=>{let result;try{let fromCache=await fileSystemCache.get("releaseNotesData",[]).catch(()=>{})||[],releaseNotesVersion=getReleaseNotesVersion(currentVersionToParse),versionHasNotBeenSeen=!fromCache.includes(releaseNotesVersion);versionHasNotBeenSeen&&await fileSystemCache.set("releaseNotesData",[...fromCache,releaseNotesVersion]);let highestVersionSeenInThePast=import_semver.default.sort(fromCache).slice(-1)[0],isUpgrading=!1,isMajorOrMinorDiff=!1;if(highestVersionSeenInThePast){isUpgrading=import_semver.default.gt(releaseNotesVersion,highestVersionSeenInThePast);let versionDiff=import_semver.default.diff(releaseNotesVersion,highestVersionSeenInThePast);isMajorOrMinorDiff=versionDiff==="major"||versionDiff==="minor"}result={success:!0,showOnFirstLaunch:versionHasNotBeenSeen&&!!highestVersionSeenInThePast&&isUpgrading&&isMajorOrMinorDiff,currentVersion:releaseNotesVersion}}catch{result=getReleaseNotesFailedState(currentVersionToParse)}return result};var import_chalk6=__toESM(require("chalk")),import_node_logger10=require("@storybook/node-logger"),import_boxen=__toESM(require("boxen")),import_ts_dedent5=require("ts-dedent"),import_cli_table3=__toESM(require("cli-table3")),import_pretty_hrtime=__toESM(require("pretty-hrtime"));var import_node_fetch=__toESM(require("node-fetch")),import_chalk5=__toESM(require("chalk")),import_node_logger9=require("@storybook/node-logger"),import_semver2=__toESM(require("semver")),import_ts_dedent4=require("ts-dedent"),import_core_common7=require("@storybook/core-common"),{STORYBOOK_VERSION_BASE="https://storybook.js.org",CI}=process.env,updateCheck=async version=>{let result,time=Date.now();try{let fromCache=await import_core_common7.cache.get("lastUpdateCheck",{success:!1,time:0});time-864e5>fromCache.time&&!CI?(result={success:!0,cached:!1,data:await(await Promise.race([(0,import_node_fetch.default)(`${STORYBOOK_VERSION_BASE}/versions.json?current=${version}`),new Promise((res,rej)=>global.setTimeout(rej,1500))])).json(),time},await import_core_common7.cache.set("lastUpdateCheck",result)):result={...fromCache,cached:!0}}catch(error){result={success:!1,cached:!1,error,time}}return result};function createUpdateMessage(updateInfo,version){let updateMessage;try{let upgradeCommand=`npx storybook@latest upgrade ${import_semver2.default.prerelease(updateInfo.data.latest.version)?"--prerelease":""}`.trim();updateMessage=updateInfo.success&&import_semver2.default.lt(version,updateInfo.data.latest.version)?import_ts_dedent4.dedent`
21
21
  ${import_node_logger9.colors.orange(`A new version (${import_chalk5.default.bold(updateInfo.data.latest.version)}) is available!`)}
22
22
 
23
23
  ${import_chalk5.default.gray("Upgrade now:")} ${import_node_logger9.colors.green(upgradeCommand)}
package/dist/index.mjs CHANGED
@@ -8,7 +8,7 @@ import{parseStaticDir,useStatics}from"./chunk-GEVOWSTY.mjs";import{__require}fro
8
8
  Could not open ${address} inside a browser. If you're running this command inside a
9
9
  docker container or on a CI, you need to pass the '--ci' flag to prevent opening a
10
10
  browser by default.
11
- `)}})}import{normalizeStories as normalizeStories2}from"@storybook/core-common";import{Router}from"express";var router=new Router;async function getStoryIndexGenerator(features,options,serverChannel){let initializedStoryIndexGenerator=Promise.resolve(void 0);if(features?.buildStoriesJson||features?.storyStoreV7){let workingDir=process.cwd(),directories={configDir:options.configDir,workingDir},stories=options.presets.apply("stories"),storyIndexers=options.presets.apply("storyIndexers",[]),docsOptions=options.presets.apply("docs",{}),normalizedStories=normalizeStories2(await stories,directories),generator=new StoryIndexGenerator(normalizedStories,{...directories,storyIndexers:await storyIndexers,docs:await docsOptions,workingDir,storiesV2Compatibility:!features?.breakingChangesV7&&!features?.storyStoreV7,storyStoreV7:features?.storyStoreV7});initializedStoryIndexGenerator=generator.initialize().then(()=>generator),useStoriesJson({router,initializedStoryIndexGenerator,normalizedStories,serverChannel,workingDir})}return initializedStoryIndexGenerator}import{telemetry as telemetry2,getPrecedingUpgrade as getPrecedingUpgrade2}from"@storybook/telemetry";var versionStatus=versionCheck=>versionCheck.error?"error":versionCheck.cached?"cached":"success";async function doTelemetry(core,initializedStoryIndexGenerator,options){core?.disableTelemetry||initializedStoryIndexGenerator.then(async generator=>{let storyIndex=await generator?.getIndex(),{versionCheck,versionUpdates}=options,payload={precedingUpgrade:await getPrecedingUpgrade2()};storyIndex&&Object.assign(payload,{versionStatus:versionUpdates?versionStatus(versionCheck):"disabled",storyIndex:summarizeIndex(storyIndex)}),telemetry2("dev",payload,{configDir:options.configDir})}),core?.disableProjectJson||useStorybookMetadata(router,options.configDir)}function getAccessControlMiddleware(crossOriginIsolated){return(req,res,next)=>{res.header("Access-Control-Allow-Origin","*"),res.header("Access-Control-Allow-Headers","Origin, X-Requested-With, Content-Type, Accept"),crossOriginIsolated&&(res.header("Cross-Origin-Opener-Policy","same-origin"),res.header("Cross-Origin-Embedder-Policy","require-corp")),next()}}async function storybookDevServer(options){let app=express(),[server,features,core]=await Promise.all([getServer(app,options),options.presets.apply("features"),options.presets.apply("core")]),serverChannel=getServerChannel(server),initializedStoryIndexGenerator=getStoryIndexGenerator(features,options,serverChannel);app.use(compression({level:1})),typeof options.extendServer=="function"&&options.extendServer(server),app.use(getAccessControlMiddleware(core?.crossOriginIsolated));let usingStatics=useStatics(router,options);getMiddleware(options.configDir)(router),app.use(router);let{port,host}=options,proto=options.https?"https":"http",{address,networkAddress}=getServerAddresses(port,host,proto),listening=new Promise((resolve3,reject)=>{server.listen({port,host},error=>error?reject(error):resolve3())}),builderName=typeof core?.builder=="string"?core.builder:core?.builder?.name,[previewBuilder,managerBuilder]=await Promise.all([getPreviewBuilder(builderName,options.configDir),getManagerBuilder()]);options.debugWebpack&&logConfig2("Preview webpack config",await previewBuilder.getConfig(options));let managerResult=await managerBuilder.start({startTime:process.hrtime(),options,router,server,channel:serverChannel}),previewStarted=Promise.resolve();options.ignorePreview||(previewStarted=previewBuilder.start({startTime:process.hrtime(),options,router,server,channel:serverChannel}).catch(async e=>{throw await managerBuilder?.bail().catch(),await previewBuilder?.bail().catch(),e})),router.get("/iframe.html",(req,res,next)=>{previewStarted.catch(()=>{}).then(()=>next())}),Promise.all([initializedStoryIndexGenerator,listening,usingStatics]).then(async()=>{!options.ci&&!options.smokeTest&&options.open&&openInBrowser(host?networkAddress:address)});let previewResult=await previewStarted;return doTelemetry(core,initializedStoryIndexGenerator,options),{previewResult,managerResult,address,networkAddress}}import semver from"semver";var getReleaseNotesVersion=version=>{let{major,minor}=semver.parse(version),{version:releaseNotesVersion}=semver.coerce(`${major}.${minor}`);return releaseNotesVersion},getReleaseNotesFailedState=version=>({success:!1,currentVersion:getReleaseNotesVersion(version),showOnFirstLaunch:!1});var getReleaseNotesData=async(currentVersionToParse,fileSystemCache)=>{let result;try{let fromCache=await fileSystemCache.get("releaseNotesData",[]).catch(()=>{})||[],releaseNotesVersion=getReleaseNotesVersion(currentVersionToParse),versionHasNotBeenSeen=!fromCache.includes(releaseNotesVersion);versionHasNotBeenSeen&&await fileSystemCache.set("releaseNotesData",[...fromCache,releaseNotesVersion]);let highestVersionSeenInThePast=semver.sort(fromCache).slice(-1)[0],isUpgrading=!1,isMajorOrMinorDiff=!1;if(highestVersionSeenInThePast){isUpgrading=semver.gt(releaseNotesVersion,highestVersionSeenInThePast);let versionDiff=semver.diff(releaseNotesVersion,highestVersionSeenInThePast);isMajorOrMinorDiff=versionDiff==="major"||versionDiff==="minor"}result={success:!0,showOnFirstLaunch:versionHasNotBeenSeen&&!!highestVersionSeenInThePast&&isUpgrading&&isMajorOrMinorDiff,currentVersion:releaseNotesVersion}}catch{result=getReleaseNotesFailedState(currentVersionToParse)}return result};import chalk5 from"chalk";import{colors as colors2}from"@storybook/node-logger";import boxen from"boxen";import{dedent as dedent4}from"ts-dedent";import Table from"cli-table3";import prettyTime from"pretty-hrtime";import fetch from"node-fetch";import chalk4 from"chalk";import{colors}from"@storybook/node-logger";import semver2 from"semver";import{dedent as dedent3}from"ts-dedent";import{cache}from"@storybook/core-common";var{STORYBOOK_VERSION_BASE="https://storybook.js.org",CI}=process.env,updateCheck=async version=>{let result,time=Date.now();try{let fromCache=await cache.get("lastUpdateCheck",{success:!1,time:0});time-864e5>fromCache.time&&!CI?(result={success:!0,cached:!1,data:await(await Promise.race([fetch(`${STORYBOOK_VERSION_BASE}/versions.json?current=${version}`),new Promise((res,rej)=>global.setTimeout(rej,1500))])).json(),time},await cache.set("lastUpdateCheck",result)):result={...fromCache,cached:!0}}catch(error){result={success:!1,cached:!1,error,time}}return result};function createUpdateMessage(updateInfo,version){let updateMessage;try{let upgradeCommand=`npx storybook@latest upgrade ${semver2.prerelease(updateInfo.data.latest.version)?"--prerelease":""}`.trim();updateMessage=updateInfo.success&&semver2.lt(version,updateInfo.data.latest.version)?dedent3`
11
+ `)}})}import{normalizeStories as normalizeStories2}from"@storybook/core-common";import{Router}from"express";var router=new Router;async function getStoryIndexGenerator(features,options,serverChannel){let initializedStoryIndexGenerator=Promise.resolve(void 0);if(features?.buildStoriesJson||features?.storyStoreV7){let workingDir=process.cwd(),directories={configDir:options.configDir,workingDir},stories=options.presets.apply("stories"),storyIndexers=options.presets.apply("storyIndexers",[]),docsOptions=options.presets.apply("docs",{}),normalizedStories=normalizeStories2(await stories,directories),generator=new StoryIndexGenerator(normalizedStories,{...directories,storyIndexers:await storyIndexers,docs:await docsOptions,workingDir,storiesV2Compatibility:!features?.breakingChangesV7&&!features?.storyStoreV7,storyStoreV7:features?.storyStoreV7});initializedStoryIndexGenerator=generator.initialize().then(()=>generator),useStoriesJson({router,initializedStoryIndexGenerator,normalizedStories,serverChannel,workingDir})}return initializedStoryIndexGenerator}import{telemetry as telemetry2,getPrecedingUpgrade as getPrecedingUpgrade2}from"@storybook/telemetry";var versionStatus=versionCheck=>versionCheck.error?"error":versionCheck.cached?"cached":"success";async function doTelemetry(core,initializedStoryIndexGenerator,options){core?.disableTelemetry||initializedStoryIndexGenerator.then(async generator=>{let storyIndex=await generator?.getIndex(),{versionCheck,versionUpdates}=options,payload={precedingUpgrade:await getPrecedingUpgrade2()};storyIndex&&Object.assign(payload,{versionStatus:versionUpdates?versionStatus(versionCheck):"disabled",storyIndex:summarizeIndex(storyIndex)}),telemetry2("dev",payload,{configDir:options.configDir})}),core?.disableProjectJson||useStorybookMetadata(router,options.configDir)}function getAccessControlMiddleware(crossOriginIsolated){return(req,res,next)=>{res.header("Access-Control-Allow-Origin","*"),res.header("Access-Control-Allow-Headers","Origin, X-Requested-With, Content-Type, Accept"),crossOriginIsolated&&(res.header("Cross-Origin-Opener-Policy","same-origin"),res.header("Cross-Origin-Embedder-Policy","require-corp")),next()}}async function storybookDevServer(options){let app=express(),[server,features,core]=await Promise.all([getServer(app,options),options.presets.apply("features"),options.presets.apply("core")]),serverChannel=getServerChannel(server),indexError,initializedStoryIndexGenerator=getStoryIndexGenerator(features,options,serverChannel).catch(err=>{indexError=err});app.use(compression({level:1})),typeof options.extendServer=="function"&&options.extendServer(server),app.use(getAccessControlMiddleware(core?.crossOriginIsolated));let usingStatics=useStatics(router,options);getMiddleware(options.configDir)(router),app.use(router);let{port,host}=options,proto=options.https?"https":"http",{address,networkAddress}=getServerAddresses(port,host,proto),listening=new Promise((resolve3,reject)=>{server.listen({port,host},error=>error?reject(error):resolve3())}),builderName=typeof core?.builder=="string"?core.builder:core?.builder?.name,[previewBuilder,managerBuilder]=await Promise.all([getPreviewBuilder(builderName,options.configDir),getManagerBuilder()]);options.debugWebpack&&logConfig2("Preview webpack config",await previewBuilder.getConfig(options));let managerResult=await managerBuilder.start({startTime:process.hrtime(),options,router,server,channel:serverChannel}),previewStarted=Promise.resolve();if(options.ignorePreview||(previewStarted=previewBuilder.start({startTime:process.hrtime(),options,router,server,channel:serverChannel}).catch(async e=>{throw await managerBuilder?.bail().catch(),await previewBuilder?.bail().catch(),e})),router.get("/iframe.html",(req,res,next)=>{previewStarted.catch(()=>{}).then(()=>next())}),await Promise.all([initializedStoryIndexGenerator,listening,usingStatics]).then(async([indexGenerator])=>{indexGenerator&&!options.ci&&!options.smokeTest&&options.open&&openInBrowser(host?networkAddress:address)}),indexError)throw await managerBuilder?.bail().catch(),await previewBuilder?.bail().catch(),indexError;let previewResult=await previewStarted;return doTelemetry(core,initializedStoryIndexGenerator,options),{previewResult,managerResult,address,networkAddress}}import semver from"semver";var getReleaseNotesVersion=version=>{let{major,minor}=semver.parse(version),{version:releaseNotesVersion}=semver.coerce(`${major}.${minor}`);return releaseNotesVersion},getReleaseNotesFailedState=version=>({success:!1,currentVersion:getReleaseNotesVersion(version),showOnFirstLaunch:!1});var getReleaseNotesData=async(currentVersionToParse,fileSystemCache)=>{let result;try{let fromCache=await fileSystemCache.get("releaseNotesData",[]).catch(()=>{})||[],releaseNotesVersion=getReleaseNotesVersion(currentVersionToParse),versionHasNotBeenSeen=!fromCache.includes(releaseNotesVersion);versionHasNotBeenSeen&&await fileSystemCache.set("releaseNotesData",[...fromCache,releaseNotesVersion]);let highestVersionSeenInThePast=semver.sort(fromCache).slice(-1)[0],isUpgrading=!1,isMajorOrMinorDiff=!1;if(highestVersionSeenInThePast){isUpgrading=semver.gt(releaseNotesVersion,highestVersionSeenInThePast);let versionDiff=semver.diff(releaseNotesVersion,highestVersionSeenInThePast);isMajorOrMinorDiff=versionDiff==="major"||versionDiff==="minor"}result={success:!0,showOnFirstLaunch:versionHasNotBeenSeen&&!!highestVersionSeenInThePast&&isUpgrading&&isMajorOrMinorDiff,currentVersion:releaseNotesVersion}}catch{result=getReleaseNotesFailedState(currentVersionToParse)}return result};import chalk5 from"chalk";import{colors as colors2}from"@storybook/node-logger";import boxen from"boxen";import{dedent as dedent4}from"ts-dedent";import Table from"cli-table3";import prettyTime from"pretty-hrtime";import fetch from"node-fetch";import chalk4 from"chalk";import{colors}from"@storybook/node-logger";import semver2 from"semver";import{dedent as dedent3}from"ts-dedent";import{cache}from"@storybook/core-common";var{STORYBOOK_VERSION_BASE="https://storybook.js.org",CI}=process.env,updateCheck=async version=>{let result,time=Date.now();try{let fromCache=await cache.get("lastUpdateCheck",{success:!1,time:0});time-864e5>fromCache.time&&!CI?(result={success:!0,cached:!1,data:await(await Promise.race([fetch(`${STORYBOOK_VERSION_BASE}/versions.json?current=${version}`),new Promise((res,rej)=>global.setTimeout(rej,1500))])).json(),time},await cache.set("lastUpdateCheck",result)):result={...fromCache,cached:!0}}catch(error){result={success:!1,cached:!1,error,time}}return result};function createUpdateMessage(updateInfo,version){let updateMessage;try{let upgradeCommand=`npx storybook@latest upgrade ${semver2.prerelease(updateInfo.data.latest.version)?"--prerelease":""}`.trim();updateMessage=updateInfo.success&&semver2.lt(version,updateInfo.data.latest.version)?dedent3`
12
12
  ${colors.orange(`A new version (${chalk4.bold(updateInfo.data.latest.version)}) is available!`)}
13
13
 
14
14
  ${chalk4.gray("Upgrade now:")} ${colors.green(upgradeCommand)}
@@ -1,6 +1,7 @@
1
1
  import * as _storybook_csf_tools from '@storybook/csf-tools';
2
- import { Options, CoreConfig, StorybookConfig, StoryIndexer, IndexerOptions, CLIOptions } from '@storybook/types';
2
+ import { PresetPropertyFn, Options, CoreConfig, StorybookConfig, StoryIndexer, IndexerOptions, CLIOptions } from '@storybook/types';
3
3
 
4
+ declare const staticDirs: PresetPropertyFn<'staticDirs'>;
4
5
  declare const favicon: (value: string, options: Pick<Options, 'presets' | 'configDir' | 'staticDir'>) => Promise<string>;
5
6
  declare const babel: (_: unknown, options: Options) => Promise<{}>;
6
7
  declare const title: (previous: string, options: Options) => string | false;
@@ -34,4 +35,4 @@ declare const storyIndexers: (indexers?: StoryIndexer[]) => Promise<(StoryIndexe
34
35
  declare const frameworkOptions: (_: never, options: Options) => Promise<Record<string, any> | null>;
35
36
  declare const docs: (docsOptions: StorybookConfig['docs'], { docs: docsMode }: CLIOptions) => StorybookConfig['docs'];
36
37
 
37
- export { babel, core, docs, env, favicon, features, frameworkOptions, logLevel, previewAnnotations, previewBody, previewHead, storyIndexers, title, typescript };
38
+ export { babel, core, docs, env, favicon, features, frameworkOptions, logLevel, previewAnnotations, previewBody, previewHead, staticDirs, storyIndexers, title, typescript };
@@ -1,8 +1,8 @@
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 common_preset_exports={};__export(common_preset_exports,{babel:()=>babel,core:()=>core,docs:()=>docs,env:()=>env,favicon:()=>favicon2,features:()=>features,frameworkOptions:()=>frameworkOptions,logLevel:()=>logLevel,previewAnnotations:()=>previewAnnotations,previewBody:()=>previewBody,previewHead:()=>previewHead,storyIndexers:()=>storyIndexers,title:()=>title,typescript:()=>typescript});module.exports=__toCommonJS(common_preset_exports);var import_fs_extra2=require("fs-extra"),import_node_logger2=require("@storybook/node-logger"),import_core_common2=require("@storybook/core-common"),import_csf_tools=require("@storybook/csf-tools"),import_path2=require("path"),import_ts_dedent2=require("ts-dedent");var import_node_logger=require("@storybook/node-logger"),import_core_common=require("@storybook/core-common"),import_chalk=__toESM(require("chalk")),import_express=__toESM(require("express")),import_fs_extra=require("fs-extra"),import_path=__toESM(require("path")),import_serve_favicon=__toESM(require("serve-favicon")),import_ts_dedent=require("ts-dedent");var parseStaticDir=async arg=>{let lastColonIndex=arg.lastIndexOf(":"),isWindowsRawDirOnly=import_path.default.win32.isAbsolute(arg)&&lastColonIndex===1,splitIndex=lastColonIndex!==-1&&!isWindowsRawDirOnly?lastColonIndex:arg.length,target=(arg.substring(splitIndex+1)||"/").split(import_path.default.sep).join(import_path.default.posix.sep),rawDir=arg.substring(0,splitIndex),staticDir=import_path.default.isAbsolute(rawDir)?rawDir:`./${rawDir}`,staticPath=import_path.default.resolve(staticDir),targetDir=target.replace(/^\/?/,"./"),targetEndpoint=targetDir.substring(1);if(!await(0,import_fs_extra.pathExists)(staticPath))throw new Error((0,import_ts_dedent.dedent)(import_chalk.default`
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 common_preset_exports={};__export(common_preset_exports,{babel:()=>babel,core:()=>core,docs:()=>docs,env:()=>env,favicon:()=>favicon2,features:()=>features,frameworkOptions:()=>frameworkOptions,logLevel:()=>logLevel,previewAnnotations:()=>previewAnnotations,previewBody:()=>previewBody,previewHead:()=>previewHead,staticDirs:()=>staticDirs,storyIndexers:()=>storyIndexers,title:()=>title,typescript:()=>typescript});module.exports=__toCommonJS(common_preset_exports);var import_fs_extra2=require("fs-extra"),import_node_logger2=require("@storybook/node-logger"),import_core_common2=require("@storybook/core-common"),import_csf_tools=require("@storybook/csf-tools"),import_path2=require("path"),import_ts_dedent2=require("ts-dedent");var import_node_logger=require("@storybook/node-logger"),import_core_common=require("@storybook/core-common"),import_chalk=__toESM(require("chalk")),import_express=__toESM(require("express")),import_fs_extra=require("fs-extra"),import_path=__toESM(require("path")),import_serve_favicon=__toESM(require("serve-favicon")),import_ts_dedent=require("ts-dedent");var parseStaticDir=async arg=>{let lastColonIndex=arg.lastIndexOf(":"),isWindowsRawDirOnly=import_path.default.win32.isAbsolute(arg)&&lastColonIndex===1,splitIndex=lastColonIndex!==-1&&!isWindowsRawDirOnly?lastColonIndex:arg.length,target=(arg.substring(splitIndex+1)||"/").split(import_path.default.sep).join(import_path.default.posix.sep),rawDir=arg.substring(0,splitIndex),staticDir=import_path.default.isAbsolute(rawDir)?rawDir:`./${rawDir}`,staticPath=import_path.default.resolve(staticDir),targetDir=target.replace(/^\/?/,"./"),targetEndpoint=targetDir.substring(1);if(!await(0,import_fs_extra.pathExists)(staticPath))throw new Error((0,import_ts_dedent.dedent)(import_chalk.default`
2
2
  Failed to load static files, no such directory: {cyan ${staticPath}}
3
3
  Make sure this directory exists, or omit the {bold -s (--static-dir)} option.
4
- `));return{staticDir,staticPath,targetDir,targetEndpoint}};var defaultFavicon=require.resolve("@storybook/core-server/public/favicon.svg"),favicon2=async(value,options)=>{if(value)return value;let staticDirs=await options.presets.apply("staticDirs"),statics=staticDirs?staticDirs.map(dir=>typeof dir=="string"?dir:`${dir.from}:${dir.to}`):options.staticDir;if(statics&&statics.length>0){let flatlist=(await Promise.all(statics.map(async dir=>{let results=[],relativeDir=staticDirs?(0,import_core_common2.getDirectoryFromWorkingDir)({configDir:options.configDir,workingDir:process.cwd(),directory:dir}):dir,{staticPath,targetEndpoint}=await parseStaticDir(relativeDir);if(targetEndpoint==="/"){let path2=(0,import_path2.join)(staticPath,"favicon.svg");await(0,import_fs_extra2.pathExists)(path2)&&results.push(path2)}if(targetEndpoint==="/"){let path2=(0,import_path2.join)(staticPath,"favicon.ico");await(0,import_fs_extra2.pathExists)(path2)&&results.push(path2)}return results}))).reduce((l1,l2)=>l1.concat(l2),[]);return flatlist.length>1&&import_node_logger2.logger.warn(import_ts_dedent2.dedent`
4
+ `));return{staticDir,staticPath,targetDir,targetEndpoint}};var defaultFavicon=require.resolve("@storybook/core-server/public/favicon.svg"),staticDirs=async(values=[])=>[{from:(0,import_path2.join)((0,import_path2.dirname)(require.resolve("@storybook/manager/package.json")),"static"),to:"/sb-manager-assets"},...values],favicon2=async(value,options)=>{if(value)return value;let staticDirsValue=await options.presets.apply("staticDirs"),statics=staticDirsValue?staticDirsValue.map(dir=>typeof dir=="string"?dir:`${dir.from}:${dir.to}`):options.staticDir;if(statics&&statics.length>0){let flatlist=(await Promise.all(statics.map(async dir=>{let results=[],relativeDir=staticDirsValue?(0,import_core_common2.getDirectoryFromWorkingDir)({configDir:options.configDir,workingDir:process.cwd(),directory:dir}):dir,{staticPath,targetEndpoint}=await parseStaticDir(relativeDir);if(targetEndpoint==="/"){let path2=(0,import_path2.join)(staticPath,"favicon.svg");await(0,import_fs_extra2.pathExists)(path2)&&results.push(path2)}if(targetEndpoint==="/"){let path2=(0,import_path2.join)(staticPath,"favicon.ico");await(0,import_fs_extra2.pathExists)(path2)&&results.push(path2)}return results}))).reduce((l1,l2)=>l1.concat(l2),[]);return flatlist.length>1&&import_node_logger2.logger.warn(import_ts_dedent2.dedent`
5
5
  Looks like multiple favicons were detected. Using the first one.
6
6
 
7
7
  ${flatlist.join(", ")}
8
- `),flatlist[0]||defaultFavicon}return defaultFavicon},babel=async(_,options)=>{let{presets}=options;return presets.apply("babelDefault",{},options)},title=(previous,options)=>previous||options.packageJson.name||!1,logLevel=(previous,options)=>previous||options.loglevel||"info",previewHead=async(base,{configDir,presets})=>{let interpolations=await presets.apply("env");return(0,import_core_common2.getPreviewHeadTemplate)(configDir,interpolations)},env=async()=>(0,import_core_common2.loadEnvs)({production:!0}).raw,previewBody=async(base,{configDir,presets})=>{let interpolations=await presets.apply("env");return(0,import_core_common2.getPreviewBodyTemplate)(configDir,interpolations)},typescript=()=>({check:!1,reactDocgen:"react-docgen-typescript",reactDocgenTypescriptOptions:{shouldExtractLiteralValuesFromEnum:!0,shouldRemoveUndefinedFromOptional:!0,propFilter:prop=>prop.parent?!/node_modules/.test(prop.parent.fileName):!0,savePropValueAsString:!0}}),optionalEnvToBoolean=input=>{if(input!==void 0){if(input.toUpperCase()==="FALSE")return!1;if(input.toUpperCase()==="TRUE"||typeof input=="string")return!0}},core=async(existing,options)=>({...existing,disableTelemetry:options.disableTelemetry===!0,enableCrashReports:options.enableCrashReports||optionalEnvToBoolean(process.env.STORYBOOK_ENABLE_CRASH_REPORTS)}),previewAnnotations=async(base,options)=>{let config=await options.presets.apply("config",[],options);return config.length>0&&(0,import_node_logger2.deprecate)("You (or an addon) are using the 'config' preset field. This has been replaced by 'previewAnnotations' and will be removed in 8.0"),[...config,...base]},features=async existing=>({...existing,warnOnLegacyHierarchySeparator:!0,buildStoriesJson:!1,storyStoreV7:!0,breakingChangesV7:!0,interactionsDebugger:!1,argTypeTargetsV7:!0}),storyIndexers=async indexers=>[{test:/(stories|story)\.[tj]sx?$/,indexer:async(fileName,opts)=>{let code=(await(0,import_fs_extra2.readFile)(fileName,"utf-8")).toString();return(0,import_csf_tools.loadCsf)(code,{...opts,fileName}).parse()}},...indexers||[]],frameworkOptions=async(_,options)=>{let config=await options.presets.apply("framework");return typeof config=="string"?{}:typeof config>"u"?null:config.options},docs=(docsOptions,{docs:docsMode})=>({...docsOptions,docsMode});0&&(module.exports={babel,core,docs,env,favicon,features,frameworkOptions,logLevel,previewAnnotations,previewBody,previewHead,storyIndexers,title,typescript});
8
+ `),flatlist[0]||defaultFavicon}return defaultFavicon},babel=async(_,options)=>{let{presets}=options;return presets.apply("babelDefault",{},options)},title=(previous,options)=>previous||options.packageJson.name||!1,logLevel=(previous,options)=>previous||options.loglevel||"info",previewHead=async(base,{configDir,presets})=>{let interpolations=await presets.apply("env");return(0,import_core_common2.getPreviewHeadTemplate)(configDir,interpolations)},env=async()=>(0,import_core_common2.loadEnvs)({production:!0}).raw,previewBody=async(base,{configDir,presets})=>{let interpolations=await presets.apply("env");return(0,import_core_common2.getPreviewBodyTemplate)(configDir,interpolations)},typescript=()=>({check:!1,reactDocgen:"react-docgen-typescript",reactDocgenTypescriptOptions:{shouldExtractLiteralValuesFromEnum:!0,shouldRemoveUndefinedFromOptional:!0,propFilter:prop=>prop.parent?!/node_modules/.test(prop.parent.fileName):!0,savePropValueAsString:!0}}),optionalEnvToBoolean=input=>{if(input!==void 0){if(input.toUpperCase()==="FALSE")return!1;if(input.toUpperCase()==="TRUE"||typeof input=="string")return!0}},core=async(existing,options)=>({...existing,disableTelemetry:options.disableTelemetry===!0,enableCrashReports:options.enableCrashReports||optionalEnvToBoolean(process.env.STORYBOOK_ENABLE_CRASH_REPORTS)}),previewAnnotations=async(base,options)=>{let config=await options.presets.apply("config",[],options);return config.length>0&&(0,import_node_logger2.deprecate)("You (or an addon) are using the 'config' preset field. This has been replaced by 'previewAnnotations' and will be removed in 8.0"),[...config,...base]},features=async existing=>({...existing,warnOnLegacyHierarchySeparator:!0,buildStoriesJson:!1,storyStoreV7:!0,breakingChangesV7:!0,interactionsDebugger:!1,argTypeTargetsV7:!0}),storyIndexers=async indexers=>[{test:/(stories|story)\.[tj]sx?$/,indexer:async(fileName,opts)=>{let code=(await(0,import_fs_extra2.readFile)(fileName,"utf-8")).toString();return(0,import_csf_tools.loadCsf)(code,{...opts,fileName}).parse()}},...indexers||[]],frameworkOptions=async(_,options)=>{let config=await options.presets.apply("framework");return typeof config=="string"?{}:typeof config>"u"?null:config.options},docs=(docsOptions,{docs:docsMode})=>({...docsOptions,docsMode});0&&(module.exports={babel,core,docs,env,favicon,features,frameworkOptions,logLevel,previewAnnotations,previewBody,previewHead,staticDirs,storyIndexers,title,typescript});
@@ -1,5 +1,5 @@
1
- import{parseStaticDir}from"../chunk-GEVOWSTY.mjs";import{__require}from"../chunk-R4NKYYJA.mjs";import{pathExists,readFile}from"fs-extra";import{deprecate,logger}from"@storybook/node-logger";import{getDirectoryFromWorkingDir,getPreviewBodyTemplate,getPreviewHeadTemplate,loadEnvs}from"@storybook/core-common";import{loadCsf}from"@storybook/csf-tools";import{join}from"path";import{dedent}from"ts-dedent";var defaultFavicon=__require.resolve("@storybook/core-server/public/favicon.svg"),favicon=async(value,options)=>{if(value)return value;let staticDirs=await options.presets.apply("staticDirs"),statics=staticDirs?staticDirs.map(dir=>typeof dir=="string"?dir:`${dir.from}:${dir.to}`):options.staticDir;if(statics&&statics.length>0){let flatlist=(await Promise.all(statics.map(async dir=>{let results=[],relativeDir=staticDirs?getDirectoryFromWorkingDir({configDir:options.configDir,workingDir:process.cwd(),directory:dir}):dir,{staticPath,targetEndpoint}=await parseStaticDir(relativeDir);if(targetEndpoint==="/"){let path=join(staticPath,"favicon.svg");await pathExists(path)&&results.push(path)}if(targetEndpoint==="/"){let path=join(staticPath,"favicon.ico");await pathExists(path)&&results.push(path)}return results}))).reduce((l1,l2)=>l1.concat(l2),[]);return flatlist.length>1&&logger.warn(dedent`
1
+ import{parseStaticDir}from"../chunk-GEVOWSTY.mjs";import{__require}from"../chunk-R4NKYYJA.mjs";import{pathExists,readFile}from"fs-extra";import{deprecate,logger}from"@storybook/node-logger";import{getDirectoryFromWorkingDir,getPreviewBodyTemplate,getPreviewHeadTemplate,loadEnvs}from"@storybook/core-common";import{loadCsf}from"@storybook/csf-tools";import{dirname,join}from"path";import{dedent}from"ts-dedent";var defaultFavicon=__require.resolve("@storybook/core-server/public/favicon.svg"),staticDirs=async(values=[])=>[{from:join(dirname(__require.resolve("@storybook/manager/package.json")),"static"),to:"/sb-manager-assets"},...values],favicon=async(value,options)=>{if(value)return value;let staticDirsValue=await options.presets.apply("staticDirs"),statics=staticDirsValue?staticDirsValue.map(dir=>typeof dir=="string"?dir:`${dir.from}:${dir.to}`):options.staticDir;if(statics&&statics.length>0){let flatlist=(await Promise.all(statics.map(async dir=>{let results=[],relativeDir=staticDirsValue?getDirectoryFromWorkingDir({configDir:options.configDir,workingDir:process.cwd(),directory:dir}):dir,{staticPath,targetEndpoint}=await parseStaticDir(relativeDir);if(targetEndpoint==="/"){let path=join(staticPath,"favicon.svg");await pathExists(path)&&results.push(path)}if(targetEndpoint==="/"){let path=join(staticPath,"favicon.ico");await pathExists(path)&&results.push(path)}return results}))).reduce((l1,l2)=>l1.concat(l2),[]);return flatlist.length>1&&logger.warn(dedent`
2
2
  Looks like multiple favicons were detected. Using the first one.
3
3
 
4
4
  ${flatlist.join(", ")}
5
- `),flatlist[0]||defaultFavicon}return defaultFavicon},babel=async(_,options)=>{let{presets}=options;return presets.apply("babelDefault",{},options)},title=(previous,options)=>previous||options.packageJson.name||!1,logLevel=(previous,options)=>previous||options.loglevel||"info",previewHead=async(base,{configDir,presets})=>{let interpolations=await presets.apply("env");return getPreviewHeadTemplate(configDir,interpolations)},env=async()=>loadEnvs({production:!0}).raw,previewBody=async(base,{configDir,presets})=>{let interpolations=await presets.apply("env");return getPreviewBodyTemplate(configDir,interpolations)},typescript=()=>({check:!1,reactDocgen:"react-docgen-typescript",reactDocgenTypescriptOptions:{shouldExtractLiteralValuesFromEnum:!0,shouldRemoveUndefinedFromOptional:!0,propFilter:prop=>prop.parent?!/node_modules/.test(prop.parent.fileName):!0,savePropValueAsString:!0}}),optionalEnvToBoolean=input=>{if(input!==void 0){if(input.toUpperCase()==="FALSE")return!1;if(input.toUpperCase()==="TRUE"||typeof input=="string")return!0}},core=async(existing,options)=>({...existing,disableTelemetry:options.disableTelemetry===!0,enableCrashReports:options.enableCrashReports||optionalEnvToBoolean(process.env.STORYBOOK_ENABLE_CRASH_REPORTS)}),previewAnnotations=async(base,options)=>{let config=await options.presets.apply("config",[],options);return config.length>0&&deprecate("You (or an addon) are using the 'config' preset field. This has been replaced by 'previewAnnotations' and will be removed in 8.0"),[...config,...base]},features=async existing=>({...existing,warnOnLegacyHierarchySeparator:!0,buildStoriesJson:!1,storyStoreV7:!0,breakingChangesV7:!0,interactionsDebugger:!1,argTypeTargetsV7:!0}),storyIndexers=async indexers=>[{test:/(stories|story)\.[tj]sx?$/,indexer:async(fileName,opts)=>{let code=(await readFile(fileName,"utf-8")).toString();return loadCsf(code,{...opts,fileName}).parse()}},...indexers||[]],frameworkOptions=async(_,options)=>{let config=await options.presets.apply("framework");return typeof config=="string"?{}:typeof config>"u"?null:config.options},docs=(docsOptions,{docs:docsMode})=>({...docsOptions,docsMode});export{babel,core,docs,env,favicon,features,frameworkOptions,logLevel,previewAnnotations,previewBody,previewHead,storyIndexers,title,typescript};
5
+ `),flatlist[0]||defaultFavicon}return defaultFavicon},babel=async(_,options)=>{let{presets}=options;return presets.apply("babelDefault",{},options)},title=(previous,options)=>previous||options.packageJson.name||!1,logLevel=(previous,options)=>previous||options.loglevel||"info",previewHead=async(base,{configDir,presets})=>{let interpolations=await presets.apply("env");return getPreviewHeadTemplate(configDir,interpolations)},env=async()=>loadEnvs({production:!0}).raw,previewBody=async(base,{configDir,presets})=>{let interpolations=await presets.apply("env");return getPreviewBodyTemplate(configDir,interpolations)},typescript=()=>({check:!1,reactDocgen:"react-docgen-typescript",reactDocgenTypescriptOptions:{shouldExtractLiteralValuesFromEnum:!0,shouldRemoveUndefinedFromOptional:!0,propFilter:prop=>prop.parent?!/node_modules/.test(prop.parent.fileName):!0,savePropValueAsString:!0}}),optionalEnvToBoolean=input=>{if(input!==void 0){if(input.toUpperCase()==="FALSE")return!1;if(input.toUpperCase()==="TRUE"||typeof input=="string")return!0}},core=async(existing,options)=>({...existing,disableTelemetry:options.disableTelemetry===!0,enableCrashReports:options.enableCrashReports||optionalEnvToBoolean(process.env.STORYBOOK_ENABLE_CRASH_REPORTS)}),previewAnnotations=async(base,options)=>{let config=await options.presets.apply("config",[],options);return config.length>0&&deprecate("You (or an addon) are using the 'config' preset field. This has been replaced by 'previewAnnotations' and will be removed in 8.0"),[...config,...base]},features=async existing=>({...existing,warnOnLegacyHierarchySeparator:!0,buildStoriesJson:!1,storyStoreV7:!0,breakingChangesV7:!0,interactionsDebugger:!1,argTypeTargetsV7:!0}),storyIndexers=async indexers=>[{test:/(stories|story)\.[tj]sx?$/,indexer:async(fileName,opts)=>{let code=(await readFile(fileName,"utf-8")).toString();return loadCsf(code,{...opts,fileName}).parse()}},...indexers||[]],frameworkOptions=async(_,options)=>{let config=await options.presets.apply("framework");return typeof config=="string"?{}:typeof config>"u"?null:config.options},docs=(docsOptions,{docs:docsMode})=>({...docsOptions,docsMode});export{babel,core,docs,env,favicon,features,frameworkOptions,logLevel,previewAnnotations,previewBody,previewHead,staticDirs,storyIndexers,title,typescript};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/core-server",
3
- "version": "7.0.0-beta.40",
3
+ "version": "7.0.0-beta.42",
4
4
  "description": "Storybook framework-agnostic API",
5
5
  "keywords": [
6
6
  "storybook"
@@ -58,17 +58,17 @@
58
58
  "dependencies": {
59
59
  "@aw-web-design/x-default-browser": "1.4.88",
60
60
  "@discoveryjs/json-ext": "^0.5.3",
61
- "@storybook/builder-manager": "7.0.0-beta.40",
62
- "@storybook/core-common": "7.0.0-beta.40",
63
- "@storybook/core-events": "7.0.0-beta.40",
61
+ "@storybook/builder-manager": "7.0.0-beta.42",
62
+ "@storybook/core-common": "7.0.0-beta.42",
63
+ "@storybook/core-events": "7.0.0-beta.42",
64
64
  "@storybook/csf": "next",
65
- "@storybook/csf-tools": "7.0.0-beta.40",
65
+ "@storybook/csf-tools": "7.0.0-beta.42",
66
66
  "@storybook/docs-mdx": "next",
67
67
  "@storybook/global": "^5.0.0",
68
- "@storybook/node-logger": "7.0.0-beta.40",
69
- "@storybook/preview-api": "7.0.0-beta.40",
70
- "@storybook/telemetry": "7.0.0-beta.40",
71
- "@storybook/types": "7.0.0-beta.40",
68
+ "@storybook/node-logger": "7.0.0-beta.42",
69
+ "@storybook/preview-api": "7.0.0-beta.42",
70
+ "@storybook/telemetry": "7.0.0-beta.42",
71
+ "@storybook/types": "7.0.0-beta.42",
72
72
  "@types/detect-port": "^1.3.0",
73
73
  "@types/node": "^16.0.0",
74
74
  "@types/node-fetch": "^2.5.7",
@@ -119,5 +119,5 @@
119
119
  ],
120
120
  "platform": "node"
121
121
  },
122
- "gitHead": "9c68cc3a66e996e91ccd520d9d0adf0fa7094ad4"
122
+ "gitHead": "0b8d11c61742ba9283a6889d0bdac9ac5a8a508f"
123
123
  }