@storybook/core-common 7.0.0-alpha.11 → 7.0.0-alpha.12
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 +26 -7
- package/dist/index.js +15 -10
- package/dist/index.mjs +16 -11
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -162,7 +162,7 @@ interface StorybookConfigOptions {
|
|
|
162
162
|
presetsList?: LoadedPreset[];
|
|
163
163
|
}
|
|
164
164
|
declare type Options$1 = LoadOptions & StorybookConfigOptions & CLIOptions & BuilderOptions;
|
|
165
|
-
interface Builder<Config, Stats> {
|
|
165
|
+
interface Builder<Config, BuilderStats extends Stats = Stats> {
|
|
166
166
|
getConfig: (options: Options$1) => Promise<Config>;
|
|
167
167
|
start: (args: {
|
|
168
168
|
options: Options$1;
|
|
@@ -170,14 +170,14 @@ interface Builder<Config, Stats> {
|
|
|
170
170
|
router: Router;
|
|
171
171
|
server: Server;
|
|
172
172
|
}) => Promise<void | {
|
|
173
|
-
stats
|
|
173
|
+
stats?: BuilderStats;
|
|
174
174
|
totalTime: ReturnType<typeof process.hrtime>;
|
|
175
175
|
bail: (e?: Error) => Promise<void>;
|
|
176
176
|
}>;
|
|
177
177
|
build: (arg: {
|
|
178
178
|
options: Options$1;
|
|
179
179
|
startTime: ReturnType<typeof process.hrtime>;
|
|
180
|
-
}) => Promise<void |
|
|
180
|
+
}) => Promise<void | BuilderStats>;
|
|
181
181
|
bail: (e?: Error) => Promise<void>;
|
|
182
182
|
corePresets?: string[];
|
|
183
183
|
overridePresets?: string[];
|
|
@@ -199,6 +199,7 @@ interface StoryIndex {
|
|
|
199
199
|
interface StoryIndexer {
|
|
200
200
|
test: RegExp;
|
|
201
201
|
indexer: (fileName: string, options: IndexerOptions) => Promise<StoryIndex>;
|
|
202
|
+
addDocsTemplate?: boolean;
|
|
202
203
|
}
|
|
203
204
|
/**
|
|
204
205
|
* Options for TypeScript usage within Storybook.
|
|
@@ -252,6 +253,20 @@ declare type StorybookRefs = Record<string, {
|
|
|
252
253
|
} | {
|
|
253
254
|
disable: boolean;
|
|
254
255
|
}>;
|
|
256
|
+
declare type DocsOptions = {
|
|
257
|
+
/**
|
|
258
|
+
* Should we generate docs entries at all under any circumstances? (i.e. can they be rendered)
|
|
259
|
+
*/
|
|
260
|
+
enabled?: boolean;
|
|
261
|
+
/**
|
|
262
|
+
* What should we call the generated docs entries?
|
|
263
|
+
*/
|
|
264
|
+
defaultName?: string;
|
|
265
|
+
/**
|
|
266
|
+
* Should we generate a docs entry per CSF file?
|
|
267
|
+
*/
|
|
268
|
+
docsPage?: boolean;
|
|
269
|
+
};
|
|
255
270
|
/**
|
|
256
271
|
* The interface for Storybook configuration in `main.ts` files.
|
|
257
272
|
*/
|
|
@@ -355,6 +370,10 @@ interface StorybookConfig {
|
|
|
355
370
|
* Process CSF files for the story index.
|
|
356
371
|
*/
|
|
357
372
|
storyIndexers?: (indexers: StoryIndexer[], options: Options$1) => StoryIndexer[];
|
|
373
|
+
/**
|
|
374
|
+
* Docs related features in index generation
|
|
375
|
+
*/
|
|
376
|
+
docs?: DocsOptions;
|
|
358
377
|
}
|
|
359
378
|
declare type PresetProperty<K, TStorybookConfig = StorybookConfig> = TStorybookConfig[K extends keyof TStorybookConfig ? K : never] | PresetPropertyFn<K, TStorybookConfig>;
|
|
360
379
|
declare type PresetPropertyFn<K, TStorybookConfig = StorybookConfig, TOptions = {}> = (config: TStorybookConfig[K extends keyof TStorybookConfig ? K : never], options: Options$1 & TOptions) => TStorybookConfig[K extends keyof TStorybookConfig ? K : never] | Promise<TStorybookConfig[K extends keyof TStorybookConfig ? K : never]>;
|
|
@@ -391,13 +410,13 @@ interface ResolvedAddonVirtual {
|
|
|
391
410
|
})[];
|
|
392
411
|
}
|
|
393
412
|
declare const resolveAddonName: (configDir: string, name: string, options: any) => ResolvedAddonPreset | ResolvedAddonVirtual | undefined;
|
|
394
|
-
declare function loadPreset(input: PresetConfig, level: number, storybookOptions: InterPresetOptions): LoadedPreset[]
|
|
413
|
+
declare function loadPreset(input: PresetConfig, level: number, storybookOptions: InterPresetOptions): Promise<LoadedPreset[]>;
|
|
395
414
|
declare type InterPresetOptions = Omit<CLIOptions & LoadOptions & BuilderOptions, 'frameworkPresets'>;
|
|
396
|
-
declare function getPresets(presets: PresetConfig[], storybookOptions: InterPresetOptions): Presets
|
|
415
|
+
declare function getPresets(presets: PresetConfig[], storybookOptions: InterPresetOptions): Promise<Presets>;
|
|
397
416
|
declare function loadAllPresets(options: CLIOptions & LoadOptions & BuilderOptions & {
|
|
398
417
|
corePresets: string[];
|
|
399
418
|
overridePresets: string[];
|
|
400
|
-
}): Presets
|
|
419
|
+
}): Promise<Presets>;
|
|
401
420
|
|
|
402
421
|
declare type OptionsEntry = {
|
|
403
422
|
name: string;
|
|
@@ -527,4 +546,4 @@ declare function readTemplate(filename: string): Promise<string>;
|
|
|
527
546
|
|
|
528
547
|
declare const findDistEsm: (cwd: string, relativePath: string) => string;
|
|
529
548
|
|
|
530
|
-
export { AddonEntry, AddonInfo, Builder, BuilderName, BuilderOptions, BuilderResult, CLIOptions, CoreConfig, 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, 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 };
|
|
549
|
+
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, 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.js
CHANGED
|
@@ -1,23 +1,28 @@
|
|
|
1
|
-
"use strict";var
|
|
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:`{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"strict": false,
|
|
4
|
+
"skipLibCheck": true,
|
|
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`
|
|
2
7
|
Configuration files such as "config", "presets" and "addons" are deprecated and will be removed in Storybook 7.0.
|
|
3
8
|
Read more about it in the migration guide: https://github.com/storybookjs/storybook/blob/master/MIGRATION.md#to-mainjs-configuration
|
|
4
|
-
`),
|
|
9
|
+
`),W=n((e,t,r)=>{let o=b.default.resolve(r,e),s=b.default.resolve(r,t);throw new Error(k.dedent`
|
|
5
10
|
You have mixing configuration files:
|
|
6
11
|
${o}
|
|
7
12
|
${s}
|
|
8
13
|
"${e}" and "${t}" cannot coexist.
|
|
9
14
|
Please check the documentation for migration steps: https://github.com/storybookjs/storybook/blob/master/MIGRATION.md#to-mainjs-configuration
|
|
10
|
-
`)},"errorMixingConfigFiles");function P(e){let t=`{${Array.from(
|
|
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`
|
|
11
16
|
No configuration files have been found in your configDir (${b.default.resolve(e)}).
|
|
12
17
|
Storybook needs either a "main" or "config" file.
|
|
13
18
|
`);if(o&&s)throw new Error(k.dedent`
|
|
14
|
-
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&&
|
|
15
|
-
${t}`)}},"map");function
|
|
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`
|
|
16
21
|
${e} is not a valid preset
|
|
17
|
-
`)}catch(o){let s=t>0?` Failed to load preset: ${JSON.stringify(e)} on level ${t}`:` Failed to load preset: ${JSON.stringify(e)}`;return
|
|
18
|
-
You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${
|
|
19
|
-
You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${
|
|
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)}
|
|
20
25
|
|
|
21
|
-
`),c.flush(),g.value===1&&u())},"reportProgress"))});let
|
|
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`
|
|
22
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
|
|
23
|
-
`),
|
|
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});
|
package/dist/index.mjs
CHANGED
|
@@ -1,23 +1,28 @@
|
|
|
1
|
-
|
|
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:`{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"strict": false,
|
|
4
|
+
"skipLibCheck": true,
|
|
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`
|
|
2
7
|
Configuration files such as "config", "presets" and "addons" are deprecated and will be removed in Storybook 7.0.
|
|
3
8
|
Read more about it in the migration guide: https://github.com/storybookjs/storybook/blob/master/MIGRATION.md#to-mainjs-configuration
|
|
4
|
-
`),
|
|
9
|
+
`),I=n((e,t,r)=>{let o=v.resolve(r,e),s=v.resolve(r,t);throw new Error(j`
|
|
5
10
|
You have mixing configuration files:
|
|
6
11
|
${o}
|
|
7
12
|
${s}
|
|
8
13
|
"${e}" and "${t}" cannot coexist.
|
|
9
14
|
Please check the documentation for migration steps: https://github.com/storybookjs/storybook/blob/master/MIGRATION.md#to-mainjs-configuration
|
|
10
|
-
`)},"errorMixingConfigFiles");function
|
|
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`
|
|
11
16
|
No configuration files have been found in your configDir (${v.resolve(e)}).
|
|
12
17
|
Storybook needs either a "main" or "config" file.
|
|
13
|
-
`);if(o&&s)throw new Error(
|
|
14
|
-
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&&
|
|
15
|
-
${t}`)}},"map");function
|
|
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`
|
|
16
21
|
${e} is not a valid preset
|
|
17
|
-
`)}catch(o){let s=t>0?` Failed to load preset: ${JSON.stringify(e)} on level ${t}`:` Failed to load preset: ${JSON.stringify(e)}`;return
|
|
18
|
-
You have both a "addons.js" and a "manager.js", remove the "addons.js" file from your configDir (${
|
|
19
|
-
You have both a "config.js" and a "preview.js", remove the "config.js" file from your configDir (${
|
|
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)}
|
|
20
25
|
|
|
21
|
-
`),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+)/)||[],
|
|
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`
|
|
22
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
|
|
23
|
-
`),
|
|
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};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/core-common",
|
|
3
|
-
"version": "7.0.0-alpha.
|
|
3
|
+
"version": "7.0.0-alpha.12",
|
|
4
4
|
"description": "Storybook framework-agnostic API",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"storybook"
|
|
@@ -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.
|
|
72
|
+
"@storybook/node-logger": "7.0.0-alpha.12",
|
|
73
73
|
"@storybook/semver": "^7.3.2",
|
|
74
74
|
"@types/babel__core": "^7.0.0",
|
|
75
75
|
"@types/express": "^4.7.0",
|
|
@@ -80,13 +80,14 @@
|
|
|
80
80
|
"babel-plugin-polyfill-corejs3": "^0.1.0",
|
|
81
81
|
"chalk": "^4.1.0",
|
|
82
82
|
"core-js": "^3.8.2",
|
|
83
|
+
"esbuild": "^0.14.48",
|
|
84
|
+
"esbuild-register": "^3.3.3",
|
|
83
85
|
"express": "^4.17.1",
|
|
84
86
|
"file-system-cache": "^2.0.0",
|
|
85
87
|
"find-up": "^5.0.0",
|
|
86
88
|
"fs-extra": "^9.0.1",
|
|
87
89
|
"glob": "^7.1.6",
|
|
88
90
|
"handlebars": "^4.7.7",
|
|
89
|
-
"interpret": "^2.2.0",
|
|
90
91
|
"json5": "^2.1.3",
|
|
91
92
|
"lazy-universal-dotenv": "^3.0.1",
|
|
92
93
|
"picomatch": "^2.3.0",
|
|
@@ -101,7 +102,6 @@
|
|
|
101
102
|
"devDependencies": {
|
|
102
103
|
"@digitak/esrun": "^3.2.2",
|
|
103
104
|
"@types/compression": "^1.7.0",
|
|
104
|
-
"@types/interpret": "^1.1.1",
|
|
105
105
|
"@types/mock-fs": "^4.13.0",
|
|
106
106
|
"@types/picomatch": "^2.3.0",
|
|
107
107
|
"mock-fs": "^4.13.0",
|
|
@@ -125,5 +125,5 @@
|
|
|
125
125
|
],
|
|
126
126
|
"platform": "node"
|
|
127
127
|
},
|
|
128
|
-
"gitHead": "
|
|
128
|
+
"gitHead": "5070efff271ecb5c26b3eb94c128c4896171cffe"
|
|
129
129
|
}
|