@storybook/angular 9.2.0-alpha.1 → 9.2.0-alpha.3

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.
@@ -16,6 +16,8 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
16
16
  var path2__default = /*#__PURE__*/_interopDefault(path2);
17
17
  var process2__default = /*#__PURE__*/_interopDefault(process2);
18
18
 
19
- 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 __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(a,b)=>(typeof require<"u"?require:a)[b]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});var __esm=(fn,res)=>function(){return fn&&(res=(0, fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0, cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};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 filter_out_styling_rules_exports={};__export(filter_out_styling_rules_exports,{filterOutStylingRules:()=>filterOutStylingRules});var isStylingRule,filterOutStylingRules,init_filter_out_styling_rules=__esm({"src/server/utils/filter-out-styling-rules.ts"(){isStylingRule=rule=>{let{test}=rule;return !test||!(test instanceof RegExp)?!1:test.test(".css")||test.test(".scss")||test.test(".sass")},filterOutStylingRules=config=>config.module.rules.filter(rule=>!isStylingRule(rule));}});var storybook_normalize_angular_entry_plugin_exports={};__export(storybook_normalize_angular_entry_plugin_exports,{default:()=>StorybookNormalizeAngularEntryPlugin});var PLUGIN_NAME,StorybookNormalizeAngularEntryPlugin,init_storybook_normalize_angular_entry_plugin=__esm({"src/server/plugins/storybook-normalize-angular-entry-plugin.js"(){PLUGIN_NAME="storybook-normalize-angular-entry-plugin",StorybookNormalizeAngularEntryPlugin=class{constructor(options){this.options=options;}apply(compiler){compiler.hooks.environment.tap(PLUGIN_NAME,()=>{let originalEntry=compiler.options.entry;compiler.options.entry=async()=>{let entryResult;if(typeof originalEntry=="function")try{entryResult=await originalEntry();}catch(error){throw console.error("Failed to execute the entry function:",error),error}else entryResult=originalEntry;return entryResult&&entryResult.main&&entryResult.styles?{main:{import:Array.from(new Set([...entryResult.main.import,...entryResult.styles.import]))}}:entryResult};}),compiler.hooks.thisCompilation.tap(PLUGIN_NAME,compilation=>{this.compilation=compilation;});}};}});var require_angular_cli_webpack=__commonJS({"src/server/angular-cli-webpack.js"(exports){var{generateI18nBrowserWebpackConfigFromContext}=__require("@angular-devkit/build-angular/src/utils/webpack-browser-config"),TsconfigPathsPlugin=__require("tsconfig-paths-webpack-plugin"),{filterOutStylingRules:filterOutStylingRules2}=(init_filter_out_styling_rules(),__toCommonJS(filter_out_styling_rules_exports)),{default:StorybookNormalizeAngularEntryPlugin2}=(init_storybook_normalize_angular_entry_plugin(),__toCommonJS(storybook_normalize_angular_entry_plugin_exports)),{getCommonConfig,getStylesConfig,getDevServerConfig,getTypeScriptConfig}=__require("@angular-devkit/build-angular/src/tools/webpack/configs");exports.getWebpackConfig=async(baseConfig,{builderOptions,builderContext})=>{async function getCustomStylesConfig(wco){let{root}=wco;if((()=>{try{return __require.resolve("@tailwindcss/postcss",{paths:[root]}),!0}catch{return !1}})()){let fs3=__require("fs/promises"),originalReaddir=fs3.readdir;fs3.readdir=async function(path3,options){let results=await originalReaddir.call(this,path3,options),tailwindFiles=["tailwind.config.js","tailwind.config.cjs","tailwind.config.mjs","tailwind.config.ts"];return results.filter(file=>!tailwindFiles.includes(file))};let styleConfig=await getStylesConfig(wco);fs3.readdir=originalReaddir;let tailwindPackagePath=__require.resolve("@tailwindcss/postcss",{paths:[root]}),extraPostcssPlugins=[__require(tailwindPackagePath)()];return styleConfig.module.rules.map(rule=>rule.rules).forEach(rule=>{rule.forEach(r=>{r.oneOf?.forEach?.(oneOfRule=>oneOfRule.use.forEach(use=>{if(use.loader.includes("postcss-loader")&&use.options.postcssOptions){let originalOptionsFn=use.options.postcssOptions;use.options.postcssOptions=loaderOptions=>{let originalOptions=originalOptionsFn(loaderOptions);return {...originalOptions,plugins:[...originalOptions.plugins,...extraPostcssPlugins]}};}}));});}),styleConfig}else return getStylesConfig(wco)}let{config:cliConfig}=await generateI18nBrowserWebpackConfigFromContext({index:"noop-index",main:"noop-main",...builderOptions,styles:builderOptions.styles?.map(style=>typeof style=="string"?style:style.input).filter(style=>typeof style=="string"||style.inject!==!1),outputPath:typeof builderOptions.outputPath=="string"?builderOptions.outputPath:builderOptions.outputPath?.base??"noop-out",optimization:!1,namedChunks:!1,progress:!1,buildOptimizer:!1,aot:!1},builderContext,wco=>[getCommonConfig(wco),getCustomStylesConfig(wco),getTypeScriptConfig?getTypeScriptConfig(wco):getDevServerConfig(wco)]);!builderOptions.experimentalZoneless&&!cliConfig.entry.polyfills?.includes("zone.js")&&cliConfig.entry.polyfills.push("zone.js");let entry=[...cliConfig.entry.polyfills??[],...baseConfig.entry,...cliConfig.entry.styles??[]],rulesExcludingStyles=filterOutStylingRules2(baseConfig),module2={...baseConfig.module,rules:[...cliConfig.module.rules,...rulesExcludingStyles]},plugins=[...cliConfig.plugins??[],...baseConfig.plugins,new StorybookNormalizeAngularEntryPlugin2],resolve={...baseConfig.resolve,modules:Array.from(new Set([...baseConfig.resolve.modules,...cliConfig.resolve.modules])),plugins:[new TsconfigPathsPlugin({configFile:builderOptions.tsConfig,mainFields:["browser","module","main"]})]};return {...baseConfig,entry,module:module2,plugins,resolve,resolveLoader:cliConfig.resolveLoader}};}});var Node=class{value;next;constructor(value){this.value=value;}},Queue=class{#head;#tail;#size;constructor(){this.clear();}enqueue(value){let node=new Node(value);this.#head?(this.#tail.next=node,this.#tail=node):(this.#head=node,this.#tail=node),this.#size++;}dequeue(){let current=this.#head;if(current)return this.#head=this.#head.next,this.#size--,current.value}peek(){if(this.#head)return this.#head.value}clear(){this.#head=void 0,this.#tail=void 0,this.#size=0;}get size(){return this.#size}*[Symbol.iterator](){let current=this.#head;for(;current;)yield current.value,current=current.next;}*drain(){for(;this.#head;)yield this.dequeue();}};function pLimit(concurrency){if(!((Number.isInteger(concurrency)||concurrency===Number.POSITIVE_INFINITY)&&concurrency>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let queue=new Queue,activeCount=0,next=()=>{activeCount--,queue.size>0&&queue.dequeue()();},run=async(fn,resolve,args)=>{activeCount++;let result=(async()=>fn(...args))();resolve(result);try{await result;}catch{}next();},enqueue=(fn,resolve,args)=>{queue.enqueue(run.bind(void 0,fn,resolve,args)),(async()=>(await Promise.resolve(),activeCount<concurrency&&queue.size>0&&queue.dequeue()()))();},generator=(fn,...args)=>new Promise(resolve=>{enqueue(fn,resolve,args);});return Object.defineProperties(generator,{activeCount:{get:()=>activeCount},pendingCount:{get:()=>queue.size},clearQueue:{value:()=>{queue.clear();}}}),generator}var EndError=class extends Error{constructor(value){super(),this.value=value;}},testElement=async(element,tester)=>tester(await element),finder=async element=>{let values=await Promise.all(element);if(values[1]===!0)throw new EndError(values[0]);return !1};async function pLocate(iterable,tester,{concurrency=Number.POSITIVE_INFINITY,preserveOrder=!0}={}){let limit=pLimit(concurrency),items=[...iterable].map(element=>[element,limit(testElement,element,tester)]),checkLimit=pLimit(preserveOrder?1:Number.POSITIVE_INFINITY);try{await Promise.all(items.map(element=>checkLimit(finder,element)));}catch(error){if(error instanceof EndError)return error.value;throw error}}var typeMappings={directory:"isDirectory",file:"isFile"};function checkType(type){if(!Object.hasOwnProperty.call(typeMappings,type))throw new Error(`Invalid type specified: ${type}`)}var matchType=(type,stat)=>stat[typeMappings[type]](),toPath=urlOrPath=>urlOrPath instanceof URL?url.fileURLToPath(urlOrPath):urlOrPath;async function locatePath(paths,{cwd=process2__default.default.cwd(),type="file",allowSymlinks=!0,concurrency,preserveOrder}={}){checkType(type),cwd=toPath(cwd);let statFunction=allowSymlinks?fs.promises.stat:fs.promises.lstat;return pLocate(paths,async path_=>{try{let stat=await statFunction(path2__default.default.resolve(cwd,path_));return matchType(type,stat)}catch{return !1}},{concurrency,preserveOrder})}function toPath2(urlOrPath){return urlOrPath instanceof URL?url.fileURLToPath(urlOrPath):urlOrPath}var findUpStop=Symbol("findUpStop");async function findUpMultiple(name,options={}){let directory=path2__default.default.resolve(toPath2(options.cwd)??""),{root}=path2__default.default.parse(directory),stopAt=path2__default.default.resolve(directory,toPath2(options.stopAt??root)),limit=options.limit??Number.POSITIVE_INFINITY,paths=[name].flat(),runMatcher=async locateOptions=>{if(typeof name!="function")return locatePath(paths,locateOptions);let foundPath=await name(locateOptions.cwd);return typeof foundPath=="string"?locatePath([foundPath],locateOptions):foundPath},matches=[];for(;;){let foundPath=await runMatcher({...options,cwd:directory});if(foundPath===findUpStop||(foundPath&&matches.push(path2__default.default.resolve(directory,foundPath)),directory===stopAt||matches.length>=limit))break;directory=path2__default.default.dirname(directory);}return matches}async function findUp(name,options={}){return (await findUpMultiple(name,{...options,limit:1}))[0]}var import_angular_cli_webpack=__toESM(require_angular_cli_webpack());var moduleIsAvailable=moduleName=>{try{return __require.resolve(moduleName),!0}catch{return !1}};async function webpackFinal(baseConfig,options){if(!moduleIsAvailable("@angular-devkit/build-angular"))return nodeLogger.logger.info('=> Using base config because "@angular-devkit/build-angular" is not installed'),baseConfig;checkForLegacyBuildOptions(options);let builderContext=getBuilderContext(options),builderOptions=await getBuilderOptions(options,builderContext),webpackConfig=await(0, import_angular_cli_webpack.getWebpackConfig)(baseConfig,{builderOptions:{watch:options.configType==="DEVELOPMENT",...builderOptions},builderContext});webpackConfig.plugins=webpackConfig.plugins??[];let miniCssPlugin=webpackConfig?.plugins?.find(plugin=>plugin?.constructor?.name==="MiniCssExtractPlugin");miniCssPlugin&&"options"in miniCssPlugin&&(miniCssPlugin.options.filename="[name].[contenthash].css",miniCssPlugin.options.chunkFilename="[name].iframe.[contenthash].css"),webpackConfig.plugins.push(new builderWebpack5.WebpackDefinePlugin({STORYBOOK_ANGULAR_OPTIONS:JSON.stringify({experimentalZoneless:builderOptions.experimentalZoneless})}));try{__require.resolve("@angular/animations");}catch{webpackConfig.plugins.push(new builderWebpack5.WebpackIgnorePlugin({resourceRegExp:/@angular\/platform-browser\/animations$/}));}return webpackConfig}function getBuilderContext(options){return options.angularBuilderContext??{target:{project:"noop-project",builder:"",options:{}},workspaceRoot:process.cwd(),getProjectMetadata:()=>({}),getTargetOptions:()=>({}),logger:new core.logging.Logger("Storybook")}}async function getBuilderOptions(options,builderContext){let browserTargetOptions={};if(options.angularBrowserTarget){let browserTarget=architect.targetFromTargetString(options.angularBrowserTarget);nodeLogger.logger.info(`=> Using angular browser target options from "${browserTarget.project}:${browserTarget.target}${browserTarget.configuration?`:${browserTarget.configuration}`:""}"`),browserTargetOptions=await builderContext.getTargetOptions(browserTarget);}let builderOptions={...browserTargetOptions,...options.angularBuilderOptions,tsConfig:options.tsConfig??await findUp("tsconfig.json",{cwd:options.configDir,stopAt:common.getProjectRoot()})??browserTargetOptions.tsConfig};return nodeLogger.logger.info(`=> Using angular project with "tsConfig:${builderOptions.tsConfig}"`),builderOptions}function checkForLegacyBuildOptions(options){if(options.angularBrowserTarget===void 0)throw new serverErrors.AngularLegacyBuildOptionsError}
19
+ 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 __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(a,b)=>(typeof require<"u"?require:a)[b]}):x)(function(x){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+x+'" is not supported')});var __esm=(fn,res)=>function(){return fn&&(res=(0, fn[__getOwnPropNames(fn)[0]])(fn=0)),res};var __commonJS=(cb,mod)=>function(){return mod||(0, cb[__getOwnPropNames(cb)[0]])((mod={exports:{}}).exports,mod),mod.exports};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 filter_out_styling_rules_exports={};__export(filter_out_styling_rules_exports,{filterOutStylingRules:()=>filterOutStylingRules});var isStylingRule,filterOutStylingRules,init_filter_out_styling_rules=__esm({"src/server/utils/filter-out-styling-rules.ts"(){isStylingRule=rule=>{let{test}=rule;return !test||!(test instanceof RegExp)?!1:test.test(".css")||test.test(".scss")||test.test(".sass")},filterOutStylingRules=config=>config.module.rules.filter(rule=>!isStylingRule(rule));}});var storybook_normalize_angular_entry_plugin_exports={};__export(storybook_normalize_angular_entry_plugin_exports,{default:()=>StorybookNormalizeAngularEntryPlugin});var PLUGIN_NAME,StorybookNormalizeAngularEntryPlugin,init_storybook_normalize_angular_entry_plugin=__esm({"src/server/plugins/storybook-normalize-angular-entry-plugin.js"(){PLUGIN_NAME="storybook-normalize-angular-entry-plugin",StorybookNormalizeAngularEntryPlugin=class{constructor(options){this.options=options;}apply(compiler){compiler.hooks.environment.tap(PLUGIN_NAME,()=>{let originalEntry=compiler.options.entry;compiler.options.entry=async()=>{let entryResult;if(typeof originalEntry=="function")try{entryResult=await originalEntry();}catch(error){throw console.error("Failed to execute the entry function:",error),error}else entryResult=originalEntry;return entryResult&&entryResult.main&&entryResult.styles?{main:{import:Array.from(new Set([...entryResult.main.import,...entryResult.styles.import]))}}:entryResult};}),compiler.hooks.thisCompilation.tap(PLUGIN_NAME,compilation=>{this.compilation=compilation;});}};}});var require_angular_cli_webpack=__commonJS({"src/server/angular-cli-webpack.js"(exports){var{generateI18nBrowserWebpackConfigFromContext}=__require("@angular-devkit/build-angular/src/utils/webpack-browser-config"),TsconfigPathsPlugin=__require("tsconfig-paths-webpack-plugin"),{filterOutStylingRules:filterOutStylingRules2}=(init_filter_out_styling_rules(),__toCommonJS(filter_out_styling_rules_exports)),{default:StorybookNormalizeAngularEntryPlugin2}=(init_storybook_normalize_angular_entry_plugin(),__toCommonJS(storybook_normalize_angular_entry_plugin_exports)),{getCommonConfig,getStylesConfig,getDevServerConfig,getTypeScriptConfig}=__require("@angular-devkit/build-angular/src/tools/webpack/configs");exports.getWebpackConfig=async(baseConfig,{builderOptions,builderContext})=>{async function getCustomStylesConfig(wco){let{root}=wco;if((()=>{try{return __require.resolve("@tailwindcss/postcss",{paths:[root]}),!0}catch{return !1}})()){let fs3=__require("fs/promises"),originalReaddir=fs3.readdir;fs3.readdir=async function(path3,options){let results=await originalReaddir.call(this,path3,options),tailwindFiles=["tailwind.config.js","tailwind.config.cjs","tailwind.config.mjs","tailwind.config.ts"];return results.filter(file=>!tailwindFiles.includes(file))};let styleConfig=await getStylesConfig(wco);fs3.readdir=originalReaddir;let tailwindPackagePath=__require.resolve("@tailwindcss/postcss",{paths:[root]}),extraPostcssPlugins=[__require(tailwindPackagePath)()];return styleConfig.module.rules.map(rule=>rule.rules).forEach(rule=>{rule.forEach(r=>{r.oneOf?.forEach?.(oneOfRule=>oneOfRule.use.forEach(use=>{if(use.loader.includes("postcss-loader")&&use.options.postcssOptions){let originalOptionsFn=use.options.postcssOptions;use.options.postcssOptions=loaderOptions=>{let originalOptions=originalOptionsFn(loaderOptions);return {...originalOptions,plugins:[...originalOptions.plugins,...extraPostcssPlugins]}};}}));});}),styleConfig}else return getStylesConfig(wco)}let{config:cliConfig}=await generateI18nBrowserWebpackConfigFromContext({index:"noop-index",main:"noop-main",...builderOptions,styles:builderOptions.styles?.map(style=>typeof style=="string"?style:style.input).filter(style=>typeof style=="string"||style.inject!==!1),outputPath:typeof builderOptions.outputPath=="string"?builderOptions.outputPath:builderOptions.outputPath?.base??"noop-out",optimization:!1,namedChunks:!1,progress:!1,buildOptimizer:!1,aot:!1},builderContext,wco=>[getCommonConfig(wco),getCustomStylesConfig(wco),getTypeScriptConfig?getTypeScriptConfig(wco):getDevServerConfig(wco)]);!builderOptions.experimentalZoneless&&!cliConfig.entry.polyfills?.includes("zone.js")&&(cliConfig.entry.polyfills??=[],cliConfig.entry.polyfills.push("zone.js"));let entry=[...cliConfig.entry.polyfills??[],...baseConfig.entry,...cliConfig.entry.styles??[]],rulesExcludingStyles=filterOutStylingRules2(baseConfig),module2={...baseConfig.module,rules:[...cliConfig.module.rules,...rulesExcludingStyles]},plugins=[...cliConfig.plugins??[],...baseConfig.plugins,new StorybookNormalizeAngularEntryPlugin2],resolve={...baseConfig.resolve,modules:Array.from(new Set([...baseConfig.resolve.modules,...cliConfig.resolve.modules])),plugins:[new TsconfigPathsPlugin({configFile:builderOptions.tsConfig,mainFields:["browser","module","main"]})]};return {...baseConfig,entry,module:module2,plugins,resolve,resolveLoader:cliConfig.resolveLoader}};}});var Node=class{value;next;constructor(value){this.value=value;}},Queue=class{#head;#tail;#size;constructor(){this.clear();}enqueue(value){let node=new Node(value);this.#head?(this.#tail.next=node,this.#tail=node):(this.#head=node,this.#tail=node),this.#size++;}dequeue(){let current=this.#head;if(current)return this.#head=this.#head.next,this.#size--,current.value}peek(){if(this.#head)return this.#head.value}clear(){this.#head=void 0,this.#tail=void 0,this.#size=0;}get size(){return this.#size}*[Symbol.iterator](){let current=this.#head;for(;current;)yield current.value,current=current.next;}*drain(){for(;this.#head;)yield this.dequeue();}};function pLimit(concurrency){if(!((Number.isInteger(concurrency)||concurrency===Number.POSITIVE_INFINITY)&&concurrency>0))throw new TypeError("Expected `concurrency` to be a number from 1 and up");let queue=new Queue,activeCount=0,next=()=>{activeCount--,queue.size>0&&queue.dequeue()();},run=async(fn,resolve,args)=>{activeCount++;let result=(async()=>fn(...args))();resolve(result);try{await result;}catch{}next();},enqueue=(fn,resolve,args)=>{queue.enqueue(run.bind(void 0,fn,resolve,args)),(async()=>(await Promise.resolve(),activeCount<concurrency&&queue.size>0&&queue.dequeue()()))();},generator=(fn,...args)=>new Promise(resolve=>{enqueue(fn,resolve,args);});return Object.defineProperties(generator,{activeCount:{get:()=>activeCount},pendingCount:{get:()=>queue.size},clearQueue:{value:()=>{queue.clear();}}}),generator}var EndError=class extends Error{constructor(value){super(),this.value=value;}},testElement=async(element,tester)=>tester(await element),finder=async element=>{let values=await Promise.all(element);if(values[1]===!0)throw new EndError(values[0]);return !1};async function pLocate(iterable,tester,{concurrency=Number.POSITIVE_INFINITY,preserveOrder=!0}={}){let limit=pLimit(concurrency),items=[...iterable].map(element=>[element,limit(testElement,element,tester)]),checkLimit=pLimit(preserveOrder?1:Number.POSITIVE_INFINITY);try{await Promise.all(items.map(element=>checkLimit(finder,element)));}catch(error){if(error instanceof EndError)return error.value;throw error}}var typeMappings={directory:"isDirectory",file:"isFile"};function checkType(type){if(!Object.hasOwnProperty.call(typeMappings,type))throw new Error(`Invalid type specified: ${type}`)}var matchType=(type,stat)=>stat[typeMappings[type]](),toPath=urlOrPath=>urlOrPath instanceof URL?url.fileURLToPath(urlOrPath):urlOrPath;async function locatePath(paths,{cwd=process2__default.default.cwd(),type="file",allowSymlinks=!0,concurrency,preserveOrder}={}){checkType(type),cwd=toPath(cwd);let statFunction=allowSymlinks?fs.promises.stat:fs.promises.lstat;return pLocate(paths,async path_=>{try{let stat=await statFunction(path2__default.default.resolve(cwd,path_));return matchType(type,stat)}catch{return !1}},{concurrency,preserveOrder})}function toPath2(urlOrPath){return urlOrPath instanceof URL?url.fileURLToPath(urlOrPath):urlOrPath}var findUpStop=Symbol("findUpStop");async function findUpMultiple(name,options={}){let directory=path2__default.default.resolve(toPath2(options.cwd)??""),{root}=path2__default.default.parse(directory),stopAt=path2__default.default.resolve(directory,toPath2(options.stopAt??root)),limit=options.limit??Number.POSITIVE_INFINITY,paths=[name].flat(),runMatcher=async locateOptions=>{if(typeof name!="function")return locatePath(paths,locateOptions);let foundPath=await name(locateOptions.cwd);return typeof foundPath=="string"?locatePath([foundPath],locateOptions):foundPath},matches=[];for(;;){let foundPath=await runMatcher({...options,cwd:directory});if(foundPath===findUpStop||(foundPath&&matches.push(path2__default.default.resolve(directory,foundPath)),directory===stopAt||matches.length>=limit))break;directory=path2__default.default.dirname(directory);}return matches}async function findUp(name,options={}){return (await findUpMultiple(name,{...options,limit:1}))[0]}var import_angular_cli_webpack=__toESM(require_angular_cli_webpack());var moduleIsAvailable=moduleName=>{try{return __require.resolve(moduleName),!0}catch{return !1}};async function webpackFinal(baseConfig,options){if(!moduleIsAvailable("@angular-devkit/build-angular"))return nodeLogger.logger.info('=> Using base config because "@angular-devkit/build-angular" is not installed'),baseConfig;checkForLegacyBuildOptions(options);let builderContext=getBuilderContext(options),builderOptions=await getBuilderOptions(options,builderContext),webpackConfig=await(0, import_angular_cli_webpack.getWebpackConfig)(baseConfig,{builderOptions:{watch:options.configType==="DEVELOPMENT",...builderOptions},builderContext});webpackConfig.plugins=webpackConfig.plugins??[];let miniCssPlugin=webpackConfig?.plugins?.find(plugin=>plugin?.constructor?.name==="MiniCssExtractPlugin");miniCssPlugin&&"options"in miniCssPlugin&&(miniCssPlugin.options.filename="[name].[contenthash].css",miniCssPlugin.options.chunkFilename="[name].iframe.[contenthash].css"),webpackConfig.plugins.push(new builderWebpack5.WebpackDefinePlugin({STORYBOOK_ANGULAR_OPTIONS:JSON.stringify({experimentalZoneless:builderOptions.experimentalZoneless})}));try{__require.resolve("@angular/animations");}catch{webpackConfig.plugins.push(new builderWebpack5.WebpackIgnorePlugin({resourceRegExp:/@angular\/platform-browser\/animations$/}));}return webpackConfig}function getBuilderContext(options){return options.angularBuilderContext??{target:{project:"noop-project",builder:"",options:{}},workspaceRoot:process.cwd(),getProjectMetadata:()=>({}),getTargetOptions:()=>({}),logger:new core.logging.Logger("Storybook")}}function deepMerge(target,source){let result={...target};for(let key in source)source[key]!==void 0&&source[key]!==null&&(typeof source[key]=="object"&&!Array.isArray(source[key])&&typeof target[key]=="object"&&!Array.isArray(target[key])&&target[key]!==null?result[key]=deepMerge(target[key],source[key]):result[key]=source[key]);return result}async function getBuilderOptions(options,builderContext){let browserTargetOptions={};if(options.angularBrowserTarget){let browserTarget=architect.targetFromTargetString(options.angularBrowserTarget);nodeLogger.logger.info(`=> Using angular browser target options from "${browserTarget.project}:${browserTarget.target}${browserTarget.configuration?`:${browserTarget.configuration}`:""}"`),browserTargetOptions=await builderContext.getTargetOptions(browserTarget);}let builderOptions=deepMerge(browserTargetOptions,options.angularBuilderOptions||{});return builderOptions.tsConfig=options.tsConfig??await findUp("tsconfig.json",{cwd:options.configDir,stopAt:common.getProjectRoot()})??browserTargetOptions.tsConfig,nodeLogger.logger.info(`=> Using angular project with "tsConfig:${builderOptions.tsConfig}"`),builderOptions}function checkForLegacyBuildOptions(options){if(options.angularBrowserTarget===void 0)throw new serverErrors.AngularLegacyBuildOptionsError}
20
20
 
21
+ exports.deepMerge = deepMerge;
22
+ exports.getBuilderOptions = getBuilderOptions;
21
23
  exports.webpackFinal = webpackFinal;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/angular",
3
- "version": "9.2.0-alpha.1",
3
+ "version": "9.2.0-alpha.3",
4
4
  "description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.",
5
5
  "keywords": [
6
6
  "storybook",
@@ -88,7 +88,7 @@
88
88
  "prep": "jiti ../../../scripts/prepare/addon-bundle.ts"
89
89
  },
90
90
  "dependencies": {
91
- "@storybook/builder-webpack5": "9.2.0-alpha.1",
91
+ "@storybook/builder-webpack5": "9.2.0-alpha.3",
92
92
  "@storybook/global": "^5.0.0",
93
93
  "telejson": "8.0.0",
94
94
  "ts-dedent": "^2.0.0",
@@ -108,7 +108,7 @@
108
108
  "@angular/forms": "^19.1.1",
109
109
  "@angular/platform-browser": "^19.1.1",
110
110
  "@angular/platform-browser-dynamic": "^19.1.1",
111
- "@storybook/core-webpack": "9.2.0-alpha.1",
111
+ "@storybook/core-webpack": "9.2.0-alpha.3",
112
112
  "@types/node": "^22.0.0",
113
113
  "fd-package-json": "^1.2.0",
114
114
  "find-up": "^7.0.0",
@@ -131,7 +131,7 @@
131
131
  "@angular/platform-browser": ">=18.0.0 < 21.0.0",
132
132
  "@angular/platform-browser-dynamic": ">=18.0.0 < 21.0.0",
133
133
  "rxjs": "^6.5.3 || ^7.4.0",
134
- "storybook": "^9.2.0-alpha.1",
134
+ "storybook": "^9.2.0-alpha.3",
135
135
  "typescript": "^4.9.0 || ^5.0.0",
136
136
  "zone.js": ">=0.14.0"
137
137
  },
@@ -169,5 +169,5 @@
169
169
  "./src/builders/build-storybook/index.ts"
170
170
  ]
171
171
  },
172
- "gitHead": "e6a7fd8a655c69780bc20b9749c2699e44beae16"
172
+ "gitHead": "ce6a1e4a8d5ad69c699021a0b183df89cfc7b684"
173
173
  }