veryfront 0.1.1135 → 0.1.1142
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/esm/deno.js +1 -1
- package/esm/src/html/hydration-script-builder/hydration-data-generator.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/hydration-data-generator.js +3 -0
- package/esm/src/html/hydration-script-builder/templates/renderer.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/templates/renderer.js +24 -0
- package/esm/src/html/hydration-script-builder/templates/router.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/templates/router.js +24 -0
- package/esm/src/html/hydration-script-builder/types.d.ts +2 -0
- package/esm/src/html/hydration-script-builder/types.d.ts.map +1 -1
- package/esm/src/html/schemas/html.schema.d.ts +4 -0
- package/esm/src/html/schemas/html.schema.d.ts.map +1 -1
- package/esm/src/html/schemas/html.schema.js +2 -0
- package/esm/src/react/runtime/core.d.ts +27 -2
- package/esm/src/react/runtime/core.d.ts.map +1 -1
- package/esm/src/react/runtime/core.js +11 -4
- package/esm/src/rendering/app-reserved.d.ts +10 -1
- package/esm/src/rendering/app-reserved.d.ts.map +1 -1
- package/esm/src/rendering/app-reserved.js +13 -3
- package/esm/src/rendering/layouts/layout-applicator.d.ts +3 -0
- package/esm/src/rendering/layouts/layout-applicator.d.ts.map +1 -1
- package/esm/src/rendering/layouts/layout-applicator.js +3 -0
- package/esm/src/rendering/orchestrator/html.d.ts +15 -0
- package/esm/src/rendering/orchestrator/html.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/html.js +66 -1
- package/esm/src/rendering/orchestrator/layout.d.ts +1 -1
- package/esm/src/rendering/orchestrator/layout.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/layout.js +2 -1
- package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/pipeline.js +17 -1
- package/esm/src/rendering/orchestrator/ssr-orchestrator.d.ts +9 -0
- package/esm/src/rendering/orchestrator/ssr-orchestrator.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/ssr-orchestrator.js +96 -8
- package/esm/src/rendering/orchestrator/ssr.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/ssr.js +1 -0
- package/esm/src/rendering/orchestrator/types.d.ts +4 -0
- package/esm/src/rendering/orchestrator/types.d.ts.map +1 -1
- package/esm/src/rendering/renderer.d.ts.map +1 -1
- package/esm/src/rendering/renderer.js +1 -0
- package/esm/src/rendering/rsc/client-module-strategy.d.ts +6 -0
- package/esm/src/rendering/rsc/client-module-strategy.d.ts.map +1 -1
- package/esm/src/server/services/rendering/ssr.service.d.ts +1 -1
- package/esm/src/server/services/rendering/ssr.service.d.ts.map +1 -1
- package/esm/src/server/services/rendering/ssr.service.js +13 -0
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.d.ts.map +1 -1
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +1 -1
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +5 -5
|
@@ -423,7 +423,7 @@ export class RenderPipeline {
|
|
|
423
423
|
const headings = pageBundle.headings || [];
|
|
424
424
|
await layoutPreloadPromise;
|
|
425
425
|
const layoutApplyStart = performance.now();
|
|
426
|
-
const wrappedElement = await profilePhase("render.apply_layouts", () => withSpan("render.apply_layouts", () => this.config.layoutOrchestrator.applyLayoutsAndWrappers(pageElement, pageInfo, layoutResult.layoutBundle, layoutResult.nestedLayouts, layoutDataMap, options?.url, resolvedParams, mergedFrontmatter, headings, options?.projectSlug, clientPageIsland), {
|
|
426
|
+
const wrappedElement = await profilePhase("render.apply_layouts", () => withSpan("render.apply_layouts", () => this.config.layoutOrchestrator.applyLayoutsAndWrappers(pageElement, pageInfo, layoutResult.layoutBundle, layoutResult.nestedLayouts, layoutDataMap, options?.url, resolvedParams, mergedFrontmatter, headings, options?.projectSlug, clientPageIsland, dataFetchingProps), {
|
|
427
427
|
"render.slug": slug,
|
|
428
428
|
"render.layout_count": layoutResult.nestedLayouts.length,
|
|
429
429
|
}));
|
|
@@ -440,6 +440,7 @@ export class RenderPipeline {
|
|
|
440
440
|
collectedMetadata: pageBundleResult.collectedMetadata,
|
|
441
441
|
slug,
|
|
442
442
|
cssImports: collectedCSSImports,
|
|
443
|
+
options: renderOptions,
|
|
443
444
|
}, renderOptions), SSR_RENDER_TIMEOUT_MS, `SSR rendering for ${slug}`), { "render.slug": slug, "render.delivery": mergedOptions?.delivery || "full" }));
|
|
444
445
|
timing.ssr = Math.round(performance.now() - ssrStart);
|
|
445
446
|
if (collectedCSSImports.length > 0) {
|
|
@@ -534,6 +535,19 @@ export class RenderPipeline {
|
|
|
534
535
|
const appPath = pageIslandPlan
|
|
535
536
|
? undefined
|
|
536
537
|
: await profilePhase("page_data.resolve_app_path", () => this.resolveAppPath());
|
|
538
|
+
const errorPath = await profilePhase("page_data.resolve_error_path", async () => {
|
|
539
|
+
const resolved = await this.config.ssrOrchestrator.resolveErrorComponentPath({
|
|
540
|
+
pageInfo,
|
|
541
|
+
pageBundle: {},
|
|
542
|
+
layoutBundle: layoutResult.layoutBundle,
|
|
543
|
+
nestedLayouts: layoutResult.nestedLayouts,
|
|
544
|
+
collectedMetadata: {},
|
|
545
|
+
slug,
|
|
546
|
+
cssImports: [],
|
|
547
|
+
options,
|
|
548
|
+
});
|
|
549
|
+
return resolved ? extractRelativePathShared(resolved, this.config.projectDir) : undefined;
|
|
550
|
+
});
|
|
537
551
|
const { css, cssAction, cssError } = await profilePhase("page_data.resolve_css", () => this.resolvePageDataCss(slug, options, projectUpdatedAt, dataResolution));
|
|
538
552
|
resolvePageDataLog.debug("Resolved page data", {
|
|
539
553
|
slug,
|
|
@@ -541,6 +555,7 @@ export class RenderPipeline {
|
|
|
541
555
|
pageType,
|
|
542
556
|
layoutCount: layouts.length,
|
|
543
557
|
appPath,
|
|
558
|
+
errorPath,
|
|
544
559
|
isolatedClientPage: pageIslandPlan ? true : undefined,
|
|
545
560
|
requiresFullDocumentNavigation: pageIslandPlan?.serverLayouts.length ? true : undefined,
|
|
546
561
|
headingsCount: headings.length,
|
|
@@ -560,6 +575,7 @@ export class RenderPipeline {
|
|
|
560
575
|
layoutProps,
|
|
561
576
|
buildVersion: createBuildVersion(projectUpdatedAt),
|
|
562
577
|
appPath,
|
|
578
|
+
errorPath,
|
|
563
579
|
isolatedClientPage: pageIslandPlan ? true : undefined,
|
|
564
580
|
requiresFullDocumentNavigation: pageIslandPlan?.serverLayouts.length ? true : undefined,
|
|
565
581
|
releaseId: options?.releaseId,
|
|
@@ -2,6 +2,7 @@ import type * as React from "react";
|
|
|
2
2
|
import type { ElementValidator } from "../element-validator/index.js";
|
|
3
3
|
import type { SSRRenderer } from "../ssr-renderer.js";
|
|
4
4
|
import type { HTMLGenerationContext, HTMLGenerator } from "./html.js";
|
|
5
|
+
import type { LayoutOrchestrator } from "./layout.js";
|
|
5
6
|
import type { RenderOptions } from "./types.js";
|
|
6
7
|
export interface SSROrchestratorConfig {
|
|
7
8
|
mode: "development" | "production";
|
|
@@ -9,6 +10,7 @@ export interface SSROrchestratorConfig {
|
|
|
9
10
|
elementValidator: ElementValidator;
|
|
10
11
|
ssrRenderer: SSRRenderer;
|
|
11
12
|
htmlGenerator: HTMLGenerator;
|
|
13
|
+
layoutOrchestrator?: Pick<LayoutOrchestrator, "applyLayoutsAndWrappers">;
|
|
12
14
|
}
|
|
13
15
|
export interface SSRRenderingResult {
|
|
14
16
|
fullHtml: string;
|
|
@@ -35,7 +37,14 @@ export interface SSRIsolationOptions {
|
|
|
35
37
|
export declare class SSROrchestrator {
|
|
36
38
|
private config;
|
|
37
39
|
constructor(config: SSROrchestratorConfig);
|
|
40
|
+
resolveErrorComponentPath(generationContext: Omit<HTMLGenerationContext, "html" | "ssrHash">): Promise<string | null>;
|
|
38
41
|
performSSRRendering(pageElement: React.ReactElement, generationContext: Omit<HTMLGenerationContext, "html" | "ssrHash">, options?: RenderOptions, isolationOptions?: SSRIsolationOptions): Promise<SSRRenderingResult>;
|
|
42
|
+
/**
|
|
43
|
+
* Render the segment's app-router error.tsx as the page body for a caught SSR
|
|
44
|
+
* render throw. Returns the rendered result + the boundary's source path (for
|
|
45
|
+
* the client hydration bundle), or null when the segment has no error.tsx.
|
|
46
|
+
*/
|
|
47
|
+
private renderErrorBoundaryFallback;
|
|
39
48
|
/**
|
|
40
49
|
* Perform SSR rendering in an isolated per-project Worker.
|
|
41
50
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-orchestrator.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/ssr-orchestrator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ssr-orchestrator.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/ssr-orchestrator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA8BhD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,kBAAkB,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,yBAAyB,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACvC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB;AAUD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAwB;gBAE1B,MAAM,EAAE,qBAAqB;IAInC,yBAAyB,CAC7B,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC,GACjE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAOnB,mBAAmB,CACvB,WAAW,EAAE,KAAK,CAAC,YAAY,EAC/B,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC,EAClE,OAAO,CAAC,EAAE,aAAa,EACvB,gBAAgB,CAAC,EAAE,mBAAmB,GACrC,OAAO,CAAC,kBAAkB,CAAC;IA4I9B;;;;OAIG;YACW,2BAA2B;IAqDzC;;;;;;OAMG;YACW,kBAAkB;IAmFhC,OAAO,CAAC,YAAY;CAerB"}
|
|
@@ -8,7 +8,26 @@ import { runWithHeadCollector } from "../../react/head-collector.js";
|
|
|
8
8
|
import { getWorkerPool, isSSRIsolationEnabled } from "../../security/sandbox/worker-pool.js";
|
|
9
9
|
import { requireActiveSourceIntegrationPolicy } from "../../integrations/source-policy-context.js";
|
|
10
10
|
import { endRenderSession, hasRenderSession, } from "../../transforms/mdx/esm-module-loader/module-fetcher/index.js";
|
|
11
|
+
import { isDataControlResult } from "../../data/helpers.js";
|
|
11
12
|
const logger = rendererLogger.component("ssr-orchestrator");
|
|
13
|
+
/** True when the thrown value is (or wraps) a notFound()/redirect() control result. */
|
|
14
|
+
function isThrownControlResult(error) {
|
|
15
|
+
const seen = new Set();
|
|
16
|
+
const stack = [error];
|
|
17
|
+
while (stack.length > 0) {
|
|
18
|
+
const current = stack.pop();
|
|
19
|
+
if (!current || typeof current !== "object" || seen.has(current))
|
|
20
|
+
continue;
|
|
21
|
+
if (isDataControlResult(current))
|
|
22
|
+
return true;
|
|
23
|
+
seen.add(current);
|
|
24
|
+
stack.push(current.cause);
|
|
25
|
+
const aggregated = current.errors;
|
|
26
|
+
if (Array.isArray(aggregated))
|
|
27
|
+
stack.push(...aggregated);
|
|
28
|
+
}
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
12
31
|
function getElementTypeName(el) {
|
|
13
32
|
if (!el?.type)
|
|
14
33
|
return "unknown";
|
|
@@ -22,11 +41,18 @@ export class SSROrchestrator {
|
|
|
22
41
|
constructor(config) {
|
|
23
42
|
this.config = config;
|
|
24
43
|
}
|
|
44
|
+
async resolveErrorComponentPath(generationContext) {
|
|
45
|
+
const resolved = await this.config.htmlGenerator.resolveErrorComponentPath({ ...generationContext, html: "", ssrHash: "" });
|
|
46
|
+
return resolved?.path ?? null;
|
|
47
|
+
}
|
|
25
48
|
async performSSRRendering(pageElement, generationContext, options, isolationOptions) {
|
|
26
49
|
// Isolated SSR path: render in per-project Worker
|
|
27
50
|
if (isSSRIsolationEnabled() &&
|
|
28
51
|
isolationOptions?.pageModulePath &&
|
|
29
52
|
isolationOptions?.projectDir) {
|
|
53
|
+
// NOTE: the app-router error.tsx catch below is scoped to the main-process
|
|
54
|
+
// render path. Under SSR isolation (per-project Worker) a page throw is not
|
|
55
|
+
// yet routed to error.tsx — a follow-up, isolation being off by default.
|
|
30
56
|
return this.performIsolatedSSR(generationContext, options, isolationOptions);
|
|
31
57
|
}
|
|
32
58
|
// Default path: render in main process
|
|
@@ -40,14 +66,36 @@ export class SSROrchestrator {
|
|
|
40
66
|
});
|
|
41
67
|
const wantsStream = options?.delivery === "stream";
|
|
42
68
|
// Use AsyncLocalStorage-based head collection for multi-tenant safety
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
69
|
+
let renderResult;
|
|
70
|
+
let collectedHead;
|
|
71
|
+
let errorBoundaryPath;
|
|
72
|
+
try {
|
|
73
|
+
const rendered = await runWithHeadCollector(() => withSpan(SpanNames.SSR_ORCHESTRATOR_RENDER, () => this.config.ssrRenderer.renderToHTML(validatedElement, {
|
|
74
|
+
mode: this.config.mode,
|
|
75
|
+
wantsStream,
|
|
76
|
+
debugMode: this.config.debugMode,
|
|
77
|
+
}), {
|
|
78
|
+
"ssr.wants_stream": wantsStream,
|
|
79
|
+
"ssr.mode": this.config.mode,
|
|
80
|
+
}));
|
|
81
|
+
renderResult = rendered.result;
|
|
82
|
+
collectedHead = rendered.head;
|
|
83
|
+
}
|
|
84
|
+
catch (renderError) {
|
|
85
|
+
// A thrown notFound()/redirect() control result is NOT a render error —
|
|
86
|
+
// let it propagate to the SSR error handler (→ 404 / redirect).
|
|
87
|
+
if (isThrownControlResult(renderError))
|
|
88
|
+
throw renderError;
|
|
89
|
+
// The page threw during SSR (React error boundaries don't catch SSR render
|
|
90
|
+
// throws). Render the segment's app-router error.tsx instead, if present;
|
|
91
|
+
// otherwise re-throw for the normal 500 / dev-overlay path.
|
|
92
|
+
const fallback = await this.renderErrorBoundaryFallback(generationContext, renderError);
|
|
93
|
+
if (!fallback)
|
|
94
|
+
throw renderError;
|
|
95
|
+
renderResult = fallback.result;
|
|
96
|
+
collectedHead = fallback.head;
|
|
97
|
+
errorBoundaryPath = fallback.errorPath;
|
|
98
|
+
}
|
|
51
99
|
const { html, stream } = renderResult;
|
|
52
100
|
if (options?.renderSessionId && hasRenderSession(options.renderSessionId)) {
|
|
53
101
|
endRenderSession(options.renderSessionId);
|
|
@@ -59,6 +107,8 @@ export class SSROrchestrator {
|
|
|
59
107
|
...generationContext.options?.props,
|
|
60
108
|
...options?.props,
|
|
61
109
|
},
|
|
110
|
+
// Present only on the error path: the client bundle wraps this boundary.
|
|
111
|
+
...(errorBoundaryPath ? { errorPath: errorBoundaryPath } : {}),
|
|
62
112
|
};
|
|
63
113
|
if (stream && wantsStream) {
|
|
64
114
|
const ssrHash = html ? await computeHash(html) : `stream-${Date.now()}`;
|
|
@@ -84,12 +134,50 @@ export class SSROrchestrator {
|
|
|
84
134
|
options: mergedOptions,
|
|
85
135
|
collectedHead,
|
|
86
136
|
}), { "ssr.hash": ssrHash });
|
|
137
|
+
if (errorBoundaryPath) {
|
|
138
|
+
// The page threw and its app-router error.tsx rendered as the response
|
|
139
|
+
// body. Signal a 500 and bypass caching (an errored page must not cache)
|
|
140
|
+
// by throwing the already-built document; the SSR error handler returns it.
|
|
141
|
+
const signal = new Error("app-router-error-boundary-rendered");
|
|
142
|
+
signal.errorBoundaryHtml = fullHtml;
|
|
143
|
+
signal.errorBoundarySsrHash = ssrHash;
|
|
144
|
+
throw signal;
|
|
145
|
+
}
|
|
87
146
|
return {
|
|
88
147
|
fullHtml,
|
|
89
148
|
finalStream: wantsStream ? this.createStream(fullHtml) : null,
|
|
90
149
|
ssrHash,
|
|
91
150
|
};
|
|
92
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Render the segment's app-router error.tsx as the page body for a caught SSR
|
|
154
|
+
* render throw. Returns the rendered result + the boundary's source path (for
|
|
155
|
+
* the client hydration bundle), or null when the segment has no error.tsx.
|
|
156
|
+
*/
|
|
157
|
+
async renderErrorBoundaryFallback(generationContext, renderError) {
|
|
158
|
+
const err = renderError instanceof Error ? renderError : new Error(String(renderError));
|
|
159
|
+
const errorInfo = await this.config.htmlGenerator.resolveErrorComponent({ ...generationContext, html: "", ssrHash: "" }, err);
|
|
160
|
+
if (!errorInfo)
|
|
161
|
+
return null;
|
|
162
|
+
const renderOptions = generationContext.options;
|
|
163
|
+
const mergedFrontmatter = {
|
|
164
|
+
...generationContext.pageInfo?.entity?.frontmatter,
|
|
165
|
+
...generationContext.pageBundle?.frontmatter,
|
|
166
|
+
};
|
|
167
|
+
const fallbackElement = this.config.layoutOrchestrator
|
|
168
|
+
? await this.config.layoutOrchestrator.applyLayoutsAndWrappers(errorInfo.element, generationContext.pageInfo, generationContext.layoutBundle, generationContext.nestedLayouts, undefined, renderOptions?.url, renderOptions?.params, mergedFrontmatter, generationContext.pageBundle?.headings, renderOptions?.projectSlug, renderOptions?.clientPageIsland, renderOptions?.props)
|
|
169
|
+
: errorInfo.element;
|
|
170
|
+
const rendered = await runWithHeadCollector(() => this.config.ssrRenderer.renderToHTML(fallbackElement, {
|
|
171
|
+
mode: this.config.mode,
|
|
172
|
+
wantsStream: false,
|
|
173
|
+
debugMode: this.config.debugMode,
|
|
174
|
+
}));
|
|
175
|
+
logger.debug("Rendered app-router error.tsx for a page throw", {
|
|
176
|
+
errorPath: errorInfo.path,
|
|
177
|
+
error: err.message,
|
|
178
|
+
});
|
|
179
|
+
return { result: rendered.result, head: rendered.head, errorPath: errorInfo.path };
|
|
180
|
+
}
|
|
93
181
|
/**
|
|
94
182
|
* Perform SSR rendering in an isolated per-project Worker.
|
|
95
183
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/ssr.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGjG,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjG,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,OAAO,CAAC,CAAiB;IACjC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,IAAI,CAA+B;IAC3C,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,cAAc,CAAkB;gBAE5B,OAAO,EAAE,eAAe;IAiBpC,yDAAyD;IACzD,OAAO,CAAC,cAAc;IAYtB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC3B,OAAO,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"ssr.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/ssr.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGjG,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjG,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,OAAO,CAAC,CAAiB;IACjC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,IAAI,CAA+B;IAC3C,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,cAAc,CAAkB;gBAE5B,OAAO,EAAE,eAAe;IAiBpC,yDAAyD;IACzD,OAAO,CAAC,cAAc;IAYtB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC3B,OAAO,CAAC,iBAAiB;IA6DzB,OAAO,CAAC,kBAAkB;IAS1B,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAWxE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAWjF,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAS/B,aAAa,IAAI,IAAI;IAKrB,sBAAsB;IAIhB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3C,UAAU,CACR,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,sBAAsB,EAAE,SAAS,CAAC;IAIpD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGzB;AAED,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -118,6 +118,7 @@ export class VeryfrontRenderer {
|
|
|
118
118
|
elementValidator: this.services.elementValidator,
|
|
119
119
|
ssrRenderer: this.services.ssrRenderer,
|
|
120
120
|
htmlGenerator: this.htmlGenerator,
|
|
121
|
+
layoutOrchestrator: this.layoutOrchestrator,
|
|
121
122
|
});
|
|
122
123
|
this.renderPipeline = new RenderPipeline({
|
|
123
124
|
pageResolver: this.services.pageResolver,
|
|
@@ -29,6 +29,8 @@ export interface RenderOptions {
|
|
|
29
29
|
params?: Record<string, string | string[]>;
|
|
30
30
|
props?: Record<string, unknown>;
|
|
31
31
|
delivery?: "string" | "stream";
|
|
32
|
+
/** Set on the SSR error path: absolute path to the app-router error.tsx to hydrate. */
|
|
33
|
+
errorPath?: string;
|
|
32
34
|
request?: Request;
|
|
33
35
|
/** Internal signal for the render owner's total deadline. */
|
|
34
36
|
abortSignal?: AbortSignal;
|
|
@@ -94,6 +96,8 @@ export interface PageDataResponse {
|
|
|
94
96
|
layoutProps: Record<string, Record<string, unknown>>;
|
|
95
97
|
buildVersion: BuildVersion;
|
|
96
98
|
appPath?: string;
|
|
99
|
+
/** Project-relative path to the app-router error.tsx that wraps the page (client boundary). */
|
|
100
|
+
errorPath?: string;
|
|
97
101
|
/** Page and client layout modules render inside a server-owned layout island. */
|
|
98
102
|
isolatedClientPage?: boolean;
|
|
99
103
|
/** Server-owned layout markup requires a document navigation for this target. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/orchestrator/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../src/src/rendering/renderer.ts"],"names":[],"mappings":"AA8CA,OAAO,EACL,mBAAmB,EACnB,+BAA+B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,aAAa,EACnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAKL,KAAK,qBAAqB,EAC3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,iCAAiC,CAAC;AAgBzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA4CxD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,oBAAoB;IACpB,KAAK,CAAC,EAAE,wBAAwB,CAAC;CAClC;AA4FD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,oBAAoB,CAAgC;IAC5D,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,qBAAqB,CAA8B;IAE3D;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,yBAAyB,CAAoC;gBAEzD,OAAO,GAAE,eAAoB;IAInC,UAAU,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBhE,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;YA8D9E,2BAA2B;IAWzC,OAAO,CAAC,uBAAuB;IAiB/B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,+BAA+B;IAoCvC,OAAO,CAAC,+BAA+B;IASvC,OAAO,CAAC,oCAAoC;IAa5C,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,4BAA4B;IAgBpC,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,+BAA+B;YAyCzB,0BAA0B;YAuD1B,YAAY;YA4DZ,qBAAqB;IAgGnC,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,EAClB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,gBAAgB,CAAC;IA4B5B,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAU5C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;YAUtD,4BAA4B;IA4BpC,UAAU,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5D,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B,OAAO,CAAC,wBAAwB;
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../src/src/rendering/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,12 @@ export interface ClientRuntimeHydrationData {
|
|
|
16
16
|
params?: Record<string, string | string[]>;
|
|
17
17
|
/** Page frontmatter — exposed reactively via `usePageContext()`. */
|
|
18
18
|
frontmatter?: Record<string, unknown>;
|
|
19
|
+
/**
|
|
20
|
+
* Props returned by the page's `getServerData` — exposed reactively via
|
|
21
|
+
* `usePageContext().data` so a hydrated client tree under an App/RSC page
|
|
22
|
+
* reseeds with the same server data the server render used.
|
|
23
|
+
*/
|
|
24
|
+
props?: Record<string, unknown>;
|
|
19
25
|
}
|
|
20
26
|
export interface ClientModuleUrlOptions {
|
|
21
27
|
strategy: ClientModuleStrategy;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-module-strategy.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/rsc/client-module-strategy.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,YAAY,CAAC;AAEvD,MAAM,WAAW,2BAA2B;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;CACxC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC3C,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"client-module-strategy.d.ts","sourceRoot":"","sources":["../../../../src/src/rendering/rsc/client-module-strategy.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,YAAY,CAAC;AAEvD,MAAM,WAAW,2BAA2B;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;CACxC;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC3C,oEAAoE;IACpE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,2BAA2B,GACnC,oBAAoB,CAUtB;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,GAAE,QAAmB,GACvB,0BAA0B,GAAG,IAAI,CASnC;AAED,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,0BAA0B,GAAG,IAAI,GAC/C,oBAAoB,CAMtB;AAED,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAI/E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAK7E;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,GAAG,IAAI,CAOnF;AAED,wBAAgB,iCAAiC,CAC/C,GAAG,GAAE,QAAmB,EACxB,OAAO,GAAE,MAA8B,GACtC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAS3C;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,GAAG,GAAE,QAAmB,GAAG,MAAM,GAAG,IAAI,CAGzF"}
|
|
@@ -25,7 +25,7 @@ export interface SSRRenderResult {
|
|
|
25
25
|
etag?: string;
|
|
26
26
|
cacheStrategy: "no-cache" | "short";
|
|
27
27
|
error?: Error;
|
|
28
|
-
errorType?: "not-found" | "undeployed" | "redirect" | "server-error" | "runtime";
|
|
28
|
+
errorType?: "not-found" | "undeployed" | "redirect" | "server-error" | "runtime" | "app-router-error-boundary";
|
|
29
29
|
showDevOverlay?: boolean;
|
|
30
30
|
redirectLocation?: string;
|
|
31
31
|
slug: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr.service.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/services/rendering/ssr.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,kCAAkC,CAAC;AAsB1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAItE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC5D;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB,IAAI,YAAY,CAAC;IACpC,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACrF,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;CAC3D;AAUD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,UAAU,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"ssr.service.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/services/rendering/ssr.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAEL,KAAK,eAAe,EAErB,MAAM,kCAAkC,CAAC;AAsB1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAItE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC5D;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,mBAAmB,IAAI,YAAY,CAAC;IACpC,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACrF,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;CAC3D;AAUD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,UAAU,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EACN,WAAW,GACX,YAAY,GACZ,UAAU,GACV,cAAc,GACd,SAAS,GACT,2BAA2B,CAAC;IAChC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAqBD,qBAAa,UAAW,YAAW,cAAc;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAA0B;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAExC,OAAO,CAAC,EAAE;QACpB,SAAS,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QACpC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;KACrC;IAKD,mBAAmB,IAAI,YAAY;IAW7B,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAI1D,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IA+G1F,OAAO,CAAC,iBAAiB;IAuIzB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe;CAS1D"}
|
|
@@ -131,6 +131,19 @@ export class SSRService {
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
handleRenderError(error, ctx, slug, request, nonce) {
|
|
134
|
+
// The page threw and its app-router error.tsx already rendered a full,
|
|
135
|
+
// hydrating document (the boundary UI). Serve it as a 500 without caching.
|
|
136
|
+
const errorBoundaryHtml = error?.errorBoundaryHtml;
|
|
137
|
+
if (typeof errorBoundaryHtml === "string") {
|
|
138
|
+
return {
|
|
139
|
+
status: HTTP_INTERNAL_SERVER_ERROR,
|
|
140
|
+
html: errorBoundaryHtml,
|
|
141
|
+
isStreaming: false,
|
|
142
|
+
cacheStrategy: "no-cache",
|
|
143
|
+
errorType: "app-router-error-boundary",
|
|
144
|
+
slug,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
134
147
|
const errorObj = error instanceof Error ? error : new Error(String(error));
|
|
135
148
|
// Dev-only overlay (full stack, absolute paths, line numbers) must never
|
|
136
149
|
// be exposed outside a local project — including remote preview, which is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsc-bundles.generated.d.ts","sourceRoot":"","sources":["../../../../../../src/src/server/services/rsc/endpoints/rsc-bundles.generated.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"rsc-bundles.generated.d.ts","sourceRoot":"","sources":["../../../../../../src/src/server/services/rsc/endpoints/rsc-bundles.generated.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,kBAAkB,EAAE,MAC8+/B,CAAC;AAEhhgC,eAAO,MAAM,iBAAiB,EAAE,MAC+nqB,CAAC"}
|