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 src_exports={};__export(src_exports,{bail:()=>bail,build:()=>build,corePresets:()=>corePresets,executor:()=>executor,getConfig:()=>getConfig,overridePresets:()=>overridePresets,start:()=>start});module.exports=__toCommonJS(src_exports);var import_path4=require("path"),import_fs_extra4=__toESM(require("fs-extra")),import_express=__toESM(require("express")),import_node_logger=require("@storybook/node-logger"),import_esbuild_plugin_global_externals=require("@fal-works/esbuild-plugin-global-externals"),import_esbuild_plugin_pnp=require("@yarnpkg/esbuild-plugin-pnp"),import_esbuild_plugin_alias=__toESM(require("esbuild-plugin-alias")),import_core_common2=require("@storybook/core-common"),import_globals_module_info=require("@storybook/manager/globals-module-info");var import_path=require("path"),import_fs_extra=__toESM(require("fs-extra")),import_ejs=require("ejs"),getTemplatePath=async template=>(0,import_path.join)((0,import_path.dirname)(require.resolve("@storybook/builder-manager/package.json")),"templates",template),readTemplate=async template=>{let path=await getTemplatePath(template);return import_fs_extra.default.readFile(path,"utf8")};var renderHTML=async(template,title,favicon,customHead,cssFiles,jsFiles,features,refs,logLevel,docsOptions,{versionCheck,previewUrl,configType})=>{let titleRef=await title,templateRef=await template;return(0,import_ejs.render)(templateRef,{title:titleRef?`${titleRef} - Storybook`:"Storybook",files:{js:jsFiles,css:cssFiles},favicon:await favicon,globals:{FEATURES:JSON.stringify(await features,null,2),REFS:JSON.stringify(await refs,null,2),LOGLEVEL:JSON.stringify(await logLevel,null,2),DOCS_OPTIONS:JSON.stringify(await docsOptions,null,2),CONFIG_TYPE:JSON.stringify(await configType,null,2),VERSIONCHECK:JSON.stringify(JSON.stringify(versionCheck),null,2),PREVIEW_URL:JSON.stringify(previewUrl,null,2)},head:await customHead||""})};var import_find_cache_dir=__toESM(require("find-cache-dir")),import_fs_extra2=__toESM(require("fs-extra")),import_node_path=require("path");function slash(path){return path.startsWith("\\\\?\\")?path:path.replace(/\\/g,"/")}var sanitizeBase=path=>path.replaceAll(".","").replaceAll("@","").replaceAll(import_node_path.sep,"-").replaceAll("/","-").replaceAll(new RegExp(/^(-)+/g),""),sanitizeFinal=path=>{let sections=path.split(/-?node_modules-?/);return sections[sections.length-1].replaceAll("storybook-addon-","").replaceAll("dist-","")};async function wrapManagerEntries(entrypoints){return Promise.all(entrypoints.map(async(entry,i)=>{let{name,dir}=(0,import_node_path.parse)(entry),cacheLocation=(0,import_find_cache_dir.default)({name:"sb-manager"});if(!cacheLocation)throw new Error("Could not create/find cache directory");let base=(0,import_node_path.relative)(process.cwd(),dir),location=(0,import_node_path.join)(cacheLocation,sanitizeFinal((0,import_node_path.join)(`${sanitizeBase(base)}-${i}`,`${sanitizeBase(name)}-bundle.js`)));return await import_fs_extra2.default.ensureFile(location),await import_fs_extra2.default.writeFile(location,`import '${slash(entry)}';`),location}))}var import_path2=require("path"),import_core_common=require("@storybook/core-common");var getData=async options=>{let refs=(0,import_core_common.getRefs)(options),favicon=options.presets.apply("favicon").then(p=>(0,import_path2.basename)(p)),features=options.presets.apply("features"),logLevel=options.presets.apply("logLevel"),title=options.presets.apply("title"),docsOptions=options.presets.apply("docs",{}),template=readTemplate("template.ejs"),customHead=options.presets.apply("managerHead"),[instance,config]=await Promise.all([executor.get(),getConfig(options)]);return{refs,features,title,docsOptions,template,customHead,instance,config,logLevel,favicon}};var safeResolve=path=>{try{return Promise.resolve(require.resolve(path))}catch{return Promise.resolve(!1)}};var import_fs_extra3=__toESM(require("fs-extra")),import_path3=require("path");async function readOrderedFiles(addonsDir,outputFiles){let files=await Promise.all((outputFiles==null?void 0:outputFiles.map(async file=>{let{location,url}=sanitizePath(file,addonsDir);return await import_fs_extra3.default.ensureFile(location),await import_fs_extra3.default.writeFile(location,file.contents),url}))||[]),jsFiles=files.filter(file=>file.endsWith(".js"));return{cssFiles:files.filter(file=>file.endsWith(".css")),jsFiles}}function sanitizePath(file,addonsDir){let filePath=file.path.replace(addonsDir,""),location=(0,import_path3.normalize)((0,import_path3.join)(addonsDir,filePath)),url=`./sb-addons${slash(filePath).split("/").map(encodeURIComponent).join("/")}`;return{location,url}}var compilation,asyncIterator,getConfig=async options=>{let[addonsEntryPoints,customManagerEntryPoint,tsconfigPath,envs]=await Promise.all([options.presets.apply("managerEntries",[]),safeResolve((0,import_path4.join)(options.configDir,"manager")),getTemplatePath("addon.tsconfig.json"),options.presets.apply("env")]),entryPoints=customManagerEntryPoint?[...addonsEntryPoints,customManagerEntryPoint]:addonsEntryPoints;return{entryPoints:await wrapManagerEntries(entryPoints),outdir:(0,import_path4.join)(options.outputDir||"./","sb-addons"),format:"iife",write:!1,ignoreAnnotations:!0,resolveExtensions:[".ts",".tsx",".mjs",".js",".jsx"],outExtension:{".js":".js"},loader:{".js":"jsx",".png":"dataurl",".gif":"dataurl",".jpg":"dataurl",".jpeg":"dataurl",".svg":"dataurl",".webp":"dataurl",".webm":"dataurl",".mp3":"dataurl",".woff2":"dataurl",".woff":"dataurl",".eot":"dataurl",".ttf":"dataurl"},target:["chrome100","safari15","firefox91"],platform:"browser",bundle:!0,minify:!0,sourcemap:!1,conditions:["browser","module","default"],jsxFactory:"React.createElement",jsxFragment:"React.Fragment",jsx:"transform",jsxImportSource:"react",tsconfig:tsconfigPath,legalComments:"external",plugins:[(0,import_esbuild_plugin_alias.default)({process:require.resolve("process/browser.js"),util:require.resolve("util/util.js"),assert:require.resolve("browser-assert")}),(0,import_esbuild_plugin_global_externals.globalExternals)(import_globals_module_info.globalsModuleInfoMap),(0,import_esbuild_plugin_pnp.pnpPlugin)()],banner:{js:"try{"},footer:{js:'}catch(e){ console.error("[Storybook] One of your manager-entries failed: " + import.meta.url, e); }'},define:{"process.env":JSON.stringify(envs),...(0,import_core_common2.stringifyProcessEnvs)(envs),global:"window",module:"{}"}}},executor={get:async()=>{let{build:build2}=await import("esbuild");return build2}},starter=async function*({startTime,options,router}){import_node_logger.logger.info("=> Starting manager..");let{config,favicon,customHead,features,instance,refs,template,title,logLevel,docsOptions}=await getData(options);yield;let addonsDir=config.outdir;await import_fs_extra4.default.remove(addonsDir),yield,compilation=await instance({...config}),yield;let coreDirOrigin=(0,import_path4.join)((0,import_path4.dirname)(require.resolve("@storybook/manager/package.json")),"dist");router.use("/sb-addons",import_express.default.static(addonsDir,{immutable:!0,maxAge:"5m"})),router.use("/sb-manager",import_express.default.static(coreDirOrigin,{immutable:!0,maxAge:"5m"}));let{cssFiles,jsFiles}=await readOrderedFiles(addonsDir,compilation==null?void 0:compilation.outputFiles);yield;let html=await renderHTML(template,title,favicon,customHead,cssFiles,jsFiles,features,refs,logLevel,docsOptions,options);return yield,router.use("/",({path},res,next)=>{path==="/"?res.status(200).send(html):next()}),router.use("/index.html",({path},res)=>{res.status(200).send(html)}),{bail,stats:{toJson:()=>({})},totalTime:process.hrtime(startTime)}},builder=async function*({startTime,options}){if(!options.outputDir)throw new Error("outputDir is required");import_node_logger.logger.info("=> Building manager..");let{config,customHead,favicon,features,instance,refs,template,title,logLevel,docsOptions}=await getData(options);yield;let addonsDir=config.outdir,coreDirOrigin=(0,import_path4.join)((0,import_path4.dirname)(require.resolve("@storybook/manager/package.json")),"dist"),coreDirTarget=(0,import_path4.join)(options.outputDir,"sb-manager");compilation=await instance({...config,minify:!0}),yield;let managerFiles=import_fs_extra4.default.copy(coreDirOrigin,coreDirTarget,{filter:src=>{let{ext}=(0,import_path4.parse)(src);return ext?ext===".js":!0}}),{cssFiles,jsFiles}=await readOrderedFiles(addonsDir,compilation==null?void 0:compilation.outputFiles);yield;let html=await renderHTML(template,title,favicon,customHead,cssFiles,jsFiles,features,refs,logLevel,docsOptions,options);return await Promise.all([import_fs_extra4.default.writeFile((0,import_path4.join)(options.outputDir,"index.html"),html),managerFiles]),import_node_logger.logger.trace({message:"=> Manager built",time:process.hrtime(startTime)}),{toJson:()=>({})}},bail=async()=>{if(asyncIterator)try{await asyncIterator.throw(new Error)}catch{}},start=async options=>{asyncIterator=starter(options);let result;do result=await asyncIterator.next();while(!result.done);return result.value},build=async options=>{asyncIterator=builder(options);let result;do result=await asyncIterator.next();while(!result.done);return result.value},corePresets=[],overridePresets=[];0&&(module.exports={bail,build,corePresets,executor,getConfig,overridePresets,start});
|