@storybook/builder-vite 7.0.0-rc.8 → 7.0.0

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.js CHANGED
@@ -1,4 +1,4 @@
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:()=>build2,hasVitePlugins:()=>hasVitePlugins,start:()=>start,withoutVitePlugins:()=>withoutVitePlugins});module.exports=__toCommonJS(src_exports);var fs2=__toESM(require("fs-extra")),import_express=__toESM(require("express")),import_path2=require("path");var import_core_common=require("@storybook/core-common");async function transformIframeHtml(html,options){let{configType,features,presets,serverChannelUrl}=options,frameworkOptions=await presets.apply("frameworkOptions"),headHtmlSnippet=await presets.apply("previewHead"),bodyHtmlSnippet=await presets.apply("previewBody"),logLevel=await presets.apply("logLevel",void 0),docsOptions=await presets.apply("docs"),coreOptions=await presets.apply("core"),stories=(0,import_core_common.normalizeStories)(await options.presets.apply("stories",[],options),{configDir:options.configDir,workingDir:process.cwd()}).map(specifier=>({...specifier,importPathMatcher:specifier.importPathMatcher.source}));return html.replace("[CONFIG_TYPE HERE]",configType||"").replace("[LOGLEVEL HERE]",logLevel||"").replace("'[FRAMEWORK_OPTIONS HERE]'",JSON.stringify(frameworkOptions)).replace("'[CHANNEL_OPTIONS HERE]'",JSON.stringify(coreOptions&&coreOptions.channelOptions?coreOptions.channelOptions:{})).replace("'[FEATURES HERE]'",JSON.stringify(features||{})).replace("'[STORIES HERE]'",JSON.stringify(stories||{})).replace("'[DOCS_OPTIONS HERE]'",JSON.stringify(docsOptions||{})).replace("'[SERVER_CHANNEL_URL HERE]'",JSON.stringify(serverChannelUrl)).replace("<!-- [HEAD HTML SNIPPET HERE] -->",headHtmlSnippet||"").replace("<!-- [BODY HTML SNIPPET HERE] -->",bodyHtmlSnippet||"")}var import_vite9=require("vite");var path3=__toESM(require("path")),import_vite7=require("vite"),import_core_common7=require("@storybook/core-common"),import_globals=require("@storybook/preview/globals");var import_es_module_lexer=require("es-module-lexer"),import_magic_string=__toESM(require("magic-string")),import_vite=require("vite"),include=[/\.stories\.([tj])sx?$/,/(stories|story).mdx$/],filter=(0,import_vite.createFilter)(include),injectExportOrderPlugin={name:"storybook:inject-export-order-plugin",enforce:"post",async transform(code,id){if(!filter(id))return;let[,exports]=await(0,import_es_module_lexer.parse)(code);if(exports.includes("__namedExportsOrder"))return;let s=new import_magic_string.default(code),orderedExports=exports.filter(e=>e!=="default");return s.append(`;export const __namedExportsOrder = ${JSON.stringify(orderedExports)};`),{code:s.toString(),map:s.generateMap({hires:!0,source:id})}}};var import_vite2=require("vite"),isStorybookMdx=id=>id.endsWith("stories.mdx")||id.endsWith("story.mdx");async function mdxPlugin(options){let filter2=(0,import_vite2.createFilter)(/\.mdx$/),{features,presets}=options,{mdxPluginOptions,jsxOptions}=await presets.apply("options",{});return{name:"storybook:mdx-plugin",enforce:"pre",async transform(src,id){if(!filter2(id))return;let{compile}=features!=null&&features.legacyMdx1?await import("@storybook/mdx1-csf"):await import("@storybook/mdx2-csf"),mdxLoaderOptions=await options.presets.apply("mdxLoaderOptions",{...mdxPluginOptions,mdxCompileOptions:{providerImportSource:"@storybook/addon-docs/mdx-react-shim",...mdxPluginOptions==null?void 0:mdxPluginOptions.mdxCompileOptions},jsxOptions});return{code:String(await compile(src,{skipCsf:!isStorybookMdx(id),...mdxLoaderOptions})),map:null}}}}var import_vite3=require("vite"),import_magic_string2=__toESM(require("magic-string"));function stripStoryHMRBoundary(){let filter2=(0,import_vite3.createFilter)(/\.stories\.([tj])sx?$/);return{name:"storybook:strip-hmr-boundary-plugin",enforce:"post",async transform(src,id){if(!filter2(id))return;let s=new import_magic_string2.default(src);return s.replace(/import\.meta\.hot\.accept\(\);/,""),{code:s.toString(),map:s.generateMap({hires:!0,source:id})}}}}var fs=__toESM(require("fs"));var import_core_common3=require("@storybook/core-common");var virtualFileId="/virtual:/@storybook/builder-vite/vite-app.js",virtualStoriesFile="/virtual:/@storybook/builder-vite/storybook-stories.js",virtualPreviewFile="/virtual:/@storybook/builder-vite/preview-entry.js",virtualAddonSetupFile="/virtual:/@storybook/builder-vite/setup-addons.js";var import_path=require("path"),import_slash=__toESM(require("slash")),import_core_common2=require("@storybook/core-common");function processPreviewAnnotation(path5,projectRoot){if(typeof path5=="object")return path5.bare;if(!path5)throw new Error("Could not determine path for previewAnnotation");if(path5.includes("node_modules"))return(0,import_core_common2.stripAbsNodeModulesPath)(path5);let relativePath=(0,import_path.isAbsolute)(path5)?(0,import_slash.default)((0,import_path.relative)(projectRoot,path5)):path5;return relativePath.startsWith("./")?(0,import_slash.default)(relativePath.replace(/^\.\//,"/")):relativePath.startsWith("../")?(0,import_slash.default)((0,import_path.resolve)(projectRoot,relativePath)):(0,import_slash.default)(`/${relativePath}`)}async function generateIframeScriptCode(options,projectRoot){let{presets}=options,rendererName=await(0,import_core_common3.getRendererName)(options),configEntries=[...await presets.apply("previewAnnotations",[],options)].filter(Boolean).map(path5=>processPreviewAnnotation(path5,projectRoot)),filesToImport=(files,name)=>files.map((el,i)=>`import ${name?`* as ${name}_${i} from `:""}'${el}'`).join(`
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:()=>build2,hasVitePlugins:()=>hasVitePlugins,start:()=>start,withoutVitePlugins:()=>withoutVitePlugins});module.exports=__toCommonJS(src_exports);var fs2=__toESM(require("fs-extra")),import_express=__toESM(require("express")),import_path2=require("path");var import_core_common=require("@storybook/core-common");async function transformIframeHtml(html,options){let{configType,features,presets,serverChannelUrl}=options,frameworkOptions=await presets.apply("frameworkOptions"),headHtmlSnippet=await presets.apply("previewHead"),bodyHtmlSnippet=await presets.apply("previewBody"),logLevel=await presets.apply("logLevel",void 0),docsOptions=await presets.apply("docs"),coreOptions=await presets.apply("core"),stories=(0,import_core_common.normalizeStories)(await options.presets.apply("stories",[],options),{configDir:options.configDir,workingDir:process.cwd()}).map(specifier=>({...specifier,importPathMatcher:specifier.importPathMatcher.source}));return html.replace("[CONFIG_TYPE HERE]",configType||"").replace("[LOGLEVEL HERE]",logLevel||"").replace("'[FRAMEWORK_OPTIONS HERE]'",JSON.stringify(frameworkOptions)).replace("'[CHANNEL_OPTIONS HERE]'",JSON.stringify(coreOptions&&coreOptions.channelOptions?coreOptions.channelOptions:{})).replace("'[FEATURES HERE]'",JSON.stringify(features||{})).replace("'[STORIES HERE]'",JSON.stringify(stories||{})).replace("'[DOCS_OPTIONS HERE]'",JSON.stringify(docsOptions||{})).replace("'[SERVER_CHANNEL_URL HERE]'",JSON.stringify(serverChannelUrl)).replace("<!-- [HEAD HTML SNIPPET HERE] -->",headHtmlSnippet||"").replace("<!-- [BODY HTML SNIPPET HERE] -->",bodyHtmlSnippet||"")}var import_vite9=require("vite");var path3=__toESM(require("path")),import_vite7=require("vite"),import_core_common7=require("@storybook/core-common"),import_globals=require("@storybook/preview/globals");var import_es_module_lexer=require("es-module-lexer"),import_magic_string=__toESM(require("magic-string")),import_vite=require("vite"),include=[/\.stories\.([tj])sx?$/,/(stories|story).mdx$/],filter=(0,import_vite.createFilter)(include),injectExportOrderPlugin={name:"storybook:inject-export-order-plugin",enforce:"post",async transform(code,id){if(!filter(id))return;let[,exports]=await(0,import_es_module_lexer.parse)(code);if(exports.includes("__namedExportsOrder"))return;let s=new import_magic_string.default(code),orderedExports=exports.filter(e=>e!=="default");return s.append(`;export const __namedExportsOrder = ${JSON.stringify(orderedExports)};`),{code:s.toString(),map:s.generateMap({hires:!0,source:id})}}};var import_remark_slug=__toESM(require("remark-slug")),import_remark_external_links=__toESM(require("remark-external-links")),import_vite2=require("vite"),isStorybookMdx=id=>id.endsWith("stories.mdx")||id.endsWith("story.mdx");async function mdxPlugin(options){let filter2=(0,import_vite2.createFilter)(/\.mdx$/),{features,presets}=options,{mdxPluginOptions,jsxOptions}=await presets.apply("options",{});return{name:"storybook:mdx-plugin",enforce:"pre",async transform(src,id){var _a;if(!filter2(id))return;let{compile}=features!=null&&features.legacyMdx1?await import("@storybook/mdx1-csf"):await import("@storybook/mdx2-csf"),mdxLoaderOptions=await options.presets.apply("mdxLoaderOptions",{...mdxPluginOptions,mdxCompileOptions:{providerImportSource:"@storybook/addon-docs/mdx-react-shim",...mdxPluginOptions==null?void 0:mdxPluginOptions.mdxCompileOptions,remarkPlugins:[import_remark_slug.default,import_remark_external_links.default].concat(((_a=mdxPluginOptions==null?void 0:mdxPluginOptions.mdxCompileOptions)==null?void 0:_a.remarkPlugins)??[])},jsxOptions});return{code:String(await compile(src,{skipCsf:!isStorybookMdx(id),...mdxLoaderOptions})),map:null}}}}var import_vite3=require("vite"),import_magic_string2=__toESM(require("magic-string"));function stripStoryHMRBoundary(){let filter2=(0,import_vite3.createFilter)(/\.stories\.([tj])sx?$/);return{name:"storybook:strip-hmr-boundary-plugin",enforce:"post",async transform(src,id){if(!filter2(id))return;let s=new import_magic_string2.default(src);return s.replace(/import\.meta\.hot\.accept\(\);/,""),{code:s.toString(),map:s.generateMap({hires:!0,source:id})}}}}var fs=__toESM(require("fs"));var import_core_common3=require("@storybook/core-common");var virtualFileId="/virtual:/@storybook/builder-vite/vite-app.js",virtualStoriesFile="/virtual:/@storybook/builder-vite/storybook-stories.js",virtualPreviewFile="/virtual:/@storybook/builder-vite/preview-entry.js",virtualAddonSetupFile="/virtual:/@storybook/builder-vite/setup-addons.js";var import_path=require("path");function slash(path5){return/^\\\\\?\\/.test(path5)?path5:path5.replace(/\\/g,"/")}var import_core_common2=require("@storybook/core-common");function processPreviewAnnotation(path5,projectRoot){if(typeof path5=="object")return path5.bare;if(!path5)throw new Error("Could not determine path for previewAnnotation");if(path5.includes("node_modules"))return(0,import_core_common2.stripAbsNodeModulesPath)(path5);let relativePath=(0,import_path.isAbsolute)(path5)?slash((0,import_path.relative)(projectRoot,path5)):path5;return relativePath.startsWith("./")?slash(relativePath.replace(/^\.\//,"/")):relativePath.startsWith("../")?slash((0,import_path.resolve)(projectRoot,relativePath)):slash(`/${relativePath}`)}async function generateIframeScriptCode(options,projectRoot){let{presets}=options,rendererName=await(0,import_core_common3.getRendererName)(options),configEntries=[...await presets.apply("previewAnnotations",[],options)].filter(Boolean).map(path5=>processPreviewAnnotation(path5,projectRoot)),filesToImport=(files,name)=>files.map((el,i)=>`import ${name?`* as ${name}_${i} from `:""}'${el}'`).join(`
2
2
  `),importArray=(name,length)=>new Array(length).fill(0).map((_,i)=>`${name}_${i}`);return`
3
3
  // Ensure that the client API is initialized by the framework before any other iframe code
4
4
  // is loaded. That way our client-apis can assume the existence of the API+store
@@ -117,7 +117,7 @@
117
117
  window.__STORYBOOK_PREVIEW__.onGetProjectAnnotationsChanged({ getProjectAnnotations });
118
118
  });
119
119
  }`.trim())(frameworkName)};
120
- `.trim()}var path2=__toESM(require("path")),import_vite4=require("vite"),import_node_logger=require("@storybook/node-logger");var path=__toESM(require("path")),import_slash2=__toESM(require("slash")),import_glob_promise=require("glob-promise"),import_core_common5=require("@storybook/core-common");async function listStories(options){return(await Promise.all((0,import_core_common5.normalizeStories)(await options.presets.apply("stories",[],options),{configDir:options.configDir,workingDir:options.configDir}).map(({directory,files})=>{let pattern=path.join(directory,files),absolutePattern=path.isAbsolute(pattern)?pattern:path.join(options.configDir,pattern);return(0,import_glob_promise.promise)((0,import_slash2.default)(absolutePattern),{follow:!0})}))).reduce((carry,stories)=>carry.concat(stories),[])}function toImportPath(relativePath){return relativePath.startsWith("../")?relativePath:`./${relativePath}`}async function toImportFn(stories){return`
120
+ `.trim()}var path2=__toESM(require("path")),import_vite4=require("vite"),import_node_logger=require("@storybook/node-logger");var path=__toESM(require("path"));var import_glob_promise=require("glob-promise"),import_core_common5=require("@storybook/core-common");async function listStories(options){return(await Promise.all((0,import_core_common5.normalizeStories)(await options.presets.apply("stories",[],options),{configDir:options.configDir,workingDir:options.configDir}).map(({directory,files})=>{let pattern=path.join(directory,files),absolutePattern=path.isAbsolute(pattern)?pattern:path.join(options.configDir,pattern);return(0,import_glob_promise.promise)(slash(absolutePattern),{follow:!0})}))).reduce((carry,stories)=>carry.concat(stories),[])}function toImportPath(relativePath){return relativePath.startsWith("../")?relativePath:`./${relativePath}`}async function toImportFn(stories){return`
121
121
  const importers = {
122
122
  ${stories.map(file=>{let ext=path2.extname(file),relativePath=(0,import_vite4.normalizePath)(path2.relative(process.cwd(),file));return[".js",".jsx",".ts",".tsx",".mdx",".svelte",".vue"].includes(ext)||import_node_logger.logger.warn(`Cannot process ${ext} file with storyStoreV7: ${relativePath}`),` '${toImportPath(relativePath)}': async () => import('/@fs/${file}')`}).join(`,
123
123
  `)}
@@ -126,8 +126,8 @@
126
126
  export async function importFn(path) {
127
127
  return importers[path]();
128
128
  }
129
- `}async function generateImportFnScriptCode(options){let stories=await listStories(options);return(await toImportFn(stories)).trim()}var import_core_common6=require("@storybook/core-common"),import_slash3=__toESM(require("slash")),import_vite5=require("vite");var absoluteFilesToImport=(files,name)=>files.map((el,i)=>`import ${name?`* as ${name}_${i} from `:""}'/@fs/${(0,import_vite5.normalizePath)(el)}'`).join(`
130
- `);async function generateVirtualStoryEntryCode(options){let storyEntries=await listStories(options),resolveMap=storyEntries.reduce((prev,entry)=>({...prev,[entry]:entry.replace((0,import_slash3.default)(process.cwd()),".")}),{}),modules=storyEntries.map((entry,i)=>`${JSON.stringify(entry)}: story_${i}`).join(",");return`
129
+ `}async function generateImportFnScriptCode(options){let stories=await listStories(options);return(await toImportFn(stories)).trim()}var import_core_common6=require("@storybook/core-common");var import_vite5=require("vite");var absoluteFilesToImport=(files,name)=>files.map((el,i)=>`import ${name?`* as ${name}_${i} from `:""}'/@fs/${(0,import_vite5.normalizePath)(el)}'`).join(`
130
+ `);async function generateVirtualStoryEntryCode(options){let storyEntries=await listStories(options),resolveMap=storyEntries.reduce((prev,entry)=>({...prev,[entry]:entry.replace(slash(process.cwd()),".")}),{}),modules=storyEntries.map((entry,i)=>`${JSON.stringify(entry)}: story_${i}`).join(",");return`
131
131
  ${absoluteFilesToImport(storyEntries,"story")}
132
132
 
133
133
  function loadable(key) {
@@ -142,7 +142,7 @@
142
142
  export function configStories(configure) {
143
143
  configure(loadable, { hot: import.meta.hot }, false);
144
144
  }
145
- `.trim()}async function generatePreviewEntryCode({configDir}){let previewFile=(0,import_core_common6.loadPreviewOrConfigFile)({configDir});return previewFile?`import * as preview from '${(0,import_slash3.default)(previewFile)}';
145
+ `.trim()}async function generatePreviewEntryCode({configDir}){let previewFile=(0,import_core_common6.loadPreviewOrConfigFile)({configDir});return previewFile?`import * as preview from '${slash(previewFile)}';
146
146
  export default preview;`:""}async function generateAddonSetupCode(){return`
147
147
  import { createChannel as createPostMessageChannel } from '@storybook/channel-postmessage';
148
148
  import { createChannel as createWebSocketChannel } from '@storybook/channel-websocket';
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- 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 new Error('Dynamic require of "'+x+'" is not supported')});import*as fs2 from"fs-extra";import express from"express";import{dirname,join as join3,parse as parse3}from"path";import{normalizeStories}from"@storybook/core-common";async function transformIframeHtml(html,options){let{configType,features,presets,serverChannelUrl}=options,frameworkOptions=await presets.apply("frameworkOptions"),headHtmlSnippet=await presets.apply("previewHead"),bodyHtmlSnippet=await presets.apply("previewBody"),logLevel=await presets.apply("logLevel",void 0),docsOptions=await presets.apply("docs"),coreOptions=await presets.apply("core"),stories=normalizeStories(await options.presets.apply("stories",[],options),{configDir:options.configDir,workingDir:process.cwd()}).map(specifier=>({...specifier,importPathMatcher:specifier.importPathMatcher.source}));return html.replace("[CONFIG_TYPE HERE]",configType||"").replace("[LOGLEVEL HERE]",logLevel||"").replace("'[FRAMEWORK_OPTIONS HERE]'",JSON.stringify(frameworkOptions)).replace("'[CHANNEL_OPTIONS HERE]'",JSON.stringify(coreOptions&&coreOptions.channelOptions?coreOptions.channelOptions:{})).replace("'[FEATURES HERE]'",JSON.stringify(features||{})).replace("'[STORIES HERE]'",JSON.stringify(stories||{})).replace("'[DOCS_OPTIONS HERE]'",JSON.stringify(docsOptions||{})).replace("'[SERVER_CHANNEL_URL HERE]'",JSON.stringify(serverChannelUrl)).replace("<!-- [HEAD HTML SNIPPET HERE] -->",headHtmlSnippet||"").replace("<!-- [BODY HTML SNIPPET HERE] -->",bodyHtmlSnippet||"")}import{createServer}from"vite";import*as path3 from"path";import{loadConfigFromFile,mergeConfig}from"vite";import{isPreservingSymlinks,getFrameworkName as getFrameworkName2,getBuilderOptions}from"@storybook/core-common";import{globals}from"@storybook/preview/globals";import{parse}from"es-module-lexer";import MagicString from"magic-string";import{createFilter}from"vite";var include=[/\.stories\.([tj])sx?$/,/(stories|story).mdx$/],filter=createFilter(include),injectExportOrderPlugin={name:"storybook:inject-export-order-plugin",enforce:"post",async transform(code,id){if(!filter(id))return;let[,exports]=await parse(code);if(exports.includes("__namedExportsOrder"))return;let s=new MagicString(code),orderedExports=exports.filter(e=>e!=="default");return s.append(`;export const __namedExportsOrder = ${JSON.stringify(orderedExports)};`),{code:s.toString(),map:s.generateMap({hires:!0,source:id})}}};import{createFilter as createFilter2}from"vite";var isStorybookMdx=id=>id.endsWith("stories.mdx")||id.endsWith("story.mdx");async function mdxPlugin(options){let filter2=createFilter2(/\.mdx$/),{features,presets}=options,{mdxPluginOptions,jsxOptions}=await presets.apply("options",{});return{name:"storybook:mdx-plugin",enforce:"pre",async transform(src,id){if(!filter2(id))return;let{compile}=features?.legacyMdx1?await import("@storybook/mdx1-csf"):await import("@storybook/mdx2-csf"),mdxLoaderOptions=await options.presets.apply("mdxLoaderOptions",{...mdxPluginOptions,mdxCompileOptions:{providerImportSource:"@storybook/addon-docs/mdx-react-shim",...mdxPluginOptions?.mdxCompileOptions},jsxOptions});return{code:String(await compile(src,{skipCsf:!isStorybookMdx(id),...mdxLoaderOptions})),map:null}}}}import{createFilter as createFilter3}from"vite";import MagicString2 from"magic-string";function stripStoryHMRBoundary(){let filter2=createFilter3(/\.stories\.([tj])sx?$/);return{name:"storybook:strip-hmr-boundary-plugin",enforce:"post",async transform(src,id){if(!filter2(id))return;let s=new MagicString2(src);return s.replace(/import\.meta\.hot\.accept\(\);/,""),{code:s.toString(),map:s.generateMap({hires:!0,source:id})}}}}import*as fs from"fs";import{getRendererName}from"@storybook/core-common";var virtualFileId="/virtual:/@storybook/builder-vite/vite-app.js",virtualStoriesFile="/virtual:/@storybook/builder-vite/storybook-stories.js",virtualPreviewFile="/virtual:/@storybook/builder-vite/preview-entry.js",virtualAddonSetupFile="/virtual:/@storybook/builder-vite/setup-addons.js";import{resolve,isAbsolute,relative}from"path";import slash from"slash";import{stripAbsNodeModulesPath}from"@storybook/core-common";function processPreviewAnnotation(path5,projectRoot){if(typeof path5=="object")return path5.bare;if(!path5)throw new Error("Could not determine path for previewAnnotation");if(path5.includes("node_modules"))return stripAbsNodeModulesPath(path5);let relativePath=isAbsolute(path5)?slash(relative(projectRoot,path5)):path5;return relativePath.startsWith("./")?slash(relativePath.replace(/^\.\//,"/")):relativePath.startsWith("../")?slash(resolve(projectRoot,relativePath)):slash(`/${relativePath}`)}async function generateIframeScriptCode(options,projectRoot){let{presets}=options,rendererName=await getRendererName(options),configEntries=[...await presets.apply("previewAnnotations",[],options)].filter(Boolean).map(path5=>processPreviewAnnotation(path5,projectRoot)),filesToImport=(files,name)=>files.map((el,i)=>`import ${name?`* as ${name}_${i} from `:""}'${el}'`).join(`
1
+ 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 new Error('Dynamic require of "'+x+'" is not supported')});import*as fs2 from"fs-extra";import express from"express";import{dirname,join as join3,parse as parse3}from"path";import{normalizeStories}from"@storybook/core-common";async function transformIframeHtml(html,options){let{configType,features,presets,serverChannelUrl}=options,frameworkOptions=await presets.apply("frameworkOptions"),headHtmlSnippet=await presets.apply("previewHead"),bodyHtmlSnippet=await presets.apply("previewBody"),logLevel=await presets.apply("logLevel",void 0),docsOptions=await presets.apply("docs"),coreOptions=await presets.apply("core"),stories=normalizeStories(await options.presets.apply("stories",[],options),{configDir:options.configDir,workingDir:process.cwd()}).map(specifier=>({...specifier,importPathMatcher:specifier.importPathMatcher.source}));return html.replace("[CONFIG_TYPE HERE]",configType||"").replace("[LOGLEVEL HERE]",logLevel||"").replace("'[FRAMEWORK_OPTIONS HERE]'",JSON.stringify(frameworkOptions)).replace("'[CHANNEL_OPTIONS HERE]'",JSON.stringify(coreOptions&&coreOptions.channelOptions?coreOptions.channelOptions:{})).replace("'[FEATURES HERE]'",JSON.stringify(features||{})).replace("'[STORIES HERE]'",JSON.stringify(stories||{})).replace("'[DOCS_OPTIONS HERE]'",JSON.stringify(docsOptions||{})).replace("'[SERVER_CHANNEL_URL HERE]'",JSON.stringify(serverChannelUrl)).replace("<!-- [HEAD HTML SNIPPET HERE] -->",headHtmlSnippet||"").replace("<!-- [BODY HTML SNIPPET HERE] -->",bodyHtmlSnippet||"")}import{createServer}from"vite";import*as path3 from"path";import{loadConfigFromFile,mergeConfig}from"vite";import{isPreservingSymlinks,getFrameworkName as getFrameworkName2,getBuilderOptions}from"@storybook/core-common";import{globals}from"@storybook/preview/globals";import{parse}from"es-module-lexer";import MagicString from"magic-string";import{createFilter}from"vite";var include=[/\.stories\.([tj])sx?$/,/(stories|story).mdx$/],filter=createFilter(include),injectExportOrderPlugin={name:"storybook:inject-export-order-plugin",enforce:"post",async transform(code,id){if(!filter(id))return;let[,exports]=await parse(code);if(exports.includes("__namedExportsOrder"))return;let s=new MagicString(code),orderedExports=exports.filter(e=>e!=="default");return s.append(`;export const __namedExportsOrder = ${JSON.stringify(orderedExports)};`),{code:s.toString(),map:s.generateMap({hires:!0,source:id})}}};import remarkSlug from"remark-slug";import remarkExternalLinks from"remark-external-links";import{createFilter as createFilter2}from"vite";var isStorybookMdx=id=>id.endsWith("stories.mdx")||id.endsWith("story.mdx");async function mdxPlugin(options){let filter2=createFilter2(/\.mdx$/),{features,presets}=options,{mdxPluginOptions,jsxOptions}=await presets.apply("options",{});return{name:"storybook:mdx-plugin",enforce:"pre",async transform(src,id){if(!filter2(id))return;let{compile}=features?.legacyMdx1?await import("@storybook/mdx1-csf"):await import("@storybook/mdx2-csf"),mdxLoaderOptions=await options.presets.apply("mdxLoaderOptions",{...mdxPluginOptions,mdxCompileOptions:{providerImportSource:"@storybook/addon-docs/mdx-react-shim",...mdxPluginOptions?.mdxCompileOptions,remarkPlugins:[remarkSlug,remarkExternalLinks].concat(mdxPluginOptions?.mdxCompileOptions?.remarkPlugins??[])},jsxOptions});return{code:String(await compile(src,{skipCsf:!isStorybookMdx(id),...mdxLoaderOptions})),map:null}}}}import{createFilter as createFilter3}from"vite";import MagicString2 from"magic-string";function stripStoryHMRBoundary(){let filter2=createFilter3(/\.stories\.([tj])sx?$/);return{name:"storybook:strip-hmr-boundary-plugin",enforce:"post",async transform(src,id){if(!filter2(id))return;let s=new MagicString2(src);return s.replace(/import\.meta\.hot\.accept\(\);/,""),{code:s.toString(),map:s.generateMap({hires:!0,source:id})}}}}import*as fs from"fs";import{getRendererName}from"@storybook/core-common";var virtualFileId="/virtual:/@storybook/builder-vite/vite-app.js",virtualStoriesFile="/virtual:/@storybook/builder-vite/storybook-stories.js",virtualPreviewFile="/virtual:/@storybook/builder-vite/preview-entry.js",virtualAddonSetupFile="/virtual:/@storybook/builder-vite/setup-addons.js";import{resolve,isAbsolute,relative}from"path";function slash(path5){return/^\\\\\?\\/.test(path5)?path5:path5.replace(/\\/g,"/")}import{stripAbsNodeModulesPath}from"@storybook/core-common";function processPreviewAnnotation(path5,projectRoot){if(typeof path5=="object")return path5.bare;if(!path5)throw new Error("Could not determine path for previewAnnotation");if(path5.includes("node_modules"))return stripAbsNodeModulesPath(path5);let relativePath=isAbsolute(path5)?slash(relative(projectRoot,path5)):path5;return relativePath.startsWith("./")?slash(relativePath.replace(/^\.\//,"/")):relativePath.startsWith("../")?slash(resolve(projectRoot,relativePath)):slash(`/${relativePath}`)}async function generateIframeScriptCode(options,projectRoot){let{presets}=options,rendererName=await getRendererName(options),configEntries=[...await presets.apply("previewAnnotations",[],options)].filter(Boolean).map(path5=>processPreviewAnnotation(path5,projectRoot)),filesToImport=(files,name)=>files.map((el,i)=>`import ${name?`* as ${name}_${i} from `:""}'${el}'`).join(`
2
2
  `),importArray=(name,length)=>new Array(length).fill(0).map((_,i)=>`${name}_${i}`);return`
3
3
  // Ensure that the client API is initialized by the framework before any other iframe code
4
4
  // is loaded. That way our client-apis can assume the existence of the API+store
@@ -117,7 +117,7 @@ var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(
117
117
  window.__STORYBOOK_PREVIEW__.onGetProjectAnnotationsChanged({ getProjectAnnotations });
118
118
  });
119
119
  }`.trim())(frameworkName)};
120
- `.trim()}import*as path2 from"path";import{normalizePath}from"vite";import{logger}from"@storybook/node-logger";import*as path from"path";import slash2 from"slash";import{promise as glob}from"glob-promise";import{normalizeStories as normalizeStories2}from"@storybook/core-common";async function listStories(options){return(await Promise.all(normalizeStories2(await options.presets.apply("stories",[],options),{configDir:options.configDir,workingDir:options.configDir}).map(({directory,files})=>{let pattern=path.join(directory,files),absolutePattern=path.isAbsolute(pattern)?pattern:path.join(options.configDir,pattern);return glob(slash2(absolutePattern),{follow:!0})}))).reduce((carry,stories)=>carry.concat(stories),[])}function toImportPath(relativePath){return relativePath.startsWith("../")?relativePath:`./${relativePath}`}async function toImportFn(stories){return`
120
+ `.trim()}import*as path2 from"path";import{normalizePath}from"vite";import{logger}from"@storybook/node-logger";import*as path from"path";import{promise as glob}from"glob-promise";import{normalizeStories as normalizeStories2}from"@storybook/core-common";async function listStories(options){return(await Promise.all(normalizeStories2(await options.presets.apply("stories",[],options),{configDir:options.configDir,workingDir:options.configDir}).map(({directory,files})=>{let pattern=path.join(directory,files),absolutePattern=path.isAbsolute(pattern)?pattern:path.join(options.configDir,pattern);return glob(slash(absolutePattern),{follow:!0})}))).reduce((carry,stories)=>carry.concat(stories),[])}function toImportPath(relativePath){return relativePath.startsWith("../")?relativePath:`./${relativePath}`}async function toImportFn(stories){return`
121
121
  const importers = {
122
122
  ${stories.map(file=>{let ext=path2.extname(file),relativePath=normalizePath(path2.relative(process.cwd(),file));return[".js",".jsx",".ts",".tsx",".mdx",".svelte",".vue"].includes(ext)||logger.warn(`Cannot process ${ext} file with storyStoreV7: ${relativePath}`),` '${toImportPath(relativePath)}': async () => import('/@fs/${file}')`}).join(`,
123
123
  `)}
@@ -126,8 +126,8 @@ var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(
126
126
  export async function importFn(path) {
127
127
  return importers[path]();
128
128
  }
129
- `}async function generateImportFnScriptCode(options){let stories=await listStories(options);return(await toImportFn(stories)).trim()}import{loadPreviewOrConfigFile as loadPreviewOrConfigFile2}from"@storybook/core-common";import slash3 from"slash";import{normalizePath as normalizePath2}from"vite";var absoluteFilesToImport=(files,name)=>files.map((el,i)=>`import ${name?`* as ${name}_${i} from `:""}'/@fs/${normalizePath2(el)}'`).join(`
130
- `);async function generateVirtualStoryEntryCode(options){let storyEntries=await listStories(options),resolveMap=storyEntries.reduce((prev,entry)=>({...prev,[entry]:entry.replace(slash3(process.cwd()),".")}),{}),modules=storyEntries.map((entry,i)=>`${JSON.stringify(entry)}: story_${i}`).join(",");return`
129
+ `}async function generateImportFnScriptCode(options){let stories=await listStories(options);return(await toImportFn(stories)).trim()}import{loadPreviewOrConfigFile as loadPreviewOrConfigFile2}from"@storybook/core-common";import{normalizePath as normalizePath2}from"vite";var absoluteFilesToImport=(files,name)=>files.map((el,i)=>`import ${name?`* as ${name}_${i} from `:""}'/@fs/${normalizePath2(el)}'`).join(`
130
+ `);async function generateVirtualStoryEntryCode(options){let storyEntries=await listStories(options),resolveMap=storyEntries.reduce((prev,entry)=>({...prev,[entry]:entry.replace(slash(process.cwd()),".")}),{}),modules=storyEntries.map((entry,i)=>`${JSON.stringify(entry)}: story_${i}`).join(",");return`
131
131
  ${absoluteFilesToImport(storyEntries,"story")}
132
132
 
133
133
  function loadable(key) {
@@ -142,7 +142,7 @@ var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(
142
142
  export function configStories(configure) {
143
143
  configure(loadable, { hot: import.meta.hot }, false);
144
144
  }
145
- `.trim()}async function generatePreviewEntryCode({configDir}){let previewFile=loadPreviewOrConfigFile2({configDir});return previewFile?`import * as preview from '${slash3(previewFile)}';
145
+ `.trim()}async function generatePreviewEntryCode({configDir}){let previewFile=loadPreviewOrConfigFile2({configDir});return previewFile?`import * as preview from '${slash(previewFile)}';
146
146
  export default preview;`:""}async function generateAddonSetupCode(){return`
147
147
  import { createChannel as createPostMessageChannel } from '@storybook/channel-postmessage';
148
148
  import { createChannel as createWebSocketChannel } from '@storybook/channel-websocket';
package/input/iframe.html CHANGED
@@ -26,6 +26,7 @@
26
26
  // We do this so that "module && module.hot" etc. in Storybook source code
27
27
  // doesn't fail (it will simply be disabled)
28
28
  window.module = undefined;
29
+ window.global = window;
29
30
  </script>
30
31
  <!-- [HEAD HTML SNIPPET HERE] -->
31
32
  </head>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/builder-vite",
3
- "version": "7.0.0-rc.8",
3
+ "version": "7.0.0",
4
4
  "description": "A plugin to run and build Storybooks with Vite",
5
5
  "homepage": "https://github.com/storybookjs/storybook/tree/main/code/lib/builder-vite/#readme",
6
6
  "bugs": {
@@ -42,16 +42,16 @@
42
42
  "prep": "../../../scripts/prepare/bundle.ts"
43
43
  },
44
44
  "dependencies": {
45
- "@storybook/channel-postmessage": "7.0.0-rc.8",
46
- "@storybook/channel-websocket": "7.0.0-rc.8",
47
- "@storybook/client-logger": "7.0.0-rc.8",
48
- "@storybook/core-common": "7.0.0-rc.8",
49
- "@storybook/csf-plugin": "7.0.0-rc.8",
45
+ "@storybook/channel-postmessage": "7.0.0",
46
+ "@storybook/channel-websocket": "7.0.0",
47
+ "@storybook/client-logger": "7.0.0",
48
+ "@storybook/core-common": "7.0.0",
49
+ "@storybook/csf-plugin": "7.0.0",
50
50
  "@storybook/mdx2-csf": "next",
51
- "@storybook/node-logger": "7.0.0-rc.8",
52
- "@storybook/preview": "7.0.0-rc.8",
53
- "@storybook/preview-api": "7.0.0-rc.8",
54
- "@storybook/types": "7.0.0-rc.8",
51
+ "@storybook/node-logger": "7.0.0",
52
+ "@storybook/preview": "7.0.0",
53
+ "@storybook/preview-api": "7.0.0",
54
+ "@storybook/types": "7.0.0",
55
55
  "browser-assert": "^1.2.1",
56
56
  "es-module-lexer": "^0.9.3",
57
57
  "express": "^4.17.3",
@@ -59,14 +59,16 @@
59
59
  "glob": "^8.1.0",
60
60
  "glob-promise": "^6.0.2",
61
61
  "magic-string": "^0.27.0",
62
- "rollup": "^2.25.0 || >=3.3.0 < 3.20.0",
63
- "slash": "^3.0.0"
62
+ "remark-external-links": "^8.0.0",
63
+ "remark-slug": "^6.0.0",
64
+ "rollup": "^2.25.0 || ^3.3.0"
64
65
  },
65
66
  "devDependencies": {
66
67
  "@storybook/mdx1-csf": ">=1.0.0-next.1",
67
68
  "@types/express": "^4.17.13",
68
69
  "@types/node": "^16.0.0",
69
- "rollup": "3.19.1",
70
+ "rollup": "^3.20.1",
71
+ "slash": "^5.0.0",
70
72
  "typescript": "~4.9.3",
71
73
  "vite": "^4.0.4"
72
74
  },
@@ -100,5 +102,5 @@
100
102
  ],
101
103
  "platform": "node"
102
104
  },
103
- "gitHead": "42cc9d76db87614261e067f49b0123db30365233"
105
+ "gitHead": "4f2afa644d7f2833181fc03187f5597d442285a6"
104
106
  }