@bleedingdev/modern-js-runtime 3.9.0-ultramodern.2 → 3.9.0-ultramodern.20
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/dist/cjs/cli/code.js +3 -1
- package/dist/cjs/cli/ssr/index.js +2 -74
- package/dist/cjs/cli/ssr/loadable-bundler-plugin.js +2 -0
- package/dist/cjs/cli/template.server.js +1 -2
- package/dist/cjs/core/browser/hydrate.js +9 -10
- package/dist/cjs/core/browser/index.js +4 -5
- package/dist/cjs/core/context/index.js +12 -45
- package/dist/cjs/core/context/public.js +4 -7
- package/dist/cjs/core/context/runtime.js +10 -4
- package/dist/cjs/core/index.js +3 -3
- package/dist/cjs/core/plugin/index.js +2 -2
- package/dist/cjs/core/react/index.js +3 -3
- package/dist/cjs/core/react/wrapper.js +23 -67
- package/dist/cjs/core/server/helmet.js +5 -4
- package/dist/cjs/core/server/requestHandler.js +6 -7
- package/dist/cjs/core/server/requestResponse.js +4 -4
- package/dist/cjs/core/server/routerCleanup.js +2 -2
- package/dist/cjs/core/server/shared.js +171 -4
- package/dist/cjs/core/server/stream/afterTemplate.js +21 -16
- package/dist/cjs/core/server/stream/beforeTemplate.js +37 -28
- package/dist/cjs/core/server/stream/beforeTemplate.worker.js +30 -23
- package/dist/cjs/core/server/stream/createReadableStream.js +222 -125
- package/dist/cjs/core/server/stream/createReadableStream.worker.js +171 -90
- package/dist/cjs/core/server/stream/deferredScript.js +3 -3
- package/dist/cjs/core/server/stream/shared.js +6 -2
- package/dist/cjs/core/server/string/index.js +104 -66
- package/dist/cjs/core/server/string/loadable.js +38 -23
- package/dist/cjs/core/server/string/ssrData.js +5 -12
- package/dist/cjs/core/server/utils.js +1 -2
- package/dist/cjs/exports/head.js +7 -14
- package/dist/cjs/internal.js +2 -2
- package/dist/cjs/router/cli/code/nestedRoutes.js +1 -2
- package/dist/cjs/router/cli/code/templates.js +1 -1
- package/dist/cjs/router/cli/code/utils.js +2 -2
- package/dist/cjs/router/runtime/DeferredDataScripts.node.js +10 -9
- package/dist/cjs/router/runtime/PrefetchLink.js +69 -125
- package/dist/cjs/router/runtime/hooks.js +13 -2
- package/dist/cjs/router/runtime/internal.js +7 -45
- package/dist/cjs/router/runtime/plugin.js +19 -34
- package/dist/cjs/router/runtime/plugin.node.js +9 -37
- package/dist/cjs/router/runtime/redirect.js +1 -1
- package/dist/esm/cli/code.mjs +3 -1
- package/dist/esm/cli/ssr/index.mjs +3 -72
- package/dist/esm/cli/ssr/loadable-bundler-plugin.mjs +2 -0
- package/dist/esm/cli/template.server.mjs +1 -2
- package/dist/esm/core/browser/hydrate.mjs +10 -11
- package/dist/esm/core/browser/index.mjs +1 -2
- package/dist/esm/core/context/index.mjs +2 -5
- package/dist/esm/core/context/public.mjs +1 -5
- package/dist/esm/core/context/runtime.mjs +6 -3
- package/dist/esm/core/index.mjs +1 -1
- package/dist/esm/core/plugin/index.mjs +1 -1
- package/dist/esm/core/react/index.mjs +1 -1
- package/dist/esm/core/react/wrapper.mjs +20 -67
- package/dist/esm/core/server/helmet.mjs +5 -4
- package/dist/esm/core/server/requestHandler.mjs +1 -2
- package/dist/esm/core/server/requestResponse.mjs +3 -3
- package/dist/esm/core/server/routerCleanup.mjs +1 -1
- package/dist/esm/core/server/shared.mjs +153 -1
- package/dist/esm/core/server/stream/afterTemplate.mjs +23 -18
- package/dist/esm/core/server/stream/beforeTemplate.mjs +40 -31
- package/dist/esm/core/server/stream/beforeTemplate.worker.mjs +33 -26
- package/dist/esm/core/server/stream/createReadableStream.mjs +220 -123
- package/dist/esm/core/server/stream/createReadableStream.worker.mjs +161 -90
- package/dist/esm/core/server/stream/deferredScript.mjs +3 -3
- package/dist/esm/core/server/stream/shared.mjs +4 -3
- package/dist/esm/core/server/string/index.mjs +106 -68
- package/dist/esm/core/server/string/loadable.mjs +38 -23
- package/dist/esm/core/server/string/ssrData.mjs +5 -12
- package/dist/esm/core/server/utils.mjs +1 -2
- package/dist/esm/exports/head.mjs +7 -14
- package/dist/esm/internal.mjs +1 -1
- package/dist/esm/router/cli/code/nestedRoutes.mjs +1 -2
- package/dist/esm/router/cli/code/templates.mjs +1 -1
- package/dist/esm/router/cli/code/utils.mjs +2 -2
- package/dist/esm/router/runtime/DeferredDataScripts.node.mjs +10 -9
- package/dist/esm/router/runtime/PrefetchLink.mjs +68 -124
- package/dist/esm/router/runtime/hooks.mjs +9 -1
- package/dist/esm/router/runtime/internal.mjs +2 -33
- package/dist/esm/router/runtime/plugin.mjs +10 -25
- package/dist/esm/router/runtime/plugin.node.mjs +3 -31
- package/dist/esm/router/runtime/redirect.mjs +1 -1
- package/dist/esm-node/cli/code.mjs +3 -1
- package/dist/esm-node/cli/ssr/index.mjs +3 -72
- package/dist/esm-node/cli/ssr/loadable-bundler-plugin.mjs +2 -0
- package/dist/esm-node/cli/template.server.mjs +1 -2
- package/dist/esm-node/core/browser/hydrate.mjs +10 -11
- package/dist/esm-node/core/browser/index.mjs +1 -2
- package/dist/esm-node/core/context/index.mjs +2 -5
- package/dist/esm-node/core/context/public.mjs +1 -5
- package/dist/esm-node/core/context/runtime.mjs +6 -3
- package/dist/esm-node/core/index.mjs +1 -1
- package/dist/esm-node/core/plugin/index.mjs +1 -1
- package/dist/esm-node/core/react/index.mjs +1 -1
- package/dist/esm-node/core/react/wrapper.mjs +20 -67
- package/dist/esm-node/core/server/helmet.mjs +5 -4
- package/dist/esm-node/core/server/requestHandler.mjs +1 -2
- package/dist/esm-node/core/server/requestResponse.mjs +3 -3
- package/dist/esm-node/core/server/routerCleanup.mjs +1 -1
- package/dist/esm-node/core/server/shared.mjs +153 -1
- package/dist/esm-node/core/server/stream/afterTemplate.mjs +23 -18
- package/dist/esm-node/core/server/stream/beforeTemplate.mjs +40 -31
- package/dist/esm-node/core/server/stream/beforeTemplate.worker.mjs +33 -26
- package/dist/esm-node/core/server/stream/createReadableStream.mjs +220 -123
- package/dist/esm-node/core/server/stream/createReadableStream.worker.mjs +161 -90
- package/dist/esm-node/core/server/stream/deferredScript.mjs +3 -3
- package/dist/esm-node/core/server/stream/shared.mjs +4 -3
- package/dist/esm-node/core/server/string/index.mjs +106 -68
- package/dist/esm-node/core/server/string/loadable.mjs +38 -23
- package/dist/esm-node/core/server/string/ssrData.mjs +5 -12
- package/dist/esm-node/core/server/utils.mjs +1 -2
- package/dist/esm-node/exports/head.mjs +7 -14
- package/dist/esm-node/internal.mjs +1 -1
- package/dist/esm-node/router/cli/code/nestedRoutes.mjs +1 -2
- package/dist/esm-node/router/cli/code/templates.mjs +1 -1
- package/dist/esm-node/router/cli/code/utils.mjs +2 -2
- package/dist/esm-node/router/runtime/DeferredDataScripts.node.mjs +10 -9
- package/dist/esm-node/router/runtime/PrefetchLink.mjs +68 -124
- package/dist/esm-node/router/runtime/hooks.mjs +9 -1
- package/dist/esm-node/router/runtime/internal.mjs +2 -33
- package/dist/esm-node/router/runtime/plugin.mjs +10 -25
- package/dist/esm-node/router/runtime/plugin.node.mjs +3 -31
- package/dist/esm-node/router/runtime/redirect.mjs +1 -1
- package/dist/types/cli/ssr/index.d.ts +0 -3
- package/dist/types/core/context/index.d.ts +4 -6
- package/dist/types/core/context/public.d.ts +1 -23
- package/dist/types/core/context/runtime.d.ts +26 -2
- package/dist/types/core/index.d.ts +1 -1
- package/dist/types/core/react/wrapper.d.ts +7 -1
- package/dist/types/core/server/helmet.d.ts +4 -5
- package/dist/types/core/server/requestHandler.d.ts +3 -3
- package/dist/types/core/server/requestResponse.d.ts +1 -1
- package/dist/types/core/server/routerCleanup.d.ts +1 -1
- package/dist/types/core/server/shared.d.ts +24 -1
- package/dist/types/core/server/stream/afterTemplate.d.ts +2 -1
- package/dist/types/core/server/stream/beforeTemplate.d.ts +4 -1
- package/dist/types/core/server/stream/beforeTemplate.worker.d.ts +4 -1
- package/dist/types/core/server/stream/shared.d.ts +16 -2
- package/dist/types/core/server/string/loadable.d.ts +6 -3
- package/dist/types/core/server/string/ssrData.d.ts +2 -1
- package/dist/types/core/server/string/types.d.ts +1 -5
- package/dist/types/core/server/tracer.d.ts +1 -1
- package/dist/types/core/server/utils.d.ts +1 -1
- package/dist/types/core/types.d.ts +1 -2
- package/dist/types/exports/head.d.ts +2 -2
- package/dist/types/internal.d.ts +1 -1
- package/dist/types/router/runtime/PrefetchLink.d.ts +27 -2
- package/dist/types/router/runtime/hooks.d.ts +19 -2
- package/dist/types/router/runtime/internal.d.ts +4 -21
- package/dist/types/router/runtime/types.d.ts +2 -43
- package/package.json +18 -46
- package/rslib.config.mts +3 -0
- package/rstest.config.mts +28 -2
- package/dist/cjs/boundary-debugger/index.js +0 -317
- package/dist/cjs/core/context/extensions.js +0 -74
- package/dist/cjs/core/context/helmetContext.js +0 -54
- package/dist/cjs/core/server/federatedCss.js +0 -58
- package/dist/cjs/core/server/scriptOrder.js +0 -140
- package/dist/cjs/module-federation/consume-surface.js +0 -199
- package/dist/cjs/module-federation/distributed-ssr.js +0 -135
- package/dist/cjs/module-federation/index.js +0 -316
- package/dist/cjs/module-federation/last-known-good.js +0 -157
- package/dist/cjs/module-federation/manifest-recovery-runtime-plugin.js +0 -129
- package/dist/cjs/module-federation/surface-resolution-types.js +0 -61
- package/dist/cjs/router/runtime/lifecycle.js +0 -167
- package/dist/cjs/router/runtime/provider.js +0 -153
- package/dist/cjs/rsc/server.worker.js +0 -62
- package/dist/esm/boundary-debugger/index.mjs +0 -277
- package/dist/esm/core/context/extensions.mjs +0 -33
- package/dist/esm/core/context/helmetContext.mjs +0 -13
- package/dist/esm/core/server/federatedCss.mjs +0 -20
- package/dist/esm/core/server/scriptOrder.mjs +0 -90
- package/dist/esm/module-federation/consume-surface.mjs +0 -158
- package/dist/esm/module-federation/distributed-ssr.mjs +0 -82
- package/dist/esm/module-federation/index.mjs +0 -115
- package/dist/esm/module-federation/last-known-good.mjs +0 -113
- package/dist/esm/module-federation/manifest-recovery-runtime-plugin.mjs +0 -89
- package/dist/esm/module-federation/surface-resolution-types.mjs +0 -8
- package/dist/esm/router/runtime/lifecycle.mjs +0 -105
- package/dist/esm/router/runtime/provider.mjs +0 -100
- package/dist/esm/rsc/server.worker.mjs +0 -1
- package/dist/esm-node/boundary-debugger/index.mjs +0 -278
- package/dist/esm-node/core/context/extensions.mjs +0 -34
- package/dist/esm-node/core/context/helmetContext.mjs +0 -14
- package/dist/esm-node/core/server/federatedCss.mjs +0 -21
- package/dist/esm-node/core/server/scriptOrder.mjs +0 -91
- package/dist/esm-node/module-federation/consume-surface.mjs +0 -159
- package/dist/esm-node/module-federation/distributed-ssr.mjs +0 -83
- package/dist/esm-node/module-federation/index.mjs +0 -116
- package/dist/esm-node/module-federation/last-known-good.mjs +0 -114
- package/dist/esm-node/module-federation/manifest-recovery-runtime-plugin.mjs +0 -90
- package/dist/esm-node/module-federation/surface-resolution-types.mjs +0 -9
- package/dist/esm-node/router/runtime/lifecycle.mjs +0 -106
- package/dist/esm-node/router/runtime/provider.mjs +0 -101
- package/dist/esm-node/rsc/server.worker.mjs +0 -2
- package/dist/types/boundary-debugger/index.d.ts +0 -28
- package/dist/types/core/context/extensions.d.ts +0 -35
- package/dist/types/core/context/helmetContext.d.ts +0 -10
- package/dist/types/core/server/federatedCss.d.ts +0 -5
- package/dist/types/core/server/scriptOrder.d.ts +0 -25
- package/dist/types/module-federation/consume-surface.d.ts +0 -104
- package/dist/types/module-federation/distributed-ssr.d.ts +0 -61
- package/dist/types/module-federation/index.d.ts +0 -71
- package/dist/types/module-federation/last-known-good.d.ts +0 -52
- package/dist/types/module-federation/manifest-recovery-runtime-plugin.d.ts +0 -25
- package/dist/types/module-federation/surface-resolution-types.d.ts +0 -23
- package/dist/types/router/runtime/lifecycle.d.ts +0 -27
- package/dist/types/router/runtime/provider.d.ts +0 -78
- package/dist/types/rsc/server.worker.d.ts +0 -1
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.n = (module)=>{
|
|
5
|
+
var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
|
|
6
|
+
__webpack_require__.d(getter, {
|
|
7
|
+
a: getter
|
|
8
|
+
});
|
|
9
|
+
return getter;
|
|
10
|
+
};
|
|
11
|
+
})();
|
|
3
12
|
(()=>{
|
|
4
13
|
__webpack_require__.d = (exports1, getters, values)=>{
|
|
5
14
|
var define = (defs, kind)=>{
|
|
@@ -31,123 +40,195 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
31
40
|
createReadableStreamFromElement: ()=>createReadableStreamFromElement
|
|
32
41
|
});
|
|
33
42
|
const ssr_namespaceObject = require("@modern-js/render/ssr");
|
|
34
|
-
const
|
|
43
|
+
const context_namespaceObject = require("@modern-js/runtime/context");
|
|
35
44
|
const node_namespaceObject = require("@modern-js/runtime-utils/node");
|
|
45
|
+
const external_react_namespaceObject = require("react");
|
|
46
|
+
var external_react_default = /*#__PURE__*/ __webpack_require__.n(external_react_namespaceObject);
|
|
36
47
|
const external_common_js_namespaceObject = require("../../../common.js");
|
|
37
48
|
const external_constants_js_namespaceObject = require("../../constants.js");
|
|
49
|
+
const index_js_namespaceObject = require("../../context/monitors/index.js");
|
|
50
|
+
const wrapper_js_namespaceObject = require("../../react/wrapper.js");
|
|
38
51
|
const external_helmet_js_namespaceObject = require("../helmet.js");
|
|
52
|
+
const external_shared_js_namespaceObject = require("../shared.js");
|
|
39
53
|
const external_deferredScript_js_namespaceObject = require("./deferredScript.js");
|
|
40
|
-
const
|
|
54
|
+
const external_shared_js_namespaceObject_1 = require("./shared.js");
|
|
41
55
|
const external_template_js_namespaceObject = require("./template.js");
|
|
42
56
|
const createReadableStreamFromElement = async (request, rootElement, options)=>{
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
57
|
+
const { htmlTemplate, runtimeContext, config, ssrConfig, entryName, resource, rscManifest, rscRoot } = options;
|
|
58
|
+
const hooks = (0, context_namespaceObject.getGlobalInternalRuntimeContext)().hooks;
|
|
59
|
+
const isRsc = true === (0, context_namespaceObject.getGlobalEnableRsc)();
|
|
60
|
+
const extenders = hooks.extendStreamSSR.call({
|
|
61
|
+
runtimeContext,
|
|
62
|
+
request,
|
|
63
|
+
resource,
|
|
64
|
+
config,
|
|
65
|
+
platform: 'web',
|
|
66
|
+
mode: 'stream',
|
|
67
|
+
monitors: (0, index_js_namespaceObject.getMonitors)(),
|
|
68
|
+
isRsc,
|
|
69
|
+
terminalMarker: external_common_js_namespaceObject.ESCAPED_SHELL_STREAM_END_MARK
|
|
70
|
+
}) || [];
|
|
71
|
+
const lifecycle = (0, external_shared_js_namespaceObject.createSSRRenderLifecycle)(extenders);
|
|
72
|
+
const reportOnce = (0, external_shared_js_namespaceObject.createSSRStreamErrorReporter)(options.onError);
|
|
73
|
+
const reportError = (error)=>{
|
|
74
|
+
if (!request.signal.aborted && lifecycle.terminal?.status !== 'cancelled') reportOnce(error);
|
|
75
|
+
};
|
|
76
|
+
const forceStream2String = Boolean("u" > typeof process && process.env?.MODERN_JS_STREAM_TO_STRING);
|
|
77
|
+
let pendingSource;
|
|
78
|
+
let bodyOpen = true;
|
|
79
|
+
let bodyPipe;
|
|
80
|
+
const templateOptions = {
|
|
49
81
|
runtimeContext,
|
|
50
82
|
ssrConfig,
|
|
51
83
|
request,
|
|
52
84
|
config,
|
|
53
85
|
entryName,
|
|
54
|
-
|
|
55
|
-
}
|
|
86
|
+
lifecycle
|
|
87
|
+
};
|
|
56
88
|
try {
|
|
89
|
+
request.signal.throwIfAborted();
|
|
90
|
+
for (const extender of extenders)extender.init?.({
|
|
91
|
+
rootElement,
|
|
92
|
+
forceStream2String
|
|
93
|
+
});
|
|
57
94
|
const readableOriginal = await (0, ssr_namespaceObject.renderSSRStream)(rootElement, {
|
|
58
95
|
request,
|
|
96
|
+
signal: request.signal,
|
|
59
97
|
nonce: config.nonce,
|
|
98
|
+
progressiveChunkSize: external_shared_js_namespaceObject_1.SHELL_PROGRESSIVE_CHUNK_SIZE,
|
|
60
99
|
rscManifest,
|
|
61
100
|
rscRoot: rscRoot,
|
|
62
101
|
routes: runtimeContext.routes,
|
|
63
|
-
onError
|
|
64
|
-
|
|
102
|
+
onError: reportError,
|
|
103
|
+
wrapHtmlRoot (root) {
|
|
104
|
+
let element = external_react_default().isValidElement(root) ? root : external_react_default().createElement(external_react_default().Fragment, null, root);
|
|
105
|
+
if (isRsc && false === runtimeContext.isBrowser) element = (0, wrapper_js_namespaceObject.wrapRuntimeComponentResolver)(element, hooks);
|
|
106
|
+
for (const extender of extenders)element = extender.modifyRootElement?.(element) ?? element;
|
|
107
|
+
lifecycle.beforeReact();
|
|
108
|
+
return element;
|
|
65
109
|
}
|
|
66
110
|
});
|
|
111
|
+
pendingSource = readableOriginal;
|
|
67
112
|
options.onShellReady?.();
|
|
68
|
-
readableOriginal.allReady.then(()=>
|
|
69
|
-
|
|
70
|
-
});
|
|
71
|
-
const forceStreamToString = Boolean("u" > typeof process && process.env?.MODERN_JS_STREAM_TO_STRING);
|
|
72
|
-
const { waitForAllReady } = (0, external_shared_js_namespaceObject.resolveStreamingMode)(request, forceStreamToString);
|
|
113
|
+
readableOriginal.allReady.then(()=>options.onAllReady?.()).catch(reportError);
|
|
114
|
+
const { waitForAllReady } = (0, external_shared_js_namespaceObject_1.resolveStreamingMode)(request, forceStream2String);
|
|
73
115
|
if (waitForAllReady) await readableOriginal.allReady;
|
|
74
|
-
|
|
75
|
-
const
|
|
116
|
+
request.signal.throwIfAborted();
|
|
117
|
+
const styledComponentsStyleTags = extenders.map((extender)=>extender.getStyleTags?.() ?? '').join('');
|
|
118
|
+
const { shellBefore, shellAfter } = await (0, external_template_js_namespaceObject.getTemplates)(htmlTemplate, {
|
|
119
|
+
...templateOptions,
|
|
120
|
+
renderLevel: external_constants_js_namespaceObject.RenderLevel.SERVER_RENDER,
|
|
121
|
+
styledComponentsStyleTags
|
|
122
|
+
});
|
|
123
|
+
for (const extender of (0, external_shared_js_namespaceObject.orderSSRStreamTransforms)(extenders))if (void 0 !== extender.processReadableStream) pendingSource = extender.processReadableStream(pendingSource);
|
|
124
|
+
const decoder = new TextDecoder();
|
|
125
|
+
const encoder = new TextEncoder();
|
|
126
|
+
const pendingScripts = [];
|
|
127
|
+
const buffered = [];
|
|
128
|
+
let bufferedLength = 0;
|
|
129
|
+
let markerTail = '';
|
|
130
|
+
let shellChunkStatus = external_shared_js_namespaceObject_1.ShellChunkStatus.START;
|
|
131
|
+
let bodyController;
|
|
132
|
+
const emit = (chunk, controller)=>{
|
|
133
|
+
if (shellChunkStatus === external_shared_js_namespaceObject_1.ShellChunkStatus.FINISH) {
|
|
134
|
+
if (chunk.length > 0) controller.enqueue(encoder.encode(chunk));
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const window = markerTail + chunk;
|
|
138
|
+
const windowIndex = window.indexOf(external_common_js_namespaceObject.ESCAPED_SHELL_STREAM_END_MARK);
|
|
139
|
+
const markerIndex = bufferedLength - markerTail.length + windowIndex;
|
|
140
|
+
buffered.push(chunk);
|
|
141
|
+
bufferedLength += chunk.length;
|
|
142
|
+
if (-1 === windowIndex) {
|
|
143
|
+
markerTail = window.slice(Math.max(0, window.length - external_common_js_namespaceObject.ESCAPED_SHELL_STREAM_END_MARK.length + 1));
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
const shell = buffered.join('');
|
|
147
|
+
const beforeMark = lifecycle.completedBody(shell.slice(0, markerIndex), 'shell');
|
|
148
|
+
const afterMark = shell.slice(markerIndex + external_common_js_namespaceObject.ESCAPED_SHELL_STREAM_END_MARK.length);
|
|
149
|
+
const completedShellBefore = (0, external_helmet_js_namespaceObject.createReplaceHelemt)((0, external_helmet_js_namespaceObject.getHelmetData)(extenders))(shellBefore);
|
|
150
|
+
shellChunkStatus = external_shared_js_namespaceObject_1.ShellChunkStatus.FINISH;
|
|
151
|
+
buffered.length = 0;
|
|
152
|
+
controller.enqueue(encoder.encode(`${completedShellBefore}${beforeMark}${shellAfter}`));
|
|
153
|
+
if (afterMark.length > 0) controller.enqueue(encoder.encode(afterMark));
|
|
154
|
+
for (const script of pendingScripts)controller.enqueue(encoder.encode(script));
|
|
155
|
+
pendingScripts.length = 0;
|
|
156
|
+
};
|
|
157
|
+
const body = new TransformStream({
|
|
76
158
|
start (controller) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
} catch {
|
|
84
|
-
isClosed = true;
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
const closeController = ()=>{
|
|
88
|
-
if (!isClosed) {
|
|
89
|
-
isClosed = true;
|
|
90
|
-
try {
|
|
91
|
-
controller.close();
|
|
92
|
-
} catch {}
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
const flushPendingScripts = ()=>{
|
|
96
|
-
for (const s of pendingScripts)safeEnqueue((0, external_shared_js_namespaceObject.encodeForWebStream)(s));
|
|
97
|
-
pendingScripts.length = 0;
|
|
98
|
-
};
|
|
99
|
-
const enqueueScript = (script)=>{
|
|
100
|
-
if (shellChunkStatus === external_shared_js_namespaceObject.ShellChunkStatus.FINISH) safeEnqueue((0, external_shared_js_namespaceObject.encodeForWebStream)(script));
|
|
101
|
-
else pendingScripts.push(script);
|
|
102
|
-
};
|
|
103
|
-
const storageContext = node_namespaceObject.storage.useContext?.();
|
|
104
|
-
const activeDeferreds = storageContext?.activeDeferreds;
|
|
105
|
-
const entries = activeDeferreds instanceof Map ? Array.from(activeDeferreds.entries()) : [];
|
|
106
|
-
if (entries.length > 0) (0, external_deferredScript_js_namespaceObject.enqueueFromEntries)(entries, config.nonce, enqueueScript);
|
|
107
|
-
async function push() {
|
|
108
|
-
try {
|
|
109
|
-
const { done, value } = await reader.read();
|
|
110
|
-
if (done) return void closeController();
|
|
111
|
-
if (isClosed) return;
|
|
112
|
-
if (shellChunkStatus !== external_shared_js_namespaceObject.ShellChunkStatus.FINISH) {
|
|
113
|
-
chunkVec.push(new TextDecoder().decode(value));
|
|
114
|
-
const concatedChunk = chunkVec.join('');
|
|
115
|
-
const markerIndex = concatedChunk.indexOf(external_common_js_namespaceObject.ESCAPED_SHELL_STREAM_END_MARK);
|
|
116
|
-
if (-1 !== markerIndex) {
|
|
117
|
-
const beforeMark = concatedChunk.slice(0, markerIndex);
|
|
118
|
-
const afterMark = concatedChunk.slice(markerIndex + external_common_js_namespaceObject.ESCAPED_SHELL_STREAM_END_MARK.length);
|
|
119
|
-
runtime_extensions_namespaceObject.publishHeadRender(runtimeContext);
|
|
120
|
-
const completedShellBefore = (0, external_helmet_js_namespaceObject.createReplaceHelemt)((0, external_helmet_js_namespaceObject.getHelmetData)(runtimeContext))(shellBefore);
|
|
121
|
-
shellChunkStatus = external_shared_js_namespaceObject.ShellChunkStatus.FINISH;
|
|
122
|
-
safeEnqueue((0, external_shared_js_namespaceObject.encodeForWebStream)(`${completedShellBefore}${beforeMark}${shellAfter}`));
|
|
123
|
-
if (afterMark.length > 0) safeEnqueue((0, external_shared_js_namespaceObject.encodeForWebStream)(afterMark));
|
|
124
|
-
flushPendingScripts();
|
|
125
|
-
}
|
|
126
|
-
} else safeEnqueue(value);
|
|
127
|
-
if (!isClosed) push();
|
|
128
|
-
} catch (error) {
|
|
129
|
-
runtime_extensions_namespaceObject.abortHeadRender(runtimeContext);
|
|
130
|
-
if (!isClosed) {
|
|
131
|
-
isClosed = true;
|
|
132
|
-
try {
|
|
133
|
-
controller.error(error);
|
|
134
|
-
} catch {}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
push();
|
|
159
|
+
bodyController = controller;
|
|
160
|
+
},
|
|
161
|
+
transform (chunk, controller) {
|
|
162
|
+
emit(decoder.decode(chunk, {
|
|
163
|
+
stream: true
|
|
164
|
+
}), controller);
|
|
139
165
|
},
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
166
|
+
flush (controller) {
|
|
167
|
+
bodyOpen = false;
|
|
168
|
+
emit(decoder.decode(), controller);
|
|
169
|
+
if (shellChunkStatus !== external_shared_js_namespaceObject_1.ShellChunkStatus.FINISH) throw new Error('React SSR stream ended before the shell marker');
|
|
143
170
|
}
|
|
144
171
|
});
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
const
|
|
149
|
-
const
|
|
150
|
-
|
|
172
|
+
bodyPipe = pendingSource.pipeTo(body.writable);
|
|
173
|
+
bodyPipe.catch(()=>{});
|
|
174
|
+
pendingSource = body.readable;
|
|
175
|
+
const activeDeferreds = node_namespaceObject.storage.useContext?.()?.activeDeferreds;
|
|
176
|
+
const entries = activeDeferreds instanceof Map ? Array.from(activeDeferreds.entries()) : [];
|
|
177
|
+
(0, external_deferredScript_js_namespaceObject.enqueueFromEntries)(entries, config.nonce, (script)=>{
|
|
178
|
+
if (!bodyOpen) return;
|
|
179
|
+
if (shellChunkStatus === external_shared_js_namespaceObject_1.ShellChunkStatus.FINISH) try {
|
|
180
|
+
bodyController.enqueue(encoder.encode(script));
|
|
181
|
+
} catch {
|
|
182
|
+
bodyOpen = false;
|
|
183
|
+
}
|
|
184
|
+
else pendingScripts.push(script);
|
|
185
|
+
});
|
|
186
|
+
return (0, external_shared_js_namespaceObject.observeSSRStream)(pendingSource, {
|
|
187
|
+
lifecycle,
|
|
188
|
+
async onError (error) {
|
|
189
|
+
bodyOpen = false;
|
|
190
|
+
await bodyPipe?.catch(()=>{});
|
|
191
|
+
reportError(error);
|
|
192
|
+
},
|
|
193
|
+
signal: request.signal,
|
|
194
|
+
async onCancel (reason) {
|
|
195
|
+
bodyOpen = false;
|
|
196
|
+
await bodyPipe?.catch((error)=>{
|
|
197
|
+
if (error !== reason) throw error;
|
|
198
|
+
});
|
|
199
|
+
},
|
|
200
|
+
onComplete: ()=>bodyPipe
|
|
201
|
+
});
|
|
202
|
+
} catch (error) {
|
|
203
|
+
bodyOpen = false;
|
|
204
|
+
if (void 0 !== pendingSource) try {
|
|
205
|
+
await pendingSource.cancel(error);
|
|
206
|
+
await bodyPipe?.catch(()=>{});
|
|
207
|
+
} catch (cancelError) {
|
|
208
|
+
if (!request.signal.aborted) reportError(cancelError);
|
|
209
|
+
}
|
|
210
|
+
if (request.signal.aborted) {
|
|
211
|
+
lifecycle.finish({
|
|
212
|
+
status: 'cancelled',
|
|
213
|
+
reason: request.signal.reason
|
|
214
|
+
});
|
|
215
|
+
throw request.signal.reason;
|
|
216
|
+
}
|
|
217
|
+
lifecycle.finish({
|
|
218
|
+
status: 'fallback',
|
|
219
|
+
error
|
|
220
|
+
});
|
|
221
|
+
reportError(error);
|
|
222
|
+
const { shellBefore, shellAfter } = await (0, external_template_js_namespaceObject.getTemplates)(htmlTemplate, {
|
|
223
|
+
...templateOptions,
|
|
224
|
+
renderLevel: external_constants_js_namespaceObject.RenderLevel.CLIENT_RENDER,
|
|
225
|
+
helmetData: (0, external_helmet_js_namespaceObject.getHelmetData)(extenders)
|
|
226
|
+
});
|
|
227
|
+
return (0, external_shared_js_namespaceObject.observeSSRStream)((0, external_shared_js_namespaceObject_1.getReadableStreamFromString)(`${shellBefore}${shellAfter}`), {
|
|
228
|
+
lifecycle,
|
|
229
|
+
onError: reportError,
|
|
230
|
+
signal: request.signal
|
|
231
|
+
});
|
|
151
232
|
}
|
|
152
233
|
};
|
|
153
234
|
exports.createReadableStreamFromElement = __webpack_exports__.createReadableStreamFromElement;
|
|
@@ -58,13 +58,13 @@ function isDeferredDataLike(v) {
|
|
|
58
58
|
return hasPending && hasData;
|
|
59
59
|
}
|
|
60
60
|
function isPromiseLike(value) {
|
|
61
|
-
return
|
|
61
|
+
return Boolean(value) && 'function' == typeof value.then;
|
|
62
62
|
}
|
|
63
63
|
function toErrorInfo(error) {
|
|
64
64
|
if ((0, external_utils_js_namespaceObject.shouldRedactServerError)()) return {
|
|
65
65
|
message: 'Unexpected Server Error'
|
|
66
66
|
};
|
|
67
|
-
if (error && 'object' == typeof error) {
|
|
67
|
+
if (null !== error && 'object' == typeof error) {
|
|
68
68
|
const maybeMsg = error.message;
|
|
69
69
|
const maybeStack = error.stack;
|
|
70
70
|
return {
|
|
@@ -79,7 +79,7 @@ function toErrorInfo(error) {
|
|
|
79
79
|
function buildDeferredDataScript(nonce, args) {
|
|
80
80
|
const payload = JSON.stringify(args);
|
|
81
81
|
const escaped = escapeAttr(payload);
|
|
82
|
-
const nonceAttr = nonce ? ` nonce="${nonce}"` : '';
|
|
82
|
+
const nonceAttr = void 0 !== nonce && '' !== nonce ? ` nonce="${nonce}"` : '';
|
|
83
83
|
return `<script async${nonceAttr} data-fn-name="r" data-script-src="modern-run-router-data-fn" data-fn-args='${escaped}' suppressHydrationWarning>${constants_js_namespaceObject.runRouterDataFnStr}</script>`;
|
|
84
84
|
}
|
|
85
85
|
function enqueueFromEntries(entries, nonce, emit) {
|
|
@@ -28,6 +28,7 @@ var __webpack_require__ = {};
|
|
|
28
28
|
var __webpack_exports__ = {};
|
|
29
29
|
__webpack_require__.r(__webpack_exports__);
|
|
30
30
|
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
+
SHELL_PROGRESSIVE_CHUNK_SIZE: ()=>SHELL_PROGRESSIVE_CHUNK_SIZE,
|
|
31
32
|
ShellChunkStatus: ()=>shared_ShellChunkStatus,
|
|
32
33
|
createRenderStreaming: ()=>createRenderStreaming,
|
|
33
34
|
encodeForWebStream: ()=>encodeForWebStream,
|
|
@@ -46,6 +47,7 @@ var shared_ShellChunkStatus = /*#__PURE__*/ function(ShellChunkStatus) {
|
|
|
46
47
|
ShellChunkStatus[ShellChunkStatus["FINISH"] = 1] = "FINISH";
|
|
47
48
|
return ShellChunkStatus;
|
|
48
49
|
}({});
|
|
50
|
+
const SHELL_PROGRESSIVE_CHUNK_SIZE = Number.MAX_SAFE_INTEGER;
|
|
49
51
|
const SHOULD_STREAM_ALL_HEADER = 'x-should-stream-all';
|
|
50
52
|
function parseShouldStreamAllFlag(value) {
|
|
51
53
|
if (!value) return;
|
|
@@ -99,7 +101,7 @@ function createRenderStreaming(createReadableStreamPromise) {
|
|
|
99
101
|
const end = (0, time_namespaceObject.time)();
|
|
100
102
|
const { runtimeContext, config, resource } = options;
|
|
101
103
|
const { onError, onTiming } = options;
|
|
102
|
-
const { htmlTemplate, entryName
|
|
104
|
+
const { htmlTemplate, entryName } = resource;
|
|
103
105
|
const ssrConfig = (0, external_utils_js_namespaceObject.getSSRConfigByEntry)(entryName, config.ssr, config.ssrByEntries);
|
|
104
106
|
const StreamServerRootWrapper = ({ children })=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(jsx_runtime_namespaceObject.Fragment, {
|
|
105
107
|
children: [
|
|
@@ -119,7 +121,7 @@ function createRenderStreaming(createReadableStreamPromise) {
|
|
|
119
121
|
runtimeContext,
|
|
120
122
|
ssrConfig,
|
|
121
123
|
entryName,
|
|
122
|
-
|
|
124
|
+
resource,
|
|
123
125
|
rscClientManifest: options.rscClientManifest,
|
|
124
126
|
rscSSRManifest: options.rscSSRManifest,
|
|
125
127
|
rscServerManifest: options.rscServerManifest,
|
|
@@ -143,12 +145,14 @@ function createRenderStreaming(createReadableStreamPromise) {
|
|
|
143
145
|
return stream;
|
|
144
146
|
};
|
|
145
147
|
}
|
|
148
|
+
exports.SHELL_PROGRESSIVE_CHUNK_SIZE = __webpack_exports__.SHELL_PROGRESSIVE_CHUNK_SIZE;
|
|
146
149
|
exports.ShellChunkStatus = __webpack_exports__.ShellChunkStatus;
|
|
147
150
|
exports.createRenderStreaming = __webpack_exports__.createRenderStreaming;
|
|
148
151
|
exports.encodeForWebStream = __webpack_exports__.encodeForWebStream;
|
|
149
152
|
exports.getReadableStreamFromString = __webpack_exports__.getReadableStreamFromString;
|
|
150
153
|
exports.resolveStreamingMode = __webpack_exports__.resolveStreamingMode;
|
|
151
154
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
155
|
+
"SHELL_PROGRESSIVE_CHUNK_SIZE",
|
|
152
156
|
"ShellChunkStatus",
|
|
153
157
|
"createRenderStreaming",
|
|
154
158
|
"encodeForWebStream",
|
|
@@ -39,17 +39,16 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
39
39
|
__webpack_require__.d(__webpack_exports__, {
|
|
40
40
|
renderString: ()=>renderString
|
|
41
41
|
});
|
|
42
|
-
const
|
|
42
|
+
const context_namespaceObject = require("@modern-js/runtime/context");
|
|
43
43
|
const time_namespaceObject = require("@modern-js/runtime-utils/time");
|
|
44
44
|
const constants_namespaceObject = require("@modern-js/utils/universal/constants");
|
|
45
45
|
const server_namespaceObject = require("react-dom/server");
|
|
46
46
|
var server_default = /*#__PURE__*/ __webpack_require__.n(server_namespaceObject);
|
|
47
47
|
const external_constants_js_namespaceObject = require("../../constants.js");
|
|
48
|
-
const index_js_namespaceObject = require("../../context/index.js");
|
|
48
|
+
const index_js_namespaceObject = require("../../context/monitors/index.js");
|
|
49
49
|
const wrapper_js_namespaceObject = require("../../react/wrapper.js");
|
|
50
50
|
const external_constants_js_namespaceObject_1 = require("../constants.js");
|
|
51
51
|
const external_helmet_js_namespaceObject = require("../helmet.js");
|
|
52
|
-
const external_scriptOrder_js_namespaceObject = require("../scriptOrder.js");
|
|
53
52
|
const external_shared_js_namespaceObject = require("../shared.js");
|
|
54
53
|
const external_tracer_js_namespaceObject = require("../tracer.js");
|
|
55
54
|
const external_utils_js_namespaceObject = require("../utils.js");
|
|
@@ -62,7 +61,7 @@ const renderString = async (request, serverRoot, options)=>{
|
|
|
62
61
|
onTiming
|
|
63
62
|
};
|
|
64
63
|
const routerContext = runtimeContext.routerContext;
|
|
65
|
-
const { htmlTemplate, entryName, loadableStats, routeManifest
|
|
64
|
+
const { htmlTemplate, entryName, loadableStats, routeManifest } = resource;
|
|
66
65
|
const ssrConfig = (0, external_utils_js_namespaceObject.getSSRConfigByEntry)(entryName, config.ssr, config.ssrByEntries);
|
|
67
66
|
const chunkSet = {
|
|
68
67
|
renderLevel: external_constants_js_namespaceObject.RenderLevel.CLIENT_RENDER,
|
|
@@ -70,85 +69,124 @@ const renderString = async (request, serverRoot, options)=>{
|
|
|
70
69
|
jsChunk: '',
|
|
71
70
|
cssChunk: ''
|
|
72
71
|
};
|
|
73
|
-
const collectors = [
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const internalRuntimeContext = (0,
|
|
72
|
+
const collectors = [];
|
|
73
|
+
const lifecycle = (0, external_shared_js_namespaceObject.createSSRRenderLifecycle)(collectors);
|
|
74
|
+
const loadableCollector = new external_loadable_js_namespaceObject.LoadableCollector({
|
|
75
|
+
stats: loadableStats,
|
|
76
|
+
nonce: config.nonce,
|
|
77
|
+
routeManifest,
|
|
78
|
+
template: htmlTemplate,
|
|
79
|
+
entryName,
|
|
80
|
+
chunkSet,
|
|
81
|
+
config,
|
|
82
|
+
lifecycle
|
|
83
|
+
});
|
|
84
|
+
collectors.push(loadableCollector, new external_ssrData_js_namespaceObject.SSRDataCollector({
|
|
85
|
+
runtimeContext,
|
|
86
|
+
request,
|
|
87
|
+
ssrConfig,
|
|
88
|
+
ssrContext: runtimeContext.ssrContext,
|
|
89
|
+
chunkSet,
|
|
90
|
+
routerContext,
|
|
91
|
+
nonce: config.nonce,
|
|
92
|
+
useJsonScript: config.useJsonScript,
|
|
93
|
+
lifecycle
|
|
94
|
+
}));
|
|
95
|
+
const internalRuntimeContext = (0, context_namespaceObject.getGlobalInternalRuntimeContext)();
|
|
97
96
|
const hooks = internalRuntimeContext.hooks;
|
|
98
97
|
const extraCollectors = hooks.extendStringSSRCollectors.call({
|
|
99
|
-
chunkSet
|
|
98
|
+
chunkSet,
|
|
99
|
+
render: {
|
|
100
|
+
runtimeContext,
|
|
101
|
+
request,
|
|
102
|
+
resource,
|
|
103
|
+
config,
|
|
104
|
+
platform: 'node',
|
|
105
|
+
mode: 'string',
|
|
106
|
+
monitors: (0, index_js_namespaceObject.getMonitors)(),
|
|
107
|
+
isRsc: true === (0, context_namespaceObject.getGlobalEnableRsc)()
|
|
108
|
+
}
|
|
100
109
|
});
|
|
101
110
|
for (const c of extraCollectors)if (c) collectors.unshift(c);
|
|
102
|
-
|
|
111
|
+
let rootElement = (0, wrapper_js_namespaceObject.wrapRuntimeContextProvider)(serverRoot, Object.assign(runtimeContext, {
|
|
103
112
|
ssr: true
|
|
104
113
|
}));
|
|
105
|
-
|
|
114
|
+
if (true === (0, context_namespaceObject.getGlobalEnableRsc)() && false === runtimeContext.isBrowser) rootElement = (0, wrapper_js_namespaceObject.wrapRuntimeComponentResolver)(rootElement, hooks);
|
|
115
|
+
const html = await generateHtml(rootElement, htmlTemplate, chunkSet, collectors, runtimeContext.ssrContext?.htmlModifiers || [], tracer, request.signal, lifecycle, loadableCollector.stylesheetInfo);
|
|
106
116
|
return html;
|
|
107
117
|
};
|
|
108
|
-
async function generateHtml(App, htmlTemplate, chunkSet, collectors, htmlModifiers,
|
|
118
|
+
async function generateHtml(App, htmlTemplate, chunkSet, collectors, htmlModifiers, { onError, onTiming }, signal, lifecycle, stylesheetInfo) {
|
|
109
119
|
let html = '';
|
|
110
120
|
let helmetData;
|
|
111
|
-
const finalApp = collectors.reduce((pre, creator)=>creator.collect?.(pre) || pre, App);
|
|
112
|
-
runtime_extensions_namespaceObject.beginHeadRender(runtimeContext);
|
|
113
121
|
try {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
122
|
+
signal.throwIfAborted();
|
|
123
|
+
try {
|
|
124
|
+
const finalApp = collectors.reduce((pre, creator)=>creator.collect?.(pre) || pre, App);
|
|
125
|
+
lifecycle.beforeReact();
|
|
126
|
+
const end = (0, time_namespaceObject.time)();
|
|
127
|
+
html = server_default().renderToString(finalApp, {
|
|
128
|
+
identifierPrefix: constants_namespaceObject.SSR_HYDRATION_ID_PREFIX
|
|
129
|
+
});
|
|
130
|
+
html = lifecycle.completedBody(html, 'complete');
|
|
131
|
+
chunkSet.renderLevel = external_constants_js_namespaceObject.RenderLevel.SERVER_RENDER;
|
|
132
|
+
helmetData = (0, external_helmet_js_namespaceObject.getHelmetData)(collectors);
|
|
133
|
+
const cost = end();
|
|
134
|
+
onTiming(external_tracer_js_namespaceObject.SSRTimings.RENDER_HTML, cost);
|
|
135
|
+
} catch (error) {
|
|
136
|
+
lifecycle.finish({
|
|
137
|
+
status: 'fallback',
|
|
138
|
+
error
|
|
139
|
+
});
|
|
140
|
+
html = '';
|
|
141
|
+
chunkSet.renderLevel = external_constants_js_namespaceObject.RenderLevel.CLIENT_RENDER;
|
|
142
|
+
onError(error, external_tracer_js_namespaceObject.SSRErrors.RENDER_HTML);
|
|
143
|
+
}
|
|
144
|
+
await Promise.all(collectors.map((component)=>component.effect()));
|
|
145
|
+
signal.throwIfAborted();
|
|
146
|
+
const { ssrScripts, cssChunk, jsChunk } = chunkSet;
|
|
147
|
+
const finalHtml = await (0, external_shared_js_namespaceObject.buildHtml)(htmlTemplate, [
|
|
148
|
+
createReplaceHtml(html),
|
|
149
|
+
(template)=>(0, external_shared_js_namespaceObject.replaceSSRTemplateChunk)({
|
|
150
|
+
name: "scripts",
|
|
151
|
+
template,
|
|
152
|
+
placeholder: external_constants_js_namespaceObject_1.CHUNK_JS_PLACEHOLDER,
|
|
153
|
+
content: jsChunk
|
|
154
|
+
}, lifecycle),
|
|
155
|
+
(template)=>(0, external_shared_js_namespaceObject.replaceSSRTemplateChunk)({
|
|
156
|
+
name: 'styles',
|
|
157
|
+
template,
|
|
158
|
+
placeholder: external_constants_js_namespaceObject_1.CHUNK_CSS_PLACEHOLDER,
|
|
159
|
+
content: cssChunk,
|
|
160
|
+
...stylesheetInfo
|
|
161
|
+
}, lifecycle),
|
|
162
|
+
(template)=>(0, external_shared_js_namespaceObject.replaceSSRTemplateChunk)({
|
|
163
|
+
name: 'data',
|
|
164
|
+
template,
|
|
165
|
+
placeholder: external_constants_js_namespaceObject_1.SSR_DATA_PLACEHOLDER,
|
|
166
|
+
content: ssrScripts
|
|
167
|
+
}, lifecycle),
|
|
168
|
+
(0, external_helmet_js_namespaceObject.createReplaceHelemt)(helmetData),
|
|
169
|
+
...htmlModifiers
|
|
170
|
+
]);
|
|
171
|
+
signal.throwIfAborted();
|
|
172
|
+
lifecycle.finish({
|
|
173
|
+
status: 'complete'
|
|
174
|
+
});
|
|
175
|
+
return finalHtml;
|
|
176
|
+
} catch (error) {
|
|
177
|
+
lifecycle.finish(signal.aborted ? {
|
|
178
|
+
status: 'cancelled',
|
|
179
|
+
reason: signal.reason
|
|
180
|
+
} : {
|
|
181
|
+
status: 'error',
|
|
182
|
+
error
|
|
117
183
|
});
|
|
118
|
-
|
|
119
|
-
chunkSet.renderLevel = external_constants_js_namespaceObject.RenderLevel.SERVER_RENDER;
|
|
120
|
-
helmetData = (0, external_helmet_js_namespaceObject.getHelmetData)(runtimeContext);
|
|
121
|
-
const cost = end();
|
|
122
|
-
onTiming(external_tracer_js_namespaceObject.SSRTimings.RENDER_HTML, cost);
|
|
123
|
-
} catch (e) {
|
|
124
|
-
runtime_extensions_namespaceObject.abortHeadRender(runtimeContext);
|
|
125
|
-
chunkSet.renderLevel = external_constants_js_namespaceObject.RenderLevel.CLIENT_RENDER;
|
|
126
|
-
onError(e, external_tracer_js_namespaceObject.SSRErrors.RENDER_HTML);
|
|
184
|
+
throw error;
|
|
127
185
|
}
|
|
128
|
-
await Promise.all(collectors.map((component)=>component.effect()));
|
|
129
|
-
const { ssrScripts, cssChunk, jsChunk } = chunkSet;
|
|
130
|
-
const finalHtml = await (0, external_shared_js_namespaceObject.buildHtml)(htmlTemplate, [
|
|
131
|
-
createReplaceHtml(html),
|
|
132
|
-
createReplaceChunkJs(jsChunk, entryName),
|
|
133
|
-
createReplaceChunkCss(cssChunk),
|
|
134
|
-
createReplaceSSRDataScript(ssrScripts, entryName),
|
|
135
|
-
(0, external_helmet_js_namespaceObject.createReplaceHelemt)(helmetData),
|
|
136
|
-
...htmlModifiers
|
|
137
|
-
]);
|
|
138
|
-
return finalHtml;
|
|
139
186
|
}
|
|
140
187
|
function createReplaceHtml(html) {
|
|
141
188
|
return (template)=>(0, external_utils_js_namespaceObject.safeReplace)(template, external_constants_js_namespaceObject_1.HTML_PLACEHOLDER, html);
|
|
142
189
|
}
|
|
143
|
-
function createReplaceSSRDataScript(data, entryName) {
|
|
144
|
-
return (template)=>(0, external_scriptOrder_js_namespaceObject.replaceChunkJsPlaceholder)(template, data, entryName, external_constants_js_namespaceObject_1.SSR_DATA_PLACEHOLDER);
|
|
145
|
-
}
|
|
146
|
-
function createReplaceChunkJs(js, entryName) {
|
|
147
|
-
return (template)=>(0, external_scriptOrder_js_namespaceObject.replaceChunkJsPlaceholder)(template, js, entryName);
|
|
148
|
-
}
|
|
149
|
-
function createReplaceChunkCss(css) {
|
|
150
|
-
return (template)=>(0, external_utils_js_namespaceObject.safeReplace)(template, external_constants_js_namespaceObject_1.CHUNK_CSS_PLACEHOLDER, css);
|
|
151
|
-
}
|
|
152
190
|
exports.renderString = __webpack_exports__.renderString;
|
|
153
191
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
154
192
|
"renderString"
|