@storybook/builder-vite 7.0.0-beta.6 → 7.0.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.js +17 -20
- package/dist/index.mjs +3 -6
- package/input/iframe.html +1 -1
- package/package.json +13 -10
package/dist/index.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ type StorybookConfig = StorybookConfig$1 & {
|
|
|
30
30
|
* Or better yet, import from your framework.
|
|
31
31
|
*/
|
|
32
32
|
type StorybookViteConfig = StorybookConfig;
|
|
33
|
-
declare function bail(
|
|
33
|
+
declare function bail(): Promise<void>;
|
|
34
34
|
declare const start: ViteBuilder['start'];
|
|
35
35
|
declare const build: ViteBuilder['build'];
|
|
36
36
|
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
|
|
3
|
-
${e}
|
|
4
|
-
`}var N=(0,W.default)({fastRefresh:!1}).find(e=>e.name==="vite:react-babel");function Y(e){let n=(0,G.createFilter)(/\.mdx?$/);return{name:"storybook:mdx-plugin",enforce:"pre",async transform(t,o,i){if(!n(o))return;let{compile:a}=await import("@storybook/mdx2-csf"),l=await e.presets.apply("mdxLoaderOptions",{mdxCompileOptions:{providerImportSource:"@storybook/addon-docs/mdx-react-shim"}}),c=String(await a(t,{skipCsf:!Me(o),...l})),p=Le(c),f=N==null?void 0:N.transform,u=await(f&&"handler"in f?f.handler:f).call(this,p,`${o}.jsx`,i);if(!u)return p;if(typeof u=="string")return u;let{code:F,map:g}=u;return{code:F,map:!g||typeof g=="string"?g:{...g,sources:[o]}}}}}var K=require("vite"),Q=s(require("magic-string"));function X(){let e=(0,K.createFilter)(/\.stories\.([tj])sx?$/);return{name:"storybook:strip-hmr-boundary-plugin",enforce:"post",async transform(r,n){if(!e(n))return;let t=new Q.default(r);return t.replace(/import\.meta\.hot\.accept\(\);/,""),{code:t.toString(),map:t.generateMap({hires:!0,source:n})}}}}var ye=s(require("fs")),ve=require("vite");var oe=require("@storybook/core-common");var b="/virtual:/@storybook/builder-vite/vite-app.js",m="/virtual:/@storybook/builder-vite/storybook-stories.js",v="/virtual:/@storybook/builder-vite/preview-entry.js",w="/virtual:/@storybook/builder-vite/setup-addons.js";var re=require("path"),$=s(require("slash"));var Z=s(require("path")),ee=require("vite");function te(e){let r=e.split(`node_modules${Z.default.sep}`);return(0,ee.normalizePath)(r[r.length-1])}function S(e){if(typeof e=="object")return e.bare;if((e==null?void 0:e.startsWith("./"))||(e==null?void 0:e.startsWith("../")))return(0,$.default)((0,re.resolve)(e));if(!e)throw new Error("Could not determine path for previewAnnotation");return e.includes("node_modules")?te(e):(0,$.default)(e)}async function ne(e){let{presets:r}=e,n=await(0,oe.getRendererName)(e),o=[...await r.apply("previewAnnotations",[],e)].filter(Boolean).map(S),i=(c,p)=>c.map((f,y)=>`import ${p?`* as ${p}_${y} from `:""}'${f}'`).join(`
|
|
5
|
-
`),a=(c,p)=>new Array(p).fill(0).map((f,y)=>`${c}_${y}`);return`
|
|
1
|
+
"use strict";var Re=Object.create;var E=Object.defineProperty;var _e=Object.getOwnPropertyDescriptor;var De=Object.getOwnPropertyNames;var Ie=Object.getPrototypeOf,Fe=Object.prototype.hasOwnProperty;var Ne=(e,r)=>{for(var n in r)E(e,n,{get:r[n],enumerable:!0})},H=(e,r,n,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of De(r))!Fe.call(e,o)&&o!==n&&E(e,o,{get:()=>r[o],enumerable:!(t=_e(r,o))||t.enumerable});return e};var s=(e,r,n)=>(n=e!=null?Re(Ie(e)):{},H(r||!e||!e.__esModule?E(n,"default",{value:e,enumerable:!0}):n,e)),Te=e=>H(E({},"__esModule",{value:!0}),e);var tt={};Ne(tt,{bail:()=>Ae,build:()=>et,hasVitePlugins:()=>V,start:()=>Ze,withoutVitePlugins:()=>T});module.exports=Te(tt);var D=s(require("fs-extra")),ke=s(require("express")),f=require("path");var B=require("@storybook/core-common");async function O(e,r){let{configType:n,features:t,presets:o,serverChannelUrl:i,title:a}=r,l=await o.apply("frameworkOptions"),m=await o.apply("previewHead"),p=await o.apply("previewBody"),b=await o.apply("logLevel",void 0),v=await o.apply("docs"),I=await o.apply("core"),je=(0,B.normalizeStories)(await r.presets.apply("stories",[],r),{configDir:r.configDir,workingDir:process.cwd()}).map($=>({...$,importPathMatcher:$.importPathMatcher.source}));return e.replace("<!-- [TITLE HERE] -->",a||"Storybook").replace("[CONFIG_TYPE HERE]",n||"").replace("[LOGLEVEL HERE]",b||"").replace("'[FRAMEWORK_OPTIONS HERE]'",JSON.stringify(l)).replace("'[CHANNEL_OPTIONS HERE]'",JSON.stringify(I&&I.channelOptions?I.channelOptions:{})).replace("'[FEATURES HERE]'",JSON.stringify(t||{})).replace("'[STORIES HERE]'",JSON.stringify(je||{})).replace("'[DOCS_OPTIONS HERE]'",JSON.stringify(v||{})).replace("'[SERVER_CHANNEL_URL HERE]'",JSON.stringify(i)).replace("<!-- [HEAD HTML SNIPPET HERE] -->",m||"").replace("<!-- [BODY HTML SNIPPET HERE] -->",p||"")}var Se=require("vite");var we=s(require("path")),P=require("vite"),he=s(require("rollup-plugin-external-globals")),k=require("@storybook/core-common"),be=require("@storybook/preview/globals");var M=require("es-module-lexer"),L=s(require("magic-string")),z=require("vite"),Ve=[/\.stories\.([tj])sx?$/,/(stories|story).mdx$/],$e=(0,z.createFilter)(Ve),q={name:"storybook:inject-export-order-plugin",enforce:"post",async transform(e,r){if(!$e(r))return;let[,n]=await(0,M.parse)(e);if(n.includes("__namedExportsOrder"))return;let t=new L.default(e),o=n.filter(i=>i!=="default");return t.append(`;export const __namedExportsOrder = ${JSON.stringify(o)};`),{code:t.toString(),map:t.generateMap({hires:!0,source:r})}}};var J=require("vite"),He=e=>e.endsWith("stories.mdx")||e.endsWith("story.mdx");function U(e){let n=(0,J.createFilter)(/\.mdx?$/);return{name:"storybook:mdx-plugin",enforce:"pre",async transform(t,o){if(!n(o))return;let{compile:i}=await import("@storybook/mdx2-csf"),a=await e.presets.apply("mdxLoaderOptions",{mdxCompileOptions:{providerImportSource:"@storybook/addon-docs/mdx-react-shim"}});return{code:String(await i(t,{skipCsf:!He(o),...a})),map:null}}}}var G=require("vite"),W=s(require("magic-string"));function Y(){let e=(0,G.createFilter)(/\.stories\.([tj])sx?$/);return{name:"storybook:strip-hmr-boundary-plugin",enforce:"post",async transform(r,n){if(!e(n))return;let t=new W.default(r);return t.replace(/import\.meta\.hot\.accept\(\);/,""),{code:t.toString(),map:t.generateMap({hires:!0,source:n})}}}}var de=s(require("fs")),ue=require("vite");var ee=require("@storybook/core-common");var w="/virtual:/@storybook/builder-vite/vite-app.js",c="/virtual:/@storybook/builder-vite/storybook-stories.js",d="/virtual:/@storybook/builder-vite/preview-entry.js",u="/virtual:/@storybook/builder-vite/setup-addons.js";var Z=require("path"),F=s(require("slash"));var K=s(require("path")),Q=require("vite");function X(e){let r=e.split(`node_modules${K.default.sep}`);return(0,Q.normalizePath)(r[r.length-1])}function x(e){if(typeof e=="object")return e.bare;if((e==null?void 0:e.startsWith("./"))||(e==null?void 0:e.startsWith("../")))return(0,F.default)((0,Z.resolve)(e));if(!e)throw new Error("Could not determine path for previewAnnotation");return e.includes("node_modules")?X(e):(0,F.default)(e)}async function te(e){let{presets:r}=e,n=await(0,ee.getRendererName)(e),o=[...await r.apply("previewAnnotations",[],e)].filter(Boolean).map(x),i=(m,p)=>m.map((b,v)=>`import ${p?`* as ${p}_${v} from `:""}'${b}'`).join(`
|
|
2
|
+
`),a=(m,p)=>new Array(p).fill(0).map((b,v)=>`${m}_${v}`);return`
|
|
6
3
|
// Ensure that the client API is initialized by the framework before any other iframe code
|
|
7
4
|
// is loaded. That way our client-apis can assume the existence of the API+store
|
|
8
5
|
import { configure } from '${n}';
|
|
9
6
|
|
|
10
7
|
import { logger } from '@storybook/client-logger';
|
|
11
|
-
import * as
|
|
8
|
+
import * as previewApi from "@storybook/preview-api";
|
|
12
9
|
${i(o,"config")}
|
|
13
10
|
|
|
14
|
-
import * as preview from '${
|
|
15
|
-
import { configStories } from '${
|
|
11
|
+
import * as preview from '${d}';
|
|
12
|
+
import { configStories } from '${c}';
|
|
16
13
|
|
|
17
14
|
const {
|
|
18
15
|
addDecorator,
|
|
@@ -86,12 +83,12 @@
|
|
|
86
83
|
*/
|
|
87
84
|
|
|
88
85
|
configStories(configure);
|
|
89
|
-
`.trim()}var
|
|
86
|
+
`.trim()}var S=require("@storybook/core-common");async function re(e){let{presets:r,configDir:n}=e,t=await(0,S.getFrameworkName)(e),o=(0,S.loadPreviewOrConfigFile)({configDir:n}),a=[...await r.apply("previewAnnotations",[],e),o].filter(Boolean).map(x),l=p=>p==="@storybook/web-components-vite"?`
|
|
90
87
|
if (import.meta.hot) {
|
|
91
88
|
import.meta.hot.decline();
|
|
92
89
|
}`.trim():`
|
|
93
90
|
if (import.meta.hot) {
|
|
94
|
-
import.meta.hot.accept('${
|
|
91
|
+
import.meta.hot.accept('${c}', (newModule) => {
|
|
95
92
|
// importFn has changed so we need to patch the new one in
|
|
96
93
|
preview.onStoriesChanged({ importFn: newModule.importFn });
|
|
97
94
|
});
|
|
@@ -104,8 +101,8 @@
|
|
|
104
101
|
});
|
|
105
102
|
}`.trim();return`
|
|
106
103
|
import { composeConfigs, PreviewWeb, ClientApi } from '@storybook/preview-api';
|
|
107
|
-
import '${
|
|
108
|
-
import { importFn } from '${
|
|
104
|
+
import '${u}';
|
|
105
|
+
import { importFn } from '${c}';
|
|
109
106
|
|
|
110
107
|
const getProjectAnnotations = async () => {
|
|
111
108
|
const configs = await Promise.all([${a.map(p=>`import('${p}')`).join(`,
|
|
@@ -122,18 +119,18 @@
|
|
|
122
119
|
preview.initialize({ importFn, getProjectAnnotations });
|
|
123
120
|
|
|
124
121
|
${l(t)};
|
|
125
|
-
`.trim()}var
|
|
122
|
+
`.trim()}var C=s(require("path")),ie=require("vite"),se=require("@storybook/node-logger");var h=s(require("path")),oe=require("glob-promise"),ne=require("@storybook/core-common");async function g(e){return(await Promise.all((0,ne.normalizeStories)(await e.presets.apply("stories",[],e),{configDir:e.configDir,workingDir:e.configDir}).map(({directory:r,files:n})=>{let t=h.join(r,n);return(0,oe.promise)(h.isAbsolute(t)?t:h.join(e.configDir,t),{follow:!0})}))).reduce((r,n)=>r.concat(n),[])}function Be(e){return e.startsWith("../")?e:`./${e}`}async function Me(e){return`
|
|
126
123
|
const importers = {
|
|
127
|
-
${e.map(n=>{let t=
|
|
124
|
+
${e.map(n=>{let t=C.extname(n),o=(0,ie.normalizePath)(C.relative(process.cwd(),n));return[".js",".jsx",".ts",".tsx",".mdx"].includes(t)||se.logger.warn(`Cannot process ${t} file with storyStoreV7: ${o}`),` '${Be(o)}': async () => import('/@fs/${n}')`}).join(`,
|
|
128
125
|
`)}
|
|
129
126
|
};
|
|
130
127
|
|
|
131
128
|
export async function importFn(path) {
|
|
132
129
|
return importers[path]();
|
|
133
130
|
}
|
|
134
|
-
`}async function
|
|
135
|
-
`);async function
|
|
136
|
-
${
|
|
131
|
+
`}async function ae(e){let r=await g(e);return(await Me(r)).trim()}var pe=require("@storybook/core-common"),N=s(require("slash")),le=require("vite");var Le=(e,r)=>e.map((n,t)=>`import ${r?`* as ${r}_${t} from `:""}'/@fs/${(0,le.normalizePath)(n)}'`).join(`
|
|
132
|
+
`);async function ce(e){let r=await g(e),n=r.reduce((o,i)=>({...o,[i]:i.replace((0,N.default)(process.cwd()),".")}),{}),t=r.map((o,i)=>`${JSON.stringify(o)}: story_${i}`).join(",");return`
|
|
133
|
+
${Le(r,"story")}
|
|
137
134
|
|
|
138
135
|
function loadable(key) {
|
|
139
136
|
return {${t}}[key];
|
|
@@ -147,8 +144,8 @@
|
|
|
147
144
|
export function configStories(configure) {
|
|
148
145
|
configure(loadable, { hot: import.meta.hot }, false);
|
|
149
146
|
}
|
|
150
|
-
`.trim()}async function
|
|
151
|
-
export default preview;`:""}async function
|
|
147
|
+
`.trim()}async function me({configDir:e}){let r=(0,pe.loadPreviewOrConfigFile)({configDir:e});return r?`import * as preview from '${(0,N.default)(r)}';
|
|
148
|
+
export default preview;`:""}async function fe(){return`
|
|
152
149
|
import { createChannel as createPostMessageChannel } from '@storybook/channel-postmessage';
|
|
153
150
|
import { createChannel as createWebSocketChannel } from '@storybook/channel-websocket';
|
|
154
151
|
import { addons } from '@storybook/preview-api';
|
|
@@ -163,4 +160,4 @@
|
|
|
163
160
|
addons.setServerChannel(serverChannel);
|
|
164
161
|
window.__STORYBOOK_SERVER_CHANNEL__ = serverChannel;
|
|
165
162
|
}
|
|
166
|
-
`.trim()}function
|
|
163
|
+
`.trim()}function ge(e){let r=require.resolve("@storybook/builder-vite/input/iframe.html"),n;return{name:"storybook:code-generator-plugin",enforce:"pre",configureServer(t){t.watcher.on("change",()=>{let o=t.moduleGraph.getModuleById(w);o&&t.moduleGraph.invalidateModule(o);let i=t.moduleGraph.getModuleById(c);i&&t.moduleGraph.invalidateModule(i)}),t.watcher.on("add",o=>{(/\.stories\.([tj])sx?$/.test(o)||/\.(story|stories).mdx$/.test(o))&&t.watcher.emit("change",c)})},config(t,{command:o}){o==="build"&&(t.build||(t.build={}),t.build.rollupOptions={...t.build.rollupOptions,input:r});try{require.resolve("react-dom/client",{paths:[t.root||process.cwd()]})}catch(i){ze(i)&&i.code==="MODULE_NOT_FOUND"&&(t.resolve=(0,ue.mergeConfig)(t.resolve??{},{alias:{"react-dom/client":require.resolve("@storybook/builder-vite/input/react-dom-client-placeholder.js")}}))}},configResolved(t){n=`${t.root}/iframe.html`},resolveId(t){if(t===w)return w;if(t===r)return n;if(t===c)return c;if(t===d)return d;if(t===u)return u},async load(t){var i;let o=(i=e.features)==null?void 0:i.storyStoreV7;if(t===c)return o?ae(e):ce(e);if(t===u)return fe();if(t===d&&!o)return me(e);if(t===w)return o?re(e):te(e);if(t===n)return de.readFileSync(require.resolve("@storybook/builder-vite/input/iframe.html"),"utf-8")},async transformIndexHtml(t,o){if(o.path==="/iframe.html")return O(t,e)}}}var ze=e=>e instanceof Error;var ye=require("@storybook/csf-plugin");async function ve(e){var o;let{presets:r}=e,t=((o=(await r.apply("addons",[])).find(i=>[i,i.name].includes("@storybook/addon-docs")))==null?void 0:o.options)??{};return(0,ye.vite)(t==null?void 0:t.csfPluginOptions)}var qe={mode:"development",command:"serve",ssrBuild:!1},Je={mode:"production",command:"build",ssrBuild:!1};async function A(e,r){let n=r==="development"?qe:Je,{config:{build:t=void 0,...o}={}}=await(0,P.loadConfigFromFile)(n)??{},i={configFile:!1,cacheDir:"node_modules/.cache/.vite-storybook",root:we.resolve(e.configDir,".."),base:"./",plugins:await Ue(e),resolve:{preserveSymlinks:(0,k.isPreservingSymlinks)(),alias:{assert:require.resolve("browser-assert")}},envPrefix:o.envPrefix?"STORYBOOK_":["VITE_","STORYBOOK_"]};return(0,P.mergeConfig)(o,i)}async function Ue(e){let r=await(0,k.getFrameworkName)(e),n=[ge(e),await ve(e),U(e),q,Y(),{name:"storybook:allow-storybook-dir",enforce:"post",config(t){var o,i;(i=(o=t==null?void 0:t.server)==null?void 0:o.fs)!=null&&i.allow&&t.server.fs.allow.push(".storybook")}},(0,he.default)(be.globals)];if(r==="@storybook/preact-vite"&&n.push(require("@preact/preset-vite").default()),r==="@storybook/glimmerx-vite"){let t=require("vite-plugin-glimmerx/index.cjs");n.push(t.default())}return n}var Ee=s(require("path")),j=require("vite");var Ge=["@base2/pretty-print-object","@emotion/core","@emotion/is-prop-valid","@emotion/styled","@mdx-js/react","@storybook/addon-docs > acorn-jsx","@storybook/addon-docs","@storybook/channel-postmessage","@storybook/channel-websocket","@storybook/client-api","@storybook/client-logger","@storybook/core/client","@storybook/preview-api","@storybook/preview-web","@storybook/react > acorn-jsx","@storybook/react","@storybook/svelte","@storybook/types","@storybook/vue3","acorn-jsx","acorn-walk","acorn","airbnb-js-shims","ansi-to-html","axe-core","color-convert","deep-object-diff","doctrine","emotion-theming","escodegen","estraverse","fast-deep-equal","global","html-tags","isobject","jest-mock","loader-utils","lodash/cloneDeep","lodash/isFunction","lodash/isPlainObject","lodash/isString","lodash/mapKeys","lodash/mapValues","lodash/pick","lodash/pickBy","lodash/startCase","lodash/throttle","lodash/uniq","markdown-to-jsx","memoizerific","overlayscrollbars","polished","prettier/parser-babel","prettier/parser-flow","prettier/parser-typescript","prop-types","qs","react-dom","react-dom/client","react-fast-compare","react-is","react-textarea-autosize","react","react/jsx-runtime","refractor/core","refractor/lang/bash.js","refractor/lang/css.js","refractor/lang/graphql.js","refractor/lang/js-extras.js","refractor/lang/json.js","refractor/lang/jsx.js","refractor/lang/markdown.js","refractor/lang/markup.js","refractor/lang/tsx.js","refractor/lang/typescript.js","refractor/lang/yaml.js","regenerator-runtime/runtime.js","slash","store2","synchronous-promise","telejson","ts-dedent","unfetch","util-deprecate","uuid-browser/v4","vue","warning"],We=async(e,r)=>Promise.all(e.map(r)).then(n=>e.filter((t,o)=>n[o]));async function Oe(e,r){let{root:n=process.cwd()}=e,o=(await g(r)).map(p=>(0,j.normalizePath)(Ee.relative(n,p))),a=(await(0,j.resolveConfig)(e,"serve","development")).createResolver({asSrc:!1}),l=await We(Ge,async p=>Boolean(await a(p)));return{entries:o,include:l}}var xe=require("@storybook/core-common"),Ye=["STORYBOOK","BASE_URL","MODE","DEV","PROD","SSR"];function Ke(e,r){let n={},t=Object.entries(e).reduce((o,[i,a])=>((Ye.includes(i)||Array.isArray(r)&&!!r.find(l=>i.startsWith(l))||typeof r=="string"&&i.startsWith(r))&&(o[`import.meta.env.${i}`]=JSON.stringify(a),n[i]=a),o),{});return t["import.meta.env"]=JSON.stringify((0,xe.stringifyEnvs)(n)),t}async function R(e,r){let{presets:n}=e,t=await n.apply("env"),{define:o}=r;if(Object.keys(t).length){let i=Ke(t,r.envPrefix);o={...o,...i}}return{...r,define:o}}async function Ce(e,r){let{presets:n}=e,t=await A(e,"development"),o={...t,server:{middlewareMode:!0,hmr:{port:e.port,server:r},fs:{strict:!0}},appType:"custom",optimizeDeps:await Oe(t,e)},i=await n.apply("viteFinal",o,e);return(0,Se.createServer)(await R(e,i))}var _=require("vite");async function Pe(e){let{presets:r}=e,n=await A(e,"build");n.build=(0,_.mergeConfig)(n,{build:{outDir:e.outputDir,emptyOutDir:!1,sourcemap:!0,rollupOptions:{external:["./sb-preview/runtime.mjs"]}}}).build;let t=await r.apply("viteFinal",n,e);await(0,_.build)(await R(e,t))}var T=async(e=[],r)=>{let n=[],t=await Promise.all(e);for(let o of t)Array.isArray(o)&&n.push(await T(o,r)),o&&"name"in o&&!r.includes(o.name)&&n.push(o);return n};function Qe(e,r){return e!==null&&typeof e=="object"&&"name"in e&&r.includes(e.name)}async function V(e,r){let n=await Promise.all(e);for(let t of n)if(Array.isArray(t)&&Boolean(await V(t,r))||Qe(t,r))return!0;return!1}function Xe(e,r){return async(n,t,o)=>{if(!n.url.match(/^\/iframe\.html($|\?)/)){o();return}if(n.query["html-proxy"]!==void 0){o();return}let i=await D.readFile(require.resolve("@storybook/builder-vite/input/iframe.html"),"utf-8"),a=await O(i,e),l=await r.transformIndexHtml("/iframe.html",a);t.setHeader("Content-Type","text/html"),t.status(200).send(l)}}var y;async function Ae(){return y==null?void 0:y.close()}var Ze=async({startTime:e,options:r,router:n,server:t})=>{y=await Ce(r,t);let o=(0,f.dirname)(require.resolve("@storybook/preview/package.json")),i=(0,f.join)(o,"dist");return n.use("/sb-preview",ke.default.static(i,{immutable:!0,maxAge:"5m"})),n.use(Xe(r,y)),n.use(y.middlewares),{bail:Ae,stats:{toJson:()=>null},totalTime:process.hrtime(e)}},et=async({options:e})=>{let r=Pe(e),n=(0,f.dirname)(require.resolve("@storybook/preview/package.json")),t=(0,f.join)(n,"dist"),o=(0,f.join)(e.outputDir||"","sb-preview"),i=D.copy(t,o,{filter:l=>{let{ext:m}=(0,f.parse)(l);return m?m===".mjs":!0}}),[a]=await Promise.all([r,i]);return a};0&&(module.exports={bail,build,hasVitePlugins,start,withoutVitePlugins});
|
package/dist/index.mjs
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
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 join2,parse as parse2}from"path";import{normalizeStories}from"@storybook/core-common";async function transformIframeHtml(html,options){let{configType,features,presets,serverChannelUrl,title}=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("<!-- [TITLE HERE] -->",title||"Storybook").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 path4 from"path";import{loadConfigFromFile,mergeConfig as mergeConfig2}from"vite";import externalGlobals from"rollup-plugin-external-globals";import{isPreservingSymlinks,getFrameworkName as getFrameworkName2}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";
|
|
2
|
-
import React from 'react';
|
|
3
|
-
${code}
|
|
4
|
-
`}var viteBabel=reactVite({fastRefresh:!1}).find(p=>p.name==="vite:react-babel");function mdxPlugin(options){let filter2=createFilter2(/\.mdx?$/);return{name:"storybook:mdx-plugin",enforce:"pre",async transform(src,id,transformOptions){if(!filter2(id))return;let{compile}=await import("@storybook/mdx2-csf"),mdxLoaderOptions=await options.presets.apply("mdxLoaderOptions",{mdxCompileOptions:{providerImportSource:"@storybook/addon-docs/mdx-react-shim"}}),mdxCode=String(await compile(src,{skipCsf:!isStorybookMdx(id),...mdxLoaderOptions})),modifiedCode=injectRenderer(mdxCode),rTransform=viteBabel?.transform,result=await(rTransform&&"handler"in rTransform?rTransform.handler:rTransform).call(this,modifiedCode,`${id}.jsx`,transformOptions);if(!result)return modifiedCode;if(typeof result=="string")return result;let{code,map:resultMap}=result;return{code,map:!resultMap||typeof resultMap=="string"?resultMap:{...resultMap,sources:[id]}}}}}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{mergeConfig}from"vite";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}from"path";import slash from"slash";import path from"path";import{normalizePath}from"vite";function transformAbsPath(absPath){let splits=absPath.split(`node_modules${path.sep}`);return normalizePath(splits[splits.length-1])}function processPreviewAnnotation(path6){if(typeof path6=="object")return path6.bare;if(path6?.startsWith("./")||path6?.startsWith("../"))return slash(resolve(path6));if(!path6)throw new Error("Could not determine path for previewAnnotation");return path6.includes("node_modules")?transformAbsPath(path6):slash(path6)}async function generateIframeScriptCode(options){let{presets}=options,rendererName=await getRendererName(options),configEntries=[...await presets.apply("previewAnnotations",[],options)].filter(Boolean).map(processPreviewAnnotation),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 join2,parse as parse2}from"path";import{normalizeStories}from"@storybook/core-common";async function transformIframeHtml(html,options){let{configType,features,presets,serverChannelUrl,title}=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("<!-- [TITLE HERE] -->",title||"Storybook").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 path4 from"path";import{loadConfigFromFile,mergeConfig as mergeConfig2}from"vite";import externalGlobals from"rollup-plugin-external-globals";import{isPreservingSymlinks,getFrameworkName as getFrameworkName2}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");function mdxPlugin(options){let filter2=createFilter2(/\.mdx?$/);return{name:"storybook:mdx-plugin",enforce:"pre",async transform(src,id){if(!filter2(id))return;let{compile}=await import("@storybook/mdx2-csf"),mdxLoaderOptions=await options.presets.apply("mdxLoaderOptions",{mdxCompileOptions:{providerImportSource:"@storybook/addon-docs/mdx-react-shim"}});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{mergeConfig}from"vite";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}from"path";import slash from"slash";import path from"path";import{normalizePath}from"vite";function transformAbsPath(absPath){let splits=absPath.split(`node_modules${path.sep}`);return normalizePath(splits[splits.length-1])}function processPreviewAnnotation(path6){if(typeof path6=="object")return path6.bare;if(path6?.startsWith("./")||path6?.startsWith("../"))return slash(resolve(path6));if(!path6)throw new Error("Could not determine path for previewAnnotation");return path6.includes("node_modules")?transformAbsPath(path6):slash(path6)}async function generateIframeScriptCode(options){let{presets}=options,rendererName=await getRendererName(options),configEntries=[...await presets.apply("previewAnnotations",[],options)].filter(Boolean).map(processPreviewAnnotation),filesToImport=(files,name)=>files.map((el,i)=>`import ${name?`* as ${name}_${i} from `:""}'${el}'`).join(`
|
|
5
2
|
`),importArray=(name,length)=>new Array(length).fill(0).map((_,i)=>`${name}_${i}`);return`
|
|
6
3
|
// Ensure that the client API is initialized by the framework before any other iframe code
|
|
7
4
|
// is loaded. That way our client-apis can assume the existence of the API+store
|
|
8
5
|
import { configure } from '${rendererName}';
|
|
9
6
|
|
|
10
7
|
import { logger } from '@storybook/client-logger';
|
|
11
|
-
import * as
|
|
8
|
+
import * as previewApi from "@storybook/preview-api";
|
|
12
9
|
${filesToImport(configEntries,"config")}
|
|
13
10
|
|
|
14
11
|
import * as preview from '${virtualPreviewFile}';
|
|
@@ -163,4 +160,4 @@ var __require=(x=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(x,{get:(
|
|
|
163
160
|
addons.setServerChannel(serverChannel);
|
|
164
161
|
window.__STORYBOOK_SERVER_CHANNEL__ = serverChannel;
|
|
165
162
|
}
|
|
166
|
-
`.trim()}function codeGeneratorPlugin(options){let iframePath=__require.resolve("@storybook/builder-vite/input/iframe.html"),iframeId;return{name:"storybook:code-generator-plugin",enforce:"pre",configureServer(server2){server2.watcher.on("change",()=>{let appModule=server2.moduleGraph.getModuleById(virtualFileId);appModule&&server2.moduleGraph.invalidateModule(appModule);let storiesModule=server2.moduleGraph.getModuleById(virtualStoriesFile);storiesModule&&server2.moduleGraph.invalidateModule(storiesModule)}),server2.watcher.on("add",path6=>{(/\.stories\.([tj])sx?$/.test(path6)||/\.(story|stories).mdx$/.test(path6))&&server2.watcher.emit("change",virtualStoriesFile)})},config(config,{command}){command==="build"&&(config.build||(config.build={}),config.build.rollupOptions={...config.build.rollupOptions,input:iframePath});try{__require.resolve("react-dom/client",{paths:[config.root||process.cwd()]})}catch(e){isNodeError(e)&&e.code==="MODULE_NOT_FOUND"&&(config.resolve=mergeConfig(config.resolve??{},{alias:{"react-dom/client":__require.resolve("@storybook/builder-vite/input/react-dom-client-placeholder.js")}}))}},configResolved(config){iframeId=`${config.root}/iframe.html`},resolveId(source){if(source===virtualFileId)return virtualFileId;if(source===iframePath)return iframeId;if(source===virtualStoriesFile)return virtualStoriesFile;if(source===virtualPreviewFile)return virtualPreviewFile;if(source===virtualAddonSetupFile)return virtualAddonSetupFile},async load(id){let storyStoreV7=options.features?.storyStoreV7;if(id===virtualStoriesFile)return storyStoreV7?generateImportFnScriptCode(options):generateVirtualStoryEntryCode(options);if(id===virtualAddonSetupFile)return generateAddonSetupCode();if(id===virtualPreviewFile&&!storyStoreV7)return generatePreviewEntryCode(options);if(id===virtualFileId)return storyStoreV7?generateModernIframeScriptCode(options):generateIframeScriptCode(options);if(id===iframeId)return fs.readFileSync(__require.resolve("@storybook/builder-vite/input/iframe.html"),"utf-8")},async transformIndexHtml(html,ctx){if(ctx.path==="/iframe.html")return transformIframeHtml(html,options)}}}var isNodeError=error=>error instanceof Error;import{vite}from"@storybook/csf-plugin";async function csfPlugin(config){let{presets}=config,docsOptions=(await presets.apply("addons",[])).find(a=>[a,a.name].includes("@storybook/addon-docs"))?.options??{};return vite(docsOptions?.csfPluginOptions)}var configEnvServe={mode:"development",command:"serve",ssrBuild:!1},configEnvBuild={mode:"production",command:"build",ssrBuild:!1};async function commonConfig(options,_type){let configEnv=_type==="development"?configEnvServe:configEnvBuild,{config:{build:buildProperty=void 0,...userConfig}={}}=await loadConfigFromFile(configEnv)??{},sbConfig={configFile:!1,cacheDir:"node_modules/.cache/.vite-storybook",root:path4.resolve(options.configDir,".."),base:"./",plugins:await pluginConfig(options),resolve:{preserveSymlinks:isPreservingSymlinks(),alias:{assert:__require.resolve("browser-assert")}},envPrefix:userConfig.envPrefix?"STORYBOOK_":["VITE_","STORYBOOK_"]};return mergeConfig2(userConfig,sbConfig)}async function pluginConfig(options){let frameworkName=await getFrameworkName2(options),plugins=[codeGeneratorPlugin(options),await csfPlugin(options),mdxPlugin(options),injectExportOrderPlugin,stripStoryHMRBoundary(),{name:"storybook:allow-storybook-dir",enforce:"post",config(config){config?.server?.fs?.allow&&config.server.fs.allow.push(".storybook")}},externalGlobals(globals)];if(frameworkName==="@storybook/preact-vite"&&plugins.push(__require("@preact/preset-vite").default()),frameworkName==="@storybook/glimmerx-vite"){let plugin=__require("vite-plugin-glimmerx/index.cjs");plugins.push(plugin.default())}return plugins}import*as path5 from"path";import{normalizePath as normalizePath4,resolveConfig}from"vite";var INCLUDE_CANDIDATES=["@base2/pretty-print-object","@emotion/core","@emotion/is-prop-valid","@emotion/styled","@mdx-js/react","@storybook/addon-docs > acorn-jsx","@storybook/addon-docs","@storybook/channel-postmessage","@storybook/channel-websocket","@storybook/client-api","@storybook/client-logger","@storybook/core/client","@storybook/preview-api","@storybook/preview-web","@storybook/react > acorn-jsx","@storybook/react","@storybook/svelte","@storybook/types","@storybook/vue3","acorn-jsx","acorn-walk","acorn","airbnb-js-shims","ansi-to-html","axe-core","color-convert","deep-object-diff","doctrine","emotion-theming","escodegen","estraverse","fast-deep-equal","global","html-tags","isobject","jest-mock","loader-utils","lodash/cloneDeep","lodash/isFunction","lodash/isPlainObject","lodash/isString","lodash/mapKeys","lodash/mapValues","lodash/pick","lodash/pickBy","lodash/startCase","lodash/throttle","lodash/uniq","markdown-to-jsx","memoizerific","overlayscrollbars","polished","prettier/parser-babel","prettier/parser-flow","prettier/parser-typescript","prop-types","qs","react-dom","react-dom/client","react-fast-compare","react-is","react-textarea-autosize","react","react/jsx-runtime","refractor/core","refractor/lang/bash.js","refractor/lang/css.js","refractor/lang/graphql.js","refractor/lang/js-extras.js","refractor/lang/json.js","refractor/lang/jsx.js","refractor/lang/markdown.js","refractor/lang/markup.js","refractor/lang/tsx.js","refractor/lang/typescript.js","refractor/lang/yaml.js","regenerator-runtime/runtime.js","slash","store2","synchronous-promise","telejson","ts-dedent","unfetch","util-deprecate","uuid-browser/v4","vue","warning"],asyncFilter=async(arr,predicate)=>Promise.all(arr.map(predicate)).then(results=>arr.filter((_v,index)=>results[index]));async function getOptimizeDeps(config,options){let{root=process.cwd()}=config,stories=(await listStories(options)).map(storyPath=>normalizePath4(path5.relative(root,storyPath))),resolve3=(await resolveConfig(config,"serve","development")).createResolver({asSrc:!1}),include2=await asyncFilter(INCLUDE_CANDIDATES,async id=>Boolean(await resolve3(id)));return{entries:stories,include:include2}}import{stringifyEnvs}from"@storybook/core-common";var allowedEnvVariables=["STORYBOOK","BASE_URL","MODE","DEV","PROD","SSR"];function stringifyProcessEnvs(raw,envPrefix){let updatedRaw={},envs=Object.entries(raw).reduce((acc,[key,value])=>((allowedEnvVariables.includes(key)||Array.isArray(envPrefix)&&!!envPrefix.find(prefix=>key.startsWith(prefix))||typeof envPrefix=="string"&&key.startsWith(envPrefix))&&(acc[`import.meta.env.${key}`]=JSON.stringify(value),updatedRaw[key]=value),acc),{});return envs["import.meta.env"]=JSON.stringify(stringifyEnvs(updatedRaw)),envs}async function sanitizeEnvVars(options,config){let{presets}=options,envsRaw=await presets.apply("env"),{define}=config;if(Object.keys(envsRaw).length){let envs=stringifyProcessEnvs(envsRaw,config.envPrefix);define={...define,...envs}}return{...config,define}}async function createViteServer(options,devServer){let{presets}=options,commonCfg=await commonConfig(options,"development"),config={...commonCfg,server:{middlewareMode:!0,hmr:{port:options.port,server:devServer},fs:{strict:!0}},appType:"custom",optimizeDeps:await getOptimizeDeps(commonCfg,options)},finalConfig=await presets.apply("viteFinal",config,options);return createServer(await sanitizeEnvVars(options,finalConfig))}import{build as viteBuild,mergeConfig as mergeConfig3}from"vite";async function build(options){let{presets}=options,config=await commonConfig(options,"build");config.build=mergeConfig3(config,{build:{outDir:options.outputDir,emptyOutDir:!1,sourcemap:!0,rollupOptions:{external:["/sb-preview/runtime.mjs"]}}}).build;let finalConfig=await presets.apply("viteFinal",config,options);await viteBuild(await sanitizeEnvVars(options,finalConfig))}var withoutVitePlugins=async(plugins=[],namesToRemove)=>{let result=[],resolvedPlugins=await Promise.all(plugins);for(let plugin of resolvedPlugins)Array.isArray(plugin)&&result.push(await withoutVitePlugins(plugin,namesToRemove)),plugin&&"name"in plugin&&!namesToRemove.includes(plugin.name)&&result.push(plugin);return result};function checkName(plugin,names){return plugin!==null&&typeof plugin=="object"&&"name"in plugin&&names.includes(plugin.name)}async function hasVitePlugins(plugins,names){let resolvedPlugins=await Promise.all(plugins);for(let plugin of resolvedPlugins)if(Array.isArray(plugin)&&Boolean(await hasVitePlugins(plugin,names))||checkName(plugin,names))return!0;return!1}function iframeMiddleware(options,server2){return async(req,res,next)=>{if(!req.url.match(/^\/iframe\.html($|\?)/)){next();return}if(req.query["html-proxy"]!==void 0){next();return}let indexHtml=await fs2.readFile(__require.resolve("@storybook/builder-vite/input/iframe.html"),"utf-8"),generated=await transformIframeHtml(indexHtml,options),transformed=await server2.transformIndexHtml("/iframe.html",generated);res.setHeader("Content-Type","text/html"),res.status(200).send(transformed)}}var server;async function bail(e){try{return await server.close()}catch{console.warn("unable to close vite server")}throw e}var start=async({startTime,options,router,server:devServer})=>{server=await createViteServer(options,devServer);let previewResolvedDir=dirname(__require.resolve("@storybook/preview/package.json")),previewDirOrigin=join2(previewResolvedDir,"dist");return router.use("/sb-preview",express.static(previewDirOrigin,{immutable:!0,maxAge:"5m"})),router.use(iframeMiddleware(options,server)),router.use(server.middlewares),{bail,stats:{toJson:()=>null},totalTime:process.hrtime(startTime)}},build2=async({options})=>{let viteCompilation=build(options),previewResolvedDir=dirname(__require.resolve("@storybook/preview/package.json")),previewDirOrigin=join2(previewResolvedDir,"dist"),previewDirTarget=join2(options.outputDir||"","sb-preview"),previewFiles=fs2.copy(previewDirOrigin,previewDirTarget,{filter:src=>{let{ext}=parse2(src);return ext?ext===".mjs":!0}}),[out]=await Promise.all([viteCompilation,previewFiles]);return out};export{bail,build2 as build,hasVitePlugins,start,withoutVitePlugins};
|
|
163
|
+
`.trim()}function codeGeneratorPlugin(options){let iframePath=__require.resolve("@storybook/builder-vite/input/iframe.html"),iframeId;return{name:"storybook:code-generator-plugin",enforce:"pre",configureServer(server2){server2.watcher.on("change",()=>{let appModule=server2.moduleGraph.getModuleById(virtualFileId);appModule&&server2.moduleGraph.invalidateModule(appModule);let storiesModule=server2.moduleGraph.getModuleById(virtualStoriesFile);storiesModule&&server2.moduleGraph.invalidateModule(storiesModule)}),server2.watcher.on("add",path6=>{(/\.stories\.([tj])sx?$/.test(path6)||/\.(story|stories).mdx$/.test(path6))&&server2.watcher.emit("change",virtualStoriesFile)})},config(config,{command}){command==="build"&&(config.build||(config.build={}),config.build.rollupOptions={...config.build.rollupOptions,input:iframePath});try{__require.resolve("react-dom/client",{paths:[config.root||process.cwd()]})}catch(e){isNodeError(e)&&e.code==="MODULE_NOT_FOUND"&&(config.resolve=mergeConfig(config.resolve??{},{alias:{"react-dom/client":__require.resolve("@storybook/builder-vite/input/react-dom-client-placeholder.js")}}))}},configResolved(config){iframeId=`${config.root}/iframe.html`},resolveId(source){if(source===virtualFileId)return virtualFileId;if(source===iframePath)return iframeId;if(source===virtualStoriesFile)return virtualStoriesFile;if(source===virtualPreviewFile)return virtualPreviewFile;if(source===virtualAddonSetupFile)return virtualAddonSetupFile},async load(id){let storyStoreV7=options.features?.storyStoreV7;if(id===virtualStoriesFile)return storyStoreV7?generateImportFnScriptCode(options):generateVirtualStoryEntryCode(options);if(id===virtualAddonSetupFile)return generateAddonSetupCode();if(id===virtualPreviewFile&&!storyStoreV7)return generatePreviewEntryCode(options);if(id===virtualFileId)return storyStoreV7?generateModernIframeScriptCode(options):generateIframeScriptCode(options);if(id===iframeId)return fs.readFileSync(__require.resolve("@storybook/builder-vite/input/iframe.html"),"utf-8")},async transformIndexHtml(html,ctx){if(ctx.path==="/iframe.html")return transformIframeHtml(html,options)}}}var isNodeError=error=>error instanceof Error;import{vite}from"@storybook/csf-plugin";async function csfPlugin(config){let{presets}=config,docsOptions=(await presets.apply("addons",[])).find(a=>[a,a.name].includes("@storybook/addon-docs"))?.options??{};return vite(docsOptions?.csfPluginOptions)}var configEnvServe={mode:"development",command:"serve",ssrBuild:!1},configEnvBuild={mode:"production",command:"build",ssrBuild:!1};async function commonConfig(options,_type){let configEnv=_type==="development"?configEnvServe:configEnvBuild,{config:{build:buildProperty=void 0,...userConfig}={}}=await loadConfigFromFile(configEnv)??{},sbConfig={configFile:!1,cacheDir:"node_modules/.cache/.vite-storybook",root:path4.resolve(options.configDir,".."),base:"./",plugins:await pluginConfig(options),resolve:{preserveSymlinks:isPreservingSymlinks(),alias:{assert:__require.resolve("browser-assert")}},envPrefix:userConfig.envPrefix?"STORYBOOK_":["VITE_","STORYBOOK_"]};return mergeConfig2(userConfig,sbConfig)}async function pluginConfig(options){let frameworkName=await getFrameworkName2(options),plugins=[codeGeneratorPlugin(options),await csfPlugin(options),mdxPlugin(options),injectExportOrderPlugin,stripStoryHMRBoundary(),{name:"storybook:allow-storybook-dir",enforce:"post",config(config){config?.server?.fs?.allow&&config.server.fs.allow.push(".storybook")}},externalGlobals(globals)];if(frameworkName==="@storybook/preact-vite"&&plugins.push(__require("@preact/preset-vite").default()),frameworkName==="@storybook/glimmerx-vite"){let plugin=__require("vite-plugin-glimmerx/index.cjs");plugins.push(plugin.default())}return plugins}import*as path5 from"path";import{normalizePath as normalizePath4,resolveConfig}from"vite";var INCLUDE_CANDIDATES=["@base2/pretty-print-object","@emotion/core","@emotion/is-prop-valid","@emotion/styled","@mdx-js/react","@storybook/addon-docs > acorn-jsx","@storybook/addon-docs","@storybook/channel-postmessage","@storybook/channel-websocket","@storybook/client-api","@storybook/client-logger","@storybook/core/client","@storybook/preview-api","@storybook/preview-web","@storybook/react > acorn-jsx","@storybook/react","@storybook/svelte","@storybook/types","@storybook/vue3","acorn-jsx","acorn-walk","acorn","airbnb-js-shims","ansi-to-html","axe-core","color-convert","deep-object-diff","doctrine","emotion-theming","escodegen","estraverse","fast-deep-equal","global","html-tags","isobject","jest-mock","loader-utils","lodash/cloneDeep","lodash/isFunction","lodash/isPlainObject","lodash/isString","lodash/mapKeys","lodash/mapValues","lodash/pick","lodash/pickBy","lodash/startCase","lodash/throttle","lodash/uniq","markdown-to-jsx","memoizerific","overlayscrollbars","polished","prettier/parser-babel","prettier/parser-flow","prettier/parser-typescript","prop-types","qs","react-dom","react-dom/client","react-fast-compare","react-is","react-textarea-autosize","react","react/jsx-runtime","refractor/core","refractor/lang/bash.js","refractor/lang/css.js","refractor/lang/graphql.js","refractor/lang/js-extras.js","refractor/lang/json.js","refractor/lang/jsx.js","refractor/lang/markdown.js","refractor/lang/markup.js","refractor/lang/tsx.js","refractor/lang/typescript.js","refractor/lang/yaml.js","regenerator-runtime/runtime.js","slash","store2","synchronous-promise","telejson","ts-dedent","unfetch","util-deprecate","uuid-browser/v4","vue","warning"],asyncFilter=async(arr,predicate)=>Promise.all(arr.map(predicate)).then(results=>arr.filter((_v,index)=>results[index]));async function getOptimizeDeps(config,options){let{root=process.cwd()}=config,stories=(await listStories(options)).map(storyPath=>normalizePath4(path5.relative(root,storyPath))),resolve3=(await resolveConfig(config,"serve","development")).createResolver({asSrc:!1}),include2=await asyncFilter(INCLUDE_CANDIDATES,async id=>Boolean(await resolve3(id)));return{entries:stories,include:include2}}import{stringifyEnvs}from"@storybook/core-common";var allowedEnvVariables=["STORYBOOK","BASE_URL","MODE","DEV","PROD","SSR"];function stringifyProcessEnvs(raw,envPrefix){let updatedRaw={},envs=Object.entries(raw).reduce((acc,[key,value])=>((allowedEnvVariables.includes(key)||Array.isArray(envPrefix)&&!!envPrefix.find(prefix=>key.startsWith(prefix))||typeof envPrefix=="string"&&key.startsWith(envPrefix))&&(acc[`import.meta.env.${key}`]=JSON.stringify(value),updatedRaw[key]=value),acc),{});return envs["import.meta.env"]=JSON.stringify(stringifyEnvs(updatedRaw)),envs}async function sanitizeEnvVars(options,config){let{presets}=options,envsRaw=await presets.apply("env"),{define}=config;if(Object.keys(envsRaw).length){let envs=stringifyProcessEnvs(envsRaw,config.envPrefix);define={...define,...envs}}return{...config,define}}async function createViteServer(options,devServer){let{presets}=options,commonCfg=await commonConfig(options,"development"),config={...commonCfg,server:{middlewareMode:!0,hmr:{port:options.port,server:devServer},fs:{strict:!0}},appType:"custom",optimizeDeps:await getOptimizeDeps(commonCfg,options)},finalConfig=await presets.apply("viteFinal",config,options);return createServer(await sanitizeEnvVars(options,finalConfig))}import{build as viteBuild,mergeConfig as mergeConfig3}from"vite";async function build(options){let{presets}=options,config=await commonConfig(options,"build");config.build=mergeConfig3(config,{build:{outDir:options.outputDir,emptyOutDir:!1,sourcemap:!0,rollupOptions:{external:["./sb-preview/runtime.mjs"]}}}).build;let finalConfig=await presets.apply("viteFinal",config,options);await viteBuild(await sanitizeEnvVars(options,finalConfig))}var withoutVitePlugins=async(plugins=[],namesToRemove)=>{let result=[],resolvedPlugins=await Promise.all(plugins);for(let plugin of resolvedPlugins)Array.isArray(plugin)&&result.push(await withoutVitePlugins(plugin,namesToRemove)),plugin&&"name"in plugin&&!namesToRemove.includes(plugin.name)&&result.push(plugin);return result};function checkName(plugin,names){return plugin!==null&&typeof plugin=="object"&&"name"in plugin&&names.includes(plugin.name)}async function hasVitePlugins(plugins,names){let resolvedPlugins=await Promise.all(plugins);for(let plugin of resolvedPlugins)if(Array.isArray(plugin)&&Boolean(await hasVitePlugins(plugin,names))||checkName(plugin,names))return!0;return!1}function iframeMiddleware(options,server2){return async(req,res,next)=>{if(!req.url.match(/^\/iframe\.html($|\?)/)){next();return}if(req.query["html-proxy"]!==void 0){next();return}let indexHtml=await fs2.readFile(__require.resolve("@storybook/builder-vite/input/iframe.html"),"utf-8"),generated=await transformIframeHtml(indexHtml,options),transformed=await server2.transformIndexHtml("/iframe.html",generated);res.setHeader("Content-Type","text/html"),res.status(200).send(transformed)}}var server;async function bail(){return server?.close()}var start=async({startTime,options,router,server:devServer})=>{server=await createViteServer(options,devServer);let previewResolvedDir=dirname(__require.resolve("@storybook/preview/package.json")),previewDirOrigin=join2(previewResolvedDir,"dist");return router.use("/sb-preview",express.static(previewDirOrigin,{immutable:!0,maxAge:"5m"})),router.use(iframeMiddleware(options,server)),router.use(server.middlewares),{bail,stats:{toJson:()=>null},totalTime:process.hrtime(startTime)}},build2=async({options})=>{let viteCompilation=build(options),previewResolvedDir=dirname(__require.resolve("@storybook/preview/package.json")),previewDirOrigin=join2(previewResolvedDir,"dist"),previewDirTarget=join2(options.outputDir||"","sb-preview"),previewFiles=fs2.copy(previewDirOrigin,previewDirTarget,{filter:src=>{let{ext}=parse2(src);return ext?ext===".mjs":!0}}),[out]=await Promise.all([viteCompilation,previewFiles]);return out};export{bail,build2 as build,hasVitePlugins,start,withoutVitePlugins};
|
package/input/iframe.html
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
<!-- [BODY HTML SNIPPET HERE] -->
|
|
26
26
|
<div id="storybook-root"></div>
|
|
27
27
|
<div id="storybook-docs"></div>
|
|
28
|
-
<script type="module" src="
|
|
28
|
+
<script type="module" src="./sb-preview/runtime.mjs"></script>
|
|
29
29
|
<script type="module" src="/virtual:/@storybook/builder-vite/vite-app.js"></script>
|
|
30
30
|
</body>
|
|
31
31
|
</html>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storybook/builder-vite",
|
|
3
|
-
"version": "7.0.0-beta.
|
|
3
|
+
"version": "7.0.0-beta.7",
|
|
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,15 +42,14 @@
|
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@joshwooding/vite-plugin-react-docgen-typescript": "0.0.5",
|
|
45
|
-
"@storybook/client-logger": "7.0.0-beta.
|
|
46
|
-
"@storybook/core-common": "7.0.0-beta.
|
|
47
|
-
"@storybook/csf-plugin": "7.0.0-beta.
|
|
45
|
+
"@storybook/client-logger": "7.0.0-beta.7",
|
|
46
|
+
"@storybook/core-common": "7.0.0-beta.7",
|
|
47
|
+
"@storybook/csf-plugin": "7.0.0-beta.7",
|
|
48
48
|
"@storybook/mdx2-csf": "next",
|
|
49
|
-
"@storybook/node-logger": "7.0.0-beta.
|
|
50
|
-
"@storybook/preview": "7.0.0-beta.
|
|
51
|
-
"@storybook/preview-api": "7.0.0-beta.
|
|
52
|
-
"@storybook/types": "7.0.0-beta.
|
|
53
|
-
"@vitejs/plugin-react": "^2.0.0",
|
|
49
|
+
"@storybook/node-logger": "7.0.0-beta.7",
|
|
50
|
+
"@storybook/preview": "7.0.0-beta.7",
|
|
51
|
+
"@storybook/preview-api": "7.0.0-beta.7",
|
|
52
|
+
"@storybook/types": "7.0.0-beta.7",
|
|
54
53
|
"browser-assert": "^1.2.1",
|
|
55
54
|
"es-module-lexer": "^0.9.3",
|
|
56
55
|
"express": "^4.17.3",
|
|
@@ -71,12 +70,16 @@
|
|
|
71
70
|
},
|
|
72
71
|
"peerDependencies": {
|
|
73
72
|
"@preact/preset-vite": "*",
|
|
73
|
+
"typescript": ">= 4.3.x",
|
|
74
74
|
"vite-plugin-glimmerx": "*"
|
|
75
75
|
},
|
|
76
76
|
"peerDependenciesMeta": {
|
|
77
77
|
"@preact/preset-vite": {
|
|
78
78
|
"optional": true
|
|
79
79
|
},
|
|
80
|
+
"typescript": {
|
|
81
|
+
"optional": true
|
|
82
|
+
},
|
|
80
83
|
"vite-plugin-glimmerx": {
|
|
81
84
|
"optional": true
|
|
82
85
|
}
|
|
@@ -90,5 +93,5 @@
|
|
|
90
93
|
],
|
|
91
94
|
"platform": "node"
|
|
92
95
|
},
|
|
93
|
-
"gitHead": "
|
|
96
|
+
"gitHead": "e16a8c685e22121683ac00b1bc53dbf5aa587f88"
|
|
94
97
|
}
|