@lomray/vite-ssr-boost 8.4.1-beta.1 → 8.4.1-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/express/prepare-server.d.ts +4 -0
- package/adapters/express/prepare-server.js +1 -1
- package/adapters/express/prepare-server.js.map +1 -1
- package/adapters/express/render.js +1 -1
- package/adapters/express/render.js.map +1 -1
- package/adapters/express/server.js +1 -1
- package/adapters/express/server.js.map +1 -1
- package/adapters/express/static-files.d.ts +7 -0
- package/adapters/express/static-files.js +2 -0
- package/adapters/express/static-files.js.map +1 -0
- package/core/compose-html.d.ts +1 -1
- package/core/compose-html.js +1 -1
- package/core/compose-html.js.map +1 -1
- package/core/data-stream.js +1 -1
- package/core/data-stream.js.map +1 -1
- package/core/handler.js +1 -1
- package/core/handler.js.map +1 -1
- package/core/render.js +1 -1
- package/core/render.js.map +1 -1
- package/node/render-to-stream.d.ts +1 -3
- package/node/render-to-stream.js +1 -1
- package/node/render-to-stream.js.map +1 -1
- package/node/write-fetch-response.js +1 -1
- package/node/write-fetch-response.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import t from"node:fs";import e from"node:path";import r from"node:process";import{pathToFileURL as i}from"node:url";import s from"chalk";import{splitHtmlShell as o}from"../../services/diagnostics.js";import n from"../../services/server-api.js";class a{onServerStarted;config;serverApi;entrypoint;onServerCreated;html;htmlParts;middlewaresConfigs;constructor(t,e){this.config=t,this.serverApi=e??new n}static init(t,e){return new a(t,e)}async loadEntrypoint(t=!0){if(this.entrypoint&&this.config.isProd)return this.entrypoint;const{root:o,isProd:n,serverFile:a}=this.config.getParams(),l=e.resolve(`${o}/${a}`);let c;try{c=n?(await(import(i(l).toString()))).default:(await this.config.getVite().ssrLoadModule(l,{fixStacktrace:!0})).default}catch(t){if(t instanceof Error&&t.message.includes("Cannot find module")&&t.message.includes("/build/"))return this.config.getLogger().error(s.red(`Before starting the server, you need to create a build: ${s.yellow("ssr-boost build")} or provide path to build dir: ${s.yellow("ssr-boost start --build-dir build")}`)),r.exit(1);throw t}!t&&c.init&&delete c.init;const{render:d,init:h,routes:g,abortDelay:m,loggerProd:f,loggerDev:p,middlewares:u}=c;this.middlewaresConfigs=u,f&&n?this.config.setLogger(f):p&&!n&&this.config.setLogger(p);const{onServerCreated:v,onServerStarted:w,...y}=await(h?.({config:this.config}))??{};return this.entrypoint={render:d,routes:g,abortDelay:m,...y},this.onServerCreated=v,this.onServerStarted=w,this.entrypoint}async loadHtml(r){if(this.config.isProd&&this.htmlParts)return[...this.htmlParts];const{isProd:i,root:s,indexFile:n,clientFile:a}=this.config.getParams();this.html&&i||(this.html=t.readFileSync(e.resolve(`${s}/${n}`),"utf-8"));let l=this.html;if(!i){const t=e.posix.normalize(`${this.config.getVite()?.config.base}/${a}`);l=(await this.config.getVite().transformIndexHtml(r.originalUrl,this.html,n)).replace(new RegExp(String.raw`<script[^>]*?\bsrc=["']/?${t}([^"']*)["'][^>]*?\sasync\b`,"g"),t=>t.replace(/\sasync\b/,""))}const c=o(l,e.resolve(`${s}/${n}`));return i&&(this.htmlParts=c),[...c]}async onAppCreated(){return await this.loadEntrypoint(),await(this.onServerCreated?.(this.config.getApp(),this.serverApi)),this}getMiddlewaresConfig(){const{compression:t,expressStatic:e}=this.middlewaresConfigs??{};return{compression:!1!==t&&{...t},expressStatic:!1!==e&&{...e,basename:e?.basename??new URL(this.config.getParams().base??"/","http://localhost").pathname}}}}export{a as default};
|
|
2
2
|
//# sourceMappingURL=prepare-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-server.js","sources":["../../../src/adapters/express/prepare-server.ts"],"sourcesContent":[null],"names":["PrepareServer","onServerStarted","config","serverApi","entrypoint","onServerCreated","html","middlewaresConfigs","constructor","this","ServerApi","init","loadEntrypoint","shouldInit","isProd","root","serverFile","getParams","entrypointPath","path","resolve","resolvedEntrypoint","pathToFileURL","toString","default","getVite","ssrLoadModule","fixStacktrace","e","Error","message","includes","getLogger","error","chalk","red","yellow","process","exit","render","routes","abortDelay","loggerProd","loggerDev","middlewares","setLogger","renderParams","loadHtml","req","indexFile","clientFile","fs","readFileSync","modifiedHtml","clientFileEntry","posix","normalize","base","transformIndexHtml","originalUrl","replace","RegExp","String","raw","match","splitHtmlShell","onAppCreated","getApp","getMiddlewaresConfig","compression","expressStatic","basename","URL","pathname"],"mappings":"qPA0BA,MAAMA,EAIGC,gBAKYC,OAKAC,UAKTC,WAKAC,gBAKAC,KAKAC,mBAKV,WAAAC,
|
|
1
|
+
{"version":3,"file":"prepare-server.js","sources":["../../../src/adapters/express/prepare-server.ts"],"sourcesContent":[null],"names":["PrepareServer","onServerStarted","config","serverApi","entrypoint","onServerCreated","html","htmlParts","middlewaresConfigs","constructor","this","ServerApi","init","loadEntrypoint","shouldInit","isProd","root","serverFile","getParams","entrypointPath","path","resolve","resolvedEntrypoint","pathToFileURL","toString","default","getVite","ssrLoadModule","fixStacktrace","e","Error","message","includes","getLogger","error","chalk","red","yellow","process","exit","render","routes","abortDelay","loggerProd","loggerDev","middlewares","setLogger","renderParams","loadHtml","req","indexFile","clientFile","fs","readFileSync","modifiedHtml","clientFileEntry","posix","normalize","base","transformIndexHtml","originalUrl","replace","RegExp","String","raw","match","parts","splitHtmlShell","onAppCreated","getApp","getMiddlewaresConfig","compression","expressStatic","basename","URL","pathname"],"mappings":"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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"./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
|
|
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","hints","getRouteAssets","injectAssets","hasEarlyHints","emitEarlyHints","routerRequestContext","onEarlyHints","writeEarlyHints","location","destroyed","writeFetchHeaders","cancel","redirect","writeFetchResponse","writeResponse","dispose"],"mappings":"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
|
|
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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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"node:http";import r from"node:https";import t from"node:path";import s from"compression";import o from"express";import i from"./prepare-server.js";import a from"../../helpers/print-server-info.js";import
|
|
1
|
+
import e from"node:http";import r from"node:https";import t from"node:path";import s from"compression";import o from"express";import i from"./prepare-server.js";import a from"./static-files.js";import n from"../../helpers/print-server-info.js";import p from"../../services/server-api.js";async function d(d){const c=o().disable("x-powered-by");d.isProd&&c.set("env","production");const m=new p;d.setApp(c);const l=i.init(d,m);if(!d.isProd){const e=await(await(import("vite"))).createServer({server:{middlewareMode:!0,watch:{usePolling:!0,interval:100}},appType:"custom",mode:d.mode});c.use(e.middlewares),d.setVite(e)}const{isSPA:f}=d.getParams();if(f||await l.onAppCreated(),d.isProd){const{root:e,publicDir:r}=d.getParams(),{compression:i,expressStatic:n}=l.getMiddlewaresConfig();if(i&&c.use(s(i)),f||c.use((e,r,t)=>{"/index.html"!==e.url||m.hasAccessIndexHtml()||(e.url="/index-not-found.html"),t()}),n){const{basename:s,...i}=n;c.use(s,(f?o.static:a)(t.resolve(`${e}/${r}`),{...i,index:!!f&&void 0}))}}return f?c.use(/(.*)/,(e,r,t)=>{(async()=>{try{const t=(await l.loadHtml(e)).join("");r.send(t)}catch(e){d.getLogger().error(`Failed to handle request: ${e?.message}`,{error:e}),t(e)}})()}):c.use(/(.*)/,(e,r,t)=>{(async()=>{try{const[{render:s,onRequest:o,...i},a]=await Promise.all([l.loadEntrypoint(),l.loadHtml(e)]),{appProps:n,hasEarlyHints:p,shouldSkip:c,shouldCancel:m}=(o?await o(e,r):void 0)??{},[f,u]=a;if(m||r.writableEnded||r.headersSent)return;if(c)return t();const h={req:e,res:r,hasEarlyHints:p,appProps:n??{},html:{header:f,footer:u}};await s(d,h,i)}catch(e){d.getLogger().error(`Failed to handle request: ${e?.message}`,{error:e}),t(e)}})()}),{run:({version:t,isPrintInfo:s=!0}={})=>{const{port:o,host:i}=d.getParams(),a=Boolean(d.getVite()?.config?.server?.https);d.isHost&&!d.isProd&&(d.getVite().config.server.host=i);const p=(a?r.createServer(d.getVite().config.server.https,c):e.createServer(c)).listen(o,i,()=>{l.onServerStarted?.(c,m,p),s&&n(d,{version:t,server:p})});return p},app:c}}export{d as default};
|
|
2
2
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sources":["../../../src/adapters/express/server.ts"],"sourcesContent":[null],"names":["async","createServer","config","app","express","disable","isProd","set","serverApi","ServerApi","setApp","prepareServer","PrepareServer","init","vite","server","middlewareMode","watch","usePolling","interval","appType","mode","use","middlewares","setVite","isSPA","getParams","onAppCreated","root","publicDir","compression","compressionConfig","expressStatic","getMiddlewaresConfig","req","_","next","url","hasAccessIndexHtml","basename","expressStaticOpts","static","path","resolve","index","undefined","res","html","loadHtml","join","send","e","getLogger","error","message","render","onRequest","renderParams","clientHtml","Promise","all","loadEntrypoint","appProps","hasEarlyHints","shouldSkip","shouldCancel","header","footer","writableEnded","headersSent","renderInput","run","version","isPrintInfo","port","host","isHTTPS","Boolean","getVite","https","isHost","http","listen","onServerStarted","printServerInfo"],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.js","sources":["../../../src/adapters/express/server.ts"],"sourcesContent":[null],"names":["async","createServer","config","app","express","disable","isProd","set","serverApi","ServerApi","setApp","prepareServer","PrepareServer","init","vite","server","middlewareMode","watch","usePolling","interval","appType","mode","use","middlewares","setVite","isSPA","getParams","onAppCreated","root","publicDir","compression","compressionConfig","expressStatic","getMiddlewaresConfig","req","_","next","url","hasAccessIndexHtml","basename","expressStaticOpts","static","staticFiles","path","resolve","index","undefined","res","html","loadHtml","join","send","e","getLogger","error","message","render","onRequest","renderParams","clientHtml","Promise","all","loadEntrypoint","appProps","hasEarlyHints","shouldSkip","shouldCancel","header","footer","writableEnded","headersSent","renderInput","run","version","isPrintInfo","port","host","isHTTPS","Boolean","getVite","https","isHost","http","listen","onServerStarted","printServerInfo"],"mappings":"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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"}
|
package/core/compose-html.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type DataStream from './data-stream.js';
|
|
2
2
|
import type RequestTimeline from '../services/request-timeline.js';
|
|
3
|
-
/**
|
|
3
|
+
/** Queue the prepared shell immediately and pull later bytes only under downstream demand. */
|
|
4
4
|
declare const composeHtml: (header: string, body: ReadableStream<Uint8Array>, footer: string, abort?: (reason?: unknown) => void, onComplete?: () => void, data?: DataStream, timeline?: RequestTimeline, isEarly?: boolean) => ReadableStream<Uint8Array>;
|
|
5
5
|
export default composeHtml;
|
package/core/compose-html.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"./html-boundary.js";const
|
|
1
|
+
import e from"./html-boundary.js";const n=(n,t,o,r,a,c,i,d=!1)=>{const l=new TextEncoder,u=t.getReader();let s,f,y="body",m=!1,h=!1,v=c&&!c.isDone?e():void 0,w=!0;const b=()=>{h||(h=!0,u.releaseLock())};return new ReadableStream({start(e){n&&(d&&i?.record("state.emitted",{placement:"early"}),e.enqueue(l.encode(n)))},cancel:async e=>{m=!0,r?.(e),c?.cancel();try{h||await u.cancel(e)}finally{b(),a?.()}},async pull(e){try{for(;!m;){const n=w?c?.take():void 0;if(w&&c?.isDone&&(v=void 0),m)return;if(n)return void e.enqueue(l.encode(n));if(f)return w=v?.(f)??!0,e.enqueue(f),void(f=void 0);if("body"===y){s??=u.read();const e=await(c&&!c.isDone&&w?Promise.race([s,c.changed().then(()=>{})]):s);if(m)return;if(!e)continue;if(s=void 0,!e.done){f=e.value;continue}y="footer",i?.record("body.end"),w=!0,b();continue}!c||c.isDone?(o&&(d||i?.record("state.emitted",{placement:"footer"}),e.enqueue(l.encode(o))),m=!0,a?.(),e.close()):await c.changed()}}catch(n){if(m)return;m=!0,r?.(n),c?.cancel(),e.error(n);try{h||await u.cancel(n).catch(()=>{})}finally{b(),a?.()}}}},{highWaterMark:0})};export{n as default};
|
|
2
2
|
//# sourceMappingURL=compose-html.js.map
|
package/core/compose-html.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose-html.js","sources":["../../src/core/compose-html.ts"],"sourcesContent":[null],"names":["composeHtml","header","body","footer","abort","onComplete","data","timeline","isEarly","encoder","TextEncoder","reader","getReader","pendingRead","phase","isStopped","isReleased","observe","htmlBoundary","
|
|
1
|
+
{"version":3,"file":"compose-html.js","sources":["../../src/core/compose-html.ts"],"sourcesContent":[null],"names":["composeHtml","header","body","footer","abort","onComplete","data","timeline","isEarly","encoder","TextEncoder","reader","getReader","pendingRead","heldChunk","phase","isStopped","isReleased","observe","isDone","htmlBoundary","undefined","canInject","release","releaseLock","ReadableStream","start","controller","record","placement","enqueue","encode","cancel","async","reason","pull","frames","take","read","chunk","Promise","race","changed","then","done","value","close","error","catch","highWaterMark"],"mappings":"kCAKA,MAAMA,EAAc,CAClBC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAAU,KAEV,MAAMC,EAAU,IAAIC,YACdC,EAAST,EAAKU,YACpB,IAGIC,EAGAC,EANAC,EAA2B,OAC3BC,GAAY,EACZC,GAAa,EAEbC,EAAUZ,IAASA,EAAKa,OAASC,SAAiBC,EAClDC,GAAY,EAIhB,MAAMC,EAAU,KACTN,IACHA,GAAa,EACbN,EAAOa,gBAIX,OAAO,IAAIC,eACT,CAEE,KAAAC,CAAMC,GACA1B,IACEO,GACFD,GAAUqB,OAAO,gBAAiB,CAAEC,UAAW,UAGjDF,EAAWG,QAAQrB,EAAQsB,OAAO9B,IAEtC,EAGA+B,OAAQC,MAAOC,IACblB,GAAY,EACZZ,IAAQ8B,GACR5B,GAAM0B,SAEN,IACOf,SACGN,EAAOqB,OAAOE,EAExB,SACEX,IACAlB,KACF,GAIF,UAAM8B,CAAKR,GACT,IACE,MAAQX,GAAW,CACjB,MAAMoB,EAASd,EAAYhB,GAAM+B,YAAShB,EAM1C,GAJIC,GAAahB,GAAMa,SACrBD,OAAUG,GAGRL,EACF,OAGF,GAAIoB,EAGF,YAFAT,EAAWG,QAAQrB,EAAQsB,OAAOK,IAKpC,GAAItB,EAKF,OAJAQ,EAAYJ,IAAUJ,KAAc,EACpCa,EAAWG,QAAQhB,QACnBA,OAAYO,GAKd,GAAc,SAAVN,EAAkB,CACpBF,IAAgBF,EAAO2B,OACvB,MAAMC,QAAejC,IAASA,EAAKa,QAAUG,EACzCkB,QAAQC,KAAK,CAAC5B,EAAaP,EAAKoC,UAAUC,KAAK,UAC/C9B,GAEJ,GAAIG,EACF,OAGF,IAAKuB,EACH,SAKF,GAFA1B,OAAcQ,GAETkB,EAAMK,KAAM,CACf9B,EAAYyB,EAAMM,MAElB,QACF,CAEA9B,EAAQ,SACRR,GAAUqB,OAAO,YACjBN,GAAY,EACZC,IACA,QACF,EAEIjB,GAASA,EAAKa,QAKdhB,IACGK,GACHD,GAAUqB,OAAO,gBAAiB,CAAEC,UAAW,WAGjDF,EAAWG,QAAQrB,EAAQsB,OAAO5B,KAGpCa,GAAY,EACZX,MACAsB,EAAWmB,eAdHxC,EAAKoC,SAef,CACF,CAAE,MAAOK,GACP,GAAI/B,EACF,OAGFA,GAAY,EACZZ,IAAQ2C,GACRzC,GAAM0B,SACNL,EAAWoB,MAAMA,GAEjB,IACO9B,SACGN,EAAOqB,OAAOe,GAAOC,MAAM,OAErC,SACEzB,IACAlB,KACF,CACF,CACF,GAEF,CAAE4C,cAAe"}
|
package/core/data-stream.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{stringify as t}from"devalue";import{isRouteErrorResponse as e}from"react-router";import i,{streamScript as s}from"./script.js";import o from"../helpers/serialize-errors.js";const r=(t,i)=>{const s=t,o=e(t),r="DataWithResponseInit"===s?.type,n=o?t.status:s?.init?.status,a=o?t.statusText:s?.init?.statusText,
|
|
1
|
+
import{stringify as t}from"devalue";import{isRouteErrorResponse as e}from"react-router";import i,{streamScript as s}from"./script.js";import o from"../helpers/serialize-errors.js";const r=(t,i)=>{const s=t,o=e(t),r="DataWithResponseInit"===s?.type,n=o?t.status:s?.init?.status,a=o?t.statusText:s?.init?.statusText,h={message:s?.message??(o||r?a||`Route data error (${n??500})`:String(t)),name:s?.name??"Error"};return(o||r)&&Object.assign(h,{status:n??500,statusText:a??"",data:s?.data,internal:!1}),i&&s?.stack&&(h.stack=s.stack),h};class n{diagnostics;nonce;timeline;initial;done;resolveDone;notify;change;identities=new WeakMap;pending=new Map;frames=[];initialized=!1;stopped=!1;aborted=!1;nextId=0;constructor(t,e,i,s){this.diagnostics=e,this.nonce=i,this.timeline=s,e?.inspectRouterState(t),this.done=new Promise(t=>{this.resolveDone=t});try{this.initial=this.encodeValue({loaderData:t.loaderData,actionData:t.actionData,errors:o(t.errors)}),this.initialized=!0,this.wake()}catch(t){throw this.cancel(),t}}promiseId=t=>{if(t instanceof Promise){let e=this.identities.get(t);if(void 0===e){e=this.nextId++,this.identities.set(t,e),this.pending.set(e,{settled:!1});const i=e;t.then(t=>this.settle(i,t,!1),t=>this.settle(i,t,!0)),this.aborted&&this.settle(e,new Error("SSR loader/action promise aborted before it settled."),!0)}return[e]}return!1};encodeValue(i){return t(i,{SSRBPromise:this.promiseId,SSRBError:t=>(t instanceof Error||e(t))&&Object.entries(r(t,Boolean(this.diagnostics))),SSRBObject:t=>Boolean(t&&"object"==typeof t&&Object.hasOwn(t,"__proto__"))&&Object.entries(t),SSRBUndefined:t=>"function"==typeof t||"symbol"==typeof t||Boolean(t&&"object"==typeof t&&!Array.isArray(t)&&![Object.prototype,null,Date.prototype,Map.prototype,Set.prototype,RegExp.prototype,Promise.prototype,Error.prototype].includes(Object.getPrototypeOf(t)))})}settle(t,e,i){const o=this.pending.get(t);if(o&&!o.settled&&!this.stopped){o.settled=!0,i||this.diagnostics?.inspectStreamValue(e,t);try{const o=this.encodeValue(i?Object.assign(new Error("Streamed loader/action rejection"),r(e,Boolean(this.diagnostics))):e);this.frames.push(s([i?"reject":"resolve",t,o],this.nonce)),this.timeline?.record(i?"stream.reject":"stream.resolve",{id:t})}catch(e){const i=this.encodeValue(new Error(`Cannot serialize streamed value: ${String(e)}`));this.frames.push(s(["reject",t,i],this.nonce)),this.timeline?.record("stream.reject",{id:t})}finally{this.pending.delete(t),this.wake()}}}wake(){this.notify?.(),this.notify=void 0,this.change=void 0,this.initialized&&!this.pending.size&&this.resolveDone()}get isDone(){return this.initialized&&!this.pending.size}changed(){return this.frames.length||this.isDone?Promise.resolve():this.change??=new Promise(t=>{this.notify=t})}take(){return this.frames.length?this.frames.splice(0).join(""):""}state(t){const{initial:e}=this;return i("window.__staticRouterHydrationData = {__ssrBoostStream: true};",this.nonce,!0)+s(["init",e,t],this.nonce)}abort(){this.aborted=!0;let t=0;for(const[e,i]of this.pending)i.settled||(t++,this.settle(e,new Error("SSR loader/action promise aborted before it settled."),!0));t&&this.diagnostics?.streamAborted(t)}cancel(){this.stopped=!0,this.initialized=!0,this.pending.clear(),this.frames.length=0,this.wake()}}export{n as default,r as errorProperties};
|
|
2
2
|
//# sourceMappingURL=data-stream.js.map
|
package/core/data-stream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-stream.js","sources":["../../src/core/data-stream.ts"],"sourcesContent":[null],"names":["errorProperties","reason","diagnostics","value","isResponse","isRouteErrorResponse","isDataError","type","status","init","statusText","properties","message","String","name","Object","assign","data","internal","stack","DataStream","nonce","timeline","initial","done","resolveDone","notify","change","identities","WeakMap","pending","Map","frames","initialized","stopped","aborted","nextId","constructor","context","this","inspectRouterState","Promise","resolve","encodeValue","loaderData","actionData","errors","serializeErrors","wake","error","cancel","promiseId","id","get","undefined","set","settled","then","result","settle","Error","stringify","SSRBPromise","SSRBError","entries","Boolean","SSRBObject","item","hasOwn","SSRBUndefined","Array","isArray","prototype","Date","Set","RegExp","includes","getPrototypeOf","rejected","inspectStreamValue","payload","push","streamScript","record","delete","size","isDone","changed","length","take","splice","join","state","isEarly","script","abort","count","streamAborted","clear"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"data-stream.js","sources":["../../src/core/data-stream.ts"],"sourcesContent":[null],"names":["errorProperties","reason","diagnostics","value","isResponse","isRouteErrorResponse","isDataError","type","status","init","statusText","properties","message","String","name","Object","assign","data","internal","stack","DataStream","nonce","timeline","initial","done","resolveDone","notify","change","identities","WeakMap","pending","Map","frames","initialized","stopped","aborted","nextId","constructor","context","this","inspectRouterState","Promise","resolve","encodeValue","loaderData","actionData","errors","serializeErrors","wake","error","cancel","promiseId","id","get","undefined","set","settled","then","result","settle","Error","stringify","SSRBPromise","SSRBError","entries","Boolean","SSRBObject","item","hasOwn","SSRBUndefined","Array","isArray","prototype","Date","Set","RegExp","includes","getPrototypeOf","rejected","inspectStreamValue","payload","push","streamScript","record","delete","size","isDone","changed","length","take","splice","join","state","isEarly","script","abort","count","streamAborted","clear"],"mappings":"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"}
|
package/core/handler.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{hasCookie as e}from"./document-headers.js";import s from"./head-response.js";import t from"./render.js";import o from"./spa-shell.js";import r from"./ssr-policy.js";import n,{isDiagnosticsEnabled as a}from"../services/diagnostics.js";import{createTimeline as i}from"../services/request-timeline.js";const c=(c,{diagnostics:p,getHtml:m,onContext:d,onRequest:l,ssr:u,basename:h,...f})=>{const w=new r(u,c.handler.dataRoutes,h),j=o();return async(o,r)=>{const u=a(p),h=i(o,u);try{const a=await
|
|
1
|
+
import{hasCookie as e}from"./document-headers.js";import s from"./head-response.js";import t from"./render.js";import o from"./spa-shell.js";import r from"./ssr-policy.js";import n,{isDiagnosticsEnabled as a}from"../services/diagnostics.js";import{createTimeline as i}from"../services/request-timeline.js";const c=(c,{diagnostics:p,getHtml:m,onContext:d,onRequest:l,ssr:u,basename:h,...f})=>{const w=new r(u,c.handler.dataRoutes,h),j=o();return async(o,r)=>{const u=a(p),h=i(o,u);try{const a=l?await l({executionContext:r,request:o}):void 0,i=a instanceof Response,p=i?void 0:a,x={appProps:p?.appProps??{},diagnostics:u?new n(new URL(o.url).pathname):void 0,executionContext:r,html:i?{header:"",footer:""}:await m(o),request:o,response:{headers:new Headers(p?.headers),status:p?.status},...h?{timeline:h}:{}};if(d?.({context:x}),i){const{sessionCookie:t}=f;x.diagnostics?.inspectCachePolicy(a.headers,Boolean(t&&e(o,t)));const r=await s(o,a);return h?.response(r)??r}return await t({...c,policy:w,spaShell:j},x,f,r)}catch(e){throw h?.abort(e),h?.end(),e}}};export{c as default};
|
|
2
2
|
//# sourceMappingURL=handler.js.map
|
package/core/handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sources":["../../src/core/handler.ts"],"sourcesContent":[null],"names":["createHandler","params","diagnostics","getHtml","onContext","onRequest","ssr","basename","options","policy","SsrPolicy","handler","dataRoutes","spaShell","createSpaShell","async","request","executionContext","isEnabled","isDiagnosticsEnabled","timeline","createTimeline","requestInit","isBypass","Response","metadata","
|
|
1
|
+
{"version":3,"file":"handler.js","sources":["../../src/core/handler.ts"],"sourcesContent":[null],"names":["createHandler","params","diagnostics","getHtml","onContext","onRequest","ssr","basename","options","policy","SsrPolicy","handler","dataRoutes","spaShell","createSpaShell","async","request","executionContext","isEnabled","isDiagnosticsEnabled","timeline","createTimeline","requestInit","undefined","isBypass","Response","metadata","context","appProps","Diagnostics","URL","url","pathname","html","header","footer","response","headers","Headers","status","sessionCookie","inspectCachePolicy","Boolean","hasCookie","headResponse","render","error","abort","end"],"mappings":"kTAsDA,MAAMA,EAAgB,CACpBC,GAEEC,cACAC,UACAC,YACAC,YACAC,MACAC,cACGC,MAGL,MAAMC,EAAS,IAAIC,EAAUJ,EAAKL,EAAOU,QAAQC,WAAYL,GACvDM,EAAWC,IAKjB,OAAOC,MAAOC,EAASC,KACrB,MAAMC,EAAYC,EAAqBjB,GACjCkB,EAAWC,EAAeL,EAASE,GAEzC,IACE,MAAMI,EAAcjB,QAAkBA,EAAU,CAAEY,mBAAkBD,iBAAaO,EAC3EC,EAAWF,aAAuBG,SAClCC,EAAWF,OAAWD,EAAYD,EAClCK,EAAyC,CAC7CC,SAAWF,GAAUE,UAAY,GACjC1B,YAAagB,EAAY,IAAIW,EAAY,IAAIC,IAAId,EAAQe,KAAKC,eAAYT,EAC1EN,mBACAgB,KAAMT,EAAW,CAAEU,OAAQ,GAAIC,OAAQ,UAAahC,EAAQa,GAC5DA,UACAoB,SAAU,CACRC,QAAS,IAAIC,QAAQZ,GAAUW,SAC/BE,OAAQb,GAAUa,WAEhBnB,EAAW,CAAEA,YAAa,IAKhC,GAFAhB,IAAY,CAAEuB,YAEVH,EAAU,CACZ,MAAMgB,cAAEA,GAAkBhC,EAE1BmB,EAAQzB,aAAauC,mBACnBnB,EAAYe,QACZK,QAAQF,GAAiBG,EAAU3B,EAASwB,KAG9C,MAAMJ,QAAiBQ,EAAa5B,EAASM,GAE7C,OAAOF,GAAUgB,SAASA,IAAaA,CACzC,CAEA,aAAaS,EAAO,IAAK5C,EAAQQ,SAAQI,YAAYc,EAASnB,EAASS,EACzE,CAAE,MAAO6B,GAGP,MAFA1B,GAAU2B,MAAMD,GAChB1B,GAAU4B,MACJF,CACR"}
|
package/core/render.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"react";import{matchRoutes as t,createStaticRouter as r,StaticRouterProvider as
|
|
1
|
+
import e from"react";import{matchRoutes as t,createStaticRouter as r,StaticRouterProvider as o}from"react-router";import s from"../constants/stream-error.js";import{ServerProvider as a}from"../context/server.js";import n from"./compose-html.js";import i from"./data-stream.js";import c,{hasCookie as d}from"./document-headers.js";import l from"./head-response.js";import{mergeResponseHeaders as m}from"./headers.js";import h from"./transform-html.js";import u from"../helpers/build-custom-state.js";import p from"../helpers/build-router-state.js";import C from"../helpers/obtain-stream-error.js";import{createTimeline as f}from"../services/request-timeline.js";const w="text/html",x="Content-Type",y=async({createApp:d,handler:f,renderToStream:y,policy:R,spaShell:S},v,{abortDelay:b=15e3,getState:g,hydration:q="footer",nonce:E,bootstrapScriptContent:j,onError:k,onResponse:H,onRouterReady:P,onShellError:T,onShellReady:A,prepare:B,routerRequestContext:D,documentHeaders:L,sessionCookie:_,protectPrivate:$},I)=>{const O=R?.select(v.request,v.diagnostics)??"ssr";if(R?.active&&!v.response.headers.has("Cache-Control")&&v.response.headers.set("Cache-Control","no-store"),"spa"===O)return v.isSpa=!0,v.isStream=!1,v.matches=t(f.dataRoutes,new URL(v.request.url),R?.basename)??[],v.html=S(v.html),B&&await B({context:v,executionContext:I}),L&&(v.response.headers=c(L,{sessionCookie:_,protectPrivate:$})(v)),v.response.status=200,v.response.headers.set(x,"text/html; charset=utf-8"),new Response("HEAD"===v.request.method?null:v.html.header+v.html.footer,{headers:v.response.headers,status:200});const U=await f.query(v.request,{requestContext:D??v});if(v.timeline?.record("router.query"),U instanceof Response)return l(v.request,m(U,v.response.headers));v.routerContext=U,v.matches=U.matches;const{loaderData:z,actionData:F,errors:G}=U,J=Object.keys(z).length>0||null!==F||null!==G,K="early"===q||J?new i(U,v.diagnostics,E,v.timeline):void 0;try{B&&await B({context:v,executionContext:I}),v.timeline?.record("prepare")}catch(e){throw K?.cancel(),e}const{isStream:M=!0}=(P?await P({context:v}):void 0)??{};v.isStream=M,v.serverContext={basename:v.routerContext.basename,isServer:!0,response:null};const N=r(f.dataRoutes,v.routerContext),Q=e.createElement(a,{context:v.serverContext},d(e.createElement(o,{router:N,context:v.routerContext,hydrate:!1}),v)),V=new AbortController;let W,X,Y=!1;const Z=()=>re(v.request.signal.reason),ee=()=>clearTimeout(oe),te=()=>{ee(),v.request.signal.removeEventListener("abort",Z)},re=e=>{Y||(Y=!0,W=e,v.timeline?.abort(e),te(),v.didError??=s.RenderCancel,K?.abort(),V.abort(e),X?.abort(e))},oe=setTimeout(()=>{v.didError=s.RenderTimeout,v.timeline?.abort(new Error(`SSR render timed out after ${b}ms`)),re()},b);v.request.signal.aborted?re(v.request.signal.reason):v.request.signal.addEventListener("abort",Z,{once:!0});try{X=await y(Q,{nonce:E,bootstrapScriptContent:"early"===q&&M?`(window.__ssrBoostStream = window.__ssrBoostStream || []).push(["shell"]);${j??""};document.currentScript?.remove();`:j,onError:e=>{const t=C(e);!Y||t.code!==s.RenderAborted&&e!==V.signal.reason||(t.code=v.didError===s.RenderTimeout?s.RenderTimeout:s.RenderCancel);const{code:r}=t;v.didError??=r,k?.({context:v,error:t})},signal:V.signal}),Y&&X.abort(W),Promise.all([X.allReady,K?.done]).then(ee,ee),await X.shellReady,v.timeline?.record("shell.ready"),M||await Promise.all([X.allReady,K?.done])}catch(e){return re(e),await(X?.stream.cancel(e).catch(()=>{})),((e,t,r)=>{const o=t instanceof Error?t:new Error(String(t)),s=r?.({context:e,error:o})||"<!doctype html><p>Internal Server Error</p>",a=new Headers(e.response.headers);return a.set(x,w),new Response("HEAD"===e.request.method?null:s,{headers:a,status:500})})(v,e,T)}try{const e=v.serverContext.response;if(e&&(se=e,Boolean(se&&se.status>=300&&se.status<400&&se.headers.has("Location"))))return re(),await X.stream.cancel().catch(()=>{}),l(v.request,m(e,v.response.headers));const{header:t,footer:r,headers:o,status:s}=((e,{getState:t,onShellReady:r,hydration:o,nonce:s,documentHeaders:a,sessionCookie:n,protectPrivate:i},d)=>{const l=e.serverContext.response;e.response.status=l?.status??e.response.status??e.routerContext.statusCode??200,e.response.headers.has(x)||e.response.headers.set(x,w);const m=r?.({context:e})??{},h="early"===o&&e.isStream,C=u(t?.({context:e}),e.diagnostics,s,Boolean(h));let f=m.header||e.html.header;const y=m.footer||e.html.footer;e.diagnostics?.inspectShell({header:f,footer:y});let R=y;h?f+=C+d.state(!0):R=C+(d?d.state(!1)+d.take():p(e.routerContext,void 0,s))+R;return a&&(e.response.headers=c(a,{sessionCookie:n,protectPrivate:i})(e)),{header:f,footer:R,headers:new Headers(e.response.headers),status:e.response.status}})(v,{getState:g,onShellReady:A,hydration:q,nonce:E,documentHeaders:L,sessionCookie:_,protectPrivate:$},K);if("HEAD"===v.request.method||[204,205,304].includes(s))return re(),await X.stream.cancel().catch(()=>{}),new Response(null,{headers:o,status:s});const a=n(t,X.stream,r,re,te,K,v.timeline,"early"===q&&M),i=h(a,H?(e,t)=>H({context:v,html:e,isEnd:t}):void 0,v.diagnostics);return X.start(),new Response(i,{headers:o,status:s})}catch(e){throw re(e),X.stream.locked||await X.stream.cancel(e).catch(()=>{}),e}var se},R=async(e,t,r,o)=>{const s=t.timeline??f(t.request,Boolean(t.diagnostics));s&&(t.timeline=s);try{const a=await y(e,t,r,o),{sessionCookie:n}=r;return t.diagnostics?.inspectCachePolicy(a.headers,Boolean(n&&d(t.request,n))),s?.response(a)??a}catch(e){throw s?.abort(e),s?.end(),e}};export{R as default};
|
|
2
2
|
//# sourceMappingURL=render.js.map
|
package/core/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sources":["../../src/core/render.tsx"],"sourcesContent":[null],"names":["HTML_CONTENT_TYPE","CONTENT_TYPE","renderResponse","async","createApp","handler","renderToStream","policy","spaShell","context","abortDelay","getState","hydration","nonce","bootstrapScriptContent","onError","onResponse","onRouterReady","onShellError","onShellReady","prepare","routerRequestContext","documentHeaders","rules","sessionCookie","protectPrivate","executionContext","mode","select","request","diagnostics","active","response","headers","has","set","isSpa","isStream","matches","matchRoutes","dataRoutes","URL","url","basename","html","status","Response","method","header","footer","queried","query","requestContext","timeline","record","headResponse","mergeResponseHeaders","routerContext","dataStream","DataStream","error","cancel","serverContext","isServer","router","createStaticRouter","node","React","createElement","ServerProvider","StaticRouterProvider","hydrate","renderController","AbortController","abortReason","output","hasAborted","onRequestAbort","abort","signal","reason","clearAbortTimer","clearTimeout","abortTimer","cleanup","removeEventListener","didError","StreamError","RenderCancel","setTimeout","RenderTimeout","Error","aborted","addEventListener","once","streamError","obtainStreamError","code","RenderAborted","Promise","all","allReady","done","then","shellReady","stream","catch","shellError","String","Headers","createShellErrorResponse","serverResponse","Boolean","statusCode","shell","isEarly","customState","buildCustomState","shellFooter","inspectShell","state","take","prepareHtmlResponse","includes","body","composeHtml","transformed","transformHtml","isEnd","
|
|
1
|
+
{"version":3,"file":"render.js","sources":["../../src/core/render.tsx"],"sourcesContent":[null],"names":["HTML_CONTENT_TYPE","CONTENT_TYPE","renderResponse","async","createApp","handler","renderToStream","policy","spaShell","context","abortDelay","getState","hydration","nonce","bootstrapScriptContent","onError","onResponse","onRouterReady","onShellError","onShellReady","prepare","routerRequestContext","documentHeaders","rules","sessionCookie","protectPrivate","executionContext","mode","select","request","diagnostics","active","response","headers","has","set","isSpa","isStream","matches","matchRoutes","dataRoutes","URL","url","basename","html","status","Response","method","header","footer","queried","query","requestContext","timeline","record","headResponse","mergeResponseHeaders","routerContext","loaderData","actionData","errors","hasRouterData","Object","keys","length","dataStream","DataStream","undefined","error","cancel","serverContext","isServer","router","createStaticRouter","node","React","createElement","ServerProvider","StaticRouterProvider","hydrate","renderController","AbortController","abortReason","output","hasAborted","onRequestAbort","abort","signal","reason","clearAbortTimer","clearTimeout","abortTimer","cleanup","removeEventListener","didError","StreamError","RenderCancel","setTimeout","RenderTimeout","Error","aborted","addEventListener","once","streamError","obtainStreamError","code","RenderAborted","Promise","all","allReady","done","then","shellReady","stream","catch","shellError","String","Headers","createShellErrorResponse","serverResponse","Boolean","statusCode","shell","isEarly","customState","buildCustomState","shellFooter","inspectShell","state","take","buildRouterState","prepareHtmlResponse","includes","body","composeHtml","transformed","transformHtml","isEnd","start","locked","render","params","options","createTimeline","inspectCachePolicy","hasCookie","end"],"mappings":"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"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { TRenderToStream } from '../core/render.js';
|
|
2
|
-
/**
|
|
3
|
-
* Adapt React pipeable rendering to Fetch streams with byte-based backpressure.
|
|
4
|
-
*/
|
|
2
|
+
/** Use React's native Web stream when available, retaining the React 18 bridge. */
|
|
5
3
|
declare const renderToStream: TRenderToStream;
|
|
6
4
|
export default renderToStream;
|
package/node/render-to-stream.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{PassThrough as
|
|
1
|
+
import{PassThrough as e,Readable as r}from"node:stream";import*as t from"react-dom/server";import o from"../edge/render-to-stream.js";const n="function"==typeof t.renderToReadableStream?o:(o,n)=>{const a=new e,s=r.toWeb(a,{strategy:{highWaterMark:a.readableHighWaterMark,size:e=>e.byteLength}});let i,l,c,d;const m=new Promise((e,r)=>{i=r,c=e}),b=new Promise((e,r)=>{l=r,d=e});m.catch(()=>{}),b.catch(()=>{});let p=!1,f=!1;const g=t.renderToPipeableStream(o,{nonce:n.nonce,bootstrapScriptContent:n.bootstrapScriptContent,onAllReady:c,onError:n.onError,onShellError:e=>{const r=e instanceof Error?e:new Error(String(e));p=!0,i(r),l(r)},onShellReady:()=>{p=!0,d()}}),h=e=>{if(!f){if(f=!0,!p){p=!0;const r=e instanceof Error?e:new Error("string"==typeof e?e:"Render aborted");l(r),i(r)}g.abort(e)}},E=()=>h(n.signal.reason),y=()=>n.signal.removeEventListener("abort",E);n.signal.aborted?E():n.signal.addEventListener("abort",E,{once:!0}),m.then(y,y);let S=!1;return{allReady:m,abort:h,shellReady:b,start:()=>{S||(S=!0,g.pipe(a))},stream:s}};export{n as default};
|
|
2
2
|
//# sourceMappingURL=render-to-stream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-to-stream.js","sources":["../../src/node/render-to-stream.ts"],"sourcesContent":[null],"names":["renderToStream","node","options","destination","PassThrough","stream","Readable","toWeb","strategy","highWaterMark","readableHighWaterMark","size","chunk","byteLength","rejectAll","rejectShell","resolveAll","resolveShell","allReady","Promise","resolve","reject","shellReady","catch","hasShellSettled","hasAborted","rendered","renderToPipeableStream","nonce","bootstrapScriptContent","onAllReady","onError","onShellError","error","shellError","Error","String","onShellReady","abort","reason","onAbort","signal","cleanup","removeEventListener","aborted","addEventListener","once","then","hasStarted","start","pipe"],"mappings":"
|
|
1
|
+
{"version":3,"file":"render-to-stream.js","sources":["../../src/node/render-to-stream.ts"],"sourcesContent":[null],"names":["renderToStream","ReactDOMServer","renderToReadableStream","renderWebStream","node","options","destination","PassThrough","stream","Readable","toWeb","strategy","highWaterMark","readableHighWaterMark","size","chunk","byteLength","rejectAll","rejectShell","resolveAll","resolveShell","allReady","Promise","resolve","reject","shellReady","catch","hasShellSettled","hasAborted","rendered","renderToPipeableStream","nonce","bootstrapScriptContent","onAllReady","onError","onShellError","error","shellError","Error","String","onShellReady","abort","reason","onAbort","signal","cleanup","removeEventListener","aborted","addEventListener","once","then","hasStarted","start","pipe"],"mappings":"sIAQA,MA+HMA,EAC6C,mBAA1CC,EAAeC,uBAClBC,EAjIwC,CAACC,EAAMC,KACnD,MAAMC,EAAc,IAAIC,EAClBC,EAASC,EAASC,MAAMJ,EAAa,CACzCK,SAAU,CACRC,cAAeN,EAAYO,sBAK3BC,KAAOC,GAAsBA,EAAMC,cAGvC,IAAIC,EACAC,EACAC,EACAC,EAKJ,MAAMC,EAAW,IAAIC,QAAc,CAACC,EAASC,KAC3CP,EAAYO,EACZL,EAAaI,IAMTE,EAAa,IAAIH,QAAc,CAACC,EAASC,KAC7CN,EAAcM,EACdJ,EAAeG,IAGZF,EAASK,MAAM,QACfD,EAAWC,MAAM,QAEtB,IAAIC,GAAkB,EAClBC,GAAa,EACjB,MAAMC,EAAW5B,EAAe6B,uBAAuB1B,EAAM,CAC3D2B,MAAO1B,EAAQ0B,MACfC,uBAAwB3B,EAAQ2B,uBAChCC,WAAYd,EACZe,QAAS7B,EAAQ6B,QAKjBC,aAAeC,IACb,MAAMC,EAAaD,aAAiBE,MAAQF,EAAQ,IAAIE,MAAMC,OAAOH,IAErET,GAAkB,EAClBV,EAAUoB,GACVnB,EAAYmB,IAMdG,aAAc,KACZb,GAAkB,EAClBP,OAOEqB,EAASC,IACb,IAAId,EAAJ,CASA,GALAA,GAAa,GAKRD,EAAiB,CACpBA,GAAkB,EAClB,MACMS,EAAQM,aAAkBJ,MAAQI,EAAS,IAAIJ,MADnB,iBAAXI,EAAsBA,EAAS,kBAGtDxB,EAAYkB,GACZnB,EAAUmB,EACZ,CAEAP,EAASY,MAAMC,EAhBf,GAsBIC,EAAU,IAAYF,EAAMpC,EAAQuC,OAAOF,QAK3CG,EAAU,IAAYxC,EAAQuC,OAAOE,oBAAoB,QAASH,GAEpEtC,EAAQuC,OAAOG,QACjBJ,IAEAtC,EAAQuC,OAAOI,iBAAiB,QAASL,EAAS,CAAEM,MAAM,IAGvD5B,EAAS6B,KAAKL,EAASA,GAC5B,IAAIM,GAAa,EAEjB,MAAO,CACL9B,WACAoB,QACAhB,aAKA2B,MAAO,KACAD,IACHA,GAAa,EACbtB,EAASwB,KAAK/C,KAGlBE"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getHeaderEntries as e,getSetCookieHeaders as r}from"../core/headers.js";const a="Set-Cookie",o=(o,
|
|
1
|
+
import{getHeaderEntries as e,getSetCookieHeaders as r}from"../core/headers.js";const a="Set-Cookie",o=(o,t)=>{o.statusCode=t.status,e(t.headers).forEach(([e,r])=>o.setHeader(e,r));const d=r(t.headers);if("function"==typeof o.appendHeader)d.forEach(e=>o.appendHeader(a,e));else if(d.length){const e=o.getHeader(a),r=Array.isArray(e)?e:[String(e)];o.setHeader(a,e?[...r,...d]:d)}},t=e=>new Promise((r,a)=>{const o=()=>{e.off("close",t),e.off("drain",d),e.off("error",n)},t=()=>{o(),a(new Error("Response closed before drain."))},d=()=>{o(),r()},n=e=>{o(),a(e)};e.once("close",t),e.once("drain",d),e.once("error",n)}),d=async(e,r)=>{if(e.destroyed||e.writableEnded)return void await(r.body?.cancel());if(e.headersSent||o(e,r),!r.body||"HEAD"===e.req?.method||[204,205,304].includes(e.statusCode))return await(r.body?.cancel()),void e.end();const a=r.body.getReader(),d=()=>{e.writableEnded||a.cancel().catch(()=>{})};e.once("close",d);try{for(;;){const r=await a.read();if(r.done)break;if(e.destroyed||e.writableEnded)return void await a.cancel();const o=e.write(r.value);e.flush?.(),o||await t(e)}e.destroyed||e.writableEnded||e.end()}catch(r){await a.cancel(r).catch(()=>{}),e.destroyed||e.destroy(r)}finally{e.off("close",d),a.releaseLock()}};export{d as default,o as writeFetchHeaders};
|
|
2
2
|
//# sourceMappingURL=write-fetch-response.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-fetch-response.js","sources":["../../src/node/write-fetch-response.ts"],"sourcesContent":[null],"names":["SET_COOKIE","writeFetchHeaders","res","response","statusCode","status","getHeaderEntries","headers","forEach","name","value","setHeader","cookies","getSetCookieHeaders","appendHeader","cookie","length","existing","getHeader","previousCookies","Array","isArray","String","waitForDrain","Promise","resolve","reject","cleanup","off","onClose","onDrain","onError","Error","error","once","writeFetchResponse","async","destroyed","writableEnded","body","cancel","headersSent","req","method","includes","end","reader","getReader","catch","chunk","read","done","write","flush","destroy","releaseLock"],"mappings":"+EAGA,MAAMA,EAAa,aAKbC,EAAoB,CAACC,EAAsBC,KAC/CD,EAAIE,WAAaD,EAASE,OAC1BC,EAAiBH,EAASI,SAASC,QAAQ,EAAEC,EAAMC,KAAWR,EAAIS,UAAUF,EAAMC,IAClF,MAAME,EAAUC,EAAoBV,EAASI,SAE7C,GAAgC,mBAArBL,EAAIY,aACbF,EAAQJ,QAASO,GAAWb,EAAIY,aAAad,EAAYe,SACpD,GAAIH,EAAQI,OAAQ,CAIzB,MAAMC,EAAWf,EAAIgB,UAAUlB,GACzBmB,EAAkBC,MAAMC,QAAQJ,GAAYA,EAAW,CAACK,OAAOL,IAErEf,EAAIS,UAAUX,EAAYiB,EAAW,IAAIE,KAAoBP,GAAWA,EAC1E,GAMIW,EAAgBrB,GACpB,IAAIsB,QAAQ,CAACC,EAASC,KAIpB,MAAMC,EAAU,KACdzB,EAAI0B,IAAI,QAASC,GACjB3B,EAAI0B,IAAI,QAASE,GACjB5B,EAAI0B,IAAI,QAASG,IAMbF,EAAU,KACdF,IACAD,EAAO,IAAIM,MAAM,mCAMbF,EAAU,KACdH,IACAF,KAMIM,EAAWE,IACfN,IACAD,EAAOO,IAGT/B,EAAIgC,KAAK,QAASL,GAClB3B,EAAIgC,KAAK,QAASJ,GAClB5B,EAAIgC,KAAK,QAASH,KAMhBI,EAAqBC,MAAOlC,EAAsBC,KACtD,GAAID,EAAImC,WAAanC,EAAIoC,cAGvB,kBAFMnC,EAASoC,MAAMC,UASvB,GAJKtC,EAAIuC,aACPxC,EAAkBC,EAAKC,IAGpBA,EAASoC,MAA4B,SAApBrC,EAAIwC,KAAKC,QAAqB,CAAC,IAAK,IAAK,KAAKC,SAAS1C,EAAIE,YAI/E,aAHMD,EAASoC,MAAMC,eACrBtC,EAAI2C,MAKN,MAAMC,EAAS3C,EAASoC,KAAKQ,YAKvBlB,EAAU,KACT3B,EAAIoC,eACFQ,EAAON,SAASQ,MAAM,SAI/B9C,EAAIgC,KAAK,QAASL,GAElB,IACE,OAAa,CACX,MAAMoB,QAAcH,EAAOI,OAE3B,GAAID,EAAME,KACR,MAGF,GAAIjD,EAAImC,WAAanC,EAAIoC,cAGvB,kBAFMQ,EAAON,
|
|
1
|
+
{"version":3,"file":"write-fetch-response.js","sources":["../../src/node/write-fetch-response.ts"],"sourcesContent":[null],"names":["SET_COOKIE","writeFetchHeaders","res","response","statusCode","status","getHeaderEntries","headers","forEach","name","value","setHeader","cookies","getSetCookieHeaders","appendHeader","cookie","length","existing","getHeader","previousCookies","Array","isArray","String","waitForDrain","Promise","resolve","reject","cleanup","off","onClose","onDrain","onError","Error","error","once","writeFetchResponse","async","destroyed","writableEnded","body","cancel","headersSent","req","method","includes","end","reader","getReader","catch","chunk","read","done","hasCapacity","write","flush","destroy","releaseLock"],"mappings":"+EAGA,MAAMA,EAAa,aAKbC,EAAoB,CAACC,EAAsBC,KAC/CD,EAAIE,WAAaD,EAASE,OAC1BC,EAAiBH,EAASI,SAASC,QAAQ,EAAEC,EAAMC,KAAWR,EAAIS,UAAUF,EAAMC,IAClF,MAAME,EAAUC,EAAoBV,EAASI,SAE7C,GAAgC,mBAArBL,EAAIY,aACbF,EAAQJ,QAASO,GAAWb,EAAIY,aAAad,EAAYe,SACpD,GAAIH,EAAQI,OAAQ,CAIzB,MAAMC,EAAWf,EAAIgB,UAAUlB,GACzBmB,EAAkBC,MAAMC,QAAQJ,GAAYA,EAAW,CAACK,OAAOL,IAErEf,EAAIS,UAAUX,EAAYiB,EAAW,IAAIE,KAAoBP,GAAWA,EAC1E,GAMIW,EAAgBrB,GACpB,IAAIsB,QAAQ,CAACC,EAASC,KAIpB,MAAMC,EAAU,KACdzB,EAAI0B,IAAI,QAASC,GACjB3B,EAAI0B,IAAI,QAASE,GACjB5B,EAAI0B,IAAI,QAASG,IAMbF,EAAU,KACdF,IACAD,EAAO,IAAIM,MAAM,mCAMbF,EAAU,KACdH,IACAF,KAMIM,EAAWE,IACfN,IACAD,EAAOO,IAGT/B,EAAIgC,KAAK,QAASL,GAClB3B,EAAIgC,KAAK,QAASJ,GAClB5B,EAAIgC,KAAK,QAASH,KAMhBI,EAAqBC,MAAOlC,EAAsBC,KACtD,GAAID,EAAImC,WAAanC,EAAIoC,cAGvB,kBAFMnC,EAASoC,MAAMC,UASvB,GAJKtC,EAAIuC,aACPxC,EAAkBC,EAAKC,IAGpBA,EAASoC,MAA4B,SAApBrC,EAAIwC,KAAKC,QAAqB,CAAC,IAAK,IAAK,KAAKC,SAAS1C,EAAIE,YAI/E,aAHMD,EAASoC,MAAMC,eACrBtC,EAAI2C,MAKN,MAAMC,EAAS3C,EAASoC,KAAKQ,YAKvBlB,EAAU,KACT3B,EAAIoC,eACFQ,EAAON,SAASQ,MAAM,SAI/B9C,EAAIgC,KAAK,QAASL,GAElB,IACE,OAAa,CACX,MAAMoB,QAAcH,EAAOI,OAE3B,GAAID,EAAME,KACR,MAGF,GAAIjD,EAAImC,WAAanC,EAAIoC,cAGvB,kBAFMQ,EAAON,SAKf,MAAMY,EAAclD,EAAImD,MAAMJ,EAAMvC,OAKnCR,EAAiDoD,UAE7CF,SACG7B,EAAarB,EAEvB,CAEKA,EAAImC,WAAcnC,EAAIoC,eACzBpC,EAAI2C,KAER,CAAE,MAAOZ,SACDa,EAAON,OAAOP,GAAOe,MAAM,QAE5B9C,EAAImC,WACPnC,EAAIqD,QAAQtB,EAEhB,SACE/B,EAAI0B,IAAI,QAASC,GACjBiB,EAAOU,aACT"}
|
package/package.json
CHANGED