@storybook/builder-webpack5 8.0.0-alpha.9 → 8.0.0-beta.1

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.
@@ -721,7 +721,7 @@ PackageJson$1.JSPMConfiguration;
721
721
  type StoryId = string;
722
722
  type ComponentTitle = string;
723
723
  type StoryName = string;
724
- type Tag = string;
724
+ type Tag$1 = string;
725
725
 
726
726
  interface Options$1 {
727
727
  allowRegExp: boolean;
@@ -799,7 +799,9 @@ type BaseIndexInput = {
799
799
  */
800
800
  metaId?: MetaId;
801
801
  /** Tags for filtering entries in Storybook and its tools. */
802
- tags?: Tag[];
802
+ tags?: Tag$1[];
803
+ /** Tags from the meta for filtering entries in Storybook and its tools. */
804
+ metaTags?: Tag$1[];
803
805
  /**
804
806
  * The id of the entry, auto-generated from {@link title}/{@link metaId} and {@link exportName} if unspecified.
805
807
  * If specified, the story in the CSF file _must_ have a matching id set at `parameters.__id`, to be correctly matched.
@@ -1064,6 +1066,12 @@ interface TestBuildFlags {
1064
1066
  interface TestBuildConfig {
1065
1067
  test?: TestBuildFlags;
1066
1068
  }
1069
+ type Tag = string;
1070
+ interface TagOptions {
1071
+ excludeFromSidebar: boolean;
1072
+ excludeFromDocsStories: boolean;
1073
+ }
1074
+ type TagsOptions = Record<Tag, Partial<TagOptions>>;
1067
1075
  /**
1068
1076
  * The interface for Storybook configuration used internally in presets
1069
1077
  * The difference is that these values are the raw values, AKA, not wrapped with `PresetValue<>`
@@ -1098,9 +1106,9 @@ interface StorybookConfigRaw {
1098
1106
  */
1099
1107
  disallowImplicitActionsInRenderV8?: boolean;
1100
1108
  /**
1101
- * Enable asynchronous component rendering in NextJS framework
1109
+ * Enable asynchronous component rendering in React renderer
1102
1110
  */
1103
- experimentalNextRSC?: boolean;
1111
+ experimentalRSC?: boolean;
1104
1112
  };
1105
1113
  build?: TestBuildConfig;
1106
1114
  stories: StoriesEntry[];
@@ -1111,7 +1119,6 @@ interface StorybookConfigRaw {
1111
1119
  swc?: any;
1112
1120
  env?: Record<string, string>;
1113
1121
  babelDefault?: any;
1114
- config?: Entry[];
1115
1122
  previewAnnotations?: Entry[];
1116
1123
  experimental_indexers?: Indexer[];
1117
1124
  docs?: DocsOptions;
@@ -1119,6 +1126,7 @@ interface StorybookConfigRaw {
1119
1126
  previewBody?: string;
1120
1127
  previewMainTemplate?: string;
1121
1128
  managerHead?: string;
1129
+ tags?: TagsOptions;
1122
1130
  }
1123
1131
  type Path = string;
1124
1132
 
package/dist/index.d.ts CHANGED
@@ -1,12 +1,12 @@
1
1
  import webpack__default, { Configuration, Stats } from 'webpack';
2
- import { O as Options$1, B as Builder } from './index.d-33bea42d.js';
3
- import { StorybookConfig, Options, BuilderResult as BuilderResult$1 } from '@storybook/core-webpack';
2
+ import { O as Options$1, B as Builder } from './index.d-2cca0a69.js';
3
+ import { StorybookConfig, Options, BuilderResult as BuilderResult$1, TypescriptOptions as TypescriptOptions$1 } from '@storybook/core-webpack';
4
4
  import ForkTsCheckerWebpackPlugin from 'fork-ts-checker-webpack-plugin';
5
5
  import 'file-system-cache';
6
6
  import 'express';
7
7
  import 'http';
8
8
 
9
- type TypeScriptOptionsBase = Required<StorybookConfig>['typescript'];
9
+ type TypeScriptOptionsBase = Partial<TypescriptOptions$1>;
10
10
  /**
11
11
  * Options for TypeScript usage within Storybook.
12
12
  */
@@ -16,7 +16,7 @@ interface TypescriptOptions extends TypeScriptOptionsBase {
16
16
  */
17
17
  checkOptions?: ConstructorParameters<typeof ForkTsCheckerWebpackPlugin>[0];
18
18
  }
19
- interface StorybookConfigWebpack extends Pick<StorybookConfig, 'webpack' | 'webpackFinal'> {
19
+ interface StorybookConfigWebpack extends Omit<StorybookConfig, 'webpack' | 'webpackFinal'> {
20
20
  /**
21
21
  * Modify or return a custom Webpack config after the Storybook's default configuration
22
22
  * has run (mostly used by addons).
@@ -1,5 +1,5 @@
1
1
  import { LoaderContext } from 'webpack';
2
2
 
3
- declare function loader(this: LoaderContext<any>, source: string): Promise<void>;
3
+ declare function loader(this: LoaderContext<any>, source: string, map: any, meta: any): Promise<void>;
4
4
 
5
5
  export { loader as default };
@@ -1 +1 @@
1
- "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var export_order_loader_exports={};__export(export_order_loader_exports,{default:()=>loader});module.exports=__toCommonJS(export_order_loader_exports);var import_es_module_lexer=require("es-module-lexer"),import_magic_string=__toESM(require("magic-string"));async function loader(source){let callback=this.async();try{let[,exports=[]]=await(0,import_es_module_lexer.parse)(source);if(exports.some(e=>source.substring(e.s,e.e)==="__namedExportsOrder"))return callback(null,source);let magicString=new import_magic_string.default(source),orderedExports=exports.filter(e=>source.substring(e.s,e.e)!=="default");magicString.append(`;export const __namedExportsOrder = ${JSON.stringify(orderedExports.map(e=>source.substring(e.s,e.e)))};`);let map=magicString.generateMap({hires:!0});return callback(null,magicString.toString(),map)}catch(err){return callback(err)}}
1
+ "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var export_order_loader_exports={};__export(export_order_loader_exports,{default:()=>loader});module.exports=__toCommonJS(export_order_loader_exports);var import_node_assert=__toESM(require("assert")),import_cjs_module_lexer=require("cjs-module-lexer"),import_es_module_lexer=require("es-module-lexer"),import_magic_string=__toESM(require("magic-string"));async function loader(source,map,meta){let callback=this.async();try{let magicString=new import_magic_string.default(source);try{let namedExportsOrder=((await(0,import_es_module_lexer.parse)(source))[1]||[]).map(e=>source.substring(e.s,e.e)).filter(e=>e!=="default");(0,import_node_assert.default)(namedExportsOrder.length>0,"No named exports found. Very likely that this is not a ES module."),magicString.append(`;export const __namedExportsOrder = ${JSON.stringify(namedExportsOrder)};`)}catch{await(0,import_cjs_module_lexer.init)();let namedExportsOrder=((0,import_cjs_module_lexer.parse)(source).exports||[]).filter(e=>e!=="default"&&e!=="__esModule");(0,import_node_assert.default)(namedExportsOrder.length>0,"No named exports found. Very likely that this is not a CJS module."),magicString.append(`;module.exports.__namedExportsOrder = ${JSON.stringify(namedExportsOrder)};`)}let generatedMap=magicString.generateMap({hires:!0});return callback(null,magicString.toString(),generatedMap,meta)}catch{return callback(null,source,map,meta)}}
@@ -1,7 +1,9 @@
1
1
  import '../chunk-3BMY5HTZ.mjs';
2
+ import assert from 'assert';
3
+ import { init, parse as parse$1 } from 'cjs-module-lexer';
2
4
  import { parse } from 'es-module-lexer';
3
5
  import MagicString from 'magic-string';
4
6
 
5
- async function loader(source){let callback=this.async();try{let[,exports=[]]=await parse(source);if(exports.some(e=>source.substring(e.s,e.e)==="__namedExportsOrder"))return callback(null,source);let magicString=new MagicString(source),orderedExports=exports.filter(e=>source.substring(e.s,e.e)!=="default");magicString.append(`;export const __namedExportsOrder = ${JSON.stringify(orderedExports.map(e=>source.substring(e.s,e.e)))};`);let map=magicString.generateMap({hires:!0});return callback(null,magicString.toString(),map)}catch(err){return callback(err)}}
7
+ async function loader(source,map,meta){let callback=this.async();try{let magicString=new MagicString(source);try{let namedExportsOrder=((await parse(source))[1]||[]).map(e=>source.substring(e.s,e.e)).filter(e=>e!=="default");assert(namedExportsOrder.length>0,"No named exports found. Very likely that this is not a ES module."),magicString.append(`;export const __namedExportsOrder = ${JSON.stringify(namedExportsOrder)};`);}catch{await init();let namedExportsOrder=(parse$1(source).exports||[]).filter(e=>e!=="default"&&e!=="__esModule");assert(namedExportsOrder.length>0,"No named exports found. Very likely that this is not a CJS module."),magicString.append(`;module.exports.__namedExportsOrder = ${JSON.stringify(namedExportsOrder)};`);}let generatedMap=magicString.generateMap({hires:!0});return callback(null,magicString.toString(),generatedMap,meta)}catch{return callback(null,source,map,meta)}}
6
8
 
7
9
  export { loader as default };
@@ -1,6 +1,6 @@
1
1
  import * as webpack$1 from 'webpack';
2
2
  import { Configuration } from 'webpack';
3
- import { O as Options } from '../index.d-33bea42d.js';
3
+ import { O as Options } from '../index.d-2cca0a69.js';
4
4
  import 'file-system-cache';
5
5
  import 'express';
6
6
  import 'http';
@@ -1,3 +1 @@
1
- "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var custom_webpack_preset_exports={};__export(custom_webpack_preset_exports,{webpack:()=>webpack,webpackInstance:()=>webpackInstance,webpackVersion:()=>webpackVersion});module.exports=__toCommonJS(custom_webpack_preset_exports);var webpackReal=__toESM(require("webpack")),import_node_logger2=require("@storybook/node-logger"),import_util_deprecate=__toESM(require("util-deprecate")),import_ts_dedent=require("ts-dedent"),import_core_webpack=require("@storybook/core-webpack");var import_node_logger=require("@storybook/node-logger");async function createDefaultWebpackConfig(storybookBaseConfig,options){if(options.presetsList?.some(preset=>/@storybook(\/|\\)preset-create-react-app/.test(typeof preset=="string"?preset:preset.name)))return storybookBaseConfig;let hasPostcssAddon=options.presetsList?.some(preset=>/@storybook(\/|\\)addon-postcss/.test(typeof preset=="string"?preset:preset.name)),cssLoaders={};hasPostcssAddon||(import_node_logger.logger.info("=> Using implicit CSS loaders"),cssLoaders={test:/\.css$/,sideEffects:!0,use:[require.resolve("style-loader"),{loader:require.resolve("css-loader"),options:{importLoaders:1}}]});let isProd=storybookBaseConfig.mode!=="development";return{...storybookBaseConfig,module:{...storybookBaseConfig.module,rules:[...storybookBaseConfig.module?.rules||[],cssLoaders,{test:/\.(svg|ico|jpg|jpeg|png|apng|gif|eot|otf|webp|ttf|woff|woff2|cur|ani|pdf)(\?.*)?$/,type:"asset/resource",generator:{filename:isProd?"static/media/[name].[contenthash:8][ext]":"static/media/[path][name][ext]"}},{test:/\.(mp4|webm|wav|mp3|m4a|aac|oga)(\?.*)?$/,type:"asset",parser:{dataUrlCondition:{maxSize:1e4}},generator:{filename:isProd?"static/media/[name].[contenthash:8][ext]":"static/media/[path][name][ext]"}},{resourceQuery:/raw/,type:"asset/source"}]},resolve:{...storybookBaseConfig.resolve,fallback:{crypto:!1,assert:!1,...storybookBaseConfig.resolve?.fallback}}}}async function webpack(config,options){let{configDir,configType,presets,webpackConfig}=options,coreOptions=await presets.apply("core"),defaultConfig=config;coreOptions?.disableWebpackDefaults||(defaultConfig=await createDefaultWebpackConfig(config,options));let finalDefaultConfig=await presets.apply("webpackFinal",defaultConfig,options);if(webpackConfig)return(0,import_util_deprecate.default)(webpackConfig,import_ts_dedent.dedent`
2
- You've provided a webpack config directly in CallOptions, this is not recommended. Please use presets instead. This feature will be removed in 7.0
3
- `)(finalDefaultConfig);let customConfig=(0,import_core_webpack.loadCustomWebpackConfig)(configDir);return typeof customConfig=="function"?(import_node_logger2.logger.info("=> Loading custom Webpack config (full-control mode)."),customConfig({config:finalDefaultConfig,mode:configType})):(import_node_logger2.logger.info("=> Using default Webpack5 setup"),finalDefaultConfig)}var webpackInstance=async()=>webpackReal,webpackVersion=async()=>"5";0&&(module.exports={webpack,webpackInstance,webpackVersion});
1
+ "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var custom_webpack_preset_exports={};__export(custom_webpack_preset_exports,{webpack:()=>webpack,webpackInstance:()=>webpackInstance,webpackVersion:()=>webpackVersion});module.exports=__toCommonJS(custom_webpack_preset_exports);var webpackReal=__toESM(require("webpack")),import_node_logger2=require("@storybook/node-logger"),import_core_webpack=require("@storybook/core-webpack");var import_node_logger=require("@storybook/node-logger");async function createDefaultWebpackConfig(storybookBaseConfig,options){if(options.presetsList?.some(preset=>/@storybook(\/|\\)preset-create-react-app/.test(typeof preset=="string"?preset:preset.name)))return storybookBaseConfig;let hasPostcssAddon=options.presetsList?.some(preset=>/@storybook(\/|\\)addon-postcss/.test(typeof preset=="string"?preset:preset.name)),cssLoaders={};hasPostcssAddon||(import_node_logger.logger.info("=> Using implicit CSS loaders"),cssLoaders={test:/\.css$/,sideEffects:!0,use:[require.resolve("style-loader"),{loader:require.resolve("css-loader"),options:{importLoaders:1}}]});let isProd=storybookBaseConfig.mode!=="development";return{...storybookBaseConfig,module:{...storybookBaseConfig.module,rules:[...storybookBaseConfig.module?.rules||[],cssLoaders,{test:/\.(svg|ico|jpg|jpeg|png|apng|gif|eot|otf|webp|ttf|woff|woff2|cur|ani|pdf)(\?.*)?$/,type:"asset/resource",generator:{filename:isProd?"static/media/[name].[contenthash:8][ext]":"static/media/[path][name][ext]"}},{test:/\.(mp4|webm|wav|mp3|m4a|aac|oga)(\?.*)?$/,type:"asset",parser:{dataUrlCondition:{maxSize:1e4}},generator:{filename:isProd?"static/media/[name].[contenthash:8][ext]":"static/media/[path][name][ext]"}},{resourceQuery:/raw/,type:"asset/source"}]},resolve:{...storybookBaseConfig.resolve,fallback:{crypto:!1,assert:!1,...storybookBaseConfig.resolve?.fallback}}}}async function webpack(config,options){let{configDir,configType,presets}=options,coreOptions=await presets.apply("core"),defaultConfig=config;coreOptions?.disableWebpackDefaults||(defaultConfig=await createDefaultWebpackConfig(config,options));let finalDefaultConfig=await presets.apply("webpackFinal",defaultConfig,options),customConfig=(0,import_core_webpack.loadCustomWebpackConfig)(configDir);return typeof customConfig=="function"?(import_node_logger2.logger.info("=> Loading custom Webpack config (full-control mode)."),customConfig({config:finalDefaultConfig,mode:configType})):(import_node_logger2.logger.info("=> Using default Webpack5 setup"),finalDefaultConfig)}var webpackInstance=async()=>webpackReal,webpackVersion=async()=>"5";0&&(module.exports={webpack,webpackInstance,webpackVersion});
@@ -1,6 +1,6 @@
1
- "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var preview_preset_exports={};__export(preview_preset_exports,{entries:()=>entries,previewMainTemplate:()=>previewMainTemplate,webpack:()=>webpack});module.exports=__toCommonJS(preview_preset_exports);var import_path2=require("path"),import_webpack=require("webpack"),import_html_webpack_plugin=__toESM(require("html-webpack-plugin")),import_case_sensitive_paths_webpack_plugin=__toESM(require("case-sensitive-paths-webpack-plugin")),import_terser_webpack_plugin=__toESM(require("terser-webpack-plugin")),import_webpack_virtual_modules=__toESM(require("webpack-virtual-modules")),import_fork_ts_checker_webpack_plugin=__toESM(require("fork-ts-checker-webpack-plugin")),import_globals=require("@storybook/preview/globals"),import_core_common2=require("@storybook/core-common"),import_ts_dedent=require("ts-dedent");var import_path=require("path"),import_core_common=require("@storybook/core-common");function slash(path){return path.startsWith("\\\\?\\")?path:path.replace(/\\/g,"/")}var import_core_webpack=require("@storybook/core-webpack"),getVirtualModules=async options=>{let virtualModules={},builderOptions=await(0,import_core_common.getBuilderOptions)(options),workingDir=process.cwd(),isProd=options.configType==="PRODUCTION",nonNormalizedStories=await options.presets.apply("stories",[]),entries2=[],stories=(0,import_core_common.normalizeStories)(nonNormalizedStories,{configDir:options.configDir,workingDir}),previewAnnotations=[...(await options.presets.apply("previewAnnotations",[],options)).map(entry=>typeof entry=="object"?entry.absolute:slash(entry)),(0,import_core_common.loadPreviewOrConfigFile)(options)].filter(Boolean),storiesFilename="storybook-stories.js",storiesPath=(0,import_path.resolve)((0,import_path.join)(workingDir,storiesFilename)),needPipelinedImport=!!builderOptions.lazyCompilation&&!isProd;virtualModules[storiesPath]=(0,import_core_webpack.toImportFn)(stories,{needPipelinedImport});let configEntryPath=(0,import_path.resolve)((0,import_path.join)(workingDir,"storybook-config-entry.js"));return virtualModules[configEntryPath]=(0,import_core_common.handlebars)(await(0,import_core_common.readTemplate)(require.resolve("@storybook/builder-webpack5/templates/virtualModuleModernEntry.js.handlebars")),{storiesFilename,previewAnnotations}).replace(/\\/g,"\\\\"),entries2.push(configEntryPath),{virtualModules,entries:entries2}};var getAbsolutePath=input=>(0,import_path2.dirname)(require.resolve((0,import_path2.join)(input,"package.json"))),maybeGetAbsolutePath=input=>{try{return getAbsolutePath(input)}catch{return!1}},managerAPIPath=maybeGetAbsolutePath("@storybook/manager-api"),componentsPath=maybeGetAbsolutePath("@storybook/components"),globalPath=maybeGetAbsolutePath("@storybook/global"),routerPath=maybeGetAbsolutePath("@storybook/router"),themingPath=maybeGetAbsolutePath("@storybook/theming"),storybookPaths={...managerAPIPath?{"@storybook/manager-api":managerAPIPath}:{},...componentsPath?{"@storybook/components":componentsPath}:{},...globalPath?{"@storybook/global":globalPath}:{},...routerPath?{"@storybook/router":routerPath}:{},...themingPath?{"@storybook/theming":themingPath}:{}},iframe_webpack_config_default=async options=>{let{outputDir=(0,import_path2.join)(".","public"),quiet,packageJson,configType,presets,previewUrl,typescriptOptions,features}=options,isProd=configType==="PRODUCTION",workingDir=process.cwd(),[coreOptions,frameworkOptions,envs,logLevel,headHtmlSnippet,bodyHtmlSnippet,template,docsOptions,entries2,nonNormalizedStories,modulesCount=1e3,build]=await Promise.all([presets.apply("core"),presets.apply("frameworkOptions"),presets.apply("env"),presets.apply("logLevel",void 0),presets.apply("previewHead"),presets.apply("previewBody"),presets.apply("previewMainTemplate"),presets.apply("docs"),presets.apply("entries",[]),presets.apply("stories",[]),options.cache?.get("modulesCount").catch(()=>{}),options.presets.apply("build")]),stories=(0,import_core_common2.normalizeStories)(nonNormalizedStories,{configDir:options.configDir,workingDir}),builderOptions=await(0,import_core_common2.getBuilderOptions)(options),shouldCheckTs=typescriptOptions.check&&!typescriptOptions.skipCompiler,tsCheckOptions=typescriptOptions.checkOptions||{},cacheConfig=builderOptions.fsCache?{cache:{type:"filesystem"}}:{},lazyCompilationConfig=builderOptions.lazyCompilation&&!isProd?{lazyCompilation:{entries:!1}}:{};if(!template)throw new Error(import_ts_dedent.dedent`
1
+ "use strict";var __create=Object.create;var __defProp=Object.defineProperty;var __getOwnPropDesc=Object.getOwnPropertyDescriptor;var __getOwnPropNames=Object.getOwnPropertyNames;var __getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty;var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to};var __toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod);var preview_preset_exports={};__export(preview_preset_exports,{entries:()=>entries,previewMainTemplate:()=>previewMainTemplate,webpack:()=>webpack});module.exports=__toCommonJS(preview_preset_exports);var import_path2=require("path"),import_webpack=require("webpack"),import_html_webpack_plugin=__toESM(require("html-webpack-plugin")),import_case_sensitive_paths_webpack_plugin=__toESM(require("case-sensitive-paths-webpack-plugin")),import_terser_webpack_plugin=__toESM(require("terser-webpack-plugin")),import_webpack_virtual_modules=__toESM(require("webpack-virtual-modules")),import_fork_ts_checker_webpack_plugin=__toESM(require("fork-ts-checker-webpack-plugin")),import_globals=require("@storybook/preview/globals"),import_core_common2=require("@storybook/core-common"),import_ts_dedent=require("ts-dedent");var import_path=require("path"),import_core_common=require("@storybook/core-common");function slash(path){return path.startsWith("\\\\?\\")?path:path.replace(/\\/g,"/")}var import_core_webpack=require("@storybook/core-webpack"),getVirtualModules=async options=>{let virtualModules={},builderOptions=await(0,import_core_common.getBuilderOptions)(options),workingDir=process.cwd(),isProd=options.configType==="PRODUCTION",nonNormalizedStories=await options.presets.apply("stories",[]),entries2=[],stories=(0,import_core_common.normalizeStories)(nonNormalizedStories,{configDir:options.configDir,workingDir}),previewAnnotations=[...(await options.presets.apply("previewAnnotations",[],options)).map(entry=>typeof entry=="object"?entry.absolute:slash(entry)),(0,import_core_common.loadPreviewOrConfigFile)(options)].filter(Boolean),storiesFilename="storybook-stories.js",storiesPath=(0,import_path.resolve)((0,import_path.join)(workingDir,storiesFilename)),needPipelinedImport=!!builderOptions.lazyCompilation&&!isProd;virtualModules[storiesPath]=(0,import_core_webpack.toImportFn)(stories,{needPipelinedImport});let configEntryPath=(0,import_path.resolve)((0,import_path.join)(workingDir,"storybook-config-entry.js"));return virtualModules[configEntryPath]=(0,import_core_common.handlebars)(await(0,import_core_common.readTemplate)(require.resolve("@storybook/builder-webpack5/templates/virtualModuleModernEntry.js.handlebars")),{storiesFilename,previewAnnotations}).replace(/\\/g,"\\\\"),entries2.push(configEntryPath),{virtualModules,entries:entries2}};var getAbsolutePath=input=>(0,import_path2.dirname)(require.resolve((0,import_path2.join)(input,"package.json"))),maybeGetAbsolutePath=input=>{try{return getAbsolutePath(input)}catch{return!1}},managerAPIPath=maybeGetAbsolutePath("@storybook/manager-api"),componentsPath=maybeGetAbsolutePath("@storybook/components"),globalPath=maybeGetAbsolutePath("@storybook/global"),routerPath=maybeGetAbsolutePath("@storybook/router"),themingPath=maybeGetAbsolutePath("@storybook/theming"),storybookPaths={...managerAPIPath?{"@storybook/manager-api":managerAPIPath}:{},...componentsPath?{"@storybook/components":componentsPath}:{},...globalPath?{"@storybook/global":globalPath}:{},...routerPath?{"@storybook/router":routerPath}:{},...themingPath?{"@storybook/theming":themingPath}:{}},iframe_webpack_config_default=async options=>{let{outputDir=(0,import_path2.join)(".","public"),quiet,packageJson,configType,presets,previewUrl,typescriptOptions,features}=options,isProd=configType==="PRODUCTION",workingDir=process.cwd(),[coreOptions,frameworkOptions,envs,logLevel,headHtmlSnippet,bodyHtmlSnippet,template,docsOptions,entries2,nonNormalizedStories,modulesCount=1e3,build,tagsOptions]=await Promise.all([presets.apply("core"),presets.apply("frameworkOptions"),presets.apply("env"),presets.apply("logLevel",void 0),presets.apply("previewHead"),presets.apply("previewBody"),presets.apply("previewMainTemplate"),presets.apply("docs"),presets.apply("entries",[]),presets.apply("stories",[]),options.cache?.get("modulesCount").catch(()=>{}),options.presets.apply("build"),presets.apply("tags",{})]),stories=(0,import_core_common2.normalizeStories)(nonNormalizedStories,{configDir:options.configDir,workingDir}),builderOptions=await(0,import_core_common2.getBuilderOptions)(options),shouldCheckTs=typescriptOptions.check&&!typescriptOptions.skipCompiler,tsCheckOptions=typescriptOptions.checkOptions||{},cacheConfig=builderOptions.fsCache?{cache:{type:"filesystem"}}:{},lazyCompilationConfig=builderOptions.lazyCompilation&&!isProd?{lazyCompilation:{entries:!1}}:{};if(!template)throw new Error(import_ts_dedent.dedent`
2
2
  Storybook's Webpack5 builder requires a template to be specified.
3
3
  Somehow you've ended up with a falsy value for the template option.
4
4
 
5
5
  Please file an issue at https://github.com/storybookjs/storybook with a reproduction.
6
- `);let externals=import_globals.globalsNameReferenceMap;build?.test?.disableBlocks&&(externals["@storybook/blocks"]="__STORYBOOK_BLOCKS_EMPTY_MODULE__");let{virtualModules:virtualModuleMapping,entries:dynamicEntries}=await getVirtualModules(options);return{name:"preview",mode:isProd?"production":"development",bail:isProd,devtool:options.build?.test?.disableSourcemaps?!1:"cheap-module-source-map",entry:[...entries2??[],...dynamicEntries],output:{path:(0,import_path2.resolve)(process.cwd(),outputDir),filename:isProd?"[name].[contenthash:8].iframe.bundle.js":"[name].iframe.bundle.js",publicPath:""},stats:{preset:"none",logging:"error"},watchOptions:{ignored:/node_modules/},externals,ignoreWarnings:[{message:/export '\S+' was not found in 'global'/},{message:/export '\S+' was not found in '@storybook\/global'/}],plugins:[Object.keys(virtualModuleMapping).length>0?new import_webpack_virtual_modules.default(virtualModuleMapping):null,new import_html_webpack_plugin.default({filename:"iframe.html",chunksSortMode:"none",alwaysWriteToDisk:!0,inject:!1,template,templateParameters:{version:packageJson.version,globals:{CONFIG_TYPE:configType,LOGLEVEL:logLevel,FRAMEWORK_OPTIONS:frameworkOptions,CHANNEL_OPTIONS:coreOptions.channelOptions,FEATURES:features,PREVIEW_URL:previewUrl,STORIES:stories.map(specifier=>({...specifier,importPathMatcher:specifier.importPathMatcher.source})),DOCS_OPTIONS:docsOptions,...build?.test?.disableBlocks?{__STORYBOOK_BLOCKS_EMPTY_MODULE__:{}}:{}},headHtmlSnippet,bodyHtmlSnippet},minify:{collapseWhitespace:!0,removeComments:!0,removeRedundantAttributes:!0,removeScriptTypeAttributes:!1,removeStyleLinkTypeAttributes:!0,useShortDoctype:!0}}),new import_webpack.DefinePlugin({...(0,import_core_common2.stringifyProcessEnvs)(envs),NODE_ENV:JSON.stringify(process.env.NODE_ENV)}),new import_webpack.ProvidePlugin({process:require.resolve("process/browser.js")}),isProd?null:new import_webpack.HotModuleReplacementPlugin,new import_case_sensitive_paths_webpack_plugin.default,quiet?null:new import_webpack.ProgressPlugin({modulesCount}),shouldCheckTs?new import_fork_ts_checker_webpack_plugin.default(tsCheckOptions):null].filter(Boolean),module:{unknownContextCritical:!1,rules:[{test:/\.stories\.([tj])sx?$|(stories|story)\.mdx$/,enforce:"post",use:[{loader:require.resolve("@storybook/builder-webpack5/loaders/export-order-loader")}]},{test:/\.m?js$/,type:"javascript/auto"},{test:/\.m?js$/,resolve:{fullySpecified:!1}},{test:/\.md$/,type:"asset/source"}]},resolve:{extensions:[".mjs",".js",".jsx",".ts",".tsx",".json",".cjs"],modules:["node_modules"].concat(envs.NODE_PATH||[]),mainFields:["browser","module","main"].filter(Boolean),alias:storybookPaths,fallback:{stream:!1,path:require.resolve("path-browserify"),assert:require.resolve("browser-assert"),util:require.resolve("util"),url:require.resolve("url"),fs:!1,constants:require.resolve("constants-browserify")},symlinks:!(0,import_core_common2.isPreservingSymlinks)()},optimization:{splitChunks:{chunks:"all"},runtimeChunk:!0,sideEffects:!0,usedExports:options.build?.test?.disableTreeShaking?!1:isProd,moduleIds:"named",...isProd?{minimize:!0,minimizer:options.build?.test?.esbuildMinify?[new import_terser_webpack_plugin.default({parallel:!0,minify:import_terser_webpack_plugin.default.esbuildMinify,terserOptions:{sourcemap:!options.build?.test?.disableSourcemaps,treeShaking:!options.build?.test?.disableTreeShaking}})]:[new import_terser_webpack_plugin.default({parallel:!0,terserOptions:{sourceMap:!options.build?.test?.disableSourcemaps,mangle:!1,keep_fnames:!0}})]}:{}},performance:{hints:isProd?"warning":!1},...cacheConfig,experiments:{...lazyCompilationConfig}}};var webpack=async(_,options)=>iframe_webpack_config_default(options),entries=async(_,options)=>{let result=[];return options.configType==="DEVELOPMENT"&&(result=result.concat(`${require.resolve("webpack-hot-middleware/client")}?reload=true&quiet=false&noInfo=${options.quiet}`)),result},previewMainTemplate=()=>require.resolve("@storybook/builder-webpack5/templates/preview.ejs");0&&(module.exports={entries,previewMainTemplate,webpack});
6
+ `);let externals=import_globals.globalsNameReferenceMap;build?.test?.disableBlocks&&(externals["@storybook/blocks"]="__STORYBOOK_BLOCKS_EMPTY_MODULE__");let{virtualModules:virtualModuleMapping,entries:dynamicEntries}=await getVirtualModules(options);return{name:"preview",mode:isProd?"production":"development",bail:isProd,devtool:options.build?.test?.disableSourcemaps?!1:"cheap-module-source-map",entry:[...entries2??[],...dynamicEntries],output:{path:(0,import_path2.resolve)(process.cwd(),outputDir),filename:isProd?"[name].[contenthash:8].iframe.bundle.js":"[name].iframe.bundle.js",publicPath:""},stats:{preset:"none",logging:"error"},watchOptions:{ignored:/node_modules/},externals,ignoreWarnings:[{message:/export '\S+' was not found in 'global'/},{message:/export '\S+' was not found in '@storybook\/global'/}],plugins:[Object.keys(virtualModuleMapping).length>0?new import_webpack_virtual_modules.default(virtualModuleMapping):null,new import_html_webpack_plugin.default({filename:"iframe.html",chunksSortMode:"none",alwaysWriteToDisk:!0,inject:!1,template,templateParameters:{version:packageJson.version,globals:{CONFIG_TYPE:configType,LOGLEVEL:logLevel,FRAMEWORK_OPTIONS:frameworkOptions,CHANNEL_OPTIONS:coreOptions.channelOptions,FEATURES:features,PREVIEW_URL:previewUrl,STORIES:stories.map(specifier=>({...specifier,importPathMatcher:specifier.importPathMatcher.source})),DOCS_OPTIONS:docsOptions,TAGS_OPTIONS:tagsOptions,...build?.test?.disableBlocks?{__STORYBOOK_BLOCKS_EMPTY_MODULE__:{}}:{}},headHtmlSnippet,bodyHtmlSnippet},minify:{collapseWhitespace:!0,removeComments:!0,removeRedundantAttributes:!0,removeScriptTypeAttributes:!1,removeStyleLinkTypeAttributes:!0,useShortDoctype:!0}}),new import_webpack.DefinePlugin({...(0,import_core_common2.stringifyProcessEnvs)(envs),NODE_ENV:JSON.stringify(process.env.NODE_ENV)}),new import_webpack.ProvidePlugin({process:require.resolve("process/browser.js")}),isProd?null:new import_webpack.HotModuleReplacementPlugin,new import_case_sensitive_paths_webpack_plugin.default,quiet?null:new import_webpack.ProgressPlugin({modulesCount}),shouldCheckTs?new import_fork_ts_checker_webpack_plugin.default(tsCheckOptions):null].filter(Boolean),module:{unknownContextCritical:!1,rules:[{test:/\.stories\.([tj])sx?$|(stories|story)\.mdx$/,exclude:/node_modules/,enforce:"post",use:[{loader:require.resolve("@storybook/builder-webpack5/loaders/export-order-loader")}]},{test:/\.m?js$/,type:"javascript/auto"},{test:/\.m?js$/,resolve:{fullySpecified:!1}},{test:/\.md$/,type:"asset/source"}]},resolve:{extensions:[".mjs",".js",".jsx",".ts",".tsx",".json",".cjs"],modules:["node_modules"].concat(envs.NODE_PATH||[]),mainFields:["browser","module","main"].filter(Boolean),alias:storybookPaths,fallback:{stream:!1,path:require.resolve("path-browserify"),assert:require.resolve("browser-assert"),util:require.resolve("util"),url:require.resolve("url"),fs:!1,constants:require.resolve("constants-browserify")},symlinks:!(0,import_core_common2.isPreservingSymlinks)()},optimization:{splitChunks:{chunks:"all"},runtimeChunk:!0,sideEffects:!0,usedExports:options.build?.test?.disableTreeShaking?!1:isProd,moduleIds:"named",...isProd?{minimize:!0,minimizer:options.build?.test?.esbuildMinify?[new import_terser_webpack_plugin.default({parallel:!0,minify:import_terser_webpack_plugin.default.esbuildMinify,terserOptions:{sourcemap:!options.build?.test?.disableSourcemaps,treeShaking:!options.build?.test?.disableTreeShaking}})]:[new import_terser_webpack_plugin.default({parallel:!0,terserOptions:{sourceMap:!options.build?.test?.disableSourcemaps,mangle:!1,keep_fnames:!0}})]}:{}},performance:{hints:isProd?"warning":!1},...cacheConfig,experiments:{...lazyCompilationConfig}}};var webpack=async(_,options)=>iframe_webpack_config_default(options),entries=async(_,options)=>{let result=[];return options.configType==="DEVELOPMENT"&&(result=result.concat(`${require.resolve("webpack-hot-middleware/client")}?reload=true&quiet=false&noInfo=${options.quiet}`)),result},previewMainTemplate=()=>require.resolve("@storybook/builder-webpack5/templates/preview.ejs");0&&(module.exports={entries,previewMainTemplate,webpack});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/builder-webpack5",
3
- "version": "8.0.0-alpha.9",
3
+ "version": "8.0.0-beta.1",
4
4
  "description": "Storybook framework-agnostic API",
5
5
  "keywords": [
6
6
  "storybook"
@@ -63,18 +63,19 @@
63
63
  "prep": "node --loader ../../../scripts/node_modules/esbuild-register/loader.js -r ../../../scripts/node_modules/esbuild-register/register.js ../../../scripts/prepare/bundle.ts"
64
64
  },
65
65
  "dependencies": {
66
- "@storybook/channels": "8.0.0-alpha.9",
67
- "@storybook/client-logger": "8.0.0-alpha.9",
68
- "@storybook/core-common": "8.0.0-alpha.9",
69
- "@storybook/core-events": "8.0.0-alpha.9",
70
- "@storybook/core-webpack": "8.0.0-alpha.9",
71
- "@storybook/node-logger": "8.0.0-alpha.9",
72
- "@storybook/preview": "8.0.0-alpha.9",
73
- "@storybook/preview-api": "8.0.0-alpha.9",
66
+ "@storybook/channels": "8.0.0-beta.1",
67
+ "@storybook/client-logger": "8.0.0-beta.1",
68
+ "@storybook/core-common": "8.0.0-beta.1",
69
+ "@storybook/core-events": "8.0.0-beta.1",
70
+ "@storybook/core-webpack": "8.0.0-beta.1",
71
+ "@storybook/node-logger": "8.0.0-beta.1",
72
+ "@storybook/preview": "8.0.0-beta.1",
73
+ "@storybook/preview-api": "8.0.0-beta.1",
74
74
  "@types/node": "^18.0.0",
75
75
  "@types/semver": "^7.3.4",
76
76
  "browser-assert": "^1.2.1",
77
77
  "case-sensitive-paths-webpack-plugin": "^2.4.0",
78
+ "cjs-module-lexer": "^1.2.3",
78
79
  "constants-browserify": "^1.0.0",
79
80
  "css-loader": "^6.7.1",
80
81
  "es-module-lexer": "^1.4.1",
@@ -15,14 +15,12 @@ if (global.CONFIG_TYPE === 'DEVELOPMENT'){
15
15
  window.__STORYBOOK_SERVER_CHANNEL__ = channel;
16
16
  }
17
17
 
18
- const preview = new PreviewWeb();
18
+ const preview = new PreviewWeb(importFn, getProjectAnnotations);
19
19
 
20
20
  window.__STORYBOOK_PREVIEW__ = preview;
21
21
  window.__STORYBOOK_STORY_STORE__ = preview.storyStore;
22
22
  window.__STORYBOOK_ADDONS_CHANNEL__ = channel;
23
23
 
24
- preview.initialize({ importFn, getProjectAnnotations });
25
-
26
24
  if (import.meta.webpackHot) {
27
25
  import.meta.webpackHot.accept('./{{storiesFilename}}', () => {
28
26
  // importFn has changed so we need to patch the new one in