@modern-js/render 0.0.0-canary-20250912092308

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 (35) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -0
  3. package/dist/cjs/client/callServer.js +110 -0
  4. package/dist/cjs/client/index.js +84 -0
  5. package/dist/cjs/rsc-html-stream/client.js +56 -0
  6. package/dist/cjs/rsc-html-stream/server.js +98 -0
  7. package/dist/cjs/server/rsc/index.js +22 -0
  8. package/dist/cjs/server/rsc/rsc.js +81 -0
  9. package/dist/cjs/server/ssr/index.js +22 -0
  10. package/dist/cjs/server/ssr/ssr.js +80 -0
  11. package/dist/esm/client/callServer.js +165 -0
  12. package/dist/esm/client/index.js +45 -0
  13. package/dist/esm/rsc-html-stream/client.js +32 -0
  14. package/dist/esm/rsc-html-stream/server.js +216 -0
  15. package/dist/esm/server/rsc/index.js +1 -0
  16. package/dist/esm/server/rsc/rsc.js +104 -0
  17. package/dist/esm/server/ssr/index.js +1 -0
  18. package/dist/esm/server/ssr/ssr.js +112 -0
  19. package/dist/esm-node/client/callServer.js +85 -0
  20. package/dist/esm-node/client/index.js +42 -0
  21. package/dist/esm-node/rsc-html-stream/client.js +32 -0
  22. package/dist/esm-node/rsc-html-stream/server.js +74 -0
  23. package/dist/esm-node/server/rsc/index.js +1 -0
  24. package/dist/esm-node/server/rsc/rsc.js +52 -0
  25. package/dist/esm-node/server/ssr/index.js +1 -0
  26. package/dist/esm-node/server/ssr/ssr.js +46 -0
  27. package/dist/types/client/callServer.d.ts +3 -0
  28. package/dist/types/client/index.d.ts +22 -0
  29. package/dist/types/rsc-html-stream/client.d.ts +5 -0
  30. package/dist/types/rsc-html-stream/server.d.ts +3 -0
  31. package/dist/types/server/rsc/index.d.ts +1 -0
  32. package/dist/types/server/rsc/rsc.d.ts +13 -0
  33. package/dist/types/server/ssr/index.d.ts +1 -0
  34. package/dist/types/server/ssr/ssr.d.ts +11 -0
  35. package/package.json +84 -0
@@ -0,0 +1,165 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _call_super } from "@swc/helpers/_/_call_super";
3
+ import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
4
+ import { _ as _class_private_field_get } from "@swc/helpers/_/_class_private_field_get";
5
+ import { _ as _class_private_field_init } from "@swc/helpers/_/_class_private_field_init";
6
+ import { _ as _class_private_field_set } from "@swc/helpers/_/_class_private_field_set";
7
+ import { _ as _create_class } from "@swc/helpers/_/_create_class";
8
+ import { _ as _inherits } from "@swc/helpers/_/_inherits";
9
+ import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
10
+ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
11
+ import { _ as _wrap_native_super } from "@swc/helpers/_/_wrap_native_super";
12
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
13
+ import { createFromFetch, encodeReply } from "@modern-js/utils/react-server-dom-webpack/client.browser";
14
+ var _statusCode = /* @__PURE__ */ new WeakMap(), _url = /* @__PURE__ */ new WeakMap(), _details = /* @__PURE__ */ new WeakMap();
15
+ var CallServerError = /* @__PURE__ */ function(Error1) {
16
+ "use strict";
17
+ _inherits(CallServerError2, Error1);
18
+ function CallServerError2(message, statusCode) {
19
+ var url = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "", details = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {};
20
+ _class_call_check(this, CallServerError2);
21
+ var _this;
22
+ var formattedMessage = "Call Server Action failed (".concat(statusCode, "): ").concat(message, "\nURL: ").concat(url);
23
+ _this = _call_super(this, CallServerError2, [
24
+ formattedMessage
25
+ ]), _class_private_field_init(_this, _statusCode, {
26
+ writable: true,
27
+ value: void 0
28
+ }), _class_private_field_init(_this, _url, {
29
+ writable: true,
30
+ value: void 0
31
+ }), _class_private_field_init(_this, _details, {
32
+ writable: true,
33
+ value: void 0
34
+ });
35
+ _this.name = "CallServerError";
36
+ _class_private_field_set(_this, _statusCode, statusCode);
37
+ _class_private_field_set(_this, _url, url);
38
+ _class_private_field_set(_this, _details, details);
39
+ return _this;
40
+ }
41
+ var _proto = CallServerError2.prototype;
42
+ _proto.toJSON = function toJSON() {
43
+ return {
44
+ name: this.name,
45
+ message: this.message,
46
+ statusCode: _class_private_field_get(this, _statusCode),
47
+ url: _class_private_field_get(this, _url),
48
+ details: _class_private_field_get(this, _details)
49
+ };
50
+ };
51
+ _create_class(CallServerError2, [
52
+ {
53
+ key: "statusCode",
54
+ get: function get() {
55
+ return _class_private_field_get(this, _statusCode);
56
+ }
57
+ },
58
+ {
59
+ key: "url",
60
+ get: function get() {
61
+ return _class_private_field_get(this, _url);
62
+ }
63
+ },
64
+ {
65
+ key: "details",
66
+ get: function get() {
67
+ return _object_spread({}, _class_private_field_get(this, _details));
68
+ }
69
+ }
70
+ ]);
71
+ return CallServerError2;
72
+ }(_wrap_native_super(Error));
73
+ function requestCallServer(id, args) {
74
+ return _requestCallServer.apply(this, arguments);
75
+ }
76
+ function _requestCallServer() {
77
+ _requestCallServer = _async_to_generator(function(id, args) {
78
+ var entryName, url, response, _tmp, _tmp1, error;
79
+ return _ts_generator(this, function(_state) {
80
+ switch (_state.label) {
81
+ case 0:
82
+ entryName = window.__MODERN_JS_ENTRY_NAME;
83
+ url = entryName === "main" ? "/" : "/".concat(entryName);
84
+ _state.label = 1;
85
+ case 1:
86
+ _state.trys.push([
87
+ 1,
88
+ 4,
89
+ ,
90
+ 5
91
+ ]);
92
+ _tmp = [
93
+ url
94
+ ];
95
+ _tmp1 = {
96
+ method: "POST",
97
+ headers: {
98
+ Accept: "text/x-component",
99
+ "x-rsc-action": id
100
+ }
101
+ };
102
+ return [
103
+ 4,
104
+ encodeReply(args)
105
+ ];
106
+ case 2:
107
+ return [
108
+ 4,
109
+ fetch.apply(void 0, _tmp.concat([
110
+ (_tmp1.body = _state.sent(), _tmp1)
111
+ ]))
112
+ ];
113
+ case 3:
114
+ response = _state.sent();
115
+ if (!response.ok) {
116
+ throw new CallServerError(response.statusText, response.status, url, {
117
+ id,
118
+ args
119
+ });
120
+ }
121
+ return [
122
+ 2,
123
+ response
124
+ ];
125
+ case 4:
126
+ error = _state.sent();
127
+ if (_instanceof(error, CallServerError)) {
128
+ throw error;
129
+ }
130
+ throw new CallServerError(_instanceof(error, Error) ? error.message : "Unknown error", 1, url, {
131
+ id,
132
+ args
133
+ });
134
+ case 5:
135
+ return [
136
+ 2
137
+ ];
138
+ }
139
+ });
140
+ });
141
+ return _requestCallServer.apply(this, arguments);
142
+ }
143
+ function callServer(id, args) {
144
+ return _callServer.apply(this, arguments);
145
+ }
146
+ function _callServer() {
147
+ _callServer = _async_to_generator(function(id, args) {
148
+ var response, res;
149
+ return _ts_generator(this, function(_state) {
150
+ response = requestCallServer(id, args);
151
+ res = createFromFetch(response, {
152
+ callServer
153
+ });
154
+ return [
155
+ 2,
156
+ res
157
+ ];
158
+ });
159
+ });
160
+ return _callServer.apply(this, arguments);
161
+ }
162
+ export {
163
+ callServer,
164
+ requestCallServer
165
+ };
@@ -0,0 +1,45 @@
1
+ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { createFromReadableStream, createServerReference } from "@modern-js/utils/react-server-dom-webpack/client.browser";
4
+ import React from "react";
5
+ import { createContext, useState } from "react";
6
+ import { rscStream } from "../rsc-html-stream/client";
7
+ import { callServer } from "./callServer";
8
+ import { createFromFetch } from "@modern-js/utils/react-server-dom-webpack/client.browser";
9
+ function RscClientRoot(param) {
10
+ var rscPayload = param.rscPayload;
11
+ var elements = React.use(rscPayload);
12
+ var _useState = _sliced_to_array(useState(elements), 2), root = _useState[0], setRoot = _useState[1];
13
+ return /* @__PURE__ */ _jsx(_Fragment, {
14
+ children: root
15
+ });
16
+ }
17
+ var ElementsContext = /* @__PURE__ */ createContext(null);
18
+ var JSX_SHELL_STREAM_END_MARK = "<!--<?- SHELL_STREAM_END ?>-->";
19
+ var ServerElementsProvider = function(param) {
20
+ var elements = param.elements, children = param.children;
21
+ return /* @__PURE__ */ _jsxs(_Fragment, {
22
+ children: [
23
+ /* @__PURE__ */ _jsx(ElementsContext.Provider, {
24
+ value: elements,
25
+ children
26
+ }),
27
+ JSX_SHELL_STREAM_END_MARK
28
+ ]
29
+ });
30
+ };
31
+ var RSCServerSlot = function() {
32
+ var elements = React.use(ElementsContext);
33
+ return elements;
34
+ };
35
+ export {
36
+ ElementsContext,
37
+ RSCServerSlot,
38
+ RscClientRoot,
39
+ ServerElementsProvider,
40
+ callServer,
41
+ createFromFetch,
42
+ createFromReadableStream,
43
+ createServerReference,
44
+ rscStream
45
+ };
@@ -0,0 +1,32 @@
1
+ var encoder = new TextEncoder();
2
+ var streamController;
3
+ var rscStream = new ReadableStream({
4
+ start: function start(controller) {
5
+ if (typeof window === "undefined") {
6
+ return;
7
+ }
8
+ var handleChunk = function(chunk) {
9
+ if (typeof chunk === "string") {
10
+ controller.enqueue(encoder.encode(chunk));
11
+ } else {
12
+ controller.enqueue(chunk);
13
+ }
14
+ };
15
+ window.__FLIGHT_DATA = window.__FLIGHT_DATA || [];
16
+ window.__FLIGHT_DATA.forEach(handleChunk);
17
+ window.__FLIGHT_DATA.push = function(chunk) {
18
+ handleChunk(chunk);
19
+ };
20
+ streamController = controller;
21
+ }
22
+ });
23
+ if (typeof document !== "undefined" && document.readyState === "loading") {
24
+ document.addEventListener("DOMContentLoaded", function() {
25
+ streamController === null || streamController === void 0 ? void 0 : streamController.close();
26
+ });
27
+ } else {
28
+ streamController === null || streamController === void 0 ? void 0 : streamController.close();
29
+ }
30
+ export {
31
+ rscStream
32
+ };
@@ -0,0 +1,216 @@
1
+ import { _ as _async_iterator } from "@swc/helpers/_/_async_iterator";
2
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
3
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
4
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
5
+ var encoder = new TextEncoder();
6
+ var trailer = "</body></html>";
7
+ function injectRSCPayload(rscStream, param) {
8
+ var _param_injectClosingTags = param.injectClosingTags, injectClosingTags = _param_injectClosingTags === void 0 ? true : _param_injectClosingTags;
9
+ var decoder = new TextDecoder();
10
+ var resolveFlightDataPromise;
11
+ var flightDataPromise = new Promise(function(resolve) {
12
+ return resolveFlightDataPromise = resolve;
13
+ });
14
+ var startedRSC = false;
15
+ var buffered = [];
16
+ var timeout = null;
17
+ function flushBufferedChunks(controller) {
18
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
19
+ try {
20
+ for (var _iterator = buffered[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
21
+ var chunk = _step.value;
22
+ var buf = decoder.decode(chunk);
23
+ if (buf.endsWith(trailer)) {
24
+ buf = buf.slice(0, -trailer.length);
25
+ }
26
+ controller.enqueue(encoder.encode(buf));
27
+ }
28
+ } catch (err) {
29
+ _didIteratorError = true;
30
+ _iteratorError = err;
31
+ } finally {
32
+ try {
33
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
34
+ _iterator.return();
35
+ }
36
+ } finally {
37
+ if (_didIteratorError) {
38
+ throw _iteratorError;
39
+ }
40
+ }
41
+ }
42
+ buffered.length = 0;
43
+ timeout = null;
44
+ }
45
+ return new TransformStream({
46
+ transform: function transform(chunk, controller) {
47
+ buffered.push(chunk);
48
+ if (timeout) {
49
+ return;
50
+ }
51
+ timeout = setTimeout(/* @__PURE__ */ _async_to_generator(function() {
52
+ return _ts_generator(this, function(_state) {
53
+ flushBufferedChunks(controller);
54
+ if (!startedRSC) {
55
+ startedRSC = true;
56
+ writeRSCStream(rscStream, controller).catch(function(err) {
57
+ return controller.error(err);
58
+ }).then(function() {
59
+ return resolveFlightDataPromise();
60
+ });
61
+ }
62
+ return [
63
+ 2
64
+ ];
65
+ });
66
+ }), 0);
67
+ },
68
+ flush: function flush(controller) {
69
+ return _async_to_generator(function() {
70
+ return _ts_generator(this, function(_state) {
71
+ switch (_state.label) {
72
+ case 0:
73
+ return [
74
+ 4,
75
+ flightDataPromise
76
+ ];
77
+ case 1:
78
+ _state.sent();
79
+ if (timeout) {
80
+ clearTimeout(timeout);
81
+ flushBufferedChunks(controller);
82
+ }
83
+ if (injectClosingTags) {
84
+ controller.enqueue(encoder.encode("</body></html>"));
85
+ }
86
+ return [
87
+ 2
88
+ ];
89
+ }
90
+ });
91
+ })();
92
+ }
93
+ });
94
+ }
95
+ function writeRSCStream(rscStream, controller) {
96
+ return _writeRSCStream.apply(this, arguments);
97
+ }
98
+ function _writeRSCStream() {
99
+ _writeRSCStream = _async_to_generator(function(rscStream, controller) {
100
+ var decoder, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, _String, base64, err, remaining;
101
+ return _ts_generator(this, function(_state) {
102
+ switch (_state.label) {
103
+ case 0:
104
+ decoder = new TextDecoder("utf-8", {
105
+ fatal: true
106
+ });
107
+ _iteratorAbruptCompletion = false, _didIteratorError = false;
108
+ _state.label = 1;
109
+ case 1:
110
+ _state.trys.push([
111
+ 1,
112
+ 6,
113
+ 7,
114
+ 12
115
+ ]);
116
+ _iterator = _async_iterator(rscStream);
117
+ _state.label = 2;
118
+ case 2:
119
+ return [
120
+ 4,
121
+ _iterator.next()
122
+ ];
123
+ case 3:
124
+ if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done))
125
+ return [
126
+ 3,
127
+ 5
128
+ ];
129
+ _value = _step.value;
130
+ chunk = _value;
131
+ try {
132
+ writeChunk(JSON.stringify(decoder.decode(chunk, {
133
+ stream: true
134
+ })), controller);
135
+ } catch (err2) {
136
+ ;
137
+ base64 = JSON.stringify(btoa((_String = String).fromCodePoint.apply(_String, _to_consumable_array(chunk))));
138
+ writeChunk("Uint8Array.from(atob(".concat(base64, "), m => m.codePointAt(0))"), controller);
139
+ }
140
+ _state.label = 4;
141
+ case 4:
142
+ _iteratorAbruptCompletion = false;
143
+ return [
144
+ 3,
145
+ 2
146
+ ];
147
+ case 5:
148
+ return [
149
+ 3,
150
+ 12
151
+ ];
152
+ case 6:
153
+ err = _state.sent();
154
+ _didIteratorError = true;
155
+ _iteratorError = err;
156
+ return [
157
+ 3,
158
+ 12
159
+ ];
160
+ case 7:
161
+ _state.trys.push([
162
+ 7,
163
+ ,
164
+ 10,
165
+ 11
166
+ ]);
167
+ if (!(_iteratorAbruptCompletion && _iterator.return != null))
168
+ return [
169
+ 3,
170
+ 9
171
+ ];
172
+ return [
173
+ 4,
174
+ _iterator.return()
175
+ ];
176
+ case 8:
177
+ _state.sent();
178
+ _state.label = 9;
179
+ case 9:
180
+ return [
181
+ 3,
182
+ 11
183
+ ];
184
+ case 10:
185
+ if (_didIteratorError) {
186
+ throw _iteratorError;
187
+ }
188
+ return [
189
+ 7
190
+ ];
191
+ case 11:
192
+ return [
193
+ 7
194
+ ];
195
+ case 12:
196
+ remaining = decoder.decode();
197
+ if (remaining.length) {
198
+ writeChunk(JSON.stringify(remaining), controller);
199
+ }
200
+ return [
201
+ 2
202
+ ];
203
+ }
204
+ });
205
+ });
206
+ return _writeRSCStream.apply(this, arguments);
207
+ }
208
+ function writeChunk(chunk, controller) {
209
+ controller.enqueue(encoder.encode("<script>".concat(escapeScript("(self.__FLIGHT_DATA||=[]).push(".concat(chunk, ")")), "</script>")));
210
+ }
211
+ function escapeScript(script) {
212
+ return script.replace(/<!--/g, "<\\!--").replace(/<\/(script)/gi, "</\\$1");
213
+ }
214
+ export {
215
+ injectRSCPayload
216
+ };
@@ -0,0 +1 @@
1
+ export * from "./rsc";
@@ -0,0 +1,104 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
3
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
4
+ import { renderToReadableStream } from "@modern-js/utils/react-server-dom-webpack/server.edge";
5
+ import { renderToReadableStream as renderToReadableStream2 } from "@modern-js/utils/react-server-dom-webpack/server.edge";
6
+ import { decodeReply } from "@modern-js/utils/react-server-dom-webpack/server.edge";
7
+ import { createFromReadableStream } from "@modern-js/utils/react-server-dom-webpack/client.edge";
8
+ import { registerClientReference, registerServerReference } from "@modern-js/utils/react-server-dom-webpack/server";
9
+ var renderRsc = function(options) {
10
+ var readable = renderToReadableStream2(options.element, options.clientManifest);
11
+ return readable;
12
+ };
13
+ var handleAction = function() {
14
+ var _ref = _async_to_generator(function(req, options) {
15
+ var serverReference, _serverReference_split, filepath, name, action, clientManifest, contentType, args, formData, text, result, stream, response;
16
+ return _ts_generator(this, function(_state) {
17
+ switch (_state.label) {
18
+ case 0:
19
+ serverReference = req.headers.get("x-rsc-action");
20
+ if (!serverReference)
21
+ return [
22
+ 3,
23
+ 7
24
+ ];
25
+ _serverReference_split = _sliced_to_array(serverReference.split("#"), 2), filepath = _serverReference_split[0], name = _serverReference_split[1];
26
+ action = __webpack_require__(filepath)[name || "default"];
27
+ if (action.$$typeof !== Symbol.for("react.server.reference")) {
28
+ throw new Error("Invalid action");
29
+ }
30
+ clientManifest = options.clientManifest;
31
+ contentType = req.headers.get("content-type");
32
+ if (!(contentType === null || contentType === void 0 ? void 0 : contentType.includes("multipart/form-data")))
33
+ return [
34
+ 3,
35
+ 3
36
+ ];
37
+ return [
38
+ 4,
39
+ req.formData()
40
+ ];
41
+ case 1:
42
+ formData = _state.sent();
43
+ return [
44
+ 4,
45
+ decodeReply(formData)
46
+ ];
47
+ case 2:
48
+ args = _state.sent();
49
+ return [
50
+ 3,
51
+ 6
52
+ ];
53
+ case 3:
54
+ return [
55
+ 4,
56
+ req.text()
57
+ ];
58
+ case 4:
59
+ text = _state.sent();
60
+ return [
61
+ 4,
62
+ decodeReply(text)
63
+ ];
64
+ case 5:
65
+ args = _state.sent();
66
+ _state.label = 6;
67
+ case 6:
68
+ result = action.apply(null, args);
69
+ stream = renderRsc({
70
+ element: result,
71
+ clientManifest
72
+ });
73
+ response = new Response(stream, {
74
+ status: 200,
75
+ headers: {
76
+ "Content-Type": "text/html"
77
+ }
78
+ });
79
+ return [
80
+ 2,
81
+ response
82
+ ];
83
+ case 7:
84
+ return [
85
+ 2,
86
+ new Response("Cannot find server reference", {
87
+ status: 404
88
+ })
89
+ ];
90
+ }
91
+ });
92
+ });
93
+ return function handleAction2(req, options) {
94
+ return _ref.apply(this, arguments);
95
+ };
96
+ }();
97
+ export {
98
+ createFromReadableStream,
99
+ handleAction,
100
+ registerClientReference,
101
+ registerServerReference,
102
+ renderRsc,
103
+ renderToReadableStream
104
+ };
@@ -0,0 +1 @@
1
+ export * from "./ssr";
@@ -0,0 +1,112 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
3
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import { renderToReadableStream } from "react-dom/server.edge";
6
+ import { ServerElementsProvider } from "../../client";
7
+ function wrapStream(stream, originalStream) {
8
+ var wrappedStream = Object.create(stream);
9
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
10
+ try {
11
+ for (var _iterator = Object.keys(originalStream)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
12
+ var prop = _step.value;
13
+ if (!(prop in wrappedStream)) {
14
+ wrappedStream[prop] = originalStream[prop];
15
+ }
16
+ }
17
+ } catch (err) {
18
+ _didIteratorError = true;
19
+ _iteratorError = err;
20
+ } finally {
21
+ try {
22
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
23
+ _iterator.return();
24
+ }
25
+ } finally {
26
+ if (_didIteratorError) {
27
+ throw _iteratorError;
28
+ }
29
+ }
30
+ }
31
+ return wrappedStream;
32
+ }
33
+ var renderSSRStream = function() {
34
+ var _ref = _async_to_generator(function(children, options) {
35
+ var clientManifest, ssrManifest, rscRoot, _ref2, renderRsc, createFromReadableStream, injectRSCPayload, rscStream, _rscStream_tee, rscElementStream, rscPayloadStream, elements, htmlStream, error;
36
+ return _ts_generator(this, function(_state) {
37
+ switch (_state.label) {
38
+ case 0:
39
+ clientManifest = options.clientManifest, ssrManifest = options.ssrManifest, rscRoot = options.rscRoot;
40
+ if (!clientManifest || !ssrManifest) {
41
+ return [
42
+ 2,
43
+ renderToReadableStream(children, options)
44
+ ];
45
+ }
46
+ _state.label = 1;
47
+ case 1:
48
+ _state.trys.push([
49
+ 1,
50
+ 5,
51
+ ,
52
+ 6
53
+ ]);
54
+ return [
55
+ 4,
56
+ Promise.all([
57
+ import("../rsc"),
58
+ import("@modern-js/utils/react-server-dom-webpack/client.edge"),
59
+ import("../../rsc-html-stream/server")
60
+ ])
61
+ ];
62
+ case 2:
63
+ _ref2 = _sliced_to_array.apply(void 0, [
64
+ _state.sent(),
65
+ 3
66
+ ]), renderRsc = _ref2[0].renderRsc, createFromReadableStream = _ref2[1].createFromReadableStream, injectRSCPayload = _ref2[2].injectRSCPayload;
67
+ return [
68
+ 4,
69
+ renderRsc({
70
+ element: rscRoot || children,
71
+ clientManifest
72
+ })
73
+ ];
74
+ case 3:
75
+ rscStream = _state.sent();
76
+ _rscStream_tee = _sliced_to_array(rscStream.tee(), 2), rscElementStream = _rscStream_tee[0], rscPayloadStream = _rscStream_tee[1];
77
+ elements = createFromReadableStream(rscElementStream, {
78
+ serverConsumerManifest: ssrManifest
79
+ });
80
+ return [
81
+ 4,
82
+ renderToReadableStream(/* @__PURE__ */ _jsx(ServerElementsProvider, {
83
+ elements,
84
+ children
85
+ }), options)
86
+ ];
87
+ case 4:
88
+ htmlStream = _state.sent();
89
+ return [
90
+ 2,
91
+ wrapStream(htmlStream.pipeThrough(injectRSCPayload(rscPayloadStream, {
92
+ injectClosingTags: false
93
+ })), htmlStream)
94
+ ];
95
+ case 5:
96
+ error = _state.sent();
97
+ console.error(error);
98
+ throw error;
99
+ case 6:
100
+ return [
101
+ 2
102
+ ];
103
+ }
104
+ });
105
+ });
106
+ return function renderSSRStream2(children, options) {
107
+ return _ref.apply(this, arguments);
108
+ };
109
+ }();
110
+ export {
111
+ renderSSRStream
112
+ };