@storybook/core-common 7.0.0-alpha.16 → 7.0.0-alpha.17

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
@@ -266,6 +266,10 @@ declare type DocsOptions = {
266
266
  * Should we generate a docs entry per CSF file?
267
267
  */
268
268
  docsPage?: boolean;
269
+ /**
270
+ * Only show doc entries in the side bar (usually set with the `--docs` CLI flag)
271
+ */
272
+ docsMode?: boolean;
269
273
  };
270
274
  /**
271
275
  * The interface for Storybook configuration in `main.ts` files.
package/dist/index.js CHANGED
@@ -1,28 +1,28 @@
1
- "use strict";var Ve=Object.create;var $=Object.defineProperty;var Xe=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Qe=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty;var n=(e,t)=>$(e,"name",{value:t,configurable:!0});var tt=(e,t)=>{for(var r in t)$(e,r,{get:t[r],enumerable:!0})},ne=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Ze(t))!et.call(e,s)&&s!==r&&$(e,s,{get:()=>t[s],enumerable:!(o=Xe(t,s))||o.enumerable});return e};var l=(e,t,r)=>(r=e!=null?Ve(Qe(e)):{},ne(t||!e||!e.__esModule?$(r,"default",{value:e,enumerable:!0}):r,e)),rt=e=>ne($({},"__esModule",{value:!0}),e);var Bt={};tt(Bt,{boost:()=>O,cache:()=>Ft,checkAddonOrder:()=>lt,createFileSystemCache:()=>D,filterPresetsConfig:()=>ue,findDistEsm:()=>Ut,getAutoRefs:()=>Se,getDirectoryFromWorkingDir:()=>Je,getInterpretedFile:()=>y,getInterpretedFileWithExt:()=>B,getPresets:()=>xe,getPreviewBodyTemplate:()=>Rt,getPreviewHeadTemplate:()=>It,getPreviewMainTemplate:()=>Nt,getProjectRoot:()=>mt,getRefs:()=>Et,getStorybookConfiguration:()=>V,getStorybookInfo:()=>kt,globToRegexp:()=>te,handlebars:()=>ht,interopRequireDefault:()=>S,interpolate:()=>Tt,loadAllPresets:()=>ft,loadCustomPresets:()=>q,loadEnvs:()=>ut,loadMainConfig:()=>xt,loadManagerOrAddonsFile:()=>Ct,loadPreset:()=>ye,loadPreviewOrConfigFile:()=>Ot,logConfig:()=>St,nodePathsToArray:()=>z,normalizeStories:()=>Mt,normalizeStoriesEntry:()=>Ge,normalizeStoryPath:()=>K,readTemplate:()=>Ht,resolveAddonName:()=>ge,resolvePathInStorybookCache:()=>Q,serverRequire:()=>x,serverResolve:()=>A,stringifyEnvs:()=>gt,stringifyProcessEnvs:()=>yt,useProgressReporting:()=>At,validateConfigurationFiles:()=>P});module.exports=rt(Bt);var de=require("ts-dedent"),v=require("@storybook/node-logger");var F=l(require("path"));var U=l(require("fs")),O=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function ot(){return[...Array.from(O)]}n(ot,"sortExtensions");var se=ot();function y(e){return se.map(t=>e.endsWith(t)?e:`${e}${t}`).find(t=>U.default.existsSync(t))}n(y,"getInterpretedFile");function B(e){return se.map(t=>({path:e.endsWith(t)?e:`${e}${t}`,ext:t})).find(t=>U.default.existsSync(t.path))}n(B,"getInterpretedFileWithExt");var ie=!1;function S(e){if(ie===!1){let{register:o}=require("esbuild-register/dist/node");ie=!0,o({target:`node${process.version.slice(1)}`,format:"cjs",hookIgnoreNodeModules:!1,tsconfigRaw:`{
1
+ "use strict";var Ve=Object.create;var R=Object.defineProperty;var Ke=Object.getOwnPropertyDescriptor;var Xe=Object.getOwnPropertyNames;var Ze=Object.getPrototypeOf,Qe=Object.prototype.hasOwnProperty;var er=(e,r)=>{for(var t in r)R(e,t,{get:r[t],enumerable:!0})},oe=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of Xe(r))!Qe.call(e,n)&&n!==t&&R(e,n,{get:()=>r[n],enumerable:!(o=Ke(r,n))||o.enumerable});return e};var p=(e,r,t)=>(t=e!=null?Ve(Ze(e)):{},oe(r||!e||!e.__esModule?R(t,"default",{value:e,enumerable:!0}):t,e)),rr=e=>oe(R({},"__esModule",{value:!0}),e);var qr={};er(qr,{boost:()=>E,cache:()=>jr,checkAddonOrder:()=>pr,createFileSystemCache:()=>D,filterPresetsConfig:()=>le,findDistEsm:()=>Br,getAutoRefs:()=>$e,getDirectoryFromWorkingDir:()=>ze,getInterpretedFile:()=>u,getInterpretedFileWithExt:()=>q,getPresets:()=>he,getPreviewBodyTemplate:()=>Ar,getPreviewHeadTemplate:()=>Ir,getPreviewMainTemplate:()=>Fr,getProjectRoot:()=>dr,getRefs:()=>Cr,getStorybookConfiguration:()=>V,getStorybookInfo:()=>wr,globToRegexp:()=>ee,handlebars:()=>yr,interopRequireDefault:()=>$,interpolate:()=>Nr,loadAllPresets:()=>cr,loadCustomPresets:()=>J,loadEnvs:()=>lr,loadMainConfig:()=>hr,loadManagerOrAddonsFile:()=>Rr,loadPreset:()=>ue,loadPreviewOrConfigFile:()=>Er,logConfig:()=>$r,nodePathsToArray:()=>Y,normalizeStories:()=>_r,normalizeStoriesEntry:()=>We,normalizeStoryPath:()=>G,readTemplate:()=>Mr,resolveAddonName:()=>ge,resolvePathInStorybookCache:()=>Z,serverRequire:()=>h,serverResolve:()=>S,stringifyEnvs:()=>gr,stringifyProcessEnvs:()=>ur,useProgressReporting:()=>Sr,validateConfigurationFiles:()=>w});module.exports=rr(qr);var me=require("ts-dedent"),x=require("@storybook/node-logger");var j=p(require("path"));var B=p(require("fs")),E=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function tr(){return[...Array.from(E)]}var ne=tr();function u(e){return ne.map(r=>e.endsWith(r)?e:`${e}${r}`).find(r=>B.default.existsSync(r))}function q(e){return ne.map(r=>({path:e.endsWith(r)?e:`${e}${r}`,ext:r})).find(r=>B.default.existsSync(r.path))}var se=!1;function $(e){if(se===!1){let{register:o}=require("esbuild-register/dist/node");se=!0,o({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}n(S,"interopRequireDefault");function nt(e){for(let t=0;t<e.length;t+=1){let r=B(e[t]);if(r)return r}}n(nt,"getCandidate");function x(e){let t=A(e);return t?S(t):null}n(x,"serverRequire");function A(e){let t=Array.isArray(e)?e:[e],r=nt(t);return r?r.path:null}n(A,"serverResolve");var k=require("ts-dedent"),ae=l(require("util-deprecate")),ce=l(require("glob")),b=l(require("path"));var st=(0,ae.default)(()=>{},k.dedent`
6
+ }`})}let r=require(e);return typeof r=="object"&&r!==null&&typeof r.default<"u"?r.default:r}function or(e){for(let r=0;r<e.length;r+=1){let t=q(e[r]);if(t)return t}}function h(e){let r=S(e);return r?$(r):null}function S(e){let r=Array.isArray(e)?e:[e],t=or(r);return t?t.path:null}var P=require("ts-dedent"),ie=p(require("util-deprecate")),ae=p(require("glob")),b=p(require("path"));var nr=(0,ie.default)(()=>{},P.dedent`
7
7
  Configuration files such as "config", "presets" and "addons" are deprecated and will be removed in Storybook 7.0.
8
8
  Read more about it in the migration guide: https://github.com/storybookjs/storybook/blob/master/MIGRATION.md#to-mainjs-configuration
9
- `),W=n((e,t,r)=>{let o=b.default.resolve(r,e),s=b.default.resolve(r,t);throw new Error(k.dedent`
9
+ `),H=(e,r,t)=>{let o=b.default.resolve(t,e),n=b.default.resolve(t,r);throw new Error(P.dedent`
10
10
  You have mixing configuration files:
11
11
  ${o}
12
- ${s}
13
- "${e}" and "${t}" cannot coexist.
12
+ ${n}
13
+ "${e}" and "${r}" cannot coexist.
14
14
  Please check the documentation for migration steps: https://github.com/storybookjs/storybook/blob/master/MIGRATION.md#to-mainjs-configuration
15
- `)},"errorMixingConfigFiles");function P(e){let t=`{${Array.from(O).join(",")}}`,r=n(a=>!!ce.default.sync(b.default.resolve(e,`${a}${t}`)).length,"exists"),o=r("main"),s=r("config");if(!o&&!s)throw new Error(k.dedent`
15
+ `)};function w(e){let r=`{${Array.from(E).join(",")}}`,t=i=>!!ae.default.sync(b.default.resolve(e,`${i}${r}`)).length,o=t("main"),n=t("config");if(!o&&!n)throw new Error(P.dedent`
16
16
  No configuration files have been found in your configDir (${b.default.resolve(e)}).
17
17
  Storybook needs either a "main" or "config" file.
18
- `);if(o&&s)throw new Error(k.dedent`
19
- You have both a "main" and a "config". Please remove the "config" file from your configDir (${b.default.resolve(e,"config")})`);let i=r("presets");o&&i&&W("main","presets",e),r("preview")&&s&&W("preview","config",e);let f=r("addons");r("manager")&&f&&W("manager","addons",e),(i||s||f)&&st()}n(P,"validateConfigurationFiles");function q({configDir:e}){P(e);let t=x(F.default.resolve(e,"presets"));if(x(F.default.resolve(e,"main"))){let o=A(F.default.resolve(e,"main"));if(o)return[o]}return t||[]}n(q,"loadCustomPresets");var fe=l(require("resolve-from")),pe=n((e,t)=>{try{return(0,fe.default)(e,t)}catch{return}},"safeResolveFrom"),le=n(e=>{try{return require.resolve(e)}catch{return}},"safeResolve");var j=n(e=>e!=null&&typeof e=="object"&&Array.isArray(e)===!1,"isObject"),it=n(e=>typeof e=="function","isFunction");function ue(e){return e.filter(t=>{let r=typeof t=="string"?t:t.name;return!/@storybook[\\\\/]preset-typescript/.test(r)})}n(ue,"filterPresetsConfig");function me(e,t,r){return it(e)?[...e({...r,...t})]:Array.isArray(e)?[...e]:[]}n(me,"resolvePresetFunction");var ge=n((e,t,r)=>{let o=t.startsWith("/")?le:pe.bind(null,e),s=o(t);if(s){if(t.match(/\/(manager|register(-panel)?)(\.(js|ts|tsx|jsx))?$/))return{type:"virtual",name:t,managerEntries:[s]};if(t.match(/\/(preset)(\.(js|ts|tsx|jsx))?$/))return{type:"presets",name:s}}let i=t,p=o(`${i}/manager`),f=o(`${i}/register`)||o(`${i}/register-panel`),m=o(`${i}/preview`),a=o(`${i}/preset`);if(!(p||m)&&a)return{type:"presets",name:a};if(p||f||m||a){let c=[];return p&&c.push(p),!p&&f&&!a&&c.push(f),{type:"virtual",name:i,...c.length?{managerEntries:c}:{},...m?{previewAnnotations:[m]}:{},...a?{presets:[{name:a,options:r}]}:{}}}if(s)return{type:"presets",name:s}},"resolveAddonName"),at=n(({configDir:e})=>t=>{let r=j(t)&&t.options||void 0,o=j(t)?t.name:t;try{let s=ge(e,o,r);return{...r?{options:r}:{},...s}}catch{v.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/
20
- ${t}`)}},"map");async function ct(e){if(e.type==="virtual"){let{type:r,name:o,...s}=e;return s}let t=e.name?e.name:e;return S(t)}n(ct,"getContent");async function ye(e,t,r){try{let o=e.name?e.name:e,s=e.options?e.options:{},i=await ct(e);if(typeof i=="function"&&(i=i(r,s)),Array.isArray(i))return R(i,t+1,r);if(j(i)){let{addons:p,presets:f,...m}=i,a=me(f,s,r),c=me(p,s,r);return[...await R([...a],t+1,r),...await R([...c.map(at(r))].filter(Boolean),t+1,r),{name:o,preset:m,options:s}]}throw new Error(de.dedent`
18
+ `);if(o&&n)throw new Error(P.dedent`
19
+ You have both a "main" and a "config". Please remove the "config" file from your configDir (${b.default.resolve(e,"config")})`);let s=t("presets");o&&s&&H("main","presets",e),t("preview")&&n&&H("preview","config",e);let c=t("addons");t("manager")&&c&&H("manager","addons",e),(s||n||c)&&nr()}function J({configDir:e}){w(e);let r=h(j.default.resolve(e,"presets"));if(h(j.default.resolve(e,"main"))){let o=S(j.default.resolve(e,"main"));if(o)return[o]}return r||[]}var ce=p(require("resolve-from")),fe=(e,r)=>{try{return(0,ce.default)(e,r)}catch{return}},pe=e=>{try{return require.resolve(e)}catch{return}};var k=e=>e!=null&&typeof e=="object"&&Array.isArray(e)===!1,sr=e=>typeof e=="function";function le(e){return e.filter(r=>{let t=typeof r=="string"?r:r.name;return!/@storybook[\\\\/]preset-typescript/.test(t)})}function de(e,r,t){return sr(e)?[...e({...t,...r})]:Array.isArray(e)?[...e]:[]}var ge=(e,r,t)=>{let o=r.startsWith("/")?pe:fe.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=r,f=o(`${s}/manager`),c=o(`${s}/register`)||o(`${s}/register-panel`),d=o(`${s}/preview`),i=o(`${s}/preset`);if(!(f||d)&&i)return{type:"presets",name:i};if(f||c||d||i){let a=[];return f&&a.push(f),!f&&c&&!i&&a.push(c),{type:"virtual",name:s,...a.length?{managerEntries:a}:{},...d?{previewAnnotations:[d]}:{},...i?{presets:[{name:i,options:t}]}:{}}}if(n)return{type:"presets",name:n}},ir=({configDir:e})=>r=>{let t=k(r)&&r.options||void 0,o=k(r)?r.name:r;try{let n=ge(e,o,t);return{...t?{options:t}:{},...n}}catch{x.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/
20
+ ${r}`)}};async function ar(e){if(e.type==="virtual"){let{type:t,name:o,...n}=e;return n}let r=e.name?e.name:e;return $(r)}async function ue(e,r,t){try{let o=e.name?e.name:e,n=e.options?e.options:{},s=await ar(e);if(typeof s=="function"&&(s=s(t,n)),Array.isArray(s))return A(s,r+1,t);if(k(s)){let{addons:f,presets:c,...d}=s,i=de(c,n,t),a=de(f,n,t);return[...await A([...i],r+1,t),...await A([...a.map(ir(t))].filter(Boolean),r+1,t),{name:o,preset:d,options:n}]}throw new Error(me.dedent`
21
21
  ${e} is not a valid preset
22
- `)}catch(o){let s=t>0?` Failed to load preset: ${JSON.stringify(e)} on level ${t}`:` Failed to load preset: ${JSON.stringify(e)}`;return v.logger.warn(s),v.logger.error(o),[]}}n(ye,"loadPreset");async function R(e,t,r){return!e||!Array.isArray(e)||!e.length?[]:(t||v.logger.info("=> Loading presets"),(await Promise.all(e.map(async o=>ye(o,t,r)))).reduce((o,s)=>o.concat(s),[]))}n(R,"loadPresets");function he(e,t,r,o,s){let i=new Promise(p=>p(r));return e.length?e.reduce((p,{preset:f,options:m})=>{let a=f[t];if(!a)return p;if(typeof a=="function"){let c=a,d={preset:f,combinedOptions:{...s,...o,...m,presetsList:e,presets:{apply:async(u,g,C={})=>he(e,u,g,C,s)}}};return p.then(u=>c.call(d.preset,u,d.combinedOptions))}return p.then(c=>Array.isArray(c)&&Array.isArray(a)?[...c,...a]:j(c)&&j(a)?{...c,...a}:a)},i):i}n(he,"applyPresets");async function xe(e,t){let r=await R(e,0,t);return{apply:async(o,s,i={})=>he(r,o,s,i,t)}}n(xe,"getPresets");async function ft(e){let{corePresets:t=[],overridePresets:r=[],...o}=e,s=[...t,...q(e),...r],i=ue(s);return i.length<s.length&&v.logger.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),xe(i,o)}n(ft,"loadAllPresets");var{logger:Y}=require("@storybook/node-logger"),J=n(e=>t=>{let r=t.name||t;return r&&r.includes(e)},"predicateFor"),pt=n((e,t,r)=>{let o=e.findIndex(J("@storybook/addon-essentials")),s=e.findIndex(J(t.name)),i=e.findIndex(J(r.name));return s===-1&&t.inEssentials&&(s=o),i===-1&&r.inEssentials&&(i=o),s!==-1&&i!==-1&&s<=i},"isCorrectOrder"),lt=n(async({before:e,after:t,configFile:r,getConfig:o})=>{try{let s=await o(r);if(!(s!=null&&s.addons)){Y.warn("Unable to find 'addons' config in main Storybook config");return}if(!pt(s.addons,e,t)){let i=" (or '@storybook/addon-essentials')",p=`'${e.name}'${e.inEssentials?i:""}`,f=`'${t.name}'${t.inEssentials?i:""}`;Y.warn(`Expected ${p} to be listed before ${f} in main Storybook config.`)}}catch{Y.warn(`Unable to load config file: ${r}`)}},"checkAddonOrder");var be=require("lazy-universal-dotenv");var E=l(require("path")),G=l(require("find-up")),mt=n(()=>{let e;try{let t=G.default.sync(".git",{type:"directory"});t&&(e=e||E.default.join(t,".."))}catch{}try{let t=G.default.sync(".svn",{type:"directory"});t&&(e=e||E.default.join(t,".."))}catch{}try{e=e||__dirname.split("node_modules")[0]}catch{}return e||process.cwd()},"getProjectRoot"),z=n(e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(t=>E.default.resolve("./",t)),"nodePathsToArray"),dt=/^\.{1,2}([/\\]|$)/;function K(e){return dt.test(e)?e:`.${E.default.sep}${e}`}n(K,"normalizeStoryPath");function ut(e={}){let t=e.production?"production":"development",r={NODE_ENV:process.env.NODE_ENV||t,NODE_PATH:process.env.NODE_PATH||"",STORYBOOK:process.env.STORYBOOK||"true",PUBLIC_URL:e.production?".":""};Object.keys(process.env).filter(f=>/^STORYBOOK_/.test(f)).forEach(f=>{r[f]=process.env[f]});let o=Object.entries(r).reduce((f,[m,a])=>Object.assign(f,{[m]:JSON.stringify(a)}),{}),{stringified:s,raw:i}=(0,be.getEnvironment)({nodeEnv:r.NODE_ENV}),p={...r,...i};return p.NODE_PATH=z(p.NODE_PATH||""),{stringified:{...o,...s},raw:p}}n(ut,"loadEnvs");var gt=n(e=>Object.entries(e).reduce((t,[r,o])=>(t[r]=JSON.stringify(o),t),{}),"stringifyEnvs"),yt=n(e=>Object.entries(e).reduce((r,[o,s])=>(r[`process.env.${o}`]=JSON.stringify(s),r),{"process.env.XSTORYBOOK_EXAMPLE_APP":'""'}),"stringifyProcessEnvs");var ve=l(require("handlebars"));function ht(e,t){return ve.default.compile(e)(t)}n(ht,"handlebars");var we=l(require("path"));function xt({configDir:e}){return P(e),x(we.default.resolve(e,"main"))}n(xt,"loadMainConfig");function V(e,t,r){if(!e)return null;let o=e.split(/[\s='"]+/),s=o.indexOf(r);return s===-1&&(s=o.indexOf(t)),s===-1?null:o[s+1]}n(V,"getStorybookConfiguration");var Pe=l(require("path")),je=l(require("fs-extra"));var $e={"@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,bt=n(({dependencies:e,devDependencies:t,peerDependencies:r},o)=>[Object.entries(e||{}).find(o),Object.entries(t||{}).find(o),Object.entries(r||{}).find(o)],"findDependency"),vt=n(e=>{let[t,r,o]=bt(e,([f])=>$e[f]),[s,i]=t||r||o||[],p=s?$e[s]:void 0;return t&&r&&t[0]===r[0]&&ke.warn(`Found "${t[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),t&&o&&t[0]===o[0]&&ke.warn(`Found "${t[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{framework:p,version:i,frameworkPackage:s}},"getFrameworkInfo"),wt=["ts","js","tsx","jsx","mjs","cjs"],X=n((e,t)=>{let r=Pe.default.join(t,e),o=wt.find(s=>je.default.existsSync(`${r}.${s}`));return o?`${r}.${o}`:null},"findConfigFile"),$t=n(e=>{var o;let t=".storybook",r=(o=e.scripts)==null?void 0:o.storybook;if(r){let s=V(r,"-c","--config-dir");s&&(t=s)}return{configDir:t,mainConfig:X("main",t),previewConfig:X("preview",t),managerConfig:X("manager",t)}},"getConfigInfo"),kt=n(e=>{let t=vt(e),r=$t(e);return{...t,...r}},"getStorybookInfo");var Z=require("fs-extra"),I=require("path"),Ee=l(require("find-up")),Ce=l(require("resolve-from")),Oe=require("@storybook/node-logger"),Se=n(async e=>{let t=await(0,Ee.default)("package.json",{cwd:e.configDir});if(!t)return{};let r=(0,I.dirname)(t),{dependencies:o=[],devDependencies:s=[]}=await(0,Z.readJSON)(t)||{},i=Object.keys({...o,...s});return(await Promise.all(i.map(async f=>{try{let m=(0,Ce.default)(r,(0,I.join)(f,"package.json")),{storybook:a,name:c,version:d}=await(0,Z.readJSON)(m)||{};if(a!=null&&a.url)return{id:c,...a,version:d}}catch{Oe.logger.warn(`unable to find package.json for ${f}`);return}}))).filter(Boolean).reduce((f,m)=>({...f,[m.id]:{id:m.id.toLowerCase(),url:Ae(m.url),title:m.title,version:m.version}}),{})},"getAutoRefs"),Pt=n(e=>fetch(`${e}/iframe.html`).then(({ok:t})=>t,()=>!1),"checkRef"),Ae=n(e=>e.replace(/\/$/,""),"stripTrailingSlash"),jt=n(e=>{let t=e.replace(/[A-Z]/g,r=>` ${r}`).replace(/[-_][A-Z]/gi,r=>` ${r.toUpperCase()}`).replace(/-/g," ").replace(/_/g," ");return`${t.substring(0,1).toUpperCase()}${t.substring(1)}`.trim()},"toTitle");async function Et(e){let t=await e.presets.apply("refs",await Se(e));return Object.entries(t).forEach(([r,o])=>{if(o.disable){delete t[r];return}t[r.toLowerCase()]={...o,id:r.toLowerCase(),title:o.title||jt(o.id||r),url:Ae(o.url)}}),await Promise.all(Object.entries(t).map(async([r,o])=>{let s=await Pt(o.url);t[r]={...o,type:s?"server-checked":"unknown"}})),t}n(Et,"getRefs");var N=l(require("path")),Fe=require("@storybook/node-logger"),Re=require("ts-dedent");function Ct({configDir:e}){let t=y(N.default.resolve(e,"addons")),r=y(N.default.resolve(e,"manager"));if((t||r)&&Fe.logger.info("=> Loading custom manager config"),t&&r)throw new Error(Re.dedent`
23
- You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${N.default.resolve(e,"addons")})`);return r||t}n(Ct,"loadManagerOrAddonsFile");var T=l(require("path")),Ie=require("ts-dedent");function Ot({configDir:e}){let t=y(T.default.resolve(e,"config")),r=y(T.default.resolve(e,"preview"));if(t&&r)throw new Error(Ie.dedent`
24
- You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${T.default.resolve(e,"config")})`);return r||t}n(Ot,"loadPreviewOrConfigFile");var Ne=l(require("chalk"));function St(e,t){console.log(Ne.default.cyan(e)),console.dir(t,{depth:null})}n(St,"logConfig");var Te=l(require("pretty-hrtime")),_e=n(e=>(0,Te.default)(process.hrtime(e)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes"),"printDuration");var At=n(async(e,t,r)=>{var m;let o=0,s,i=n(()=>{},"reportProgress");e.get("/progress",(a,c)=>{let d=!1,u=n(()=>{d=!0,c.end()},"close");c.on("close",u),!(d||c.writableEnded)&&(c.setHeader("Cache-Control","no-cache"),c.setHeader("Content-Type","text/event-stream"),c.setHeader("Connection","keep-alive"),c.flushHeaders(),i=n(g=>{d||c.writableEnded||(c.write(`data: ${JSON.stringify(g)}
22
+ `)}catch(o){let n=r>0?` Failed to load preset: ${JSON.stringify(e)} on level ${r}`:` Failed to load preset: ${JSON.stringify(e)}`;return x.logger.warn(n),x.logger.error(o),[]}}async function A(e,r,t){return!e||!Array.isArray(e)||!e.length?[]:(r||x.logger.info("=> Loading presets"),(await Promise.all(e.map(async o=>ue(o,r,t)))).reduce((o,n)=>o.concat(n),[]))}function ye(e,r,t,o,n){let s=new Promise(f=>f(t));return e.length?e.reduce((f,{preset:c,options:d})=>{let i=c[r];if(!i)return f;if(typeof i=="function"){let a=i,m={preset:c,combinedOptions:{...n,...o,...d,presetsList:e,presets:{apply:async(l,g,C={})=>ye(e,l,g,C,n)}}};return f.then(l=>a.call(m.preset,l,m.combinedOptions))}return f.then(a=>Array.isArray(a)&&Array.isArray(i)?[...a,...i]:k(a)&&k(i)?{...a,...i}:i)},s):s}async function he(e,r){let t=await A(e,0,r);return{apply:async(o,n,s={})=>ye(t,o,n,s,r)}}async function cr(e){let{corePresets:r=[],overridePresets:t=[],...o}=e,n=[...r,...J(e),...t],s=le(n);return s.length<n.length&&x.logger.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),he(s,o)}var{logger:U}=require("@storybook/node-logger"),z=e=>r=>{let t=r.name||r;return t&&t.includes(e)},fr=(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},pr=async({before:e,after:r,configFile:t,getConfig:o})=>{try{let n=await o(t);if(!(n!=null&&n.addons)){U.warn("Unable to find 'addons' config in main Storybook config");return}if(!fr(n.addons,e,r)){let s=" (or '@storybook/addon-essentials')",f=`'${e.name}'${e.inEssentials?s:""}`,c=`'${r.name}'${r.inEssentials?s:""}`;U.warn(`Expected ${f} to be listed before ${c} in main Storybook config.`)}}catch{U.warn(`Unable to load config file: ${t}`)}};var be=require("lazy-universal-dotenv");var O=p(require("path")),W=p(require("find-up")),dr=()=>{let e;try{let r=W.default.sync(".git",{type:"directory"});r&&(e=e||O.default.join(r,".."))}catch{}try{let r=W.default.sync(".svn",{type:"directory"});r&&(e=e||O.default.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=>O.default.resolve("./",r)),mr=/^\.{1,2}([/\\]|$)/;function G(e){return mr.test(e)?e:`.${O.default.sep}${e}`}function lr(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(c=>/^STORYBOOK_/.test(c)).forEach(c=>{t[c]=process.env[c]});let o=Object.entries(t).reduce((c,[d,i])=>Object.assign(c,{[d]:JSON.stringify(i)}),{}),{stringified:n,raw:s}=(0,be.getEnvironment)({nodeEnv:t.NODE_ENV}),f={...t,...s};return f.NODE_PATH=Y(f.NODE_PATH||""),{stringified:{...o,...n},raw:f}}var gr=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 xe=p(require("handlebars"));function yr(e,r){return xe.default.compile(e)(r)}var ve=p(require("path"));function hr({configDir:e}){return w(e),h(ve.default.resolve(e,"main"))}function V(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=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"},we=console,br=({dependencies:e,devDependencies:r,peerDependencies:t},o)=>[Object.entries(e||{}).find(o),Object.entries(r||{}).find(o),Object.entries(t||{}).find(o)],xr=e=>{let[r,t,o]=br(e,([c])=>Pe[c]),[n,s]=r||t||o||[],f=n?Pe[n]:void 0;return r&&t&&r[0]===t[0]&&we.warn(`Found "${r[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),r&&o&&r[0]===o[0]&&we.warn(`Found "${r[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{framework:f,version:s,frameworkPackage:n}},vr=["ts","js","tsx","jsx","mjs","cjs"],K=(e,r)=>{let t=ke.default.join(r,e),o=vr.find(n=>Oe.default.existsSync(`${t}.${n}`));return o?`${t}.${o}`:null},Pr=e=>{var o;let r=".storybook",t=(o=e.scripts)==null?void 0:o.storybook;if(t){let n=V(t,"-c","--config-dir");n&&(r=n)}return{configDir:r,mainConfig:K("main",r),previewConfig:K("preview",r),managerConfig:K("manager",r)}},wr=e=>{let r=xr(e),t=Pr(e);return{...r,...t}};var X=require("fs-extra"),I=require("path"),Ce=p(require("find-up")),Re=p(require("resolve-from")),Ee=require("@storybook/node-logger"),$e=async e=>{let r=await(0,Ce.default)("package.json",{cwd:e.configDir});if(!r)return{};let t=(0,I.dirname)(r),{dependencies:o=[],devDependencies:n=[]}=await(0,X.readJSON)(r)||{},s=Object.keys({...o,...n});return(await Promise.all(s.map(async c=>{try{let d=(0,Re.default)(t,(0,I.join)(c,"package.json")),{storybook:i,name:a,version:m}=await(0,X.readJSON)(d)||{};if(i!=null&&i.url)return{id:a,...i,version:m}}catch{Ee.logger.warn(`unable to find package.json for ${c}`);return}}))).filter(Boolean).reduce((c,d)=>({...c,[d.id]:{id:d.id.toLowerCase(),url:Se(d.url),title:d.title,version:d.version}}),{})},kr=e=>fetch(`${e}/iframe.html`).then(({ok:r})=>r,()=>!1),Se=e=>e.replace(/\/$/,""),Or=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 Cr(e){let r=await e.presets.apply("refs",await $e(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||Or(o.id||t),url:Se(o.url)}}),await Promise.all(Object.entries(r).map(async([t,o])=>{let n=await kr(o.url);r[t]={...o,type:n?"server-checked":"unknown"}})),r}var F=p(require("path")),je=require("@storybook/node-logger"),Ae=require("ts-dedent");function Rr({configDir:e}){let r=u(F.default.resolve(e,"addons")),t=u(F.default.resolve(e,"manager"));if((r||t)&&je.logger.info("=> Loading custom manager config"),r&&t)throw new Error(Ae.dedent`
23
+ 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")),Ie=require("ts-dedent");function Er({configDir:e}){let r=u(N.default.resolve(e,"config")),t=u(N.default.resolve(e,"preview"));if(r&&t)throw new Error(Ie.dedent`
24
+ 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 Fe=p(require("chalk"));function $r(e,r){console.log(Fe.default.cyan(e)),console.dir(r,{depth:null})}var Ne=p(require("pretty-hrtime")),Te=e=>(0,Ne.default)(process.hrtime(e)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes");var Sr=async(e,r,t)=>{var d;let o=0,n,s=()=>{};e.get("/progress",(i,a)=>{let m=!1,l=()=>{m=!0,a.end()};a.on("close",l),!(m||a.writableEnded)&&(a.setHeader("Cache-Control","no-cache"),a.setHeader("Content-Type","text/event-stream"),a.setHeader("Connection","keep-alive"),a.flushHeaders(),s=g=>{m||a.writableEnded||(a.write(`data: ${JSON.stringify(g)}
25
25
 
26
- `),c.flush(),g.value===1&&u())},"reportProgress"))});let p=n((a,c,d)=>{o=Math.max(a,o);let u={value:o,message:c.charAt(0).toUpperCase()+c.slice(1)};if(c==="building"){let g=d&&d.match(/(\d+)\/(\d+)/)||[],C=parseInt(g[1],10),H=parseInt(g[2],10);!Number.isNaN(C)&&!Number.isNaN(H)&&(u.modules={complete:C,total:H},s=H)}o===1&&(r.cache&&r.cache.set("modulesCount",s),u.message||(u.message=`Completed in ${_e(t)}.`)),i(u)},"handler"),f=await((m=r.cache)==null?void 0:m.get("modulesCount").catch(()=>{}))||1e3;return{handler:p,modulesCount:f}},"useProgressReporting");var _=l(require("path")),De=l(require("pkg-dir"));function Q(e){let t=process.cwd(),r=De.default.sync(t),o;return r?o=_.default.resolve(r,"node_modules/.cache/storybook"):o=_.default.resolve(t,".cache/storybook"),_.default.join(o,e)}n(Q,"resolvePathInStorybookCache");var Le=l(require("file-system-cache"));function D(e){return(0,Le.default)(e)}n(D,"createFileSystemCache");var Ft=D({basePath:Q("dev-server"),ns:"storybook"});var ee=l(require("path")),L=require("pkg-dir"),h=l(require("fs")),Me=n((e,t={})=>Object.entries(t).reduce((r,[o,s])=>r.replace(new RegExp(`%${o}%`,"g"),s),e),"interpolate");function Rt(e,t){let r=h.default.readFileSync(`${(0,L.sync)(__dirname)}/templates/base-preview-body.html`,"utf8"),o=ee.default.resolve(e,"preview-body.html"),s=r;return h.default.existsSync(o)&&(s=h.default.readFileSync(o,"utf8")+s),Me(s,t)}n(Rt,"getPreviewBodyTemplate");function It(e,t){let r=h.default.readFileSync(`${(0,L.sync)(__dirname)}/templates/base-preview-head.html`,"utf8"),o=ee.default.resolve(e,"preview-head.html"),s=r;return h.default.existsSync(o)&&(s+=h.default.readFileSync(o,"utf8")),Me(s,t)}n(It,"getPreviewHeadTemplate");function Nt(){return`${(0,L.sync)(__dirname)}/templates/preview.ejs`}n(Nt,"getPreviewMainTemplate");var Tt=n((e,t)=>Object.entries(t).reduce((r,[o,s])=>{let i=s.replace(/\\/g,"/").replace(/\$/g,"$$$");return r.replace(new RegExp(`{{${o}}}`,"g"),i)},e),"interpolate");var He=require("picomatch");function te(e){let t=(0,He.makeRe)(e,{fastpaths:!1,noglobstar:!1,bash:!1});if(!t.source.startsWith("^"))throw new Error(`Invalid glob: >> ${e} >> ${t}`);return e.startsWith("./")?new RegExp(["^\\.",e.startsWith("./**")?"":"[\\\\/]",t.source.substring(1)].join("")):t}n(te,"globToRegexp");var Be=l(require("fs")),w=l(require("path")),We=l(require("util-deprecate")),qe=require("ts-dedent"),Ye=require("picomatch"),re=l(require("slash"));var M="",Ue="**/*.(stories|docs).@(mdx|tsx|ts|jsx|js)",_t=(0,We.default)(e=>e.input.replace(e[1],`@${e[1]}`),qe.dedent`
26
+ `),a.flush(),g.value===1&&l())})});let f=(i,a,m)=>{o=Math.max(i,o);let l={value:o,message:a.charAt(0).toUpperCase()+a.slice(1)};if(a==="building"){let g=m&&m.match(/(\d+)\/(\d+)/)||[],C=parseInt(g[1],10),M=parseInt(g[2],10);!Number.isNaN(C)&&!Number.isNaN(M)&&(l.modules={complete:C,total:M},n=M)}o===1&&(t.cache&&t.cache.set("modulesCount",n),l.message||(l.message=`Completed in ${Te(r)}.`)),s(l)},c=await((d=t.cache)==null?void 0:d.get("modulesCount").catch(()=>{}))||1e3;return{handler:f,modulesCount:c}};var T=p(require("path")),De=p(require("pkg-dir"));function Z(e){let r=process.cwd(),t=De.default.sync(r),o;return t?o=T.default.resolve(t,"node_modules/.cache/storybook"):o=T.default.resolve(r,".cache/storybook"),T.default.join(o,e)}var Le=p(require("file-system-cache"));function D(e){return(0,Le.default)(e)}var jr=D({basePath:Z("dev-server"),ns:"storybook"});var Q=p(require("path")),L=require("pkg-dir"),y=p(require("fs")),_e=(e,r={})=>Object.entries(r).reduce((t,[o,n])=>t.replace(new RegExp(`%${o}%`,"g"),n),e);function Ar(e,r){let t=y.default.readFileSync(`${(0,L.sync)(__dirname)}/templates/base-preview-body.html`,"utf8"),o=Q.default.resolve(e,"preview-body.html"),n=t;return y.default.existsSync(o)&&(n=y.default.readFileSync(o,"utf8")+n),_e(n,r)}function Ir(e,r){let t=y.default.readFileSync(`${(0,L.sync)(__dirname)}/templates/base-preview-head.html`,"utf8"),o=Q.default.resolve(e,"preview-head.html"),n=t;return y.default.existsSync(o)&&(n+=y.default.readFileSync(o,"utf8")),_e(n,r)}function Fr(){return`${(0,L.sync)(__dirname)}/templates/preview.ejs`}var Nr=(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 Me=require("picomatch");function ee(e){let r=(0,Me.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 qe=p(require("fs")),v=p(require("path")),He=p(require("util-deprecate")),Je=require("ts-dedent"),Ue=require("picomatch"),re=p(require("slash"));var _="",Be="**/*.(stories|docs).@(mdx|tsx|ts|jsx|js)",Tr=(0,He.default)(e=>e.input.replace(e[1],`@${e[1]}`),Je.dedent`
27
27
  You have specified an invalid glob, we've attempted to fix it, please ensure that the glob you specify is valid. See: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#correct-globs-in-mainjs
28
- `),Dt=n(e=>{let t=e.match(/\.(\([^)]+\))/);return t?_t(t):e},"detectBadGlob"),Lt=n((e,t)=>{try{return Be.default.lstatSync(w.default.resolve(e,t)).isDirectory()}catch{return!1}},"isDirectory"),Je=n(({configDir:e,workingDir:t,directory:r})=>{let o=w.default.resolve(e,r),s=w.default.relative(t,o);return K(s)},"getDirectoryFromWorkingDir"),Ge=n((e,{configDir:t,workingDir:r})=>{let o;if(typeof e=="string"){let m=Dt(e),a=(0,Ye.scan)(m);if(a.isGlob){let c=a.prefix+a.base,d=a.glob;o={titlePrefix:M,directory:c,files:d}}else Lt(t,e)?o={titlePrefix:M,directory:e,files:Ue}:o={titlePrefix:M,directory:w.default.dirname(e),files:w.default.basename(e)}}else o={titlePrefix:M,files:Ue,...e};let s=(0,re.default)(o.files),{directory:i}=o,p=(0,re.default)(Je({configDir:t,workingDir:r,directory:i})).replace(/\/$/,""),f=te(`${p}/${s}`);return{...o,directory:p,importPathMatcher:f}},"normalizeStoriesEntry"),Mt=n((e,t)=>e.map(r=>Ge(r,t)),"normalizeStories");var ze=l(require("fs-extra"));async function Ht(e){return ze.default.readFile(e,{encoding:"utf8"})}n(Ht,"readTemplate");var oe=l(require("path")),Ke=require("find-up"),Ut=n((e,t)=>{let r=(0,Ke.sync)("package.json",{cwd:e});if(!r)throw new Error(`Could not find package.json in: ${e}`);let o=oe.default.dirname(r);return oe.default.join(o,"dist","esm",t)},"findDistEsm");0&&(module.exports={boost,cache,checkAddonOrder,createFileSystemCache,filterPresetsConfig,findDistEsm,getAutoRefs,getDirectoryFromWorkingDir,getInterpretedFile,getInterpretedFileWithExt,getPresets,getPreviewBodyTemplate,getPreviewHeadTemplate,getPreviewMainTemplate,getProjectRoot,getRefs,getStorybookConfiguration,getStorybookInfo,globToRegexp,handlebars,interopRequireDefault,interpolate,loadAllPresets,loadCustomPresets,loadEnvs,loadMainConfig,loadManagerOrAddonsFile,loadPreset,loadPreviewOrConfigFile,logConfig,nodePathsToArray,normalizeStories,normalizeStoriesEntry,normalizeStoryPath,readTemplate,resolveAddonName,resolvePathInStorybookCache,serverRequire,serverResolve,stringifyEnvs,stringifyProcessEnvs,useProgressReporting,validateConfigurationFiles});
28
+ `),Dr=e=>{let r=e.match(/\.(\([^)]+\))/);return r?Tr(r):e},Lr=(e,r)=>{try{return qe.default.lstatSync(v.default.resolve(e,r)).isDirectory()}catch{return!1}},ze=({configDir:e,workingDir:r,directory:t})=>{let o=v.default.resolve(e,t),n=v.default.relative(r,o);return G(n)},We=(e,{configDir:r,workingDir:t})=>{let o;if(typeof e=="string"){let d=Dr(e),i=(0,Ue.scan)(d);if(i.isGlob){let a=i.prefix+i.base,m=i.glob;o={titlePrefix:_,directory:a,files:m}}else Lr(r,e)?o={titlePrefix:_,directory:e,files:Be}:o={titlePrefix:_,directory:v.default.dirname(e),files:v.default.basename(e)}}else o={titlePrefix:_,files:Be,...e};let n=(0,re.default)(o.files),{directory:s}=o,f=(0,re.default)(ze({configDir:r,workingDir:t,directory:s})).replace(/\/$/,""),c=ee(`${f}/${n}`);return{...o,directory:f,importPathMatcher:c}},_r=(e,r)=>e.map(t=>We(t,r));var Ye=p(require("fs-extra"));async function Mr(e){return Ye.default.readFile(e,{encoding:"utf8"})}var te=p(require("path")),Ge=require("find-up"),Br=(e,r)=>{let t=(0,Ge.sync)("package.json",{cwd:e});if(!t)throw new Error(`Could not find package.json in: ${e}`);let o=te.default.dirname(t);return te.default.join(o,"dist","esm",r)};0&&(module.exports={boost,cache,checkAddonOrder,createFileSystemCache,filterPresetsConfig,findDistEsm,getAutoRefs,getDirectoryFromWorkingDir,getInterpretedFile,getInterpretedFileWithExt,getPresets,getPreviewBodyTemplate,getPreviewHeadTemplate,getPreviewMainTemplate,getProjectRoot,getRefs,getStorybookConfiguration,getStorybookInfo,globToRegexp,handlebars,interopRequireDefault,interpolate,loadAllPresets,loadCustomPresets,loadEnvs,loadMainConfig,loadManagerOrAddonsFile,loadPreset,loadPreviewOrConfigFile,logConfig,nodePathsToArray,normalizeStories,normalizeStoriesEntry,normalizeStoryPath,readTemplate,resolveAddonName,resolvePathInStorybookCache,serverRequire,serverResolve,stringifyEnvs,stringifyProcessEnvs,useProgressReporting,validateConfigurationFiles});
package/dist/index.mjs CHANGED
@@ -1,28 +1,28 @@
1
- var ue=Object.defineProperty;var n=(e,t)=>ue(e,"name",{value:t,configurable:!0}),g=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,r)=>(typeof require!="undefined"?require:t)[r]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var c={};import{dedent as $e}from"ts-dedent";import{logger as w}from"@storybook/node-logger";import N from"path";import W from"fs";var A=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function ye(){return[...Array.from(A)]}n(ye,"sortExtensions");var q=ye();function y(e){return q.map(t=>e.endsWith(t)?e:`${e}${t}`).find(t=>W.existsSync(t))}n(y,"getInterpretedFile");function Y(e){return q.map(t=>({path:e.endsWith(t)?e:`${e}${t}`,ext:t})).find(t=>W.existsSync(t.path))}n(Y,"getInterpretedFileWithExt");var J=!1;function F(e){if(J===!1){let{register:o}=g("esbuild-register/dist/node");J=!0,o({target:`node${process.version.slice(1)}`,format:"cjs",hookIgnoreNodeModules:!1,tsconfigRaw:`{
1
+ var m=(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')});var a={};import{dedent as ve}from"ts-dedent";import{logger as v}from"@storybook/node-logger";import A from"path";import K from"fs";var T=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function me(){return[...Array.from(T)]}var U=me();function u(e){return U.map(r=>e.endsWith(r)?e:`${e}${r}`).find(r=>K.existsSync(r))}function q(e){return U.map(r=>({path:e.endsWith(r)?e:`${e}${r}`,ext:r})).find(r=>K.existsSync(r.path))}var V=!1;function $(e){if(V===!1){let{register:o}=m("esbuild-register/dist/node");V=!0,o({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=g(e);return typeof t=="object"&&t!==null&&typeof t.default<"u"?t.default:t}n(F,"interopRequireDefault");function he(e){for(let t=0;t<e.length;t+=1){let r=Y(e[t]);if(r)return r}}n(he,"getCandidate");function b(e){let t=R(e);return t?F(t):null}n(b,"serverRequire");function R(e){let t=Array.isArray(e)?e:[e],r=he(t);return r?r.path:null}n(R,"serverResolve");import{dedent as j}from"ts-dedent";import xe from"util-deprecate";import be from"glob";import v from"path";var ve=xe(()=>{},j`
6
+ }`})}let r=m(e);return typeof r=="object"&&r!==null&&typeof r.default<"u"?r.default:r}function ue(e){for(let r=0;r<e.length;r+=1){let t=q(e[r]);if(t)return t}}function x(e){let r=I(e);return r?$(r):null}function I(e){let r=Array.isArray(e)?e:[e],t=ue(r);return t?t.path:null}import{dedent as w}from"ts-dedent";import ye from"util-deprecate";import be from"glob";import h from"path";var xe=ye(()=>{},w`
7
7
  Configuration files such as "config", "presets" and "addons" are deprecated and will be removed in Storybook 7.0.
8
8
  Read more about it in the migration guide: https://github.com/storybookjs/storybook/blob/master/MIGRATION.md#to-mainjs-configuration
9
- `),I=n((e,t,r)=>{let o=v.resolve(r,e),s=v.resolve(r,t);throw new Error(j`
9
+ `),j=(e,r,t)=>{let o=h.resolve(t,e),n=h.resolve(t,r);throw new Error(w`
10
10
  You have mixing configuration files:
11
11
  ${o}
12
- ${s}
13
- "${e}" and "${t}" cannot coexist.
12
+ ${n}
13
+ "${e}" and "${r}" cannot coexist.
14
14
  Please check the documentation for migration steps: https://github.com/storybookjs/storybook/blob/master/MIGRATION.md#to-mainjs-configuration
15
- `)},"errorMixingConfigFiles");function E(e){let t=`{${Array.from(A).join(",")}}`,r=n(a=>!!be.sync(v.resolve(e,`${a}${t}`)).length,"exists"),o=r("main"),s=r("config");if(!o&&!s)throw new Error(j`
16
- No configuration files have been found in your configDir (${v.resolve(e)}).
15
+ `)};function C(e){let r=`{${Array.from(T).join(",")}}`,t=i=>!!be.sync(h.resolve(e,`${i}${r}`)).length,o=t("main"),n=t("config");if(!o&&!n)throw new Error(w`
16
+ No configuration files have been found in your configDir (${h.resolve(e)}).
17
17
  Storybook needs either a "main" or "config" file.
18
- `);if(o&&s)throw new Error(j`
19
- You have both a "main" and a "config". Please remove the "config" file from your configDir (${v.resolve(e,"config")})`);let i=r("presets");o&&i&&I("main","presets",e),r("preview")&&s&&I("preview","config",e);let f=r("addons");r("manager")&&f&&I("manager","addons",e),(i||s||f)&&ve()}n(E,"validateConfigurationFiles");function G({configDir:e}){E(e);let t=b(N.resolve(e,"presets"));if(b(N.resolve(e,"main"))){let o=R(N.resolve(e,"main"));if(o)return[o]}return t||[]}n(G,"loadCustomPresets");import we from"resolve-from";var z=n((e,t)=>{try{return we(e,t)}catch{return}},"safeResolveFrom"),K=n(e=>{try{return g.resolve(e)}catch{return}},"safeResolve");var $=n(e=>e!=null&&typeof e=="object"&&Array.isArray(e)===!1,"isObject"),ke=n(e=>typeof e=="function","isFunction");function Pe(e){return e.filter(t=>{let r=typeof t=="string"?t:t.name;return!/@storybook[\\\\/]preset-typescript/.test(r)})}n(Pe,"filterPresetsConfig");function V(e,t,r){return ke(e)?[...e({...r,...t})]:Array.isArray(e)?[...e]:[]}n(V,"resolvePresetFunction");var je=n((e,t,r)=>{let o=t.startsWith("/")?K:z.bind(null,e),s=o(t);if(s){if(t.match(/\/(manager|register(-panel)?)(\.(js|ts|tsx|jsx))?$/))return{type:"virtual",name:t,managerEntries:[s]};if(t.match(/\/(preset)(\.(js|ts|tsx|jsx))?$/))return{type:"presets",name:s}}let i=t,p=o(`${i}/manager`),f=o(`${i}/register`)||o(`${i}/register-panel`),l=o(`${i}/preview`),a=o(`${i}/preset`);if(!(p||l)&&a)return{type:"presets",name:a};if(p||f||l||a){let m=[];return p&&m.push(p),!p&&f&&!a&&m.push(f),{type:"virtual",name:i,...m.length?{managerEntries:m}:{},...l?{previewAnnotations:[l]}:{},...a?{presets:[{name:a,options:r}]}:{}}}if(s)return{type:"presets",name:s}},"resolveAddonName"),Ee=n(({configDir:e})=>t=>{let r=$(t)&&t.options||void 0,o=$(t)?t.name:t;try{let s=je(e,o,r);return{...r?{options:r}:{},...s}}catch{w.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/
20
- ${t}`)}},"map");async function Ce(e){if(e.type==="virtual"){let{type:r,name:o,...s}=e;return s}let t=e.name?e.name:e;return F(t)}n(Ce,"getContent");async function Oe(e,t,r){try{let o=e.name?e.name:e,s=e.options?e.options:{},i=await Ce(e);if(typeof i=="function"&&(i=i(r,s)),Array.isArray(i))return C(i,t+1,r);if($(i)){let{addons:p,presets:f,...l}=i,a=V(f,s,r),m=V(p,s,r);return[...await C([...a],t+1,r),...await C([...m.map(Ee(r))].filter(Boolean),t+1,r),{name:o,preset:l,options:s}]}throw new Error($e`
18
+ `);if(o&&n)throw new Error(w`
19
+ You have both a "main" and a "config". Please remove the "config" file from your configDir (${h.resolve(e,"config")})`);let s=t("presets");o&&s&&j("main","presets",e),t("preview")&&n&&j("preview","config",e);let c=t("addons");t("manager")&&c&&j("manager","addons",e),(s||n||c)&&xe()}function W({configDir:e}){C(e);let r=x(A.resolve(e,"presets"));if(x(A.resolve(e,"main"))){let o=I(A.resolve(e,"main"));if(o)return[o]}return r||[]}import he from"resolve-from";var H=(e,r)=>{try{return he(e,r)}catch{return}},z=e=>{try{return m.resolve(e)}catch{return}};var P=e=>e!=null&&typeof e=="object"&&Array.isArray(e)===!1,Pe=e=>typeof e=="function";function ke(e){return e.filter(r=>{let t=typeof r=="string"?r:r.name;return!/@storybook[\\\\/]preset-typescript/.test(t)})}function Y(e,r,t){return Pe(e)?[...e({...t,...r})]:Array.isArray(e)?[...e]:[]}var Oe=(e,r,t)=>{let o=r.startsWith("/")?z:H.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=r,p=o(`${s}/manager`),c=o(`${s}/register`)||o(`${s}/register-panel`),f=o(`${s}/preview`),i=o(`${s}/preset`);if(!(p||f)&&i)return{type:"presets",name:i};if(p||c||f||i){let l=[];return p&&l.push(p),!p&&c&&!i&&l.push(c),{type:"virtual",name:s,...l.length?{managerEntries:l}:{},...f?{previewAnnotations:[f]}:{},...i?{presets:[{name:i,options:t}]}:{}}}if(n)return{type:"presets",name:n}},we=({configDir:e})=>r=>{let t=P(r)&&r.options||void 0,o=P(r)?r.name:r;try{let n=Oe(e,o,t);return{...t?{options:t}:{},...n}}catch{v.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/
20
+ ${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)}async function Se(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 S(s,r+1,t);if(P(s)){let{addons:p,presets:c,...f}=s,i=Y(c,n,t),l=Y(p,n,t);return[...await S([...i],r+1,t),...await S([...l.map(we(t))].filter(Boolean),r+1,t),{name:o,preset:f,options:n}]}throw new Error(ve`
21
21
  ${e} is not a valid preset
22
- `)}catch(o){let s=t>0?` Failed to load preset: ${JSON.stringify(e)} on level ${t}`:` Failed to load preset: ${JSON.stringify(e)}`;return w.warn(s),w.error(o),[]}}n(Oe,"loadPreset");async function C(e,t,r){return!e||!Array.isArray(e)||!e.length?[]:(t||w.info("=> Loading presets"),(await Promise.all(e.map(async o=>Oe(o,t,r)))).reduce((o,s)=>o.concat(s),[]))}n(C,"loadPresets");function X(e,t,r,o,s){let i=new Promise(p=>p(r));return e.length?e.reduce((p,{preset:f,options:l})=>{let a=f[t];if(!a)return p;if(typeof a=="function"){let m=a,d={preset:f,combinedOptions:{...s,...o,...l,presetsList:e,presets:{apply:async(u,P,x={})=>X(e,u,P,x,s)}}};return p.then(u=>m.call(d.preset,u,d.combinedOptions))}return p.then(m=>Array.isArray(m)&&Array.isArray(a)?[...m,...a]:$(m)&&$(a)?{...m,...a}:a)},i):i}n(X,"applyPresets");async function Se(e,t){let r=await C(e,0,t);return{apply:async(o,s,i={})=>X(r,o,s,i,t)}}n(Se,"getPresets");async function Dt(e){let{corePresets:t=[],overridePresets:r=[],...o}=e,s=[...t,...G(e),...r],i=Pe(s);return i.length<s.length&&w.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),Se(i,o)}n(Dt,"loadAllPresets");var{logger:T}=g("@storybook/node-logger"),_=n(e=>t=>{let r=t.name||t;return r&&r.includes(e)},"predicateFor"),Ae=n((e,t,r)=>{let o=e.findIndex(_("@storybook/addon-essentials")),s=e.findIndex(_(t.name)),i=e.findIndex(_(r.name));return s===-1&&t.inEssentials&&(s=o),i===-1&&r.inEssentials&&(i=o),s!==-1&&i!==-1&&s<=i},"isCorrectOrder"),Mt=n(async({before:e,after:t,configFile:r,getConfig:o})=>{try{let s=await o(r);if(!s?.addons){T.warn("Unable to find 'addons' config in main Storybook config");return}if(!Ae(s.addons,e,t)){let i=" (or '@storybook/addon-essentials')",p=`'${e.name}'${e.inEssentials?i:""}`,f=`'${t.name}'${t.inEssentials?i:""}`;T.warn(`Expected ${p} to be listed before ${f} in main Storybook config.`)}}catch{T.warn(`Unable to load config file: ${r}`)}},"checkAddonOrder");import{getEnvironment as Re}from"lazy-universal-dotenv";import O from"path";import Z from"find-up";var Wt=n(()=>{let e;try{let t=Z.sync(".git",{type:"directory"});t&&(e=e||O.join(t,".."))}catch{}try{let t=Z.sync(".svn",{type:"directory"});t&&(e=e||O.join(t,".."))}catch{}try{e=e||__dirname.split("node_modules")[0]}catch{}return e||process.cwd()},"getProjectRoot"),Q=n(e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(t=>O.resolve("./",t)),"nodePathsToArray"),Fe=/^\.{1,2}([/\\]|$)/;function ee(e){return Fe.test(e)?e:`.${O.sep}${e}`}n(ee,"normalizeStoryPath");function Gt(e={}){let t=e.production?"production":"development",r={NODE_ENV:"production",NODE_PATH:c.NODE_PATH||"",STORYBOOK:c.STORYBOOK||"true",PUBLIC_URL:e.production?".":""};Object.keys(c).filter(f=>/^STORYBOOK_/.test(f)).forEach(f=>{r[f]=c[f]});let o=Object.entries(r).reduce((f,[l,a])=>Object.assign(f,{[l]:JSON.stringify(a)}),{}),{stringified:s,raw:i}=Re({nodeEnv:r.NODE_ENV}),p={...r,...i};return p.NODE_PATH=Q(p.NODE_PATH||""),{stringified:{...o,...s},raw:p}}n(Gt,"loadEnvs");var zt=n(e=>Object.entries(e).reduce((t,[r,o])=>(t[r]=JSON.stringify(o),t),{}),"stringifyEnvs"),Kt=n(e=>Object.entries(e).reduce((r,[o,s])=>(r[`process.env.${o}`]=JSON.stringify(s),r),{"process.env.XSTORYBOOK_EXAMPLE_APP":'""'}),"stringifyProcessEnvs");import Ie from"handlebars";function Zt(e,t){return Ie.compile(e)(t)}n(Zt,"handlebars");import Ne from"path";function or({configDir:e}){return E(e),b(Ne.resolve(e,"main"))}n(or,"loadMainConfig");function te(e,t,r){if(!e)return null;let o=e.split(/[\s='"]+/),s=o.indexOf(r);return s===-1&&(s=o.indexOf(t)),s===-1?null:o[s+1]}n(te,"getStorybookConfiguration");import Te 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"},oe=console,De=n(({dependencies:e,devDependencies:t,peerDependencies:r},o)=>[Object.entries(e||{}).find(o),Object.entries(t||{}).find(o),Object.entries(r||{}).find(o)],"findDependency"),Le=n(e=>{let[t,r,o]=De(e,([f])=>re[f]),[s,i]=t||r||o||[],p=s?re[s]:void 0;return t&&r&&t[0]===r[0]&&oe.warn(`Found "${t[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),t&&o&&t[0]===o[0]&&oe.warn(`Found "${t[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{framework:p,version:i,frameworkPackage:s}},"getFrameworkInfo"),Me=["ts","js","tsx","jsx","mjs","cjs"],D=n((e,t)=>{let r=Te.join(t,e),o=Me.find(s=>_e.existsSync(`${r}.${s}`));return o?`${r}.${o}`:null},"findConfigFile"),He=n(e=>{let t=".storybook",r=e.scripts?.storybook;if(r){let o=te(r,"-c","--config-dir");o&&(t=o)}return{configDir:t,mainConfig:D("main",t),previewConfig:D("preview",t),managerConfig:D("manager",t)}},"getConfigInfo"),fr=n(e=>{let t=Le(e),r=He(e);return{...t,...r}},"getStorybookInfo");import{readJSON as ne}from"fs-extra";import{dirname as Ue,join as Be}from"path";import We from"find-up";import qe from"resolve-from";import{logger as Ye}from"@storybook/node-logger";var Je=n(async e=>{let t=await We("package.json",{cwd:e.configDir});if(!t)return{};let r=Ue(t),{dependencies:o=[],devDependencies:s=[]}=await ne(t)||{},i=Object.keys({...o,...s});return(await Promise.all(i.map(async f=>{try{let l=qe(r,Be(f,"package.json")),{storybook:a,name:m,version:d}=await ne(l)||{};if(a?.url)return{id:m,...a,version:d}}catch{Ye.warn(`unable to find package.json for ${f}`);return}}))).filter(Boolean).reduce((f,l)=>({...f,[l.id]:{id:l.id.toLowerCase(),url:se(l.url),title:l.title,version:l.version}}),{})},"getAutoRefs"),Ge=n(e=>fetch(`${e}/iframe.html`).then(({ok:t})=>t,()=>!1),"checkRef"),se=n(e=>e.replace(/\/$/,""),"stripTrailingSlash"),ze=n(e=>{let t=e.replace(/[A-Z]/g,r=>` ${r}`).replace(/[-_][A-Z]/gi,r=>` ${r.toUpperCase()}`).replace(/-/g," ").replace(/_/g," ");return`${t.substring(0,1).toUpperCase()}${t.substring(1)}`.trim()},"toTitle");async function yr(e){let t=await e.presets.apply("refs",await Je(e));return Object.entries(t).forEach(([r,o])=>{if(o.disable){delete t[r];return}t[r.toLowerCase()]={...o,id:r.toLowerCase(),title:o.title||ze(o.id||r),url:se(o.url)}}),await Promise.all(Object.entries(t).map(async([r,o])=>{let s=await Ge(o.url);t[r]={...o,type:s?"server-checked":"unknown"}})),t}n(yr,"getRefs");import L from"path";import{logger as Ke}from"@storybook/node-logger";import{dedent as Ve}from"ts-dedent";function $r({configDir:e}){let t=y(L.resolve(e,"addons")),r=y(L.resolve(e,"manager"));if((t||r)&&Ke.info("=> Loading custom manager config"),t&&r)throw new Error(Ve`
23
- You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${L.resolve(e,"addons")})`);return r||t}n($r,"loadManagerOrAddonsFile");import M from"path";import{dedent as Xe}from"ts-dedent";function Cr({configDir:e}){let t=y(M.resolve(e,"config")),r=y(M.resolve(e,"preview"));if(t&&r)throw new Error(Xe`
24
- You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${M.resolve(e,"config")})`);return r||t}n(Cr,"loadPreviewOrConfigFile");import Ze from"chalk";function Ar(e,t){console.log(Ze.cyan(e)),console.dir(t,{depth:null})}n(Ar,"logConfig");import Qe from"pretty-hrtime";var ie=n(e=>Qe(process.hrtime(e)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes"),"printDuration");var Tr=n(async(e,t,r)=>{let o=0,s,i=n(()=>{},"reportProgress");e.get("/progress",(l,a)=>{let m=!1,d=n(()=>{m=!0,a.end()},"close");a.on("close",d),!(m||a.writableEnded)&&(a.setHeader("Cache-Control","no-cache"),a.setHeader("Content-Type","text/event-stream"),a.setHeader("Connection","keep-alive"),a.flushHeaders(),i=n(u=>{m||a.writableEnded||(a.write(`data: ${JSON.stringify(u)}
22
+ `)}catch(o){let n=r>0?` Failed to load preset: ${JSON.stringify(e)} on level ${r}`:` Failed to load preset: ${JSON.stringify(e)}`;return v.warn(n),v.error(o),[]}}async function S(e,r,t){return!e||!Array.isArray(e)||!e.length?[]:(r||v.info("=> Loading presets"),(await Promise.all(e.map(async o=>Se(o,r,t)))).reduce((o,n)=>o.concat(n),[]))}function G(e,r,t,o,n){let s=new Promise(p=>p(t));return e.length?e.reduce((p,{preset:c,options:f})=>{let i=c[r];if(!i)return p;if(typeof i=="function"){let l=i,d={preset:c,combinedOptions:{...n,...o,...f,presetsList:e,presets:{apply:async(g,O,b={})=>G(e,g,O,b,n)}}};return p.then(g=>l.call(d.preset,g,d.combinedOptions))}return p.then(l=>Array.isArray(l)&&Array.isArray(i)?[...l,...i]:P(l)&&P(i)?{...l,...i}:i)},s):s}async function Re(e,r){let t=await S(e,0,r);return{apply:async(o,n,s={})=>G(t,o,n,s,r)}}async function Nr(e){let{corePresets:r=[],overridePresets:t=[],...o}=e,n=[...r,...W(e),...t],s=ke(n);return s.length<n.length&&v.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),Re(s,o)}var{logger:D}=m("@storybook/node-logger"),N=e=>r=>{let t=r.name||r;return t&&t.includes(e)},Ee=(e,r,t)=>{let o=e.findIndex(N("@storybook/addon-essentials")),n=e.findIndex(N(r.name)),s=e.findIndex(N(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){D.warn("Unable to find 'addons' config in main Storybook config");return}if(!Ee(n.addons,e,r)){let s=" (or '@storybook/addon-essentials')",p=`'${e.name}'${e.inEssentials?s:""}`,c=`'${r.name}'${r.inEssentials?s:""}`;D.warn(`Expected ${p} to be listed before ${c} in main Storybook config.`)}}catch{D.warn(`Unable to load config file: ${t}`)}};import{getEnvironment as $e}from"lazy-universal-dotenv";import R from"path";import X from"find-up";var Jr=()=>{let e;try{let r=X.sync(".git",{type:"directory"});r&&(e=e||R.join(r,".."))}catch{}try{let r=X.sync(".svn",{type:"directory"});r&&(e=e||R.join(r,".."))}catch{}try{e=e||__dirname.split("node_modules")[0]}catch{}return e||process.cwd()},Z=e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(r=>R.resolve("./",r)),Te=/^\.{1,2}([/\\]|$)/;function Q(e){return Te.test(e)?e:`.${R.sep}${e}`}function Vr(e={}){let r=e.production?"production":"development",t={NODE_ENV:"production",NODE_PATH:a.NODE_PATH||"",STORYBOOK:a.STORYBOOK||"true",PUBLIC_URL:e.production?".":""};Object.keys(a).filter(c=>/^STORYBOOK_/.test(c)).forEach(c=>{t[c]=a[c]});let o=Object.entries(t).reduce((c,[f,i])=>Object.assign(c,{[f]:JSON.stringify(i)}),{}),{stringified:n,raw:s}=$e({nodeEnv:t.NODE_ENV}),p={...t,...s};return p.NODE_PATH=Z(p.NODE_PATH||""),{stringified:{...o,...n},raw:p}}var Wr=e=>Object.entries(e).reduce((r,[t,o])=>(r[t]=JSON.stringify(o),r),{}),Hr=e=>Object.entries(e).reduce((t,[o,n])=>(t[`process.env.${o}`]=JSON.stringify(n),t),{"process.env.XSTORYBOOK_EXAMPLE_APP":'""'});import Ie from"handlebars";function Gr(e,r){return Ie.compile(e)(r)}import je from"path";function rt({configDir:e}){return C(e),x(je.resolve(e,"main"))}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 De 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,Ne=({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]=Ne(e,([c])=>re[c]),[n,s]=r||t||o||[],p=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.`),{framework:p,version:s,frameworkPackage:n}},Le=["ts","js","tsx","jsx","mjs","cjs"],F=(e,r)=>{let t=Ae.join(r,e),o=Le.find(n=>De.existsSync(`${t}.${n}`));return o?`${t}.${o}`:null},Be=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)}},at=e=>{let r=Fe(e),t=Be(e);return{...r,...t}};import{readJSON as oe}from"fs-extra";import{dirname as _e,join as Me}from"path";import Je from"find-up";import Ke from"resolve-from";import{logger as Ue}from"@storybook/node-logger";var qe=async e=>{let r=await Je("package.json",{cwd:e.configDir});if(!r)return{};let t=_e(r),{dependencies:o=[],devDependencies:n=[]}=await oe(r)||{},s=Object.keys({...o,...n});return(await Promise.all(s.map(async c=>{try{let f=Ke(t,Me(c,"package.json")),{storybook:i,name:l,version:d}=await oe(f)||{};if(i?.url)return{id:l,...i,version:d}}catch{Ue.warn(`unable to find package.json for ${c}`);return}}))).filter(Boolean).reduce((c,f)=>({...c,[f.id]:{id:f.id.toLowerCase(),url:ne(f.url),title:f.title,version:f.version}}),{})},Ve=e=>fetch(`${e}/iframe.html`).then(({ok:r})=>r,()=>!1),ne=e=>e.replace(/\/$/,""),We=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 mt(e){let r=await e.presets.apply("refs",await qe(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||We(o.id||t),url:ne(o.url)}}),await Promise.all(Object.entries(r).map(async([t,o])=>{let n=await Ve(o.url);r[t]={...o,type:n?"server-checked":"unknown"}})),r}import L from"path";import{logger as He}from"@storybook/node-logger";import{dedent as ze}from"ts-dedent";function vt({configDir:e}){let r=u(L.resolve(e,"addons")),t=u(L.resolve(e,"manager"));if((r||t)&&He.info("=> Loading custom manager config"),r&&t)throw new Error(ze`
23
+ You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${L.resolve(e,"addons")})`);return t||r}import B from"path";import{dedent as Ye}from"ts-dedent";function Ct({configDir:e}){let r=u(B.resolve(e,"config")),t=u(B.resolve(e,"preview"));if(r&&t)throw new Error(Ye`
24
+ You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${B.resolve(e,"config")})`);return t||r}import Ge from"chalk";function Et(e,r){console.log(Ge.cyan(e)),console.dir(r,{depth:null})}import Xe from"pretty-hrtime";var se=e=>Xe(process.hrtime(e)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes");var At=async(e,r,t)=>{let o=0,n,s=()=>{};e.get("/progress",(f,i)=>{let l=!1,d=()=>{l=!0,i.end()};i.on("close",d),!(l||i.writableEnded)&&(i.setHeader("Cache-Control","no-cache"),i.setHeader("Content-Type","text/event-stream"),i.setHeader("Connection","keep-alive"),i.flushHeaders(),s=g=>{l||i.writableEnded||(i.write(`data: ${JSON.stringify(g)}
25
25
 
26
- `),a.flush(),u.value===1&&d())},"reportProgress"))});let p=n((l,a,m)=>{o=Math.max(l,o);let d={value:o,message:a.charAt(0).toUpperCase()+a.slice(1)};if(a==="building"){let u=m&&m.match(/(\d+)\/(\d+)/)||[],P=parseInt(u[1],10),x=parseInt(u[2],10);!Number.isNaN(P)&&!Number.isNaN(x)&&(d.modules={complete:P,total:x},s=x)}o===1&&(r.cache&&r.cache.set("modulesCount",s),d.message||(d.message=`Completed in ${ie(t)}.`)),i(d)},"handler"),f=await r.cache?.get("modulesCount").catch(()=>{})||1e3;return{handler:p,modulesCount:f}},"useProgressReporting");import H from"path";import et from"pkg-dir";function ae(e){let t=process.cwd(),r=et.sync(t),o;return r?o=H.resolve(r,"node_modules/.cache/storybook"):o=H.resolve(t,".cache/storybook"),H.join(o,e)}n(ae,"resolvePathInStorybookCache");import tt from"file-system-cache";function U(e){return tt(e)}n(U,"createFileSystemCache");var qr=U({basePath:ae("dev-server"),ns:"storybook"});import ce from"path";import{sync as B}from"pkg-dir";import h from"fs";var fe=n((e,t={})=>Object.entries(t).reduce((r,[o,s])=>r.replace(new RegExp(`%${o}%`,"g"),s),e),"interpolate");function Kr(e,t){let r=h.readFileSync(`${B(__dirname)}/templates/base-preview-body.html`,"utf8"),o=ce.resolve(e,"preview-body.html"),s=r;return h.existsSync(o)&&(s=h.readFileSync(o,"utf8")+s),fe(s,t)}n(Kr,"getPreviewBodyTemplate");function Vr(e,t){let r=h.readFileSync(`${B(__dirname)}/templates/base-preview-head.html`,"utf8"),o=ce.resolve(e,"preview-head.html"),s=r;return h.existsSync(o)&&(s+=h.readFileSync(o,"utf8")),fe(s,t)}n(Vr,"getPreviewHeadTemplate");function Xr(){return`${B(__dirname)}/templates/preview.ejs`}n(Xr,"getPreviewMainTemplate");var Qr=n((e,t)=>Object.entries(t).reduce((r,[o,s])=>{let i=s.replace(/\\/g,"/").replace(/\$/g,"$$$");return r.replace(new RegExp(`{{${o}}}`,"g"),i)},e),"interpolate");import{makeRe as rt}from"picomatch";function pe(e){let t=rt(e,{fastpaths:!1,noglobstar:!1,bash:!1});if(!t.source.startsWith("^"))throw new Error(`Invalid glob: >> ${e} >> ${t}`);return e.startsWith("./")?new RegExp(["^\\.",e.startsWith("./**")?"":"[\\\\/]",t.source.substring(1)].join("")):t}n(pe,"globToRegexp");import ot from"fs";import k from"path";import nt from"util-deprecate";import{dedent as st}from"ts-dedent";import{scan as it}from"picomatch";import le from"slash";var S="",me="**/*.(stories|docs).@(mdx|tsx|ts|jsx|js)",at=nt(e=>e.input.replace(e[1],`@${e[1]}`),st`
26
+ `),i.flush(),g.value===1&&d())})});let p=(f,i,l)=>{o=Math.max(f,o);let d={value:o,message:i.charAt(0).toUpperCase()+i.slice(1)};if(i==="building"){let g=l&&l.match(/(\d+)\/(\d+)/)||[],O=parseInt(g[1],10),b=parseInt(g[2],10);!Number.isNaN(O)&&!Number.isNaN(b)&&(d.modules={complete:O,total:b},n=b)}o===1&&(t.cache&&t.cache.set("modulesCount",n),d.message||(d.message=`Completed in ${se(r)}.`)),s(d)},c=await t.cache?.get("modulesCount").catch(()=>{})||1e3;return{handler:p,modulesCount:c}};import _ from"path";import Ze from"pkg-dir";function ie(e){let r=process.cwd(),t=Ze.sync(r),o;return t?o=_.resolve(t,"node_modules/.cache/storybook"):o=_.resolve(r,".cache/storybook"),_.join(o,e)}import Qe from"file-system-cache";function M(e){return Qe(e)}var Kt=M({basePath:ie("dev-server"),ns:"storybook"});import ae from"path";import{sync as J}from"pkg-dir";import y from"fs";var ce=(e,r={})=>Object.entries(r).reduce((t,[o,n])=>t.replace(new RegExp(`%${o}%`,"g"),n),e);function Ht(e,r){let t=y.readFileSync(`${J(__dirname)}/templates/base-preview-body.html`,"utf8"),o=ae.resolve(e,"preview-body.html"),n=t;return y.existsSync(o)&&(n=y.readFileSync(o,"utf8")+n),ce(n,r)}function zt(e,r){let t=y.readFileSync(`${J(__dirname)}/templates/base-preview-head.html`,"utf8"),o=ae.resolve(e,"preview-head.html"),n=t;return y.existsSync(o)&&(n+=y.readFileSync(o,"utf8")),ce(n,r)}function Yt(){return`${J(__dirname)}/templates/preview.ejs`}var Xt=(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{makeRe as er}from"picomatch";function pe(e){let r=er(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 rr from"fs";import k from"path";import tr from"util-deprecate";import{dedent as or}from"ts-dedent";import{scan as nr}from"picomatch";import fe from"slash";var E="",le="**/*.(stories|docs).@(mdx|tsx|ts|jsx|js)",sr=tr(e=>e.input.replace(e[1],`@${e[1]}`),or`
27
27
  You have specified an invalid glob, we've attempted to fix it, please ensure that the glob you specify is valid. See: https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#correct-globs-in-mainjs
28
- `),ct=n(e=>{let t=e.match(/\.(\([^)]+\))/);return t?at(t):e},"detectBadGlob"),ft=n((e,t)=>{try{return ot.lstatSync(k.resolve(e,t)).isDirectory()}catch{return!1}},"isDirectory"),pt=n(({configDir:e,workingDir:t,directory:r})=>{let o=k.resolve(e,r),s=k.relative(t,o);return ee(s)},"getDirectoryFromWorkingDir"),lt=n((e,{configDir:t,workingDir:r})=>{let o;if(typeof e=="string"){let l=ct(e),a=it(l);if(a.isGlob){let m=a.prefix+a.base,d=a.glob;o={titlePrefix:S,directory:m,files:d}}else ft(t,e)?o={titlePrefix:S,directory:e,files:me}:o={titlePrefix:S,directory:k.dirname(e),files:k.basename(e)}}else o={titlePrefix:S,files:me,...e};let s=le(o.files),{directory:i}=o,p=le(pt({configDir:t,workingDir:r,directory:i})).replace(/\/$/,""),f=pe(`${p}/${s}`);return{...o,directory:p,importPathMatcher:f}},"normalizeStoriesEntry"),lo=n((e,t)=>e.map(r=>lt(r,t)),"normalizeStories");import mt from"fs-extra";async function go(e){return mt.readFile(e,{encoding:"utf8"})}n(go,"readTemplate");import de from"path";import{sync as dt}from"find-up";var bo=n((e,t)=>{let r=dt("package.json",{cwd:e});if(!r)throw new Error(`Could not find package.json in: ${e}`);let o=de.dirname(r);return de.join(o,"dist","esm",t)},"findDistEsm");export{A as boost,qr as cache,Mt as checkAddonOrder,U as createFileSystemCache,Pe as filterPresetsConfig,bo as findDistEsm,Je as getAutoRefs,pt as getDirectoryFromWorkingDir,y as getInterpretedFile,Y as getInterpretedFileWithExt,Se as getPresets,Kr as getPreviewBodyTemplate,Vr as getPreviewHeadTemplate,Xr as getPreviewMainTemplate,Wt as getProjectRoot,yr as getRefs,te as getStorybookConfiguration,fr as getStorybookInfo,pe as globToRegexp,Zt as handlebars,F as interopRequireDefault,Qr as interpolate,Dt as loadAllPresets,G as loadCustomPresets,Gt as loadEnvs,or as loadMainConfig,$r as loadManagerOrAddonsFile,Oe as loadPreset,Cr as loadPreviewOrConfigFile,Ar as logConfig,Q as nodePathsToArray,lo as normalizeStories,lt as normalizeStoriesEntry,ee as normalizeStoryPath,go as readTemplate,je as resolveAddonName,ae as resolvePathInStorybookCache,b as serverRequire,R as serverResolve,zt as stringifyEnvs,Kt as stringifyProcessEnvs,Tr as useProgressReporting,E as validateConfigurationFiles};
28
+ `),ir=e=>{let r=e.match(/\.(\([^)]+\))/);return r?sr(r):e},ar=(e,r)=>{try{return rr.lstatSync(k.resolve(e,r)).isDirectory()}catch{return!1}},cr=({configDir:e,workingDir:r,directory:t})=>{let o=k.resolve(e,t),n=k.relative(r,o);return Q(n)},pr=(e,{configDir:r,workingDir:t})=>{let o;if(typeof e=="string"){let f=ir(e),i=nr(f);if(i.isGlob){let l=i.prefix+i.base,d=i.glob;o={titlePrefix:E,directory:l,files:d}}else ar(r,e)?o={titlePrefix:E,directory:e,files:le}:o={titlePrefix:E,directory:k.dirname(e),files:k.basename(e)}}else o={titlePrefix:E,files:le,...e};let n=fe(o.files),{directory:s}=o,p=fe(cr({configDir:r,workingDir:t,directory:s})).replace(/\/$/,""),c=pe(`${p}/${n}`);return{...o,directory:p,importPathMatcher:c}},po=(e,r)=>e.map(t=>pr(t,r));import fr from"fs-extra";async function go(e){return fr.readFile(e,{encoding:"utf8"})}import de from"path";import{sync as lr}from"find-up";var bo=(e,r)=>{let t=lr("package.json",{cwd:e});if(!t)throw new Error(`Could not find package.json in: ${e}`);let o=de.dirname(t);return de.join(o,"dist","esm",r)};export{T as boost,Kt as cache,Lr as checkAddonOrder,M as createFileSystemCache,ke as filterPresetsConfig,bo as findDistEsm,qe as getAutoRefs,cr as getDirectoryFromWorkingDir,u as getInterpretedFile,q as getInterpretedFileWithExt,Re as getPresets,Ht as getPreviewBodyTemplate,zt as getPreviewHeadTemplate,Yt as getPreviewMainTemplate,Jr as getProjectRoot,mt as getRefs,ee as getStorybookConfiguration,at as getStorybookInfo,pe as globToRegexp,Gr as handlebars,$ as interopRequireDefault,Xt as interpolate,Nr as loadAllPresets,W as loadCustomPresets,Vr as loadEnvs,rt as loadMainConfig,vt as loadManagerOrAddonsFile,Se as loadPreset,Ct as loadPreviewOrConfigFile,Et as logConfig,Z as nodePathsToArray,po as normalizeStories,pr as normalizeStoriesEntry,Q as normalizeStoryPath,go as readTemplate,Oe as resolveAddonName,ie as resolvePathInStorybookCache,x as serverRequire,I as serverResolve,Wr as stringifyEnvs,Hr as stringifyProcessEnvs,At as useProgressReporting,C as validateConfigurationFiles};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/core-common",
3
- "version": "7.0.0-alpha.16",
3
+ "version": "7.0.0-alpha.17",
4
4
  "description": "Storybook framework-agnostic API",
5
5
  "keywords": [
6
6
  "storybook"
@@ -43,7 +43,7 @@
43
43
  ],
44
44
  "scripts": {
45
45
  "check": "tsc --noEmit",
46
- "prepare": "esrun ../../scripts/prepare/bundle.ts"
46
+ "prepare": "../../../scripts/prepare/bundle.ts"
47
47
  },
48
48
  "dependencies": {
49
49
  "@babel/core": "^7.12.10",
@@ -69,7 +69,7 @@
69
69
  "@babel/preset-typescript": "^7.12.7",
70
70
  "@babel/register": "^7.12.1",
71
71
  "@storybook/csf": "0.0.2--canary.4566f4d.1",
72
- "@storybook/node-logger": "7.0.0-alpha.16",
72
+ "@storybook/node-logger": "7.0.0-alpha.17",
73
73
  "@storybook/semver": "^7.3.2",
74
74
  "@types/babel__core": "^7.0.0",
75
75
  "@types/express": "^4.7.0",
@@ -100,7 +100,6 @@
100
100
  "util-deprecate": "^1.0.2"
101
101
  },
102
102
  "devDependencies": {
103
- "@digitak/esrun": "^3.2.2",
104
103
  "@types/compression": "^1.7.0",
105
104
  "@types/mock-fs": "^4.13.0",
106
105
  "@types/picomatch": "^2.3.0",
@@ -125,5 +124,5 @@
125
124
  ],
126
125
  "platform": "node"
127
126
  },
128
- "gitHead": "df30e7db2b251418af106345e5722477f057ec36"
127
+ "gitHead": "7d44bfd3e759c6f17b75029ee2e067fab811f27b"
129
128
  }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2017 Kadira Inc. <hello@kadira.io>
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in
13
- all copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
- THE SOFTWARE.