@modern-js/runtime 2.4.0 → 2.4.1-alpha.0

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 (85) hide show
  1. package/dist/js/modern/core/compatible.js +1 -0
  2. package/dist/js/modern/router/runtime/fetch.js +5 -0
  3. package/dist/js/modern/router/runtime/fetch.node.js +4 -0
  4. package/dist/js/modern/router/runtime/fetch.worker.js +5 -0
  5. package/dist/js/modern/router/runtime/plugin.node.js +50 -10
  6. package/dist/js/modern/ssr/cli/index.js +2 -2
  7. package/dist/js/modern/ssr/prefetch.worker.js +66 -0
  8. package/dist/js/modern/ssr/react/nossr/index.js +6 -2
  9. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +1 -1
  10. package/dist/js/modern/ssr/serverRender/renderToStream/index.worker.js +35 -0
  11. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.worker.js +110 -0
  12. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +5 -4
  13. package/dist/js/modern/ssr/serverRender/renderToString/index.js +1 -1
  14. package/dist/js/modern/ssr/serverRender/renderToString/index.worker.js +49 -0
  15. package/dist/js/modern/ssr/serverRender/time.js +13 -0
  16. package/dist/js/modern/ssr/serverRender/time.worker.js +28 -0
  17. package/dist/js/modern/ssr/serverRender/utils.js +1 -12
  18. package/dist/js/node/core/compatible.js +1 -0
  19. package/dist/js/node/router/runtime/fetch.js +28 -0
  20. package/dist/js/node/router/runtime/fetch.node.js +27 -0
  21. package/dist/js/node/router/runtime/fetch.worker.js +28 -0
  22. package/dist/js/node/router/runtime/plugin.node.js +46 -9
  23. package/dist/js/node/ssr/cli/index.js +2 -2
  24. package/dist/js/node/ssr/prefetch.worker.js +87 -0
  25. package/dist/js/node/ssr/react/nossr/index.js +6 -2
  26. package/dist/js/node/ssr/serverRender/renderToStream/index.js +2 -2
  27. package/dist/js/node/ssr/serverRender/renderToStream/index.worker.js +64 -0
  28. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.worker.js +129 -0
  29. package/dist/js/node/ssr/serverRender/renderToString/entry.js +7 -6
  30. package/dist/js/node/ssr/serverRender/renderToString/index.js +2 -2
  31. package/dist/js/node/ssr/serverRender/renderToString/index.worker.js +78 -0
  32. package/dist/js/node/ssr/serverRender/time.js +36 -0
  33. package/dist/js/node/ssr/serverRender/time.worker.js +51 -0
  34. package/dist/js/node/ssr/serverRender/utils.js +2 -14
  35. package/dist/js/treeshaking/core/compatible.js +8 -7
  36. package/dist/js/treeshaking/core/loader/loaderManager.js +3 -3
  37. package/dist/js/treeshaking/core/loader/useLoader.js +15 -15
  38. package/dist/js/treeshaking/document/Head.js +1 -1
  39. package/dist/js/treeshaking/document/Html.js +2 -2
  40. package/dist/js/treeshaking/document/Root.js +2 -2
  41. package/dist/js/treeshaking/document/cli/index.js +4 -4
  42. package/dist/js/treeshaking/router/cli/index.js +2 -2
  43. package/dist/js/treeshaking/router/runtime/fetch.js +2 -0
  44. package/dist/js/treeshaking/router/runtime/fetch.node.js +2 -0
  45. package/dist/js/treeshaking/router/runtime/fetch.worker.js +2 -0
  46. package/dist/js/treeshaking/router/runtime/plugin.js +3 -3
  47. package/dist/js/treeshaking/router/runtime/plugin.node.js +70 -13
  48. package/dist/js/treeshaking/router/runtime/utils.js +3 -3
  49. package/dist/js/treeshaking/ssr/cli/index.js +5 -5
  50. package/dist/js/treeshaking/ssr/index.js +6 -6
  51. package/dist/js/treeshaking/ssr/index.node.js +1 -1
  52. package/dist/js/treeshaking/ssr/prefetch.js +2 -2
  53. package/dist/js/treeshaking/ssr/prefetch.worker.js +191 -0
  54. package/dist/js/treeshaking/ssr/react/nossr/index.js +3 -3
  55. package/dist/js/treeshaking/ssr/react/prerender/index.js +2 -2
  56. package/dist/js/treeshaking/ssr/react/prerender/util.js +2 -2
  57. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +2 -2
  58. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +1 -1
  59. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.worker.js +32 -0
  60. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +1 -1
  61. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +8 -8
  62. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.worker.js +280 -0
  63. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +1 -1
  64. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +5 -5
  65. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +1 -1
  66. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.worker.js +167 -0
  67. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +1 -1
  68. package/dist/js/treeshaking/ssr/serverRender/time.js +57 -0
  69. package/dist/js/treeshaking/ssr/serverRender/time.worker.js +75 -0
  70. package/dist/js/treeshaking/ssr/serverRender/utils.js +1 -57
  71. package/dist/js/treeshaking/ssr/utils.js +5 -5
  72. package/dist/js/treeshaking/state/cli/index.js +2 -2
  73. package/dist/js/treeshaking/state/runtime/plugin.js +3 -3
  74. package/dist/types/router/runtime/fetch.d.ts +2 -0
  75. package/dist/types/router/runtime/fetch.node.d.ts +2 -0
  76. package/dist/types/router/runtime/fetch.worker.d.ts +2 -0
  77. package/dist/types/ssr/prefetch.worker.d.ts +13 -0
  78. package/dist/types/ssr/react/nossr/index.d.ts +4 -2
  79. package/dist/types/ssr/serverRender/renderToStream/index.worker.d.ts +6 -0
  80. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.worker.d.ts +8 -0
  81. package/dist/types/ssr/serverRender/renderToString/index.worker.d.ts +6 -0
  82. package/dist/types/ssr/serverRender/time.d.ts +1 -0
  83. package/dist/types/ssr/serverRender/time.worker.d.ts +1 -0
  84. package/dist/types/ssr/serverRender/utils.d.ts +2 -3
  85. package/package.json +36 -23
@@ -17,8 +17,7 @@ var __copyProps = (to, from, except, desc) => {
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
18
  var utils_exports = {};
19
19
  __export(utils_exports, {
20
- getLoadableScripts: () => getLoadableScripts,
21
- time: () => time
20
+ getLoadableScripts: () => getLoadableScripts
22
21
  });
23
22
  module.exports = __toCommonJS(utils_exports);
24
23
  function getLoadableScripts(extractor) {
@@ -29,18 +28,7 @@ function getLoadableScripts(extractor) {
29
28
  }
30
29
  return scripts.split("<\/script>").slice(0, 2).map((i) => `${i}<\/script>`).join("");
31
30
  }
32
- const getLatency = (hrtime) => {
33
- const [s, ns] = process.hrtime(hrtime);
34
- return s * 1e3 + ns / 1e6;
35
- };
36
- const time = () => {
37
- const hrtime = process.hrtime();
38
- return () => {
39
- return getLatency(hrtime);
40
- };
41
- };
42
31
  // Annotate the CommonJS export names for ESM import in node:
43
32
  0 && (module.exports = {
44
- getLoadableScripts,
45
- time
33
+ getLoadableScripts
46
34
  });
@@ -270,8 +270,8 @@ var createApp = function(param) {
270
270
  }, {
271
271
  onLast: function(param) {
272
272
  var context1 = param.context;
273
- var ref;
274
- return App2 === null || App2 === void 0 ? void 0 : (ref = App2.init) === null || ref === void 0 ? void 0 : ref.call(App2, context1);
273
+ var _App2_init;
274
+ return App2 === null || App2 === void 0 ? void 0 : (_App2_init = App2.init) === null || _App2_init === void 0 ? void 0 : _App2_init.call(App2, context1);
275
275
  }
276
276
  });
277
277
  }
@@ -289,7 +289,7 @@ var createApp = function(param) {
289
289
  };
290
290
  var bootstrap = function() {
291
291
  var _ref = _asyncToGenerator(function(BootApp, id, root, ReactDOM) {
292
- var App, runner, context, runInit, isBrowser, ref, ref1, ssrData, loadersData, initialLoadersState, initialData, rootElement, ModernRender, ModernHydrate, isRedirectResponse, initialData1;
292
+ var App, runner, context, runInit, isBrowser, _ssrData_data, _ssrData_data1, ssrData, loadersData, initialLoadersState, initialData, rootElement, ModernRender, ModernHydrate, isRedirectResponse, initialData1;
293
293
  return __generator(this, function(_state) {
294
294
  switch(_state.label){
295
295
  case 0:
@@ -308,8 +308,8 @@ var bootstrap = function() {
308
308
  }, {
309
309
  onLast: function(param) {
310
310
  var context1 = param.context;
311
- var ref;
312
- return App === null || App === void 0 ? void 0 : (ref = App.init) === null || ref === void 0 ? void 0 : ref.call(App, context1);
311
+ var _App_init;
312
+ return App === null || App === void 0 ? void 0 : (_App_init = App.init) === null || _App_init === void 0 ? void 0 : _App_init.call(App, context1);
313
313
  }
314
314
  });
315
315
  };
@@ -331,7 +331,7 @@ var bootstrap = function() {
331
331
  2
332
332
  ];
333
333
  ssrData = window._SSR_DATA;
334
- loadersData = (ssrData === null || ssrData === void 0 ? void 0 : (ref = ssrData.data) === null || ref === void 0 ? void 0 : ref.loadersData) || {};
334
+ loadersData = (ssrData === null || ssrData === void 0 ? void 0 : (_ssrData_data = ssrData.data) === null || _ssrData_data === void 0 ? void 0 : _ssrData_data.loadersData) || {};
335
335
  initialLoadersState = Object.keys(loadersData).reduce(function(res, key) {
336
336
  var loaderData = loadersData[key];
337
337
  if (loaderData.loading !== false) {
@@ -347,7 +347,7 @@ var bootstrap = function() {
347
347
  }, ssrData ? {
348
348
  ssrContext: ssrData === null || ssrData === void 0 ? void 0 : ssrData.context
349
349
  } : {}));
350
- context.initialData = ssrData === null || ssrData === void 0 ? void 0 : (ref1 = ssrData.data) === null || ref1 === void 0 ? void 0 : ref1.initialData;
350
+ context.initialData = ssrData === null || ssrData === void 0 ? void 0 : (_ssrData_data1 = ssrData.data) === null || _ssrData_data1 === void 0 ? void 0 : _ssrData_data1.initialData;
351
351
  return [
352
352
  4,
353
353
  runInit(context)
@@ -430,6 +430,7 @@ var bootstrap = function() {
430
430
  if (ssrContext) {
431
431
  ssrContext.res.statusCode = status;
432
432
  ssrContext.res.setHeader("Location", redirectUrl);
433
+ ssrContext.redirection = ssrContext.redirection || {};
433
434
  ssrContext.redirection.status = status;
434
435
  ssrContext.redirection.url = redirectUrl;
435
436
  }
@@ -293,7 +293,7 @@ var createLoader = function(id) {
293
293
  };
294
294
  var createLoaderManager = function(initialDataMap) {
295
295
  var managerOptions = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
296
- var _skipStatic = managerOptions.skipStatic, skipStatic = _skipStatic === void 0 ? false : _skipStatic, _skipNonStatic = managerOptions.skipNonStatic, skipNonStatic = _skipNonStatic === void 0 ? false : _skipNonStatic;
296
+ var _managerOptions_skipStatic = managerOptions.skipStatic, skipStatic = _managerOptions_skipStatic === void 0 ? false : _managerOptions_skipStatic, _managerOptions_skipNonStatic = managerOptions.skipNonStatic, skipNonStatic = _managerOptions_skipNonStatic === void 0 ? false : _managerOptions_skipNonStatic;
297
297
  var loadersMap = /* @__PURE__ */ new Map();
298
298
  var getId = createGetId();
299
299
  var add = function(loaderFn, loaderOptions) {
@@ -342,7 +342,7 @@ var createLoaderManager = function(initialDataMap) {
342
342
  };
343
343
  var awaitPendingLoaders = function() {
344
344
  var _ref = _asyncToGenerator(function() {
345
- var pendingLoaders, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, id, loader, promise;
345
+ var pendingLoaders, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, id, loader, promise;
346
346
  return __generator(this, function(_state) {
347
347
  switch(_state.label){
348
348
  case 0:
@@ -350,7 +350,7 @@ var createLoaderManager = function(initialDataMap) {
350
350
  _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
351
351
  try {
352
352
  for(_iterator = loadersMap[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
353
- _value = _slicedToArray(_step.value, 2), id = _value[0], loader = _value[1];
353
+ _step_value = _slicedToArray(_step.value, 2), id = _step_value[0], loader = _step_value[1];
354
354
  promise = loader.promise;
355
355
  if (_instanceof(promise, Promise)) {
356
356
  pendingLoaders.push([
@@ -120,10 +120,10 @@ var useLoader = function(loaderFn) {
120
120
  delete options._cache;
121
121
  }
122
122
  var load = useCallback(function(params) {
123
- var ref, ref1, ref2, ref3, ref4;
123
+ var _unlistenLoaderChangeRef_current, _window__SSR_DATA_data_loadersData_id, _window__SSR_DATA, _window__SSR_DATA_data, _loaderRef_current;
124
124
  if (typeof params === "undefined") {
125
- var ref5;
126
- return (ref5 = loaderRef.current) === null || ref5 === void 0 ? void 0 : ref5.load();
125
+ var _loaderRef_current1;
126
+ return (_loaderRef_current1 = loaderRef.current) === null || _loaderRef_current1 === void 0 ? void 0 : _loaderRef_current1.load();
127
127
  }
128
128
  var id = loaderManager.add(function() {
129
129
  try {
@@ -139,26 +139,26 @@ var useLoader = function(loaderFn) {
139
139
  params: params
140
140
  }));
141
141
  loaderRef.current = loaderManager.get(id);
142
- (ref = unlistenLoaderChangeRef.current) === null || ref === void 0 ? void 0 : ref.call(unlistenLoaderChangeRef);
142
+ (_unlistenLoaderChangeRef_current = unlistenLoaderChangeRef.current) === null || _unlistenLoaderChangeRef_current === void 0 ? void 0 : _unlistenLoaderChangeRef_current.call(unlistenLoaderChangeRef);
143
143
  if (isSSRRender) {
144
144
  return void 0;
145
145
  }
146
146
  if (options.skip) {
147
147
  return void 0;
148
148
  }
149
- if (context._hydration && ((ref3 = window === null || window === void 0 ? void 0 : (ref1 = window._SSR_DATA) === null || ref1 === void 0 ? void 0 : (ref2 = ref1.data) === null || ref2 === void 0 ? void 0 : ref2.loadersData[id]) === null || ref3 === void 0 ? void 0 : ref3.error) === null) {
149
+ if (context._hydration && ((_window__SSR_DATA_data_loadersData_id = window === null || window === void 0 ? void 0 : (_window__SSR_DATA = window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : (_window__SSR_DATA_data = _window__SSR_DATA.data) === null || _window__SSR_DATA_data === void 0 ? void 0 : _window__SSR_DATA_data.loadersData[id]) === null || _window__SSR_DATA_data_loadersData_id === void 0 ? void 0 : _window__SSR_DATA_data_loadersData_id.error) === null) {
150
150
  return void 0;
151
151
  }
152
152
  var res = loaderRef.current.load();
153
- unlistenLoaderChangeRef.current = (ref4 = loaderRef.current) === null || ref4 === void 0 ? void 0 : ref4.onChange(function(_status, _result) {
153
+ unlistenLoaderChangeRef.current = (_loaderRef_current = loaderRef.current) === null || _loaderRef_current === void 0 ? void 0 : _loaderRef_current.onChange(function(_status, _result) {
154
154
  setResult(_result);
155
155
  if (_status === LoaderStatus.fulfilled) {
156
- var ref;
157
- options === null || options === void 0 ? void 0 : (ref = options.onSuccess) === null || ref === void 0 ? void 0 : ref.call(options, _result.data);
156
+ var _options_onSuccess;
157
+ options === null || options === void 0 ? void 0 : (_options_onSuccess = options.onSuccess) === null || _options_onSuccess === void 0 ? void 0 : _options_onSuccess.call(options, _result.data);
158
158
  }
159
159
  if (_status === LoaderStatus.rejected) {
160
- var ref1;
161
- options === null || options === void 0 ? void 0 : (ref1 = options.onError) === null || ref1 === void 0 ? void 0 : ref1.call(options, _result.error);
160
+ var _options_onError;
161
+ options === null || options === void 0 ? void 0 : (_options_onError = options.onError) === null || _options_onError === void 0 ? void 0 : _options_onError.call(options, _result.error);
162
162
  }
163
163
  });
164
164
  return res;
@@ -167,19 +167,19 @@ var useLoader = function(loaderFn) {
167
167
  ]);
168
168
  useEffect(function() {
169
169
  return function() {
170
- var ref;
171
- (ref = unlistenLoaderChangeRef.current) === null || ref === void 0 ? void 0 : ref.call(unlistenLoaderChangeRef);
170
+ var _unlistenLoaderChangeRef_current;
171
+ (_unlistenLoaderChangeRef_current = unlistenLoaderChangeRef.current) === null || _unlistenLoaderChangeRef_current === void 0 ? void 0 : _unlistenLoaderChangeRef_current.call(unlistenLoaderChangeRef);
172
172
  };
173
173
  }, []);
174
174
  useMemo(function() {
175
- var _params;
176
- var p = (_params = options.params) !== null && _params !== void 0 ? _params : loaderFn.id;
175
+ var _options_params;
176
+ var p = (_options_params = options.params) !== null && _options_params !== void 0 ? _options_params : loaderFn.id;
177
177
  invariant(typeof p !== "undefined" && p !== null, "Params is required in useLoader");
178
178
  load(p);
179
179
  }, [
180
180
  options.params
181
181
  ]);
182
- var ref = _slicedToArray(useState(loaderRef.current.result), 2), result = ref[0], setResult = ref[1];
182
+ var _useState = _slicedToArray(useState(loaderRef.current.result), 2), result = _useState[0], setResult = _useState[1];
183
183
  return _objectSpreadProps(_objectSpread({}, result), {
184
184
  reload: load
185
185
  });
@@ -5,7 +5,7 @@ import { Scripts } from "./Scripts";
5
5
  import { Links } from "./Links";
6
6
  import { DOCUMENT_META_PLACEHOLDER } from "./constants";
7
7
  function Head(props) {
8
- var ref = useContext(DocumentStructureContext), hasSetScripts = ref.hasSetScripts, hasSetLinks = ref.hasSetLinks;
8
+ var _useContext = useContext(DocumentStructureContext), hasSetScripts = _useContext.hasSetScripts, hasSetLinks = _useContext.hasSetLinks;
9
9
  var children = props.children;
10
10
  return /* @__PURE__ */ jsxs("head", {
11
11
  children: [
@@ -19,11 +19,11 @@ function findTargetElement(tag, children) {
19
19
  try {
20
20
  for(var _iterator = children[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
21
21
  var item = _step.value;
22
- var ref;
22
+ var _item_props;
23
23
  if (tag === getEleType(item)) {
24
24
  return item;
25
25
  }
26
- if (item === null || item === void 0 ? void 0 : (ref = item.props) === null || ref === void 0 ? void 0 : ref.children) {
26
+ if (item === null || item === void 0 ? void 0 : (_item_props = item.props) === null || _item_props === void 0 ? void 0 : _item_props.children) {
27
27
  nextChildren = nextChildren.concat(item.props.children);
28
28
  }
29
29
  }
@@ -4,7 +4,7 @@ import { DocumentContext } from "./DocumentContext";
4
4
  import { DOCUMENT_SSR_PLACEHOLDER } from "./constants";
5
5
  function Root(props) {
6
6
  var rootId = props.rootId, children = props.children;
7
- var ref = useContext(DocumentContext), _templateParams = ref.templateParams, _mountId = _templateParams.mountId, mountId = _mountId === void 0 ? "root" : _mountId;
7
+ var _useContext = useContext(DocumentContext), _useContext_templateParams = _useContext.templateParams, _useContext_templateParams_mountId = _useContext_templateParams.mountId, mountId = _useContext_templateParams_mountId === void 0 ? "root" : _useContext_templateParams_mountId;
8
8
  return /* @__PURE__ */ jsxs("div", {
9
9
  id: "".concat(rootId || mountId),
10
10
  children: [
@@ -14,7 +14,7 @@ function Root(props) {
14
14
  });
15
15
  }
16
16
  function DefaultRoot(props) {
17
- var ref = useContext(DocumentContext), _templateParams = ref.templateParams, _mountId = _templateParams.mountId, mountId = _mountId === void 0 ? "root" : _mountId;
17
+ var _useContext = useContext(DocumentContext), _useContext_templateParams = _useContext.templateParams, _useContext_templateParams_mountId = _useContext_templateParams.mountId, mountId = _useContext_templateParams_mountId === void 0 ? "root" : _useContext_templateParams_mountId;
18
18
  return /* @__PURE__ */ jsxs("div", {
19
19
  id: "".concat(mountId),
20
20
  children: [
@@ -184,10 +184,10 @@ import { DocumentContext } from "../DocumentContext";
184
184
  import { DOCUMENT_SCRIPTS_PLACEHOLDER, DOCUMENT_LINKS_PLACEHOLDER, DOCUMENT_FILE_NAME, DOCUMENT_META_PLACEHOLDER, PLACEHOLDER_REPLACER_MAP, DOC_EXT, DOCUMENT_SSR_PLACEHOLDER, DOCUMENT_CHUNKSMAP_PLACEHOLDER, DOCUMENT_SSRDATASCRIPT_PLACEHOLDER, DOCUMENT_SCRIPT_PLACEHOLDER_START, DOCUMENT_SCRIPT_PLACEHOLDER_END, HTML_SEPARATOR } from "../constants";
185
185
  var debug = createDebugger("html_genarate");
186
186
  var getDocumenByEntryName = function getDocumenByEntryName(entrypoints, entryName, fallbackDir) {
187
- var ref;
188
- var entryDir = (ref = entrypoints.find(function(item) {
187
+ var _entrypoints_find;
188
+ var entryDir = (_entrypoints_find = entrypoints.find(function(item) {
189
189
  return item.entryName === entryName;
190
- })) === null || ref === void 0 ? void 0 : ref.absoluteEntryDir;
190
+ })) === null || _entrypoints_find === void 0 ? void 0 : _entrypoints_find.absoluteEntryDir;
191
191
  var entryDirs = DOC_EXT.map(function(item) {
192
192
  return "".concat(entryDir).concat(path.sep).concat(DOCUMENT_FILE_NAME, ".").concat(item);
193
193
  });
@@ -223,7 +223,7 @@ var cli_default = function() {
223
223
  }
224
224
  return __generator(this, function(_state) {
225
225
  documentEntry = function(entryName, templateParameters) {
226
- var ref = api.useAppContext(), entrypoints = ref.entrypoints, internalDirectory = ref.internalDirectory, appDirectory = ref.appDirectory;
226
+ var _api_useAppContext = api.useAppContext(), entrypoints = _api_useAppContext.entrypoints, internalDirectory = _api_useAppContext.internalDirectory, appDirectory = _api_useAppContext.appDirectory;
227
227
  var documentFilePath = getDocumenByEntryName(entrypoints, entryName, appDirectory);
228
228
  if (!documentFilePath) {
229
229
  return null;
@@ -54,8 +54,8 @@ import { getEntryOptions, createRuntimeExportsUtils, PLUGIN_SCHEMAS } from "@mod
54
54
  var PLUGIN_IDENTIFIER = "router";
55
55
  var ROUTES_IDENTIFIER = "routes";
56
56
  var isV5 = function(config) {
57
- var ref, ref1;
58
- return (config === null || config === void 0 ? void 0 : (ref = config.runtime) === null || ref === void 0 ? void 0 : (ref1 = ref.router) === null || ref1 === void 0 ? void 0 : ref1.mode) === "react-router-5";
57
+ var _config_runtime, _config_runtime_router;
58
+ return (config === null || config === void 0 ? void 0 : (_config_runtime = config.runtime) === null || _config_runtime === void 0 ? void 0 : (_config_runtime_router = _config_runtime.router) === null || _config_runtime_router === void 0 ? void 0 : _config_runtime_router.mode) === "react-router-5";
59
59
  };
60
60
  var cli_default = function() {
61
61
  return {
@@ -0,0 +1,2 @@
1
+ function installGlobals() {}
2
+ export { installGlobals };
@@ -0,0 +1,2 @@
1
+ import { installGlobals } from "@remix-run/node";
2
+ export { installGlobals };
@@ -0,0 +1,2 @@
1
+ function installGlobals() {}
2
+ export { installGlobals };
@@ -68,7 +68,7 @@ function modifyRoutes(modifyFunction) {
68
68
  }
69
69
  }
70
70
  var routerPlugin = function(param) {
71
- var _serverBase = param.serverBase, serverBase = _serverBase === void 0 ? [] : _serverBase, _supportHtml5History = param.supportHtml5History, supportHtml5History = _supportHtml5History === void 0 ? true : _supportHtml5History, _basename = param.basename, basename = _basename === void 0 ? "" : _basename, routesConfig = param.routesConfig, createRoutes = param.createRoutes;
71
+ var _param_serverBase = param.serverBase, serverBase = _param_serverBase === void 0 ? [] : _param_serverBase, _param_supportHtml5History = param.supportHtml5History, supportHtml5History = _param_supportHtml5History === void 0 ? true : _param_supportHtml5History, _param_basename = param.basename, basename = _param_basename === void 0 ? "" : _param_basename, routesConfig = param.routesConfig, createRoutes = param.createRoutes;
72
72
  var select = function(pathname) {
73
73
  return serverBase.find(function(baseUrl) {
74
74
  return pathname.search(baseUrl) === 0;
@@ -98,10 +98,10 @@ var routerPlugin = function(param) {
98
98
  }
99
99
  var getRouteApp = function() {
100
100
  return function(props) {
101
- var ref;
101
+ var _window__SERVER_DATA;
102
102
  beforeCreateRouter = true;
103
103
  var routes = createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes(finalRouteConfig));
104
- var baseUrl = ((ref = window._SERVER_DATA) === null || ref === void 0 ? void 0 : ref.router.baseUrl) || select(location.pathname);
104
+ var baseUrl = ((_window__SERVER_DATA = window._SERVER_DATA) === null || _window__SERVER_DATA === void 0 ? void 0 : _window__SERVER_DATA.router.baseUrl) || select(location.pathname);
105
105
  var _basename = baseUrl === "/" ? urlJoin(baseUrl, basename) : baseUrl;
106
106
  var router = supportHtml5History ? createBrowserRouter(routes, {
107
107
  basename: _basename
@@ -227,15 +227,16 @@ var __generator = this && this.__generator || function(thisArg, body) {
227
227
  };
228
228
  }
229
229
  };
230
- import { jsx } from "react/jsx-runtime";
230
+ import { jsx, jsxs } from "react/jsx-runtime";
231
231
  import { useContext } from "react";
232
- import { createStaticHandler } from "@remix-run/router";
232
+ import serialize from "serialize-javascript";
233
+ import { createStaticHandler, isRouteErrorResponse } from "@remix-run/router";
233
234
  import { createStaticRouter, StaticRouterProvider } from "react-router-dom/server";
234
235
  import hoistNonReactStatics from "hoist-non-react-statics";
235
- import { installGlobals } from "@remix-run/node";
236
236
  import { createRoutesFromElements } from "react-router-dom";
237
237
  import { RuntimeReactContext } from "../../core";
238
238
  import { renderRoutes, urlJoin } from "./utils";
239
+ import { installGlobals } from "./fetch";
239
240
  installGlobals();
240
241
  function createFetchRequest(req) {
241
242
  var origin = "".concat(req.protocol, "://").concat(req.host);
@@ -252,8 +253,8 @@ function createFetchHeaders(requestHeaders) {
252
253
  var headers = new Headers();
253
254
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
254
255
  try {
255
- for(var _iterator = Object.entries(requestHeaders)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
256
- var _value = _slicedToArray(_step.value, 2), key = _value[0], values = _value[1];
256
+ for(var _iterator = Object.entries(requestHeaders || {})[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
257
+ var _step_value = _slicedToArray(_step.value, 2), key = _step_value[0], values = _step_value[1];
257
258
  if (values) {
258
259
  if (Array.isArray(values)) {
259
260
  var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
@@ -297,8 +298,47 @@ function createFetchHeaders(requestHeaders) {
297
298
  }
298
299
  return headers;
299
300
  }
301
+ function serializeErrors(errors) {
302
+ if (!errors) {
303
+ return null;
304
+ }
305
+ var entries = Object.entries(errors);
306
+ var serialized = {};
307
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
308
+ try {
309
+ for(var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
310
+ var _step_value = _slicedToArray(_step.value, 2), key = _step_value[0], val = _step_value[1];
311
+ if (isRouteErrorResponse(val)) {
312
+ serialized[key] = _objectSpreadProps(_objectSpread({}, val), {
313
+ __type: "RouteErrorResponse"
314
+ });
315
+ } else if (_instanceof(val, Error)) {
316
+ serialized[key] = {
317
+ message: val.message,
318
+ __type: "Error"
319
+ };
320
+ } else {
321
+ serialized[key] = val;
322
+ }
323
+ }
324
+ } catch (err) {
325
+ _didIteratorError = true;
326
+ _iteratorError = err;
327
+ } finally{
328
+ try {
329
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
330
+ _iterator.return();
331
+ }
332
+ } finally{
333
+ if (_didIteratorError) {
334
+ throw _iteratorError;
335
+ }
336
+ }
337
+ }
338
+ return serialized;
339
+ }
300
340
  var routerPlugin = function(param) {
301
- var _basename = param.basename, basename = _basename === void 0 ? "" : _basename, routesConfig = param.routesConfig, createRoutes = param.createRoutes;
341
+ var _param_basename = param.basename, basename = _param_basename === void 0 ? "" : _param_basename, routesConfig = param.routesConfig, createRoutes = param.createRoutes;
302
342
  return {
303
343
  name: "@modern-js/plugin-router",
304
344
  setup: function() {
@@ -362,13 +402,30 @@ var routerPlugin = function(param) {
362
402
  }
363
403
  var getRouteApp = function() {
364
404
  return function(props) {
365
- var ref = useContext(RuntimeReactContext), router = ref.router, routerContext = ref.routerContext;
366
- return /* @__PURE__ */ jsx(App, _objectSpreadProps(_objectSpread({}, props), {
367
- children: /* @__PURE__ */ jsx(StaticRouterProvider, {
368
- router: router,
369
- context: routerContext,
370
- nonce: "the-nonce"
371
- })
405
+ var _useContext = useContext(RuntimeReactContext), router = _useContext.router, routerContext = _useContext.routerContext;
406
+ var data = {
407
+ loaderData: routerContext.loaderData,
408
+ actionData: routerContext.actionData,
409
+ errors: serializeErrors(routerContext.errors)
410
+ };
411
+ var hydrateScript = "window.__staticRouterHydrationData = ".concat(serialize(data, {
412
+ isJSON: true
413
+ }), ";");
414
+ return /* @__PURE__ */ jsxs(App, _objectSpreadProps(_objectSpread({}, props), {
415
+ children: [
416
+ /* @__PURE__ */ jsx(StaticRouterProvider, {
417
+ router: router,
418
+ context: routerContext,
419
+ hydrate: false
420
+ }),
421
+ /* @__PURE__ */ jsx("script", {
422
+ suppressHydrationWarning: true,
423
+ id: "the-nonce",
424
+ dangerouslySetInnerHTML: {
425
+ __html: hydrateScript
426
+ }
427
+ })
428
+ ]
372
429
  }));
373
430
  };
374
431
  };
@@ -203,9 +203,9 @@ function renderRoutes(routesConfig) {
203
203
  return routeElements;
204
204
  }
205
205
  function getLocation(serverContext) {
206
- var ref;
207
- var ref1 = (serverContext === null || serverContext === void 0 ? void 0 : serverContext.request) || {}, pathname = ref1.pathname, url = ref1.url;
208
- var cleanUrl = (ref = url === null || url === void 0 ? void 0 : url.replace("http://", "")) === null || ref === void 0 ? void 0 : ref.replace("https://", "");
206
+ var _url_replace;
207
+ var _ref = (serverContext === null || serverContext === void 0 ? void 0 : serverContext.request) || {}, pathname = _ref.pathname, url = _ref.url;
208
+ var cleanUrl = (_url_replace = url === null || url === void 0 ? void 0 : url.replace("http://", "")) === null || _url_replace === void 0 ? void 0 : _url_replace.replace("https://", "");
209
209
  var index = (cleanUrl || "").indexOf(pathname);
210
210
  if (index === -1) {
211
211
  return pathname;
@@ -118,7 +118,7 @@ var cli_default = function() {
118
118
  },
119
119
  tools: {
120
120
  webpackChain: function(chain, param) {
121
- var name = param.name, isServer = param.isServer, CHAIN_ID = param.CHAIN_ID;
121
+ var name = param.name, isServer = param.isServer, isServiceWorker = param.isServiceWorker, CHAIN_ID = param.CHAIN_ID;
122
122
  var userConfig = api.useResolvedConfigContext();
123
123
  if (isUseSSRBundle(userConfig) && name !== "server" && hasStringSSREntry(userConfig)) {
124
124
  var LoadableWebpackPlugin = require("@loadable/webpack-plugin");
@@ -128,7 +128,7 @@ var cli_default = function() {
128
128
  }
129
129
  ]);
130
130
  }
131
- var modernVars = _defineProperty({}, "process.env.MODERN_TARGET", JSON.stringify(isServer ? "node" : "browser"));
131
+ var modernVars = _defineProperty({}, "process.env.MODERN_TARGET", JSON.stringify(isServer || isServiceWorker ? "node" : "browser"));
132
132
  chain.plugin(CHAIN_ID.PLUGIN.DEFINE).tap(function(args) {
133
133
  var _args = _toArray(args), vars = _args[0], rest = _args.slice(1);
134
134
  return [
@@ -150,13 +150,13 @@ var cli_default = function() {
150
150
  var entrypoint = param.entrypoint, imports = param.imports;
151
151
  var entryName = entrypoint.entryName, fileSystemRoutes = entrypoint.fileSystemRoutes;
152
152
  var userConfig = api.useResolvedConfigContext();
153
- var ref = api.useAppContext(), packageName = ref.packageName, entrypoints = ref.entrypoints;
153
+ var _api_useAppContext = api.useAppContext(), packageName = _api_useAppContext.packageName, entrypoints = _api_useAppContext.entrypoints;
154
154
  pluginsExportsUtils.addExport("export { default as ssr } from '@modern-js/runtime/ssr'");
155
155
  var ssrConfig = getEntryOptions(entryName, userConfig.server.ssr, userConfig.server.ssrByEntries, packageName);
156
156
  if (typeof ssrConfig === "object" && ssrConfig.mode === "stream") {
157
- var ref1;
157
+ var _runtimeConfig_router;
158
158
  var runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
159
- if ((runtimeConfig === null || runtimeConfig === void 0 ? void 0 : (ref1 = runtimeConfig.router) === null || ref1 === void 0 ? void 0 : ref1.mode) === "react-router-5") {
159
+ if ((runtimeConfig === null || runtimeConfig === void 0 ? void 0 : (_runtimeConfig_router = runtimeConfig.router) === null || _runtimeConfig_router === void 0 ? void 0 : _runtimeConfig_router.mode) === "react-router-5") {
160
160
  throw new Error("router v5 plugin doesn't support streaming SSR, check your config 'runtime.router'");
161
161
  }
162
162
  if (fileSystemRoutes && !entrypoint.nestedRoutesEntry) {
@@ -188,7 +188,7 @@ var ssr = function(config) {
188
188
  return {
189
189
  client: function() {
190
190
  var _ref = _asyncToGenerator(function(param) {
191
- var App, context, ModernRender, ModernHydrate, ref, hydrateContext, callback, renderLevel;
191
+ var App, context, ModernRender, ModernHydrate, _window__SSR_DATA, hydrateContext, callback, renderLevel;
192
192
  function stringSSRHydrate() {
193
193
  if (renderLevel === RenderLevel.CLIENT_RENDER || renderLevel === RenderLevel.SERVER_PREFETCH) {
194
194
  ModernRender(/* @__PURE__ */ jsx(App, {
@@ -248,7 +248,7 @@ var ssr = function(config) {
248
248
  callback = function() {
249
249
  delete hydrateContext._hydration;
250
250
  };
251
- renderLevel = (window === null || window === void 0 ? void 0 : (ref = window._SSR_DATA) === null || ref === void 0 ? void 0 : ref.renderLevel) || RenderLevel.CLIENT_RENDER;
251
+ renderLevel = (window === null || window === void 0 ? void 0 : (_window__SSR_DATA = window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : _window__SSR_DATA.renderLevel) || RenderLevel.CLIENT_RENDER;
252
252
  if (isReact18() && config.mode === "stream") {
253
253
  return [
254
254
  2,
@@ -267,8 +267,8 @@ var ssr = function(config) {
267
267
  }(),
268
268
  init: function init(param, next) {
269
269
  var context = param.context;
270
- var ref, ref1;
271
- var request = window === null || window === void 0 ? void 0 : (ref = window._SSR_DATA) === null || ref === void 0 ? void 0 : (ref1 = ref.context) === null || ref1 === void 0 ? void 0 : ref1.request;
270
+ var _window__SSR_DATA, _window__SSR_DATA_context;
271
+ var request = window === null || window === void 0 ? void 0 : (_window__SSR_DATA = window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : (_window__SSR_DATA_context = _window__SSR_DATA.context) === null || _window__SSR_DATA_context === void 0 ? void 0 : _window__SSR_DATA_context.request;
272
272
  if (!request) {
273
273
  context.ssrContext = _objectSpreadProps(_objectSpread({}, context.ssrContext), {
274
274
  response: mockResp,
@@ -286,8 +286,8 @@ var ssr = function(config) {
286
286
  },
287
287
  pickContext: function(param, next) {
288
288
  var context = param.context, pickedContext = param.pickedContext;
289
- var ref, ref1;
290
- var request = window === null || window === void 0 ? void 0 : (ref = window._SSR_DATA) === null || ref === void 0 ? void 0 : (ref1 = ref.context) === null || ref1 === void 0 ? void 0 : ref1.request;
289
+ var _window__SSR_DATA, _window__SSR_DATA_context;
290
+ var request = window === null || window === void 0 ? void 0 : (_window__SSR_DATA = window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : (_window__SSR_DATA_context = _window__SSR_DATA.context) === null || _window__SSR_DATA_context === void 0 ? void 0 : _window__SSR_DATA_context.request;
291
291
  var initialData = context.initialData;
292
292
  if (!request) {
293
293
  return next({
@@ -220,7 +220,7 @@ var ssr = function() {
220
220
  },
221
221
  pickContext: function(param, next) {
222
222
  var context = param.context, pickedContext = param.pickedContext;
223
- var ref = context === null || context === void 0 ? void 0 : context.ssrContext, request = ref.request, response = ref.response;
223
+ var _ref = context === null || context === void 0 ? void 0 : context.ssrContext, request = _ref.request, response = _ref.response;
224
224
  var initialData = context.initialData;
225
225
  return next({
226
226
  context: context,
@@ -132,7 +132,7 @@ var prefetch = function() {
132
132
  return [
133
133
  2,
134
134
  run(context.ssrContext.request.headers, /*#__PURE__*/ _asyncToGenerator(function() {
135
- var ref, ssrContext, loadableStats, extractor, loadersData;
135
+ var _context_store, ssrContext, loadableStats, extractor, loadersData;
136
136
  return __generator(this, function(_state) {
137
137
  switch(_state.label){
138
138
  case 0:
@@ -182,7 +182,7 @@ var prefetch = function() {
182
182
  loadersData: loadersData,
183
183
  initialData: context.initialData,
184
184
  i18nData: context.__i18nData__,
185
- storeState: context === null || context === void 0 ? void 0 : (ref = context.store) === null || ref === void 0 ? void 0 : ref.getState()
185
+ storeState: context === null || context === void 0 ? void 0 : (_context_store = context.store) === null || _context_store === void 0 ? void 0 : _context_store.getState()
186
186
  }
187
187
  ];
188
188
  }