@storybook/core-common 7.0.0-alpha.52 → 7.0.0-alpha.53

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.d.ts CHANGED
@@ -1,7 +1,6 @@
1
1
  import { PresetConfig, CoreCommon_ResolvedAddonPreset, CoreCommon_ResolvedAddonVirtual, LoadedPreset, CLIOptions, LoadOptions, BuilderOptions, Presets, CoreCommon_AddonInfo, Options as Options$2, PackageJson, CoreCommon_StorybookInfo, Ref, StorybookConfig, CoreCommon_StoriesEntry, CoreCommon_NormalizedStoriesSpecifier } from '@storybook/types';
2
2
  import * as Cache from 'file-system-cache';
3
3
  import Cache__default from 'file-system-cache';
4
- import { Router } from 'express';
5
4
 
6
5
  declare function filterPresetsConfig(presetsConfig: PresetConfig[]): PresetConfig[];
7
6
  /**
@@ -127,11 +126,6 @@ declare const nodePathsToArray: (nodePath: string) => string[];
127
126
  */
128
127
  declare function normalizeStoryPath(filename: string): string;
129
128
 
130
- declare const useProgressReporting: (router: Router, startTime: [number, number], options: any) => Promise<{
131
- handler: any;
132
- modulesCount: number;
133
- }>;
134
-
135
129
  declare function readTemplate(filename: string): Promise<string>;
136
130
 
137
131
  /**
@@ -148,7 +142,6 @@ declare function isPreservingSymlinks(): boolean | undefined;
148
142
 
149
143
  declare function getPreviewBodyTemplate(configDirPath: string, interpolations?: Record<string, string>): string;
150
144
  declare function getPreviewHeadTemplate(configDirPath: string, interpolations?: Record<string, string>): string;
151
- declare function getPreviewMainTemplate(): string;
152
145
 
153
146
  declare function validateFrameworkName(frameworkName: string): void;
154
147
 
@@ -163,4 +156,4 @@ type Options = Parameters<typeof Cache__default>['0'];
163
156
  type FileSystemCache = ReturnType<typeof Cache__default>;
164
157
  declare function createFileSystemCache(options: Options): FileSystemCache;
165
158
 
166
- export { boost, cache, checkAddonOrder, createFileSystemCache, filterPresetsConfig, findDistEsm, getAutoRefs, getDirectoryFromWorkingDir, getFrameworkName, getInterpretedFile, getInterpretedFileWithExt, getPresets, getPreviewBodyTemplate, getPreviewHeadTemplate, getPreviewMainTemplate, getProjectRoot, getRefs, getRendererName, getStorybookConfiguration, getStorybookInfo, globToRegexp, handlebars, interopRequireDefault, interpolate, isPreservingSymlinks, loadAllPresets, loadCustomPresets, loadEnvs, loadMainConfig, loadManagerOrAddonsFile, loadPreset, loadPreviewOrConfigFile, logConfig, nodePathsToArray, normalizeStories, normalizeStoriesEntry, normalizeStoryPath, readTemplate, resolveAddonName, resolvePathInStorybookCache, satisfies, serverRequire, serverResolve, stringifyEnvs, stringifyProcessEnvs, useProgressReporting, validateConfigurationFiles, validateFrameworkName };
159
+ export { boost, cache, checkAddonOrder, createFileSystemCache, filterPresetsConfig, findDistEsm, getAutoRefs, getDirectoryFromWorkingDir, getFrameworkName, getInterpretedFile, getInterpretedFileWithExt, getPresets, getPreviewBodyTemplate, getPreviewHeadTemplate, getProjectRoot, getRefs, getRendererName, getStorybookConfiguration, getStorybookInfo, globToRegexp, handlebars, interopRequireDefault, interpolate, isPreservingSymlinks, loadAllPresets, loadCustomPresets, loadEnvs, loadMainConfig, loadManagerOrAddonsFile, loadPreset, loadPreviewOrConfigFile, logConfig, nodePathsToArray, normalizeStories, normalizeStoriesEntry, normalizeStoryPath, readTemplate, resolveAddonName, resolvePathInStorybookCache, satisfies, serverRequire, serverResolve, stringifyEnvs, stringifyProcessEnvs, validateConfigurationFiles, validateFrameworkName };
package/dist/index.js CHANGED
@@ -1,27 +1,25 @@
1
- "use strict";var Ke=Object.create;var w=Object.defineProperty;var Ve=Object.getOwnPropertyDescriptor;var Ge=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ze=Object.prototype.hasOwnProperty;var Qe=(e,r)=>{for(var t in r)w(e,t,{get:r[t],enumerable:!0})},te=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of Ge(r))!Ze.call(e,n)&&n!==t&&w(e,n,{get:()=>r[n],enumerable:!(o=Ve(r,n))||o.enumerable});return e};var p=(e,r,t)=>(t=e!=null?Ke(Xe(e)):{},te(r||!e||!e.__esModule?w(t,"default",{value:e,enumerable:!0}):t,e)),er=e=>te(w({},"__esModule",{value:!0}),e);var Ur={};Qe(Ur,{boost:()=>O,cache:()=>ar,checkAddonOrder:()=>fr,createFileSystemCache:()=>j,filterPresetsConfig:()=>de,findDistEsm:()=>gr,getAutoRefs:()=>Se,getDirectoryFromWorkingDir:()=>He,getFrameworkName:()=>V,getInterpretedFile:()=>g,getInterpretedFileWithExt:()=>B,getPresets:()=>ye,getPreviewBodyTemplate:()=>Tr,getPreviewHeadTemplate:()=>Dr,getPreviewMainTemplate:()=>Lr,getProjectRoot:()=>mr,getRefs:()=>wr,getRendererName:()=>yr,getStorybookConfiguration:()=>G,getStorybookInfo:()=>Cr,globToRegexp:()=>Q,handlebars:()=>Or,interopRequireDefault:()=>R,interpolate:()=>Rr,isPreservingSymlinks:()=>Nr,loadAllPresets:()=>ir,loadCustomPresets:()=>U,loadEnvs:()=>dr,loadMainConfig:()=>Er,loadManagerOrAddonsFile:()=>$r,loadPreset:()=>ue,loadPreviewOrConfigFile:()=>Sr,logConfig:()=>jr,nodePathsToArray:()=>W,normalizeStories:()=>_r,normalizeStoriesEntry:()=>Ue,normalizeStoryPath:()=>Y,readTemplate:()=>Fr,resolveAddonName:()=>le,resolvePathInStorybookCache:()=>q,satisfies:()=>Hr,serverRequire:()=>b,serverResolve:()=>E,stringifyEnvs:()=>lr,stringifyProcessEnvs:()=>ur,useProgressReporting:()=>Ir,validateConfigurationFiles:()=>v,validateFrameworkName:()=>Br});module.exports=er(Ur);var pe=require("ts-dedent"),h=require("@storybook/node-logger");var $=p(require("path"));var M=p(require("fs")),O=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function rr(){return[...Array.from(O)]}var oe=rr();function g(e){return oe.map(r=>e.endsWith(r)?e:`${e}${r}`).find(r=>M.default.existsSync(r))}function B(e){return oe.map(r=>({path:e.endsWith(r)?e:`${e}${r}`,ext:r})).find(r=>M.default.existsSync(r.path))}var ne=!1;function R(e){let r=!!require("module")._extensions[".ts"];if(ne===!1&&!r){let{register:n}=require("esbuild-register/dist/node");ne=!0,n({target:`node${process.version.slice(1)}`,format:"cjs",hookIgnoreNodeModules:!1,tsconfigRaw:`{
1
+ "use strict";var qe=Object.create;var P=Object.defineProperty;var He=Object.getOwnPropertyDescriptor;var Ye=Object.getOwnPropertyNames;var Ke=Object.getPrototypeOf,Ve=Object.prototype.hasOwnProperty;var Ge=(e,r)=>{for(var t in r)P(e,t,{get:r[t],enumerable:!0})},Q=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of Ye(r))!Ve.call(e,n)&&n!==t&&P(e,n,{get:()=>r[n],enumerable:!(o=He(r,n))||o.enumerable});return e};var c=(e,r,t)=>(t=e!=null?qe(Ke(e)):{},Q(r||!e||!e.__esModule?P(t,"default",{value:e,enumerable:!0}):t,e)),Xe=e=>Q(P({},"__esModule",{value:!0}),e);var Dr={};Ge(Dr,{boost:()=>C,cache:()=>nr,checkAddonOrder:()=>ir,createFileSystemCache:()=>S,filterPresetsConfig:()=>fe,findDistEsm:()=>dr,getAutoRefs:()=>Ee,getDirectoryFromWorkingDir:()=>Le,getFrameworkName:()=>q,getInterpretedFile:()=>g,getInterpretedFileWithExt:()=>T,getPresets:()=>le,getPreviewBodyTemplate:()=>_r,getPreviewHeadTemplate:()=>Ir,getProjectRoot:()=>ar,getRefs:()=>kr,getRendererName:()=>lr,getStorybookConfiguration:()=>H,getStorybookInfo:()=>xr,globToRegexp:()=>V,handlebars:()=>Pr,interopRequireDefault:()=>w,interpolate:()=>Cr,isPreservingSymlinks:()=>Ar,loadAllPresets:()=>or,loadCustomPresets:()=>L,loadEnvs:()=>fr,loadMainConfig:()=>wr,loadManagerOrAddonsFile:()=>Or,loadPreset:()=>me,loadPreviewOrConfigFile:()=>Er,logConfig:()=>Rr,nodePathsToArray:()=>U,normalizeStories:()=>$r,normalizeStoriesEntry:()=>Be,normalizeStoryPath:()=>J,readTemplate:()=>jr,resolveAddonName:()=>pe,resolvePathInStorybookCache:()=>B,satisfies:()=>Tr,serverRequire:()=>y,serverResolve:()=>O,stringifyEnvs:()=>pr,stringifyProcessEnvs:()=>mr,validateConfigurationFiles:()=>x,validateFrameworkName:()=>Nr});module.exports=Xe(Dr);var ce=require("ts-dedent"),h=require("@storybook/node-logger");var E=c(require("path"));var N=c(require("fs")),C=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function Ze(){return[...Array.from(C)]}var ee=Ze();function g(e){return ee.map(r=>e.endsWith(r)?e:`${e}${r}`).find(r=>N.default.existsSync(r))}function T(e){return ee.map(r=>({path:e.endsWith(r)?e:`${e}${r}`,ext:r})).find(r=>N.default.existsSync(r.path))}var re=!1;function w(e){let r=!!require("module")._extensions[".ts"];if(re===!1&&!r){let{register:n}=require("esbuild-register/dist/node");re=!0,n({target:`node${process.version.slice(1)}`,format:"cjs",hookIgnoreNodeModules:!1,tsconfigRaw:`{
2
2
  "compilerOptions": {
3
3
  "strict": false,
4
4
  "skipLibCheck": true,
5
5
  },
6
- }`})}let t=require(e);return typeof t=="object"&&t!==null&&typeof t.default<"u"?t.default:t}function tr(e){for(let r=0;r<e.length;r+=1){let t=B(e[r]);if(t)return t}}function b(e){let r=E(e);return r?R(r):null}function E(e){let r=Array.isArray(e)?e:[e],t=tr(r);return t?t.path:null}var se=require("ts-dedent"),ie=p(require("glob")),H=p(require("path"));function v(e){let r=`{${Array.from(O).join(",")}}`;if(!(n=>!!ie.default.sync(H.default.resolve(e,`${n}${r}`)).length)("main"))throw new Error(se.dedent`
7
- No configuration files have been found in your configDir (${H.default.resolve(e)}).
6
+ }`})}let t=require(e);return typeof t=="object"&&t!==null&&typeof t.default<"u"?t.default:t}function Qe(e){for(let r=0;r<e.length;r+=1){let t=T(e[r]);if(t)return t}}function y(e){let r=O(e);return r?w(r):null}function O(e){let r=Array.isArray(e)?e:[e],t=Qe(r);return t?t.path:null}var te=require("ts-dedent"),oe=c(require("glob")),D=c(require("path"));function x(e){let r=`{${Array.from(C).join(",")}}`;if(!(n=>!!oe.default.sync(D.default.resolve(e,`${n}${r}`)).length)("main"))throw new Error(te.dedent`
7
+ No configuration files have been found in your configDir (${D.default.resolve(e)}).
8
8
  Storybook needs either a "main" or "config" file.
9
- `)}function U({configDir:e}){v(e);let r=b($.default.resolve(e,"presets"));if(b($.default.resolve(e,"main"))){let o=E($.default.resolve(e,"main"));if(o)return[o]}return r||[]}var ae=p(require("resolve-from")),ce=(e,r)=>{try{return(0,ae.default)(e,r)}catch{return}},fe=e=>{try{return require.resolve(e)}catch{return}};var C=e=>e!=null&&typeof e=="object"&&Array.isArray(e)===!1,or=e=>typeof e=="function";function de(e){return e.filter(r=>{let t=typeof r=="string"?r:r.name;return!/@storybook[\\\\/]preset-typescript/.test(t)})}function me(e,r,t){return or(e)?[...e({...t,...r})]:Array.isArray(e)?[...e]:[]}var le=(e,r,t)=>{let o=r.startsWith("/")?fe:ce.bind(null,e),n=o(r);if(n){if(r.match(/\/(manager|register(-panel)?)(\.(js|ts|tsx|jsx))?$/))return{type:"virtual",name:r,managerEntries:[n]};if(r.match(/\/(preset)(\.(js|ts|tsx|jsx))?$/))return{type:"presets",name:n}}let s=d=>{if(o(`${r}${d}`))return`${r}${d}`},c=d=>o(`${r}${d}`),i=c("/manager"),m=c("/register")||c("/register-panel"),f=s("/preview"),a=c("/preview"),l=c("/preset");if(!(i||f)&&l)return{type:"presets",name:l};if(i||m||f||l){let d=[];return i&&d.push(i),!i&&m&&!l&&d.push(m),{type:"virtual",name:r,...d.length?{managerEntries:d}:{},...f?{previewAnnotations:[a?{bare:f,absolute:a}:f]}:{},...l?{presets:[{name:l,options:t}]}:{}}}if(n)return{type:"presets",name:n}},nr=({configDir:e})=>r=>{let t=C(r)&&r.options||void 0,o=C(r)?r.name:r;try{let n=le(e,o,t);return{...t?{options:t}:{},...n}}catch{h.logger.error(`Addon value should end in /manager or /preview or /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/
10
- ${r}`)}};async function sr(e){if(e.type==="virtual"){let{type:t,name:o,...n}=e;return n}let r=e.name?e.name:e;return R(r)}async function ue(e,r,t){try{let o=e.name?e.name:e,n=e.options?e.options:{},s=await sr(e);if(typeof s=="function"&&(s=s(t,n)),Array.isArray(s))return await S(s,r+1,t);if(C(s)){let{addons:c,presets:i,...m}=s,f=me(i,n,t),a=me(c,n,t);return[...await S([...f],r+1,t),...await S([...a.map(nr(t))].filter(Boolean),r+1,t),{name:o,preset:m,options:n}]}throw new Error(pe.dedent`
9
+ `)}function L({configDir:e}){x(e);let r=y(E.default.resolve(e,"presets"));if(y(E.default.resolve(e,"main"))){let o=O(E.default.resolve(e,"main"));if(o)return[o]}return r||[]}var ne=c(require("resolve-from")),se=(e,r)=>{try{return(0,ne.default)(e,r)}catch{return}},ie=e=>{try{return require.resolve(e)}catch{return}};var v=e=>e!=null&&typeof e=="object"&&Array.isArray(e)===!1,er=e=>typeof e=="function";function fe(e){return e.filter(r=>{let t=typeof r=="string"?r:r.name;return!/@storybook[\\\\/]preset-typescript/.test(t)})}function ae(e,r,t){return er(e)?[...e({...t,...r})]:Array.isArray(e)?[...e]:[]}var pe=(e,r,t)=>{let o=r.startsWith("/")?ie:se.bind(null,e),n=o(r);if(n){if(r.match(/\/(manager|register(-panel)?)(\.(js|ts|tsx|jsx))?$/))return{type:"virtual",name:r,managerEntries:[n]};if(r.match(/\/(preset)(\.(js|ts|tsx|jsx))?$/))return{type:"presets",name:n}}let s=d=>{if(o(`${r}${d}`))return`${r}${d}`},a=d=>o(`${r}${d}`),i=a("/manager"),p=a("/register")||a("/register-panel"),f=s("/preview"),m=a("/preview"),l=a("/preset");if(!(i||f)&&l)return{type:"presets",name:l};if(i||p||f||l){let d=[];return i&&d.push(i),!i&&p&&!l&&d.push(p),{type:"virtual",name:r,...d.length?{managerEntries:d}:{},...f?{previewAnnotations:[m?{bare:f,absolute:m}:f]}:{},...l?{presets:[{name:l,options:t}]}:{}}}if(n)return{type:"presets",name:n}},rr=({configDir:e})=>r=>{let t=v(r)&&r.options||void 0,o=v(r)?r.name:r;try{let n=pe(e,o,t);return{...t?{options:t}:{},...n}}catch{h.logger.error(`Addon value should end in /manager or /preview or /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/
10
+ ${r}`)}};async function tr(e){if(e.type==="virtual"){let{type:t,name:o,...n}=e;return n}let r=e.name?e.name:e;return w(r)}async function me(e,r,t){try{let o=e.name?e.name:e,n=e.options?e.options:{},s=await tr(e);if(typeof s=="function"&&(s=s(t,n)),Array.isArray(s))return await R(s,r+1,t);if(v(s)){let{addons:a,presets:i,...p}=s,f=ae(i,n,t),m=ae(a,n,t);return[...await R([...f],r+1,t),...await R([...m.map(rr(t))].filter(Boolean),r+1,t),{name:o,preset:p,options:n}]}throw new Error(ce.dedent`
11
11
  ${e} is not a valid preset
12
- `)}catch(o){let n=r>0?` Failed to load preset: ${JSON.stringify(e)} on level ${r}`:` Failed to load preset: ${JSON.stringify(e)}`;return h.logger.warn(n),h.logger.error(o),[]}}async function S(e,r,t){return!e||!Array.isArray(e)||!e.length?[]:(r||h.logger.info("=> Loading presets"),(await Promise.all(e.map(async o=>ue(o,r,t)))).reduce((o,n)=>o.concat(n),[]))}function ge(e,r,t,o,n){let s=new Promise(c=>c(t));return e.length?e.reduce((c,{preset:i,options:m})=>{let f=i[r];if(!f)return c;if(typeof f=="function"){let a=f,l={preset:i,combinedOptions:{...n,...o,...m,presetsList:e,presets:{apply:async(d,u,k={})=>ge(e,d,u,k,n)}}};return c.then(d=>a.call(l.preset,d,l.combinedOptions))}return c.then(a=>Array.isArray(a)&&Array.isArray(f)?[...a,...f]:C(a)&&C(f)?{...a,...f}:f)},s):s}async function ye(e,r){let t=await S(e,0,r);return{apply:async(o,n,s={})=>ge(t,o,n,s,r)}}async function ir(e){let{corePresets:r=[],overridePresets:t=[],...o}=e,n=[...r,...U(e),...t],s=de(n);return s.length<n.length&&h.logger.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),ye(s,o)}var be=p(require("file-system-cache"));function j(e){return(0,be.default)(e)}var A=p(require("path")),he=p(require("pkg-dir"));function q(e){let r=process.cwd(),t=he.default.sync(r),o;return t?o=A.default.resolve(t,"node_modules/.cache/storybook"):o=A.default.resolve(r,".cache/storybook"),A.default.join(o,e)}var ar=j({basePath:q("dev-server"),ns:"storybook"});var _=require("@storybook/node-logger"),z=e=>r=>{let t=r.name||r;return t&&t.includes(e)},cr=(e,r,t)=>{let o=e.findIndex(z("@storybook/addon-essentials")),n=e.findIndex(z(r.name)),s=e.findIndex(z(t.name));return n===-1&&r.inEssentials&&(n=o),s===-1&&t.inEssentials&&(s=o),n!==-1&&s!==-1&&n<=s},fr=async({before:e,after:r,configFile:t,getConfig:o})=>{try{let n=await o(t);if(!(n!=null&&n.addons)){_.logger.warn("Unable to find 'addons' config in main Storybook config");return}if(!cr(n.addons,e,r)){let s=" (or '@storybook/addon-essentials')",c=`'${e.name}'${e.inEssentials?s:""}`,i=`'${r.name}'${r.inEssentials?s:""}`;_.logger.warn(`Expected ${c} to be listed before ${i} in main Storybook config.`)}}catch{_.logger.warn(`Unable to load config file: ${t}`)}};var xe=require("lazy-universal-dotenv");var P=p(require("path")),J=p(require("find-up")),mr=()=>{let e;try{let r=J.default.sync(".git",{type:"directory"});r&&(e=e||P.default.join(r,".."))}catch{}try{let r=J.default.sync(".svn",{type:"directory"});r&&(e=e||P.default.join(r,".."))}catch{}try{e=e||__dirname.split("node_modules")[0]}catch{}return e||process.cwd()},W=e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(r=>P.default.resolve("./",r)),pr=/^\.{1,2}([/\\]|$)/;function Y(e){return pr.test(e)?e:`.${P.default.sep}${e}`}function dr(e={}){let r=e.production?"production":"development",t={NODE_ENV:process.env.NODE_ENV||r,NODE_PATH:process.env.NODE_PATH||"",STORYBOOK:process.env.STORYBOOK||"true",PUBLIC_URL:e.production?".":""};Object.keys(process.env).filter(i=>/^STORYBOOK_/.test(i)).forEach(i=>{t[i]=process.env[i]});let o=Object.entries(t).reduce((i,[m,f])=>Object.assign(i,{[m]:JSON.stringify(f)}),{}),{stringified:n,raw:s}=(0,xe.getEnvironment)({nodeEnv:t.NODE_ENV}),c={...t,...s};return c.NODE_PATH=W(c.NODE_PATH||""),{stringified:{...o,...n},raw:c}}var lr=e=>Object.entries(e).reduce((r,[t,o])=>(r[t]=JSON.stringify(o),r),{}),ur=e=>Object.entries(e).reduce((t,[o,n])=>(t[`process.env.${o}`]=JSON.stringify(n),t),{"process.env.XSTORYBOOK_EXAMPLE_APP":'""'});var K=p(require("path")),ve=require("find-up"),gr=(e,r)=>{let t=(0,ve.sync)("package.json",{cwd:e});if(!t)throw new Error(`Could not find package.json in: ${e}`);let o=K.default.dirname(t);return K.default.join(o,"dist","esm",r)};var Ce=require("ts-dedent");async function V(e){let r=await e.presets.apply("framework","",e);if(!r)throw new Error(Ce.dedent`
12
+ `)}catch(o){let n=r>0?` Failed to load preset: ${JSON.stringify(e)} on level ${r}`:` Failed to load preset: ${JSON.stringify(e)}`;return h.logger.warn(n),h.logger.error(o),[]}}async function R(e,r,t){return!e||!Array.isArray(e)||!e.length?[]:(await Promise.all(e.map(async o=>me(o,r,t)))).reduce((o,n)=>o.concat(n),[])}function de(e,r,t,o,n){let s=new Promise(a=>a(t));return e.length?e.reduce((a,{preset:i,options:p})=>{let f=i[r];if(!f)return a;if(typeof f=="function"){let m=f,l={preset:i,combinedOptions:{...n,...o,...p,presetsList:e,presets:{apply:async(d,Je,We={})=>de(e,d,Je,We,n)}}};return a.then(d=>m.call(l.preset,d,l.combinedOptions))}return a.then(m=>Array.isArray(m)&&Array.isArray(f)?[...m,...f]:v(m)&&v(f)?{...m,...f}:f)},s):s}async function le(e,r){let t=await R(e,0,r);return{apply:async(o,n,s={})=>de(t,o,n,s,r)}}async function or(e){let{corePresets:r=[],overridePresets:t=[],...o}=e,n=[...r,...L(e),...t],s=fe(n);return s.length<n.length&&h.logger.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),le(s,o)}var ge=c(require("file-system-cache"));function S(e){return(0,ge.default)(e)}var $=c(require("path")),ue=c(require("pkg-dir"));function B(e){let r=process.cwd(),t=ue.default.sync(r),o;return t?o=$.default.resolve(t,"node_modules/.cache/storybook"):o=$.default.resolve(r,".cache/storybook"),$.default.join(o,e)}var nr=S({basePath:B("dev-server"),ns:"storybook"});var j=require("@storybook/node-logger"),z=e=>r=>{let t=r.name||r;return t&&t.includes(e)},sr=(e,r,t)=>{let o=e.findIndex(z("@storybook/addon-essentials")),n=e.findIndex(z(r.name)),s=e.findIndex(z(t.name));return n===-1&&r.inEssentials&&(n=o),s===-1&&t.inEssentials&&(s=o),n!==-1&&s!==-1&&n<=s},ir=async({before:e,after:r,configFile:t,getConfig:o})=>{try{let n=await o(t);if(!(n!=null&&n.addons)){j.logger.warn("Unable to find 'addons' config in main Storybook config");return}if(!sr(n.addons,e,r)){let s=" (or '@storybook/addon-essentials')",a=`'${e.name}'${e.inEssentials?s:""}`,i=`'${r.name}'${r.inEssentials?s:""}`;j.logger.warn(`Expected ${a} to be listed before ${i} in main Storybook config.`)}}catch{j.logger.warn(`Unable to load config file: ${t}`)}};var ye=require("lazy-universal-dotenv");var k=c(require("path")),M=c(require("find-up")),ar=()=>{let e;try{let r=M.default.sync(".git",{type:"directory"});r&&(e=e||k.default.join(r,".."))}catch{}try{let r=M.default.sync(".svn",{type:"directory"});r&&(e=e||k.default.join(r,".."))}catch{}try{e=e||__dirname.split("node_modules")[0]}catch{}return e||process.cwd()},U=e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(r=>k.default.resolve("./",r)),cr=/^\.{1,2}([/\\]|$)/;function J(e){return cr.test(e)?e:`.${k.default.sep}${e}`}function fr(e={}){let r=e.production?"production":"development",t={NODE_ENV:process.env.NODE_ENV||r,NODE_PATH:process.env.NODE_PATH||"",STORYBOOK:process.env.STORYBOOK||"true",PUBLIC_URL:e.production?".":""};Object.keys(process.env).filter(i=>/^STORYBOOK_/.test(i)).forEach(i=>{t[i]=process.env[i]});let o=Object.entries(t).reduce((i,[p,f])=>Object.assign(i,{[p]:JSON.stringify(f)}),{}),{stringified:n,raw:s}=(0,ye.getEnvironment)({nodeEnv:t.NODE_ENV}),a={...t,...s};return a.NODE_PATH=U(a.NODE_PATH||""),{stringified:{...o,...n},raw:a}}var pr=e=>Object.entries(e).reduce((r,[t,o])=>(r[t]=JSON.stringify(o),r),{}),mr=e=>Object.entries(e).reduce((t,[o,n])=>(t[`process.env.${o}`]=JSON.stringify(n),t),{"process.env.XSTORYBOOK_EXAMPLE_APP":'""'});var W=c(require("path")),be=require("find-up"),dr=(e,r)=>{let t=(0,be.sync)("package.json",{cwd:e});if(!t)throw new Error(`Could not find package.json in: ${e}`);let o=W.default.dirname(t);return W.default.join(o,"dist","esm",r)};var xe=require("ts-dedent");async function q(e){let r=await e.presets.apply("framework","",e);if(!r)throw new Error(xe.dedent`
13
13
  You must specify a framework in '.storybook/main.js' config.
14
14
 
15
15
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
16
- `);return typeof r=="object"?r.name:r}async function yr(e){let{renderer:r}=await e.presets.apply("core",{},e);return r||V(e)}function G(e,r,t){if(!e)return null;let o=e.split(/[\s='"]+/),n=o.indexOf(t);return n===-1&&(n=o.indexOf(r)),n===-1?null:o[n+1]}var we=p(require("path")),Oe=p(require("fs-extra"));var Pe={"@storybook/react":"react","@storybook/vue":"vue","@storybook/vue3":"vue3","@storybook/angular":"angular","@storybook/html":"html","@storybook/web-components":"web-components","@storybook/polymer":"polymer","@storybook/ember":"ember","@storybook/marko":"marko","@storybook/mithril":"mithril","@storybook/riot":"riot","@storybook/svelte":"svelte","@storybook/preact":"preact","@storybook/rax":"rax","@storybook/server":"server"},ke=console,br=({dependencies:e,devDependencies:r,peerDependencies:t},o)=>[Object.entries(e||{}).find(o),Object.entries(r||{}).find(o),Object.entries(t||{}).find(o)],hr=e=>{let[r,t,o]=br(e,([i])=>Pe[i]),[n,s]=r||t||o||[],c=n?Pe[n]:void 0;return r&&t&&r[0]===t[0]&&ke.warn(`Found "${r[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),r&&o&&r[0]===o[0]&&ke.warn(`Found "${r[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{version:s,framework:c,frameworkPackage:n,renderer:c,rendererPackage:n}},xr=["ts","js","tsx","jsx","mjs","cjs"],X=(e,r)=>{let t=we.default.join(r,e),o=xr.find(n=>Oe.default.existsSync(`${t}.${n}`));return o?`${t}.${o}`:null},vr=e=>{var o;let r=".storybook",t=(o=e.scripts)==null?void 0:o.storybook;if(t){let n=G(t,"-c","--config-dir");n&&(r=n)}return{configDir:r,mainConfig:X("main",r),previewConfig:X("preview",r),managerConfig:X("manager",r)}},Cr=e=>{let r=hr(e),t=vr(e);return{...r,...t}};var Z=require("fs-extra"),I=require("path"),Re=p(require("find-up")),Ee=p(require("resolve-from")),$e=require("@storybook/node-logger"),Se=async e=>{let r=await(0,Re.default)("package.json",{cwd:e.configDir});if(!r)return{};let t=(0,I.dirname)(r),{dependencies:o=[],devDependencies:n=[]}=await(0,Z.readJSON)(r)||{},s=Object.keys({...o,...n});return(await Promise.all(s.map(async i=>{try{let m=(0,Ee.default)(t,(0,I.join)(i,"package.json")),{storybook:f,name:a,version:l}=await(0,Z.readJSON)(m)||{};if(f!=null&&f.url)return{id:a,...f,version:l}}catch(m){if(m.code==="ERR_PACKAGE_PATH_NOT_EXPORTED")return;$e.logger.warn(`unable to find package.json for ${i}`);return}}))).filter(Boolean).reduce((i,m)=>({...i,[m.id]:{id:m.id.toLowerCase(),url:je(m.url),title:m.title,version:m.version}}),{})},Pr=e=>fetch(`${e}/iframe.html`).then(async({ok:r,status:t})=>{if(r){if(t!==200)return!1;let o=await fetch(`${e}/iframe.html`,{headers:{Accept:"application/json"}});if(o.ok&&(await o.json().catch(n=>({}))).loginUrl)return!1}return r},()=>!1),je=e=>e.replace(/\/$/,""),kr=e=>{let r=e.replace(/[A-Z]/g,t=>` ${t}`).replace(/[-_][A-Z]/gi,t=>` ${t.toUpperCase()}`).replace(/-/g," ").replace(/_/g," ");return`${r.substring(0,1).toUpperCase()}${r.substring(1)}`.trim()};async function wr(e){let r=await e.presets.apply("refs",await Se(e));return Object.entries(r).forEach(([t,o])=>{if(o.disable){delete r[t];return}r[t.toLowerCase()]={...o,id:t.toLowerCase(),title:o.title||kr(o.id||t),url:je(o.url)}}),await Promise.all(Object.entries(r).map(async([t,o])=>{let n=await Pr(o.url);r[t]={...o,type:n?"server-checked":"unknown"}})),r}var Ae=require("picomatch");function Q(e){let r=(0,Ae.makeRe)(e,{fastpaths:!1,noglobstar:!1,bash:!1});if(!r.source.startsWith("^"))throw new Error(`Invalid glob: >> ${e} >> ${r}`);return e.startsWith("./")?new RegExp(["^\\.",e.startsWith("./**")?"":"[\\\\/]",r.source.substring(1)].join("")):r}var _e=p(require("handlebars"));function Or(e,r){return _e.default.compile(e)(r)}var Rr=(e,r)=>Object.entries(r).reduce((t,[o,n])=>{let s=n.replace(/\\/g,"/").replace(/\$/g,"$$$");return t.replace(new RegExp(`{{${o}}}`,"g"),s)},e);var Ie=p(require("path"));function Er({configDir:e}){return v(e),b(Ie.default.resolve(e,"main"))}var F=p(require("path")),Fe=require("@storybook/node-logger"),Ne=require("ts-dedent");function $r({configDir:e}){let r=g(F.default.resolve(e,"addons")),t=g(F.default.resolve(e,"manager"));if((r||t)&&Fe.logger.info("=> Loading custom manager config"),r&&t)throw new Error(Ne.dedent`
17
- You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${F.default.resolve(e,"addons")})`);return t||r}var N=p(require("path")),Te=require("ts-dedent");function Sr({configDir:e}){let r=g(N.default.resolve(e,"config")),t=g(N.default.resolve(e,"preview"));if(r&&t)throw new Error(Te.dedent`
18
- You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${N.default.resolve(e,"config")})`);return t||r}var De=p(require("chalk"));function jr(e,r){console.log(De.default.cyan(e)),console.dir(r,{depth:null})}var Me=p(require("fs")),x=p(require("path")),Be=require("picomatch"),ee=p(require("slash"));var T="",Le="**/*.@(mdx|stories.mdx|stories.tsx|stories.ts|stories.jsx|stories.js)",Ar=(e,r)=>{try{return Me.default.lstatSync(x.default.resolve(e,r)).isDirectory()}catch{return!1}},He=({configDir:e,workingDir:r,directory:t})=>{let o=x.default.resolve(e,t),n=x.default.relative(r,o);return Y(n)},Ue=(e,{configDir:r,workingDir:t})=>{let o;if(typeof e=="string"){let m=(0,Be.scan)(e);if(m.isGlob){let f=m.prefix+m.base,a=m.glob;o={titlePrefix:T,directory:f,files:a}}else Ar(r,e)?o={titlePrefix:T,directory:e,files:Le}:o={titlePrefix:T,directory:x.default.dirname(e),files:x.default.basename(e)}}else o={titlePrefix:T,files:Le,...e};let n=(0,ee.default)(o.files),{directory:s}=o,c=(0,ee.default)(He({configDir:r,workingDir:t,directory:s})).replace(/\/$/,""),i=Q(`${c}/${n}`);return{...o,directory:c,importPathMatcher:i}},_r=(e,r)=>e.map(t=>Ue(t,r));var qe=p(require("pretty-hrtime")),ze=e=>(0,qe.default)(process.hrtime(e)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes");var Ir=async(e,r,t)=>{var m;let o=0,n,s=()=>{};e.get("/progress",(f,a)=>{let l=!1,d=()=>{l=!0,a.end()};a.on("close",d),!(l||a.writableEnded)&&(a.setHeader("Cache-Control","no-cache"),a.setHeader("Content-Type","text/event-stream"),a.setHeader("Connection","keep-alive"),a.flushHeaders(),s=u=>{l||a.writableEnded||(a.write(`data: ${JSON.stringify(u)}
19
-
20
- `),a.flush(),u.value===1&&d())})});let c=(f,a,l)=>{o=Math.max(f,o);let d={value:o,message:a.charAt(0).toUpperCase()+a.slice(1)};if(a==="building"){let u=l&&l.match(/(\d+)\/(\d+)/)||[],k=parseInt(u[1],10),L=parseInt(u[2],10);!Number.isNaN(k)&&!Number.isNaN(L)&&(d.modules={complete:k,total:L},n=L)}o===1&&(t.cache&&t.cache.set("modulesCount",n),d.message||(d.message=`Completed in ${ze(r)}.`)),s(d)},i=await((m=t.cache)==null?void 0:m.get("modulesCount").catch(()=>{}))||1e3;return{handler:c,modulesCount:i}};var Je=p(require("fs-extra"));async function Fr(e){return Je.default.readFile(e,{encoding:"utf8"})}function Nr(){let{NODE_OPTIONS:e,NODE_PRESERVE_SYMLINKS:r}=process.env;return!!r||(e==null?void 0:e.includes("--preserve-symlinks"))}var re=p(require("path")),D=require("pkg-dir"),y=p(require("fs")),We=(e,r={})=>Object.entries(r).reduce((t,[o,n])=>t.replace(new RegExp(`%${o}%`,"g"),n),e);function Tr(e,r){let t=y.default.readFileSync(`${(0,D.sync)(__dirname)}/templates/base-preview-body.html`,"utf8"),o=re.default.resolve(e,"preview-body.html"),n=t;return y.default.existsSync(o)&&(n=y.default.readFileSync(o,"utf8")+n),We(n,r)}function Dr(e,r){let t=y.default.readFileSync(`${(0,D.sync)(__dirname)}/templates/base-preview-head.html`,"utf8"),o=re.default.resolve(e,"preview-head.html"),n=t;return y.default.existsSync(o)&&(n+=y.default.readFileSync(o,"utf8")),We(n,r)}function Lr(){return`${(0,D.sync)(__dirname)}/templates/preview.ejs`}var Ye=require("ts-dedent"),Mr=["@storybook/html","@storybook/preact","@storybook/react","@storybook/server","@storybook/svelte","@storybook/vue","@storybook/vue3","@storybook/web-components"];function Br(e){if(Mr.includes(e))throw new Error(Ye.dedent`
16
+ `);return typeof r=="object"?r.name:r}async function lr(e){let{renderer:r}=await e.presets.apply("core",{},e);return r||q(e)}function H(e,r,t){if(!e)return null;let o=e.split(/[\s='"]+/),n=o.indexOf(t);return n===-1&&(n=o.indexOf(r)),n===-1?null:o[n+1]}var ke=c(require("path")),Pe=c(require("fs-extra"));var he={"@storybook/react":"react","@storybook/vue":"vue","@storybook/vue3":"vue3","@storybook/angular":"angular","@storybook/html":"html","@storybook/web-components":"web-components","@storybook/polymer":"polymer","@storybook/ember":"ember","@storybook/marko":"marko","@storybook/mithril":"mithril","@storybook/riot":"riot","@storybook/svelte":"svelte","@storybook/preact":"preact","@storybook/rax":"rax","@storybook/server":"server"},ve=console,gr=({dependencies:e,devDependencies:r,peerDependencies:t},o)=>[Object.entries(e||{}).find(o),Object.entries(r||{}).find(o),Object.entries(t||{}).find(o)],ur=e=>{let[r,t,o]=gr(e,([i])=>he[i]),[n,s]=r||t||o||[],a=n?he[n]:void 0;return r&&t&&r[0]===t[0]&&ve.warn(`Found "${r[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),r&&o&&r[0]===o[0]&&ve.warn(`Found "${r[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{version:s,framework:a,frameworkPackage:n,renderer:a,rendererPackage:n}},yr=["ts","js","tsx","jsx","mjs","cjs"],Y=(e,r)=>{let t=ke.default.join(r,e),o=yr.find(n=>Pe.default.existsSync(`${t}.${n}`));return o?`${t}.${o}`:null},br=e=>{var o;let r=".storybook",t=(o=e.scripts)==null?void 0:o.storybook;if(t){let n=H(t,"-c","--config-dir");n&&(r=n)}return{configDir:r,mainConfig:Y("main",r),previewConfig:Y("preview",r),managerConfig:Y("manager",r)}},xr=e=>{let r=ur(e),t=br(e);return{...r,...t}};var K=require("fs-extra"),A=require("path"),Ce=c(require("find-up")),we=c(require("resolve-from")),Oe=require("@storybook/node-logger"),Ee=async e=>{let r=await(0,Ce.default)("package.json",{cwd:e.configDir});if(!r)return{};let t=(0,A.dirname)(r),{dependencies:o=[],devDependencies:n=[]}=await(0,K.readJSON)(r)||{},s=Object.keys({...o,...n});return(await Promise.all(s.map(async i=>{try{let p=(0,we.default)(t,(0,A.join)(i,"package.json")),{storybook:f,name:m,version:l}=await(0,K.readJSON)(p)||{};if(f!=null&&f.url)return{id:m,...f,version:l}}catch(p){if(p.code==="ERR_PACKAGE_PATH_NOT_EXPORTED")return;Oe.logger.warn(`unable to find package.json for ${i}`);return}}))).filter(Boolean).reduce((i,p)=>({...i,[p.id]:{id:p.id.toLowerCase(),url:Re(p.url),title:p.title,version:p.version}}),{})},hr=e=>fetch(`${e}/iframe.html`).then(async({ok:r,status:t})=>{if(r){if(t!==200)return!1;let o=await fetch(`${e}/iframe.html`,{headers:{Accept:"application/json"}});if(o.ok&&(await o.json().catch(n=>({}))).loginUrl)return!1}return r},()=>!1),Re=e=>e.replace(/\/$/,""),vr=e=>{let r=e.replace(/[A-Z]/g,t=>` ${t}`).replace(/[-_][A-Z]/gi,t=>` ${t.toUpperCase()}`).replace(/-/g," ").replace(/_/g," ");return`${r.substring(0,1).toUpperCase()}${r.substring(1)}`.trim()};async function kr(e){let r=await e.presets.apply("refs",await Ee(e));return Object.entries(r).forEach(([t,o])=>{if(o.disable){delete r[t];return}r[t.toLowerCase()]={...o,id:t.toLowerCase(),title:o.title||vr(o.id||t),url:Re(o.url)}}),await Promise.all(Object.entries(r).map(async([t,o])=>{let n=await hr(o.url);r[t]={...o,type:n?"server-checked":"unknown"}})),r}var Se=require("picomatch");function V(e){let r=(0,Se.makeRe)(e,{fastpaths:!1,noglobstar:!1,bash:!1});if(!r.source.startsWith("^"))throw new Error(`Invalid glob: >> ${e} >> ${r}`);return e.startsWith("./")?new RegExp(["^\\.",e.startsWith("./**")?"":"[\\\\/]",r.source.substring(1)].join("")):r}var $e=c(require("handlebars"));function Pr(e,r){return $e.default.compile(e)(r)}var Cr=(e,r)=>Object.entries(r).reduce((t,[o,n])=>{let s=n.replace(/\\/g,"/").replace(/\$/g,"$$$");return t.replace(new RegExp(`{{${o}}}`,"g"),s)},e);var je=c(require("path"));function wr({configDir:e}){return x(e),y(je.default.resolve(e,"main"))}var _=c(require("path")),Ae=require("@storybook/node-logger"),_e=require("ts-dedent");function Or({configDir:e}){let r=g(_.default.resolve(e,"addons")),t=g(_.default.resolve(e,"manager"));if((r||t)&&Ae.logger.info("=> Loading custom manager config"),r&&t)throw new Error(_e.dedent`
17
+ You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${_.default.resolve(e,"addons")})`);return t||r}var I=c(require("path")),Ie=require("ts-dedent");function Er({configDir:e}){let r=g(I.default.resolve(e,"config")),t=g(I.default.resolve(e,"preview"));if(r&&t)throw new Error(Ie.dedent`
18
+ You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${I.default.resolve(e,"config")})`);return t||r}var Fe=c(require("chalk"));function Rr(e,r){console.log(Fe.default.cyan(e)),console.dir(r,{depth:null})}var Te=c(require("fs")),b=c(require("path")),De=require("picomatch"),G=c(require("slash"));var F="",Ne="**/*.@(mdx|stories.mdx|stories.tsx|stories.ts|stories.jsx|stories.js)",Sr=(e,r)=>{try{return Te.default.lstatSync(b.default.resolve(e,r)).isDirectory()}catch{return!1}},Le=({configDir:e,workingDir:r,directory:t})=>{let o=b.default.resolve(e,t),n=b.default.relative(r,o);return J(n)},Be=(e,{configDir:r,workingDir:t})=>{let o;if(typeof e=="string"){let p=(0,De.scan)(e);if(p.isGlob){let f=p.prefix+p.base,m=p.glob;o={titlePrefix:F,directory:f,files:m}}else Sr(r,e)?o={titlePrefix:F,directory:e,files:Ne}:o={titlePrefix:F,directory:b.default.dirname(e),files:b.default.basename(e)}}else o={titlePrefix:F,files:Ne,...e};let n=(0,G.default)(o.files),{directory:s}=o,a=(0,G.default)(Le({configDir:r,workingDir:t,directory:s})).replace(/\/$/,""),i=V(`${a}/${n}`);return{...o,directory:a,importPathMatcher:i}},$r=(e,r)=>e.map(t=>Be(t,r));var ze=c(require("fs-extra"));async function jr(e){return ze.default.readFile(e,{encoding:"utf8"})}function Ar(){let{NODE_OPTIONS:e,NODE_PRESERVE_SYMLINKS:r}=process.env;return!!r||(e==null?void 0:e.includes("--preserve-symlinks"))}var X=c(require("path")),Z=require("pkg-dir"),u=c(require("fs")),Me=(e,r={})=>Object.entries(r).reduce((t,[o,n])=>t.replace(new RegExp(`%${o}%`,"g"),n),e);function _r(e,r){let t=u.default.readFileSync(`${(0,Z.sync)(__dirname)}/templates/base-preview-body.html`,"utf8"),o=X.default.resolve(e,"preview-body.html"),n=t;return u.default.existsSync(o)&&(n=u.default.readFileSync(o,"utf8")+n),Me(n,r)}function Ir(e,r){let t=u.default.readFileSync(`${(0,Z.sync)(__dirname)}/templates/base-preview-head.html`,"utf8"),o=X.default.resolve(e,"preview-head.html"),n=t;return u.default.existsSync(o)&&(n+=u.default.readFileSync(o,"utf8")),Me(n,r)}var Ue=require("ts-dedent"),Fr=["@storybook/html","@storybook/preact","@storybook/react","@storybook/server","@storybook/svelte","@storybook/vue","@storybook/vue3","@storybook/web-components"];function Nr(e){if(Fr.includes(e))throw new Error(Ue.dedent`
21
19
  Invalid value of ${e} in the 'framework' field of Storybook config.
22
20
 
23
21
  Please run 'npx sb@next automigrate'
24
22
 
25
23
  See the v7 Migration guide for more information:
26
24
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
27
- `)}function Hr(){return e=>e}0&&(module.exports={boost,cache,checkAddonOrder,createFileSystemCache,filterPresetsConfig,findDistEsm,getAutoRefs,getDirectoryFromWorkingDir,getFrameworkName,getInterpretedFile,getInterpretedFileWithExt,getPresets,getPreviewBodyTemplate,getPreviewHeadTemplate,getPreviewMainTemplate,getProjectRoot,getRefs,getRendererName,getStorybookConfiguration,getStorybookInfo,globToRegexp,handlebars,interopRequireDefault,interpolate,isPreservingSymlinks,loadAllPresets,loadCustomPresets,loadEnvs,loadMainConfig,loadManagerOrAddonsFile,loadPreset,loadPreviewOrConfigFile,logConfig,nodePathsToArray,normalizeStories,normalizeStoriesEntry,normalizeStoryPath,readTemplate,resolveAddonName,resolvePathInStorybookCache,satisfies,serverRequire,serverResolve,stringifyEnvs,stringifyProcessEnvs,useProgressReporting,validateConfigurationFiles,validateFrameworkName});
25
+ `)}function Tr(){return e=>e}0&&(module.exports={boost,cache,checkAddonOrder,createFileSystemCache,filterPresetsConfig,findDistEsm,getAutoRefs,getDirectoryFromWorkingDir,getFrameworkName,getInterpretedFile,getInterpretedFileWithExt,getPresets,getPreviewBodyTemplate,getPreviewHeadTemplate,getProjectRoot,getRefs,getRendererName,getStorybookConfiguration,getStorybookInfo,globToRegexp,handlebars,interopRequireDefault,interpolate,isPreservingSymlinks,loadAllPresets,loadCustomPresets,loadEnvs,loadMainConfig,loadManagerOrAddonsFile,loadPreset,loadPreviewOrConfigFile,logConfig,nodePathsToArray,normalizeStories,normalizeStoriesEntry,normalizeStoryPath,readTemplate,resolveAddonName,resolvePathInStorybookCache,satisfies,serverRequire,serverResolve,stringifyEnvs,stringifyProcessEnvs,validateConfigurationFiles,validateFrameworkName});
package/dist/index.mjs CHANGED
@@ -1,27 +1,25 @@
1
- var l=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(r,t)=>(typeof require!="undefined"?require:r)[t]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});import{dedent as ye}from"ts-dedent";import{logger as h}from"@storybook/node-logger";import $ from"path";import L from"fs";var E=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function pe(){return[...Array.from(E)]}var M=pe();function u(e){return M.map(r=>e.endsWith(r)?e:`${e}${r}`).find(r=>L.existsSync(r))}function B(e){return M.map(r=>({path:e.endsWith(r)?e:`${e}${r}`,ext:r})).find(r=>L.existsSync(r.path))}var H=!1;function R(e){let r=!!l("module")._extensions[".ts"];if(H===!1&&!r){let{register:n}=l("esbuild-register/dist/node");H=!0,n({target:`node${process.version.slice(1)}`,format:"cjs",hookIgnoreNodeModules:!1,tsconfigRaw:`{
1
+ var l=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(r,t)=>(typeof require!="undefined"?require:r)[t]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});import{dedent as ue}from"ts-dedent";import{logger as k}from"@storybook/node-logger";import R from"path";import N from"fs";var w=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function pe(){return[...Array.from(w)]}var T=pe();function g(e){return T.map(r=>e.endsWith(r)?e:`${e}${r}`).find(r=>N.existsSync(r))}function D(e){return T.map(r=>({path:e.endsWith(r)?e:`${e}${r}`,ext:r})).find(r=>N.existsSync(r.path))}var L=!1;function O(e){let r=!!l("module")._extensions[".ts"];if(L===!1&&!r){let{register:n}=l("esbuild-register/dist/node");L=!0,n({target:`node${process.version.slice(1)}`,format:"cjs",hookIgnoreNodeModules:!1,tsconfigRaw:`{
2
2
  "compilerOptions": {
3
3
  "strict": false,
4
4
  "skipLibCheck": true,
5
5
  },
6
- }`})}let t=l(e);return typeof t=="object"&&t!==null&&typeof t.default<"u"?t.default:t}function de(e){for(let r=0;r<e.length;r+=1){let t=B(e[r]);if(t)return t}}function b(e){let r=S(e);return r?R(r):null}function S(e){let r=Array.isArray(e)?e:[e],t=de(r);return t?t.path:null}import{dedent as le}from"ts-dedent";import ue from"glob";import U from"path";function P(e){let r=`{${Array.from(E).join(",")}}`;if(!(n=>!!ue.sync(U.resolve(e,`${n}${r}`)).length)("main"))throw new Error(le`
7
- No configuration files have been found in your configDir (${U.resolve(e)}).
6
+ }`})}let t=l(e);return typeof t=="object"&&t!==null&&typeof t.default<"u"?t.default:t}function me(e){for(let r=0;r<e.length;r+=1){let t=D(e[r]);if(t)return t}}function y(e){let r=E(e);return r?O(r):null}function E(e){let r=Array.isArray(e)?e:[e],t=me(r);return t?t.path:null}import{dedent as de}from"ts-dedent";import le from"glob";import B from"path";function h(e){let r=`{${Array.from(w).join(",")}}`;if(!(n=>!!le.sync(B.resolve(e,`${n}${r}`)).length)("main"))throw new Error(de`
7
+ No configuration files have been found in your configDir (${B.resolve(e)}).
8
8
  Storybook needs either a "main" or "config" file.
9
- `)}function q({configDir:e}){P(e);let r=b($.resolve(e,"presets"));if(b($.resolve(e,"main"))){let o=S($.resolve(e,"main"));if(o)return[o]}return r||[]}import ge from"resolve-from";var z=(e,r)=>{try{return ge(e,r)}catch{return}},J=e=>{try{return l.resolve(e)}catch{return}};var x=e=>e!=null&&typeof e=="object"&&Array.isArray(e)===!1,be=e=>typeof e=="function";function he(e){return e.filter(r=>{let t=typeof r=="string"?r:r.name;return!/@storybook[\\\\/]preset-typescript/.test(t)})}function W(e,r,t){return be(e)?[...e({...t,...r})]:Array.isArray(e)?[...e]:[]}var xe=(e,r,t)=>{let o=r.startsWith("/")?J:z.bind(null,e),n=o(r);if(n){if(r.match(/\/(manager|register(-panel)?)(\.(js|ts|tsx|jsx))?$/))return{type:"virtual",name:r,managerEntries:[n]};if(r.match(/\/(preset)(\.(js|ts|tsx|jsx))?$/))return{type:"presets",name:n}}let s=d=>{if(o(`${r}${d}`))return`${r}${d}`},c=d=>o(`${r}${d}`),a=c("/manager"),f=c("/register")||c("/register-panel"),i=s("/preview"),m=c("/preview"),p=c("/preset");if(!(a||i)&&p)return{type:"presets",name:p};if(a||f||i||p){let d=[];return a&&d.push(a),!a&&f&&!p&&d.push(f),{type:"virtual",name:r,...d.length?{managerEntries:d}:{},...i?{previewAnnotations:[m?{bare:i,absolute:m}:i]}:{},...p?{presets:[{name:p,options:t}]}:{}}}if(n)return{type:"presets",name:n}},ve=({configDir:e})=>r=>{let t=x(r)&&r.options||void 0,o=x(r)?r.name:r;try{let n=xe(e,o,t);return{...t?{options:t}:{},...n}}catch{h.error(`Addon value should end in /manager or /preview or /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/
10
- ${r}`)}};async function Ce(e){if(e.type==="virtual"){let{type:t,name:o,...n}=e;return n}let r=e.name?e.name:e;return R(r)}async function Pe(e,r,t){try{let o=e.name?e.name:e,n=e.options?e.options:{},s=await Ce(e);if(typeof s=="function"&&(s=s(t,n)),Array.isArray(s))return await k(s,r+1,t);if(x(s)){let{addons:c,presets:a,...f}=s,i=W(a,n,t),m=W(c,n,t);return[...await k([...i],r+1,t),...await k([...m.map(ve(t))].filter(Boolean),r+1,t),{name:o,preset:f,options:n}]}throw new Error(ye`
9
+ `)}function z({configDir:e}){h(e);let r=y(R.resolve(e,"presets"));if(y(R.resolve(e,"main"))){let o=E(R.resolve(e,"main"));if(o)return[o]}return r||[]}import ge from"resolve-from";var M=(e,r)=>{try{return ge(e,r)}catch{return}},U=e=>{try{return l.resolve(e)}catch{return}};var b=e=>e!=null&&typeof e=="object"&&Array.isArray(e)===!1,ye=e=>typeof e=="function";function be(e){return e.filter(r=>{let t=typeof r=="string"?r:r.name;return!/@storybook[\\\\/]preset-typescript/.test(t)})}function J(e,r,t){return ye(e)?[...e({...t,...r})]:Array.isArray(e)?[...e]:[]}var xe=(e,r,t)=>{let o=r.startsWith("/")?U:M.bind(null,e),n=o(r);if(n){if(r.match(/\/(manager|register(-panel)?)(\.(js|ts|tsx|jsx))?$/))return{type:"virtual",name:r,managerEntries:[n]};if(r.match(/\/(preset)(\.(js|ts|tsx|jsx))?$/))return{type:"presets",name:n}}let s=m=>{if(o(`${r}${m}`))return`${r}${m}`},a=m=>o(`${r}${m}`),i=a("/manager"),c=a("/register")||a("/register-panel"),f=s("/preview"),p=a("/preview"),d=a("/preset");if(!(i||f)&&d)return{type:"presets",name:d};if(i||c||f||d){let m=[];return i&&m.push(i),!i&&c&&!d&&m.push(c),{type:"virtual",name:r,...m.length?{managerEntries:m}:{},...f?{previewAnnotations:[p?{bare:f,absolute:p}:f]}:{},...d?{presets:[{name:d,options:t}]}:{}}}if(n)return{type:"presets",name:n}},he=({configDir:e})=>r=>{let t=b(r)&&r.options||void 0,o=b(r)?r.name:r;try{let n=xe(e,o,t);return{...t?{options:t}:{},...n}}catch{k.error(`Addon value should end in /manager or /preview or /register OR it should be a valid preset https://storybook.js.org/docs/react/addons/writing-presets/
10
+ ${r}`)}};async function ve(e){if(e.type==="virtual"){let{type:t,name:o,...n}=e;return n}let r=e.name?e.name:e;return O(r)}async function ke(e,r,t){try{let o=e.name?e.name:e,n=e.options?e.options:{},s=await ve(e);if(typeof s=="function"&&(s=s(t,n)),Array.isArray(s))return await v(s,r+1,t);if(b(s)){let{addons:a,presets:i,...c}=s,f=J(i,n,t),p=J(a,n,t);return[...await v([...f],r+1,t),...await v([...p.map(he(t))].filter(Boolean),r+1,t),{name:o,preset:c,options:n}]}throw new Error(ue`
11
11
  ${e} is not a valid preset
12
- `)}catch(o){let n=r>0?` Failed to load preset: ${JSON.stringify(e)} on level ${r}`:` Failed to load preset: ${JSON.stringify(e)}`;return h.warn(n),h.error(o),[]}}async function k(e,r,t){return!e||!Array.isArray(e)||!e.length?[]:(r||h.info("=> Loading presets"),(await Promise.all(e.map(async o=>Pe(o,r,t)))).reduce((o,n)=>o.concat(n),[]))}function Y(e,r,t,o,n){let s=new Promise(c=>c(t));return e.length?e.reduce((c,{preset:a,options:f})=>{let i=a[r];if(!i)return c;if(typeof i=="function"){let m=i,p={preset:a,combinedOptions:{...n,...o,...f,presetsList:e,presets:{apply:async(d,C,y={})=>Y(e,d,C,y,n)}}};return c.then(d=>m.call(p.preset,d,p.combinedOptions))}return c.then(m=>Array.isArray(m)&&Array.isArray(i)?[...m,...i]:x(m)&&x(i)?{...m,...i}:i)},s):s}async function ke(e,r){let t=await k(e,0,r);return{apply:async(o,n,s={})=>Y(t,o,n,s,r)}}async function Sr(e){let{corePresets:r=[],overridePresets:t=[],...o}=e,n=[...r,...q(e),...t],s=he(n);return s.length<n.length&&h.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),ke(s,o)}import we from"file-system-cache";function j(e){return we(e)}import A from"path";import Oe from"pkg-dir";function K(e){let r=process.cwd(),t=Oe.sync(r),o;return t?o=A.resolve(t,"node_modules/.cache/storybook"):o=A.resolve(r,".cache/storybook"),A.join(o,e)}var Dr=j({basePath:K("dev-server"),ns:"storybook"});import{logger as _}from"@storybook/node-logger";var I=e=>r=>{let t=r.name||r;return t&&t.includes(e)},Ee=(e,r,t)=>{let o=e.findIndex(I("@storybook/addon-essentials")),n=e.findIndex(I(r.name)),s=e.findIndex(I(t.name));return n===-1&&r.inEssentials&&(n=o),s===-1&&t.inEssentials&&(s=o),n!==-1&&s!==-1&&n<=s},Br=async({before:e,after:r,configFile:t,getConfig:o})=>{try{let n=await o(t);if(!n?.addons){_.warn("Unable to find 'addons' config in main Storybook config");return}if(!Ee(n.addons,e,r)){let s=" (or '@storybook/addon-essentials')",c=`'${e.name}'${e.inEssentials?s:""}`,a=`'${r.name}'${r.inEssentials?s:""}`;_.warn(`Expected ${c} to be listed before ${a} in main Storybook config.`)}}catch{_.warn(`Unable to load config file: ${t}`)}};import{getEnvironment as Se}from"lazy-universal-dotenv";import w from"path";import V from"find-up";var zr=()=>{let e;try{let r=V.sync(".git",{type:"directory"});r&&(e=e||w.join(r,".."))}catch{}try{let r=V.sync(".svn",{type:"directory"});r&&(e=e||w.join(r,".."))}catch{}try{e=e||__dirname.split("node_modules")[0]}catch{}return e||process.cwd()},G=e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(r=>w.resolve("./",r)),Re=/^\.{1,2}([/\\]|$)/;function X(e){return Re.test(e)?e:`.${w.sep}${e}`}function Kr(e={}){let r=e.production?"production":"development",t={NODE_ENV:process.env.NODE_ENV||r,NODE_PATH:process.env.NODE_PATH||"",STORYBOOK:process.env.STORYBOOK||"true",PUBLIC_URL:e.production?".":""};Object.keys(process.env).filter(a=>/^STORYBOOK_/.test(a)).forEach(a=>{t[a]=process.env[a]});let o=Object.entries(t).reduce((a,[f,i])=>Object.assign(a,{[f]:JSON.stringify(i)}),{}),{stringified:n,raw:s}=Se({nodeEnv:t.NODE_ENV}),c={...t,...s};return c.NODE_PATH=G(c.NODE_PATH||""),{stringified:{...o,...n},raw:c}}var Vr=e=>Object.entries(e).reduce((r,[t,o])=>(r[t]=JSON.stringify(o),r),{}),Gr=e=>Object.entries(e).reduce((t,[o,n])=>(t[`process.env.${o}`]=JSON.stringify(n),t),{"process.env.XSTORYBOOK_EXAMPLE_APP":'""'});import Z from"path";import{sync as $e}from"find-up";var et=(e,r)=>{let t=$e("package.json",{cwd:e});if(!t)throw new Error(`Could not find package.json in: ${e}`);let o=Z.dirname(t);return Z.join(o,"dist","esm",r)};import{dedent as je}from"ts-dedent";async function Q(e){let r=await e.presets.apply("framework","",e);if(!r)throw new Error(je`
12
+ `)}catch(o){let n=r>0?` Failed to load preset: ${JSON.stringify(e)} on level ${r}`:` Failed to load preset: ${JSON.stringify(e)}`;return k.warn(n),k.error(o),[]}}async function v(e,r,t){return!e||!Array.isArray(e)||!e.length?[]:(await Promise.all(e.map(async o=>ke(o,r,t)))).reduce((o,n)=>o.concat(n),[])}function W(e,r,t,o,n){let s=new Promise(a=>a(t));return e.length?e.reduce((a,{preset:i,options:c})=>{let f=i[r];if(!f)return a;if(typeof f=="function"){let p=f,d={preset:i,combinedOptions:{...n,...o,...c,presetsList:e,presets:{apply:async(m,ce,fe={})=>W(e,m,ce,fe,n)}}};return a.then(m=>p.call(d.preset,m,d.combinedOptions))}return a.then(p=>Array.isArray(p)&&Array.isArray(f)?[...p,...f]:b(p)&&b(f)?{...p,...f}:f)},s):s}async function Pe(e,r){let t=await v(e,0,r);return{apply:async(o,n,s={})=>W(t,o,n,s,r)}}async function Er(e){let{corePresets:r=[],overridePresets:t=[],...o}=e,n=[...r,...z(e),...t],s=be(n);return s.length<n.length&&k.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),Pe(s,o)}import Ce from"file-system-cache";function S(e){return Ce(e)}import $ from"path";import we from"pkg-dir";function q(e){let r=process.cwd(),t=we.sync(r),o;return t?o=$.resolve(t,"node_modules/.cache/storybook"):o=$.resolve(r,".cache/storybook"),$.join(o,e)}var Nr=S({basePath:q("dev-server"),ns:"storybook"});import{logger as j}from"@storybook/node-logger";var A=e=>r=>{let t=r.name||r;return t&&t.includes(e)},Oe=(e,r,t)=>{let o=e.findIndex(A("@storybook/addon-essentials")),n=e.findIndex(A(r.name)),s=e.findIndex(A(t.name));return n===-1&&r.inEssentials&&(n=o),s===-1&&t.inEssentials&&(s=o),n!==-1&&s!==-1&&n<=s},Lr=async({before:e,after:r,configFile:t,getConfig:o})=>{try{let n=await o(t);if(!n?.addons){j.warn("Unable to find 'addons' config in main Storybook config");return}if(!Oe(n.addons,e,r)){let s=" (or '@storybook/addon-essentials')",a=`'${e.name}'${e.inEssentials?s:""}`,i=`'${r.name}'${r.inEssentials?s:""}`;j.warn(`Expected ${a} to be listed before ${i} in main Storybook config.`)}}catch{j.warn(`Unable to load config file: ${t}`)}};import{getEnvironment as Re}from"lazy-universal-dotenv";import P from"path";import H from"find-up";var Ur=()=>{let e;try{let r=H.sync(".git",{type:"directory"});r&&(e=e||P.join(r,".."))}catch{}try{let r=H.sync(".svn",{type:"directory"});r&&(e=e||P.join(r,".."))}catch{}try{e=e||__dirname.split("node_modules")[0]}catch{}return e||process.cwd()},Y=e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(r=>P.resolve("./",r)),Ee=/^\.{1,2}([/\\]|$)/;function K(e){return Ee.test(e)?e:`.${P.sep}${e}`}function Hr(e={}){let r=e.production?"production":"development",t={NODE_ENV:process.env.NODE_ENV||r,NODE_PATH:process.env.NODE_PATH||"",STORYBOOK:process.env.STORYBOOK||"true",PUBLIC_URL:e.production?".":""};Object.keys(process.env).filter(i=>/^STORYBOOK_/.test(i)).forEach(i=>{t[i]=process.env[i]});let o=Object.entries(t).reduce((i,[c,f])=>Object.assign(i,{[c]:JSON.stringify(f)}),{}),{stringified:n,raw:s}=Re({nodeEnv:t.NODE_ENV}),a={...t,...s};return a.NODE_PATH=Y(a.NODE_PATH||""),{stringified:{...o,...n},raw:a}}var Yr=e=>Object.entries(e).reduce((r,[t,o])=>(r[t]=JSON.stringify(o),r),{}),Kr=e=>Object.entries(e).reduce((t,[o,n])=>(t[`process.env.${o}`]=JSON.stringify(n),t),{"process.env.XSTORYBOOK_EXAMPLE_APP":'""'});import V from"path";import{sync as Se}from"find-up";var Zr=(e,r)=>{let t=Se("package.json",{cwd:e});if(!t)throw new Error(`Could not find package.json in: ${e}`);let o=V.dirname(t);return V.join(o,"dist","esm",r)};import{dedent as $e}from"ts-dedent";async function G(e){let r=await e.presets.apply("framework","",e);if(!r)throw new Error($e`
13
13
  You must specify a framework in '.storybook/main.js' config.
14
14
 
15
15
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
16
- `);return typeof r=="object"?r.name:r}async function st(e){let{renderer:r}=await e.presets.apply("core",{},e);return r||Q(e)}function ee(e,r,t){if(!e)return null;let o=e.split(/[\s='"]+/),n=o.indexOf(t);return n===-1&&(n=o.indexOf(r)),n===-1?null:o[n+1]}import Ae from"path";import _e from"fs-extra";var re={"@storybook/react":"react","@storybook/vue":"vue","@storybook/vue3":"vue3","@storybook/angular":"angular","@storybook/html":"html","@storybook/web-components":"web-components","@storybook/polymer":"polymer","@storybook/ember":"ember","@storybook/marko":"marko","@storybook/mithril":"mithril","@storybook/riot":"riot","@storybook/svelte":"svelte","@storybook/preact":"preact","@storybook/rax":"rax","@storybook/server":"server"},te=console,Ie=({dependencies:e,devDependencies:r,peerDependencies:t},o)=>[Object.entries(e||{}).find(o),Object.entries(r||{}).find(o),Object.entries(t||{}).find(o)],Fe=e=>{let[r,t,o]=Ie(e,([a])=>re[a]),[n,s]=r||t||o||[],c=n?re[n]:void 0;return r&&t&&r[0]===t[0]&&te.warn(`Found "${r[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),r&&o&&r[0]===o[0]&&te.warn(`Found "${r[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{version:s,framework:c,frameworkPackage:n,renderer:c,rendererPackage:n}},Ne=["ts","js","tsx","jsx","mjs","cjs"],F=(e,r)=>{let t=Ae.join(r,e),o=Ne.find(n=>_e.existsSync(`${t}.${n}`));return o?`${t}.${o}`:null},Te=e=>{let r=".storybook",t=e.scripts?.storybook;if(t){let o=ee(t,"-c","--config-dir");o&&(r=o)}return{configDir:r,mainConfig:F("main",r),previewConfig:F("preview",r),managerConfig:F("manager",r)}},pt=e=>{let r=Fe(e),t=Te(e);return{...r,...t}};import{readJSON as oe}from"fs-extra";import{dirname as De,join as Le}from"path";import Me from"find-up";import Be from"resolve-from";import{logger as He}from"@storybook/node-logger";var Ue=async e=>{let r=await Me("package.json",{cwd:e.configDir});if(!r)return{};let t=De(r),{dependencies:o=[],devDependencies:n=[]}=await oe(r)||{},s=Object.keys({...o,...n});return(await Promise.all(s.map(async a=>{try{let f=Be(t,Le(a,"package.json")),{storybook:i,name:m,version:p}=await oe(f)||{};if(i?.url)return{id:m,...i,version:p}}catch(f){if(f.code==="ERR_PACKAGE_PATH_NOT_EXPORTED")return;He.warn(`unable to find package.json for ${a}`);return}}))).filter(Boolean).reduce((a,f)=>({...a,[f.id]:{id:f.id.toLowerCase(),url:ne(f.url),title:f.title,version:f.version}}),{})},qe=e=>fetch(`${e}/iframe.html`).then(async({ok:r,status:t})=>{if(r){if(t!==200)return!1;let o=await fetch(`${e}/iframe.html`,{headers:{Accept:"application/json"}});if(o.ok&&(await o.json().catch(n=>({}))).loginUrl)return!1}return r},()=>!1),ne=e=>e.replace(/\/$/,""),ze=e=>{let r=e.replace(/[A-Z]/g,t=>` ${t}`).replace(/[-_][A-Z]/gi,t=>` ${t.toUpperCase()}`).replace(/-/g," ").replace(/_/g," ");return`${r.substring(0,1).toUpperCase()}${r.substring(1)}`.trim()};async function ht(e){let r=await e.presets.apply("refs",await Ue(e));return Object.entries(r).forEach(([t,o])=>{if(o.disable){delete r[t];return}r[t.toLowerCase()]={...o,id:t.toLowerCase(),title:o.title||ze(o.id||t),url:ne(o.url)}}),await Promise.all(Object.entries(r).map(async([t,o])=>{let n=await qe(o.url);r[t]={...o,type:n?"server-checked":"unknown"}})),r}import{makeRe as Je}from"picomatch";function se(e){let r=Je(e,{fastpaths:!1,noglobstar:!1,bash:!1});if(!r.source.startsWith("^"))throw new Error(`Invalid glob: >> ${e} >> ${r}`);return e.startsWith("./")?new RegExp(["^\\.",e.startsWith("./**")?"":"[\\\\/]",r.source.substring(1)].join("")):r}import We from"handlebars";function kt(e,r){return We.compile(e)(r)}var Ot=(e,r)=>Object.entries(r).reduce((t,[o,n])=>{let s=n.replace(/\\/g,"/").replace(/\$/g,"$$$");return t.replace(new RegExp(`{{${o}}}`,"g"),s)},e);import Ye from"path";function jt({configDir:e}){return P(e),b(Ye.resolve(e,"main"))}import N from"path";import{logger as Ke}from"@storybook/node-logger";import{dedent as Ve}from"ts-dedent";function Tt({configDir:e}){let r=u(N.resolve(e,"addons")),t=u(N.resolve(e,"manager"));if((r||t)&&Ke.info("=> Loading custom manager config"),r&&t)throw new Error(Ve`
17
- You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${N.resolve(e,"addons")})`);return t||r}import T from"path";import{dedent as Ge}from"ts-dedent";function Ht({configDir:e}){let r=u(T.resolve(e,"config")),t=u(T.resolve(e,"preview"));if(r&&t)throw new Error(Ge`
18
- You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${T.resolve(e,"config")})`);return t||r}import Xe from"chalk";function zt(e,r){console.log(Xe.cyan(e)),console.dir(r,{depth:null})}import Ze from"fs";import v from"path";import{scan as Qe}from"picomatch";import ie from"slash";var O="",ae="**/*.@(mdx|stories.mdx|stories.tsx|stories.ts|stories.jsx|stories.js)",er=(e,r)=>{try{return Ze.lstatSync(v.resolve(e,r)).isDirectory()}catch{return!1}},rr=({configDir:e,workingDir:r,directory:t})=>{let o=v.resolve(e,t),n=v.relative(r,o);return X(n)},tr=(e,{configDir:r,workingDir:t})=>{let o;if(typeof e=="string"){let f=Qe(e);if(f.isGlob){let i=f.prefix+f.base,m=f.glob;o={titlePrefix:O,directory:i,files:m}}else er(r,e)?o={titlePrefix:O,directory:e,files:ae}:o={titlePrefix:O,directory:v.dirname(e),files:v.basename(e)}}else o={titlePrefix:O,files:ae,...e};let n=ie(o.files),{directory:s}=o,c=ie(rr({configDir:r,workingDir:t,directory:s})).replace(/\/$/,""),a=se(`${c}/${n}`);return{...o,directory:c,importPathMatcher:a}},Zt=(e,r)=>e.map(t=>tr(t,r));import or from"pretty-hrtime";var ce=e=>or(process.hrtime(e)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes");var oo=async(e,r,t)=>{let o=0,n,s=()=>{};e.get("/progress",(f,i)=>{let m=!1,p=()=>{m=!0,i.end()};i.on("close",p),!(m||i.writableEnded)&&(i.setHeader("Cache-Control","no-cache"),i.setHeader("Content-Type","text/event-stream"),i.setHeader("Connection","keep-alive"),i.flushHeaders(),s=d=>{m||i.writableEnded||(i.write(`data: ${JSON.stringify(d)}
19
-
20
- `),i.flush(),d.value===1&&p())})});let c=(f,i,m)=>{o=Math.max(f,o);let p={value:o,message:i.charAt(0).toUpperCase()+i.slice(1)};if(i==="building"){let d=m&&m.match(/(\d+)\/(\d+)/)||[],C=parseInt(d[1],10),y=parseInt(d[2],10);!Number.isNaN(C)&&!Number.isNaN(y)&&(p.modules={complete:C,total:y},n=y)}o===1&&(t.cache&&t.cache.set("modulesCount",n),p.message||(p.message=`Completed in ${ce(r)}.`)),s(p)},a=await t.cache?.get("modulesCount").catch(()=>{})||1e3;return{handler:c,modulesCount:a}};import nr from"fs-extra";async function io(e){return nr.readFile(e,{encoding:"utf8"})}function co(){let{NODE_OPTIONS:e,NODE_PRESERVE_SYMLINKS:r}=process.env;return!!r||e?.includes("--preserve-symlinks")}import fe from"path";import{sync as D}from"pkg-dir";import g from"fs";var me=(e,r={})=>Object.entries(r).reduce((t,[o,n])=>t.replace(new RegExp(`%${o}%`,"g"),n),e);function uo(e,r){let t=g.readFileSync(`${D(__dirname)}/templates/base-preview-body.html`,"utf8"),o=fe.resolve(e,"preview-body.html"),n=t;return g.existsSync(o)&&(n=g.readFileSync(o,"utf8")+n),me(n,r)}function go(e,r){let t=g.readFileSync(`${D(__dirname)}/templates/base-preview-head.html`,"utf8"),o=fe.resolve(e,"preview-head.html"),n=t;return g.existsSync(o)&&(n+=g.readFileSync(o,"utf8")),me(n,r)}function yo(){return`${D(__dirname)}/templates/preview.ejs`}import{dedent as sr}from"ts-dedent";var ir=["@storybook/html","@storybook/preact","@storybook/react","@storybook/server","@storybook/svelte","@storybook/vue","@storybook/vue3","@storybook/web-components"];function xo(e){if(ir.includes(e))throw new Error(sr`
16
+ `);return typeof r=="object"?r.name:r}async function ot(e){let{renderer:r}=await e.presets.apply("core",{},e);return r||G(e)}function X(e,r,t){if(!e)return null;let o=e.split(/[\s='"]+/),n=o.indexOf(t);return n===-1&&(n=o.indexOf(r)),n===-1?null:o[n+1]}import je from"path";import Ae from"fs-extra";var Z={"@storybook/react":"react","@storybook/vue":"vue","@storybook/vue3":"vue3","@storybook/angular":"angular","@storybook/html":"html","@storybook/web-components":"web-components","@storybook/polymer":"polymer","@storybook/ember":"ember","@storybook/marko":"marko","@storybook/mithril":"mithril","@storybook/riot":"riot","@storybook/svelte":"svelte","@storybook/preact":"preact","@storybook/rax":"rax","@storybook/server":"server"},Q=console,_e=({dependencies:e,devDependencies:r,peerDependencies:t},o)=>[Object.entries(e||{}).find(o),Object.entries(r||{}).find(o),Object.entries(t||{}).find(o)],Ie=e=>{let[r,t,o]=_e(e,([i])=>Z[i]),[n,s]=r||t||o||[],a=n?Z[n]:void 0;return r&&t&&r[0]===t[0]&&Q.warn(`Found "${r[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),r&&o&&r[0]===o[0]&&Q.warn(`Found "${r[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{version:s,framework:a,frameworkPackage:n,renderer:a,rendererPackage:n}},Fe=["ts","js","tsx","jsx","mjs","cjs"],_=(e,r)=>{let t=je.join(r,e),o=Fe.find(n=>Ae.existsSync(`${t}.${n}`));return o?`${t}.${o}`:null},Ne=e=>{let r=".storybook",t=e.scripts?.storybook;if(t){let o=X(t,"-c","--config-dir");o&&(r=o)}return{configDir:r,mainConfig:_("main",r),previewConfig:_("preview",r),managerConfig:_("manager",r)}},ft=e=>{let r=Ie(e),t=Ne(e);return{...r,...t}};import{readJSON as ee}from"fs-extra";import{dirname as Te,join as De}from"path";import Le from"find-up";import Be from"resolve-from";import{logger as ze}from"@storybook/node-logger";var Me=async e=>{let r=await Le("package.json",{cwd:e.configDir});if(!r)return{};let t=Te(r),{dependencies:o=[],devDependencies:n=[]}=await ee(r)||{},s=Object.keys({...o,...n});return(await Promise.all(s.map(async i=>{try{let c=Be(t,De(i,"package.json")),{storybook:f,name:p,version:d}=await ee(c)||{};if(f?.url)return{id:p,...f,version:d}}catch(c){if(c.code==="ERR_PACKAGE_PATH_NOT_EXPORTED")return;ze.warn(`unable to find package.json for ${i}`);return}}))).filter(Boolean).reduce((i,c)=>({...i,[c.id]:{id:c.id.toLowerCase(),url:re(c.url),title:c.title,version:c.version}}),{})},Ue=e=>fetch(`${e}/iframe.html`).then(async({ok:r,status:t})=>{if(r){if(t!==200)return!1;let o=await fetch(`${e}/iframe.html`,{headers:{Accept:"application/json"}});if(o.ok&&(await o.json().catch(n=>({}))).loginUrl)return!1}return r},()=>!1),re=e=>e.replace(/\/$/,""),Je=e=>{let r=e.replace(/[A-Z]/g,t=>` ${t}`).replace(/[-_][A-Z]/gi,t=>` ${t.toUpperCase()}`).replace(/-/g," ").replace(/_/g," ");return`${r.substring(0,1).toUpperCase()}${r.substring(1)}`.trim()};async function yt(e){let r=await e.presets.apply("refs",await Me(e));return Object.entries(r).forEach(([t,o])=>{if(o.disable){delete r[t];return}r[t.toLowerCase()]={...o,id:t.toLowerCase(),title:o.title||Je(o.id||t),url:re(o.url)}}),await Promise.all(Object.entries(r).map(async([t,o])=>{let n=await Ue(o.url);r[t]={...o,type:n?"server-checked":"unknown"}})),r}import{makeRe as We}from"picomatch";function te(e){let r=We(e,{fastpaths:!1,noglobstar:!1,bash:!1});if(!r.source.startsWith("^"))throw new Error(`Invalid glob: >> ${e} >> ${r}`);return e.startsWith("./")?new RegExp(["^\\.",e.startsWith("./**")?"":"[\\\\/]",r.source.substring(1)].join("")):r}import qe from"handlebars";function kt(e,r){return qe.compile(e)(r)}var Ct=(e,r)=>Object.entries(r).reduce((t,[o,n])=>{let s=n.replace(/\\/g,"/").replace(/\$/g,"$$$");return t.replace(new RegExp(`{{${o}}}`,"g"),s)},e);import He from"path";function St({configDir:e}){return h(e),y(He.resolve(e,"main"))}import I from"path";import{logger as Ye}from"@storybook/node-logger";import{dedent as Ke}from"ts-dedent";function Ft({configDir:e}){let r=g(I.resolve(e,"addons")),t=g(I.resolve(e,"manager"));if((r||t)&&Ye.info("=> Loading custom manager config"),r&&t)throw new Error(Ke`
17
+ You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${I.resolve(e,"addons")})`);return t||r}import F from"path";import{dedent as Ve}from"ts-dedent";function Bt({configDir:e}){let r=g(F.resolve(e,"config")),t=g(F.resolve(e,"preview"));if(r&&t)throw new Error(Ve`
18
+ You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${F.resolve(e,"config")})`);return t||r}import Ge from"chalk";function Ut(e,r){console.log(Ge.cyan(e)),console.dir(r,{depth:null})}import Xe from"fs";import x from"path";import{scan as Ze}from"picomatch";import oe from"slash";var C="",ne="**/*.@(mdx|stories.mdx|stories.tsx|stories.ts|stories.jsx|stories.js)",Qe=(e,r)=>{try{return Xe.lstatSync(x.resolve(e,r)).isDirectory()}catch{return!1}},er=({configDir:e,workingDir:r,directory:t})=>{let o=x.resolve(e,t),n=x.relative(r,o);return K(n)},rr=(e,{configDir:r,workingDir:t})=>{let o;if(typeof e=="string"){let c=Ze(e);if(c.isGlob){let f=c.prefix+c.base,p=c.glob;o={titlePrefix:C,directory:f,files:p}}else Qe(r,e)?o={titlePrefix:C,directory:e,files:ne}:o={titlePrefix:C,directory:x.dirname(e),files:x.basename(e)}}else o={titlePrefix:C,files:ne,...e};let n=oe(o.files),{directory:s}=o,a=oe(er({configDir:r,workingDir:t,directory:s})).replace(/\/$/,""),i=te(`${a}/${n}`);return{...o,directory:a,importPathMatcher:i}},Gt=(e,r)=>e.map(t=>rr(t,r));import tr from"fs-extra";async function Qt(e){return tr.readFile(e,{encoding:"utf8"})}function ro(){let{NODE_OPTIONS:e,NODE_PRESERVE_SYMLINKS:r}=process.env;return!!r||e?.includes("--preserve-symlinks")}import se from"path";import{sync as ie}from"pkg-dir";import u from"fs";var ae=(e,r={})=>Object.entries(r).reduce((t,[o,n])=>t.replace(new RegExp(`%${o}%`,"g"),n),e);function io(e,r){let t=u.readFileSync(`${ie(__dirname)}/templates/base-preview-body.html`,"utf8"),o=se.resolve(e,"preview-body.html"),n=t;return u.existsSync(o)&&(n=u.readFileSync(o,"utf8")+n),ae(n,r)}function ao(e,r){let t=u.readFileSync(`${ie(__dirname)}/templates/base-preview-head.html`,"utf8"),o=se.resolve(e,"preview-head.html"),n=t;return u.existsSync(o)&&(n+=u.readFileSync(o,"utf8")),ae(n,r)}import{dedent as or}from"ts-dedent";var nr=["@storybook/html","@storybook/preact","@storybook/react","@storybook/server","@storybook/svelte","@storybook/vue","@storybook/vue3","@storybook/web-components"];function po(e){if(nr.includes(e))throw new Error(or`
21
19
  Invalid value of ${e} in the 'framework' field of Storybook config.
22
20
 
23
21
  Please run 'npx sb@next automigrate'
24
22
 
25
23
  See the v7 Migration guide for more information:
26
24
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
27
- `)}function Co(){return e=>e}export{E as boost,Dr as cache,Br as checkAddonOrder,j as createFileSystemCache,he as filterPresetsConfig,et as findDistEsm,Ue as getAutoRefs,rr as getDirectoryFromWorkingDir,Q as getFrameworkName,u as getInterpretedFile,B as getInterpretedFileWithExt,ke as getPresets,uo as getPreviewBodyTemplate,go as getPreviewHeadTemplate,yo as getPreviewMainTemplate,zr as getProjectRoot,ht as getRefs,st as getRendererName,ee as getStorybookConfiguration,pt as getStorybookInfo,se as globToRegexp,kt as handlebars,R as interopRequireDefault,Ot as interpolate,co as isPreservingSymlinks,Sr as loadAllPresets,q as loadCustomPresets,Kr as loadEnvs,jt as loadMainConfig,Tt as loadManagerOrAddonsFile,Pe as loadPreset,Ht as loadPreviewOrConfigFile,zt as logConfig,G as nodePathsToArray,Zt as normalizeStories,tr as normalizeStoriesEntry,X as normalizeStoryPath,io as readTemplate,xe as resolveAddonName,K as resolvePathInStorybookCache,Co as satisfies,b as serverRequire,S as serverResolve,Vr as stringifyEnvs,Gr as stringifyProcessEnvs,oo as useProgressReporting,P as validateConfigurationFiles,xo as validateFrameworkName};
25
+ `)}function lo(){return e=>e}export{w as boost,Nr as cache,Lr as checkAddonOrder,S as createFileSystemCache,be as filterPresetsConfig,Zr as findDistEsm,Me as getAutoRefs,er as getDirectoryFromWorkingDir,G as getFrameworkName,g as getInterpretedFile,D as getInterpretedFileWithExt,Pe as getPresets,io as getPreviewBodyTemplate,ao as getPreviewHeadTemplate,Ur as getProjectRoot,yt as getRefs,ot as getRendererName,X as getStorybookConfiguration,ft as getStorybookInfo,te as globToRegexp,kt as handlebars,O as interopRequireDefault,Ct as interpolate,ro as isPreservingSymlinks,Er as loadAllPresets,z as loadCustomPresets,Hr as loadEnvs,St as loadMainConfig,Ft as loadManagerOrAddonsFile,ke as loadPreset,Bt as loadPreviewOrConfigFile,Ut as logConfig,Y as nodePathsToArray,Gt as normalizeStories,rr as normalizeStoriesEntry,K as normalizeStoryPath,Qt as readTemplate,xe as resolveAddonName,q as resolvePathInStorybookCache,lo as satisfies,y as serverRequire,E as serverResolve,Yr as stringifyEnvs,Kr as stringifyProcessEnvs,h as validateConfigurationFiles,po as validateFrameworkName};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/core-common",
3
- "version": "7.0.0-alpha.52",
3
+ "version": "7.0.0-alpha.53",
4
4
  "description": "Storybook framework-agnostic API",
5
5
  "keywords": [
6
6
  "storybook"
@@ -47,11 +47,11 @@
47
47
  },
48
48
  "dependencies": {
49
49
  "@babel/core": "^7.20.2",
50
- "@storybook/node-logger": "7.0.0-alpha.52",
51
- "@storybook/types": "7.0.0-alpha.52",
50
+ "@storybook/node-logger": "7.0.0-alpha.53",
51
+ "@storybook/types": "7.0.0-alpha.53",
52
52
  "@types/babel__core": "^7.1.20",
53
53
  "@types/express": "^4.7.0",
54
- "@types/node": "^16.0.0 || ^18.0.0",
54
+ "@types/node": "^16.0.0",
55
55
  "@types/pretty-hrtime": "^1.0.0",
56
56
  "chalk": "^4.1.0",
57
57
  "esbuild": "^0.14.48",
@@ -97,5 +97,5 @@
97
97
  ],
98
98
  "platform": "node"
99
99
  },
100
- "gitHead": "d2494e3f51ce0f55bcb1ef693a6477c669fbe666"
100
+ "gitHead": "fd1cf81615a5ddac3369e7bb567a1a43081fdc23"
101
101
  }
@@ -1,43 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <title><%= htmlWebpackPlugin.options.title || 'Storybook'%></title>
6
-
7
- <% if (htmlWebpackPlugin.files.favicon) { %>
8
- <link rel="shortcut icon" href="<%= htmlWebpackPlugin.files.favicon%>" />
9
- <% } %>
10
-
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
-
13
- <% if (typeof headHtmlSnippet !== 'undefined') { %> <%= headHtmlSnippet %> <% } %> <%
14
- htmlWebpackPlugin.files.css.forEach(file => { %>
15
- <link href="<%= file %>" rel="stylesheet" />
16
- <% }); %>
17
-
18
- <style>
19
- #storybook-root[hidden],
20
- #storybook-docs[hidden] {
21
- display: none !important;
22
- }
23
- </style>
24
- </head>
25
- <body>
26
- <% if (typeof bodyHtmlSnippet !== 'undefined') { %> <%= bodyHtmlSnippet %> <% } %>
27
-
28
- <div id="storybook-root"></div>
29
- <div id="storybook-docs"></div>
30
-
31
- <% if (typeof globals !== 'undefined' && Object.keys(globals).length) { %>
32
- <script>
33
- <% for (var varName in globals) { %>
34
- <% if (globals[varName] != undefined) { %>
35
- window['<%=varName%>'] = <%= JSON.stringify(globals[varName]) %>;
36
- <% } %>
37
- <% } %>
38
- </script>
39
- <% } %> <% htmlWebpackPlugin.files.js.forEach(file => { %>
40
- <script src="<%= file %>"></script>
41
- <% }); %>
42
- </body>
43
- </html>