@storybook/core-common 7.0.0-alpha.42 → 7.0.0-alpha.43

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
@@ -730,11 +730,13 @@ declare function createFileSystemCache(options: Options$2): FileSystemCache;
730
730
  * ⚠️ This file contains internal WIP types they MUST NOT be exported outside this package for now!
731
731
  */
732
732
  declare type BuilderName = 'webpack5' | '@storybook/builder-webpack5' | string;
733
+ declare type RendererName = string;
733
734
  interface CoreConfig {
734
735
  builder?: BuilderName | {
735
736
  name: BuilderName;
736
737
  options?: Record<string, any>;
737
738
  };
739
+ renderer?: RendererName;
738
740
  disableWebpackDefaults?: boolean;
739
741
  channelOptions?: Partial<Options$3>;
740
742
  /**
@@ -1127,8 +1129,8 @@ declare function loadPreset(input: PresetConfig, level: number, storybookOptions
1127
1129
  declare type InterPresetOptions = Omit<CLIOptions & LoadOptions & BuilderOptions, 'frameworkPresets'>;
1128
1130
  declare function getPresets(presets: PresetConfig[], storybookOptions: InterPresetOptions): Promise<Presets>;
1129
1131
  declare function loadAllPresets(options: CLIOptions & LoadOptions & BuilderOptions & {
1130
- corePresets: string[];
1131
- overridePresets: string[];
1132
+ corePresets: PresetConfig[];
1133
+ overridePresets: PresetConfig[];
1132
1134
  }): Promise<Presets>;
1133
1135
 
1134
1136
  declare const cache: Cache.FileSystemCache;
@@ -1165,6 +1167,11 @@ declare const findDistEsm: (cwd: string, relativePath: string) => string;
1165
1167
  */
1166
1168
  declare function getFrameworkName(options: Options$1): Promise<string>;
1167
1169
 
1170
+ /**
1171
+ * Render is set as a string on core. It must be set by the framework
1172
+ */
1173
+ declare function getRendererName(options: Options$1): Promise<string>;
1174
+
1168
1175
  declare function getStorybookConfiguration(storybookScript: string, shortName: string, longName: string): string | null;
1169
1176
 
1170
1177
  interface StorybookInfo {
@@ -1275,4 +1282,4 @@ declare function validateConfigurationFiles(configDir: string): void;
1275
1282
  */
1276
1283
  declare function satisfies<A>(): <T extends A>(x: T) => T;
1277
1284
 
1278
- export { AddonEntry, AddonInfo, Builder, BuilderName, BuilderOptions, BuilderResult, CLIOptions, CoreConfig, DocsOptions, Entry, IndexedStory, IndexerOptions, LoadOptions, LoadedPreset, NormalizedStoriesSpecifier, Options$1 as Options, OptionsEntry, PackageJson, Preset, PresetConfig, PresetProperty, PresetPropertyFn, Presets, Ref, ReleaseNotesData, Stats, StoriesEntry, StoryIndex, StoryIndexer, StorybookConfig, StorybookConfigOptions, TypescriptOptions, VersionCheck, boost, cache, checkAddonOrder, createFileSystemCache, filterPresetsConfig, findDistEsm, getAutoRefs, getDirectoryFromWorkingDir, getFrameworkName, getInterpretedFile, getInterpretedFileWithExt, getPresets, getPreviewBodyTemplate, getPreviewHeadTemplate, getPreviewMainTemplate, getProjectRoot, getRefs, 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 };
1285
+ export { AddonEntry, AddonInfo, Builder, BuilderName, BuilderOptions, BuilderResult, CLIOptions, CoreConfig, DocsOptions, Entry, IndexedStory, IndexerOptions, LoadOptions, LoadedPreset, NormalizedStoriesSpecifier, Options$1 as Options, OptionsEntry, PackageJson, Preset, PresetConfig, PresetProperty, PresetPropertyFn, Presets, Ref, ReleaseNotesData, RendererName, Stats, StoriesEntry, StoryIndex, StoryIndexer, StorybookConfig, StorybookConfigOptions, TypescriptOptions, VersionCheck, 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 };
package/dist/index.js CHANGED
@@ -1,37 +1,41 @@
1
- "use strict";var Ve=Object.create;var R=Object.defineProperty;var Xe=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Qe=Object.getPrototypeOf,er=Object.prototype.hasOwnProperty;var rr=(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 Ze(r))!er.call(e,n)&&n!==t&&R(e,n,{get:()=>r[n],enumerable:!(o=Xe(r,n))||o.enumerable});return e};var f=(e,r,t)=>(t=e!=null?Ve(Qe(e)):{},oe(r||!e||!e.__esModule?R(t,"default",{value:e,enumerable:!0}):t,e)),tr=e=>oe(R({},"__esModule",{value:!0}),e);var Br={};rr(Br,{boost:()=>C,cache:()=>pr,checkAddonOrder:()=>mr,createFileSystemCache:()=>I,filterPresetsConfig:()=>ge,findDistEsm:()=>br,getAutoRefs:()=>Ae,getDirectoryFromWorkingDir:()=>qe,getFrameworkName:()=>xr,getInterpretedFile:()=>u,getInterpretedFileWithExt:()=>J,getPresets:()=>be,getPreviewBodyTemplate:()=>Mr,getPreviewHeadTemplate:()=>Hr,getPreviewMainTemplate:()=>Jr,getProjectRoot:()=>lr,getRefs:()=>Cr,getStorybookConfiguration:()=>X,getStorybookInfo:()=>Or,globToRegexp:()=>ee,handlebars:()=>$r,interopRequireDefault:()=>$,interpolate:()=>Sr,isPreservingSymlinks:()=>Lr,loadAllPresets:()=>fr,loadCustomPresets:()=>q,loadEnvs:()=>ur,loadMainConfig:()=>jr,loadManagerOrAddonsFile:()=>Ar,loadPreset:()=>ye,loadPreviewOrConfigFile:()=>Ir,logConfig:()=>Fr,nodePathsToArray:()=>G,normalizeStories:()=>Tr,normalizeStoriesEntry:()=>ze,normalizeStoryPath:()=>K,readTemplate:()=>Dr,resolveAddonName:()=>ue,resolvePathInStorybookCache:()=>z,satisfies:()=>zr,serverRequire:()=>h,serverResolve:()=>S,stringifyEnvs:()=>yr,stringifyProcessEnvs:()=>hr,useProgressReporting:()=>_r,validateConfigurationFiles:()=>w,validateFrameworkName:()=>qr});module.exports=tr(Br);var me=require("ts-dedent"),x=require("@storybook/node-logger"),le=require("path");var j=f(require("path"));var H=f(require("fs")),C=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function or(){return[...Array.from(C)]}var ne=or();function u(e){return ne.map(r=>e.endsWith(r)?e:`${e}${r}`).find(r=>H.default.existsSync(r))}function J(e){return ne.map(r=>({path:e.endsWith(r)?e:`${e}${r}`,ext:r})).find(r=>H.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:`{
1
+ "use strict";var Xe=Object.create;var E=Object.defineProperty;var Ze=Object.getOwnPropertyDescriptor;var Qe=Object.getOwnPropertyNames;var er=Object.getPrototypeOf,rr=Object.prototype.hasOwnProperty;var tr=(e,r)=>{for(var t in r)E(e,t,{get:r[t],enumerable:!0})},oe=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of Qe(r))!rr.call(e,n)&&n!==t&&E(e,n,{get:()=>r[n],enumerable:!(o=Ze(r,n))||o.enumerable});return e};var f=(e,r,t)=>(t=e!=null?Xe(er(e)):{},oe(r||!e||!e.__esModule?E(t,"default",{value:e,enumerable:!0}):t,e)),or=e=>oe(E({},"__esModule",{value:!0}),e);var Wr={};tr(Wr,{boost:()=>C,cache:()=>mr,checkAddonOrder:()=>lr,createFileSystemCache:()=>I,filterPresetsConfig:()=>ge,findDistEsm:()=>xr,getAutoRefs:()=>Ie,getDirectoryFromWorkingDir:()=>ze,getFrameworkName:()=>vr,getInterpretedFile:()=>u,getInterpretedFileWithExt:()=>J,getPresets:()=>be,getPreviewBodyTemplate:()=>Jr,getPreviewHeadTemplate:()=>Ur,getPreviewMainTemplate:()=>qr,getProjectRoot:()=>gr,getRefs:()=>jr,getRendererName:()=>wr,getStorybookConfiguration:()=>X,getStorybookInfo:()=>Er,globToRegexp:()=>ee,handlebars:()=>Sr,interopRequireDefault:()=>$,interpolate:()=>Ar,isPreservingSymlinks:()=>Hr,loadAllPresets:()=>pr,loadCustomPresets:()=>q,loadEnvs:()=>yr,loadMainConfig:()=>Ir,loadManagerOrAddonsFile:()=>Fr,loadPreset:()=>ye,loadPreviewOrConfigFile:()=>Nr,logConfig:()=>Tr,nodePathsToArray:()=>G,normalizeStories:()=>Dr,normalizeStoriesEntry:()=>Be,normalizeStoryPath:()=>K,readTemplate:()=>Mr,resolveAddonName:()=>ue,resolvePathInStorybookCache:()=>z,satisfies:()=>Yr,serverRequire:()=>h,serverResolve:()=>j,stringifyEnvs:()=>hr,stringifyProcessEnvs:()=>br,useProgressReporting:()=>Lr,validateConfigurationFiles:()=>P,validateFrameworkName:()=>Br});module.exports=or(Wr);var de=require("ts-dedent"),x=require("@storybook/node-logger"),le=require("path");var S=f(require("path"));var H=f(require("fs")),C=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function nr(){return[...Array.from(C)]}var ne=nr();function u(e){return ne.map(r=>e.endsWith(r)?e:`${e}${r}`).find(r=>H.default.existsSync(r))}function J(e){return ne.map(r=>({path:e.endsWith(r)?e:`${e}${r}`,ext:r})).find(r=>H.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 r=require(e);return typeof r=="object"&&r!==null&&typeof r.default<"u"?r.default:r}function nr(e){for(let r=0;r<e.length;r+=1){let t=J(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=nr(r);return t?t.path:null}var P=require("ts-dedent"),ie=f(require("util-deprecate")),ae=f(require("glob")),b=f(require("path"));var sr=(0,ie.default)(()=>{},P.dedent`
6
+ }`})}let r=require(e);return typeof r=="object"&&r!==null&&typeof r.default<"u"?r.default:r}function sr(e){for(let r=0;r<e.length;r+=1){let t=J(e[r]);if(t)return t}}function h(e){let r=j(e);return r?$(r):null}function j(e){let r=Array.isArray(e)?e:[e],t=sr(r);return t?t.path:null}var w=require("ts-dedent"),ie=f(require("util-deprecate")),ae=f(require("glob")),b=f(require("path"));var ir=(0,ie.default)(()=>{},w.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
- `),U=(e,r,t)=>{let o=b.default.resolve(t,e),n=b.default.resolve(t,r);throw new Error(P.dedent`
9
+ `),U=(e,r,t)=>{let o=b.default.resolve(t,e),n=b.default.resolve(t,r);throw new Error(w.dedent`
10
10
  You have mixing configuration files:
11
11
  ${o}
12
12
  ${n}
13
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
- `)};function w(e){let r=`{${Array.from(C).join(",")}}`,t=c=>!!ae.default.sync(b.default.resolve(e,`${c}${r}`)).length,o=t("main"),n=t("config");if(!o&&!n)throw new Error(P.dedent`
15
+ `)};function P(e){let r=`{${Array.from(C).join(",")}}`,t=c=>!!ae.default.sync(b.default.resolve(e,`${c}${r}`)).length,o=t("main"),n=t("config");if(!o&&!n)throw new Error(w.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&&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&&U("main","presets",e),t("preview")&&n&&U("preview","config",e);let i=t("addons");t("manager")&&i&&U("manager","addons",e),(s||n||i)&&sr()}function q({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=f(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,ir=e=>typeof e=="function";function ge(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 ir(e)?[...e({...t,...r})]:Array.isArray(e)?[...e]:[]}var ue=(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=n&&o(`${r}/package.json`),d=s&&(0,le.dirname)(s),i=g=>{if(o(`${r}${g}`))return`${d}${g}`},p=r,c=i("/manager"),a=i("/register")||i("/register-panel"),l=i("/preview"),m=o(`${p}/preset`);if(!(c||l)&&m)return{type:"presets",name:m};if(c||a||l||m){let g=[];return c&&g.push(c),!c&&a&&!m&&g.push(a),{type:"virtual",name:p,...g.length?{managerEntries:g}:{},...l?{previewAnnotations:[l]}:{},...m?{presets:[{name:m,options:t}]}:{}}}if(n)return{type:"presets",name:n}},ar=({configDir:e})=>r=>{let t=k(r)&&r.options||void 0,o=k(r)?r.name:r;try{let n=ue(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 cr(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 ye(e,r,t){try{let o=e.name?e.name:e,n=e.options?e.options:{},s=await cr(e);if(typeof s=="function"&&(s=s(t,n)),Array.isArray(s))return A(s,r+1,t);if(k(s)){let{addons:d,presets:i,...p}=s,c=de(i,n,t),a=de(d,n,t);return[...await A([...c],r+1,t),...await A([...a.map(ar(t))].filter(Boolean),r+1,t),{name:o,preset:p,options:n}]}throw new Error(me.dedent`
18
+ `);if(o&&n)throw new Error(w.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&&U("main","presets",e),t("preview")&&n&&U("preview","config",e);let i=t("addons");t("manager")&&i&&U("manager","addons",e),(s||n||i)&&ir()}function q({configDir:e}){P(e);let r=h(S.default.resolve(e,"presets"));if(h(S.default.resolve(e,"main"))){let o=j(S.default.resolve(e,"main"));if(o)return[o]}return r||[]}var ce=f(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,ar=e=>typeof e=="function";function ge(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 ar(e)?[...e({...t,...r})]:Array.isArray(e)?[...e]:[]}var ue=(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=n&&o(`${r}/package.json`),m=s&&(0,le.dirname)(s),i=g=>{if(o(`${r}${g}`))return`${m}${g}`},p=r,c=i("/manager"),a=i("/register")||i("/register-panel"),l=i("/preview"),d=o(`${p}/preset`);if(!(c||l)&&d)return{type:"presets",name:d};if(c||a||l||d){let g=[];return c&&g.push(c),!c&&a&&!d&&g.push(a),{type:"virtual",name:p,...g.length?{managerEntries:g}:{},...l?{previewAnnotations:[l]}:{},...d?{presets:[{name:d,options:t}]}:{}}}if(n)return{type:"presets",name:n}},cr=({configDir:e})=>r=>{let t=k(r)&&r.options||void 0,o=k(r)?r.name:r;try{let n=ue(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 fr(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 ye(e,r,t){try{let o=e.name?e.name:e,n=e.options?e.options:{},s=await fr(e);if(typeof s=="function"&&(s=s(t,n)),Array.isArray(s))return A(s,r+1,t);if(k(s)){let{addons:m,presets:i,...p}=s,c=me(i,n,t),a=me(m,n,t);return[...await A([...c],r+1,t),...await A([...a.map(cr(t))].filter(Boolean),r+1,t),{name:o,preset:p,options:n}]}throw new Error(de.dedent`
21
21
  ${e} is not a valid preset
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=>ye(o,r,t)))).reduce((o,n)=>o.concat(n),[]))}function he(e,r,t,o,n){let s=new Promise(d=>d(t));return e.length?e.reduce((d,{preset:i,options:p})=>{let c=i[r];if(!c)return d;if(typeof c=="function"){let a=c,l={preset:i,combinedOptions:{...n,...o,...p,presetsList:e,presets:{apply:async(m,g,E={})=>he(e,m,g,E,n)}}};return d.then(m=>a.call(l.preset,m,l.combinedOptions))}return d.then(a=>Array.isArray(a)&&Array.isArray(c)?[...a,...c]:k(a)&&k(c)?{...a,...c}:c)},s):s}async function be(e,r){let t=await A(e,0,r);return{apply:async(o,n,s={})=>he(t,o,n,s,r)}}async function fr(e){let{corePresets:r=[],overridePresets:t=[],...o}=e,n=[...r,...q(e),...t],s=ge(n);return s.length<n.length&&x.logger.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),be(s,o)}var xe=f(require("file-system-cache"));function I(e){return(0,xe.default)(e)}var F=f(require("path")),ve=f(require("pkg-dir"));function z(e){let r=process.cwd(),t=ve.default.sync(r),o;return t?o=F.default.resolve(t,"node_modules/.cache/storybook"):o=F.default.resolve(r,".cache/storybook"),F.default.join(o,e)}var pr=I({basePath:z("dev-server"),ns:"storybook"});var{logger:B}=require("@storybook/node-logger"),W=e=>r=>{let t=r.name||r;return t&&t.includes(e)},dr=(e,r,t)=>{let o=e.findIndex(W("@storybook/addon-essentials")),n=e.findIndex(W(r.name)),s=e.findIndex(W(t.name));return n===-1&&r.inEssentials&&(n=o),s===-1&&t.inEssentials&&(s=o),n!==-1&&s!==-1&&n<=s},mr=async({before:e,after:r,configFile:t,getConfig:o})=>{try{let n=await o(t);if(!(n!=null&&n.addons)){B.warn("Unable to find 'addons' config in main Storybook config");return}if(!dr(n.addons,e,r)){let s=" (or '@storybook/addon-essentials')",d=`'${e.name}'${e.inEssentials?s:""}`,i=`'${r.name}'${r.inEssentials?s:""}`;B.warn(`Expected ${d} to be listed before ${i} in main Storybook config.`)}}catch{B.warn(`Unable to load config file: ${t}`)}};var Pe=require("lazy-universal-dotenv");var O=f(require("path")),Y=f(require("find-up")),lr=()=>{let e;try{let r=Y.default.sync(".git",{type:"directory"});r&&(e=e||O.default.join(r,".."))}catch{}try{let r=Y.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()},G=e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(r=>O.default.resolve("./",r)),gr=/^\.{1,2}([/\\]|$)/;function K(e){return gr.test(e)?e:`.${O.default.sep}${e}`}function ur(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,c])=>Object.assign(i,{[p]:JSON.stringify(c)}),{}),{stringified:n,raw:s}=(0,Pe.getEnvironment)({nodeEnv:t.NODE_ENV}),d={...t,...s};return d.NODE_PATH=G(d.NODE_PATH||""),{stringified:{...o,...n},raw:d}}var yr=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":'""'});var V=f(require("path")),we=require("find-up"),br=(e,r)=>{let t=(0,we.sync)("package.json",{cwd:e});if(!t)throw new Error(`Could not find package.json in: ${e}`);let o=V.default.dirname(t);return V.default.join(o,"dist","esm",r)};var ke=require("ts-dedent");async function xr(e){let r=await e.presets.apply("framework","",e);if(!r)throw new Error(ke.dedent`
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=>ye(o,r,t)))).reduce((o,n)=>o.concat(n),[]))}function he(e,r,t,o,n){let s=new Promise(m=>m(t));return e.length?e.reduce((m,{preset:i,options:p})=>{let c=i[r];if(!c)return m;if(typeof c=="function"){let a=c,l={preset:i,combinedOptions:{...n,...o,...p,presetsList:e,presets:{apply:async(d,g,R={})=>he(e,d,g,R,n)}}};return m.then(d=>a.call(l.preset,d,l.combinedOptions))}return m.then(a=>Array.isArray(a)&&Array.isArray(c)?[...a,...c]:k(a)&&k(c)?{...a,...c}:c)},s):s}async function be(e,r){let t=await A(e,0,r);return{apply:async(o,n,s={})=>he(t,o,n,s,r)}}async function pr(e){let{corePresets:r=[],overridePresets:t=[],...o}=e,n=[...r,...q(e),...t],s=ge(n);return s.length<n.length&&x.logger.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),be(s,o)}var xe=f(require("file-system-cache"));function I(e){return(0,xe.default)(e)}var F=f(require("path")),ve=f(require("pkg-dir"));function z(e){let r=process.cwd(),t=ve.default.sync(r),o;return t?o=F.default.resolve(t,"node_modules/.cache/storybook"):o=F.default.resolve(r,".cache/storybook"),F.default.join(o,e)}var mr=I({basePath:z("dev-server"),ns:"storybook"});var{logger:B}=require("@storybook/node-logger"),Y=e=>r=>{let t=r.name||r;return t&&t.includes(e)},dr=(e,r,t)=>{let o=e.findIndex(Y("@storybook/addon-essentials")),n=e.findIndex(Y(r.name)),s=e.findIndex(Y(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!=null&&n.addons)){B.warn("Unable to find 'addons' config in main Storybook config");return}if(!dr(n.addons,e,r)){let s=" (or '@storybook/addon-essentials')",m=`'${e.name}'${e.inEssentials?s:""}`,i=`'${r.name}'${r.inEssentials?s:""}`;B.warn(`Expected ${m} to be listed before ${i} in main Storybook config.`)}}catch{B.warn(`Unable to load config file: ${t}`)}};var we=require("lazy-universal-dotenv");var O=f(require("path")),W=f(require("find-up")),gr=()=>{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()},G=e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(r=>O.default.resolve("./",r)),ur=/^\.{1,2}([/\\]|$)/;function K(e){return ur.test(e)?e:`.${O.default.sep}${e}`}function yr(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,c])=>Object.assign(i,{[p]:JSON.stringify(c)}),{}),{stringified:n,raw:s}=(0,we.getEnvironment)({nodeEnv:t.NODE_ENV}),m={...t,...s};return m.NODE_PATH=G(m.NODE_PATH||""),{stringified:{...o,...n},raw:m}}var hr=e=>Object.entries(e).reduce((r,[t,o])=>(r[t]=JSON.stringify(o),r),{}),br=e=>Object.entries(e).reduce((t,[o,n])=>(t[`process.env.${o}`]=JSON.stringify(n),t),{"process.env.XSTORYBOOK_EXAMPLE_APP":'""'});var V=f(require("path")),Pe=require("find-up"),xr=(e,r)=>{let t=(0,Pe.sync)("package.json",{cwd:e});if(!t)throw new Error(`Could not find package.json in: ${e}`);let o=V.default.dirname(t);return V.default.join(o,"dist","esm",r)};var ke=require("ts-dedent");async function vr(e){let r=await e.presets.apply("framework","",e);if(!r)throw new Error(ke.dedent`
23
23
  You must specify a framework in '.storybook/main.js' config.
24
24
 
25
25
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
26
- `);return typeof r=="object"?r.name:r}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]}var Re=f(require("path")),Ce=f(require("fs-extra"));var Oe={"@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"},Ee=console,vr=({dependencies:e,devDependencies:r,peerDependencies:t},o)=>[Object.entries(e||{}).find(o),Object.entries(r||{}).find(o),Object.entries(t||{}).find(o)],Pr=e=>{let[r,t,o]=vr(e,([i])=>Oe[i]),[n,s]=r||t||o||[],d=n?Oe[n]:void 0;return r&&t&&r[0]===t[0]&&Ee.warn(`Found "${r[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),r&&o&&r[0]===o[0]&&Ee.warn(`Found "${r[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{version:s,framework:d,frameworkPackage:n,renderer:d,rendererPackage:n}},wr=["ts","js","tsx","jsx","mjs","cjs"],Z=(e,r)=>{let t=Re.default.join(r,e),o=wr.find(n=>Ce.default.existsSync(`${t}.${n}`));return o?`${t}.${o}`:null},kr=e=>{var o;let r=".storybook",t=(o=e.scripts)==null?void 0:o.storybook;if(t){let n=X(t,"-c","--config-dir");n&&(r=n)}return{configDir:r,mainConfig:Z("main",r),previewConfig:Z("preview",r),managerConfig:Z("manager",r)}},Or=e=>{let r=Pr(e),t=kr(e);return{...r,...t}};var Q=require("fs-extra"),N=require("path"),$e=f(require("find-up")),Se=f(require("resolve-from")),je=require("@storybook/node-logger"),Ae=async e=>{let r=await(0,$e.default)("package.json",{cwd:e.configDir});if(!r)return{};let t=(0,N.dirname)(r),{dependencies:o=[],devDependencies:n=[]}=await(0,Q.readJSON)(r)||{},s=Object.keys({...o,...n});return(await Promise.all(s.map(async i=>{try{let p=(0,Se.default)(t,(0,N.join)(i,"package.json")),{storybook:c,name:a,version:l}=await(0,Q.readJSON)(p)||{};if(c!=null&&c.url)return{id:a,...c,version:l}}catch(p){if(p.code==="ERR_PACKAGE_PATH_NOT_EXPORTED")return;je.logger.warn(`unable to find package.json for ${i}`);return}}))).filter(Boolean).reduce((i,p)=>({...i,[p.id]:{id:p.id.toLowerCase(),url:Ie(p.url),title:p.title,version:p.version}}),{})},Er=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),Ie=e=>e.replace(/\/$/,""),Rr=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 Ae(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||Rr(o.id||t),url:Ie(o.url)}}),await Promise.all(Object.entries(r).map(async([t,o])=>{let n=await Er(o.url);r[t]={...o,type:n?"server-checked":"unknown"}})),r}var Fe=require("picomatch");function ee(e){let r=(0,Fe.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 Ne=f(require("handlebars"));function $r(e,r){return Ne.default.compile(e)(r)}var Sr=(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 Te=f(require("path"));function jr({configDir:e}){return w(e),h(Te.default.resolve(e,"main"))}var T=f(require("path")),_e=require("@storybook/node-logger"),De=require("ts-dedent");function Ar({configDir:e}){let r=u(T.default.resolve(e,"addons")),t=u(T.default.resolve(e,"manager"));if((r||t)&&_e.logger.info("=> Loading custom manager config"),r&&t)throw new Error(De.dedent`
27
- You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${T.default.resolve(e,"addons")})`);return t||r}var _=f(require("path")),Le=require("ts-dedent");function Ir({configDir:e}){let r=u(_.default.resolve(e,"config")),t=u(_.default.resolve(e,"preview"));if(r&&t)throw new Error(Le.dedent`
28
- You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${_.default.resolve(e,"config")})`);return t||r}var Me=f(require("chalk"));function Fr(e,r){console.log(Me.default.cyan(e)),console.dir(r,{depth:null})}var Je=f(require("fs")),v=f(require("path")),Ue=require("picomatch"),re=f(require("slash"));var D="",He="**/*.@(mdx|stories.mdx|stories.tsx|stories.ts|stories.jsx|stories.js)",Nr=(e,r)=>{try{return Je.default.lstatSync(v.default.resolve(e,r)).isDirectory()}catch{return!1}},qe=({configDir:e,workingDir:r,directory:t})=>{let o=v.default.resolve(e,t),n=v.default.relative(r,o);return K(n)},ze=(e,{configDir:r,workingDir:t})=>{let o;if(typeof e=="string"){let p=(0,Ue.scan)(e);if(p.isGlob){let c=p.prefix+p.base,a=p.glob;o={titlePrefix:D,directory:c,files:a}}else Nr(r,e)?o={titlePrefix:D,directory:e,files:He}:o={titlePrefix:D,directory:v.default.dirname(e),files:v.default.basename(e)}}else o={titlePrefix:D,files:He,...e};let n=(0,re.default)(o.files),{directory:s}=o,d=(0,re.default)(qe({configDir:r,workingDir:t,directory:s})).replace(/\/$/,""),i=ee(`${d}/${n}`);return{...o,directory:d,importPathMatcher:i}},Tr=(e,r)=>e.map(t=>ze(t,r));var Be=f(require("pretty-hrtime")),We=e=>(0,Be.default)(process.hrtime(e)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes");var _r=async(e,r,t)=>{var p;let o=0,n,s=()=>{};e.get("/progress",(c,a)=>{let l=!1,m=()=>{l=!0,a.end()};a.on("close",m),!(l||a.writableEnded)&&(a.setHeader("Cache-Control","no-cache"),a.setHeader("Content-Type","text/event-stream"),a.setHeader("Connection","keep-alive"),a.flushHeaders(),s=g=>{l||a.writableEnded||(a.write(`data: ${JSON.stringify(g)}
26
+ `);return typeof r=="object"?r.name:r}var Oe=require("ts-dedent");async function wr(e){let{renderer:r}=await e.presets.apply("core",{},e);if(!r)throw new Error(Oe.dedent`
27
+ You must specify a framework in '.storybook/main.js' config.
28
+
29
+ https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
30
+ `);return r}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]}var Ce=f(require("path")),$e=f(require("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"},Ee=console,Pr=({dependencies:e,devDependencies:r,peerDependencies:t},o)=>[Object.entries(e||{}).find(o),Object.entries(r||{}).find(o),Object.entries(t||{}).find(o)],kr=e=>{let[r,t,o]=Pr(e,([i])=>Re[i]),[n,s]=r||t||o||[],m=n?Re[n]:void 0;return r&&t&&r[0]===t[0]&&Ee.warn(`Found "${r[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),r&&o&&r[0]===o[0]&&Ee.warn(`Found "${r[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{version:s,framework:m,frameworkPackage:n,renderer:m,rendererPackage:n}},Or=["ts","js","tsx","jsx","mjs","cjs"],Z=(e,r)=>{let t=Ce.default.join(r,e),o=Or.find(n=>$e.default.existsSync(`${t}.${n}`));return o?`${t}.${o}`:null},Rr=e=>{var o;let r=".storybook",t=(o=e.scripts)==null?void 0:o.storybook;if(t){let n=X(t,"-c","--config-dir");n&&(r=n)}return{configDir:r,mainConfig:Z("main",r),previewConfig:Z("preview",r),managerConfig:Z("manager",r)}},Er=e=>{let r=kr(e),t=Rr(e);return{...r,...t}};var Q=require("fs-extra"),N=require("path"),je=f(require("find-up")),Se=f(require("resolve-from")),Ae=require("@storybook/node-logger"),Ie=async e=>{let r=await(0,je.default)("package.json",{cwd:e.configDir});if(!r)return{};let t=(0,N.dirname)(r),{dependencies:o=[],devDependencies:n=[]}=await(0,Q.readJSON)(r)||{},s=Object.keys({...o,...n});return(await Promise.all(s.map(async i=>{try{let p=(0,Se.default)(t,(0,N.join)(i,"package.json")),{storybook:c,name:a,version:l}=await(0,Q.readJSON)(p)||{};if(c!=null&&c.url)return{id:a,...c,version:l}}catch(p){if(p.code==="ERR_PACKAGE_PATH_NOT_EXPORTED")return;Ae.logger.warn(`unable to find package.json for ${i}`);return}}))).filter(Boolean).reduce((i,p)=>({...i,[p.id]:{id:p.id.toLowerCase(),url:Fe(p.url),title:p.title,version:p.version}}),{})},Cr=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),Fe=e=>e.replace(/\/$/,""),$r=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 jr(e){let r=await e.presets.apply("refs",await Ie(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||$r(o.id||t),url:Fe(o.url)}}),await Promise.all(Object.entries(r).map(async([t,o])=>{let n=await Cr(o.url);r[t]={...o,type:n?"server-checked":"unknown"}})),r}var Ne=require("picomatch");function ee(e){let r=(0,Ne.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 Te=f(require("handlebars"));function Sr(e,r){return Te.default.compile(e)(r)}var Ar=(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 _e=f(require("path"));function Ir({configDir:e}){return P(e),h(_e.default.resolve(e,"main"))}var T=f(require("path")),De=require("@storybook/node-logger"),Le=require("ts-dedent");function Fr({configDir:e}){let r=u(T.default.resolve(e,"addons")),t=u(T.default.resolve(e,"manager"));if((r||t)&&De.logger.info("=> Loading custom manager config"),r&&t)throw new Error(Le.dedent`
31
+ You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${T.default.resolve(e,"addons")})`);return t||r}var _=f(require("path")),Me=require("ts-dedent");function Nr({configDir:e}){let r=u(_.default.resolve(e,"config")),t=u(_.default.resolve(e,"preview"));if(r&&t)throw new Error(Me.dedent`
32
+ You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${_.default.resolve(e,"config")})`);return t||r}var He=f(require("chalk"));function Tr(e,r){console.log(He.default.cyan(e)),console.dir(r,{depth:null})}var Ue=f(require("fs")),v=f(require("path")),qe=require("picomatch"),re=f(require("slash"));var D="",Je="**/*.@(mdx|stories.mdx|stories.tsx|stories.ts|stories.jsx|stories.js)",_r=(e,r)=>{try{return Ue.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 K(n)},Be=(e,{configDir:r,workingDir:t})=>{let o;if(typeof e=="string"){let p=(0,qe.scan)(e);if(p.isGlob){let c=p.prefix+p.base,a=p.glob;o={titlePrefix:D,directory:c,files:a}}else _r(r,e)?o={titlePrefix:D,directory:e,files:Je}:o={titlePrefix:D,directory:v.default.dirname(e),files:v.default.basename(e)}}else o={titlePrefix:D,files:Je,...e};let n=(0,re.default)(o.files),{directory:s}=o,m=(0,re.default)(ze({configDir:r,workingDir:t,directory:s})).replace(/\/$/,""),i=ee(`${m}/${n}`);return{...o,directory:m,importPathMatcher:i}},Dr=(e,r)=>e.map(t=>Be(t,r));var Ye=f(require("pretty-hrtime")),We=e=>(0,Ye.default)(process.hrtime(e)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes");var Lr=async(e,r,t)=>{var p;let o=0,n,s=()=>{};e.get("/progress",(c,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=g=>{l||a.writableEnded||(a.write(`data: ${JSON.stringify(g)}
29
33
 
30
- `),a.flush(),g.value===1&&m())})});let d=(c,a,l)=>{o=Math.max(c,o);let m={value:o,message:a.charAt(0).toUpperCase()+a.slice(1)};if(a==="building"){let g=l&&l.match(/(\d+)\/(\d+)/)||[],E=parseInt(g[1],10),M=parseInt(g[2],10);!Number.isNaN(E)&&!Number.isNaN(M)&&(m.modules={complete:E,total:M},n=M)}o===1&&(t.cache&&t.cache.set("modulesCount",n),m.message||(m.message=`Completed in ${We(r)}.`)),s(m)},i=await((p=t.cache)==null?void 0:p.get("modulesCount").catch(()=>{}))||1e3;return{handler:d,modulesCount:i}};var Ye=f(require("fs-extra"));async function Dr(e){return Ye.default.readFile(e,{encoding:"utf8"})}function Lr(){let{NODE_OPTIONS:e,NODE_PRESERVE_SYMLINKS:r}=process.env;return!!r||(e==null?void 0:e.includes("--preserve-symlinks"))}var te=f(require("path")),L=require("pkg-dir"),y=f(require("fs")),Ge=(e,r={})=>Object.entries(r).reduce((t,[o,n])=>t.replace(new RegExp(`%${o}%`,"g"),n),e);function Mr(e,r){let t=y.default.readFileSync(`${(0,L.sync)(__dirname)}/templates/base-preview-body.html`,"utf8"),o=te.default.resolve(e,"preview-body.html"),n=t;return y.default.existsSync(o)&&(n=y.default.readFileSync(o,"utf8")+n),Ge(n,r)}function Hr(e,r){let t=y.default.readFileSync(`${(0,L.sync)(__dirname)}/templates/base-preview-head.html`,"utf8"),o=te.default.resolve(e,"preview-head.html"),n=t;return y.default.existsSync(o)&&(n+=y.default.readFileSync(o,"utf8")),Ge(n,r)}function Jr(){return`${(0,L.sync)(__dirname)}/templates/preview.ejs`}var Ke=require("ts-dedent"),Ur=["@storybook/html","@storybook/preact","@storybook/react","@storybook/server","@storybook/svelte","@storybook/vue","@storybook/vue3","@storybook/web-components"];function qr(e){if(Ur.includes(e))throw new Error(Ke.dedent`
34
+ `),a.flush(),g.value===1&&d())})});let m=(c,a,l)=>{o=Math.max(c,o);let d={value:o,message:a.charAt(0).toUpperCase()+a.slice(1)};if(a==="building"){let g=l&&l.match(/(\d+)\/(\d+)/)||[],R=parseInt(g[1],10),M=parseInt(g[2],10);!Number.isNaN(R)&&!Number.isNaN(M)&&(d.modules={complete:R,total:M},n=M)}o===1&&(t.cache&&t.cache.set("modulesCount",n),d.message||(d.message=`Completed in ${We(r)}.`)),s(d)},i=await((p=t.cache)==null?void 0:p.get("modulesCount").catch(()=>{}))||1e3;return{handler:m,modulesCount:i}};var Ge=f(require("fs-extra"));async function Mr(e){return Ge.default.readFile(e,{encoding:"utf8"})}function Hr(){let{NODE_OPTIONS:e,NODE_PRESERVE_SYMLINKS:r}=process.env;return!!r||(e==null?void 0:e.includes("--preserve-symlinks"))}var te=f(require("path")),L=require("pkg-dir"),y=f(require("fs")),Ke=(e,r={})=>Object.entries(r).reduce((t,[o,n])=>t.replace(new RegExp(`%${o}%`,"g"),n),e);function Jr(e,r){let t=y.default.readFileSync(`${(0,L.sync)(__dirname)}/templates/base-preview-body.html`,"utf8"),o=te.default.resolve(e,"preview-body.html"),n=t;return y.default.existsSync(o)&&(n=y.default.readFileSync(o,"utf8")+n),Ke(n,r)}function Ur(e,r){let t=y.default.readFileSync(`${(0,L.sync)(__dirname)}/templates/base-preview-head.html`,"utf8"),o=te.default.resolve(e,"preview-head.html"),n=t;return y.default.existsSync(o)&&(n+=y.default.readFileSync(o,"utf8")),Ke(n,r)}function qr(){return`${(0,L.sync)(__dirname)}/templates/preview.ejs`}var Ve=require("ts-dedent"),zr=["@storybook/html","@storybook/preact","@storybook/react","@storybook/server","@storybook/svelte","@storybook/vue","@storybook/vue3","@storybook/web-components"];function Br(e){if(zr.includes(e))throw new Error(Ve.dedent`
31
35
  Invalid value of ${e} in the 'framework' field of Storybook config.
32
36
 
33
37
  Please run 'npx sb@next automigrate'
34
38
 
35
39
  See the v7 Migration guide for more information:
36
40
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
37
- `)}function zr(){return e=>e}0&&(module.exports={boost,cache,checkAddonOrder,createFileSystemCache,filterPresetsConfig,findDistEsm,getAutoRefs,getDirectoryFromWorkingDir,getFrameworkName,getInterpretedFile,getInterpretedFileWithExt,getPresets,getPreviewBodyTemplate,getPreviewHeadTemplate,getPreviewMainTemplate,getProjectRoot,getRefs,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});
41
+ `)}function Yr(){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});
package/dist/index.mjs CHANGED
@@ -1,9 +1,9 @@
1
- var u=(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 P}from"@storybook/node-logger";import{dirname as Pe}from"path";import A from"path";import K from"fs";var T=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function ge(){return[...Array.from(T)]}var U=ge();function y(e){return U.map(r=>e.endsWith(r)?e:`${e}${r}`).find(r=>K.existsSync(r))}function H(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}=u("esbuild-register/dist/node");V=!0,o({target:`node${process.version.slice(1)}`,format:"cjs",hookIgnoreNodeModules:!1,tsconfigRaw:`{
1
+ var u=(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 P}from"@storybook/node-logger";import{dirname as Pe}from"path";import A from"path";import K from"fs";var T=new Set([".js",".jsx",".ts",".tsx",".cjs",".mjs"]);function ge(){return[...Array.from(T)]}var U=ge();function y(e){return U.map(r=>e.endsWith(r)?e:`${e}${r}`).find(r=>K.existsSync(r))}function H(e){return U.map(r=>({path:e.endsWith(r)?e:`${e}${r}`,ext:r})).find(r=>K.existsSync(r.path))}var V=!1;function I(e){if(V===!1){let{register:o}=u("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 r=u(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=H(e[r]);if(t)return t}}function h(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 v from"path";var xe=ye(()=>{},w`
6
+ }`})}let r=u(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=H(e[r]);if(t)return t}}function h(e){let r=$(e);return r?I(r):null}function $(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 v 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
9
  `),j=(e,r,t)=>{let o=v.resolve(t,e),n=v.resolve(t,r);throw new Error(w`
@@ -16,22 +16,26 @@ var u=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Prox
16
16
  No configuration files have been found in your configDir (${v.resolve(e)}).
17
17
  Storybook needs either a "main" or "config" file.
18
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 (${v.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 q({configDir:e}){S(e);let r=h(A.resolve(e,"presets"));if(h(A.resolve(e,"main"))){let o=I(A.resolve(e,"main"));if(o)return[o]}return r||[]}import he from"resolve-from";var W=(e,r)=>{try{return he(e,r)}catch{return}},z=e=>{try{return u.resolve(e)}catch{return}};var k=e=>e!=null&&typeof e=="object"&&Array.isArray(e)===!1,ke=e=>typeof e=="function";function Oe(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 ke(e)?[...e({...t,...r})]:Array.isArray(e)?[...e]:[]}var we=(e,r,t)=>{let o=r.startsWith("/")?z:W.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=n&&o(`${r}/package.json`),f=s&&Pe(s),c=g=>{if(o(`${r}${g}`))return`${f}${g}`},p=r,i=c("/manager"),l=c("/register")||c("/register-panel"),d=c("/preview"),m=o(`${p}/preset`);if(!(i||d)&&m)return{type:"presets",name:m};if(i||l||d||m){let g=[];return i&&g.push(i),!i&&l&&!m&&g.push(l),{type:"virtual",name:p,...g.length?{managerEntries:g}:{},...d?{previewAnnotations:[d]}:{},...m?{presets:[{name:m,options:t}]}:{}}}if(n)return{type:"presets",name:n}},Se=({configDir:e})=>r=>{let t=k(r)&&r.options||void 0,o=k(r)?r.name:r;try{let n=we(e,o,t);return{...t?{options:t}:{},...n}}catch{P.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 Re(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 C(s,r+1,t);if(k(s)){let{addons:f,presets:c,...p}=s,i=Y(c,n,t),l=Y(f,n,t);return[...await C([...i],r+1,t),...await C([...l.map(Se(t))].filter(Boolean),r+1,t),{name:o,preset:p,options:n}]}throw new Error(ve`
19
+ You have both a "main" and a "config". Please remove the "config" file from your configDir (${v.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 q({configDir:e}){S(e);let r=h(A.resolve(e,"presets"));if(h(A.resolve(e,"main"))){let o=$(A.resolve(e,"main"));if(o)return[o]}return r||[]}import he from"resolve-from";var W=(e,r)=>{try{return he(e,r)}catch{return}},z=e=>{try{return u.resolve(e)}catch{return}};var k=e=>e!=null&&typeof e=="object"&&Array.isArray(e)===!1,ke=e=>typeof e=="function";function Oe(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 ke(e)?[...e({...t,...r})]:Array.isArray(e)?[...e]:[]}var we=(e,r,t)=>{let o=r.startsWith("/")?z:W.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=n&&o(`${r}/package.json`),f=s&&Pe(s),c=g=>{if(o(`${r}${g}`))return`${f}${g}`},p=r,i=c("/manager"),l=c("/register")||c("/register-panel"),d=c("/preview"),m=o(`${p}/preset`);if(!(i||d)&&m)return{type:"presets",name:m};if(i||l||d||m){let g=[];return i&&g.push(i),!i&&l&&!m&&g.push(l),{type:"virtual",name:p,...g.length?{managerEntries:g}:{},...d?{previewAnnotations:[d]}:{},...m?{presets:[{name:m,options:t}]}:{}}}if(n)return{type:"presets",name:n}},Se=({configDir:e})=>r=>{let t=k(r)&&r.options||void 0,o=k(r)?r.name:r;try{let n=we(e,o,t);return{...t?{options:t}:{},...n}}catch{P.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 I(r)}async function Re(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 C(s,r+1,t);if(k(s)){let{addons:f,presets:c,...p}=s,i=Y(c,n,t),l=Y(f,n,t);return[...await C([...i],r+1,t),...await C([...l.map(Se(t))].filter(Boolean),r+1,t),{name:o,preset:p,options:n}]}throw new Error(ve`
21
21
  ${e} is not a valid preset
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 P.warn(n),P.error(o),[]}}async function C(e,r,t){return!e||!Array.isArray(e)||!e.length?[]:(r||P.info("=> Loading presets"),(await Promise.all(e.map(async o=>Re(o,r,t)))).reduce((o,n)=>o.concat(n),[]))}function G(e,r,t,o,n){let s=new Promise(f=>f(t));return e.length?e.reduce((f,{preset:c,options:p})=>{let i=c[r];if(!i)return f;if(typeof i=="function"){let l=i,d={preset:c,combinedOptions:{...n,...o,...p,presetsList:e,presets:{apply:async(m,g,x={})=>G(e,m,g,x,n)}}};return f.then(m=>l.call(d.preset,m,d.combinedOptions))}return f.then(l=>Array.isArray(l)&&Array.isArray(i)?[...l,...i]:k(l)&&k(i)?{...l,...i}:i)},s):s}async function Ee(e,r){let t=await C(e,0,r);return{apply:async(o,n,s={})=>G(t,o,n,s,r)}}async function Fr(e){let{corePresets:r=[],overridePresets:t=[],...o}=e,n=[...r,...q(e),...t],s=Oe(n);return s.length<n.length&&P.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),Ee(s,o)}import Te from"file-system-cache";function N(e){return Te(e)}import D from"path";import $e from"pkg-dir";function X(e){let r=process.cwd(),t=$e.sync(r),o;return t?o=D.resolve(t,"node_modules/.cache/storybook"):o=D.resolve(r,".cache/storybook"),D.join(o,e)}var Vr=N({basePath:X("dev-server"),ns:"storybook"});var{logger:F}=u("@storybook/node-logger"),L=e=>r=>{let t=r.name||r;return t&&t.includes(e)},Ie=(e,r,t)=>{let o=e.findIndex(L("@storybook/addon-essentials")),n=e.findIndex(L(r.name)),s=e.findIndex(L(t.name));return n===-1&&r.inEssentials&&(n=o),s===-1&&t.inEssentials&&(s=o),n!==-1&&s!==-1&&n<=s},Wr=async({before:e,after:r,configFile:t,getConfig:o})=>{try{let n=await o(t);if(!n?.addons){F.warn("Unable to find 'addons' config in main Storybook config");return}if(!Ie(n.addons,e,r)){let s=" (or '@storybook/addon-essentials')",f=`'${e.name}'${e.inEssentials?s:""}`,c=`'${r.name}'${r.inEssentials?s:""}`;F.warn(`Expected ${f} to be listed before ${c} in main Storybook config.`)}}catch{F.warn(`Unable to load config file: ${t}`)}};import{getEnvironment as Ae}from"lazy-universal-dotenv";import R from"path";import Z from"find-up";var Xr=()=>{let e;try{let r=Z.sync(".git",{type:"directory"});r&&(e=e||R.join(r,".."))}catch{}try{let r=Z.sync(".svn",{type:"directory"});r&&(e=e||R.join(r,".."))}catch{}try{e=e||__dirname.split("node_modules")[0]}catch{}return e||process.cwd()},Q=e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(r=>R.resolve("./",r)),je=/^\.{1,2}([/\\]|$)/;function ee(e){return je.test(e)?e:`.${R.sep}${e}`}function rt(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,[p,i])=>Object.assign(c,{[p]:JSON.stringify(i)}),{}),{stringified:n,raw:s}=Ae({nodeEnv:t.NODE_ENV}),f={...t,...s};return f.NODE_PATH=Q(f.NODE_PATH||""),{stringified:{...o,...n},raw:f}}var tt=e=>Object.entries(e).reduce((r,[t,o])=>(r[t]=JSON.stringify(o),r),{}),ot=e=>Object.entries(e).reduce((t,[o,n])=>(t[`process.env.${o}`]=JSON.stringify(n),t),{"process.env.XSTORYBOOK_EXAMPLE_APP":'""'});import re from"path";import{sync as Ne}from"find-up";var at=(e,r)=>{let t=Ne("package.json",{cwd:e});if(!t)throw new Error(`Could not find package.json in: ${e}`);let o=re.dirname(t);return re.join(o,"dist","esm",r)};import{dedent as De}from"ts-dedent";async function ft(e){let r=await e.presets.apply("framework","",e);if(!r)throw new Error(De`
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 P.warn(n),P.error(o),[]}}async function C(e,r,t){return!e||!Array.isArray(e)||!e.length?[]:(r||P.info("=> Loading presets"),(await Promise.all(e.map(async o=>Re(o,r,t)))).reduce((o,n)=>o.concat(n),[]))}function G(e,r,t,o,n){let s=new Promise(f=>f(t));return e.length?e.reduce((f,{preset:c,options:p})=>{let i=c[r];if(!i)return f;if(typeof i=="function"){let l=i,d={preset:c,combinedOptions:{...n,...o,...p,presetsList:e,presets:{apply:async(m,g,x={})=>G(e,m,g,x,n)}}};return f.then(m=>l.call(d.preset,m,d.combinedOptions))}return f.then(l=>Array.isArray(l)&&Array.isArray(i)?[...l,...i]:k(l)&&k(i)?{...l,...i}:i)},s):s}async function Ee(e,r){let t=await C(e,0,r);return{apply:async(o,n,s={})=>G(t,o,n,s,r)}}async function Lr(e){let{corePresets:r=[],overridePresets:t=[],...o}=e,n=[...r,...q(e),...t],s=Oe(n);return s.length<n.length&&P.warn("Storybook now supports TypeScript natively. You can safely remove `@storybook/preset-typescript`."),Ee(s,o)}import Te from"file-system-cache";function N(e){return Te(e)}import D from"path";import Ie from"pkg-dir";function X(e){let r=process.cwd(),t=Ie.sync(r),o;return t?o=D.resolve(t,"node_modules/.cache/storybook"):o=D.resolve(r,".cache/storybook"),D.join(o,e)}var qr=N({basePath:X("dev-server"),ns:"storybook"});var{logger:F}=u("@storybook/node-logger"),L=e=>r=>{let t=r.name||r;return t&&t.includes(e)},$e=(e,r,t)=>{let o=e.findIndex(L("@storybook/addon-essentials")),n=e.findIndex(L(r.name)),s=e.findIndex(L(t.name));return n===-1&&r.inEssentials&&(n=o),s===-1&&t.inEssentials&&(s=o),n!==-1&&s!==-1&&n<=s},zr=async({before:e,after:r,configFile:t,getConfig:o})=>{try{let n=await o(t);if(!n?.addons){F.warn("Unable to find 'addons' config in main Storybook config");return}if(!$e(n.addons,e,r)){let s=" (or '@storybook/addon-essentials')",f=`'${e.name}'${e.inEssentials?s:""}`,c=`'${r.name}'${r.inEssentials?s:""}`;F.warn(`Expected ${f} to be listed before ${c} in main Storybook config.`)}}catch{F.warn(`Unable to load config file: ${t}`)}};import{getEnvironment as Ae}from"lazy-universal-dotenv";import R from"path";import Z from"find-up";var Zr=()=>{let e;try{let r=Z.sync(".git",{type:"directory"});r&&(e=e||R.join(r,".."))}catch{}try{let r=Z.sync(".svn",{type:"directory"});r&&(e=e||R.join(r,".."))}catch{}try{e=e||__dirname.split("node_modules")[0]}catch{}return e||process.cwd()},Q=e=>e.split(process.platform==="win32"?";":":").filter(Boolean).map(r=>R.resolve("./",r)),je=/^\.{1,2}([/\\]|$)/;function ee(e){return je.test(e)?e:`.${R.sep}${e}`}function tt(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,[p,i])=>Object.assign(c,{[p]:JSON.stringify(i)}),{}),{stringified:n,raw:s}=Ae({nodeEnv:t.NODE_ENV}),f={...t,...s};return f.NODE_PATH=Q(f.NODE_PATH||""),{stringified:{...o,...n},raw:f}}var ot=e=>Object.entries(e).reduce((r,[t,o])=>(r[t]=JSON.stringify(o),r),{}),nt=e=>Object.entries(e).reduce((t,[o,n])=>(t[`process.env.${o}`]=JSON.stringify(n),t),{"process.env.XSTORYBOOK_EXAMPLE_APP":'""'});import re from"path";import{sync as Ne}from"find-up";var ct=(e,r)=>{let t=Ne("package.json",{cwd:e});if(!t)throw new Error(`Could not find package.json in: ${e}`);let o=re.dirname(t);return re.join(o,"dist","esm",r)};import{dedent as De}from"ts-dedent";async function lt(e){let r=await e.presets.apply("framework","",e);if(!r)throw new Error(De`
23
23
  You must specify a framework in '.storybook/main.js' config.
24
24
 
25
25
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
26
- `);return typeof r=="object"?r.name:r}function te(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 Fe from"path";import Le from"fs-extra";var oe={"@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"},ne=console,_e=({dependencies:e,devDependencies:r,peerDependencies:t},o)=>[Object.entries(e||{}).find(o),Object.entries(r||{}).find(o),Object.entries(t||{}).find(o)],Be=e=>{let[r,t,o]=_e(e,([c])=>oe[c]),[n,s]=r||t||o||[],f=n?oe[n]:void 0;return r&&t&&r[0]===t[0]&&ne.warn(`Found "${r[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),r&&o&&r[0]===o[0]&&ne.warn(`Found "${r[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{version:s,framework:f,frameworkPackage:n,renderer:f,rendererPackage:n}},Me=["ts","js","tsx","jsx","mjs","cjs"],_=(e,r)=>{let t=Fe.join(r,e),o=Me.find(n=>Le.existsSync(`${t}.${n}`));return o?`${t}.${o}`:null},Je=e=>{let r=".storybook",t=e.scripts?.storybook;if(t){let o=te(t,"-c","--config-dir");o&&(r=o)}return{configDir:r,mainConfig:_("main",r),previewConfig:_("preview",r),managerConfig:_("manager",r)}},yt=e=>{let r=Be(e),t=Je(e);return{...r,...t}};import{readJSON as se}from"fs-extra";import{dirname as Ke,join as Ue}from"path";import He from"find-up";import Ve from"resolve-from";import{logger as qe}from"@storybook/node-logger";var We=async e=>{let r=await He("package.json",{cwd:e.configDir});if(!r)return{};let t=Ke(r),{dependencies:o=[],devDependencies:n=[]}=await se(r)||{},s=Object.keys({...o,...n});return(await Promise.all(s.map(async c=>{try{let p=Ve(t,Ue(c,"package.json")),{storybook:i,name:l,version:d}=await se(p)||{};if(i?.url)return{id:l,...i,version:d}}catch(p){if(p.code==="ERR_PACKAGE_PATH_NOT_EXPORTED")return;qe.warn(`unable to find package.json for ${c}`);return}}))).filter(Boolean).reduce((c,p)=>({...c,[p.id]:{id:p.id.toLowerCase(),url:ie(p.url),title:p.title,version:p.version}}),{})},ze=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),ie=e=>e.replace(/\/$/,""),Ye=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 Ot(e){let r=await e.presets.apply("refs",await We(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||Ye(o.id||t),url:ie(o.url)}}),await Promise.all(Object.entries(r).map(async([t,o])=>{let n=await ze(o.url);r[t]={...o,type:n?"server-checked":"unknown"}})),r}import{makeRe as Ge}from"picomatch";function ae(e){let r=Ge(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 Xe from"handlebars";function Et(e,r){return Xe.compile(e)(r)}var $t=(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 Ze from"path";function Dt({configDir:e}){return S(e),h(Ze.resolve(e,"main"))}import B from"path";import{logger as Qe}from"@storybook/node-logger";import{dedent as er}from"ts-dedent";function Jt({configDir:e}){let r=y(B.resolve(e,"addons")),t=y(B.resolve(e,"manager"));if((r||t)&&Qe.info("=> Loading custom manager config"),r&&t)throw new Error(er`
27
- You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${B.resolve(e,"addons")})`);return t||r}import M from"path";import{dedent as rr}from"ts-dedent";function qt({configDir:e}){let r=y(M.resolve(e,"config")),t=y(M.resolve(e,"preview"));if(r&&t)throw new Error(rr`
28
- You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${M.resolve(e,"config")})`);return t||r}import tr from"chalk";function Yt(e,r){console.log(tr.cyan(e)),console.dir(r,{depth:null})}import or from"fs";import O from"path";import{scan as nr}from"picomatch";import ce from"slash";var E="",pe="**/*.@(mdx|stories.mdx|stories.tsx|stories.ts|stories.jsx|stories.js)",sr=(e,r)=>{try{return or.lstatSync(O.resolve(e,r)).isDirectory()}catch{return!1}},ir=({configDir:e,workingDir:r,directory:t})=>{let o=O.resolve(e,t),n=O.relative(r,o);return ee(n)},ar=(e,{configDir:r,workingDir:t})=>{let o;if(typeof e=="string"){let p=nr(e);if(p.isGlob){let i=p.prefix+p.base,l=p.glob;o={titlePrefix:E,directory:i,files:l}}else sr(r,e)?o={titlePrefix:E,directory:e,files:pe}:o={titlePrefix:E,directory:O.dirname(e),files:O.basename(e)}}else o={titlePrefix:E,files:pe,...e};let n=ce(o.files),{directory:s}=o,f=ce(ir({configDir:r,workingDir:t,directory:s})).replace(/\/$/,""),c=ae(`${f}/${n}`);return{...o,directory:f,importPathMatcher:c}},oo=(e,r)=>e.map(t=>ar(t,r));import cr from"pretty-hrtime";var fe=e=>cr(process.hrtime(e)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes");var co=async(e,r,t)=>{let o=0,n,s=()=>{};e.get("/progress",(p,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=m=>{l||i.writableEnded||(i.write(`data: ${JSON.stringify(m)}
26
+ `);return typeof r=="object"?r.name:r}import{dedent as Fe}from"ts-dedent";async function gt(e){let{renderer:r}=await e.presets.apply("core",{},e);if(!r)throw new Error(Fe`
27
+ You must specify a framework in '.storybook/main.js' config.
28
+
29
+ https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
30
+ `);return r}function te(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 Le from"path";import _e from"fs-extra";var oe={"@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"},ne=console,Me=({dependencies:e,devDependencies:r,peerDependencies:t},o)=>[Object.entries(e||{}).find(o),Object.entries(r||{}).find(o),Object.entries(t||{}).find(o)],Be=e=>{let[r,t,o]=Me(e,([c])=>oe[c]),[n,s]=r||t||o||[],f=n?oe[n]:void 0;return r&&t&&r[0]===t[0]&&ne.warn(`Found "${r[0]}" in both "dependencies" and "devDependencies". This is probably a mistake.`),r&&o&&r[0]===o[0]&&ne.warn(`Found "${r[0]}" in both "dependencies" and "peerDependencies". This is probably a mistake.`),{version:s,framework:f,frameworkPackage:n,renderer:f,rendererPackage:n}},Je=["ts","js","tsx","jsx","mjs","cjs"],_=(e,r)=>{let t=Le.join(r,e),o=Je.find(n=>_e.existsSync(`${t}.${n}`));return o?`${t}.${o}`:null},Ke=e=>{let r=".storybook",t=e.scripts?.storybook;if(t){let o=te(t,"-c","--config-dir");o&&(r=o)}return{configDir:r,mainConfig:_("main",r),previewConfig:_("preview",r),managerConfig:_("manager",r)}},vt=e=>{let r=Be(e),t=Ke(e);return{...r,...t}};import{readJSON as se}from"fs-extra";import{dirname as Ue,join as He}from"path";import Ve from"find-up";import qe from"resolve-from";import{logger as We}from"@storybook/node-logger";var ze=async e=>{let r=await Ve("package.json",{cwd:e.configDir});if(!r)return{};let t=Ue(r),{dependencies:o=[],devDependencies:n=[]}=await se(r)||{},s=Object.keys({...o,...n});return(await Promise.all(s.map(async c=>{try{let p=qe(t,He(c,"package.json")),{storybook:i,name:l,version:d}=await se(p)||{};if(i?.url)return{id:l,...i,version:d}}catch(p){if(p.code==="ERR_PACKAGE_PATH_NOT_EXPORTED")return;We.warn(`unable to find package.json for ${c}`);return}}))).filter(Boolean).reduce((c,p)=>({...c,[p.id]:{id:p.id.toLowerCase(),url:ie(p.url),title:p.title,version:p.version}}),{})},Ye=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),ie=e=>e.replace(/\/$/,""),Ge=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 Rt(e){let r=await e.presets.apply("refs",await ze(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||Ge(o.id||t),url:ie(o.url)}}),await Promise.all(Object.entries(r).map(async([t,o])=>{let n=await Ye(o.url);r[t]={...o,type:n?"server-checked":"unknown"}})),r}import{makeRe as Xe}from"picomatch";function ae(e){let r=Xe(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 Ze from"handlebars";function jt(e,r){return Ze.compile(e)(r)}var Nt=(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 Qe from"path";function Mt({configDir:e}){return S(e),h(Qe.resolve(e,"main"))}import M from"path";import{logger as er}from"@storybook/node-logger";import{dedent as rr}from"ts-dedent";function Vt({configDir:e}){let r=y(M.resolve(e,"addons")),t=y(M.resolve(e,"manager"));if((r||t)&&er.info("=> Loading custom manager config"),r&&t)throw new Error(rr`
31
+ You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${M.resolve(e,"addons")})`);return t||r}import B from"path";import{dedent as tr}from"ts-dedent";function Gt({configDir:e}){let r=y(B.resolve(e,"config")),t=y(B.resolve(e,"preview"));if(r&&t)throw new Error(tr`
32
+ 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 or from"chalk";function Qt(e,r){console.log(or.cyan(e)),console.dir(r,{depth:null})}import nr from"fs";import O from"path";import{scan as sr}from"picomatch";import ce from"slash";var E="",pe="**/*.@(mdx|stories.mdx|stories.tsx|stories.ts|stories.jsx|stories.js)",ir=(e,r)=>{try{return nr.lstatSync(O.resolve(e,r)).isDirectory()}catch{return!1}},ar=({configDir:e,workingDir:r,directory:t})=>{let o=O.resolve(e,t),n=O.relative(r,o);return ee(n)},cr=(e,{configDir:r,workingDir:t})=>{let o;if(typeof e=="string"){let p=sr(e);if(p.isGlob){let i=p.prefix+p.base,l=p.glob;o={titlePrefix:E,directory:i,files:l}}else ir(r,e)?o={titlePrefix:E,directory:e,files:pe}:o={titlePrefix:E,directory:O.dirname(e),files:O.basename(e)}}else o={titlePrefix:E,files:pe,...e};let n=ce(o.files),{directory:s}=o,f=ce(ar({configDir:r,workingDir:t,directory:s})).replace(/\/$/,""),c=ae(`${f}/${n}`);return{...o,directory:f,importPathMatcher:c}},ao=(e,r)=>e.map(t=>cr(t,r));import pr from"pretty-hrtime";var fe=e=>pr(process.hrtime(e)).replace(" ms"," milliseconds").replace(" s"," seconds").replace(" m"," minutes");var mo=async(e,r,t)=>{let o=0,n,s=()=>{};e.get("/progress",(p,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=m=>{l||i.writableEnded||(i.write(`data: ${JSON.stringify(m)}
29
33
 
30
- `),i.flush(),m.value===1&&d())})});let f=(p,i,l)=>{o=Math.max(p,o);let d={value:o,message:i.charAt(0).toUpperCase()+i.slice(1)};if(i==="building"){let m=l&&l.match(/(\d+)\/(\d+)/)||[],g=parseInt(m[1],10),x=parseInt(m[2],10);!Number.isNaN(g)&&!Number.isNaN(x)&&(d.modules={complete:g,total:x},n=x)}o===1&&(t.cache&&t.cache.set("modulesCount",n),d.message||(d.message=`Completed in ${fe(r)}.`)),s(d)},c=await t.cache?.get("modulesCount").catch(()=>{})||1e3;return{handler:f,modulesCount:c}};import pr from"fs-extra";async function lo(e){return pr.readFile(e,{encoding:"utf8"})}function go(){let{NODE_OPTIONS:e,NODE_PRESERVE_SYMLINKS:r}=a;return!!r||e?.includes("--preserve-symlinks")}import le from"path";import{sync as J}from"pkg-dir";import b from"fs";var de=(e,r={})=>Object.entries(r).reduce((t,[o,n])=>t.replace(new RegExp(`%${o}%`,"g"),n),e);function ho(e,r){let t=b.readFileSync(`${J(__dirname)}/templates/base-preview-body.html`,"utf8"),o=le.resolve(e,"preview-body.html"),n=t;return b.existsSync(o)&&(n=b.readFileSync(o,"utf8")+n),de(n,r)}function vo(e,r){let t=b.readFileSync(`${J(__dirname)}/templates/base-preview-head.html`,"utf8"),o=le.resolve(e,"preview-head.html"),n=t;return b.existsSync(o)&&(n+=b.readFileSync(o,"utf8")),de(n,r)}function Po(){return`${J(__dirname)}/templates/preview.ejs`}import{dedent as fr}from"ts-dedent";var lr=["@storybook/html","@storybook/preact","@storybook/react","@storybook/server","@storybook/svelte","@storybook/vue","@storybook/vue3","@storybook/web-components"];function wo(e){if(lr.includes(e))throw new Error(fr`
34
+ `),i.flush(),m.value===1&&d())})});let f=(p,i,l)=>{o=Math.max(p,o);let d={value:o,message:i.charAt(0).toUpperCase()+i.slice(1)};if(i==="building"){let m=l&&l.match(/(\d+)\/(\d+)/)||[],g=parseInt(m[1],10),x=parseInt(m[2],10);!Number.isNaN(g)&&!Number.isNaN(x)&&(d.modules={complete:g,total:x},n=x)}o===1&&(t.cache&&t.cache.set("modulesCount",n),d.message||(d.message=`Completed in ${fe(r)}.`)),s(d)},c=await t.cache?.get("modulesCount").catch(()=>{})||1e3;return{handler:f,modulesCount:c}};import fr from"fs-extra";async function yo(e){return fr.readFile(e,{encoding:"utf8"})}function xo(){let{NODE_OPTIONS:e,NODE_PRESERVE_SYMLINKS:r}=a;return!!r||e?.includes("--preserve-symlinks")}import le from"path";import{sync as J}from"pkg-dir";import b from"fs";var de=(e,r={})=>Object.entries(r).reduce((t,[o,n])=>t.replace(new RegExp(`%${o}%`,"g"),n),e);function Oo(e,r){let t=b.readFileSync(`${J(__dirname)}/templates/base-preview-body.html`,"utf8"),o=le.resolve(e,"preview-body.html"),n=t;return b.existsSync(o)&&(n=b.readFileSync(o,"utf8")+n),de(n,r)}function wo(e,r){let t=b.readFileSync(`${J(__dirname)}/templates/base-preview-head.html`,"utf8"),o=le.resolve(e,"preview-head.html"),n=t;return b.existsSync(o)&&(n+=b.readFileSync(o,"utf8")),de(n,r)}function So(){return`${J(__dirname)}/templates/preview.ejs`}import{dedent as lr}from"ts-dedent";var dr=["@storybook/html","@storybook/preact","@storybook/react","@storybook/server","@storybook/svelte","@storybook/vue","@storybook/vue3","@storybook/web-components"];function Eo(e){if(dr.includes(e))throw new Error(lr`
31
35
  Invalid value of ${e} in the 'framework' field of Storybook config.
32
36
 
33
37
  Please run 'npx sb@next automigrate'
34
38
 
35
39
  See the v7 Migration guide for more information:
36
40
  https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory
37
- `)}function Co(){return e=>e}export{T as boost,Vr as cache,Wr as checkAddonOrder,N as createFileSystemCache,Oe as filterPresetsConfig,at as findDistEsm,We as getAutoRefs,ir as getDirectoryFromWorkingDir,ft as getFrameworkName,y as getInterpretedFile,H as getInterpretedFileWithExt,Ee as getPresets,ho as getPreviewBodyTemplate,vo as getPreviewHeadTemplate,Po as getPreviewMainTemplate,Xr as getProjectRoot,Ot as getRefs,te as getStorybookConfiguration,yt as getStorybookInfo,ae as globToRegexp,Et as handlebars,$ as interopRequireDefault,$t as interpolate,go as isPreservingSymlinks,Fr as loadAllPresets,q as loadCustomPresets,rt as loadEnvs,Dt as loadMainConfig,Jt as loadManagerOrAddonsFile,Re as loadPreset,qt as loadPreviewOrConfigFile,Yt as logConfig,Q as nodePathsToArray,oo as normalizeStories,ar as normalizeStoriesEntry,ee as normalizeStoryPath,lo as readTemplate,we as resolveAddonName,X as resolvePathInStorybookCache,Co as satisfies,h as serverRequire,I as serverResolve,tt as stringifyEnvs,ot as stringifyProcessEnvs,co as useProgressReporting,S as validateConfigurationFiles,wo as validateFrameworkName};
41
+ `)}function Io(){return e=>e}export{T as boost,qr as cache,zr as checkAddonOrder,N as createFileSystemCache,Oe as filterPresetsConfig,ct as findDistEsm,ze as getAutoRefs,ar as getDirectoryFromWorkingDir,lt as getFrameworkName,y as getInterpretedFile,H as getInterpretedFileWithExt,Ee as getPresets,Oo as getPreviewBodyTemplate,wo as getPreviewHeadTemplate,So as getPreviewMainTemplate,Zr as getProjectRoot,Rt as getRefs,gt as getRendererName,te as getStorybookConfiguration,vt as getStorybookInfo,ae as globToRegexp,jt as handlebars,I as interopRequireDefault,Nt as interpolate,xo as isPreservingSymlinks,Lr as loadAllPresets,q as loadCustomPresets,tt as loadEnvs,Mt as loadMainConfig,Vt as loadManagerOrAddonsFile,Re as loadPreset,Gt as loadPreviewOrConfigFile,Qt as logConfig,Q as nodePathsToArray,ao as normalizeStories,cr as normalizeStoriesEntry,ee as normalizeStoryPath,yo as readTemplate,we as resolveAddonName,X as resolvePathInStorybookCache,Io as satisfies,h as serverRequire,$ as serverResolve,ot as stringifyEnvs,nt as stringifyProcessEnvs,mo as useProgressReporting,S as validateConfigurationFiles,Eo as validateFrameworkName};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/core-common",
3
- "version": "7.0.0-alpha.42",
3
+ "version": "7.0.0-alpha.43",
4
4
  "description": "Storybook framework-agnostic API",
5
5
  "keywords": [
6
6
  "storybook"
@@ -48,7 +48,7 @@
48
48
  "dependencies": {
49
49
  "@babel/core": "^7.12.10",
50
50
  "@storybook/csf": "next",
51
- "@storybook/node-logger": "7.0.0-alpha.42",
51
+ "@storybook/node-logger": "7.0.0-alpha.43",
52
52
  "@types/babel__core": "^7.0.0",
53
53
  "@types/express": "^4.7.0",
54
54
  "@types/node": "^16.0.0",
@@ -97,5 +97,5 @@
97
97
  ],
98
98
  "platform": "node"
99
99
  },
100
- "gitHead": "4ed2e832e3accf8e533da92a46a812eacaf5db0b"
100
+ "gitHead": "f801c26f7bdcbfeeeca6706c0854d130bfb2f38b"
101
101
  }