@nexus_js/server 0.7.1 → 0.7.4

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 (72) hide show
  1. package/dist/actions.d.ts +2 -0
  2. package/dist/actions.d.ts.map +1 -1
  3. package/dist/actions.js +138 -2
  4. package/dist/actions.js.map +1 -1
  5. package/dist/constants.d.ts +6 -0
  6. package/dist/constants.d.ts.map +1 -0
  7. package/dist/constants.js +6 -0
  8. package/dist/constants.js.map +1 -0
  9. package/dist/context.d.ts +13 -2
  10. package/dist/context.d.ts.map +1 -1
  11. package/dist/context.js +7 -3
  12. package/dist/context.js.map +1 -1
  13. package/dist/dev-assets.d.ts +1 -1
  14. package/dist/dev-assets.d.ts.map +1 -1
  15. package/dist/dev-assets.js +15 -3
  16. package/dist/dev-assets.js.map +1 -1
  17. package/dist/dev-error-html.d.ts +19 -0
  18. package/dist/dev-error-html.d.ts.map +1 -0
  19. package/dist/dev-error-html.js +101 -0
  20. package/dist/dev-error-html.js.map +1 -0
  21. package/dist/dev-hot.d.ts +8 -0
  22. package/dist/dev-hot.d.ts.map +1 -0
  23. package/dist/dev-hot.js +30 -0
  24. package/dist/dev-hot.js.map +1 -0
  25. package/dist/dev-vault.d.ts +7 -0
  26. package/dist/dev-vault.d.ts.map +1 -0
  27. package/dist/dev-vault.js +66 -0
  28. package/dist/dev-vault.js.map +1 -0
  29. package/dist/devradar.d.ts +96 -0
  30. package/dist/devradar.d.ts.map +1 -0
  31. package/dist/devradar.js +69 -0
  32. package/dist/devradar.js.map +1 -0
  33. package/dist/handler.d.ts +7 -0
  34. package/dist/handler.d.ts.map +1 -0
  35. package/dist/handler.js +7 -0
  36. package/dist/handler.js.map +1 -0
  37. package/dist/index.d.ts +21 -1
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +142 -27
  40. package/dist/index.js.map +1 -1
  41. package/dist/inspector.d.ts +9 -0
  42. package/dist/inspector.d.ts.map +1 -0
  43. package/dist/inspector.js +8 -0
  44. package/dist/inspector.js.map +1 -0
  45. package/dist/load-module.d.ts +4 -3
  46. package/dist/load-module.d.ts.map +1 -1
  47. package/dist/load-module.js +64 -22
  48. package/dist/load-module.js.map +1 -1
  49. package/dist/logger.d.ts +0 -11
  50. package/dist/logger.d.ts.map +1 -1
  51. package/dist/logger.js +2 -1
  52. package/dist/logger.js.map +1 -1
  53. package/dist/navigate.d.ts.map +1 -1
  54. package/dist/navigate.js +73 -12
  55. package/dist/navigate.js.map +1 -1
  56. package/dist/renderer.d.ts +32 -1
  57. package/dist/renderer.d.ts.map +1 -1
  58. package/dist/renderer.js +259 -46
  59. package/dist/renderer.js.map +1 -1
  60. package/dist/shield-runtime.d.ts +7 -0
  61. package/dist/shield-runtime.d.ts.map +1 -0
  62. package/dist/shield-runtime.js +34 -0
  63. package/dist/shield-runtime.js.map +1 -0
  64. package/dist/streaming.d.ts +14 -3
  65. package/dist/streaming.d.ts.map +1 -1
  66. package/dist/streaming.js +26 -9
  67. package/dist/streaming.js.map +1 -1
  68. package/dist/streaming.test.d.ts +2 -0
  69. package/dist/streaming.test.d.ts.map +1 -0
  70. package/dist/streaming.test.js +63 -0
  71. package/dist/streaming.test.js.map +1 -0
  72. package/package.json +28 -7
package/dist/renderer.js CHANGED
@@ -14,7 +14,12 @@
14
14
  * 4. Has Suspense boundary → Cache-Control: no-store (streaming, can't cache)
15
15
  * 5. Has user session → Cache-Control: private, no-store (never CDN-cache)
16
16
  */
17
+ import { serialize } from '@nexus_js/serialize';
18
+ import { NotFoundSignal, RedirectSignal } from './context.js';
19
+ import { devErrorHtmlPage } from './dev-error-html.js';
17
20
  import { loadRouteModule } from './load-module.js';
21
+ import { emitDevRadar } from './devradar.js';
22
+ import { createStreamingResponse, nextStreamBoundaryId } from './streaming.js';
18
23
  // ── Cache TTL Registry — populated by cache() calls during render ─────────────
19
24
  // Each render creates its own context; this uses AsyncLocalStorage in Node.js.
20
25
  // For edge runtimes, we pass the context explicitly.
@@ -92,9 +97,45 @@ const DOCTYPE = '<!DOCTYPE html>';
92
97
  * Renders a matched route to a full HTML response.
93
98
  * Wraps the page with its layout chain and injects island hydration scripts.
94
99
  */
95
- export async function renderRoute(matched, ctx, opts) {
100
+ /**
101
+ * Runs `nxPretext` from every layout (outer → inner) and the page in parallel,
102
+ * then shallow-merges results onto `ctx.pretext` (page wins on key collisions).
103
+ */
104
+ export async function mergeRoutePretext(matched, ctx, opts) {
105
+ const t0 = Date.now();
106
+ const chain = [
107
+ ...matched.layouts.map((l) => ({ filepath: l.filepath, pattern: l.pattern })),
108
+ { filepath: matched.route.filepath, pattern: matched.route.pattern },
109
+ ];
110
+ try {
111
+ const mods = await Promise.all(chain.map((c) => loadRouteModule(c.filepath, {
112
+ dev: opts.dev,
113
+ appRoot: opts.appRoot,
114
+ pattern: c.pattern,
115
+ })));
116
+ const results = await Promise.all(mods.map((mod) => {
117
+ const fn = mod.nxPretext;
118
+ return typeof fn === 'function' ? fn(ctx) : Promise.resolve({});
119
+ }));
120
+ const objects = results.map((r) => r && typeof r === 'object' && !Array.isArray(r) ? r : { value: r });
121
+ return Object.assign({}, ...objects);
122
+ }
123
+ finally {
124
+ emitDevRadar({
125
+ type: 'devtools:pretext',
126
+ payload: {
127
+ pattern: matched.route.pattern,
128
+ durationMs: Date.now() - t0,
129
+ parallelCount: chain.length,
130
+ },
131
+ });
132
+ }
133
+ }
134
+ /**
135
+ * Runs layouts + page render after `ctx.pretext` is set (used by buffered and streaming SSR).
136
+ */
137
+ export async function runLayoutsAndPage(matched, ctx, opts) {
96
138
  let pageHtml = '';
97
- // Execute layouts from outermost to innermost
98
139
  const layoutSlots = [];
99
140
  for (const layout of matched.layouts) {
100
141
  try {
@@ -109,10 +150,11 @@ export async function renderRoute(matched, ctx, opts) {
109
150
  }
110
151
  }
111
152
  catch (err) {
153
+ if (err instanceof RedirectSignal || err instanceof NotFoundSignal)
154
+ throw err;
112
155
  console.error(`[Nexus] Layout render error (${layout.filepath}):`, err);
113
156
  }
114
157
  }
115
- // Render the page itself
116
158
  try {
117
159
  const pageMod = await loadRouteModule(matched.route.filepath, {
118
160
  dev: opts.dev,
@@ -125,7 +167,129 @@ export async function renderRoute(matched, ctx, opts) {
125
167
  }
126
168
  }
127
169
  catch (err) {
170
+ if (err instanceof RedirectSignal || err instanceof NotFoundSignal)
171
+ throw err;
128
172
  console.error(`[Nexus] Page render error (${matched.route.filepath}):`, err);
173
+ return {
174
+ ok: false,
175
+ result: {
176
+ html: errorPage(err, opts.dev),
177
+ headers: {
178
+ 'content-type': 'text/html; charset=utf-8',
179
+ 'cache-control': 'no-store',
180
+ },
181
+ status: 500,
182
+ cacheTtl: 0,
183
+ islandCount: 0,
184
+ },
185
+ };
186
+ }
187
+ let content = pageHtml;
188
+ for (const slot of layoutSlots.reverse()) {
189
+ content = slot.replace('<!--nexus:slot-->', content);
190
+ }
191
+ const islandCount = (content.match(/<nexus-island/g) ?? []).length;
192
+ return { ok: true, content, islandCount };
193
+ }
194
+ /**
195
+ * Progressive SSR: flush the HTML shell (head + skeleton) before `nxPretext` finishes,
196
+ * then stream the real layout/page fragment and update `#__NEXUS_PRETEXT__`.
197
+ *
198
+ * Requires fragment layouts: the composed route must not emit a root `&lt;html&gt;` document.
199
+ */
200
+ export function renderRouteStreaming(matched, ctx, opts) {
201
+ markStreamingResponse();
202
+ const boundaryId = nextStreamBoundaryId();
203
+ const emptyPretext = serialize({});
204
+ return createStreamingResponse(async (ctrl) => {
205
+ const shellInner = `<style id="nx-stream-skel">` +
206
+ `.nx-pretext-skeleton{min-height:32vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.75rem;color:#64748b;font-family:system-ui,sans-serif}` +
207
+ `.nx-pretext-skeleton::before{content:"";width:2.5rem;height:2.5rem;border:3px solid #e2e8f0;border-top-color:#6366f1;border-radius:50%;animation:nx-sk-rot .7s linear infinite}` +
208
+ `@keyframes nx-sk-rot{to{transform:rotate(360deg)}}` +
209
+ `</style>` +
210
+ `<div id="nx-hole-${boundaryId}" class="nx-stream-root" role="status" aria-live="polite" aria-busy="true">` +
211
+ `<div class="nx-pretext-skeleton"><span>Loading…</span></div></div>`;
212
+ let shellHtml = wrapWithDocument(shellInner, opts, [], 0, emptyPretext);
213
+ if (!/^<!DOCTYPE/i.test(shellHtml.trimStart())) {
214
+ shellHtml = DOCTYPE + '\n' + shellHtml;
215
+ }
216
+ ctrl.writeShell(shellHtml);
217
+ ctrl.defer({
218
+ id: boundaryId,
219
+ promise: (async () => {
220
+ try {
221
+ ctx.pretext = await mergeRoutePretext(matched, ctx, opts);
222
+ }
223
+ catch (err) {
224
+ if (err instanceof RedirectSignal) {
225
+ return `<script>location.replace(${JSON.stringify(err.location)})</script>`;
226
+ }
227
+ if (err instanceof NotFoundSignal)
228
+ throw err;
229
+ console.error('[Nexus] Pretext error:', err);
230
+ return errorPage(err, opts.dev);
231
+ }
232
+ resetTtlContext();
233
+ const body = await runLayoutsAndPage(matched, ctx, opts);
234
+ if (!body.ok) {
235
+ resetTtlContext();
236
+ return body.result.html;
237
+ }
238
+ const { content, islandCount } = body;
239
+ if (isFullHtmlDocument(content)) {
240
+ if (opts.dev) {
241
+ console.warn('[Nexus] streamingPretext: route output includes a full <html> document. Use fragment layouts or disable server.streamingPretext.');
242
+ }
243
+ resetTtlContext();
244
+ return (`<div data-nx-stream-warning style="padding:1rem;color:#b45309;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;font-family:system-ui">` +
245
+ 'Streaming Pretext requires fragment layouts (no root &lt;html&gt; in route output). Disable <code>server.streamingPretext</code> or change the layout.' +
246
+ '</div>');
247
+ }
248
+ const cacheControl = computeCacheControl(ctx);
249
+ const bridgeLogs = [];
250
+ if (opts.dev) {
251
+ bridgeLogs.push({
252
+ type: 'render',
253
+ path: new URL(ctx.request.url).pathname,
254
+ duration: 0,
255
+ cacheStrategy: cacheControl.strategy,
256
+ cacheHit: cacheControl.strategy === 'swr' || cacheControl.strategy === 'static-immutable',
257
+ });
258
+ if (islandCount > 0) {
259
+ bridgeLogs.push({ type: 'island-count', islandCount });
260
+ }
261
+ }
262
+ const pretextWire = ctx.pretext !== undefined ? serialize(ctx.pretext) : serialize({});
263
+ resetTtlContext();
264
+ const devBridgeScript = opts.dev && bridgeLogs.length > 0
265
+ ? `<script>window.__NEXUS_SERVER_LOGS__=${JSON.stringify(bridgeLogs)};window.__NEXUS_BUILD_INFO__=${JSON.stringify({
266
+ totalJs: 8_400 + islandCount * 1_200,
267
+ reactEquivalent: 148_000,
268
+ islandCount,
269
+ })};</script>`
270
+ : undefined;
271
+ const payload = devBridgeScript
272
+ ? { html: content, pretextWire, devBridgeScript }
273
+ : { html: content, pretextWire };
274
+ return payload;
275
+ })(),
276
+ });
277
+ }, {
278
+ headers: {
279
+ 'x-nexus-cache-strategy': 'streaming-no-store',
280
+ 'x-nexus-island-count': '0',
281
+ ...(opts.dev ? { 'x-nexus-ttl': String(0) } : {}),
282
+ },
283
+ });
284
+ }
285
+ export async function renderRoute(matched, ctx, opts) {
286
+ try {
287
+ ctx.pretext = await mergeRoutePretext(matched, ctx, opts);
288
+ }
289
+ catch (err) {
290
+ if (err instanceof RedirectSignal || err instanceof NotFoundSignal)
291
+ throw err;
292
+ console.error('[Nexus] Pretext error:', err);
129
293
  return {
130
294
  html: errorPage(err, opts.dev),
131
295
  headers: {
@@ -137,13 +301,11 @@ export async function renderRoute(matched, ctx, opts) {
137
301
  islandCount: 0,
138
302
  };
139
303
  }
140
- // Compose layouts (outermost wraps innermost wraps page)
141
- let content = pageHtml;
142
- for (const slot of layoutSlots.reverse()) {
143
- content = slot.replace('<!--nexus:slot-->', content);
304
+ const body = await runLayoutsAndPage(matched, ctx, opts);
305
+ if (!body.ok) {
306
+ return body.result;
144
307
  }
145
- // Count island markers in the rendered content (for logging + bridge)
146
- const islandCount = (content.match(/<nexus-island/g) ?? []).length;
308
+ const { content, islandCount } = body;
147
309
  // Compute smart cache headers BEFORE resetting the context
148
310
  const cacheControl = computeCacheControl(ctx);
149
311
  const ttl = cacheControl.ttl;
@@ -163,9 +325,13 @@ export async function renderRoute(matched, ctx, opts) {
163
325
  bridgeLogs.push({ type: 'island-count', islandCount });
164
326
  }
165
327
  }
166
- const fullHtml = wrapWithDocument(content, opts, bridgeLogs, islandCount);
328
+ const pretextWire = ctx.pretext !== undefined ? serialize(ctx.pretext) : null;
329
+ let fullHtml = wrapWithDocument(content, opts, bridgeLogs, islandCount, pretextWire);
330
+ if (!/^<!DOCTYPE/i.test(fullHtml.trimStart())) {
331
+ fullHtml = DOCTYPE + '\n' + fullHtml;
332
+ }
167
333
  return {
168
- html: DOCTYPE + fullHtml,
334
+ html: fullHtml,
169
335
  headers: {
170
336
  'content-type': 'text/html; charset=utf-8',
171
337
  'cache-control': cacheControl.header,
@@ -178,37 +344,77 @@ export async function renderRoute(matched, ctx, opts) {
178
344
  islandCount,
179
345
  };
180
346
  }
181
- const DEV_WS_PORT = 7822;
182
- function wrapWithDocument(content, opts, bridgeLogs = [], islandCount = 0) {
347
+ /**
348
+ * When the layout already emits a full `<html>...</html>` document (typical `.nx` root layout),
349
+ * inject Nexus runtime (styles, importmap, HMR, island loader) into that document's `<head>`.
350
+ * Nesting `<html>` inside the shell's `<body>` produces invalid markup and blank pages in browsers.
351
+ */
352
+ function injectBeforeClosingHead(html, injection) {
353
+ const closeIdx = html.search(/<\/head\s*>/i);
354
+ if (closeIdx !== -1) {
355
+ return html.slice(0, closeIdx) + '\n' + injection + '\n' + html.slice(closeIdx);
356
+ }
357
+ const m = html.match(/<head[^>]*>/i);
358
+ if (m?.index !== undefined) {
359
+ const insertAt = m.index + m[0].length;
360
+ return html.slice(0, insertAt) + '\n' + injection + '\n' + html.slice(insertAt);
361
+ }
362
+ return injection + '\n' + html;
363
+ }
364
+ /** Strip leading doctype so we can detect `<html` after optional `<!DOCTYPE html>`. */
365
+ function stripLeadingDoctype(html) {
366
+ return html.replace(/^\s*<!DOCTYPE[^>]*>/i, '').trimStart();
367
+ }
368
+ /** Avoid `</script>` breaking out of inline JSON when embedding serialized pretext. */
369
+ function escapeJsonForScriptPayload(json) {
370
+ return json.replace(/</g, '\\u003c');
371
+ }
372
+ function isFullHtmlDocument(content) {
373
+ const t = content.trimStart();
374
+ if (/^<\s*html[\s>]/i.test(t))
375
+ return true;
376
+ if (/^<!DOCTYPE/i.test(t)) {
377
+ return /^<\s*html[\s>]/i.test(stripLeadingDoctype(content));
378
+ }
379
+ return false;
380
+ }
381
+ /** Default + app `imports` for dynamically imported island bundles (bare specifiers). */
382
+ function buildImportMapScript(extra) {
383
+ const base = {
384
+ '@nexus_js/runtime/island': '/_nexus/rt/island.js',
385
+ '@nexus_js/runtime': '/_nexus/rt/index.js',
386
+ '@nexus_js/serialize': '/_nexus/rt/serialize.js',
387
+ };
388
+ const imports = extra && typeof extra === 'object' ? { ...base, ...extra } : base;
389
+ const json = JSON.stringify({ imports }, null, 2);
390
+ return `<script type="importmap">\n${json}\n</script>`;
391
+ }
392
+ function wrapWithDocument(content, opts, bridgeLogs = [], islandCount = 0, pretextWire = null) {
393
+ const pretextScript = pretextWire !== null
394
+ ? `<script type="application/json" id="__NEXUS_PRETEXT__">${escapeJsonForScriptPayload(pretextWire)}</script>`
395
+ : '';
183
396
  const styleLinks = opts.assets.styles
184
397
  .map((href) => `<link rel="stylesheet" href="${href}">`)
185
398
  .join('\n ');
186
399
  const runtimeScript = opts.assets.runtime
187
400
  ? `<script type="module" src="${opts.assets.runtime}"></script>`
188
401
  : '';
189
- // Import map resolves @nexus_js/* bare specifiers inside dynamically-imported island bundles.
190
- // Must appear before any <script type="module"> that uses these specifiers.
191
- const importMap = `<script type="importmap">
192
- {
193
- "imports": {
194
- "@nexus_js/runtime/island": "/_nexus/rt/island.js",
195
- "@nexus_js/runtime": "/_nexus/rt/index.js",
196
- "@nexus_js/serialize": "/_nexus/rt/serialize.js"
197
- }
402
+ /** Default host box for custom element avoids full-width flex rows that steal hits on tiny/empty islands. */
403
+ const nexusIslandHostCSS = `<style id="nexus-island-host">
404
+ nexus-island {
405
+ display: inline-block;
406
+ vertical-align: top;
407
+ width: auto;
408
+ max-width: 100%;
409
+ box-sizing: border-box;
198
410
  }
199
- </script>`;
200
- // HMR WebSocket reconnector (dev only)
201
- const hmrScript = opts.dev ? `<script>
202
- (function(){
203
- const ws = new WebSocket('ws://localhost:${DEV_WS_PORT}');
204
- ws.onmessage = (e) => {
205
- const { type } = JSON.parse(e.data);
206
- if (type === 'reload') location.reload();
207
- if (type === 'hmr') window.__NEXUS_DEV__?.logHmr();
208
- };
209
- ws.onerror = () => {};
210
- })();
211
- </script>` : '';
411
+ </style>`;
412
+ // Import map bare specifiers in island bundles (see `browser.importMap` in nexus.config.ts).
413
+ const importMap = buildImportMapScript(opts.browserImportMap ?? null);
414
+ // Dev: SSE to /_nexus/dev/hot — server pushes `reload` after file watcher runs server.reload().
415
+ const hmrScript = opts.dev
416
+ ? `<script>(function(){if(typeof EventSource==='undefined')return;new EventSource('/_nexus/dev/hot').addEventListener('reload',function(){location.reload()})})();</script>`
417
+ : '';
212
418
  // Server→browser log bridge (dev only)
213
419
  const bridgeScript = opts.dev ? `<script>
214
420
  window.__NEXUS_DEV__ = true;
@@ -219,15 +425,24 @@ window.__NEXUS_BUILD_INFO__ = {
219
425
  islandCount: ${islandCount}
220
426
  };
221
427
  </script>${nexusClientDevScript}` : '';
222
- return `<html lang="en">
223
- <head>
224
- <meta charset="UTF-8">
225
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
428
+ const headInjection = `
429
+ ${pretextScript}
430
+ ${nexusIslandHostCSS}
226
431
  ${styleLinks}
227
432
  ${importMap}
228
433
  ${hmrScript}
229
434
  ${bridgeScript}
230
435
  ${runtimeScript}
436
+ `;
437
+ if (isFullHtmlDocument(content)) {
438
+ const doc = /^<!DOCTYPE/i.test(content.trimStart()) ? stripLeadingDoctype(content) : content;
439
+ return injectBeforeClosingHead(doc, headInjection);
440
+ }
441
+ return `<html lang="en">
442
+ <head>
443
+ <meta charset="UTF-8">
444
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
445
+ ${headInjection}
231
446
  </head>
232
447
  <body>
233
448
  ${content}
@@ -375,12 +590,10 @@ export function wrapIsland(html, opts) {
375
590
  >${html}</nexus-island>`;
376
591
  }
377
592
  function errorPage(err, dev) {
378
- const message = err instanceof Error ? err.message : String(err);
379
- const stack = dev && err instanceof Error ? err.stack ?? '' : '';
380
- return `${DOCTYPE}<html><body style="font-family:monospace;padding:2rem;background:#0a0a0f;color:#ff6b6b">
381
- <h1 style="color:#ff3e00">Nexus — Server Error</h1>
382
- <pre>${message}</pre>
383
- ${dev ? `<pre style="color:#6b6b80;font-size:0.8rem">${stack}</pre>` : ''}
384
- </body></html>`;
593
+ return devErrorHtmlPage({
594
+ context: dev ? 'SSR / route error' : 'Error',
595
+ err,
596
+ dev,
597
+ });
385
598
  }
386
599
  //# sourceMappingURL=renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AA6CnD,iFAAiF;AACjF,+EAA+E;AAC/E,qDAAqD;AAErD,MAAM,gBAAgB,GAAgE;IACpF,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;IACjB,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB;IAChC,gBAAgB,CAAC,UAAU,GAAG,IAAI,CAAC;AACrC,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,qBAAqB;IACnC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC;AACpC,CAAC;AAED,SAAS,eAAe;IACtB,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC;IAC3B,gBAAgB,CAAC,UAAU,GAAG,KAAK,CAAC;IACpC,gBAAgB,CAAC,SAAS,GAAG,KAAK,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAiB;IAKnD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC;IAEzD,yCAAyC;IACzC,IAAI,UAAU,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7E,OAAO;YACL,MAAM,EAAE,mBAAmB;YAC3B,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE,oBAAoB;SAC/B,CAAC;IACJ,CAAC;IAED,oDAAoD;IACpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,GAAG,EAAE,CAAC;YACN,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,QAAQ,CAAC,EAAE,CAAC;QACvD,OAAO;YACL,MAAM,EAAE,qCAAqC;YAC7C,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;IACJ,CAAC;IAED,wDAAwD;IACxD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,wBAAwB;IAEjE,OAAO;QACL,MAAM,EAAE,oBAAoB,MAAM,4BAA4B,GAAG,EAAE;QACnE,GAAG,EAAE,MAAM;QACX,QAAQ,EAAE,KAAK;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,GAAG,iBAAiB,CAAC;AAElC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAqB,EACrB,GAAiB,EACjB,IAAmB;IAEnB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAElB,8CAA8C;IAC9C,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE;gBACjD,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC,CAAC;YACH,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACrC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,gCAAgC,MAAM,CAAC,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC5D,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO;SAC/B,CAAC,CAAC;QACH,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzC,QAAQ,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,GAAG,CAAC,CAAC;QAC7E,OAAO;YACL,IAAI,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;YAC9B,OAAO,EAAE;gBACP,cAAc,EAAE,0BAA0B;gBAC1C,eAAe,EAAE,UAAU;aAC5B;YACD,MAAM,EAAE,GAAG;YACX,QAAQ,EAAE,CAAC;YACX,WAAW,EAAE,CAAC;SACf,CAAC;IACJ,CAAC;IAED,yDAAyD;IACzD,IAAI,OAAO,GAAG,QAAQ,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QACzC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,sEAAsE;IACtE,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAEnE,2DAA2D;IAC3D,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC;IAC7B,eAAe,EAAE,CAAC;IAElB,uDAAuD;IACvD,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,oEAAoE;QACxF,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ;YACvC,QAAQ;YACR,aAAa,EAAE,YAAY,CAAC,QAAQ;YACpC,QAAQ,EAAE,YAAY,CAAC,QAAQ,KAAK,KAAK,IAAI,YAAY,CAAC,QAAQ,KAAK,kBAAkB;SAC1F,CAAC,CAAC;QACH,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAE1E,OAAO;QACL,IAAI,EAAE,OAAO,GAAG,QAAQ;QACxB,OAAO,EAAE;YACP,cAAc,EAAE,0BAA0B;YAC1C,eAAe,EAAE,YAAY,CAAC,MAAM;YACpC,wBAAwB,EAAE,YAAY,CAAC,QAAQ;YAC/C,sBAAsB,EAAE,MAAM,CAAC,WAAW,CAAC;YAC3C,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpD;QACD,MAAM,EAAE,GAAG;QACX,QAAQ,EAAE,GAAG;QACb,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB,SAAS,gBAAgB,CACvB,OAAe,EACf,IAAmB,EACnB,aAAgC,EAAE,EAClC,WAAW,GAAG,CAAC;IAEf,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;SAClC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gCAAgC,IAAI,IAAI,CAAC;SACvD,IAAI,CAAC,QAAQ,CAAC,CAAC;IAElB,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;QACvC,CAAC,CAAC,8BAA8B,IAAI,CAAC,MAAM,CAAC,OAAO,aAAa;QAChE,CAAC,CAAC,EAAE,CAAC;IAEP,gGAAgG;IAChG,4EAA4E;IAC5E,MAAM,SAAS,GAAG;;;;;;;;UAQV,CAAC;IAET,uCAAuC;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;;6CAEc,WAAW;;;;;;;;UAQ9C,CAAC,CAAC,CAAC,EAAE,CAAC;IAEd,uCAAuC;IACvC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;;iCAED,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;;aAE9C,KAAK,GAAG,WAAW,GAAG,KAAK;;iBAEvB,WAAW;;WAEjB,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAErC,OAAO;;;;MAIH,UAAU;MACV,SAAS;MACT,SAAS;MACT,YAAY;MACZ,aAAa;;;MAGb,OAAO;;QAEL,CAAC;AACT,CAAC;AAED;;;;GAIG;AACH,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAmHnB,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAA8B;IACjE,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,IAAY,EACZ,IAMC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9F,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,sBAAsB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAElF,OAAO;yBACgB,IAAI,CAAC,EAAE;4BACJ,IAAI,CAAC,aAAa;2BACnB,IAAI,CAAC,QAAQ,IAAI,SAAS,GAAG,SAAS;KAC5D,IAAI,iBAAiB,CAAC;AAC3B,CAAC;AAED,SAAS,SAAS,CAAC,GAAY,EAAE,GAAY;IAC3C,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,GAAG,IAAI,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,OAAO,GAAG,OAAO;;WAER,OAAO;MACZ,GAAG,CAAC,CAAC,CAAC,+CAA+C,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE;iBAC5D,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Shield-lite runtime allowlist — refreshed after server action preload.
3
+ */
4
+ export declare function setShieldLite(enabled: boolean): void;
5
+ export declare function refreshShieldAllowlist(root: string, dev: boolean): void;
6
+ export declare function isActionBlockedByShield(actionName: string): boolean;
7
+ //# sourceMappingURL=shield-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shield-runtime.d.ts","sourceRoot":"","sources":["../src/shield-runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEpD;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAgBvE;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAGnE"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Shield-lite runtime allowlist — refreshed after server action preload.
3
+ */
4
+ import { loadShieldManifestFromRoot } from '@nexus_js/security';
5
+ import { getRegisteredActionNames } from './actions.js';
6
+ let shieldLiteEnabled = false;
7
+ let actionAllow = null;
8
+ export function setShieldLite(enabled) {
9
+ shieldLiteEnabled = enabled;
10
+ }
11
+ export function refreshShieldAllowlist(root, dev) {
12
+ if (!shieldLiteEnabled) {
13
+ actionAllow = null;
14
+ return;
15
+ }
16
+ const reg = getRegisteredActionNames();
17
+ if (dev) {
18
+ actionAllow = reg.size > 0 ? new Set(reg) : null;
19
+ return;
20
+ }
21
+ const file = loadShieldManifestFromRoot(root);
22
+ if (file && file.actions.length > 0) {
23
+ actionAllow = new Set(file.actions);
24
+ }
25
+ else {
26
+ actionAllow = reg.size > 0 ? new Set(reg) : null;
27
+ }
28
+ }
29
+ export function isActionBlockedByShield(actionName) {
30
+ if (!shieldLiteEnabled || !actionAllow || actionAllow.size === 0)
31
+ return false;
32
+ return !actionAllow.has(actionName);
33
+ }
34
+ //# sourceMappingURL=shield-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shield-runtime.js","sourceRoot":"","sources":["../src/shield-runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAC9B,IAAI,WAAW,GAAuB,IAAI,CAAC;AAE3C,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,iBAAiB,GAAG,OAAO,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,GAAY;IAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,WAAW,GAAG,IAAI,CAAC;QACnB,OAAO;IACT,CAAC;IACD,MAAM,GAAG,GAAG,wBAAwB,EAAE,CAAC;IACvC,IAAI,GAAG,EAAE,CAAC;QACR,WAAW,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjD,OAAO;IACT,CAAC;IACD,MAAM,IAAI,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,UAAkB;IACxD,IAAI,CAAC,iBAAiB,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/E,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC"}
@@ -38,10 +38,19 @@
38
38
  * Final chunk (closes stream):
39
39
  * <script>__nx_stream_complete()</script>
40
40
  */
41
+ /**
42
+ * Resolved deferred chunk: plain HTML, or body + optional Pretext wire + dev bridge script.
43
+ * Pretext wire must be the same string produced by `serialize(ctx.pretext)` for `#__NEXUS_PRETEXT__`.
44
+ */
45
+ export type StreamingPromiseValue = string | {
46
+ html: string;
47
+ pretextWire?: string;
48
+ devBridgeScript?: string;
49
+ };
41
50
  export interface StreamingBoundary {
42
51
  id: string;
43
- /** The promise that will resolve to HTML */
44
- promise: Promise<string>;
52
+ /** The promise that will resolve to HTML (or a structured payload for Pretext streaming). */
53
+ promise: Promise<StreamingPromiseValue>;
45
54
  /** Fallback HTML shown while loading */
46
55
  fallback?: string;
47
56
  /** Error boundary HTML (overrides error.nx at component level) */
@@ -94,5 +103,7 @@ export declare function createSuspenseBoundary<T>(promise: Promise<T>, opts: {
94
103
  * Pipes a streaming response to a Node.js `ServerResponse`.
95
104
  * Used by the Node.js server adapter.
96
105
  */
97
- export declare function pipeToNodeResponse(webResponse: Response, nodeRes: import('node:http').ServerResponse): Promise<void>;
106
+ export declare function pipeToNodeResponse(webResponse: Response, nodeRes: import('node:http').ServerResponse, mergeHeaders?: (h: Record<string, string>) => Record<string, string | string[] | number>): Promise<void>;
107
+ /** Stable hole id for streaming Pretext (shell + one deferred body chunk). */
108
+ export declare function nextStreamBoundaryId(): string;
98
109
  //# sourceMappingURL=streaming.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAIH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,0CAA0C;IAC1C,KAAK,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,+BAA+B;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AA0BD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC1D,IAAI,GAAE;IACJ,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;CAC/B,GACL,QAAQ,CAqEV;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,IAAI,EAAE;IACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC;CACrD,GACA;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,iBAAiB,CAAA;CAAE,CAoBlE;AAID;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,QAAQ,EACrB,OAAO,EAAE,OAAO,WAAW,EAAE,cAAc,GAC1C,OAAO,CAAC,IAAI,CAAC,CAmBf"}
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN;IACE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEN,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,6FAA6F;IAC7F,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxC,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,0CAA0C;IAC1C,KAAK,EAAE,CAAC,QAAQ,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,+BAA+B;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AA0BD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAC1D,IAAI,GAAE;IACJ,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;CAC/B,GACL,QAAQ,CAqEV;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,IAAI,EAAE;IACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC;CACrD,GACA;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,iBAAiB,CAAA;CAAE,CAoBlE;AAID;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,QAAQ,EACrB,OAAO,EAAE,OAAO,WAAW,EAAE,cAAc,EAC3C,YAAY,CAAC,EAAE,CACb,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACtB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAuBf;AAkDD,8EAA8E;AAC9E,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C"}
package/dist/streaming.js CHANGED
@@ -98,8 +98,8 @@ export function createStreamingResponse(renderFn, opts = {}) {
98
98
  // Resolve all pending boundaries in parallel
99
99
  const tasks = pending.map(async (boundary) => {
100
100
  try {
101
- const html = await boundary.promise;
102
- write(buildFillChunk(boundary.id, html));
101
+ const resolved = await boundary.promise;
102
+ write(buildFillChunk(boundary.id, resolved));
103
103
  }
104
104
  catch (err) {
105
105
  const errorHtml = boundary.errorFallback ??
@@ -164,9 +164,13 @@ export function createSuspenseBoundary(promise, opts) {
164
164
  * Pipes a streaming response to a Node.js `ServerResponse`.
165
165
  * Used by the Node.js server adapter.
166
166
  */
167
- export async function pipeToNodeResponse(webResponse, nodeRes) {
168
- nodeRes.statusCode = webResponse.status;
169
- webResponse.headers.forEach((value, key) => nodeRes.setHeader(key, value));
167
+ export async function pipeToNodeResponse(webResponse, nodeRes, mergeHeaders) {
168
+ const headers = {};
169
+ webResponse.headers.forEach((value, key) => {
170
+ headers[key] = value;
171
+ });
172
+ const merged = mergeHeaders ? mergeHeaders(headers) : headers;
173
+ nodeRes.writeHead(webResponse.status, merged);
170
174
  if (!webResponse.body) {
171
175
  nodeRes.end();
172
176
  return;
@@ -187,13 +191,22 @@ export async function pipeToNodeResponse(webResponse, nodeRes) {
187
191
  // ─────────────────────────────────────────────────────────────────────────────
188
192
  // Helpers
189
193
  // ─────────────────────────────────────────────────────────────────────────────
190
- function buildFillChunk(id, html) {
191
- return (`<template id="nx-fill-${id}">${html}</template>` +
192
- `<script>__nx_fill("${id}")</script>`);
194
+ function buildFillChunk(id, resolved) {
195
+ const html = typeof resolved === 'string' ? resolved : resolved.html;
196
+ const pretextWire = typeof resolved === 'object' && resolved !== null ? resolved.pretextWire : undefined;
197
+ const devBridge = typeof resolved === 'object' && resolved !== null ? resolved.devBridgeScript : undefined;
198
+ const pretextScript = pretextWire !== undefined
199
+ ? `<script>(function(){var el=document.getElementById('__NEXUS_PRETEXT__');if(el)el.textContent=${JSON.stringify(pretextWire)};})();</script>`
200
+ : '';
201
+ const bridge = devBridge ?? '';
202
+ return (pretextScript +
203
+ bridge +
204
+ `<template id="nx-fill-${id}">${html}</template>` +
205
+ `<script>__nx_fill("${id}");document.dispatchEvent(new Event("nexus:stream-chunk"));</script>`);
193
206
  }
194
207
  function buildErrorChunk(id, html) {
195
208
  return (`<template id="nx-fill-${id}">${html}</template>` +
196
- `<script>__nx_fill("${id}")</script>`);
209
+ `<script>__nx_fill("${id}");document.dispatchEvent(new Event("nexus:stream-chunk"));</script>`);
197
210
  }
198
211
  function buildFatalErrorChunk(err) {
199
212
  const msg = err instanceof Error ? err.message : String(err);
@@ -210,6 +223,10 @@ function generateBoundaryId() {
210
223
  _counter = (_counter + 1) % 0xffff;
211
224
  return (_counter + Date.now()).toString(16).slice(-6);
212
225
  }
226
+ /** Stable hole id for streaming Pretext (shell + one deferred body chunk). */
227
+ export function nextStreamBoundaryId() {
228
+ return generateBoundaryId();
229
+ }
213
230
  function htmlEscape(s) {
214
231
  return s.replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
215
232
  }
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=streaming.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.test.d.ts","sourceRoot":"","sources":["../src/streaming.test.ts"],"names":[],"mappings":""}