@lomray/vite-ssr-boost 8.4.0 → 8.4.1-beta.2
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/adapters/express/prepare-server.d.ts +4 -0
- package/adapters/express/prepare-server.js +1 -1
- package/adapters/express/prepare-server.js.map +1 -1
- package/adapters/express/render.js +1 -1
- package/adapters/express/render.js.map +1 -1
- package/adapters/express/route-assets.d.ts +8 -0
- package/adapters/express/route-assets.js +2 -0
- package/adapters/express/route-assets.js.map +1 -0
- package/adapters/express/server.js +1 -1
- package/adapters/express/server.js.map +1 -1
- package/adapters/express/static-files.d.ts +7 -0
- package/adapters/express/static-files.js +2 -0
- package/adapters/express/static-files.js.map +1 -0
- package/cli/commands.d.ts +1 -0
- package/cli/commands.js +2 -0
- package/cli/commands.js.map +1 -0
- package/cli/helpers/enable-shortcuts.d.ts +5 -0
- package/cli/helpers/enable-shortcuts.js +2 -0
- package/cli/helpers/enable-shortcuts.js.map +1 -0
- package/cli/run-prod.js +1 -1
- package/cli/run-prod.js.map +1 -1
- package/cli/start.d.ts +10 -0
- package/cli/start.js +2 -0
- package/cli/start.js.map +1 -0
- package/cli.js +1 -1
- package/cli.js.map +1 -1
- package/core/compose-html.d.ts +1 -1
- package/core/compose-html.js +1 -1
- package/core/compose-html.js.map +1 -1
- package/core/data-stream.js +1 -1
- package/core/data-stream.js.map +1 -1
- package/core/handler.js +1 -1
- package/core/handler.js.map +1 -1
- package/core/render.js +1 -1
- package/core/render.js.map +1 -1
- package/helpers/print-server-info.js +1 -1
- package/helpers/print-server-info.js.map +1 -1
- package/node/render-to-stream.d.ts +1 -3
- package/node/render-to-stream.js +1 -1
- package/node/render-to-stream.js.map +1 -1
- package/node/write-fetch-response.js +1 -1
- package/node/write-fetch-response.js.map +1 -1
- package/package.json +1 -1
- package/services/build.d.ts +4 -0
- package/services/build.js +1 -1
- package/services/build.js.map +1 -1
- package/services/production-config.d.ts +15 -0
- package/services/production-config.js +2 -0
- package/services/production-config.js.map +1 -0
- package/services/server-config.d.ts +1 -0
- package/services/server-config.js +1 -1
- package/services/server-config.js.map +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"node:fs";import e from"node:path";import r from"node:process";import{pathToFileURL as i}from"node:url";import s from"chalk";import{splitHtmlShell as o}from"../../services/diagnostics.js";import n from"../../services/server-api.js";class a{onServerStarted;config;serverApi;entrypoint;onServerCreated;html;htmlParts;middlewaresConfigs;constructor(t,e){this.config=t,this.serverApi=e??new n}static init(t,e){return new a(t,e)}async loadEntrypoint(t=!0){if(this.entrypoint&&this.config.isProd)return this.entrypoint;const{root:o,isProd:n,serverFile:a}=this.config.getParams(),l=e.resolve(`${o}/${a}`);let c;try{c=n?(await(import(i(l).toString()))).default:(await this.config.getVite().ssrLoadModule(l,{fixStacktrace:!0})).default}catch(t){if(t instanceof Error&&t.message.includes("Cannot find module")&&t.message.includes("/build/"))return this.config.getLogger().error(s.red(`Before starting the server, you need to create a build: ${s.yellow("ssr-boost build")} or provide path to build dir: ${s.yellow("ssr-boost start --build-dir build")}`)),r.exit(1);throw t}!t&&c.init&&delete c.init;const{render:d,init:h,routes:g,abortDelay:m,loggerProd:f,loggerDev:p,middlewares:u}=c;this.middlewaresConfigs=u,f&&n?this.config.setLogger(f):p&&!n&&this.config.setLogger(p);const{onServerCreated:v,onServerStarted:w,...y}=await(h?.({config:this.config}))??{};return this.entrypoint={render:d,routes:g,abortDelay:m,...y},this.onServerCreated=v,this.onServerStarted=w,this.entrypoint}async loadHtml(r){if(this.config.isProd&&this.htmlParts)return[...this.htmlParts];const{isProd:i,root:s,indexFile:n,clientFile:a}=this.config.getParams();this.html&&i||(this.html=t.readFileSync(e.resolve(`${s}/${n}`),"utf-8"));let l=this.html;if(!i){const t=e.posix.normalize(`${this.config.getVite()?.config.base}/${a}`);l=(await this.config.getVite().transformIndexHtml(r.originalUrl,this.html,n)).replace(new RegExp(String.raw`<script[^>]*?\bsrc=["']/?${t}([^"']*)["'][^>]*?\sasync\b`,"g"),t=>t.replace(/\sasync\b/,""))}const c=o(l,e.resolve(`${s}/${n}`));return i&&(this.htmlParts=c),[...c]}async onAppCreated(){return await this.loadEntrypoint(),await(this.onServerCreated?.(this.config.getApp(),this.serverApi)),this}getMiddlewaresConfig(){const{compression:t,expressStatic:e}=this.middlewaresConfigs??{};return{compression:!1!==t&&{...t},expressStatic:!1!==e&&{...e,basename:e?.basename??new URL(this.config.getParams().base??"/","http://localhost").pathname}}}}export{a as default};
|
|
2
2
|
//# sourceMappingURL=prepare-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-server.js","sources":["../../../src/adapters/express/prepare-server.ts"],"sourcesContent":[null],"names":["PrepareServer","onServerStarted","config","serverApi","entrypoint","onServerCreated","html","middlewaresConfigs","constructor","this","ServerApi","init","loadEntrypoint","shouldInit","isProd","root","serverFile","getParams","entrypointPath","path","resolve","resolvedEntrypoint","pathToFileURL","toString","default","getVite","ssrLoadModule","fixStacktrace","e","Error","message","includes","getLogger","error","chalk","red","yellow","process","exit","render","routes","abortDelay","loggerProd","loggerDev","middlewares","setLogger","renderParams","loadHtml","req","indexFile","clientFile","fs","readFileSync","modifiedHtml","clientFileEntry","posix","normalize","base","transformIndexHtml","originalUrl","replace","RegExp","String","raw","match","splitHtmlShell","onAppCreated","getApp","getMiddlewaresConfig","compression","expressStatic","basename"],"mappings":"qPA0BA,MAAMA,EAIGC,gBAKYC,OAKAC,UAKTC,WAKAC,gBAKAC,KAKAC,mBAKV,WAAAC,
|
|
1
|
+
{"version":3,"file":"prepare-server.js","sources":["../../../src/adapters/express/prepare-server.ts"],"sourcesContent":[null],"names":["PrepareServer","onServerStarted","config","serverApi","entrypoint","onServerCreated","html","htmlParts","middlewaresConfigs","constructor","this","ServerApi","init","loadEntrypoint","shouldInit","isProd","root","serverFile","getParams","entrypointPath","path","resolve","resolvedEntrypoint","pathToFileURL","toString","default","getVite","ssrLoadModule","fixStacktrace","e","Error","message","includes","getLogger","error","chalk","red","yellow","process","exit","render","routes","abortDelay","loggerProd","loggerDev","middlewares","setLogger","renderParams","loadHtml","req","indexFile","clientFile","fs","readFileSync","modifiedHtml","clientFileEntry","posix","normalize","base","transformIndexHtml","originalUrl","replace","RegExp","String","raw","match","parts","splitHtmlShell","onAppCreated","getApp","getMiddlewaresConfig","compression","expressStatic","basename","URL","pathname"],"mappings":"qPA0BA,MAAMA,EAIGC,gBAKYC,OAKAC,UAKTC,WAKAC,gBAKAC,KAKAC,UAKAC,mBAKV,WAAAC,CAAsBP,EAAsBC,GAC1CO,KAAKR,OAASA,EACdQ,KAAKP,UAAYA,GAAa,IAAIQ,CACpC,CAKO,WAAOC,CAAKV,EAAsBC,GACvC,OAAO,IAAIH,EAAcE,EAAQC,EACnC,CAKO,oBAAMU,CAAeC,GAAa,GAIvC,GAAIJ,KAAKN,YAAcM,KAAKR,OAAOa,OACjC,OAAOL,KAAKN,WAGd,MAAMY,KAAEA,EAAID,OAAEA,EAAME,WAAEA,GAAeP,KAAKR,OAAOgB,YAC3CC,EAAiBC,EAAKC,QAAQ,GAAGL,KAAQC,KAE/C,IAAIK,EAEJ,IAQIA,EAPGP,gBAQaQ,EAAcJ,GAAgBK,cAC5CC,eAPMf,KAAKR,OAAOwB,UAAWC,cAAcR,EAAgB,CACzDS,eAAe,KAEjBH,OAMN,CAAE,MAAOI,GACP,GACEA,aAAaC,OACbD,EAAEE,QAAQC,SAAS,uBACnBH,EAAEE,QAAQC,SAAS,WAcnB,OAZAtB,KAAKR,OACF+B,YACAC,MACCC,EAAMC,IACJ,2DAA2DD,EAAME,OAC/D,oDACiCF,EAAME,OACvC,yCAKDC,EAAQC,KAAK,GAGtB,MAAMV,CACR,EAEKf,GAAcQ,EAAmBV,aAC7BU,EAAmBV,KAG5B,MAAM4B,OAAEA,EAAM5B,KAAEA,EAAI6B,OAAEA,EAAMC,WAAEA,EAAUC,WAAEA,EAAUC,UAAEA,EAASC,YAAEA,GAC/DvB,EAEFZ,KAAKF,mBAAqBqC,EAEtBF,GAAc5B,EAChBL,KAAKR,OAAO4C,UAAUH,GACbC,IAAc7B,GACvBL,KAAKR,OAAO4C,UAAUF,GAGxB,MAAMvC,gBAAEA,EAAeJ,gBAAEA,KAAoB8C,SACpCnC,IAAO,CACZV,OAAQQ,KAAKR,WACR,CAAA,EAWT,OATAQ,KAAKN,WAAa,CAChBoC,SACAC,SACAC,gBACGK,GAELrC,KAAKL,gBAAkBA,EACvBK,KAAKT,gBAAkBA,EAEhBS,KAAKN,UACd,CAKO,cAAM4C,CAASC,GACpB,GAAIvC,KAAKR,OAAOa,QAAUL,KAAKH,UAC7B,MAAO,IAAIG,KAAKH,WAGlB,MAAMQ,OAAEA,EAAMC,KAAEA,EAAIkC,UAAEA,EAASC,WAAEA,GAAezC,KAAKR,OAAOgB,YAEvDR,KAAKJ,MAASS,IACjBL,KAAKJ,KAAO8C,EAAGC,aAAajC,EAAKC,QAAQ,GAAGL,KAAQkC,KAAc,UAGpE,IAAII,EAAe5C,KAAKJ,KAExB,IAAKS,EAAQ,CACX,MAAMwC,EAAkBnC,EAAKoC,MAAMC,UACjC,GAAG/C,KAAKR,OAAOwB,WAAWxB,OAAOwD,QAAQP,KAM3CG,SACQ5C,KAAKR,OAAOwB,UAAWiC,mBAAmBV,EAAIW,YAAalD,KAAKJ,KAAM4C,IAC5EW,QACA,IAAIC,OACFC,OAAOC,GAAG,4BAA4BT,+BACtC,KAEDU,GAAUA,EAAMJ,QAAQ,YAAa,IAE1C,CAEA,MAAMK,EAAQC,EAAeb,EAAclC,EAAKC,QAAQ,GAAGL,KAAQkC,MAMnE,OAJInC,IACFL,KAAKH,UAAY2D,GAGZ,IAAIA,EACb,CAKO,kBAAME,GAIX,aAHM1D,KAAKG,uBACLH,KAAKL,kBAAkBK,KAAKR,OAAOmE,SAAoB3D,KAAKP,YAE3DO,IACT,CAKO,oBAAA4D,GACL,MAAMC,YAAEA,EAAWC,cAAEA,GAAkB9D,KAAKF,oBAAsB,CAAA,EAElE,MAAO,CACL+D,aACkB,IAAhBA,GACI,IACKA,GAGXC,eACoB,IAAlBA,GACI,IACKA,EACHC,SACED,GAAeC,UACf,IAAIC,IAAIhE,KAAKR,OAAOgB,YAAYwC,MAAQ,IAAK,oBAAoBiB,UAI/E"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"chalk";import t from"react";import r from"./create-request.js";import s from"../../constants/stream-error.js";import
|
|
1
|
+
import e from"chalk";import t from"react";import r from"./create-request.js";import s from"./route-assets.js";import o from"../../constants/stream-error.js";import n from"../../core/early-hints.js";import{getSetCookieHeaders as a,getHeaderEntries as i}from"../../core/headers.js";import d from"../../core/render.js";import c from"../../node/render-to-stream.js";import p from"../../node/request-signal.js";import l from"../../node/write-early-hints.js";import m,{writeFetchHeaders as h}from"../../node/write-fetch-response.js";import u,{isDiagnosticsEnabled as f}from"../../services/diagnostics.js";const y=(e,t,s)=>{const o={signal:t};return s&&"GET"!==e.method&&"HEAD"!==e.method&&(o.body=s(e)??null),r(e,o)},g=(e,t,r)=>{if(!t.headersSent&&!t.writableEnded){e.response.status!==r.status&&t.status(e.response.status??200);const s=new Set([...r.headers.keys(),...e.response.headers.keys()]);for(const o of s)e.response.headers.get(o)!==r.headers.get(o)&&(e.response.headers.has(o)?t.setHeader(o,"set-cookie"===o?a(e.response.headers):e.response.headers.get(o)):t.removeHeader(o))}const s=new Headers(e.response.headers);s.delete("Set-Cookie");for(const[e,r]of Object.entries(t.getHeaders()))if("set-cookie"!==e.toLowerCase()&&void 0!==r)if(Array.isArray(r))for(const t of r)s.append(e,t);else s.set(e,"number"==typeof r?String(r):r);e.response.headers=s,e.response.status=t.statusCode};async function S({App:r,handler:S,policy:x,spaShell:w},E,b,{onRouterReady:v,onShellReady:C,onResponse:j,onShellError:H,onError:R,getBody:q,getState:k,hydration:P,nonce:A,bootstrapScriptContent:L,documentHeaders:D,sessionCookie:O,protectPrivate:T,abortDelay:B=15e3}){const{appProps:G,html:U,req:$,res:z}=b,F=E.getLogger(),I=p($,z);try{const p=Object.assign(b,{request:y($,I.signal,q),response:{headers:new Headers}}),J={appProps:G,diagnostics:f(!E.isProd)?new u(new URL(p.request.url).pathname,F):void 0,html:U,request:p.request,response:p.response};if(!E.isProd&&J.diagnostics){const{diagnostics:e}=J;for(const t of["req","res"]){let r=p[t];Object.defineProperty(p,t,{configurable:!0,enumerable:!0,get:()=>(e.deprecatedReqRes(),r),set:e=>{r=e}})}}const{response:K}=J;g(J,z,{headers:new Headers(K.headers),status:K.status}),200===K.status&&(K.status=void 0);const M=e=>(p.request=e.request,p.response=e.response,p.didError=e.didError,p.html=e.html,p.isStream=e.isStream,p.isSpa=e.isSpa,p.matches=e.matches,p.routerContext=e.routerContext,p.serverContext=e.serverContext,p.timeline=e.timeline,p),N=await d({createApp:(e,s)=>t.createElement(r,{server:{...s.appProps,req:$}},e),handler:S,policy:x,spaShell:w,renderToStream:c},J,{abortDelay:B,hydration:P,nonce:A,bootstrapScriptContent:L,documentHeaders:D,sessionCookie:O,protectPrivate:T,getState:k?({context:e})=>k({context:M(e)}):void 0,onError:({context:t,error:r})=>{const{code:s,message:n}=r;if(R?.({context:M(t),error:r}),F.info(e.red(`Stream error. Code: ${s}`)),[o.RenderAborted,o.RenderTimeout,o.RenderCancel].includes(s))return void F.info(e.dim(n));const{original:a}=r;F.error(a)},onResponse:j?({context:e,html:t,isEnd:r})=>j({context:M(e),html:t,isEnd:r}):void 0,onRouterReady:v?({context:e})=>v({context:M(e)}):void 0,onShellError:H?({context:e,error:t})=>H({context:M(e),error:t}):void 0,onShellReady:({context:e})=>{const t=M(e);((e,t)=>{if(t.headersSent||t.writableEnded)return;t.status(e.response.status??200),i(e.response.headers).forEach(([e,r])=>t.setHeader(e,r));const r=a(e.response.headers);r.length&&t.setHeader("Set-Cookie",r)})(e,z);const r={headers:new Headers(e.response.headers),status:e.response.status},s=C?.({context:t});return g(e,z,r),s??{}},prepare:async({context:e,executionContext:t})=>{const r=M(e),{matches:o,isSpa:a}=e,i=(await s(E,o,a)).injectAssets(r,Boolean(r.hasEarlyHints));r.hasEarlyHints&&await n(t,i)},routerRequestContext:p},{onEarlyHints:e=>l(z,e)});M(J),await(async(e,t)=>{const r=t.headers.get("Location");if(r&&t.status>=300&&t.status<400&&!e.headersSent&&!e.writableEnded&&!e.destroyed)return h(e,t),await(t.body?.cancel()),void e.redirect(t.status,r);await m(e,t)})(z,N)}finally{I.dispose()}}export{S as default};
|
|
2
2
|
//# sourceMappingURL=render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sources":["../../../src/adapters/express/render.tsx"],"sourcesContent":[null],"names":["createRenderRequest","req","signal","getBody","options","method","body","createFetchRequest","syncResponse","context","res","previous","headersSent","writableEnded","response","status","names","Set","headers","keys","name","get","has","setHeader","getSetCookieHeaders","removeHeader","Headers","delete","value","Object","entries","getHeaders","toLowerCase","undefined","Array","isArray","item","append","set","String","statusCode","async","render","App","handler","policy","spaShell","config","initialContext","onRouterReady","onShellReady","onResponse","onShellError","onError","getState","hydration","nonce","bootstrapScriptContent","documentHeaders","sessionCookie","protectPrivate","abortDelay","appProps","html","shellHtml","Logger","getLogger","requestSignal","createRequestSignal","assign","request","coreContext","diagnostics","isDiagnosticsEnabled","isProd","Diagnostics","URL","url","pathname","defineProperty","configurable","enumerable","deprecatedReqRes","next","initialResponse","syncContext","updated","didError","isStream","isSpa","matches","routerContext","serverContext","timeline","coreRender","createApp","children","React","createElement","server","renderToStream","error","code","message","info","chalk","red","StreamError","RenderAborted","RenderTimeout","RenderCancel","includes","dim","original","isEnd","legacyContext","getHeaderEntries","forEach","cookies","length","prepareResponse","shell","prepare","executionContext","
|
|
1
|
+
{"version":3,"file":"render.js","sources":["../../../src/adapters/express/render.tsx"],"sourcesContent":[null],"names":["createRenderRequest","req","signal","getBody","options","method","body","createFetchRequest","syncResponse","context","res","previous","headersSent","writableEnded","response","status","names","Set","headers","keys","name","get","has","setHeader","getSetCookieHeaders","removeHeader","Headers","delete","value","Object","entries","getHeaders","toLowerCase","undefined","Array","isArray","item","append","set","String","statusCode","async","render","App","handler","policy","spaShell","config","initialContext","onRouterReady","onShellReady","onResponse","onShellError","onError","getState","hydration","nonce","bootstrapScriptContent","documentHeaders","sessionCookie","protectPrivate","abortDelay","appProps","html","shellHtml","Logger","getLogger","requestSignal","createRequestSignal","assign","request","coreContext","diagnostics","isDiagnosticsEnabled","isProd","Diagnostics","URL","url","pathname","defineProperty","configurable","enumerable","deprecatedReqRes","next","initialResponse","syncContext","updated","didError","isStream","isSpa","matches","routerContext","serverContext","timeline","coreRender","createApp","children","React","createElement","server","renderToStream","error","code","message","info","chalk","red","StreamError","RenderAborted","RenderTimeout","RenderCancel","includes","dim","original","isEnd","legacyContext","getHeaderEntries","forEach","cookies","length","prepareResponse","shell","prepare","executionContext","hints","getRouteAssets","injectAssets","Boolean","hasEarlyHints","emitEarlyHints","routerRequestContext","onEarlyHints","writeEarlyHints","location","destroyed","writeFetchHeaders","cancel","redirect","writeFetchResponse","writeResponse","dispose"],"mappings":"ulBA+FA,MAAMA,EAAsB,CAC1BC,EACAC,EACAC,KAEA,MAAMC,EAA2D,CAAEF,UAMnE,OAJIC,GAA0B,QAAfF,EAAII,QAAmC,SAAfJ,EAAII,SACzCD,EAAQE,KAAOH,EAAQF,IAAQ,MAG1BM,EAAmBN,EAAKG,IAwB3BI,EAAe,CACnBC,EACAC,EACAC,KAIA,IAAKD,EAAIE,cAAgBF,EAAIG,cAAe,CACtCJ,EAAQK,SAASC,SAAWJ,EAASI,QACvCL,EAAIK,OAAON,EAAQK,SAASC,QAAU,KAGxC,MAAMC,EAAQ,IAAIC,IAAI,IAAIN,EAASO,QAAQC,UAAWV,EAAQK,SAASI,QAAQC,SAE/E,IAAK,MAAMC,KAAQJ,EACbP,EAAQK,SAASI,QAAQG,IAAID,KAAUT,EAASO,QAAQG,IAAID,KAI3DX,EAAQK,SAASI,QAAQI,IAAIF,GAGhCV,EAAIa,UACFH,EACS,eAATA,EACII,EAAoBf,EAAQK,SAASI,SACrCT,EAAQK,SAASI,QAAQG,IAAID,IANnCV,EAAIe,aAAaL,GAUvB,CAEA,MAAMF,EAAU,IAAIQ,QAAQjB,EAAQK,SAASI,SAE7CA,EAAQS,OAAO,cAEf,IAAK,MAAOP,EAAMQ,KAAUC,OAAOC,QAAQpB,EAAIqB,cAC7C,GAA2B,eAAvBX,EAAKY,oBAA4CC,IAAVL,EAI3C,GAAIM,MAAMC,QAAQP,GAChB,IAAK,MAAMQ,KAAQR,EACjBV,EAAQmB,OAAOjB,EAAMgB,QAGvBlB,EAAQoB,IAAIlB,EAAuB,iBAAVQ,EAAqBW,OAAOX,GAASA,GAIlEnB,EAAQK,SAASI,QAAUA,EAC3BT,EAAQK,SAASC,OAASL,EAAI8B,YA8BhCC,eAAeC,GACbC,IAAEA,EAAGC,QAAEA,EAAOC,OAAEA,EAAMC,SAAEA,GACxBC,EACAC,GACAC,cACEA,EAAaC,aACbA,EAAYC,WACZA,EAAUC,aACVA,EAAYC,QACZA,EAAOlD,QACPA,EAAOmD,SACPA,EAAQC,UACRA,EAASC,MACTA,EAAKC,uBACLA,EAAsBC,gBACtBA,EAAeC,cACfA,EAAaC,eACbA,EAAcC,WACdA,EAAa,OAGf,MAAMC,SAAEA,EAAUC,KAAMC,EAAS/D,IAAEA,EAAGS,IAAEA,GAAQsC,EAC1CiB,EAASlB,EAAOmB,YAChBC,EAAgBC,EAAoBnE,EAAKS,GAC/C,IACE,MAAMD,EAA2BoB,OAAOwC,OAAOrB,EAAgB,CAC7DsB,QAAStE,EAAoBC,EAAKkE,EAAcjE,OAAQC,GACxDW,SAAU,CAAEI,QAAS,IAAIQ,WAErB6C,EAAkC,CACtCT,WACAU,YAAaC,GAAsB1B,EAAO2B,QACtC,IAAIC,EAAY,IAAIC,IAAInE,EAAQ6D,QAAQO,KAAKC,SAAUb,QACvDhC,EACJ8B,KAAMC,EACNM,QAAS7D,EAAQ6D,QACjBxD,SAAUL,EAAQK,UAKpB,IAAKiC,EAAO2B,QAAUH,EAAYC,YAAa,CAC7C,MAAMA,YAAEA,GAAgBD,EAExB,IAAK,MAAMnD,IAAQ,CAAC,MAAO,OAAiB,CAC1C,IAAIQ,EAAQnB,EAAQW,GAEpBS,OAAOkD,eAAetE,EAASW,EAAM,CACnC4D,cAAc,EACdC,YAAY,EACZ5D,IAAK,KACHmD,EAAYU,mBAELtD,GAETU,IAAM6C,IACJvD,EAAQuD,IAGd,CACF,CAEA,MAAQrE,SAAUsE,GAAoBb,EAEtC/D,EAAa+D,EAAa7D,EAAK,CAC7BQ,QAAS,IAAIQ,QAAQ0D,EAAgBlE,SACrCH,OAAQqE,EAAgBrE,SAGK,MAA3BqE,EAAgBrE,SAClBqE,EAAgBrE,YAASkB,GAM3B,MAAMoD,EAAeC,IACnB7E,EAAQ6D,QAAUgB,EAAQhB,QAC1B7D,EAAQK,SAAWwE,EAAQxE,SAC3BL,EAAQ8E,SAAWD,EAAQC,SAC3B9E,EAAQsD,KAAOuB,EAAQvB,KACvBtD,EAAQ+E,SAAWF,EAAQE,SAC3B/E,EAAQgF,MAAQH,EAAQG,MACxBhF,EAAQiF,QAAUJ,EAAQI,QAC1BjF,EAAQkF,cAAgBL,EAAQK,cAChClF,EAAQmF,cAAgBN,EAAQM,cAChCnF,EAAQoF,SAAWP,EAAQO,SAEpBpF,GAEHK,QAAiBgF,EACrB,CAIEC,UAAW,CAACC,EAAUV,IACpBW,EAAAC,cAACvD,EAAG,CAACwD,OAAQ,IAAKb,EAAQxB,SAAU7D,QAAQ+F,GAE9CpD,UACAC,SACAC,WACAsD,kBAEF7B,EACA,CACEV,aACAN,YACAC,QACAC,yBACAC,kBACAC,gBACAC,iBAKAN,SAAUA,EACN,EAAG7C,QAAS6E,KAAchC,EAAS,CAAE7C,QAAS4E,EAAYC,UAC1DrD,EAKJoB,QAAS,EAAG5C,QAAS6E,EAASe,YAC5B,MAAMC,KAAEA,EAAIC,QAAEA,GAAYF,EAK1B,GAHAhD,IAAU,CAAE5C,QAAS4E,EAAYC,GAAUe,UAC3CpC,EAAOuC,KAAKC,EAAMC,IAAI,uBAAuBJ,MAG3C,CACEK,EAAYC,cACZD,EAAYE,cACZF,EAAYG,cACZC,SAAST,GAIX,YAFArC,EAAOuC,KAAKC,EAAMO,IAAIT,IAKxB,MAAMU,SAAEA,GAAaZ,EAErBpC,EAAOoC,MAAMY,IAMf9D,WAAYA,EACR,EAAG1C,QAAS6E,EAASvB,OAAMmD,WACzB/D,EAAW,CAAE1C,QAAS4E,EAAYC,GAAUvB,OAAMmD,eACpDjF,EAKJgB,cAAeA,EACX,EAAGxC,QAAS6E,KAAcrC,EAAc,CAAExC,QAAS4E,EAAYC,UAC/DrD,EAKJmB,aAAcA,EACV,EAAG3C,QAAS6E,EAASe,WAAYjD,EAAa,CAAE3C,QAAS4E,EAAYC,GAAUe,eAC/EpE,EAKJiB,aAAc,EAAGzC,QAAS6E,MACxB,MAAM6B,EAAgB9B,EAAYC,GA/QpB,EAAC7E,EAA6BC,KACpD,GAAIA,EAAIE,aAAeF,EAAIG,cACzB,OAGFH,EAAIK,OAAON,EAAQK,SAASC,QAAU,KACtCqG,EAAiB3G,EAAQK,SAASI,SAASmG,QAAQ,EAAEjG,EAAMQ,KAAWlB,EAAIa,UAAUH,EAAMQ,IAE1F,MAAM0F,EAAU9F,EAAoBf,EAAQK,SAASI,SAEjDoG,EAAQC,QACV7G,EAAIa,UAAU,aAAc+F,IAsQtBE,CAAgBlC,EAAS5E,GAEzB,MAAMC,EAAW,CACfO,QAAS,IAAIQ,QAAQ4D,EAAQxE,SAASI,SACtCH,OAAQuE,EAAQxE,SAASC,QAGrB0G,EAAQvE,IAAe,CAAEzC,QAAS0G,IAIxC,OAFA3G,EAAa8E,EAAS5E,EAAKC,GAEpB8G,GAAS,CAAA,GAMlBC,QAASjF,OAAShC,QAAS6E,EAASqC,uBAClC,MAAMR,EAAgB9B,EAAYC,IAC5BI,QAAEA,EAAOD,MAAEA,GAAUH,EAErBsC,SADiBC,EAAe9E,EAAQ2C,EAASD,IAChCqC,aAAaX,EAAeY,QAAQZ,EAAca,gBAErEb,EAAca,qBACVC,EAAeN,EAAkBC,IAG3CM,qBAAsBzH,GAExB,CAIE0H,aAAejH,GAAYkH,EAAgB1H,EAAKQ,KAIpDmE,EAAYd,QA3OM9B,OAAO/B,EAAsBI,KACjD,MAAMuH,EAAWvH,EAASI,QAAQG,IAAI,YAEtC,GACEgH,GACAvH,EAASC,QAAU,KACnBD,EAASC,OAAS,MACjBL,EAAIE,cACJF,EAAIG,gBACJH,EAAI4H,UAML,OAJAC,EAAkB7H,EAAKI,SACjBA,EAASR,MAAMkI,eACrB9H,EAAI+H,SAAS3H,EAASC,OAAQsH,SAK1BK,EAAmBhI,EAAKI,IA2NtB6H,CAAcjI,EAAKI,EAC3B,SACEqD,EAAcyE,SAChB,CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { RouterState } from 'react-router';
|
|
2
|
+
import RouteAssets from '../../services/route-assets.js';
|
|
3
|
+
import type ServerConfig from '../../services/server-config.js';
|
|
4
|
+
/**
|
|
5
|
+
* Keep source analysis and Vite graph access confined to development requests.
|
|
6
|
+
*/
|
|
7
|
+
declare const getRouteAssets: (config: ServerConfig, matches?: RouterState["matches"], isSpa?: boolean) => Promise<RouteAssets>;
|
|
8
|
+
export default getRouteAssets;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import e from"../../services/route-assets.js";const s=new WeakMap,t=async(t,r,a=!1)=>{if(!t.isProd){const{default:e}=await(import("../../services/ssr-manifest.js")),s=e.get(t);return await s.prepareDevAssets(r,a),s}let o=s.get(t);return o||(o=new e(t.getParams().root,t.isModulePreload),s.set(t,o)),o};export{t as default};
|
|
2
|
+
//# sourceMappingURL=route-assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-assets.js","sources":["../../../src/adapters/express/route-assets.ts"],"sourcesContent":[null],"names":["productionAssets","WeakMap","getRouteAssets","async","config","matches","isSpa","isProd","default","SsrManifest","manifest","get","prepareDevAssets","RouteAssets","getParams","root","isModulePreload","set"],"mappings":"8CAOA,MAAMA,EAAmB,IAAIC,QAKvBC,EAAiBC,MACrBC,EACAC,EACAC,GAAQ,KAER,IAAKF,EAAOG,OAAQ,CAClB,MAAQC,QAASC,gBAA6B,mCACxCC,EAAWD,EAAYE,IAAIP,GAIjC,aAFMM,EAASE,iBAAiBP,EAASC,GAElCI,CACT,CAEA,IAAIA,EAAWV,EAAiBW,IAAIP,GAOpC,OALKM,IACHA,EAAW,IAAIG,EAAYT,EAAOU,YAAYC,KAAMX,EAAOY,iBAC3DhB,EAAiBiB,IAAIb,EAAQM,IAGxBA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"node:http";import r from"node:https";import t from"node:path";import s from"compression";import o from"express";import i from"./prepare-server.js";import a from"../../helpers/print-server-info.js";import
|
|
1
|
+
import e from"node:http";import r from"node:https";import t from"node:path";import s from"compression";import o from"express";import i from"./prepare-server.js";import a from"./static-files.js";import n from"../../helpers/print-server-info.js";import p from"../../services/server-api.js";async function d(d){const c=o().disable("x-powered-by");d.isProd&&c.set("env","production");const m=new p;d.setApp(c);const l=i.init(d,m);if(!d.isProd){const e=await(await(import("vite"))).createServer({server:{middlewareMode:!0,watch:{usePolling:!0,interval:100}},appType:"custom",mode:d.mode});c.use(e.middlewares),d.setVite(e)}const{isSPA:f}=d.getParams();if(f||await l.onAppCreated(),d.isProd){const{root:e,publicDir:r}=d.getParams(),{compression:i,expressStatic:n}=l.getMiddlewaresConfig();if(i&&c.use(s(i)),f||c.use((e,r,t)=>{"/index.html"!==e.url||m.hasAccessIndexHtml()||(e.url="/index-not-found.html"),t()}),n){const{basename:s,...i}=n;c.use(s,(f?o.static:a)(t.resolve(`${e}/${r}`),{...i,index:!!f&&void 0}))}}return f?c.use(/(.*)/,(e,r,t)=>{(async()=>{try{const t=(await l.loadHtml(e)).join("");r.send(t)}catch(e){d.getLogger().error(`Failed to handle request: ${e?.message}`,{error:e}),t(e)}})()}):c.use(/(.*)/,(e,r,t)=>{(async()=>{try{const[{render:s,onRequest:o,...i},a]=await Promise.all([l.loadEntrypoint(),l.loadHtml(e)]),{appProps:n,hasEarlyHints:p,shouldSkip:c,shouldCancel:m}=(o?await o(e,r):void 0)??{},[f,u]=a;if(m||r.writableEnded||r.headersSent)return;if(c)return t();const h={req:e,res:r,hasEarlyHints:p,appProps:n??{},html:{header:f,footer:u}};await s(d,h,i)}catch(e){d.getLogger().error(`Failed to handle request: ${e?.message}`,{error:e}),t(e)}})()}),{run:({version:t,isPrintInfo:s=!0}={})=>{const{port:o,host:i}=d.getParams(),a=Boolean(d.getVite()?.config?.server?.https);d.isHost&&!d.isProd&&(d.getVite().config.server.host=i);const p=(a?r.createServer(d.getVite().config.server.https,c):e.createServer(c)).listen(o,i,()=>{l.onServerStarted?.(c,m,p),s&&n(d,{version:t,server:p})});return p},app:c}}export{d as default};
|
|
2
2
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sources":["../../../src/adapters/express/server.ts"],"sourcesContent":[null],"names":["async","createServer","config","app","express","disable","isProd","set","serverApi","ServerApi","setApp","prepareServer","PrepareServer","init","vite","server","middlewareMode","watch","usePolling","interval","appType","mode","use","middlewares","setVite","isSPA","getParams","onAppCreated","root","publicDir","compression","compressionConfig","expressStatic","getMiddlewaresConfig","req","_","next","url","hasAccessIndexHtml","basename","expressStaticOpts","static","path","resolve","index","undefined","res","html","loadHtml","join","send","e","getLogger","error","message","render","onRequest","renderParams","clientHtml","Promise","all","loadEntrypoint","appProps","hasEarlyHints","shouldSkip","shouldCancel","header","footer","writableEnded","headersSent","renderInput","run","version","isPrintInfo","port","host","isHTTPS","Boolean","getVite","https","isHost","http","listen","onServerStarted","printServerInfo"],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.js","sources":["../../../src/adapters/express/server.ts"],"sourcesContent":[null],"names":["async","createServer","config","app","express","disable","isProd","set","serverApi","ServerApi","setApp","prepareServer","PrepareServer","init","vite","server","middlewareMode","watch","usePolling","interval","appType","mode","use","middlewares","setVite","isSPA","getParams","onAppCreated","root","publicDir","compression","compressionConfig","expressStatic","getMiddlewaresConfig","req","_","next","url","hasAccessIndexHtml","basename","expressStaticOpts","static","staticFiles","path","resolve","index","undefined","res","html","loadHtml","join","send","e","getLogger","error","message","render","onRequest","renderParams","clientHtml","Promise","all","loadEntrypoint","appProps","hasEarlyHints","shouldSkip","shouldCancel","header","footer","writableEnded","headersSent","renderInput","run","version","isPrintInfo","port","host","isHTTPS","Boolean","getVite","https","isHost","http","listen","onServerStarted","printServerInfo"],"mappings":"gSAsBAA,eAAeC,EAAaC,GAC1B,MAAMC,EAAMC,IAAUC,QAAQ,gBAE1BH,EAAOI,QACTH,EAAII,IAAI,MAAO,cAGjB,MAAMC,EAAY,IAAIC,EAEtBP,EAAOQ,OAAOP,GAEd,MAAMQ,EAAgBC,EAAcC,KAAKX,EAAQM,GAEjD,IAAKN,EAAOI,OAAQ,CAMlB,MAAMQ,qBACS,UACbb,aAAa,CACbc,OAAQ,CACNC,gBAAgB,EAChBC,MAAO,CAKLC,YAAY,EACZC,SAAU,MAGdC,QAAS,SACTC,KAAMnB,EAAOmB,OAMflB,EAAImB,IAAIR,EAAKS,aAEbrB,EAAOsB,QAAQV,EACjB,CAEA,MAAMW,MAAEA,GAAUvB,EAAOwB,YAMzB,GAJKD,SACGd,EAAcgB,eAGlBzB,EAAOI,OAAQ,CACjB,MAAMsB,KAAEA,EAAIC,UAAEA,GAAc3B,EAAOwB,aAC3BI,YAAaC,EAAiBC,cAAEA,GAAkBrB,EAAcsB,uBAmBxE,GAjBIF,GACF5B,EAAImB,IAAIQ,EAAYC,IAGjBN,GAIHtB,EAAImB,IAAI,CAACY,EAAKC,EAAGC,KACC,gBAAZF,EAAIG,KAA0B7B,EAAU8B,uBAC1CJ,EAAIG,IAAM,yBAGZD,MAIAJ,EAAe,CACjB,MAAMO,SAAEA,KAAaC,GAAsBR,EAE3C7B,EAAImB,IACFiB,GACCd,EAAQrB,EAAQqC,OAASC,GAAaC,EAAKC,QAAQ,GAAGhB,KAAQC,KAAc,IACxEW,EACHK,QAAOpB,QAAQqB,IAGrB,CACF,CA8DA,OAzDKrB,EAyCHtB,EAAImB,IAAI,OAAQ,CAACY,EAAKa,EAAKX,KACpB,WACH,IACE,MAAMY,SAAcrC,EAAcsC,SAASf,IAAMgB,KAAK,IAEtDH,EAAII,KAAKH,EACX,CAAE,MAAOI,GACPlD,EACGmD,YACAC,MAAM,6BAA8BF,GAAaG,UAAW,CAAED,MAAOF,IACxEhB,EAAKgB,EACP,CACD,EAXI,KAzCPjD,EAAImB,IAAI,OAAQ,CAACY,EAAKa,EAAKX,KACpB,WACH,IACE,OAAOoB,OAAEA,EAAMC,UAAEA,KAAcC,GAAgBC,SAAoBC,QAAQC,IAAI,CAC7ElD,EAAcmD,iBACdnD,EAAcsC,SAASf,MAEnB6B,SAAEA,EAAQC,cAAEA,EAAaC,WAAEA,EAAUC,aAAEA,IAC1CT,QAAkBA,EAAUvB,EAAKa,QAAOD,IAAc,CAAA,GAClDqB,EAAQC,GAAUT,EAEzB,GAAIO,GAAgBnB,EAAIsB,eAAiBtB,EAAIuB,YAC3C,OAGF,GAAIL,EACF,OAAO7B,IAGT,MAAMmC,EAAsC,CAC1CrC,MACAa,MACAiB,gBACAD,SAAUA,GAAY,CAAA,EACtBf,KAAM,CAAEmB,SAAQC,iBAGZZ,EAAOtD,EAAQqE,EAAab,EACpC,CAAE,MAAON,GACPlD,EACGmD,YACAC,MAAM,6BAA8BF,GAAaG,UAAW,CAAED,MAAOF,IACxEhB,EAAKgB,EACP,CACD,EAjCI,KAuDF,CAILoB,IAAK,EAAGC,UAASC,eAAc,GAAS,CAAA,KACtC,MAAMC,KAAEA,EAAIC,KAAEA,GAAS1E,EAAOwB,YACxBmD,EAAUC,QAAQ5E,EAAO6E,WAAW7E,QAAQa,QAAQiE,OAKtD9E,EAAO+E,SAAW/E,EAAOI,SAC3BJ,EAAO6E,UAAW7E,OAAOa,OAAO6D,KAAOA,GAGzC,MAAM7D,GACJ8D,EACIG,EAAM/E,aAAaC,EAAO6E,UAAW7E,OAAOa,OAAOiE,MAAQ7E,GAC3D+E,EAAKjF,aAAaE,IACtBgF,OAAOR,EAAMC,EAAM,KACdjE,EAAcyE,kBAAkBjF,EAAKK,EAAWO,GAEhD2D,GAIAW,EAAgBnF,EAAQ,CAAEuE,UAAS1D,aAG1C,OAAOA,GAETZ,MAEJ"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { RequestHandler } from 'express';
|
|
2
|
+
import type { ServeStaticOptions } from 'serve-static';
|
|
3
|
+
/**
|
|
4
|
+
* Send HTML routes directly to SSR while retaining static handling for built file prefixes.
|
|
5
|
+
*/
|
|
6
|
+
declare const staticFiles: (root: string, options: ServeStaticOptions) => RequestHandler;
|
|
7
|
+
export default staticFiles;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{readdirSync as t}from"node:fs";import e from"express";const r=(r,o)=>{const s=e.static(r,o);if(!1===o.fallthrough||o.extensions)return s;let n;try{n=new Set(t(r).map(t=>t.toLowerCase()))}catch{return s}return(t,e,r)=>{let o;try{o=decodeURIComponent(t.url.split("?",1)[0])}catch{return void s(t,e,r)}const i=o.indexOf("/",1),c=o.slice(1,i<0?void 0:i).toLowerCase();n.has(c)||o.includes("/.")||o.includes("\\")||o.includes("\0")||o.startsWith("//")?s(t,e,r):r()}};export{r as default};
|
|
2
|
+
//# sourceMappingURL=static-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-files.js","sources":["../../../src/adapters/express/static-files.ts"],"sourcesContent":[null],"names":["staticFiles","root","options","serve","express","static","fallthrough","extensions","prefixes","Set","readdirSync","map","name","toLowerCase","request","response","next","pathname","decodeURIComponent","url","split","separator","indexOf","prefix","slice","undefined","has","includes","startsWith"],"mappings":"6DAQA,MAAMA,EAAc,CAACC,EAAcC,KACjC,MAAMC,EAAQC,EAAQC,OAAOJ,EAAMC,GAEnC,IAA4B,IAAxBA,EAAQI,aAAyBJ,EAAQK,WAC3C,OAAOJ,EAGT,IAAIK,EAEJ,IACEA,EAAW,IAAIC,IAAIC,EAAYT,GAAMU,IAAKC,GAASA,EAAKC,eAC1D,CAAE,MACA,OAAOV,CACT,CAKA,MAAO,CAACW,EAASC,EAAUC,KACzB,IAAIC,EAEJ,IACEA,EAAWC,mBAAmBJ,EAAQK,IAAIC,MAAM,IAAK,GAAG,GAC1D,CAAE,MAGA,YAFAjB,EAAMW,EAASC,EAAUC,EAG3B,CAEA,MAAMK,EAAYJ,EAASK,QAAQ,IAAK,GAClCC,EAASN,EAASO,MAAM,EAAGH,EAAY,OAAII,EAAYJ,GAAWR,cAGtEL,EAASkB,IAAIH,IACbN,EAASU,SAAS,OAClBV,EAASU,SAAS,OAClBV,EAASU,SAAS,OAClBV,EAASW,WAAW,MAEpBzB,EAAMW,EAASC,EAAUC,GAK3BA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/cli/commands.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{readFileSync as e}from"node:fs";import o from"chalk";import{Command as i,Option as t}from"commander";import n from"./helpers/enable-shortcuts.js";import{runStart as r}from"./start.js";import a from"../constants/cli-actions.js";import d from"../constants/cli-context.js";import s from"../constants/cli-name.js";const{description:c,version:l}=JSON.parse(e(new URL("../package.json",import.meta.url),"utf8")),p=new i;p.name(s).description(c).version(l).hook("preAction",(e,o)=>{global.viteBoostAction=o.name()});const m=new t("--host","Ability to access the local instance on other devices under the same network.").default(!1),f=new t("--focus-only [focusOnly]","Build or Start only specified part of app.").default("app").choices(["all","app","client","server","entrypoint"]),u=new t("--port [port]","Server port.").default(3e3),w=new t("--mode [mode]","Env mode.").env("VITE_ENV_MODE").default("production"),O=new t("--build-dir [buildDir]","Build directory output.");p.command(a.dev).description("Run development server.").addOption(m).addOption(u).addOption(new t("--reset-cache","Clear vite cache before run.").default(!1)).addOption(new t("--mode [mode]","Env mode.").env("VITE_ENV_MODE").default("development")).addOption(new t("--entrypoint [entrypoint]","Run only entrypoint by name.")).action(async({host:e,port:i,resetCache:t,mode:r,entrypoint:a})=>{if(t){const{default:e}=await(import("./helpers/vite-reset-cache.js"));await e()}const s=async t=>{console.info(o.cyan("Starting the development server..."));const{default:n}=await(import("./run-dev.js")),{server:s,config:c}=await n({version:l,isHost:e,isPrintInfo:t,port:i,mode:r,entrypointName:a});d.server=s,d.config=c};return d.reboot=s,await n(),s()}),p.command(a.build).description("Create production build.").addOption(f).addOption(w).addOption(new t("--client-options [client-options]",'Pass vite build options for client. Example: --client-options="--ssrManifest"').env("VITE_BUILD_CLIENT_OPTIONS").default("")).addOption(new t("--server-options [server-options]","Pass vite build options for server.").env("VITE_BUILD_SERVER_OPTIONS").default("")).addOption(new t("--unlock-robots","Change general directive Disallow to Allow in robots.txt").default(!1)).addOption(new t("--eject","Produces entrypoint file to run app without cli").default(!1)).addOption(new t("--serverless","Produces entrypoint file to run app like serverless function").default(!1)).addOption(new t("--throw-warnings","The build will abort with an error if warnings occur in the process.").default(!1)).action(async({focusOnly:e,clientOptions:o,serverOptions:i,mode:t,unlockRobots:n,eject:r,serverless:a,throwWarnings:d})=>{await(await(import("./build.js"))).default({focusOnly:e,isUnlockRobots:n,isNoWarnings:d,isEject:r,isServerless:a,clientOptions:o,serverOptions:i,mode:t})}),p.command(a.start).description("Run production server.").addOption(m).addOption(u).addOption(f).addOption(O).addOption(new t("--module-preload","Add module preload scripts to server output.").default(!1)).action(r),p.command(a.preview).description("Build and preview production.").addOption(f).addOption(m).addOption(u).addOption(w).addOption(O).action(async({host:e,port:i,focusOnly:t,mode:r,buildDir:a})=>{global.viteBoostStartTime=performance.now();const s=async n=>{const{default:r}=await(import("./run-prod.js")),{server:s,config:c}=await r({version:l,isHost:e,isPrintInfo:n,port:i,focusOnly:t,buildDir:a});s.on("listening",()=>{setTimeout(()=>{c.getLogger().info(o.yellow("\n Running preview mode... \n"))},0)}),d.server=s,d.config=c};d.reboot=s,await n();await(await(import("./build.js"))).default({mode:r,isWatch:!0,focusOnly:t,clientOptions:"-w",serverOptions:"-w",onFinish:()=>{s()}})}),p.command(a.buildDocker).description("Create docker image with production build.").requiredOption("--image-name <image-name>","Docker image name.").addOption(new t("--docker-options [docker-options]","Extra docker options which pass to docker build command.")).addOption(new t("--docker-file [docker-file]","Name of the Dockerfile (Default is PLUGIN_PATH/workflow/Dockerfile).")).addOption(f).addOption(w).action(async({imageName:e,dockerOptions:o,dockerFile:i,focusOnly:t,mode:n})=>{await(await(import("./run-docker-build.js"))).default({imageName:e,dockerOptions:o,dockerFile:i,focusOnly:t,mode:n})}),p.command(a.buildAmplify).description("Create AWS Amplify production build.").addOption(new t("--manifest-file [manifest-file]","Path to the Amplify manifest file (Default is PLUGIN_PATH/workflow/amplify-manifest.json).")).addOption(new t("--is-optimize","Optimize node_modules folder.").default(!1)).addOption(w).action(async({manifestFile:e,mode:o,isOptimize:i})=>{await(await(import("./run-amplify-build.js"))).default({manifestFile:e,mode:o,isOptimize:i})}),p.command(a.buildVercel).description("Create Vercel serverless production build.").addOption(new t("--config-file [config-file]","Path to the Vercel config.json file (Default is PLUGIN_PATH/workflow/vercel.config.json).")).addOption(new t("--config-vc-file [config-vc-file]","Path to the Vercel vc-config.json file (Default is PLUGIN_PATH/workflow/vercel.vc-config.json).")).addOption(new t("--is-optimize","Optimize node_modules folder.").default(!1)).addOption(w).action(async({configFile:e,configVcFile:o,mode:i,isOptimize:t})=>{await(await(import("./run-vercel-build.js"))).default({configFile:e,configVcFile:o,mode:i,isOptimize:t})}),p.command("doctor").description("Inspect SSR setup and report actionable checks.").option("--json","Print machine-readable JSON.").option("--root <dir>","Project directory.").option("--bundle <file>","Write an allowlisted support bundle JSON.").action(async e=>(await(import("./doctor.js"))).default(e)),p.command("init").description("Add SSR to an existing Vite + React Router app (dry run by default).").option("--dry-run","Print every change without writing files.").option("--apply","Write the proposed changes.").option("--root <dir>","Project directory.").option("--entry <file>","Browser entry relative to the project directory.").option("--routes <file>","Module exporting the route array.").action(async e=>(await(import("./init.js"))).default(e)),await p.parseAsync();
|
|
2
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sources":["../../src/cli/commands.ts"],"sourcesContent":[null],"names":["description","version","JSON","parse","readFileSync","URL","url","program","Command","name","cliName","hook","_","actionCommand","global","viteBoostAction","hostOption","Option","default","focusOnlyOption","choices","portOption","envModeOption","env","buildDirOption","command","CliActions","dev","addOption","action","async","host","port","resetCache","mode","entrypoint","viteResetCache","isPrintInfo","console","info","chalk","cyan","runDev","server","config","isHost","entrypointName","cliContext","reboot","enableShortcuts","build","focusOnly","clientOptions","serverOptions","unlockRobots","eject","serverless","throwWarnings","isUnlockRobots","isNoWarnings","isEject","isServerless","start","runStart","preview","buildDir","viteBoostStartTime","performance","now","runProd","on","setTimeout","getLogger","yellow","isWatch","onFinish","buildDocker","requiredOption","imageName","dockerOptions","dockerFile","buildAmplify","manifestFile","isOptimize","buildVercel","configFile","configVcFile","option","options","parseAsync"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enable-shortcuts.js","sources":["../../../src/cli/helpers/enable-shortcuts.ts"],"sourcesContent":[null],"names":["enableShortcuts","async","process","stdin","isTTY","default","onKeyPress","setRawMode","on","setEncoding","resume"],"mappings":"AAGA,MAAMA,EAAkBC,UACtB,GAAIC,QAAQC,MAAMC,MAAO,CACvB,MAAQC,QAASC,gBAA4B,wBAE7CJ,QAAQC,MAAMI,YAAW,GACzBL,QAAQC,MAAMK,GAAG,OAAQF,GAAYG,YAAY,QAAQC,QAC3D"}
|
package/cli/run-prod.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{performance as o}from"node:perf_hooks";import
|
|
1
|
+
import{performance as o}from"node:perf_hooks";import e from"../adapters/express/server.js";import r from"../helpers/create-focus-only.js";import i from"../services/production-config.js";import s from"../services/server-config.js";async function t({version:t,isHost:n,isPrintInfo:l,port:a,buildDir:d,focusOnly:f,modulePreload:m=!1}){global.viteBoostStartTime||(global.viteBoostStartTime=o.now());const{root:p,base:c,publicDir:u,indexFile:v,serverFile:b,mode:g}=i(d)??{},y=s.init({isHost:n,isProd:!0,isOnlyClient:r(f).isOnlyClient(),isModulePreload:m,mode:g},{port:a,root:p??d,...void 0===c?{}:{base:c,publicDir:u,indexFile:v,serverFile:b}}),{run:P}=await e(y);return{server:P({version:t,isPrintInfo:l}),config:y}}export{t as default};
|
|
2
2
|
//# sourceMappingURL=run-prod.js.map
|
package/cli/run-prod.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-prod.js","sources":["../../src/cli/run-prod.ts"],"sourcesContent":[null],"names":["async","runProd","version","isHost","isPrintInfo","port","buildDir","focusOnly","modulePreload","global","viteBoostStartTime","performance","now","config","ServerConfig","init","isProd","isOnlyClient","createFocusOnly","isModulePreload","
|
|
1
|
+
{"version":3,"file":"run-prod.js","sources":["../../src/cli/run-prod.ts"],"sourcesContent":[null],"names":["async","runProd","version","isHost","isPrintInfo","port","buildDir","focusOnly","modulePreload","global","viteBoostStartTime","performance","now","root","base","publicDir","indexFile","serverFile","mode","loadProductionConfig","config","ServerConfig","init","isProd","isOnlyClient","createFocusOnly","isModulePreload","undefined","run","createServer","server"],"mappings":"sOA2BAA,eAAeC,GAAQC,QACrBA,EAAOC,OACPA,EAAMC,YACNA,EAAWC,KACXA,EAAIC,SACJA,EAAQC,UACRA,EAASC,cACTA,GAAgB,IAEXC,OAAOC,qBACVD,OAAOC,mBAAqBC,EAAYC,OAG1C,MAAMC,KAAEA,EAAIC,KAAEA,EAAIC,UAAEA,EAASC,UAAEA,EAASC,WAAEA,EAAUC,KAAEA,GACpDC,EAAqBb,IAAa,CAAA,EAC9Bc,EAASC,EAAaC,KAC1B,CACEnB,SACAoB,QAAQ,EACRC,aAAcC,EAAgBlB,GAAWiB,eACzCE,gBAAiBlB,EACjBU,QAEF,CACEb,OACAQ,KAAMA,GAAQP,UACDqB,IAATb,EAAqB,GAAK,CAAEA,OAAMC,YAAWC,YAAWC,iBAG1DW,IAAEA,SAAcC,EAAaT,GAEnC,MAAO,CACLU,OAAQF,EAAI,CAAE1B,UAASE,gBACvBgB,SAEJ"}
|
package/cli/start.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IStartActionParams } from './interfaces/actions.js';
|
|
2
|
+
/**
|
|
3
|
+
* Parse ordinary start invocations; delegate help and ambiguous syntax to Commander.
|
|
4
|
+
*/
|
|
5
|
+
declare const parseStartOptions: (args: string[]) => IStartActionParams | undefined;
|
|
6
|
+
/**
|
|
7
|
+
* Start and restart the existing managed server without importing other commands.
|
|
8
|
+
*/
|
|
9
|
+
declare const runStart: ({ host, port, focusOnly, modulePreload, buildDir, }: IStartActionParams) => Promise<void>;
|
|
10
|
+
export { parseStartOptions, runStart };
|
package/cli/start.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{readFileSync as o}from"node:fs";import{parseArgs as t}from"node:util";import r from"./helpers/enable-shortcuts.js";import e from"../constants/cli-context.js";const s=o=>{try{const{values:r}=t({args:o,options:{host:{type:"boolean",default:!1},port:{type:"string",default:"3000"},"focus-only":{type:"string",default:"app"},"build-dir":{type:"string"},"module-preload":{type:"boolean",default:!1}},allowPositionals:!1}),{host:e,port:s,"focus-only":l,"build-dir":n,"module-preload":i}=r;if(!["all","app","client","server","entrypoint"].includes(l))return;return{host:e,port:Number(s),focusOnly:l,buildDir:n,modulePreload:i}}catch{return}},l=async({host:t,port:s,focusOnly:l,modulePreload:n,buildDir:i})=>{const{version:a}=JSON.parse(o(new URL("../package.json",import.meta.url),"utf8")),{default:u}=await(import("./run-prod.js")),p=async o=>{const{server:r,config:p}=await u({version:a,isHost:t,isPrintInfo:o,port:s,focusOnly:l,modulePreload:n,buildDir:i});e.server=r,e.config=p};e.reboot=p,await r(),await p()};export{s as parseStartOptions,l as runStart};
|
|
2
|
+
//# sourceMappingURL=start.js.map
|
package/cli/start.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.js","sources":["../../src/cli/start.ts"],"sourcesContent":[null],"names":["parseStartOptions","args","values","parseArgs","options","host","type","default","port","allowPositionals","isHost","focusOnly","buildDir","isModulePreload","includes","Number","modulePreload","runStart","async","version","JSON","parse","readFileSync","URL","url","runProd","command","isPrintInfo","server","config","cliContext","reboot","enableShortcuts"],"mappings":"qKASA,MAAMA,EAAqBC,IACzB,IACE,MAAMC,OAAEA,GAAWC,EAAU,CAC3BF,OACAG,QAAS,CACPC,KAAM,CAAEC,KAAM,UAAWC,SAAS,GAClCC,KAAM,CAAEF,KAAM,SAAUC,QAAS,QACjC,aAAc,CAAED,KAAM,SAAUC,QAAS,OACzC,YAAa,CAAED,KAAM,UACrB,iBAAkB,CAAEA,KAAM,UAAWC,SAAS,IAEhDE,kBAAkB,KAGlBJ,KAAMK,EAAMF,KACZA,EACA,aAAcG,EACd,YAAaC,EACb,iBAAkBC,GAChBX,EAEJ,IAAK,CAAC,MAAO,MAAO,SAAU,SAAU,cAAcY,SAASH,GAC7D,OAGF,MAAO,CACLN,KAAMK,EACNF,KAAMO,OAAOP,GACbG,UAAWA,EACXC,WACAI,cAAeH,EAEnB,CAAE,MACA,MACF,GAMII,EAAWC,OACfb,OACAG,OACAG,YACAK,gBACAJ,eAEA,MAAMO,QAAEA,GAAYC,KAAKC,MACvBC,EAAa,IAAIC,IAAI,8BAA+BC,KAAM,UAEpDjB,QAASkB,gBAAyB,kBAKpCC,EAAUR,MAAOS,IACrB,MAAMC,OAAEA,EAAMC,OAAEA,SAAiBJ,EAAQ,CACvCN,UACAT,OAAQL,EACRsB,cACAnB,OACAG,YACAK,gBACAJ,aAGFkB,EAAWF,OAASA,EACpBE,EAAWD,OAASA,GAGtBC,EAAWC,OAASL,QACdM,UACAN"}
|
package/cli.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{
|
|
2
|
+
import{parseStartOptions as t,runStart as o}from"./cli/start.js";const[s,...a]=process.argv.slice(2),i="start"===s?t(a):void 0;i?(global.viteBoostAction="start",await o(i)):await(import("./cli/commands.js"));
|
|
3
3
|
//# sourceMappingURL=cli.js.map
|
package/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sources":["../src/cli.ts"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"cli.js","sources":["../src/cli.ts"],"sourcesContent":[null],"names":["command","args","process","argv","slice","options","parseStartOptions","undefined","global","viteBoostAction","runStart"],"mappings":";iEAIA,MAAOA,KAAYC,GAAQC,QAAQC,KAAKC,MAAM,GACxCC,EAAsB,UAAZL,EAAsBM,EAAkBL,QAAQM,EAE5DF,GACFG,OAAOC,gBAAkB,cACnBC,EAASL,iBAEF"}
|
package/core/compose-html.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type DataStream from './data-stream.js';
|
|
2
2
|
import type RequestTimeline from '../services/request-timeline.js';
|
|
3
|
-
/**
|
|
3
|
+
/** Queue the prepared shell immediately and pull later bytes only under downstream demand. */
|
|
4
4
|
declare const composeHtml: (header: string, body: ReadableStream<Uint8Array>, footer: string, abort?: (reason?: unknown) => void, onComplete?: () => void, data?: DataStream, timeline?: RequestTimeline, isEarly?: boolean) => ReadableStream<Uint8Array>;
|
|
5
5
|
export default composeHtml;
|
package/core/compose-html.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"./html-boundary.js";const
|
|
1
|
+
import e from"./html-boundary.js";const n=(n,t,o,r,a,c,i,d=!1)=>{const l=new TextEncoder,u=t.getReader();let s,f,y="body",m=!1,h=!1,v=c&&!c.isDone?e():void 0,w=!0;const b=()=>{h||(h=!0,u.releaseLock())};return new ReadableStream({start(e){n&&(d&&i?.record("state.emitted",{placement:"early"}),e.enqueue(l.encode(n)))},cancel:async e=>{m=!0,r?.(e),c?.cancel();try{h||await u.cancel(e)}finally{b(),a?.()}},async pull(e){try{for(;!m;){const n=w?c?.take():void 0;if(w&&c?.isDone&&(v=void 0),m)return;if(n)return void e.enqueue(l.encode(n));if(f)return w=v?.(f)??!0,e.enqueue(f),void(f=void 0);if("body"===y){s??=u.read();const e=await(c&&!c.isDone&&w?Promise.race([s,c.changed().then(()=>{})]):s);if(m)return;if(!e)continue;if(s=void 0,!e.done){f=e.value;continue}y="footer",i?.record("body.end"),w=!0,b();continue}!c||c.isDone?(o&&(d||i?.record("state.emitted",{placement:"footer"}),e.enqueue(l.encode(o))),m=!0,a?.(),e.close()):await c.changed()}}catch(n){if(m)return;m=!0,r?.(n),c?.cancel(),e.error(n);try{h||await u.cancel(n).catch(()=>{})}finally{b(),a?.()}}}},{highWaterMark:0})};export{n as default};
|
|
2
2
|
//# sourceMappingURL=compose-html.js.map
|
package/core/compose-html.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose-html.js","sources":["../../src/core/compose-html.ts"],"sourcesContent":[null],"names":["composeHtml","header","body","footer","abort","onComplete","data","timeline","isEarly","encoder","TextEncoder","reader","getReader","pendingRead","phase","isStopped","isReleased","observe","htmlBoundary","
|
|
1
|
+
{"version":3,"file":"compose-html.js","sources":["../../src/core/compose-html.ts"],"sourcesContent":[null],"names":["composeHtml","header","body","footer","abort","onComplete","data","timeline","isEarly","encoder","TextEncoder","reader","getReader","pendingRead","heldChunk","phase","isStopped","isReleased","observe","isDone","htmlBoundary","undefined","canInject","release","releaseLock","ReadableStream","start","controller","record","placement","enqueue","encode","cancel","async","reason","pull","frames","take","read","chunk","Promise","race","changed","then","done","value","close","error","catch","highWaterMark"],"mappings":"kCAKA,MAAMA,EAAc,CAClBC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAAU,KAEV,MAAMC,EAAU,IAAIC,YACdC,EAAST,EAAKU,YACpB,IAGIC,EAGAC,EANAC,EAA2B,OAC3BC,GAAY,EACZC,GAAa,EAEbC,EAAUZ,IAASA,EAAKa,OAASC,SAAiBC,EAClDC,GAAY,EAIhB,MAAMC,EAAU,KACTN,IACHA,GAAa,EACbN,EAAOa,gBAIX,OAAO,IAAIC,eACT,CAEE,KAAAC,CAAMC,GACA1B,IACEO,GACFD,GAAUqB,OAAO,gBAAiB,CAAEC,UAAW,UAGjDF,EAAWG,QAAQrB,EAAQsB,OAAO9B,IAEtC,EAGA+B,OAAQC,MAAOC,IACblB,GAAY,EACZZ,IAAQ8B,GACR5B,GAAM0B,SAEN,IACOf,SACGN,EAAOqB,OAAOE,EAExB,SACEX,IACAlB,KACF,GAIF,UAAM8B,CAAKR,GACT,IACE,MAAQX,GAAW,CACjB,MAAMoB,EAASd,EAAYhB,GAAM+B,YAAShB,EAM1C,GAJIC,GAAahB,GAAMa,SACrBD,OAAUG,GAGRL,EACF,OAGF,GAAIoB,EAGF,YAFAT,EAAWG,QAAQrB,EAAQsB,OAAOK,IAKpC,GAAItB,EAKF,OAJAQ,EAAYJ,IAAUJ,KAAc,EACpCa,EAAWG,QAAQhB,QACnBA,OAAYO,GAKd,GAAc,SAAVN,EAAkB,CACpBF,IAAgBF,EAAO2B,OACvB,MAAMC,QAAejC,IAASA,EAAKa,QAAUG,EACzCkB,QAAQC,KAAK,CAAC5B,EAAaP,EAAKoC,UAAUC,KAAK,UAC/C9B,GAEJ,GAAIG,EACF,OAGF,IAAKuB,EACH,SAKF,GAFA1B,OAAcQ,GAETkB,EAAMK,KAAM,CACf9B,EAAYyB,EAAMM,MAElB,QACF,CAEA9B,EAAQ,SACRR,GAAUqB,OAAO,YACjBN,GAAY,EACZC,IACA,QACF,EAEIjB,GAASA,EAAKa,QAKdhB,IACGK,GACHD,GAAUqB,OAAO,gBAAiB,CAAEC,UAAW,WAGjDF,EAAWG,QAAQrB,EAAQsB,OAAO5B,KAGpCa,GAAY,EACZX,MACAsB,EAAWmB,eAdHxC,EAAKoC,SAef,CACF,CAAE,MAAOK,GACP,GAAI/B,EACF,OAGFA,GAAY,EACZZ,IAAQ2C,GACRzC,GAAM0B,SACNL,EAAWoB,MAAMA,GAEjB,IACO9B,SACGN,EAAOqB,OAAOe,GAAOC,MAAM,OAErC,SACEzB,IACAlB,KACF,CACF,CACF,GAEF,CAAE4C,cAAe"}
|
package/core/data-stream.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{stringify as t}from"devalue";import{isRouteErrorResponse as e}from"react-router";import i,{streamScript as s}from"./script.js";import o from"../helpers/serialize-errors.js";const r=(t,i)=>{const s=t,o=e(t),r="DataWithResponseInit"===s?.type,n=o?t.status:s?.init?.status,a=o?t.statusText:s?.init?.statusText,
|
|
1
|
+
import{stringify as t}from"devalue";import{isRouteErrorResponse as e}from"react-router";import i,{streamScript as s}from"./script.js";import o from"../helpers/serialize-errors.js";const r=(t,i)=>{const s=t,o=e(t),r="DataWithResponseInit"===s?.type,n=o?t.status:s?.init?.status,a=o?t.statusText:s?.init?.statusText,h={message:s?.message??(o||r?a||`Route data error (${n??500})`:String(t)),name:s?.name??"Error"};return(o||r)&&Object.assign(h,{status:n??500,statusText:a??"",data:s?.data,internal:!1}),i&&s?.stack&&(h.stack=s.stack),h};class n{diagnostics;nonce;timeline;initial;done;resolveDone;notify;change;identities=new WeakMap;pending=new Map;frames=[];initialized=!1;stopped=!1;aborted=!1;nextId=0;constructor(t,e,i,s){this.diagnostics=e,this.nonce=i,this.timeline=s,e?.inspectRouterState(t),this.done=new Promise(t=>{this.resolveDone=t});try{this.initial=this.encodeValue({loaderData:t.loaderData,actionData:t.actionData,errors:o(t.errors)}),this.initialized=!0,this.wake()}catch(t){throw this.cancel(),t}}promiseId=t=>{if(t instanceof Promise){let e=this.identities.get(t);if(void 0===e){e=this.nextId++,this.identities.set(t,e),this.pending.set(e,{settled:!1});const i=e;t.then(t=>this.settle(i,t,!1),t=>this.settle(i,t,!0)),this.aborted&&this.settle(e,new Error("SSR loader/action promise aborted before it settled."),!0)}return[e]}return!1};encodeValue(i){return t(i,{SSRBPromise:this.promiseId,SSRBError:t=>(t instanceof Error||e(t))&&Object.entries(r(t,Boolean(this.diagnostics))),SSRBObject:t=>Boolean(t&&"object"==typeof t&&Object.hasOwn(t,"__proto__"))&&Object.entries(t),SSRBUndefined:t=>"function"==typeof t||"symbol"==typeof t||Boolean(t&&"object"==typeof t&&!Array.isArray(t)&&![Object.prototype,null,Date.prototype,Map.prototype,Set.prototype,RegExp.prototype,Promise.prototype,Error.prototype].includes(Object.getPrototypeOf(t)))})}settle(t,e,i){const o=this.pending.get(t);if(o&&!o.settled&&!this.stopped){o.settled=!0,i||this.diagnostics?.inspectStreamValue(e,t);try{const o=this.encodeValue(i?Object.assign(new Error("Streamed loader/action rejection"),r(e,Boolean(this.diagnostics))):e);this.frames.push(s([i?"reject":"resolve",t,o],this.nonce)),this.timeline?.record(i?"stream.reject":"stream.resolve",{id:t})}catch(e){const i=this.encodeValue(new Error(`Cannot serialize streamed value: ${String(e)}`));this.frames.push(s(["reject",t,i],this.nonce)),this.timeline?.record("stream.reject",{id:t})}finally{this.pending.delete(t),this.wake()}}}wake(){this.notify?.(),this.notify=void 0,this.change=void 0,this.initialized&&!this.pending.size&&this.resolveDone()}get isDone(){return this.initialized&&!this.pending.size}changed(){return this.frames.length||this.isDone?Promise.resolve():this.change??=new Promise(t=>{this.notify=t})}take(){return this.frames.length?this.frames.splice(0).join(""):""}state(t){const{initial:e}=this;return i("window.__staticRouterHydrationData = {__ssrBoostStream: true};",this.nonce,!0)+s(["init",e,t],this.nonce)}abort(){this.aborted=!0;let t=0;for(const[e,i]of this.pending)i.settled||(t++,this.settle(e,new Error("SSR loader/action promise aborted before it settled."),!0));t&&this.diagnostics?.streamAborted(t)}cancel(){this.stopped=!0,this.initialized=!0,this.pending.clear(),this.frames.length=0,this.wake()}}export{n as default,r as errorProperties};
|
|
2
2
|
//# sourceMappingURL=data-stream.js.map
|
package/core/data-stream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-stream.js","sources":["../../src/core/data-stream.ts"],"sourcesContent":[null],"names":["errorProperties","reason","diagnostics","value","isResponse","isRouteErrorResponse","isDataError","type","status","init","statusText","properties","message","String","name","Object","assign","data","internal","stack","DataStream","nonce","timeline","initial","done","resolveDone","notify","change","identities","WeakMap","pending","Map","frames","initialized","stopped","aborted","nextId","constructor","context","this","inspectRouterState","Promise","resolve","encodeValue","loaderData","actionData","errors","serializeErrors","wake","error","cancel","promiseId","id","get","undefined","set","settled","then","result","settle","Error","stringify","SSRBPromise","SSRBError","entries","Boolean","SSRBObject","item","hasOwn","SSRBUndefined","Array","isArray","prototype","Date","Set","RegExp","includes","getPrototypeOf","rejected","inspectStreamValue","payload","push","streamScript","record","delete","size","isDone","changed","length","take","splice","join","state","isEarly","script","abort","count","streamAborted","clear"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"data-stream.js","sources":["../../src/core/data-stream.ts"],"sourcesContent":[null],"names":["errorProperties","reason","diagnostics","value","isResponse","isRouteErrorResponse","isDataError","type","status","init","statusText","properties","message","String","name","Object","assign","data","internal","stack","DataStream","nonce","timeline","initial","done","resolveDone","notify","change","identities","WeakMap","pending","Map","frames","initialized","stopped","aborted","nextId","constructor","context","this","inspectRouterState","Promise","resolve","encodeValue","loaderData","actionData","errors","serializeErrors","wake","error","cancel","promiseId","id","get","undefined","set","settled","then","result","settle","Error","stringify","SSRBPromise","SSRBError","entries","Boolean","SSRBObject","item","hasOwn","SSRBUndefined","Array","isArray","prototype","Date","Set","RegExp","includes","getPrototypeOf","rejected","inspectStreamValue","payload","push","streamScript","record","delete","size","isDone","changed","length","take","splice","join","state","isEarly","script","abort","count","streamAborted","clear"],"mappings":"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"}
|
package/core/handler.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{hasCookie as e}from"./document-headers.js";import s from"./head-response.js";import t from"./render.js";import o from"./spa-shell.js";import r from"./ssr-policy.js";import n,{isDiagnosticsEnabled as a}from"../services/diagnostics.js";import{createTimeline as i}from"../services/request-timeline.js";const c=(c,{diagnostics:p,getHtml:m,onContext:d,onRequest:l,ssr:u,basename:h,...f})=>{const w=new r(u,c.handler.dataRoutes,h),j=o();return async(o,r)=>{const u=a(p),h=i(o,u);try{const a=await
|
|
1
|
+
import{hasCookie as e}from"./document-headers.js";import s from"./head-response.js";import t from"./render.js";import o from"./spa-shell.js";import r from"./ssr-policy.js";import n,{isDiagnosticsEnabled as a}from"../services/diagnostics.js";import{createTimeline as i}from"../services/request-timeline.js";const c=(c,{diagnostics:p,getHtml:m,onContext:d,onRequest:l,ssr:u,basename:h,...f})=>{const w=new r(u,c.handler.dataRoutes,h),j=o();return async(o,r)=>{const u=a(p),h=i(o,u);try{const a=l?await l({executionContext:r,request:o}):void 0,i=a instanceof Response,p=i?void 0:a,x={appProps:p?.appProps??{},diagnostics:u?new n(new URL(o.url).pathname):void 0,executionContext:r,html:i?{header:"",footer:""}:await m(o),request:o,response:{headers:new Headers(p?.headers),status:p?.status},...h?{timeline:h}:{}};if(d?.({context:x}),i){const{sessionCookie:t}=f;x.diagnostics?.inspectCachePolicy(a.headers,Boolean(t&&e(o,t)));const r=await s(o,a);return h?.response(r)??r}return await t({...c,policy:w,spaShell:j},x,f,r)}catch(e){throw h?.abort(e),h?.end(),e}}};export{c as default};
|
|
2
2
|
//# sourceMappingURL=handler.js.map
|
package/core/handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sources":["../../src/core/handler.ts"],"sourcesContent":[null],"names":["createHandler","params","diagnostics","getHtml","onContext","onRequest","ssr","basename","options","policy","SsrPolicy","handler","dataRoutes","spaShell","createSpaShell","async","request","executionContext","isEnabled","isDiagnosticsEnabled","timeline","createTimeline","requestInit","isBypass","Response","metadata","
|
|
1
|
+
{"version":3,"file":"handler.js","sources":["../../src/core/handler.ts"],"sourcesContent":[null],"names":["createHandler","params","diagnostics","getHtml","onContext","onRequest","ssr","basename","options","policy","SsrPolicy","handler","dataRoutes","spaShell","createSpaShell","async","request","executionContext","isEnabled","isDiagnosticsEnabled","timeline","createTimeline","requestInit","undefined","isBypass","Response","metadata","context","appProps","Diagnostics","URL","url","pathname","html","header","footer","response","headers","Headers","status","sessionCookie","inspectCachePolicy","Boolean","hasCookie","headResponse","render","error","abort","end"],"mappings":"kTAsDA,MAAMA,EAAgB,CACpBC,GAEEC,cACAC,UACAC,YACAC,YACAC,MACAC,cACGC,MAGL,MAAMC,EAAS,IAAIC,EAAUJ,EAAKL,EAAOU,QAAQC,WAAYL,GACvDM,EAAWC,IAKjB,OAAOC,MAAOC,EAASC,KACrB,MAAMC,EAAYC,EAAqBjB,GACjCkB,EAAWC,EAAeL,EAASE,GAEzC,IACE,MAAMI,EAAcjB,QAAkBA,EAAU,CAAEY,mBAAkBD,iBAAaO,EAC3EC,EAAWF,aAAuBG,SAClCC,EAAWF,OAAWD,EAAYD,EAClCK,EAAyC,CAC7CC,SAAWF,GAAUE,UAAY,GACjC1B,YAAagB,EAAY,IAAIW,EAAY,IAAIC,IAAId,EAAQe,KAAKC,eAAYT,EAC1EN,mBACAgB,KAAMT,EAAW,CAAEU,OAAQ,GAAIC,OAAQ,UAAahC,EAAQa,GAC5DA,UACAoB,SAAU,CACRC,QAAS,IAAIC,QAAQZ,GAAUW,SAC/BE,OAAQb,GAAUa,WAEhBnB,EAAW,CAAEA,YAAa,IAKhC,GAFAhB,IAAY,CAAEuB,YAEVH,EAAU,CACZ,MAAMgB,cAAEA,GAAkBhC,EAE1BmB,EAAQzB,aAAauC,mBACnBnB,EAAYe,QACZK,QAAQF,GAAiBG,EAAU3B,EAASwB,KAG9C,MAAMJ,QAAiBQ,EAAa5B,EAASM,GAE7C,OAAOF,GAAUgB,SAASA,IAAaA,CACzC,CAEA,aAAaS,EAAO,IAAK5C,EAAQQ,SAAQI,YAAYc,EAASnB,EAASS,EACzE,CAAE,MAAO6B,GAGP,MAFA1B,GAAU2B,MAAMD,GAChB1B,GAAU4B,MACJF,CACR"}
|
package/core/render.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"react";import{matchRoutes as t,createStaticRouter as r,StaticRouterProvider as
|
|
1
|
+
import e from"react";import{matchRoutes as t,createStaticRouter as r,StaticRouterProvider as o}from"react-router";import s from"../constants/stream-error.js";import{ServerProvider as a}from"../context/server.js";import n from"./compose-html.js";import i from"./data-stream.js";import c,{hasCookie as d}from"./document-headers.js";import l from"./head-response.js";import{mergeResponseHeaders as m}from"./headers.js";import h from"./transform-html.js";import u from"../helpers/build-custom-state.js";import p from"../helpers/build-router-state.js";import C from"../helpers/obtain-stream-error.js";import{createTimeline as f}from"../services/request-timeline.js";const w="text/html",x="Content-Type",y=async({createApp:d,handler:f,renderToStream:y,policy:R,spaShell:S},v,{abortDelay:b=15e3,getState:g,hydration:q="footer",nonce:E,bootstrapScriptContent:j,onError:k,onResponse:H,onRouterReady:P,onShellError:T,onShellReady:A,prepare:B,routerRequestContext:D,documentHeaders:L,sessionCookie:_,protectPrivate:$},I)=>{const O=R?.select(v.request,v.diagnostics)??"ssr";if(R?.active&&!v.response.headers.has("Cache-Control")&&v.response.headers.set("Cache-Control","no-store"),"spa"===O)return v.isSpa=!0,v.isStream=!1,v.matches=t(f.dataRoutes,new URL(v.request.url),R?.basename)??[],v.html=S(v.html),B&&await B({context:v,executionContext:I}),L&&(v.response.headers=c(L,{sessionCookie:_,protectPrivate:$})(v)),v.response.status=200,v.response.headers.set(x,"text/html; charset=utf-8"),new Response("HEAD"===v.request.method?null:v.html.header+v.html.footer,{headers:v.response.headers,status:200});const U=await f.query(v.request,{requestContext:D??v});if(v.timeline?.record("router.query"),U instanceof Response)return l(v.request,m(U,v.response.headers));v.routerContext=U,v.matches=U.matches;const{loaderData:z,actionData:F,errors:G}=U,J=Object.keys(z).length>0||null!==F||null!==G,K="early"===q||J?new i(U,v.diagnostics,E,v.timeline):void 0;try{B&&await B({context:v,executionContext:I}),v.timeline?.record("prepare")}catch(e){throw K?.cancel(),e}const{isStream:M=!0}=(P?await P({context:v}):void 0)??{};v.isStream=M,v.serverContext={basename:v.routerContext.basename,isServer:!0,response:null};const N=r(f.dataRoutes,v.routerContext),Q=e.createElement(a,{context:v.serverContext},d(e.createElement(o,{router:N,context:v.routerContext,hydrate:!1}),v)),V=new AbortController;let W,X,Y=!1;const Z=()=>re(v.request.signal.reason),ee=()=>clearTimeout(oe),te=()=>{ee(),v.request.signal.removeEventListener("abort",Z)},re=e=>{Y||(Y=!0,W=e,v.timeline?.abort(e),te(),v.didError??=s.RenderCancel,K?.abort(),V.abort(e),X?.abort(e))},oe=setTimeout(()=>{v.didError=s.RenderTimeout,v.timeline?.abort(new Error(`SSR render timed out after ${b}ms`)),re()},b);v.request.signal.aborted?re(v.request.signal.reason):v.request.signal.addEventListener("abort",Z,{once:!0});try{X=await y(Q,{nonce:E,bootstrapScriptContent:"early"===q&&M?`(window.__ssrBoostStream = window.__ssrBoostStream || []).push(["shell"]);${j??""};document.currentScript?.remove();`:j,onError:e=>{const t=C(e);!Y||t.code!==s.RenderAborted&&e!==V.signal.reason||(t.code=v.didError===s.RenderTimeout?s.RenderTimeout:s.RenderCancel);const{code:r}=t;v.didError??=r,k?.({context:v,error:t})},signal:V.signal}),Y&&X.abort(W),Promise.all([X.allReady,K?.done]).then(ee,ee),await X.shellReady,v.timeline?.record("shell.ready"),M||await Promise.all([X.allReady,K?.done])}catch(e){return re(e),await(X?.stream.cancel(e).catch(()=>{})),((e,t,r)=>{const o=t instanceof Error?t:new Error(String(t)),s=r?.({context:e,error:o})||"<!doctype html><p>Internal Server Error</p>",a=new Headers(e.response.headers);return a.set(x,w),new Response("HEAD"===e.request.method?null:s,{headers:a,status:500})})(v,e,T)}try{const e=v.serverContext.response;if(e&&(se=e,Boolean(se&&se.status>=300&&se.status<400&&se.headers.has("Location"))))return re(),await X.stream.cancel().catch(()=>{}),l(v.request,m(e,v.response.headers));const{header:t,footer:r,headers:o,status:s}=((e,{getState:t,onShellReady:r,hydration:o,nonce:s,documentHeaders:a,sessionCookie:n,protectPrivate:i},d)=>{const l=e.serverContext.response;e.response.status=l?.status??e.response.status??e.routerContext.statusCode??200,e.response.headers.has(x)||e.response.headers.set(x,w);const m=r?.({context:e})??{},h="early"===o&&e.isStream,C=u(t?.({context:e}),e.diagnostics,s,Boolean(h));let f=m.header||e.html.header;const y=m.footer||e.html.footer;e.diagnostics?.inspectShell({header:f,footer:y});let R=y;h?f+=C+d.state(!0):R=C+(d?d.state(!1)+d.take():p(e.routerContext,void 0,s))+R;return a&&(e.response.headers=c(a,{sessionCookie:n,protectPrivate:i})(e)),{header:f,footer:R,headers:new Headers(e.response.headers),status:e.response.status}})(v,{getState:g,onShellReady:A,hydration:q,nonce:E,documentHeaders:L,sessionCookie:_,protectPrivate:$},K);if("HEAD"===v.request.method||[204,205,304].includes(s))return re(),await X.stream.cancel().catch(()=>{}),new Response(null,{headers:o,status:s});const a=n(t,X.stream,r,re,te,K,v.timeline,"early"===q&&M),i=h(a,H?(e,t)=>H({context:v,html:e,isEnd:t}):void 0,v.diagnostics);return X.start(),new Response(i,{headers:o,status:s})}catch(e){throw re(e),X.stream.locked||await X.stream.cancel(e).catch(()=>{}),e}var se},R=async(e,t,r,o)=>{const s=t.timeline??f(t.request,Boolean(t.diagnostics));s&&(t.timeline=s);try{const a=await y(e,t,r,o),{sessionCookie:n}=r;return t.diagnostics?.inspectCachePolicy(a.headers,Boolean(n&&d(t.request,n))),s?.response(a)??a}catch(e){throw s?.abort(e),s?.end(),e}};export{R as default};
|
|
2
2
|
//# sourceMappingURL=render.js.map
|
package/core/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sources":["../../src/core/render.tsx"],"sourcesContent":[null],"names":["HTML_CONTENT_TYPE","CONTENT_TYPE","renderResponse","async","createApp","handler","renderToStream","policy","spaShell","context","abortDelay","getState","hydration","nonce","bootstrapScriptContent","onError","onResponse","onRouterReady","onShellError","onShellReady","prepare","routerRequestContext","documentHeaders","rules","sessionCookie","protectPrivate","executionContext","mode","select","request","diagnostics","active","response","headers","has","set","isSpa","isStream","matches","matchRoutes","dataRoutes","URL","url","basename","html","status","Response","method","header","footer","queried","query","requestContext","timeline","record","headResponse","mergeResponseHeaders","routerContext","dataStream","DataStream","error","cancel","serverContext","isServer","router","createStaticRouter","node","React","createElement","ServerProvider","StaticRouterProvider","hydrate","renderController","AbortController","abortReason","output","hasAborted","onRequestAbort","abort","signal","reason","clearAbortTimer","clearTimeout","abortTimer","cleanup","removeEventListener","didError","StreamError","RenderCancel","setTimeout","RenderTimeout","Error","aborted","addEventListener","once","streamError","obtainStreamError","code","RenderAborted","Promise","all","allReady","done","then","shellReady","stream","catch","shellError","String","Headers","createShellErrorResponse","serverResponse","Boolean","statusCode","shell","isEarly","customState","buildCustomState","shellFooter","inspectShell","state","take","prepareHtmlResponse","includes","body","composeHtml","transformed","transformHtml","isEnd","
|
|
1
|
+
{"version":3,"file":"render.js","sources":["../../src/core/render.tsx"],"sourcesContent":[null],"names":["HTML_CONTENT_TYPE","CONTENT_TYPE","renderResponse","async","createApp","handler","renderToStream","policy","spaShell","context","abortDelay","getState","hydration","nonce","bootstrapScriptContent","onError","onResponse","onRouterReady","onShellError","onShellReady","prepare","routerRequestContext","documentHeaders","rules","sessionCookie","protectPrivate","executionContext","mode","select","request","diagnostics","active","response","headers","has","set","isSpa","isStream","matches","matchRoutes","dataRoutes","URL","url","basename","html","status","Response","method","header","footer","queried","query","requestContext","timeline","record","headResponse","mergeResponseHeaders","routerContext","loaderData","actionData","errors","hasRouterData","Object","keys","length","dataStream","DataStream","undefined","error","cancel","serverContext","isServer","router","createStaticRouter","node","React","createElement","ServerProvider","StaticRouterProvider","hydrate","renderController","AbortController","abortReason","output","hasAborted","onRequestAbort","abort","signal","reason","clearAbortTimer","clearTimeout","abortTimer","cleanup","removeEventListener","didError","StreamError","RenderCancel","setTimeout","RenderTimeout","Error","aborted","addEventListener","once","streamError","obtainStreamError","code","RenderAborted","Promise","all","allReady","done","then","shellReady","stream","catch","shellError","String","Headers","createShellErrorResponse","serverResponse","Boolean","statusCode","shell","isEarly","customState","buildCustomState","shellFooter","inspectShell","state","take","buildRouterState","prepareHtmlResponse","includes","body","composeHtml","transformed","transformHtml","isEnd","start","locked","render","params","options","createTimeline","inspectCachePolicy","hasCookie","end"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"node:fs";import{performance as o}from"node:perf_hooks";import r from"chalk";import
|
|
1
|
+
import e from"node:fs";import{performance as o}from"node:perf_hooks";import r from"chalk";import t from"../constants/cli-actions.js";import s from"../constants/cli-name.js";import{getMarkerFile as n}from"./dev-marker.js";import i from"./print-server-urls.js";import m from"./resolve-server-urls.js";async function a(a,{server:l,version:d="unknown"}={}){const{action:p}=a.getPluginConfig()??{},{isProd:f,host:c,root:g,isSPA:h,base:v}=a.getParams(),u=n(g),w=a.getLogger(),b=global.viteBoostStartTime??o.now(),S=r.dim(`ready in ${r.reset(r.bold(Math.ceil(o.now()-b)))} ms`);w.info(`\n ${r.green(`${r.bold(s.toUpperCase())} v${d}`)} ${S}\n`,{clear:!w.hasWarned});const $=a.getVite()?.config,j=!$?.mode&&!e.existsSync(u),P=l?await m(l,{host:c,isHttps:Boolean($?.server.https),rawBase:$?.rawBase??new URL(v??"/","http://localhost").pathname}):null,k=$?.mode||j?a.mode:`production ${r.red("NODE_ENV=development")}`,y=h?"SPA":"SSR";if(w.info(r.dim(r.green(" ➜"))+r.dim(" Mode: ")+r.blue(k)),w.info(r.dim(r.green(" ➜"))+r.dim(" Type: ")+r.blue(y)),f)P&&i(P,e=>w.info(e));else{const e=a.getVite();e.resolvedUrls=P,e.printUrls()}p===t.dev&&w.info(r.dim(r.green(" ➜"))+r.dim(" press ")+r.bold("h")+r.dim(" to show help"))}export{a as default};
|
|
2
2
|
//# sourceMappingURL=print-server-info.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"print-server-info.js","sources":["../../src/helpers/print-server-info.ts"],"sourcesContent":[null],"names":["async","printServerInfo","config","server","version","action","getPluginConfig","isProd","host","root","isSPA","getParams","devMarker","getMarkerFile","Logger","getLogger","perfStart","global","viteBoostStartTime","performance","now","startupDurationString","chalk","dim","reset","bold","Math","ceil","info","green","cliName","toUpperCase","clear","hasWarned","viteConfig","getVite","isProdBuild","mode","fs","existsSync","resolvedUrls","resolveServerUrls","isHttps","Boolean","https","rawBase","red","type","blue","printServerUrls","msg","vite","printUrls","CliActions","dev"],"mappings":"2SAoBAA,eAAeC,EACbC,GACAC,OAAEA,EAAMC,QAAEA,EAAU,WAAsC,IAE1D,MAAMC,OAAEA,GAAWH,EAAOI,mBAAqB,CAAA,GACzCC,OAAEA,EAAMC,KAAEA,EAAIC,KAAEA,EAAIC,MAAEA,
|
|
1
|
+
{"version":3,"file":"print-server-info.js","sources":["../../src/helpers/print-server-info.ts"],"sourcesContent":[null],"names":["async","printServerInfo","config","server","version","action","getPluginConfig","isProd","host","root","isSPA","base","getParams","devMarker","getMarkerFile","Logger","getLogger","perfStart","global","viteBoostStartTime","performance","now","startupDurationString","chalk","dim","reset","bold","Math","ceil","info","green","cliName","toUpperCase","clear","hasWarned","viteConfig","getVite","isProdBuild","mode","fs","existsSync","resolvedUrls","resolveServerUrls","isHttps","Boolean","https","rawBase","URL","pathname","red","type","blue","printServerUrls","msg","vite","printUrls","CliActions","dev"],"mappings":"2SAoBAA,eAAeC,EACbC,GACAC,OAAEA,EAAMC,QAAEA,EAAU,WAAsC,IAE1D,MAAMC,OAAEA,GAAWH,EAAOI,mBAAqB,CAAA,GACzCC,OAAEA,EAAMC,KAAEA,EAAIC,KAAEA,EAAIC,MAAEA,EAAKC,KAAEA,GAAST,EAAOU,YAC7CC,EAAYC,EAAcL,GAE1BM,EAASb,EAAOc,YAChBC,EAAYC,OAAOC,oBAAsBC,EAAYC,MACrDC,EAAwBC,EAAMC,IAClC,YAAYD,EAAME,MAAMF,EAAMG,KAAKC,KAAKC,KAAKR,EAAYC,MAAQJ,WAGnEF,EAAOc,KACL,OAAON,EAAMO,MACX,GAAGP,EAAMG,KAAKK,EAAQC,mBAAmB5B,SACrCkB,MACN,CAAEW,OAAQlB,EAAOmB,YAGnB,MAAMC,EAAkEjC,EAAOkC,WAAWlC,OACpFmC,GAAeF,GAAYG,OAASC,EAAGC,WAAW3B,GAClD4B,EAAetC,QACXuC,EAAkBvC,EAAQ,CAC9BK,OACAmC,QAASC,QAAQT,GAAYhC,OAAO0C,OACpCC,QAASX,GAAYW,SAAW,IAAIC,IAAIpC,GAAQ,IAAK,oBAAoBqC,WAE3E,KACEV,EACJH,GAAYG,MAAQD,EAChBnC,EAAOoC,KACP,cAAcf,EAAM0B,IAAI,0BACxBC,EAAOxC,EAAQ,MAAQ,MAK7B,GAHAK,EAAOc,KAAKN,EAAMC,IAAID,EAAMO,MAAM,QAAUP,EAAMC,IAAI,eAAiBD,EAAM4B,KAAKb,IAClFvB,EAAOc,KAAKN,EAAMC,IAAID,EAAMO,MAAM,QAAUP,EAAMC,IAAI,eAAiBD,EAAM4B,KAAKD,IAE7E3C,EAKMkC,GACTW,EAAgBX,EAAeY,GAAQtC,EAAOc,KAAKwB,QANxC,CACX,MAAMC,EAAOpD,EAAOkC,UAEpBkB,EAAKb,aAAeA,EACpBa,EAAKC,WACP,CAIIlD,IAAWmD,EAAWC,KACxB1C,EAAOc,KACLN,EAAMC,IAAID,EAAMO,MAAM,QACpBP,EAAMC,IAAI,YACVD,EAAMG,KAAK,KACXH,EAAMC,IAAI,iBAGlB"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { TRenderToStream } from '../core/render.js';
|
|
2
|
-
/**
|
|
3
|
-
* Adapt React pipeable rendering to Fetch streams with byte-based backpressure.
|
|
4
|
-
*/
|
|
2
|
+
/** Use React's native Web stream when available, retaining the React 18 bridge. */
|
|
5
3
|
declare const renderToStream: TRenderToStream;
|
|
6
4
|
export default renderToStream;
|
package/node/render-to-stream.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{PassThrough as
|
|
1
|
+
import{PassThrough as e,Readable as r}from"node:stream";import*as t from"react-dom/server";import o from"../edge/render-to-stream.js";const n="function"==typeof t.renderToReadableStream?o:(o,n)=>{const a=new e,s=r.toWeb(a,{strategy:{highWaterMark:a.readableHighWaterMark,size:e=>e.byteLength}});let i,l,c,d;const m=new Promise((e,r)=>{i=r,c=e}),b=new Promise((e,r)=>{l=r,d=e});m.catch(()=>{}),b.catch(()=>{});let p=!1,f=!1;const g=t.renderToPipeableStream(o,{nonce:n.nonce,bootstrapScriptContent:n.bootstrapScriptContent,onAllReady:c,onError:n.onError,onShellError:e=>{const r=e instanceof Error?e:new Error(String(e));p=!0,i(r),l(r)},onShellReady:()=>{p=!0,d()}}),h=e=>{if(!f){if(f=!0,!p){p=!0;const r=e instanceof Error?e:new Error("string"==typeof e?e:"Render aborted");l(r),i(r)}g.abort(e)}},E=()=>h(n.signal.reason),y=()=>n.signal.removeEventListener("abort",E);n.signal.aborted?E():n.signal.addEventListener("abort",E,{once:!0}),m.then(y,y);let S=!1;return{allReady:m,abort:h,shellReady:b,start:()=>{S||(S=!0,g.pipe(a))},stream:s}};export{n as default};
|
|
2
2
|
//# sourceMappingURL=render-to-stream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-to-stream.js","sources":["../../src/node/render-to-stream.ts"],"sourcesContent":[null],"names":["renderToStream","node","options","destination","PassThrough","stream","Readable","toWeb","strategy","highWaterMark","readableHighWaterMark","size","chunk","byteLength","rejectAll","rejectShell","resolveAll","resolveShell","allReady","Promise","resolve","reject","shellReady","catch","hasShellSettled","hasAborted","rendered","renderToPipeableStream","nonce","bootstrapScriptContent","onAllReady","onError","onShellError","error","shellError","Error","String","onShellReady","abort","reason","onAbort","signal","cleanup","removeEventListener","aborted","addEventListener","once","then","hasStarted","start","pipe"],"mappings":"
|
|
1
|
+
{"version":3,"file":"render-to-stream.js","sources":["../../src/node/render-to-stream.ts"],"sourcesContent":[null],"names":["renderToStream","ReactDOMServer","renderToReadableStream","renderWebStream","node","options","destination","PassThrough","stream","Readable","toWeb","strategy","highWaterMark","readableHighWaterMark","size","chunk","byteLength","rejectAll","rejectShell","resolveAll","resolveShell","allReady","Promise","resolve","reject","shellReady","catch","hasShellSettled","hasAborted","rendered","renderToPipeableStream","nonce","bootstrapScriptContent","onAllReady","onError","onShellError","error","shellError","Error","String","onShellReady","abort","reason","onAbort","signal","cleanup","removeEventListener","aborted","addEventListener","once","then","hasStarted","start","pipe"],"mappings":"sIAQA,MA+HMA,EAC6C,mBAA1CC,EAAeC,uBAClBC,EAjIwC,CAACC,EAAMC,KACnD,MAAMC,EAAc,IAAIC,EAClBC,EAASC,EAASC,MAAMJ,EAAa,CACzCK,SAAU,CACRC,cAAeN,EAAYO,sBAK3BC,KAAOC,GAAsBA,EAAMC,cAGvC,IAAIC,EACAC,EACAC,EACAC,EAKJ,MAAMC,EAAW,IAAIC,QAAc,CAACC,EAASC,KAC3CP,EAAYO,EACZL,EAAaI,IAMTE,EAAa,IAAIH,QAAc,CAACC,EAASC,KAC7CN,EAAcM,EACdJ,EAAeG,IAGZF,EAASK,MAAM,QACfD,EAAWC,MAAM,QAEtB,IAAIC,GAAkB,EAClBC,GAAa,EACjB,MAAMC,EAAW5B,EAAe6B,uBAAuB1B,EAAM,CAC3D2B,MAAO1B,EAAQ0B,MACfC,uBAAwB3B,EAAQ2B,uBAChCC,WAAYd,EACZe,QAAS7B,EAAQ6B,QAKjBC,aAAeC,IACb,MAAMC,EAAaD,aAAiBE,MAAQF,EAAQ,IAAIE,MAAMC,OAAOH,IAErET,GAAkB,EAClBV,EAAUoB,GACVnB,EAAYmB,IAMdG,aAAc,KACZb,GAAkB,EAClBP,OAOEqB,EAASC,IACb,IAAId,EAAJ,CASA,GALAA,GAAa,GAKRD,EAAiB,CACpBA,GAAkB,EAClB,MACMS,EAAQM,aAAkBJ,MAAQI,EAAS,IAAIJ,MADnB,iBAAXI,EAAsBA,EAAS,kBAGtDxB,EAAYkB,GACZnB,EAAUmB,EACZ,CAEAP,EAASY,MAAMC,EAhBf,GAsBIC,EAAU,IAAYF,EAAMpC,EAAQuC,OAAOF,QAK3CG,EAAU,IAAYxC,EAAQuC,OAAOE,oBAAoB,QAASH,GAEpEtC,EAAQuC,OAAOG,QACjBJ,IAEAtC,EAAQuC,OAAOI,iBAAiB,QAASL,EAAS,CAAEM,MAAM,IAGvD5B,EAAS6B,KAAKL,EAASA,GAC5B,IAAIM,GAAa,EAEjB,MAAO,CACL9B,WACAoB,QACAhB,aAKA2B,MAAO,KACAD,IACHA,GAAa,EACbtB,EAASwB,KAAK/C,KAGlBE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getHeaderEntries as e,getSetCookieHeaders as r}from"../core/headers.js";const a="Set-Cookie",o=(o,
|
|
1
|
+
import{getHeaderEntries as e,getSetCookieHeaders as r}from"../core/headers.js";const a="Set-Cookie",o=(o,t)=>{o.statusCode=t.status,e(t.headers).forEach(([e,r])=>o.setHeader(e,r));const d=r(t.headers);if("function"==typeof o.appendHeader)d.forEach(e=>o.appendHeader(a,e));else if(d.length){const e=o.getHeader(a),r=Array.isArray(e)?e:[String(e)];o.setHeader(a,e?[...r,...d]:d)}},t=e=>new Promise((r,a)=>{const o=()=>{e.off("close",t),e.off("drain",d),e.off("error",n)},t=()=>{o(),a(new Error("Response closed before drain."))},d=()=>{o(),r()},n=e=>{o(),a(e)};e.once("close",t),e.once("drain",d),e.once("error",n)}),d=async(e,r)=>{if(e.destroyed||e.writableEnded)return void await(r.body?.cancel());if(e.headersSent||o(e,r),!r.body||"HEAD"===e.req?.method||[204,205,304].includes(e.statusCode))return await(r.body?.cancel()),void e.end();const a=r.body.getReader(),d=()=>{e.writableEnded||a.cancel().catch(()=>{})};e.once("close",d);try{for(;;){const r=await a.read();if(r.done)break;if(e.destroyed||e.writableEnded)return void await a.cancel();const o=e.write(r.value);e.flush?.(),o||await t(e)}e.destroyed||e.writableEnded||e.end()}catch(r){await a.cancel(r).catch(()=>{}),e.destroyed||e.destroy(r)}finally{e.off("close",d),a.releaseLock()}};export{d as default,o as writeFetchHeaders};
|
|
2
2
|
//# sourceMappingURL=write-fetch-response.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-fetch-response.js","sources":["../../src/node/write-fetch-response.ts"],"sourcesContent":[null],"names":["SET_COOKIE","writeFetchHeaders","res","response","statusCode","status","getHeaderEntries","headers","forEach","name","value","setHeader","cookies","getSetCookieHeaders","appendHeader","cookie","length","existing","getHeader","previousCookies","Array","isArray","String","waitForDrain","Promise","resolve","reject","cleanup","off","onClose","onDrain","onError","Error","error","once","writeFetchResponse","async","destroyed","writableEnded","body","cancel","headersSent","req","method","includes","end","reader","getReader","catch","chunk","read","done","write","flush","destroy","releaseLock"],"mappings":"+EAGA,MAAMA,EAAa,aAKbC,EAAoB,CAACC,EAAsBC,KAC/CD,EAAIE,WAAaD,EAASE,OAC1BC,EAAiBH,EAASI,SAASC,QAAQ,EAAEC,EAAMC,KAAWR,EAAIS,UAAUF,EAAMC,IAClF,MAAME,EAAUC,EAAoBV,EAASI,SAE7C,GAAgC,mBAArBL,EAAIY,aACbF,EAAQJ,QAASO,GAAWb,EAAIY,aAAad,EAAYe,SACpD,GAAIH,EAAQI,OAAQ,CAIzB,MAAMC,EAAWf,EAAIgB,UAAUlB,GACzBmB,EAAkBC,MAAMC,QAAQJ,GAAYA,EAAW,CAACK,OAAOL,IAErEf,EAAIS,UAAUX,EAAYiB,EAAW,IAAIE,KAAoBP,GAAWA,EAC1E,GAMIW,EAAgBrB,GACpB,IAAIsB,QAAQ,CAACC,EAASC,KAIpB,MAAMC,EAAU,KACdzB,EAAI0B,IAAI,QAASC,GACjB3B,EAAI0B,IAAI,QAASE,GACjB5B,EAAI0B,IAAI,QAASG,IAMbF,EAAU,KACdF,IACAD,EAAO,IAAIM,MAAM,mCAMbF,EAAU,KACdH,IACAF,KAMIM,EAAWE,IACfN,IACAD,EAAOO,IAGT/B,EAAIgC,KAAK,QAASL,GAClB3B,EAAIgC,KAAK,QAASJ,GAClB5B,EAAIgC,KAAK,QAASH,KAMhBI,EAAqBC,MAAOlC,EAAsBC,KACtD,GAAID,EAAImC,WAAanC,EAAIoC,cAGvB,kBAFMnC,EAASoC,MAAMC,UASvB,GAJKtC,EAAIuC,aACPxC,EAAkBC,EAAKC,IAGpBA,EAASoC,MAA4B,SAApBrC,EAAIwC,KAAKC,QAAqB,CAAC,IAAK,IAAK,KAAKC,SAAS1C,EAAIE,YAI/E,aAHMD,EAASoC,MAAMC,eACrBtC,EAAI2C,MAKN,MAAMC,EAAS3C,EAASoC,KAAKQ,YAKvBlB,EAAU,KACT3B,EAAIoC,eACFQ,EAAON,SAASQ,MAAM,SAI/B9C,EAAIgC,KAAK,QAASL,GAElB,IACE,OAAa,CACX,MAAMoB,QAAcH,EAAOI,OAE3B,GAAID,EAAME,KACR,MAGF,GAAIjD,EAAImC,WAAanC,EAAIoC,cAGvB,kBAFMQ,EAAON,
|
|
1
|
+
{"version":3,"file":"write-fetch-response.js","sources":["../../src/node/write-fetch-response.ts"],"sourcesContent":[null],"names":["SET_COOKIE","writeFetchHeaders","res","response","statusCode","status","getHeaderEntries","headers","forEach","name","value","setHeader","cookies","getSetCookieHeaders","appendHeader","cookie","length","existing","getHeader","previousCookies","Array","isArray","String","waitForDrain","Promise","resolve","reject","cleanup","off","onClose","onDrain","onError","Error","error","once","writeFetchResponse","async","destroyed","writableEnded","body","cancel","headersSent","req","method","includes","end","reader","getReader","catch","chunk","read","done","hasCapacity","write","flush","destroy","releaseLock"],"mappings":"+EAGA,MAAMA,EAAa,aAKbC,EAAoB,CAACC,EAAsBC,KAC/CD,EAAIE,WAAaD,EAASE,OAC1BC,EAAiBH,EAASI,SAASC,QAAQ,EAAEC,EAAMC,KAAWR,EAAIS,UAAUF,EAAMC,IAClF,MAAME,EAAUC,EAAoBV,EAASI,SAE7C,GAAgC,mBAArBL,EAAIY,aACbF,EAAQJ,QAASO,GAAWb,EAAIY,aAAad,EAAYe,SACpD,GAAIH,EAAQI,OAAQ,CAIzB,MAAMC,EAAWf,EAAIgB,UAAUlB,GACzBmB,EAAkBC,MAAMC,QAAQJ,GAAYA,EAAW,CAACK,OAAOL,IAErEf,EAAIS,UAAUX,EAAYiB,EAAW,IAAIE,KAAoBP,GAAWA,EAC1E,GAMIW,EAAgBrB,GACpB,IAAIsB,QAAQ,CAACC,EAASC,KAIpB,MAAMC,EAAU,KACdzB,EAAI0B,IAAI,QAASC,GACjB3B,EAAI0B,IAAI,QAASE,GACjB5B,EAAI0B,IAAI,QAASG,IAMbF,EAAU,KACdF,IACAD,EAAO,IAAIM,MAAM,mCAMbF,EAAU,KACdH,IACAF,KAMIM,EAAWE,IACfN,IACAD,EAAOO,IAGT/B,EAAIgC,KAAK,QAASL,GAClB3B,EAAIgC,KAAK,QAASJ,GAClB5B,EAAIgC,KAAK,QAASH,KAMhBI,EAAqBC,MAAOlC,EAAsBC,KACtD,GAAID,EAAImC,WAAanC,EAAIoC,cAGvB,kBAFMnC,EAASoC,MAAMC,UASvB,GAJKtC,EAAIuC,aACPxC,EAAkBC,EAAKC,IAGpBA,EAASoC,MAA4B,SAApBrC,EAAIwC,KAAKC,QAAqB,CAAC,IAAK,IAAK,KAAKC,SAAS1C,EAAIE,YAI/E,aAHMD,EAASoC,MAAMC,eACrBtC,EAAI2C,MAKN,MAAMC,EAAS3C,EAASoC,KAAKQ,YAKvBlB,EAAU,KACT3B,EAAIoC,eACFQ,EAAON,SAASQ,MAAM,SAI/B9C,EAAIgC,KAAK,QAASL,GAElB,IACE,OAAa,CACX,MAAMoB,QAAcH,EAAOI,OAE3B,GAAID,EAAME,KACR,MAGF,GAAIjD,EAAImC,WAAanC,EAAIoC,cAGvB,kBAFMQ,EAAON,SAKf,MAAMY,EAAclD,EAAImD,MAAMJ,EAAMvC,OAKnCR,EAAiDoD,UAE7CF,SACG7B,EAAarB,EAEvB,CAEKA,EAAImC,WAAcnC,EAAIoC,eACzBpC,EAAI2C,KAER,CAAE,MAAOZ,SACDa,EAAON,OAAOP,GAAOe,MAAM,QAE5B9C,EAAImC,WACPnC,EAAIqD,QAAQtB,EAEhB,SACE/B,EAAI0B,IAAI,QAASC,GACjBiB,EAAOU,aACT"}
|
package/package.json
CHANGED
package/services/build.d.ts
CHANGED
|
@@ -106,6 +106,10 @@ declare class Build {
|
|
|
106
106
|
* Build assets manifest file
|
|
107
107
|
*/
|
|
108
108
|
protected buildManifest(): void;
|
|
109
|
+
/**
|
|
110
|
+
* Persist only the resolved serving settings, with paths relative to the build output.
|
|
111
|
+
*/
|
|
112
|
+
protected writeProductionConfig(): void;
|
|
109
113
|
/**
|
|
110
114
|
* Change general directive Disallow to Allow in robots.txt.
|
|
111
115
|
*/
|
package/services/build.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import i from"node:child_process";import s from"node:fs";import
|
|
1
|
+
import i from"node:child_process";import s from"node:fs";import e from"node:path";import t from"chalk";import{resolveConfig as o}from"vite";import r from"../cli/diagnostic-codes.js";import n from"../cli/helpers/vite-reset-cache.js";import l from"../helpers/create-focus-only.js";import{createDevMarker as c}from"../helpers/dev-marker.js";import d from"../helpers/plugin-config.js";import a from"../helpers/process-stop.js";import u from"./server-config.js";import h from"./ssr-manifest.js";class p{isProd;nodeEnv;buildDir;viteConfig;pluginConfig;params={mode:"",clientOptions:"",serverOptions:"",focusOnly:"app",isWatch:!1,isUnlockRobots:!1,isEject:!1,isServerless:!1,isNoWarnings:!1};abortController=null;runningBuild=[];hasPreviewModeExitListener=!1;diagnosticCodes=new Set;constructor(i){this.params={...this.params,...i}}async makeConfig(){const{mode:i}=this.params;this.viteConfig=await o({},"build",i,"production"),this.pluginConfig=d(this.viteConfig),this.buildDir=e.resolve(this.viteConfig.root,this.viteConfig.build.outDir),this.nodeEnv=process.env.NODE_ENV||"production",this.isProd="production"===this.nodeEnv}clearBuildFolder(){s.existsSync(this.buildDir)&&s.rmSync(this.buildDir,{recursive:!0})}getIsProd(){return this.isProd}getNodeEnv(){return this.nodeEnv}getRunningBuildNames(){return this.runningBuild.map(({name:i})=>i)}promisifyProcess(i,s=!1){const e=new Promise((e,t)=>{i.on("exit",i=>{e(i)}),i.on("close",i=>{e(i)}),i.on("error",i=>{t(i)}),s&&i.stderr?.on("data",i=>{const s=Buffer.from(i).toString();(s.includes("warning")||s.includes("WARNING"))&&e(1)})});i.stdout?.pipe(process.stdout),i.stderr?.pipe(process.stderr);for(const s of[i.stdout,i.stderr]){let i="";s?.on("data",s=>{const e=i+Buffer.from(s).toString();r.filter(i=>e.includes(i)).forEach(i=>this.diagnosticCodes.add(i)),i=e.slice(-80)})}return{promise:e,command:i}}buildManifest(){console.info(t.blue("Building routes manifest file"));const i=u.init({isProd:this.isProd,mode:this.params.mode},{root:this.viteConfig.root,clientFile:this.pluginConfig.clientFile});h.get(i,{buildDir:this.viteConfig.build.outDir,viteAliases:this.viteConfig.resolve.alias,basename:this.viteConfig.base,renderBuiltUrl:this.viteConfig?.experimental?.renderBuiltUrl}).buildRoutesManifest()}writeProductionConfig(){const{base:i,mode:t}=this.viteConfig,{indexFile:o="index.html",serverFile:r="server.ts"}=this.pluginConfig,n={version:1,root:"..",base:i??"/",mode:t??this.params.mode,publicDir:"client",indexFile:e.posix.join("client",o),serverFile:`server/${e.parse(r).name}.js`},l=e.join(this.buildDir,"server");s.mkdirSync(l,{recursive:!0}),s.writeFileSync(e.join(l,"ssr-boost.json"),`${JSON.stringify(n,null,2)}\n`)}unlockRobots(){const i=`${this.buildDir}/client/robots.txt`;if(!s.existsSync(i))return void console.warn(`Failed to unlock robots.txt, file not exist: ${i}`);const e=s.readFileSync(i,{encoding:"utf-8"}).replace(/Disallow: \/$/m,"Allow: /");s.writeFileSync(i,e,{encoding:"utf-8"}),console.info(t.blue("\nrobots.txt unlocked."))}eject(){const i=`${this.buildDir}/server/start.js`;s.writeFileSync(i,"import runProd from '../cli/run-prod.js';\n\nconst VERSION = process.env.VERSION || \"1.0.0\";\nconst PORT = process.env.PORT || 3000;\nconst IS_HOST = process.env.IS_HOST || \"0\";\nconst ONLY_CLIENT = process.env.ONLY_CLIENT || \"0\";\n\nawait runProd({\n version: VERSION,\n isHost: IS_HOST === '1',\n isPrintInfo: true,\n port: PORT,\n onlyClient: ONLY_CLIENT === '1',\n });\n",{encoding:"utf-8"})}createServerless(){const i=`${this.buildDir}/server/serverless.js`;s.writeFileSync(i,"import runServerless from '../cli/run-serverless.js';\n\nexport default await runServerless({ version: process.env.VERSION || \"1.0.0\" });\n",{encoding:"utf-8"})}async spawnBuild(s,e,t={}){const{mode:o,isNoWarnings:r}=this.params,{focusOnly:n=this.params.focusOnly,shouldWait:c=!1,env:d={}}=t,a=o&&!e.includes("--mode")?`--mode ${o}`:"",u=this.promisifyProcess(i.spawn(`vite build ${e} ${a} --emptyOutDir`,{signal:this.abortController.signal,stdio:[process.stdin,"pipe","pipe"],shell:!0,env:{...process.env,...d,FORCE_COLOR:"2",SSR_BOOST_IS_SSR:l(n).isOnlyClient()?"0":"1",SSR_BOOST_ACTION:global.viteBoostAction}}),r);this.runningBuild.push({name:s,buildProcess:u}),c&&await this.waitLastBuild()}async waitLastBuild(){const i=this.runningBuild.at(-1);if(!i)return;const s=await i.buildProcess.promise;a(s,!0)}runPreviewMode(){this.hasPreviewModeExitListener||(process.on("exit",()=>{this.abortController.abort()}),this.hasPreviewModeExitListener=!0);const{onFinish:i}=this.params;let s=this.runningBuild.length;const e=t=>{Buffer.from(t).toString().includes("built in")&&(s-=1,s||(this.runningBuild.forEach(({buildProcess:i})=>{i.command.stdout?.removeListener("data",e)}),c(this.isProd,this.viteConfig),this.writeProductionConfig(),i?.()))};this.runningBuild.forEach(({buildProcess:i})=>{i.command.stdout?.on("data",e)})}async build(){await this.makeConfig(),await n(),this.clearBuildFolder(),this.diagnosticCodes.clear();const{clientOptions:i,serverOptions:t,onFinish:o,isWatch:r,focusOnly:d,isEject:a,isServerless:u,isUnlockRobots:h}=this.params,{outDir:p}=this.viteConfig.build,f=l(d);this.abortController=new AbortController,this.runningBuild=[],f.isClient()&&await this.spawnBuild("client",`${i} --outDir ${p}/client`,{shouldWait:!r}),f.isServer()&&(await this.spawnBuild("server",`${t} --outDir ${p}/server --ssr ${this.pluginConfig.serverFile}`,{shouldWait:!r}),r||(this.buildManifest(),a&&this.eject(),u&&this.createServerless()));const{entrypoint:m}=this.pluginConfig;if(m?.length&&f.isEntrypoint())for(const{name:i,type:s,serverFile:e,buildOptions:t=""}of m){const o=e&&"ssr"===s?`--ssr ${e}`:"";await this.spawnBuild(i,`${t} ${o} --outDir ${p}/${i}`,{shouldWait:!r,focusOnly:"ssr"===s?"server":"client",env:{SSR_BOOST_CUSTOM_ENTRYPOINT_BUILD_NAME:i}})}r?this.runPreviewMode():(h&&this.unlockRobots(),c(this.isProd,this.viteConfig),this.writeProductionConfig(),s.mkdirSync(this.buildDir,{recursive:!0}),s.writeFileSync(e.join(this.buildDir,"ssr-boost-diagnostics.json"),JSON.stringify({codes:[...this.diagnosticCodes].sort((i,s)=>i.localeCompare(s))},null,2)),o?.())}}export{p as default};
|
|
2
2
|
//# sourceMappingURL=build.js.map
|
package/services/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sources":["../../src/services/build.ts"],"sourcesContent":[null],"names":["Build","isProd","nodeEnv","buildDir","viteConfig","pluginConfig","params","mode","clientOptions","serverOptions","focusOnly","isWatch","isUnlockRobots","isEject","isServerless","isNoWarnings","abortController","runningBuild","hasPreviewModeExitListener","diagnosticCodes","Set","constructor","this","makeConfig","resolveConfig","getPluginConfig","path","resolve","root","build","outDir","process","env","NODE_ENV","clearBuildFolder","fs","existsSync","rmSync","recursive","getIsProd","getNodeEnv","getRunningBuildNames","map","name","promisifyProcess","command","isRejectWarnings","promise","Promise","reject","on","code","message","stderr","buff","msg","Buffer","from","toString","includes","stdout","pipe","stream","tail","chunk","text","DIAGNOSTIC_CODES","filter","forEach","add","slice","buildManifest","console","info","chalk","blue","serverConfig","ServerConfig","init","clientFile","SsrManifest","get","viteAliases","alias","basename","base","renderBuiltUrl","experimental","buildRoutesManifest","unlockRobots","robotsFile","warn","data","readFileSync","encoding","replace","
|
|
1
|
+
{"version":3,"file":"build.js","sources":["../../src/services/build.ts"],"sourcesContent":[null],"names":["Build","isProd","nodeEnv","buildDir","viteConfig","pluginConfig","params","mode","clientOptions","serverOptions","focusOnly","isWatch","isUnlockRobots","isEject","isServerless","isNoWarnings","abortController","runningBuild","hasPreviewModeExitListener","diagnosticCodes","Set","constructor","this","makeConfig","resolveConfig","getPluginConfig","path","resolve","root","build","outDir","process","env","NODE_ENV","clearBuildFolder","fs","existsSync","rmSync","recursive","getIsProd","getNodeEnv","getRunningBuildNames","map","name","promisifyProcess","command","isRejectWarnings","promise","Promise","reject","on","code","message","stderr","buff","msg","Buffer","from","toString","includes","stdout","pipe","stream","tail","chunk","text","DIAGNOSTIC_CODES","filter","forEach","add","slice","buildManifest","console","info","chalk","blue","serverConfig","ServerConfig","init","clientFile","SsrManifest","get","viteAliases","alias","basename","base","renderBuiltUrl","experimental","buildRoutesManifest","writeProductionConfig","indexFile","serverFile","config","version","publicDir","posix","join","parse","directory","mkdirSync","writeFileSync","JSON","stringify","unlockRobots","robotsFile","warn","data","readFileSync","encoding","replace","eject","entrypoint","createServerless","spawnBuild","buildOptions","shouldWait","modeOpt","buildProcess","childProcess","spawn","signal","stdio","stdin","shell","FORCE_COLOR","SSR_BOOST_IS_SSR","createFocusOnly","isOnlyClient","SSR_BOOST_ACTION","global","viteBoostAction","push","waitLastBuild","latestProcess","at","exitCode","processStop","runPreviewMode","abort","onFinish","buildCount","length","listener","removeListener","createDevMarker","viteResetCache","clear","focus","AbortController","isClient","isServer","isEntrypoint","type","cliOptions","SSR_BOOST_CUSTOM_ENTRYPOINT_BUILD_NAME","codes","sort","a","b","localeCompare"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface IProductionConfig {
|
|
2
|
+
version: 1;
|
|
3
|
+
root: string;
|
|
4
|
+
base: string;
|
|
5
|
+
mode: string;
|
|
6
|
+
publicDir: string;
|
|
7
|
+
indexFile: string;
|
|
8
|
+
serverFile: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Read relocatable build settings while retaining conventional paths for older builds.
|
|
12
|
+
*/
|
|
13
|
+
declare const loadProductionConfig: (buildDir?: string) => IProductionConfig | undefined;
|
|
14
|
+
export type { IProductionConfig };
|
|
15
|
+
export default loadProductionConfig;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import o from"node:fs";import r from"node:path";const e=e=>{const t=[e,"./build","./dist"].find(r=>r&&o.existsSync(r));if(!t)return;const s=r.resolve(t,"server/ssr-boost.json");let i;try{i=o.readFileSync(s,"utf8")}catch(o){if("ENOENT"===o.code)return;throw o}const n=JSON.parse(i);if(1!==n?.version||["root","base","mode","publicDir","indexFile","serverFile"].some(o=>"string"!=typeof n[o]))throw new Error(`Invalid production configuration: ${s}. Run ssr-boost build again.`);return{...n,root:r.resolve(r.dirname(s),n.root)}};export{e as default};
|
|
2
|
+
//# sourceMappingURL=production-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"production-config.js","sources":["../../src/services/production-config.ts"],"sourcesContent":[null],"names":["loadProductionConfig","buildDir","directory","find","candidate","fs","existsSync","filename","path","resolve","contents","readFileSync","error","code","config","JSON","parse","version","some","key","Error","root","dirname"],"mappings":"gDAgBA,MAAMA,EAAwBC,IAC5B,MAAMC,EAAY,CAACD,EAAU,UAAW,UAAUE,KAC/CC,GAAcA,GAAaC,EAAGC,WAAWF,IAG5C,IAAKF,EACH,OAGF,MAAMK,EAAWC,EAAKC,QAAQP,EAAW,yBACzC,IAAIQ,EAEJ,IACEA,EAAWL,EAAGM,aAAaJ,EAAU,OACvC,CAAE,MAAOK,GACP,GAA8C,WAAzCA,EAAgCC,KACnC,OAGF,MAAMD,CACR,CAEA,MAAME,EAASC,KAAKC,MAAMN,GAE1B,GACsB,IAApBI,GAAQG,SACR,CAAC,OAAQ,OAAQ,OAAQ,YAAa,YAAa,cAAcC,KAC9DC,GAA0D,iBAA3CL,EAAOK,IAGzB,MAAM,IAAIC,MAAM,qCAAqCb,iCAGvD,MAAO,IAAKO,EAAQO,KAAMb,EAAKC,QAAQD,EAAKc,QAAQf,GAAWO,EAAOO"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import t from"node:fs";import i from"node:path";import e from"../helpers/plugin-config.js";import
|
|
1
|
+
import t from"node:fs";import i from"node:path";import e from"../helpers/plugin-config.js";import s from"./logger.js";class r{isProd;isHost;isModulePreload;mode;entrypointName;vite;app;params;defaultParams;logger;defaultBuildRoots=["./build","./dist"];constructor({entrypointName:t,isProd:i=!1,isHost:e=!1,isOnlyClient:s=!1,isModulePreload:r=!1,mode:o="production"},n){this.isProd=i,this.isHost=e,this.isModulePreload=r,this.mode=o,this.entrypointName=t,this.defaultParams={base:"/",publicDir:"/client",indexFile:"/client/index.html",serverFile:"/server/server.js",host:"127.0.0.1",isSPA:s,...n},this.makeParams()}static init(t={},i={}){return new r(t,i)}getBuildDir(i){for(const e of[i,...this.defaultBuildRoots])if(e&&t.existsSync(e))return e;return i??this.defaultBuildRoots[0]}makeParams(){this.applyEntrypointConfig();const t=this.getPluginConfig()??{},{config:e}=this.vite??{},{root:r,publicDir:o,indexFile:n,clientFile:a,serverFile:l,host:h,isSPA:p}=this.defaultParams,g=new URL(import.meta.url),d=t.pluginPath??i.resolve(i.dirname(g.pathname),"../"),u=this.getEntrypoint(),m="boolean"==typeof e?.server.host||this.isHost?"0.0.0.0":e?.server.host??h,f=Number(e?.env.VITE_PORT??e?.server.port??this.defaultParams.port);this.params={root:e?.root??this.getBuildDir(r),base:e?.base??this.defaultParams.base,publicDir:e?.publicDir??o,indexFile:t.indexFile??n,clientFile:t.clientFile??a,serverFile:t.serverFile??l,pluginPath:d,host:m,port:f,isSPA:u?"spa"===u.type:p,isProd:this.isProd},this.logger=this.vite?.config.logger??new s}setVite(t){this.vite=t,this.makeParams()}setApp(t){this.app=t}getVite(){return this.vite}getApp(){return this.app}getPluginConfig(){return this.vite?e(this.vite.config):void 0}getParams(){return this.params}getLogger(){return this.logger}setLogger(t){this.logger=t}applyEntrypointConfig(){const t=this.getPluginConfig();if(!this.vite||!t||!this.entrypointName)return;const i=this.getEntrypoint();i&&["indexFile","clientFile","serverFile"].forEach(e=>{i[e]&&(t[e]=i[e])})}getEntrypoint(){const t=this.vite?e(this.vite.config):void 0;return t?.entrypoint?.find(({name:t})=>t===this.entrypointName)}}export{r as default};
|
|
2
2
|
//# sourceMappingURL=server-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-config.js","sources":["../../src/services/server-config.ts"],"sourcesContent":[null],"names":["ServerConfig","isProd","isHost","isModulePreload","mode","entrypointName","vite","app","params","defaultParams","logger","defaultBuildRoots","constructor","isOnlyClient","prodParams","this","publicDir","indexFile","serverFile","host","isSPA","makeParams","init","options","prodOptions","getBuildDir","root","dir","fs","existsSync","applyEntrypointConfig","pluginConfig","getPluginConfig","config","clientFile","defaultHost","dirInfo","URL","url","pluginPath","path","resolve","dirname","pathname","entrypoint","getEntrypoint","server","port","Number","env","VITE_PORT","type","DefaultLogger","setVite","setApp","getVite","getApp","undefined","getParams","getLogger","setLogger","entrypointConfig","forEach","optName","find","name"],"mappings":"
|
|
1
|
+
{"version":3,"file":"server-config.js","sources":["../../src/services/server-config.ts"],"sourcesContent":[null],"names":["ServerConfig","isProd","isHost","isModulePreload","mode","entrypointName","vite","app","params","defaultParams","logger","defaultBuildRoots","constructor","isOnlyClient","prodParams","this","base","publicDir","indexFile","serverFile","host","isSPA","makeParams","init","options","prodOptions","getBuildDir","root","dir","fs","existsSync","applyEntrypointConfig","pluginConfig","getPluginConfig","config","clientFile","defaultHost","dirInfo","URL","url","pluginPath","path","resolve","dirname","pathname","entrypoint","getEntrypoint","server","port","Number","env","VITE_PORT","type","DefaultLogger","setVite","setApp","getVite","getApp","undefined","getParams","getLogger","setLogger","entrypointConfig","forEach","optName","find","name"],"mappings":"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"}
|