@modern-js/render 0.0.0-next-20250108080920

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.
@@ -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 "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,43 @@
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 { createContext, use, useState } from "react";
4
+ import { createFromReadableStream, createServerReference } from "react-server-dom-webpack/client.browser";
5
+ import { rscStream } from "rsc-html-stream/client";
6
+ import { callServer } from "./callServer";
7
+ import { createFromFetch } from "react-server-dom-webpack/client.browser";
8
+ function RscClientRoot(param) {
9
+ var data = param.data;
10
+ var elements = use(data);
11
+ var _useState = _sliced_to_array(useState(elements), 2), root = _useState[0], setRoot = _useState[1];
12
+ return /* @__PURE__ */ _jsx(_Fragment, {
13
+ children: root
14
+ });
15
+ }
16
+ var ElementsContext = /* @__PURE__ */ createContext(null);
17
+ var JSX_SHELL_STREAM_END_MARK = "<!--<?- SHELL_STREAM_END ?>-->";
18
+ var ServerElementsProvider = function(param) {
19
+ var elements = param.elements, children = param.children;
20
+ return /* @__PURE__ */ _jsxs(_Fragment, {
21
+ children: [
22
+ /* @__PURE__ */ _jsx(ElementsContext.Provider, {
23
+ value: elements,
24
+ children
25
+ }),
26
+ JSX_SHELL_STREAM_END_MARK
27
+ ]
28
+ });
29
+ };
30
+ var RSCServerSlot = function() {
31
+ var elements = use(ElementsContext);
32
+ return elements;
33
+ };
34
+ export {
35
+ RSCServerSlot,
36
+ RscClientRoot,
37
+ ServerElementsProvider,
38
+ callServer,
39
+ createFromFetch,
40
+ createFromReadableStream,
41
+ createServerReference,
42
+ rscStream
43
+ };
@@ -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,105 @@
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 "react-server-dom-webpack/server.edge";
5
+ import { renderToReadableStream as renderToReadableStream2 } from "react-server-dom-webpack/server.edge";
6
+ import { decodeReply } from "react-server-dom-webpack/server.edge";
7
+ import { createFromReadableStream } from "react-server-dom-webpack/client.edge";
8
+ import { registerClientReference, registerServerReference } from "react-server-dom-webpack/server";
9
+ var renderRsc = function(options) {
10
+ var payload = options.returnValue ? {
11
+ returnValue: options.returnValue,
12
+ root: options.element
13
+ } : options.element;
14
+ var readable = renderToReadableStream2(payload, options.clientManifest);
15
+ return readable;
16
+ };
17
+ var handleAction = function() {
18
+ var _ref = _async_to_generator(function(req, options) {
19
+ var serverReference, _serverReference_split, filepath, name, action, clientManifest, contentType, args, formData, text, result, stream, response;
20
+ return _ts_generator(this, function(_state) {
21
+ switch (_state.label) {
22
+ case 0:
23
+ serverReference = req.headers.get("x-rsc-action");
24
+ if (!serverReference)
25
+ return [
26
+ 3,
27
+ 7
28
+ ];
29
+ _serverReference_split = _sliced_to_array(serverReference.split("#"), 2), filepath = _serverReference_split[0], name = _serverReference_split[1];
30
+ action = __webpack_require__(filepath)[name || "default"];
31
+ if (action.$$typeof !== Symbol.for("react.server.reference")) {
32
+ throw new Error("Invalid action");
33
+ }
34
+ clientManifest = options.clientManifest;
35
+ contentType = req.headers.get("content-type");
36
+ if (!(contentType === null || contentType === void 0 ? void 0 : contentType.includes("multipart/form-data")))
37
+ return [
38
+ 3,
39
+ 3
40
+ ];
41
+ return [
42
+ 4,
43
+ req.formData()
44
+ ];
45
+ case 1:
46
+ formData = _state.sent();
47
+ return [
48
+ 4,
49
+ decodeReply(formData)
50
+ ];
51
+ case 2:
52
+ args = _state.sent();
53
+ return [
54
+ 3,
55
+ 6
56
+ ];
57
+ case 3:
58
+ return [
59
+ 4,
60
+ req.text()
61
+ ];
62
+ case 4:
63
+ text = _state.sent();
64
+ return [
65
+ 4,
66
+ decodeReply(text)
67
+ ];
68
+ case 5:
69
+ args = _state.sent();
70
+ _state.label = 6;
71
+ case 6:
72
+ result = action.apply(null, args);
73
+ stream = renderToReadableStream2(result, clientManifest);
74
+ response = new Response(stream, {
75
+ status: 200,
76
+ headers: {
77
+ "Content-Type": "text/html"
78
+ }
79
+ });
80
+ return [
81
+ 2,
82
+ response
83
+ ];
84
+ case 7:
85
+ return [
86
+ 2,
87
+ new Response("Cannot find server reference", {
88
+ status: 404
89
+ })
90
+ ];
91
+ }
92
+ });
93
+ });
94
+ return function handleAction2(req, options) {
95
+ return _ref.apply(this, arguments);
96
+ };
97
+ }();
98
+ export {
99
+ createFromReadableStream,
100
+ handleAction,
101
+ registerClientReference,
102
+ registerServerReference,
103
+ renderRsc,
104
+ renderToReadableStream
105
+ };
@@ -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(element, 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(element, 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("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 || element,
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: element
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(element, options) {
107
+ return _ref.apply(this, arguments);
108
+ };
109
+ }();
110
+ export {
111
+ renderSSRStream
112
+ };