@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.
Files changed (52) hide show
  1. package/adapters/express/prepare-server.d.ts +4 -0
  2. package/adapters/express/prepare-server.js +1 -1
  3. package/adapters/express/prepare-server.js.map +1 -1
  4. package/adapters/express/render.js +1 -1
  5. package/adapters/express/render.js.map +1 -1
  6. package/adapters/express/route-assets.d.ts +8 -0
  7. package/adapters/express/route-assets.js +2 -0
  8. package/adapters/express/route-assets.js.map +1 -0
  9. package/adapters/express/server.js +1 -1
  10. package/adapters/express/server.js.map +1 -1
  11. package/adapters/express/static-files.d.ts +7 -0
  12. package/adapters/express/static-files.js +2 -0
  13. package/adapters/express/static-files.js.map +1 -0
  14. package/cli/commands.d.ts +1 -0
  15. package/cli/commands.js +2 -0
  16. package/cli/commands.js.map +1 -0
  17. package/cli/helpers/enable-shortcuts.d.ts +5 -0
  18. package/cli/helpers/enable-shortcuts.js +2 -0
  19. package/cli/helpers/enable-shortcuts.js.map +1 -0
  20. package/cli/run-prod.js +1 -1
  21. package/cli/run-prod.js.map +1 -1
  22. package/cli/start.d.ts +10 -0
  23. package/cli/start.js +2 -0
  24. package/cli/start.js.map +1 -0
  25. package/cli.js +1 -1
  26. package/cli.js.map +1 -1
  27. package/core/compose-html.d.ts +1 -1
  28. package/core/compose-html.js +1 -1
  29. package/core/compose-html.js.map +1 -1
  30. package/core/data-stream.js +1 -1
  31. package/core/data-stream.js.map +1 -1
  32. package/core/handler.js +1 -1
  33. package/core/handler.js.map +1 -1
  34. package/core/render.js +1 -1
  35. package/core/render.js.map +1 -1
  36. package/helpers/print-server-info.js +1 -1
  37. package/helpers/print-server-info.js.map +1 -1
  38. package/node/render-to-stream.d.ts +1 -3
  39. package/node/render-to-stream.js +1 -1
  40. package/node/render-to-stream.js.map +1 -1
  41. package/node/write-fetch-response.js +1 -1
  42. package/node/write-fetch-response.js.map +1 -1
  43. package/package.json +1 -1
  44. package/services/build.d.ts +4 -0
  45. package/services/build.js +1 -1
  46. package/services/build.js.map +1 -1
  47. package/services/production-config.d.ts +15 -0
  48. package/services/production-config.js +2 -0
  49. package/services/production-config.js.map +1 -0
  50. package/services/server-config.d.ts +1 -0
  51. package/services/server-config.js +1 -1
  52. package/services/server-config.js.map +1 -1
@@ -38,6 +38,10 @@ declare class PrepareServer {
38
38
  * Html shell
39
39
  */
40
40
  protected html: string;
41
+ /**
42
+ * Retain the validated production shell without sharing its mutable tuple.
43
+ */
44
+ protected htmlParts?: [string, string];
41
45
  /**
42
46
  * Middlewares configs
43
47
  */
@@ -1,2 +1,2 @@
1
- import e from"node:fs";import t from"node:path";import r from"node:process";import{pathToFileURL as i}from"node:url";import o from"chalk";import{splitHtmlShell as s}from"../../services/diagnostics.js";import n from"../../services/server-api.js";class a{onServerStarted;config;serverApi;entrypoint;onServerCreated;html;middlewaresConfigs;constructor(e,t){this.config=e,this.serverApi=t??new n}static init(e,t){return new a(e,t)}async loadEntrypoint(e=!0){if(this.entrypoint&&this.config.isProd)return this.entrypoint;const{root:s,isProd:n,serverFile:a}=this.config.getParams(),d=t.resolve(`${s}/${a}`);let l;try{l=n?(await(import(i(d).toString()))).default:(await this.config.getVite().ssrLoadModule(d,{fixStacktrace:!0})).default}catch(e){if(e instanceof Error&&e.message.includes("Cannot find module")&&e.message.includes("/build/"))return this.config.getLogger().error(o.red(`Before starting the server, you need to create a build: ${o.yellow("ssr-boost build")} or provide path to build dir: ${o.yellow("ssr-boost start --build-dir build")}`)),r.exit(1);throw e}!e&&l.init&&delete l.init;const{render:c,init:g,routes:h,abortDelay:f,loggerProd:m,loggerDev:p,middlewares:u}=l;this.middlewaresConfigs=u,m&&n?this.config.setLogger(m):p&&!n&&this.config.setLogger(p);const{onServerCreated:v,onServerStarted:y,...w}=await(g?.({config:this.config}))??{};return this.entrypoint={render:c,routes:h,abortDelay:f,...w},this.onServerCreated=v,this.onServerStarted=y,this.entrypoint}async loadHtml(r){const{isProd:i,root:o,indexFile:n,clientFile:a}=this.config.getParams();this.html&&i||(this.html=e.readFileSync(t.resolve(`${o}/${n}`),"utf-8"));let d=this.html;if(!i){const e=t.posix.normalize(`${this.config.getVite()?.config.base}/${a}`);d=(await this.config.getVite().transformIndexHtml(r.originalUrl,this.html,n)).replace(new RegExp(String.raw`<script[^>]*?\bsrc=["']/?${e}([^"']*)["'][^>]*?\sasync\b`,"g"),e=>e.replace(/\sasync\b/,""))}return s(d,t.resolve(`${o}/${n}`))}async onAppCreated(){return await this.loadEntrypoint(),await(this.onServerCreated?.(this.config.getApp(),this.serverApi)),this}getMiddlewaresConfig(){const{compression:e,expressStatic:t}=this.middlewaresConfigs??{};return{compression:!1!==e&&{...e},expressStatic:!1!==t&&{...t,basename:t?.basename??"/"}}}}export{a as default};
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,CAAsBN,EAAsBC,GAC1CM,KAAKP,OAASA,EACdO,KAAKN,UAAYA,GAAa,IAAIO,CACpC,CAKO,WAAOC,CAAKT,EAAsBC,GACvC,OAAO,IAAIH,EAAcE,EAAQC,EACnC,CAKO,oBAAMS,CAAeC,GAAa,GAIvC,GAAIJ,KAAKL,YAAcK,KAAKP,OAAOY,OACjC,OAAOL,KAAKL,WAGd,MAAMW,KAAEA,EAAID,OAAEA,EAAME,WAAEA,GAAeP,KAAKP,OAAOe,YAC3CC,EAAiBC,EAAKC,QAAQ,GAAGL,KAAQC,KAE/C,IAAIK,EAEJ,IAQIA,EAPGP,gBAQaQ,EAAcJ,GAAgBK,cAC5CC,eAPMf,KAAKP,OAAOuB,UAAWC,cAAcR,EAAgB,CACzDS,eAAe,KAEjBH,OAMN,CAAE,MAAOI,GACP,GACEA,aAAaC,OACbD,EAAEE,QAAQC,SAAS,uBACnBH,EAAEE,QAAQC,SAAS,WAcnB,OAZAtB,KAAKP,OACF8B,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,KAAKP,OAAO2C,UAAUH,GACbC,IAAc7B,GACvBL,KAAKP,OAAO2C,UAAUF,GAGxB,MAAMtC,gBAAEA,EAAeJ,gBAAEA,KAAoB6C,SACpCnC,IAAO,CACZT,OAAQO,KAAKP,WACR,CAAA,EAWT,OATAO,KAAKL,WAAa,CAChBmC,SACAC,SACAC,gBACGK,GAELrC,KAAKJ,gBAAkBA,EACvBI,KAAKR,gBAAkBA,EAEhBQ,KAAKL,UACd,CAKO,cAAM2C,CAASC,GACpB,MAAMlC,OAAEA,EAAMC,KAAEA,EAAIkC,UAAEA,EAASC,WAAEA,GAAezC,KAAKP,OAAOe,YAEvDR,KAAKH,MAASQ,IACjBL,KAAKH,KAAO6C,EAAGC,aAAajC,EAAKC,QAAQ,GAAGL,KAAQkC,KAAc,UAGpE,IAAII,EAAe5C,KAAKH,KAExB,IAAKQ,EAAQ,CACX,MAAMwC,EAAkBnC,EAAKoC,MAAMC,UACjC,GAAG/C,KAAKP,OAAOuB,WAAWvB,OAAOuD,QAAQP,KAM3CG,SACQ5C,KAAKP,OAAOuB,UAAWiC,mBAAmBV,EAAIW,YAAalD,KAAKH,KAAM2C,IAC5EW,QACA,IAAIC,OACFC,OAAOC,GAAG,4BAA4BT,+BACtC,KAEDU,GAAUA,EAAMJ,QAAQ,YAAa,IAE1C,CAEA,OAAOK,EAAeZ,EAAclC,EAAKC,QAAQ,GAAGL,KAAQkC,KAC9D,CAKO,kBAAMiB,GAIX,aAHMzD,KAAKG,uBACLH,KAAKJ,kBAAkBI,KAAKP,OAAOiE,SAAoB1D,KAAKN,YAE3DM,IACT,CAKO,oBAAA2D,GACL,MAAMC,YAAEA,EAAWC,cAAEA,GAAkB7D,KAAKF,oBAAsB,CAAA,EAElE,MAAO,CACL8D,aACkB,IAAhBA,GACI,IACKA,GAGXC,eACoB,IAAlBA,GACI,IACKA,EACHC,SAAUD,GAAeC,UAAY,KAIjD"}
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":"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"}
@@ -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 o from"../../core/early-hints.js";import{getSetCookieHeaders as n,getHeaderEntries as a}from"../../core/headers.js";import i from"../../core/render.js";import d from"../../node/render-to-stream.js";import c from"../../node/request-signal.js";import p from"../../node/write-early-hints.js";import m,{writeFetchHeaders as l}from"../../node/write-fetch-response.js";import h,{isDiagnosticsEnabled as u}from"../../services/diagnostics.js";import f from"../../services/ssr-manifest.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?n(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},v,E,{onRouterReady:b,onShellReady:C,onResponse:j,onShellError:R,onError:H,getBody:q,getState:k,hydration:A,nonce:P,bootstrapScriptContent:D,documentHeaders:L,sessionCookie:O,protectPrivate:T,abortDelay:B=15e3}){const{appProps:G,html:U,req:$,res:z}=E,F=v.getLogger(),I=c($,z);try{const c=Object.assign(E,{request:y($,I.signal,q),response:{headers:new Headers}}),J={appProps:G,diagnostics:u(!v.isProd)?new h(new URL(c.request.url).pathname,F):void 0,html:U,request:c.request,response:c.response};if(!v.isProd&&J.diagnostics){const{diagnostics:e}=J;for(const t of["req","res"]){let r=c[t];Object.defineProperty(c,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=>(c.request=e.request,c.response=e.response,c.didError=e.didError,c.html=e.html,c.isStream=e.isStream,c.isSpa=e.isSpa,c.matches=e.matches,c.routerContext=e.routerContext,c.serverContext=e.serverContext,c.timeline=e.timeline,c),N=await i({createApp:(e,s)=>t.createElement(r,{server:{...s.appProps,req:$}},e),handler:S,policy:x,spaShell:w,renderToStream:d},J,{abortDelay:B,hydration:A,nonce:P,bootstrapScriptContent:D,documentHeaders:L,sessionCookie:O,protectPrivate:T,getState:k?({context:e})=>k({context:M(e)}):void 0,onError:({context:t,error:r})=>{const{code:o,message:n}=r;if(H?.({context:M(t),error:r}),F.info(e.red(`Stream error. Code: ${o}`)),[s.RenderAborted,s.RenderTimeout,s.RenderCancel].includes(o))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:b?({context:e})=>b({context:M(e)}):void 0,onShellError:R?({context:e,error:t})=>R({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),a(e.response.headers).forEach(([e,r])=>t.setHeader(e,r));const r=n(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),s=f.get(v),{matches:n,isSpa:a}=e;await s.prepareDevAssets(n,a);const i=s.injectAssets(r);r.hasEarlyHints&&await o(t,i)},routerRequestContext:c},{onEarlyHints:e=>p(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 l(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};
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","manifest","SsrManifest","prepareDevAssets","hints","injectAssets","hasEarlyHints","emitEarlyHints","routerRequestContext","onEarlyHints","writeEarlyHints","location","destroyed","writeFetchHeaders","cancel","redirect","writeFetchResponse","writeResponse","dispose"],"mappings":"omBA+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,GAC5BsC,EAAWC,EAAYxG,IAAI0B,IAC3B2C,QAAEA,EAAOD,MAAEA,GAAUH,QAErBsC,EAASE,iBAAiBpC,EAASD,GAEzC,MAAMsC,EAAQH,EAASI,aAAab,GAEhCA,EAAcc,qBACVC,EAAeP,EAAkBI,IAG3CI,qBAAsB1H,GAExB,CAIE2H,aAAelH,GAAYmH,EAAgB3H,EAAKQ,KAIpDmE,EAAYd,QA9OM9B,OAAO/B,EAAsBI,KACjD,MAAMwH,EAAWxH,EAASI,QAAQG,IAAI,YAEtC,GACEiH,GACAxH,EAASC,QAAU,KACnBD,EAASC,OAAS,MACjBL,EAAIE,cACJF,EAAIG,gBACJH,EAAI6H,UAML,OAJAC,EAAkB9H,EAAKI,SACjBA,EAASR,MAAMmI,eACrB/H,EAAIgI,SAAS5H,EAASC,OAAQuH,SAK1BK,EAAmBjI,EAAKI,IA8NtB8H,CAAclI,EAAKI,EAC3B,SACEqD,EAAc0E,SAChB,CACF"}
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":"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"}
@@ -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 n from"../../services/server-api.js";async function p(p){const d=o().disable("x-powered-by");p.isProd&&d.set("env","production");const c=new n;p.setApp(d);const m=i.init(p,c);if(!p.isProd){const e=await(await(import("vite"))).createServer({server:{middlewareMode:!0,watch:{usePolling:!0,interval:100}},appType:"custom",mode:p.mode});d.use(e.middlewares),p.setVite(e)}const{isSPA:l}=p.getParams();if(l||await m.onAppCreated(),p.isProd){const{root:e,publicDir:r}=p.getParams(),{compression:i,expressStatic:a}=m.getMiddlewaresConfig();if(i&&d.use(s(i)),l||d.use((e,r,t)=>{"/index.html"!==e.url||c.hasAccessIndexHtml()||(e.url="/index-not-found.html"),t()}),a){const{basename:s,...i}=a;d.use(s,o.static(t.resolve(`${e}/${r}`),{...i,index:!!l&&void 0}))}}return l?d.use(/(.*)/,(e,r,t)=>{(async()=>{try{const t=(await m.loadHtml(e)).join("");r.send(t)}catch(e){p.getLogger().error(`Failed to handle request: ${e?.message}`,{error:e}),t(e)}})()}):d.use(/(.*)/,(e,r,t)=>{(async()=>{try{const[{render:s,onRequest:o,...i},a]=await Promise.all([m.loadEntrypoint(),m.loadHtml(e)]),{appProps:n,hasEarlyHints:d,shouldSkip:c,shouldCancel:l}=await(o?.(e,r))??{},[u,f]=a;if(l||r.writableEnded||r.headersSent)return;if(c)return t();const h={req:e,res:r,hasEarlyHints:d,appProps:n??{},html:{header:u,footer:f}};await s(p,h,i)}catch(e){p.getLogger().error(`Failed to handle request: ${e?.message}`,{error:e}),t(e)}})()}),{run:({version:t,isPrintInfo:s=!0}={})=>{const{port:o,host:i}=p.getParams(),n=Boolean(p.getVite()?.config?.server?.https);p.isHost&&!p.isProd&&(p.getVite().config.server.host=i);const l=(n?r.createServer(p.getVite().config.server.https,d):e.createServer(d)).listen(o,i,()=>{m.onServerStarted?.(d,c,l),s&&a(p,{version:t,server:l})});return l},app:d}}export{p as default};
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":"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"}
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":"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"}
@@ -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 {};
@@ -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,5 @@
1
+ /**
2
+ * Load keyboard handling only for interactive CLI sessions.
3
+ */
4
+ declare const enableShortcuts: () => Promise<void>;
5
+ export default enableShortcuts;
@@ -0,0 +1,2 @@
1
+ const s=async()=>{if(process.stdin.isTTY){const{default:s}=await(import("./keyboard-input.js"));process.stdin.setRawMode(!0),process.stdin.on("data",s).setEncoding("utf8").resume()}};export{s as default};
2
+ //# sourceMappingURL=enable-shortcuts.js.map
@@ -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 r from"../adapters/express/server.js";import e from"../helpers/create-focus-only.js";import s from"../services/server-config.js";async function i({version:i,isHost:t,isPrintInfo:n,port:l,buildDir:a,focusOnly:f,modulePreload:m=!1}){global.viteBoostStartTime||(global.viteBoostStartTime=o.now());const p=s.init({isHost:t,isProd:!0,isOnlyClient:e(f).isOnlyClient(),isModulePreload:m},{port:l,root:a}),{run:c}=await r(p);return{server:c({version:i,isPrintInfo:n}),config:p}}export{i as default};
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
@@ -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","root","run","createServer","server"],"mappings":"sLA0BAA,eAAeC,GAAQC,QACrBA,EAAOC,OACPA,EAAMC,YACNA,EAAWC,KACXA,EAAIC,SACJA,EAAQC,UACRA,EAASC,cACTA,GAAgB,IAEXC,OAAOC,qBACVD,OAAOC,mBAAqBC,EAAYC,OAG1C,MAAMC,EAASC,EAAaC,KAC1B,CACEZ,SACAa,QAAQ,EACRC,aAAcC,EAAgBX,GAAWU,eACzCE,gBAAiBX,GAEnB,CAAEH,OAAMe,KAAMd,KAEVe,IAAEA,SAAcC,EAAaT,GAEnC,MAAO,CACLU,OAAQF,EAAI,CAAEnB,UAASE,gBACvBS,SAEJ"}
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
@@ -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{readFileSync as o}from"fs";import e from"chalk";import{Command as i,Option as t}from"commander";import n from"./cli/build.js";import r from"./cli/doctor.js";import d from"./cli/helpers/keyboard-input.js";import s from"./cli/helpers/vite-reset-cache.js";import a from"./cli/init.js";import c from"./cli/run-amplify-build.js";import l from"./cli/run-dev.js";import p from"./cli/run-docker-build.js";import m from"./cli/run-prod.js";import f from"./cli/run-vercel-build.js";import u from"./constants/cli-actions.js";import O from"./constants/cli-context.js";import w from"./constants/cli-name.js";const{description:v,version:y}=JSON.parse(o(new URL("./package.json",import.meta.url),"utf8")),g=()=>{process.stdin.isTTY&&(process.stdin.setRawMode(!0),process.stdin.on("data",d).setEncoding("utf8").resume())},h=new i;h.name(w).description(v).version(y).hook("preAction",(o,e)=>{global.viteBoostAction=e.name()});const b=new t("--host","Ability to access the local instance on other devices under the same network.").default(!1),k=new t("--focus-only [focusOnly]","Build or Start only specified part of app.").default("app").choices(["all","app","client","server","entrypoint"]),j=new t("--port [port]","Server port.").default(3e3),P=new t("--mode [mode]","Env mode.").env("VITE_ENV_MODE").default("production"),D=new t("--build-dir [buildDir]","Build directory output.");h.command(u.dev).description("Run development server.").addOption(b).addOption(j).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:o,port:i,resetCache:t,mode:n,entrypoint:r})=>{t&&await s();const d=async t=>{console.info(e.cyan("Starting the development server..."));const{server:d,config:s}=await l({version:y,isHost:o,isPrintInfo:t,port:i,mode:n,entrypointName:r});O.server=d,O.config=s};return O.reboot=d,g(),d()}),h.command(u.build).description("Create production build.").addOption(k).addOption(P).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:o,clientOptions:e,serverOptions:i,mode:t,unlockRobots:r,eject:d,serverless:s,throwWarnings:a})=>{await n({focusOnly:o,isUnlockRobots:r,isNoWarnings:a,isEject:d,isServerless:s,clientOptions:e,serverOptions:i,mode:t})}),h.command(u.start).description("Run production server.").addOption(b).addOption(j).addOption(k).addOption(D).addOption(new t("--module-preload","Add module preload scripts to server output.").default(!1)).action(({host:o,port:e,focusOnly:i,modulePreload:t,buildDir:n})=>{const r=async r=>{const{server:d,config:s}=await m({version:y,isHost:o,isPrintInfo:r,port:e,focusOnly:i,modulePreload:t,buildDir:n});O.server=d,O.config=s};return O.reboot=r,g(),r()}),h.command(u.preview).description("Build and preview production.").addOption(k).addOption(b).addOption(j).addOption(P).addOption(D).action(async({host:o,port:i,focusOnly:t,mode:r,buildDir:d})=>{global.viteBoostStartTime=performance.now();const s=async n=>{const{server:r,config:s}=await m({version:y,isHost:o,isPrintInfo:n,port:i,focusOnly:t,buildDir:d});r.on("listening",()=>{setTimeout(()=>{s.getLogger().info(e.yellow("\n Running preview mode... \n"))},0)}),O.server=r,O.config=s};O.reboot=s,g();await n({mode:r,isWatch:!0,focusOnly:t,clientOptions:"-w",serverOptions:"-w",onFinish:()=>{s()}})}),h.command(u.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(k).addOption(P).action(async({imageName:o,dockerOptions:e,dockerFile:i,focusOnly:t,mode:n})=>{await p({imageName:o,dockerOptions:e,dockerFile:i,focusOnly:t,mode:n})}),h.command(u.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(P).action(async({manifestFile:o,mode:e,isOptimize:i})=>{await c({manifestFile:o,mode:e,isOptimize:i})}),h.command(u.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(P).action(async({configFile:o,configVcFile:e,mode:i,isOptimize:t})=>{await f({configFile:o,configVcFile:e,mode:i,isOptimize:t})}),h.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(r),h.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(a),h.parse();
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":["description","version","JSON","parse","readFileSync","URL","url","enableShortcuts","process","stdin","isTTY","setRawMode","on","onKeyPress","setEncoding","resume","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","server","config","runDev","isHost","entrypointName","cliContext","reboot","build","focusOnly","clientOptions","serverOptions","unlockRobots","eject","serverless","throwWarnings","runBuild","isUnlockRobots","isNoWarnings","isEject","isServerless","start","modulePreload","buildDir","runProd","preview","viteBoostStartTime","performance","now","setTimeout","getLogger","yellow","isWatch","onFinish","buildDocker","requiredOption","imageName","dockerOptions","dockerFile","runDockerBuild","buildAmplify","manifestFile","isOptimize","runAmplifyBuild","buildVercel","configFile","configVcFile","runVercelBuild","option","runDoctor","runInit"],"mappings":";ylBA+BA,MAAMA,YAAEA,EAAWC,QAAEA,GAAYC,KAAKC,MACpCC,EAAa,IAAIC,IAAI,6BAA8BC,KAAM,SAOrDC,EAAkB,KAClBC,QAAQC,MAAMC,QAChBF,QAAQC,MAAME,YAAW,GACzBH,QAAQC,MAAMG,GAAG,OAAQC,GAAYC,YAAY,QAAQC,WAIvDC,EAAU,IAAIC,EAEpBD,EACGE,KAAKC,GACLnB,YAAYA,GACZC,QAAQA,GACRmB,KAAK,YAAa,CAACC,EAAGC,KAErBC,OAAOC,gBAAkBF,EAAcJ,SAM3C,MAAMO,EAAa,IAAIC,EACrB,SACA,iFACAC,SAAQ,GACJC,EAAkB,IAAIF,EAC1B,2BACA,8CAECC,QAAQ,OACRE,QAAQ,CAAC,MAAO,MAAO,SAAU,SAAU,eACxCC,EAAa,IAAIJ,EAAO,gBAAiB,gBAAgBC,QAAQ,KACjEI,EAAgB,IAAIL,EAAO,gBAAiB,aAC/CM,IAAI,iBACJL,QAAQ,cACLM,EAAiB,IAAIP,EAAO,yBAA0B,2BAM5DV,EACGkB,QAAQC,EAAWC,KACnBpC,YAAY,2BACZqC,UAAUZ,GACVY,UAAUP,GACVO,UAAU,IAAIX,EAAO,gBAAiB,gCAAgCC,SAAQ,IAC9EU,UAAU,IAAIX,EAAO,gBAAiB,aAAaM,IAAI,iBAAiBL,QAAQ,gBAChFU,UAAU,IAAIX,EAAO,4BAA6B,iCAClDY,OAAOC,OAASC,OAAMC,OAAMC,aAAYC,OAAMC,iBACzCF,SACIG,IAGR,MAAMX,EAAUK,MAAOO,IACrBC,QAAQC,KAAKC,EAAMC,KAAK,uCAExB,MAAMC,OAAEA,EAAMC,OAAEA,SAAiBC,EAAO,CACtCpD,UACAqD,OAAQd,EACRM,cACAL,OACAE,OACAY,eAAgBX,IAGlBY,EAAWL,OAASA,EACpBK,EAAWJ,OAASA,GAOtB,OAJAI,EAAWC,OAASvB,EAEpB3B,IAEO2B,MAGXlB,EACGkB,QAAQC,EAAWuB,OACnB1D,YAAY,4BACZqC,UAAUT,GACVS,UAAUN,GACVM,UACC,IAAIX,EACF,oCACA,iFAECM,IAAI,6BACJL,QAAQ,KAEZU,UACC,IAAIX,EAAO,oCAAqC,uCAC7CM,IAAI,6BACJL,QAAQ,KAEZU,UACC,IAAIX,EACF,kBACA,4DACAC,SAAQ,IAEXU,UACC,IAAIX,EAAO,UAAW,mDAAmDC,SAAQ,IAElFU,UACC,IAAIX,EACF,eACA,gEACAC,SAAQ,IAEXU,UACC,IAAIX,EACF,mBACA,wEACAC,SAAQ,IAEXW,OACCC,OACEoB,YACAC,gBACAC,gBACAlB,OACAmB,eACAC,QACAC,aACAC,0BAEMC,EAAS,CACbP,YACAQ,eAAgBL,EAChBM,aAAcH,EACdI,QAASN,EACTO,aAAcN,EACdJ,gBACAC,gBACAlB,KAAMA,MAKd3B,EACGkB,QAAQC,EAAWoC,OACnBvE,YAAY,0BACZqC,UAAUZ,GACVY,UAAUP,GACVO,UAAUT,GACVS,UAAUJ,GACVI,UACC,IAAIX,EAAO,mBAAoB,gDAAgDC,SAAQ,IAExFW,OAAO,EAAGE,OAAMC,OAAMkB,YAAWa,gBAAeC,eAC/C,MAAMvC,EAAUK,MAAOO,IACrB,MAAMK,OAAEA,EAAMC,OAAEA,SAAiBsB,EAAQ,CACvCzE,UACAqD,OAAQd,EACRM,cACAL,OACAkB,YACAa,gBACAC,aAGFjB,EAAWL,OAASA,EACpBK,EAAWJ,OAASA,GAOtB,OAJAI,EAAWC,OAASvB,EAEpB3B,IAEO2B,MAGXlB,EACGkB,QAAQC,EAAWwC,SACnB3E,YAAY,iCACZqC,UAAUT,GACVS,UAAUZ,GACVY,UAAUP,GACVO,UAAUN,GACVM,UAAUJ,GACVK,OAAOC,OAASC,OAAMC,OAAMkB,YAAWhB,OAAM8B,eAC5ClD,OAAOqD,mBAAqBC,YAAYC,MAExC,MAAM5C,EAAUK,MAAOO,IACrB,MAAMK,OAAEA,EAAMC,OAAEA,SAAiBsB,EAAQ,CACvCzE,UACAqD,OAAQd,EACRM,cACAL,OACAkB,YACAc,aAGFtB,EAAOvC,GAAG,YAAa,KACrBmE,WAAW,KACT3B,EAAO4B,YAAYhC,KAAKC,EAAMgC,OAAO,oCACpC,KAGLzB,EAAWL,OAASA,EACpBK,EAAWJ,OAASA,GAGtBI,EAAWC,OAASvB,EAEpB3B,UAIM2D,EAAS,CACbvB,KAAMA,EACNuC,SAAS,EACTvB,YACAC,cANmB,KAOnBC,cAPmB,KAQnBsB,SAAU,KACHjD,SAKblB,EACGkB,QAAQC,EAAWiD,aACnBpF,YAAY,8CACZqF,eAAe,4BAA6B,sBAC5ChD,UACC,IAAIX,EACF,oCACA,6DAGHW,UACC,IAAIX,EACF,8BACA,yEAGHW,UAAUT,GACVS,UAAUN,GACVO,OACCC,OAAS+C,YAAWC,gBAAeC,aAAY7B,YAAWhB,iBAClD8C,EAAe,CACnBH,YACAC,gBACAC,aACA7B,YACAhB,WAKR3B,EACGkB,QAAQC,EAAWuD,cACnB1F,YAAY,wCACZqC,UACC,IAAIX,EACF,kCACA,+FAGHW,UAAU,IAAIX,EAAO,gBAAiB,iCAAiCC,SAAQ,IAC/EU,UAAUN,GACVO,OAAOC,OAASoD,eAAchD,OAAMiD,uBAC7BC,EAAgB,CACpBF,eACAhD,OACAiD,iBAIN5E,EACGkB,QAAQC,EAAW2D,aACnB9F,YAAY,8CACZqC,UACC,IAAIX,EACF,8BACA,8FAGHW,UACC,IAAIX,EACF,oCACA,oGAGHW,UAAU,IAAIX,EAAO,gBAAiB,iCAAiCC,SAAQ,IAC/EU,UAAUN,GACVO,OAAOC,OAASwD,aAAYC,eAAcrD,OAAMiD,uBACzCK,EAAe,CACnBF,aACAC,eACArD,OACAiD,iBAIN5E,EACGkB,QAAQ,UACRlC,YAAY,mDACZkG,OAAO,SAAU,gCACjBA,OAAO,eAAgB,sBACvBA,OAAO,kBAAmB,6CAC1B5D,OAAO6D,GAEVnF,EACGkB,QAAQ,QACRlC,YAAY,wEACZkG,OAAO,YAAa,6CACpBA,OAAO,UAAW,+BAClBA,OAAO,eAAgB,sBACvBA,OAAO,iBAAkB,oDACzBA,OAAO,kBAAmB,qCAC1B5D,OAAO8D,GAEVpF,EAAQb"}
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"}
@@ -1,5 +1,5 @@
1
1
  import type DataStream from './data-stream.js';
2
2
  import type RequestTimeline from '../services/request-timeline.js';
3
- /** Stream shell, data frames, React bytes and footer only under downstream demand. */
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;
@@ -1,2 +1,2 @@
1
- import e from"./html-boundary.js";const t=(t,n,r,a,o,c,i,d=!1)=>{const l=new TextEncoder,u=n.getReader();let s,f="header",y=!1,h=!1;const m=e();let v,w=!0;const b=()=>{h||(h=!0,u.releaseLock())};return new ReadableStream({cancel:async e=>{y=!0,a?.(e),c?.cancel();try{h||await u.cancel(e)}finally{b(),o?.()}},async pull(e){try{if("header"===f&&(f="body",t))return d&&i?.record("state.emitted",{placement:"early"}),void e.enqueue(l.encode(t));for(;!y;){const t=w?c?.take():void 0;if(y)return;if(t)return void e.enqueue(l.encode(t));if(v)return w=m(v),e.enqueue(v),void(v=void 0);if("body"===f){s??=u.read();const e=await(c&&!c.isDone&&w?Promise.race([s,c.changed().then(()=>{})]):s);if(y)return;if(!e)continue;if(s=void 0,!e.done){v=e.value;continue}f="footer",i?.record("body.end"),w=!0,b();continue}!c||c.isDone?(r&&(d||i?.record("state.emitted",{placement:"footer"}),e.enqueue(l.encode(r))),y=!0,o?.(),e.close()):await c.changed()}}catch(t){if(y)return;y=!0,a?.(t),c?.cancel(),e.error(t);try{h||await u.cancel(t).catch(()=>{})}finally{b(),o?.()}}}},{highWaterMark:0})};export{t as default};
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
@@ -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","heldChunk","canInject","release","releaseLock","ReadableStream","cancel","async","reason","pull","controller","record","placement","enqueue","encode","frames","take","undefined","read","chunk","isDone","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,EAHAC,EAAsC,SACtCC,GAAY,EACZC,GAAa,EAEjB,MAAMC,EAAUC,IAChB,IACIC,EADAC,GAAY,EAIhB,MAAMC,EAAU,KACTL,IACHA,GAAa,EACbL,EAAOW,gBAIX,OAAO,IAAIC,eACT,CAEEC,OAAQC,MAAOC,IACbX,GAAY,EACZX,IAAQsB,GACRpB,GAAMkB,SAEN,IACOR,SACGL,EAAOa,OAAOE,EAExB,SACEL,IACAhB,KACF,GAIF,UAAMsB,CAAKC,GACT,IACE,GAAc,WAAVd,IACFA,EAAQ,OAEJb,GAOF,OANIO,GACFD,GAAUsB,OAAO,gBAAiB,CAAEC,UAAW,eAGjDF,EAAWG,QAAQtB,EAAQuB,OAAO/B,IAMtC,MAAQc,GAAW,CACjB,MAAMkB,EAASb,EAAYd,GAAM4B,YAASC,EAE1C,GAAIpB,EACF,OAGF,GAAIkB,EAGF,YAFAL,EAAWG,QAAQtB,EAAQuB,OAAOC,IAKpC,GAAId,EAKF,OAJAC,EAAYH,EAAQE,GACpBS,EAAWG,QAAQZ,QACnBA,OAAYgB,GAKd,GAAc,SAAVrB,EAAkB,CACpBD,IAAgBF,EAAOyB,OACvB,MAAMC,QAAe/B,IAASA,EAAKgC,QAAUlB,EACzCmB,QAAQC,KAAK,CAAC3B,EAAaP,EAAKmC,UAAUC,KAAK,UAC/C7B,GAEJ,GAAIE,EACF,OAGF,IAAKsB,EACH,SAKF,GAFAxB,OAAcsB,GAETE,EAAMM,KAAM,CACfxB,EAAYkB,EAAMO,MAElB,QACF,CAEA9B,EAAQ,SACRP,GAAUsB,OAAO,YACjBT,GAAY,EACZC,IACA,QACF,EAEIf,GAASA,EAAKgC,QAKdnC,IACGK,GACHD,GAAUsB,OAAO,gBAAiB,CAAEC,UAAW,WAGjDF,EAAWG,QAAQtB,EAAQuB,OAAO7B,KAGpCY,GAAY,EACZV,MACAuB,EAAWiB,eAdHvC,EAAKmC,SAef,CACF,CAAE,MAAOK,GACP,GAAI/B,EACF,OAGFA,GAAY,EACZX,IAAQ0C,GACRxC,GAAMkB,SACNI,EAAWkB,MAAMA,GAEjB,IACO9B,SACGL,EAAOa,OAAOsB,GAAOC,MAAM,OAErC,SACE1B,IACAhB,KACF,CACF,CACF,GAEF,CAAE2C,cAAe"}
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"}
@@ -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,c={message:s?.message??(o||r?a||`Route data error (${n??500})`:String(t)),name:s?.name??"Error"};return(o||r)&&Object.assign(c,{status:n??500,statusText:a??"",data:s?.data,internal:!1}),i&&s?.stack&&(c.stack=s.stack),c};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.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};
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
@@ -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(l?.({executionContext:r,request:o})),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};
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
@@ -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","undefined","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,QAAoBjB,IAAY,CAAEY,mBAAkBD,aACpDO,EAAWD,aAAuBE,SAClCC,EAAWF,OAAWG,EAAYJ,EAClCK,EAAyC,CAC7CC,SAAWH,GAAUG,UAAY,GACjC1B,YAAagB,EAAY,IAAIW,EAAY,IAAIC,IAAId,EAAQe,KAAKC,eAAYN,EAC1ET,mBACAgB,KAAMV,EAAW,CAAEW,OAAQ,GAAIC,OAAQ,UAAahC,EAAQa,GAC5DA,UACAoB,SAAU,CACRC,QAAS,IAAIC,QAAQb,GAAUY,SAC/BE,OAAQd,GAAUc,WAEhBnB,EAAW,CAAEA,YAAa,IAKhC,GAFAhB,IAAY,CAAEuB,YAEVJ,EAAU,CACZ,MAAMiB,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"}
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 s}from"react-router";import o 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/obtain-stream-error.js";import{createTimeline as C}from"../services/request-timeline.js";const f="text/html",w="Content-Type",x=async({createApp:d,handler:C,renderToStream:x,policy:y,spaShell:R},S,{abortDelay:b=15e3,getState:q,hydration:v="footer",nonce:g,bootstrapScriptContent:E,onError:j,onResponse:k,onRouterReady:H,onShellError:P,onShellReady:T,prepare:A,routerRequestContext:B,documentHeaders:D,sessionCookie:L,protectPrivate:_},$)=>{const I=y?.select(S.request,S.diagnostics)??"ssr";if(y?.active&&!S.response.headers.has("Cache-Control")&&S.response.headers.set("Cache-Control","no-store"),"spa"===I)return S.isSpa=!0,S.isStream=!1,S.matches=t(C.dataRoutes,new URL(S.request.url),y?.basename)??[],S.html=R(S.html),await(A?.({context:S,executionContext:$})),D&&(S.response.headers=c(D,{sessionCookie:L,protectPrivate:_})(S)),S.response.status=200,S.response.headers.set(w,"text/html; charset=utf-8"),new Response("HEAD"===S.request.method?null:S.html.header+S.html.footer,{headers:S.response.headers,status:200});const U=await C.query(S.request,{requestContext:B??S});if(S.timeline?.record("router.query"),U instanceof Response)return l(S.request,m(U,S.response.headers));S.routerContext=U,S.matches=U.matches;const z=new i(U,S.diagnostics,g,S.timeline);try{await(A?.({context:S,executionContext:$})),S.timeline?.record("prepare")}catch(e){throw z.cancel(),e}const{isStream:F=!0}=await(H?.({context:S}))??{};S.isStream=F,S.serverContext={basename:S.routerContext.basename,isServer:!0,response:null};const G=r(C.dataRoutes,S.routerContext),J=e.createElement(a,{context:S.serverContext},d(e.createElement(s,{router:G,context:S.routerContext,hydrate:!1}),S)),K=new AbortController;let M,N,O=!1;const Q=()=>X(S.request.signal.reason),V=()=>clearTimeout(Y),W=()=>{V(),S.request.signal.removeEventListener("abort",Q)},X=e=>{O||(O=!0,M=e,S.timeline?.abort(e),W(),S.didError??=o.RenderCancel,z.abort(),K.abort(e),N?.abort(e))},Y=setTimeout(()=>{S.didError=o.RenderTimeout,S.timeline?.abort(new Error(`SSR render timed out after ${b}ms`)),X()},b);S.request.signal.aborted?X(S.request.signal.reason):S.request.signal.addEventListener("abort",Q,{once:!0});try{N=await x(J,{nonce:g,bootstrapScriptContent:"early"===v&&F?`(window.__ssrBoostStream = window.__ssrBoostStream || []).push(["shell"]);${E??""};document.currentScript?.remove();`:E,onError:e=>{const t=p(e);!O||t.code!==o.RenderAborted&&e!==K.signal.reason||(t.code=S.didError===o.RenderTimeout?o.RenderTimeout:o.RenderCancel);const{code:r}=t;S.didError??=r,j?.({context:S,error:t})},signal:K.signal}),O&&N.abort(M),Promise.all([N.allReady,z.done]).then(V,V),await N.shellReady,S.timeline?.record("shell.ready"),F||await Promise.all([N.allReady,z.done])}catch(e){return X(e),await(N?.stream.cancel(e).catch(()=>{})),((e,t,r)=>{const s=t instanceof Error?t:new Error(String(t)),o=r?.({context:e,error:s})||"<!doctype html><p>Internal Server Error</p>",a=new Headers(e.response.headers);return a.set(w,f),new Response("HEAD"===e.request.method?null:o,{headers:a,status:500})})(S,e,P)}try{const e=S.serverContext.response;if(e&&(Z=e,Boolean(Z&&Z.status>=300&&Z.status<400&&Z.headers.has("Location"))))return X(),await N.stream.cancel().catch(()=>{}),l(S.request,m(e,S.response.headers));const{header:t,footer:r,headers:s,status:o}=((e,{getState:t,onShellReady:r,hydration:s,nonce:o,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(w)||e.response.headers.set(w,f);const m=r?.({context:e})??{},h="early"===s&&e.isStream,p=u(t?.({context:e}),e.diagnostics,o,Boolean(h));let C=m.header||e.html.header;const x=m.footer||e.html.footer;e.diagnostics?.inspectShell({header:C,footer:x});let y=x;return h?C+=p+d.state(!0):y=p+d.state(!1)+d.take()+y,a&&(e.response.headers=c(a,{sessionCookie:n,protectPrivate:i})(e)),{header:C,footer:y,headers:new Headers(e.response.headers),status:e.response.status}})(S,{getState:q,onShellReady:T,hydration:v,nonce:g,documentHeaders:D,sessionCookie:L,protectPrivate:_},z);if("HEAD"===S.request.method||[204,205,304].includes(o))return X(),await N.stream.cancel().catch(()=>{}),new Response(null,{headers:s,status:o});const a=n(t,N.stream,r,X,W,z,S.timeline,"early"===v&&F),i=h(a,k?(e,t)=>k({context:S,html:e,isEnd:t}):void 0,S.diagnostics);return N.start(),new Response(i,{headers:s,status:o})}catch(e){throw X(e),N.stream.locked||await N.stream.cancel(e).catch(()=>{}),e}var Z},y=async(e,t,r,s)=>{const o=t.timeline??C(t.request,Boolean(t.diagnostics));o&&(t.timeline=o);try{const a=await x(e,t,r,s),{sessionCookie:n}=r;return t.diagnostics?.inspectCachePolicy(a.headers,Boolean(n&&d(t.request,n))),o?.response(a)??a}catch(e){throw o?.abort(e),o?.end(),e}};export{y as default};
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
@@ -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","undefined","start","locked","render","params","options","createTimeline","inspectCachePolicy","hasCookie","end"],"mappings":"qmBAmJA,MAAMA,EAAoB,YACpBC,EAAe,eA2FfC,EAAiBC,OACnBC,YAAWC,UAASC,iBAAgBC,SAAQC,YAC9CC,GAEEC,aAAa,KACbC,WACAC,YAAY,SACZC,QACAC,yBACAC,UACAC,aACAC,gBACAC,eACAC,eACAC,UACAC,uBACAC,gBAAiBC,EACjBC,gBACAC,kBAEFC,KAEA,MAAMC,EAAOpB,GAAQqB,OAAOnB,EAAQoB,QAASpB,EAAQqB,cAAgB,MAMrE,GAJIvB,GAAQwB,SAAWtB,EAAQuB,SAASC,QAAQC,IAAI,kBAClDzB,EAAQuB,SAASC,QAAQE,IAAI,gBAAiB,YAGnC,QAATR,EAiBF,OAhBAlB,EAAQ2B,OAAQ,EAChB3B,EAAQ4B,UAAW,EACnB5B,EAAQ6B,QACNC,EAAYlC,EAAQmC,WAAY,IAAIC,IAAIhC,EAAQoB,QAAQa,KAAMnC,GAAQoC,WAAa,GACrFlC,EAAQmC,KAAOpC,EAAUC,EAAQmC,YAE3BxB,IAAU,CAAEX,UAASiB,sBAGvBH,IACFd,EAAQuB,SAASC,QAAUX,EAAgBC,EAAO,CAAEC,gBAAeC,kBAAxCH,CAA0Db,IAGvFA,EAAQuB,SAASa,OAAS,IAC1BpC,EAAQuB,SAASC,QAAQE,IAAIlC,EAAc,4BAEpC,IAAI6C,SACkB,SAA3BrC,EAAQoB,QAAQkB,OAAoB,KAAOtC,EAAQmC,KAAKI,OAASvC,EAAQmC,KAAKK,OAC9E,CAAEhB,QAASxB,EAAQuB,SAASC,QAASY,OAAQ,MAIjD,MAAMK,QAAgB7C,EAAQ8C,MAAM1C,EAAQoB,QAAS,CACnDuB,eAAgB/B,GAAwBZ,IAK1C,GAFAA,EAAQ4C,UAAUC,OAAO,gBAErBJ,aAAmBJ,SACrB,OAAOS,EAAa9C,EAAQoB,QAAS2B,EAAqBN,EAASzC,EAAQuB,SAASC,UAGtFxB,EAAQgD,cAAgBP,EACxBzC,EAAQ6B,QAAUY,EAAQZ,QAC1B,MAAMoB,EAAa,IAAIC,EAAWT,EAASzC,EAAQqB,YAAajB,EAAOJ,EAAQ4C,UAE/E,UACQjC,IAAU,CAAEX,UAASiB,sBAC3BjB,EAAQ4C,UAAUC,OAAO,UAC3B,CAAE,MAAOM,GAEP,MADAF,EAAWG,SACLD,CACR,CAEA,MAAMvB,SAAEA,GAAW,SAAgBpB,IAAgB,CAAER,cAAe,CAAA,EAEpEA,EAAQ4B,SAAWA,EACnB5B,EAAQqD,cAAgB,CACtBnB,SAAUlC,EAAQgD,cAAcd,SAChCoB,UAAU,EACV/B,SAAU,MAGZ,MAAMgC,EAASC,EAAmB5D,EAAQmC,WAAY/B,EAAQgD,eACxDS,EACJC,EAAAC,cAACC,GAAe5D,QAASA,EAAQqD,eAC9B1D,EACC+D,EAAAC,cAACE,EAAoB,CAACN,OAAQA,EAAQvD,QAASA,EAAQgD,cAAec,SAAS,IAC/E9D,IAIA+D,EAAmB,IAAIC,gBAC7B,IAAIC,EAKAC,EACAC,GAAa,EAKjB,MAAMC,EAAiB,IAAYC,EAAMrE,EAAQoB,QAAQkD,OAAOC,QAK1DC,EAAkB,IAAYC,aAAaC,GAK3CC,EAAU,KACdH,IACAxE,EAAQoB,QAAQkD,OAAOM,oBAAoB,QAASR,IAMhDC,EAASE,IACTJ,IAIJA,GAAa,EACbF,EAAcM,EACdvE,EAAQ4C,UAAUyB,MAAME,GACxBI,IACA3E,EAAQ6E,WAAaC,EAAYC,aACjC9B,EAAWoB,QACXN,EAAiBM,MAAME,GACvBL,GAAQG,MAAME,KAMVG,EAAaM,WAAW,KAC5BhF,EAAQ6E,SAAWC,EAAYG,cAC/BjF,EAAQ4C,UAAUyB,MAAM,IAAIa,MAAM,8BAA8BjF,QAChEoE,KACCpE,GAECD,EAAQoB,QAAQkD,OAAOa,QACzBd,EAAMrE,EAAQoB,QAAQkD,OAAOC,QAE7BvE,EAAQoB,QAAQkD,OAAOc,iBAAiB,QAAShB,EAAgB,CAAEiB,MAAM,IAG3E,IACEnB,QAAerE,EAAe4D,EAAM,CAClCrD,QACAC,uBACgB,UAAdF,GAAyByB,EACrB,6EAA6EvB,GAA0B,uCACvGA,EAINC,QAAU6C,IACR,MAAMmC,EAAcC,EAAkBpC,IAGpCgB,GACCmB,EAAYE,OAASV,EAAYW,eAChCtC,IAAUY,EAAiBO,OAAOC,SAEpCe,EAAYE,KACVxF,EAAQ6E,WAAaC,EAAYG,cAC7BH,EAAYG,cACZH,EAAYC,cAGpB,MAAMS,KAAEA,GAASF,EAEjBtF,EAAQ6E,WAAaW,EACrBlF,IAAU,CAAEN,UAASmD,MAAOmC,KAE9BhB,OAAQP,EAAiBO,SAGvBH,GACFD,EAAOG,MAAMJ,GAGVyB,QAAQC,IAAI,CAACzB,EAAO0B,SAAU3C,EAAW4C,OAAOC,KAAKtB,EAAiBA,SAErEN,EAAO6B,WACb/F,EAAQ4C,UAAUC,OAAO,eAEpBjB,SACG8D,QAAQC,IAAI,CAACzB,EAAO0B,SAAU3C,EAAW4C,MAEnD,CAAE,MAAO1C,GAIP,OAHAkB,EAAMlB,SACAe,GAAQ8B,OAAO5C,OAAOD,GAAO8C,MAAM,SAnRZ,EAC/BjG,EACAmD,EACA1C,KAEA,MAAMyF,EAAa/C,aAAiB+B,MAAQ/B,EAAQ,IAAI+B,MAAMiB,OAAOhD,IAC/DhB,EACJ1B,IAAe,CAAET,UAASmD,MAAO+C,KAAiB,8CAC9C1E,EAAU,IAAI4E,QAAQpG,EAAQuB,SAASC,SAI7C,OAFAA,EAAQE,IAAIlC,EAAcD,GAEnB,IAAI8C,SAAoC,SAA3BrC,EAAQoB,QAAQkB,OAAoB,KAAOH,EAAM,CACnEX,UACAY,OAAQ,OAuQDiE,CAAyBrG,EAASmD,EAAO1C,EAClD,CAEA,IACE,MAAM6F,EAAiBtG,EAAQqD,cAAc9B,SAE7C,GAAI+E,IAnSY/E,EAmSiB+E,EAlSnCC,QACEhF,GAAYA,EAASa,QAAU,KAAOb,EAASa,OAAS,KAAOb,EAASC,QAAQC,IAAI,cAqSlF,OAHA4C,UACMH,EAAO8B,OAAO5C,SAAS6C,MAAM,QAE5BnD,EACL9C,EAAQoB,QACR2B,EAAqBuD,EAAgBtG,EAAQuB,SAASC,UAI1D,MAAMe,OAAEA,EAAMC,OAAEA,EAAMhB,QAAEA,EAAOY,OAAEA,GAhRT,EAC1BpC,GAEEE,WACAQ,eACAP,YACAC,QACAS,gBAAiBC,EACjBC,gBACAC,kBAEFiC,KAEA,MAAMqD,EAAiBtG,EAAQqD,cAAe9B,SAE9CvB,EAAQuB,SAASa,OACfkE,GAAgBlE,QAAUpC,EAAQuB,SAASa,QAAUpC,EAAQgD,cAAewD,YAAc,IAEvFxG,EAAQuB,SAASC,QAAQC,IAAIjC,IAChCQ,EAAQuB,SAASC,QAAQE,IAAIlC,EAAcD,GAG7C,MAAMkH,EAAQ/F,IAAe,CAAEV,aAAc,CAAA,EAEvC0G,EAAwB,UAAdvG,GAAyBH,EAAQ4B,SAC3C+E,EAAcC,EAClB1G,IAAW,CAAEF,YACbA,EAAQqB,YACRjB,EACAmG,QAAQG,IAEV,IAAInE,EAASkE,EAAMlE,QAAUvC,EAAQmC,KAAKI,OAC1C,MAAMsE,EAAcJ,EAAMjE,QAAUxC,EAAQmC,KAAKK,OAEjDxC,EAAQqB,aAAayF,aAAa,CAAEvE,SAAQC,OAAQqE,IAGpD,IAAIrE,EAASqE,EAcb,OAZIH,EACFnE,GAAUoE,EAAc1D,EAAW8D,OAAM,GAEzCvE,EAASmE,EAAc1D,EAAW8D,OAAM,GAAS9D,EAAW+D,OAASxE,EAGnE1B,IACFd,EAAQuB,SAASC,QAAUX,EAAgBC,EAAO,CAAEC,gBAAeC,kBAAxCH,CAA0Db,IAKhF,CAAEuC,SAAQC,SAAQhB,QAFT,IAAI4E,QAAQpG,EAAQuB,SAASC,SAEXY,OAAQpC,EAAQuB,SAASa,SA6Nb6E,CAC1CjH,EACA,CACEE,WACAQ,eACAP,YACAC,QACAS,gBAAiBC,EACjBC,gBACAC,kBAEFiC,GAGF,GAA+B,SAA3BjD,EAAQoB,QAAQkB,QAAqB,CAAC,IAAK,IAAK,KAAK4E,SAAS9E,GAIhE,OAHAiC,UACMH,EAAO8B,OAAO5C,SAAS6C,MAAM,QAE5B,IAAI5D,SAAS,KAAM,CACxBb,UACAY,WAIJ,MAAM+E,EAAOC,EACX7E,EACA2B,EAAO8B,OACPxD,EACA6B,EACAM,EACA1B,EACAjD,EAAQ4C,SACM,UAAdzC,GAAyByB,GAErByF,EAAcC,EAClBH,EACA5G,EAAa,CAAC4B,EAAMoF,IAAUhH,EAAW,CAAEP,UAASmC,OAAMoF,eAAWC,EACrExH,EAAQqB,aAKV,OAFA6C,EAAOuD,QAEA,IAAIpF,SAASgF,EAAa,CAC/B7F,UACAY,UAEJ,CAAE,MAAOe,GAOP,MANAkB,EAAMlB,GAEDe,EAAO8B,OAAO0B,cACXxD,EAAO8B,OAAO5C,OAAOD,GAAO8C,MAAM,QAGpC9C,CACR,CAnWiB,IAAC5B,GAuWdoG,EAASjI,MACbkI,EACA5H,EACA6H,EACA5G,KAEA,MAAM2B,EACJ5C,EAAQ4C,UAAYkF,EAAe9H,EAAQoB,QAASmF,QAAQvG,EAAQqB,cAElEuB,IACF5C,EAAQ4C,SAAWA,GAGrB,IACE,MAAMrB,QAAiB9B,EAAemI,EAAQ5H,EAAS6H,EAAS5G,IAC1DF,cAAEA,GAAkB8G,EAO1B,OALA7H,EAAQqB,aAAa0G,mBACnBxG,EAASC,QACT+E,QAAQxF,GAAiBiH,EAAUhI,EAAQoB,QAASL,KAG/C6B,GAAUrB,SAASA,IAAaA,CACzC,CAAE,MAAO4B,GAGP,MAFAP,GAAUyB,MAAMlB,GAChBP,GAAUqF,MACJ9E,CACR"}
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 s from"../constants/cli-actions.js";import t from"../constants/cli-name.js";import{getMarkerFile as i}from"./dev-marker.js";import n from"./print-server-urls.js";import m from"./resolve-server-urls.js";async function a(a,{server:d,version:l="unknown"}={}){const{action:p}=a.getPluginConfig()??{},{isProd:f,host:c,root:g,isSPA:v}=a.getParams(),h=i(g),u=a.getLogger(),w=global.viteBoostStartTime??o.now(),b=r.dim(`ready in ${r.reset(r.bold(Math.ceil(o.now()-w)))} ms`);u.info(`\n ${r.green(`${r.bold(t.toUpperCase())} v${l}`)} ${b}\n`,{clear:!u.hasWarned});const S=a.getVite()?.config,$=!S?.mode&&!e.existsSync(h),j=d?await m(d,{host:c,isHttps:Boolean(S?.server.https),rawBase:S?.rawBase}):null,P=S?.mode||$?a.mode:`production ${r.red("NODE_ENV=development")}`,k=v?"SPA":"SSR";if(u.info(r.dim(r.green(" ➜"))+r.dim(" Mode: ")+r.blue(P)),u.info(r.dim(r.green(" ➜"))+r.dim(" Type: ")+r.blue(k)),f)j&&n(j,e=>u.info(e));else{const e=a.getVite();e.resolvedUrls=j,e.printUrls()}p===s.dev&&u.info(r.dim(r.green(" ➜"))+r.dim(" press ")+r.bold("h")+r.dim(" to show help"))}export{a as default};
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,GAAUR,EAAOS,YACvCC,EAAYC,EAAcJ,GAE1BK,EAASZ,EAAOa,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,mBAAmB3B,SACrCiB,MACN,CAAEW,OAAQlB,EAAOmB,YAGnB,MAAMC,EAAkEhC,EAAOiC,WAAWjC,OACpFkC,GAAeF,GAAYG,OAASC,EAAGC,WAAW3B,GAClD4B,EAAerC,QACXsC,EAAkBtC,EAAQ,CAC9BK,OACAkC,QAASC,QAAQT,GAAY/B,OAAOyC,OACpCC,QAASX,GAAYW,UAEvB,KACER,EACJH,GAAYG,MAAQD,EAChBlC,EAAOmC,KACP,cAAcf,EAAMwB,IAAI,0BACxBC,EAAOrC,EAAQ,MAAQ,MAK7B,GAHAI,EAAOc,KAAKN,EAAMC,IAAID,EAAMO,MAAM,QAAUP,EAAMC,IAAI,eAAiBD,EAAM0B,KAAKX,IAClFvB,EAAOc,KAAKN,EAAMC,IAAID,EAAMO,MAAM,QAAUP,EAAMC,IAAI,eAAiBD,EAAM0B,KAAKD,IAE7ExC,EAKMiC,GACTS,EAAgBT,EAAeU,GAAQpC,EAAOc,KAAKsB,QANxC,CACX,MAAMC,EAAOjD,EAAOiC,UAEpBgB,EAAKX,aAAeA,EACpBW,EAAKC,WACP,CAII/C,IAAWgD,EAAWC,KACxBxC,EAAOc,KACLN,EAAMC,IAAID,EAAMO,MAAM,QACpBP,EAAMC,IAAI,YACVD,EAAMG,KAAK,KACXH,EAAMC,IAAI,iBAGlB"}
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;
@@ -1,2 +1,2 @@
1
- import{PassThrough as r,Readable as e}from"node:stream";import{renderToPipeableStream as t}from"react-dom/server";const o=(o,n)=>{const a=new r,s=e.toWeb(a,{strategy:{highWaterMark:a.readableHighWaterMark,size:r=>r.byteLength}});let i,l,c,d;const b=new Promise((r,e)=>{i=e,c=r}),g=new Promise((r,e)=>{l=e,d=r});b.catch(()=>{}),g.catch(()=>{});let h=!1,m=!1;const p=t(o,{nonce:n.nonce,bootstrapScriptContent:n.bootstrapScriptContent,onAllReady:c,onError:n.onError,onShellError:r=>{const e=r instanceof Error?r:new Error(String(r));h=!0,i(e),l(e)},onShellReady:()=>{h=!0,d()}}),E=r=>{if(!m){if(m=!0,!h){h=!0;const e=r instanceof Error?r:new Error("string"==typeof r?r:"Render aborted");l(e),i(e)}p.abort(r)}},f=()=>E(n.signal.reason),y=()=>n.signal.removeEventListener("abort",f);n.signal.aborted?f():n.signal.addEventListener("abort",f,{once:!0}),b.then(y,y);let w=!1;return{allReady:b,abort:E,shellReady:g,start:()=>{w||(w=!0,p.pipe(a))},stream:s}};export{o as default};
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":"kHAOA,MAAMA,EAAkC,CAACC,EAAMC,KAC7C,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,EAAWC,EAAuB1B,EAAM,CAC5C2B,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
+ {"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,d)=>{o.statusCode=d.status,e(d.headers).forEach(([e,r])=>o.setHeader(e,r));const t=r(d.headers);if("function"==typeof o.appendHeader)t.forEach(e=>o.appendHeader(a,e));else if(t.length){const e=o.getHeader(a),r=Array.isArray(e)?e:[String(e)];o.setHeader(a,e?[...r,...t]:t)}},d=e=>new Promise((r,a)=>{const o=()=>{e.off("close",d),e.off("drain",t),e.off("error",n)},d=()=>{o(),a(new Error("Response closed before drain."))},t=()=>{o(),r()},n=e=>{o(),a(e)};e.once("close",d),e.once("drain",t),e.once("error",n)}),t=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(),t=()=>{e.writableEnded||a.cancel().catch(()=>{})};e.once("close",t);try{for(;;){const r=await a.read();if(r.done)break;if(e.destroyed||e.writableEnded)return void await a.cancel();e.write(r.value)||await d(e),e.flush?.()}e.destroyed||e.writableEnded||e.end()}catch(r){await a.cancel(r).catch(()=>{}),e.destroyed||e.destroy(r)}finally{e.off("close",t),a.releaseLock()}};export{t as default,o as writeFetchHeaders};
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,SAKVtC,EAAIkD,MAAMH,EAAMvC,cACba,EAAarB,GAMpBA,EAAiDmD,SACpD,CAEKnD,EAAImC,WAAcnC,EAAIoC,eACzBpC,EAAI2C,KAER,CAAE,MAAOZ,SACDa,EAAON,OAAOP,GAAOe,MAAM,QAE5B9C,EAAImC,WACPnC,EAAIoD,QAAQrB,EAEhB,SACE/B,EAAI0B,IAAI,QAASC,GACjBiB,EAAOS,aACT"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lomray/vite-ssr-boost",
3
- "version": "8.4.0",
3
+ "version": "8.4.1-beta.2",
4
4
  "description": "SSR and streaming for existing Vite + React Router apps in Data mode, without Framework mode",
5
5
  "type": "module",
6
6
  "exports": {
@@ -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 t from"node:path";import e 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 a}from"../helpers/dev-marker.js";import c from"../helpers/plugin-config.js";import d 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=c(this.viteConfig),this.buildDir=t.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 t=new Promise((t,e)=>{i.on("exit",i=>{t(i)}),i.on("close",i=>{t(i)}),i.on("error",i=>{e(i)}),s&&i.stderr?.on("data",i=>{const s=Buffer.from(i).toString();(s.includes("warning")||s.includes("WARNING"))&&t(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 t=i+Buffer.from(s).toString();r.filter(i=>t.includes(i)).forEach(i=>this.diagnosticCodes.add(i)),i=t.slice(-80)})}return{promise:t,command:i}}buildManifest(){console.info(e.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()}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 t=s.readFileSync(i,{encoding:"utf-8"}).replace(/Disallow: \/$/m,"Allow: /");s.writeFileSync(i,t,{encoding:"utf-8"}),console.info(e.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,t,e={}){const{mode:o,isNoWarnings:r}=this.params,{focusOnly:n=this.params.focusOnly,shouldWait:a=!1,env:c={}}=e,d=o&&!t.includes("--mode")?`--mode ${o}`:"",u=this.promisifyProcess(i.spawn(`vite build ${t} ${d} --emptyOutDir`,{signal:this.abortController.signal,stdio:[process.stdin,"pipe","pipe"],shell:!0,env:{...process.env,...c,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}),a&&await this.waitLastBuild()}async waitLastBuild(){const i=this.runningBuild.at(-1);if(!i)return;const s=await i.buildProcess.promise;d(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 t=e=>{Buffer.from(e).toString().includes("built in")&&(s-=1,s||(this.runningBuild.forEach(({buildProcess:i})=>{i.command.stdout?.removeListener("data",t)}),a(this.isProd,this.viteConfig),i?.()))};this.runningBuild.forEach(({buildProcess:i})=>{i.command.stdout?.on("data",t)})}async build(){await this.makeConfig(),await n(),this.clearBuildFolder(),this.diagnosticCodes.clear();const{clientOptions:i,serverOptions:e,onFinish:o,isWatch:r,focusOnly:c,isEject:d,isServerless:u,isUnlockRobots:h}=this.params,{outDir:p}=this.viteConfig.build,f=l(c);this.abortController=new AbortController,this.runningBuild=[],f.isClient()&&await this.spawnBuild("client",`${i} --outDir ${p}/client`,{shouldWait:!r}),f.isServer()&&(await this.spawnBuild("server",`${e} --outDir ${p}/server --ssr ${this.pluginConfig.serverFile}`,{shouldWait:!r}),r||(this.buildManifest(),d&&this.eject(),u&&this.createServerless()));const{entrypoint:m}=this.pluginConfig;if(m?.length&&f.isEntrypoint())for(const{name:i,type:s,serverFile:t,buildOptions:e=""}of m){const o=t&&"ssr"===s?`--ssr ${t}`:"";await this.spawnBuild(i,`${e} ${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(),a(this.isProd,this.viteConfig),s.mkdirSync(this.buildDir,{recursive:!0}),s.writeFileSync(t.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};
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
@@ -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","writeFileSync","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","serverFile","isEntrypoint","type","cliOptions","SSR_BOOST_CUSTOM_ENTRYPOINT_BUILD_NAME","mkdirSync","join","JSON","stringify","codes","sort","a","b","localeCompare"],"mappings":"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"}
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"}
@@ -11,6 +11,7 @@ interface IConfigOptions {
11
11
  }
12
12
  interface IConfigParams {
13
13
  root: string;
14
+ base: string;
14
15
  publicDir: string;
15
16
  pluginPath: string;
16
17
  isProd: boolean;
@@ -1,2 +1,2 @@
1
- import t from"node:fs";import i from"node:path";import e from"../helpers/plugin-config.js";import r from"./logger.js";class s{isProd;isHost;isModulePreload;mode;entrypointName;vite;app;params;defaultParams;logger;defaultBuildRoots=["./build","./dist"];constructor({entrypointName:t,isProd:i=!1,isHost:e=!1,isOnlyClient:r=!1,isModulePreload:s=!1,mode:o="production"},n){this.isProd=i,this.isHost=e,this.isModulePreload=s,this.mode=o,this.entrypointName=t,this.defaultParams={publicDir:"/client",indexFile:"/client/index.html",serverFile:"/server/server.js",host:"127.0.0.1",isSPA:r,...n},this.makeParams()}static init(t={},i={}){return new s(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:s,publicDir:o,indexFile:n,clientFile:l,serverFile:a,host:p,isSPA:h}=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??p,f=Number(e?.env.VITE_PORT??e?.server.port??this.defaultParams.port);this.params={root:e?.root??this.getBuildDir(s),publicDir:e?.publicDir??o,indexFile:t.indexFile??n,clientFile:t.clientFile??l,serverFile:t.serverFile??a,pluginPath:d,host:m,port:f,isSPA:u?"spa"===u.type:h,isProd:this.isProd},this.logger=this.vite?.config.logger??new r}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{s as default};
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":"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"}
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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"}