@modern-js/runtime 2.0.0-beta.4 → 2.0.0-beta.5

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 (93) hide show
  1. package/dist/js/modern/document/Body.js +2 -2
  2. package/dist/js/modern/document/Root.js +1 -1
  3. package/dist/js/modern/router/cli/index.js +7 -9
  4. package/dist/js/modern/router/runtime/plugin.js +10 -1
  5. package/dist/js/modern/router/runtime/utils.js +8 -4
  6. package/dist/js/modern/ssr/cli/index.js +2 -2
  7. package/dist/js/node/cli/index.js +13 -11
  8. package/dist/js/node/common.js +7 -3
  9. package/dist/js/node/core/app-config.js +8 -3
  10. package/dist/js/node/core/compatible.js +41 -37
  11. package/dist/js/node/core/index.js +17 -6
  12. package/dist/js/node/core/loader/index.js +7 -3
  13. package/dist/js/node/core/loader/loaderManager.js +19 -14
  14. package/dist/js/node/core/loader/useLoader.js +22 -22
  15. package/dist/js/node/core/plugin.js +17 -10
  16. package/dist/js/node/document/Body.js +8 -4
  17. package/dist/js/node/document/DocumentContext.js +7 -3
  18. package/dist/js/node/document/DocumentStructrueContext.js +7 -3
  19. package/dist/js/node/document/Head.js +8 -3
  20. package/dist/js/node/document/Html.js +7 -3
  21. package/dist/js/node/document/Root.js +9 -4
  22. package/dist/js/node/document/Script.js +7 -3
  23. package/dist/js/node/document/Scripts.js +7 -3
  24. package/dist/js/node/document/cli/index.js +28 -28
  25. package/dist/js/node/document/constants.js +20 -3
  26. package/dist/js/node/document/index.js +11 -11
  27. package/dist/js/node/exports/head.js +6 -4
  28. package/dist/js/node/exports/loadable.js +6 -4
  29. package/dist/js/node/exports/server.js +7 -3
  30. package/dist/js/node/exports/styled.js +6 -4
  31. package/dist/js/node/index.js +15 -3
  32. package/dist/js/node/router/cli/index.js +29 -31
  33. package/dist/js/node/router/index.js +8 -4
  34. package/dist/js/node/router/runtime/DefaultNotFound.js +7 -3
  35. package/dist/js/node/router/runtime/index.js +9 -5
  36. package/dist/js/node/router/runtime/plugin.js +34 -22
  37. package/dist/js/node/router/runtime/plugin.node.js +37 -34
  38. package/dist/js/node/router/runtime/root/index.js +7 -3
  39. package/dist/js/node/router/runtime/root/load.js +14 -8
  40. package/dist/js/node/router/runtime/server.js +3 -3
  41. package/dist/js/node/router/runtime/types.js +15 -0
  42. package/dist/js/node/router/runtime/utils.js +48 -38
  43. package/dist/js/node/router/runtime/withRouter.js +24 -22
  44. package/dist/js/node/runtime-context.js +8 -3
  45. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +109 -128
  46. package/dist/js/node/ssr/cli/index.js +21 -21
  47. package/dist/js/node/ssr/index.js +34 -32
  48. package/dist/js/node/ssr/index.node.js +30 -28
  49. package/dist/js/node/ssr/prefetch.js +11 -9
  50. package/dist/js/node/ssr/react/index.js +8 -3
  51. package/dist/js/node/ssr/react/nossr/index.js +7 -3
  52. package/dist/js/node/ssr/react/prerender/index.js +24 -22
  53. package/dist/js/node/ssr/react/prerender/type.js +15 -0
  54. package/dist/js/node/ssr/react/prerender/util.js +11 -3
  55. package/dist/js/node/ssr/react/withCallback/index.js +7 -3
  56. package/dist/js/node/ssr/serverRender/helmet.js +5 -3
  57. package/dist/js/node/ssr/serverRender/index.js +8 -6
  58. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +7 -3
  59. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +8 -3
  60. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +7 -3
  61. package/dist/js/node/ssr/serverRender/renderToStream/index.js +14 -10
  62. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +7 -3
  63. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +22 -22
  64. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +7 -3
  65. package/dist/js/node/ssr/serverRender/renderToStream/template.js +7 -3
  66. package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
  67. package/dist/js/node/ssr/serverRender/renderToString/entry.js +19 -17
  68. package/dist/js/node/ssr/serverRender/renderToString/index.js +13 -9
  69. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +7 -3
  70. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +7 -3
  71. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +7 -3
  72. package/dist/js/node/ssr/serverRender/renderToString/template.js +8 -3
  73. package/dist/js/node/ssr/serverRender/renderToString/type.js +7 -3
  74. package/dist/js/node/ssr/serverRender/types.js +7 -3
  75. package/dist/js/node/ssr/serverRender/utils.js +8 -3
  76. package/dist/js/node/ssr/utils.js +25 -19
  77. package/dist/js/node/state/cli/index.js +5 -3
  78. package/dist/js/node/state/index.js +8 -4
  79. package/dist/js/node/state/plugins.js +10 -3
  80. package/dist/js/node/state/runtime/index.js +10 -5
  81. package/dist/js/node/state/runtime/plugin.js +23 -23
  82. package/dist/js/node/state/types.js +15 -0
  83. package/dist/js/treeshaking/document/Body.js +2 -2
  84. package/dist/js/treeshaking/document/Root.js +1 -1
  85. package/dist/js/treeshaking/router/cli/index.js +7 -9
  86. package/dist/js/treeshaking/router/runtime/plugin.js +11 -1
  87. package/dist/js/treeshaking/router/runtime/utils.js +8 -4
  88. package/dist/js/treeshaking/ssr/cli/index.js +2 -2
  89. package/dist/types/router/runtime/plugin.d.ts +1 -1
  90. package/dist/types/router/runtime/types.d.ts +1 -1
  91. package/package.json +14 -11
  92. package/types/index.d.ts +2 -2
  93. package/types/router.d.ts +2 -2
@@ -1,7 +1,21 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
4
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
5
19
  var __export = (target, all) => {
6
20
  for (var name in all)
7
21
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -15,31 +29,15 @@ var __copyProps = (to, from, except, desc) => {
15
29
  return to;
16
30
  };
17
31
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var stdin_exports = {};
19
- __export(stdin_exports, {
32
+ var utils_exports = {};
33
+ __export(utils_exports, {
20
34
  formatClient: () => formatClient,
21
35
  formatServer: () => formatServer,
22
36
  isCrossOrigin: () => isCrossOrigin,
23
37
  isReact18: () => isReact18,
24
38
  mockResponse: () => mockResponse
25
39
  });
26
- module.exports = __toCommonJS(stdin_exports);
27
- var __defProp2 = Object.defineProperty;
28
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
29
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
30
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
31
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
32
- var __spreadValues = (a, b) => {
33
- for (var prop in b || (b = {}))
34
- if (__hasOwnProp2.call(b, prop))
35
- __defNormalProp(a, prop, b[prop]);
36
- if (__getOwnPropSymbols)
37
- for (var prop of __getOwnPropSymbols(b)) {
38
- if (__propIsEnum.call(b, prop))
39
- __defNormalProp(a, prop, b[prop]);
40
- }
41
- return a;
42
- };
40
+ module.exports = __toCommonJS(utils_exports);
43
41
  const isReact18 = () => process.env.IS_REACT18 === "true";
44
42
  const formatServer = (request) => {
45
43
  const {
@@ -98,3 +96,11 @@ const isCrossOrigin = (url = "", base) => {
98
96
  return false;
99
97
  }
100
98
  };
99
+ // Annotate the CommonJS export names for ESM import in node:
100
+ 0 && (module.exports = {
101
+ formatClient,
102
+ formatServer,
103
+ isCrossOrigin,
104
+ isReact18,
105
+ mockResponse
106
+ });
@@ -15,11 +15,11 @@ var __copyProps = (to, from, except, desc) => {
15
15
  return to;
16
16
  };
17
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
- var stdin_exports = {};
19
- __export(stdin_exports, {
18
+ var cli_exports = {};
19
+ __export(cli_exports, {
20
20
  default: () => cli_default
21
21
  });
22
- module.exports = __toCommonJS(stdin_exports);
22
+ module.exports = __toCommonJS(cli_exports);
23
23
  var import_utils = require("@modern-js/utils");
24
24
  const PLUGIN_IDENTIFIER = "state";
25
25
  var cli_default = () => ({
@@ -96,3 +96,5 @@ var cli_default = () => ({
96
96
  };
97
97
  }
98
98
  });
99
+ // Annotate the CommonJS export names for ESM import in node:
100
+ 0 && (module.exports = {});
@@ -22,12 +22,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
22
  mod
23
23
  ));
24
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
- var stdin_exports = {};
26
- __export(stdin_exports, {
25
+ var state_exports = {};
26
+ __export(state_exports, {
27
27
  default: () => import_runtime2.default,
28
28
  state: () => import_runtime.default
29
29
  });
30
- module.exports = __toCommonJS(stdin_exports);
30
+ module.exports = __toCommonJS(state_exports);
31
31
  var import_runtime = __toESM(require("./runtime"));
32
32
  var import_runtime2 = __toESM(require("./runtime"));
33
- __reExport(stdin_exports, require("./runtime"), module.exports);
33
+ __reExport(state_exports, require("./runtime"), module.exports);
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ state
37
+ });
@@ -21,14 +21,14 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
21
21
  mod
22
22
  ));
23
23
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
- var stdin_exports = {};
25
- __export(stdin_exports, {
24
+ var plugins_exports = {};
25
+ __export(plugins_exports, {
26
26
  autoActions: () => autoActions,
27
27
  devtools: () => import_plugin_devtools.default,
28
28
  effects: () => effects,
29
29
  immer: () => immer
30
30
  });
31
- module.exports = __toCommonJS(stdin_exports);
31
+ module.exports = __toCommonJS(plugins_exports);
32
32
  var import_plugin_effects = require("@modern-js-reduck/plugin-effects");
33
33
  var import_plugin_auto_actions = __toESM(require("@modern-js-reduck/plugin-auto-actions"));
34
34
  var import_plugin_immutable = __toESM(require("@modern-js-reduck/plugin-immutable"));
@@ -36,3 +36,10 @@ var import_plugin_devtools = __toESM(require("@modern-js-reduck/plugin-devtools"
36
36
  const effects = () => import_plugin_effects.plugin;
37
37
  const immer = () => import_plugin_immutable.default;
38
38
  const autoActions = () => import_plugin_auto_actions.default;
39
+ // Annotate the CommonJS export names for ESM import in node:
40
+ 0 && (module.exports = {
41
+ autoActions,
42
+ devtools,
43
+ effects,
44
+ immer
45
+ });
@@ -22,14 +22,19 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
22
  mod
23
23
  ));
24
24
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
- var stdin_exports = {};
26
- __export(stdin_exports, {
25
+ var runtime_exports = {};
26
+ __export(runtime_exports, {
27
27
  createStore: () => import_store.createStore,
28
28
  default: () => import_plugin.default,
29
29
  model: () => import_store.model
30
30
  });
31
- module.exports = __toCommonJS(stdin_exports);
32
- __reExport(stdin_exports, require("@modern-js-reduck/react"), module.exports);
31
+ module.exports = __toCommonJS(runtime_exports);
32
+ __reExport(runtime_exports, require("@modern-js-reduck/react"), module.exports);
33
33
  var import_store = require("@modern-js-reduck/store");
34
34
  var import_plugin = __toESM(require("./plugin"));
35
- __reExport(stdin_exports, require("./plugin"), module.exports);
35
+ __reExport(runtime_exports, require("./plugin"), module.exports);
36
+ // Annotate the CommonJS export names for ESM import in node:
37
+ 0 && (module.exports = {
38
+ createStore,
39
+ model
40
+ });
@@ -1,9 +1,26 @@
1
1
  var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
8
  var __getProtoOf = Object.getPrototypeOf;
6
9
  var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7
24
  var __export = (target, all) => {
8
25
  for (var name in all)
9
26
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -22,11 +39,11 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
22
39
  mod
23
40
  ));
24
41
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
- var stdin_exports = {};
26
- __export(stdin_exports, {
42
+ var plugin_exports = {};
43
+ __export(plugin_exports, {
27
44
  default: () => plugin_default
28
45
  });
29
- module.exports = __toCommonJS(stdin_exports);
46
+ module.exports = __toCommonJS(plugin_exports);
30
47
  var import_jsx_runtime = require("react/jsx-runtime");
31
48
  var import_react = require("react");
32
49
  var import_store = require("@modern-js-reduck/store");
@@ -35,26 +52,7 @@ var import_hoist_non_react_statics = __toESM(require("hoist-non-react-statics"))
35
52
  var import_plugins = require("../plugins");
36
53
  var import_core = require("../../core");
37
54
  var import_common = require("../../common");
38
- __reExport(stdin_exports, require("../plugins"), module.exports);
39
- var __defProp2 = Object.defineProperty;
40
- var __defProps = Object.defineProperties;
41
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
42
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
43
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
44
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
45
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
46
- var __spreadValues = (a, b) => {
47
- for (var prop in b || (b = {}))
48
- if (__hasOwnProp2.call(b, prop))
49
- __defNormalProp(a, prop, b[prop]);
50
- if (__getOwnPropSymbols)
51
- for (var prop of __getOwnPropSymbols(b)) {
52
- if (__propIsEnum.call(b, prop))
53
- __defNormalProp(a, prop, b[prop]);
54
- }
55
- return a;
56
- };
57
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
55
+ __reExport(plugin_exports, require("../plugins"), module.exports);
58
56
  const StatePluginHandleMap = {
59
57
  immer: import_plugins.immer,
60
58
  effects: import_plugins.effects,
@@ -119,3 +117,5 @@ const state = (config) => ({
119
117
  }
120
118
  });
121
119
  var plugin_default = state;
120
+ // Annotate the CommonJS export names for ESM import in node:
121
+ 0 && (module.exports = {});
@@ -0,0 +1,15 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+ var types_exports = {};
15
+ module.exports = __toCommonJS(types_exports);
@@ -1,4 +1,4 @@
1
- import { jsxs } from "react/jsx-runtime";
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useContext } from "react";
3
3
  import { DOCUMENT_CHUNKSMAP_PLACEHOLDER, DOCUMENT_SSRDATASCRIPT_PLACEHOLDER } from "./constants";
4
4
  import { DocumentStructrueContext } from "./DocumentStructrueContext";
@@ -8,7 +8,7 @@ function Body(props) {
8
8
  var children = props.children;
9
9
  return /* @__PURE__ */ jsxs("body", {
10
10
  children: [
11
- hasSetRoot ? null : DefaultRoot,
11
+ hasSetRoot ? null : /* @__PURE__ */ jsx(DefaultRoot, {}),
12
12
  children,
13
13
  "".concat(DOCUMENT_CHUNKSMAP_PLACEHOLDER),
14
14
  "".concat(DOCUMENT_SSRDATASCRIPT_PLACEHOLDER)
@@ -14,7 +14,7 @@ function Root(props) {
14
14
  });
15
15
  }
16
16
  function DefaultRoot(props) {
17
- var ref = useContext(DocumentContext), mountId = ref.templateParams.mountId;
17
+ var ref = useContext(DocumentContext), _templateParams = ref.templateParams, _mountId = _templateParams.mountId, mountId = _mountId === void 0 ? "root" : _mountId;
18
18
  return /* @__PURE__ */ jsxs("div", {
19
19
  id: "".concat(mountId),
20
20
  children: [
@@ -53,6 +53,10 @@ function _objectSpreadProps(target, source) {
53
53
  import { getEntryOptions, createRuntimeExportsUtils, PLUGIN_SCHEMAS } from "@modern-js/utils";
54
54
  var PLUGIN_IDENTIFIER = "router";
55
55
  var ROUTES_IDENTIFIER = "routes";
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";
59
+ };
56
60
  var cli_default = function() {
57
61
  return {
58
62
  name: "@modern-js/plugin-router",
@@ -79,15 +83,13 @@ var cli_default = function() {
79
83
  },
80
84
  modifyEntryImports: function modifyEntryImports(param) {
81
85
  var entrypoint = param.entrypoint, imports = param.imports;
82
- var ref, ref1;
83
86
  var entryName = entrypoint.entryName, fileSystemRoutes = entrypoint.fileSystemRoutes;
84
87
  var userConfig = api.useResolvedConfigContext();
85
- var isLegacy = Boolean(userConfig === null || userConfig === void 0 ? void 0 : (ref = userConfig.runtime) === null || ref === void 0 ? void 0 : (ref1 = ref.router) === null || ref1 === void 0 ? void 0 : ref1.legacy);
86
88
  var packageName = api.useAppContext().packageName;
87
89
  var runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
88
90
  runtimeConfigMap.set(entryName, runtimeConfig);
89
91
  if (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : runtimeConfig.router) {
90
- if (!isLegacy) {
92
+ if (!isV5(userConfig)) {
91
93
  imports.push({
92
94
  value: "@modern-js/runtime/plugins",
93
95
  specifiers: [
@@ -107,13 +109,11 @@ var cli_default = function() {
107
109
  },
108
110
  modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(param) {
109
111
  var entrypoint = param.entrypoint, plugins = param.plugins;
110
- var ref, ref1;
111
112
  var entryName = entrypoint.entryName, fileSystemRoutes = entrypoint.fileSystemRoutes;
112
113
  var serverRoutes = api.useAppContext().serverRoutes;
113
114
  var userConfig = api.useResolvedConfigContext();
114
- var isLegacy = Boolean(userConfig === null || userConfig === void 0 ? void 0 : (ref = userConfig.runtime) === null || ref === void 0 ? void 0 : (ref1 = ref.router) === null || ref1 === void 0 ? void 0 : ref1.legacy);
115
115
  var runtimeConfig = runtimeConfigMap.get(entryName);
116
- if (runtimeConfig.router && !isLegacy) {
116
+ if (runtimeConfig.router && !isV5(userConfig)) {
117
117
  var serverBase = serverRoutes.filter(function(route) {
118
118
  return route.entryName === entryName;
119
119
  }).map(function(route) {
@@ -136,10 +136,8 @@ var cli_default = function() {
136
136
  };
137
137
  },
138
138
  addRuntimeExports: function addRuntimeExports() {
139
- var ref, ref1;
140
139
  var userConfig = api.useResolvedConfigContext();
141
- var isLegacy = Boolean(userConfig === null || userConfig === void 0 ? void 0 : (ref = userConfig.runtime) === null || ref === void 0 ? void 0 : (ref1 = ref.router) === null || ref1 === void 0 ? void 0 : ref1.legacy);
142
- if (!isLegacy) {
140
+ if (!isV5(userConfig)) {
143
141
  pluginsExportsUtils.addExport("export { default as router } from '@modern-js/runtime/router'");
144
142
  }
145
143
  }
@@ -51,7 +51,7 @@ function _objectSpreadProps(target, source) {
51
51
  return target;
52
52
  }
53
53
  import { jsx } from "react/jsx-runtime";
54
- import { createBrowserRouter, createHashRouter, RouterProvider, createRoutesFromElements } from "react-router-dom";
54
+ import { createBrowserRouter, createHashRouter, RouterProvider, createRoutesFromElements, useMatches, useLocation } from "react-router-dom";
55
55
  import hoistNonReactStatics from "hoist-non-react-statics";
56
56
  import { renderRoutes, urlJoin } from "./utils";
57
57
  var finalRouteConfig = {
@@ -79,6 +79,16 @@ var routerPlugin = function(param) {
79
79
  name: "@modern-js/plugin-router",
80
80
  setup: function() {
81
81
  return {
82
+ init: function init(param, next) {
83
+ var context = param.context;
84
+ context.router = {
85
+ useMatches: useMatches,
86
+ useLocation: useLocation
87
+ };
88
+ return next({
89
+ context: context
90
+ });
91
+ },
82
92
  hoc: function(param, next) {
83
93
  var App = param.App;
84
94
  if (!finalRouteConfig && !createRoutes) {
@@ -84,9 +84,6 @@ import { DefaultNotFound } from "./DefaultNotFound";
84
84
  import { RootLayout } from "./root";
85
85
  var renderNestedRoute = function(nestedRoute, parent) {
86
86
  var children = nestedRoute.children, index = nestedRoute.index, id = nestedRoute.id, Component = nestedRoute.component;
87
- var childElements = children === null || children === void 0 ? void 0 : children.map(function(childRoute) {
88
- return renderNestedRoute(childRoute, nestedRoute);
89
- });
90
87
  var routeProps = {
91
88
  caseSensitive: nestedRoute.caseSensitive,
92
89
  path: nestedRoute.path,
@@ -112,11 +109,15 @@ var renderNestedRoute = function(nestedRoute, parent) {
112
109
  fallback: /* @__PURE__ */ jsx(Loading, {}),
113
110
  children: /* @__PURE__ */ jsx(Component, {})
114
111
  });
115
- } else {
112
+ } else if (!(parent === null || parent === void 0 ? void 0 : parent.index)) {
116
113
  element = /* @__PURE__ */ jsx(Suspense, {
117
114
  children: /* @__PURE__ */ jsx(Component, {})
118
115
  });
116
+ } else {
117
+ element = /* @__PURE__ */ jsx(Component, {});
119
118
  }
119
+ } else {
120
+ nestedRoute.loading = parent === null || parent === void 0 ? void 0 : parent.loading;
120
121
  }
121
122
  if (!parent && element) {
122
123
  element = /* @__PURE__ */ jsx(RootLayout, {
@@ -129,6 +130,9 @@ var renderNestedRoute = function(nestedRoute, parent) {
129
130
  if (element) {
130
131
  routeProps.element = element;
131
132
  }
133
+ var childElements = children === null || children === void 0 ? void 0 : children.map(function(childRoute) {
134
+ return renderNestedRoute(childRoute, nestedRoute);
135
+ });
132
136
  var routeElement = index ? /* @__PURE__ */ jsx(Route, _objectSpreadProps(_objectSpread({}, routeProps), {
133
137
  index: true
134
138
  }), id) : /* @__PURE__ */ jsx(Route, _objectSpreadProps(_objectSpread({}, routeProps), {
@@ -157,8 +157,8 @@ var cli_default = function() {
157
157
  if (typeof ssrConfig === "object" && ssrConfig.mode === "stream") {
158
158
  var ref1;
159
159
  var runtimeConfig = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName);
160
- if (runtimeConfig === null || runtimeConfig === void 0 ? void 0 : (ref1 = runtimeConfig.router) === null || ref1 === void 0 ? void 0 : ref1.legacy) {
161
- throw new Error("Legacy router plugin doesn't support streaming SSR, check your config 'runtime.router'");
160
+ if ((runtimeConfig === null || runtimeConfig === void 0 ? void 0 : (ref1 = runtimeConfig.router) === null || ref1 === void 0 ? void 0 : ref1.mode) === "react-router-5") {
161
+ throw new Error("router v5 plugin doesn't support streaming SSR, check your config 'runtime.router'");
162
162
  }
163
163
  if (fileSystemRoutes && !entrypoint.nestedRoutesEntry) {
164
164
  throw new Error("You should switch to file-system based router to support streaming SSR.");
@@ -1,4 +1,4 @@
1
- import type { Plugin } from '../../core';
1
+ import { Plugin } from '../../core';
2
2
  import type { RouterConfig, Routes } from './types';
3
3
  export declare let finalRouteConfig: RouterConfig['routesConfig'];
4
4
  export declare let beforeCreateRouter: boolean;
@@ -27,7 +27,7 @@ export declare type SingleRouteConfig = RouteProps & {
27
27
  component?: React.ComponentType;
28
28
  };
29
29
  export declare type RouterConfig = {
30
- legacy?: boolean;
30
+ mode?: 'react-router-5';
31
31
  routesConfig: {
32
32
  globalApp?: React.ComponentType<any>;
33
33
  routes: (NestedRoute | PageRoute)[];
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "2.0.0-beta.4",
14
+ "version": "2.0.0-beta.5",
15
15
  "engines": {
16
16
  "node": ">=14.17.6"
17
17
  },
@@ -94,6 +94,9 @@
94
94
  "loadable": [
95
95
  "./dist/types/exports/loadable.d.ts"
96
96
  ],
97
+ "cli": [
98
+ "./dist/types/cli/index.d.ts"
99
+ ],
97
100
  "head": [
98
101
  "./dist/types/exports/head.d.ts"
99
102
  ],
@@ -137,6 +140,9 @@
137
140
  "@modern-js-reduck/plugin-immutable": "^1.1.4",
138
141
  "@modern-js-reduck/react": "^1.1.4",
139
142
  "@modern-js-reduck/store": "^1.1.4",
143
+ "@modern-js/plugin": "2.0.0-beta.4",
144
+ "@modern-js/types": "2.0.0-beta.4",
145
+ "@modern-js/utils": "2.0.0-beta.4",
140
146
  "@types/loadable__component": "^5.13.4",
141
147
  "@types/react-helmet": "^6.1.2",
142
148
  "@types/redux-logger": "^3.0.9",
@@ -151,16 +157,18 @@
151
157
  "react-side-effect": "^2.1.1",
152
158
  "redux-logger": "^3.0.6",
153
159
  "serialize-javascript": "^6.0.0",
154
- "styled-components": "^5.3.1",
155
- "@modern-js/plugin": "2.0.0-beta.4",
156
- "@modern-js/utils": "2.0.0-beta.4",
157
- "@modern-js/types": "2.0.0-beta.4"
160
+ "styled-components": "^5.3.1"
158
161
  },
159
162
  "peerDependencies": {
160
163
  "react": ">=17",
161
164
  "react-dom": ">=17"
162
165
  },
163
166
  "devDependencies": {
167
+ "@modern-js/core": "2.0.0-beta.4",
168
+ "@modern-js/server-core": "2.0.0-beta.4",
169
+ "@scripts/build": "2.0.0-beta.4",
170
+ "@modern-js/app-tools": "2.0.0-beta.4",
171
+ "@scripts/jest-config": "2.0.0-beta.4",
164
172
  "@testing-library/react": "^13.4.0",
165
173
  "@testing-library/react-hooks": "^8.0.1",
166
174
  "@remix-run/web-fetch": "^4.1.3",
@@ -174,12 +182,7 @@
174
182
  "react": "^18",
175
183
  "react-dom": "^18",
176
184
  "ts-jest": "^27.0.4",
177
- "typescript": "^4",
178
- "@modern-js/core": "2.0.0-beta.4",
179
- "@modern-js/server-core": "2.0.0-beta.4",
180
- "@scripts/build": "2.0.0-beta.4",
181
- "@modern-js/app-tools": "2.0.0-beta.4",
182
- "@scripts/jest-config": "2.0.0-beta.4"
185
+ "typescript": "^4"
183
186
  },
184
187
  "sideEffects": false,
185
188
  "modernConfig": {},
package/types/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { StateConfig } from '../dist/types';
2
2
 
3
- declare module '@modern-js/core/config' {
4
- interface RuntimeConfig {
3
+ declare module '@modern-js/app-tools' {
4
+ interface RuntimeUserConfig {
5
5
  state?: StateConfig | boolean;
6
6
  }
7
7
  }
package/types/router.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { RouterConfig } from '../dist/types';
2
2
  import '../dist/types/router';
3
3
 
4
- declare module '@modern-js/core/config' {
5
- interface RuntimeConfig {
4
+ declare module '@modern-js/app-tools' {
5
+ interface RuntimeUserConfig {
6
6
  router?: RouterConfig | boolean;
7
7
  }
8
8
  }