@modern-js/runtime 2.48.3 → 2.48.4-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 (232) hide show
  1. package/dist/cjs/ssr/index.js +1 -1
  2. package/dist/esm/ssr/index.js +1 -1
  3. package/dist/esm-node/ssr/index.js +1 -1
  4. package/dist/js/modern/cli/index.js +72 -0
  5. package/dist/js/modern/common.js +4 -0
  6. package/dist/js/modern/config.js +0 -0
  7. package/dist/js/modern/core/app-config.js +10 -0
  8. package/dist/js/modern/core/compatible.js +285 -0
  9. package/dist/js/modern/core/index.js +16 -0
  10. package/dist/js/modern/core/loader/index.js +4 -0
  11. package/dist/js/modern/core/loader/loaderManager.js +165 -0
  12. package/dist/js/modern/core/loader/useLoader.js +114 -0
  13. package/dist/js/modern/core/plugin.js +58 -0
  14. package/dist/js/modern/document/Body.js +23 -0
  15. package/dist/js/modern/document/DocumentContext.js +9 -0
  16. package/dist/js/modern/document/DocumentStructrueContext.js +11 -0
  17. package/dist/js/modern/document/Head.js +27 -0
  18. package/dist/js/modern/document/Html.js +78 -0
  19. package/dist/js/modern/document/Links.js +10 -0
  20. package/dist/js/modern/document/Root.js +33 -0
  21. package/dist/js/modern/document/Script.js +20 -0
  22. package/dist/js/modern/document/Scripts.js +10 -0
  23. package/dist/js/modern/document/cli/index.js +228 -0
  24. package/dist/js/modern/document/constants.js +49 -0
  25. package/dist/js/modern/document/index.js +10 -0
  26. package/dist/js/modern/exports/head.js +6 -0
  27. package/dist/js/modern/exports/loadable.js +6 -0
  28. package/dist/js/modern/exports/server.js +4 -0
  29. package/dist/js/modern/exports/styled.js +6 -0
  30. package/dist/js/modern/index.js +22 -0
  31. package/dist/js/modern/router/cli/index.js +120 -0
  32. package/dist/js/modern/router/index.js +7 -0
  33. package/dist/js/modern/router/runtime/DefaultNotFound.js +14 -0
  34. package/dist/js/modern/router/runtime/index.js +9 -0
  35. package/dist/js/modern/router/runtime/plugin.js +104 -0
  36. package/dist/js/modern/router/runtime/plugin.node.js +149 -0
  37. package/dist/js/modern/router/runtime/server.js +1 -0
  38. package/dist/js/modern/router/runtime/types.js +0 -0
  39. package/dist/js/modern/router/runtime/utils.js +196 -0
  40. package/dist/js/modern/router/runtime/withRouter.js +36 -0
  41. package/dist/js/modern/runtime-context.js +7 -0
  42. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
  43. package/dist/js/modern/ssr/cli/index.js +172 -0
  44. package/dist/js/modern/ssr/index.js +159 -0
  45. package/dist/js/modern/ssr/index.node.js +79 -0
  46. package/dist/js/modern/ssr/prefetch.js +69 -0
  47. package/dist/js/modern/ssr/react/index.js +6 -0
  48. package/dist/js/modern/ssr/react/nossr/index.js +14 -0
  49. package/dist/js/modern/ssr/react/prerender/index.js +108 -0
  50. package/dist/js/modern/ssr/react/prerender/type.js +0 -0
  51. package/dist/js/modern/ssr/react/prerender/util.js +96 -0
  52. package/dist/js/modern/ssr/react/withCallback/index.js +15 -0
  53. package/dist/js/modern/ssr/serverRender/helmet.js +44 -0
  54. package/dist/js/modern/ssr/serverRender/index.js +35 -0
  55. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +36 -0
  56. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -0
  57. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +61 -0
  58. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +58 -0
  59. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +24 -0
  60. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +94 -0
  61. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +12 -0
  62. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +22 -0
  63. package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
  64. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +171 -0
  65. package/dist/js/modern/ssr/serverRender/renderToString/index.js +52 -0
  66. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +48 -0
  67. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +8 -0
  68. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +11 -0
  69. package/dist/js/modern/ssr/serverRender/renderToString/template.js +58 -0
  70. package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -0
  71. package/dist/js/modern/ssr/serverRender/types.js +4 -0
  72. package/dist/js/modern/ssr/serverRender/utils.js +22 -0
  73. package/dist/js/modern/ssr/utils.js +81 -0
  74. package/dist/js/modern/state/cli/index.js +83 -0
  75. package/dist/js/modern/state/index.js +7 -0
  76. package/dist/js/modern/state/plugins.js +13 -0
  77. package/dist/js/modern/state/runtime/index.js +9 -0
  78. package/dist/js/modern/state/runtime/plugin.js +97 -0
  79. package/dist/js/modern/state/types.js +0 -0
  80. package/dist/js/node/cli/index.js +99 -0
  81. package/dist/js/node/common.js +27 -0
  82. package/dist/js/node/config.js +15 -0
  83. package/dist/js/node/core/app-config.js +34 -0
  84. package/dist/js/node/core/compatible.js +312 -0
  85. package/dist/js/node/core/index.js +47 -0
  86. package/dist/js/node/core/loader/index.js +33 -0
  87. package/dist/js/node/core/loader/loaderManager.js +195 -0
  88. package/dist/js/node/core/loader/useLoader.js +132 -0
  89. package/dist/js/node/core/plugin.js +80 -0
  90. package/dist/js/node/document/Body.js +43 -0
  91. package/dist/js/node/document/DocumentContext.js +38 -0
  92. package/dist/js/node/document/DocumentStructrueContext.js +40 -0
  93. package/dist/js/node/document/Head.js +51 -0
  94. package/dist/js/node/document/Html.js +101 -0
  95. package/dist/js/node/document/Links.js +33 -0
  96. package/dist/js/node/document/Root.js +57 -0
  97. package/dist/js/node/document/Script.js +40 -0
  98. package/dist/js/node/document/Scripts.js +33 -0
  99. package/dist/js/node/document/cli/index.js +240 -0
  100. package/dist/js/node/document/constants.js +86 -0
  101. package/dist/js/node/document/index.js +26 -0
  102. package/dist/js/node/exports/head.js +34 -0
  103. package/dist/js/node/exports/loadable.js +34 -0
  104. package/dist/js/node/exports/server.js +27 -0
  105. package/dist/js/node/exports/styled.js +34 -0
  106. package/dist/js/node/index.js +44 -0
  107. package/dist/js/node/router/cli/index.js +135 -0
  108. package/dist/js/node/router/index.js +37 -0
  109. package/dist/js/node/router/runtime/DefaultNotFound.js +37 -0
  110. package/dist/js/node/router/runtime/index.js +33 -0
  111. package/dist/js/node/router/runtime/plugin.js +127 -0
  112. package/dist/js/node/router/runtime/plugin.node.js +175 -0
  113. package/dist/js/node/router/runtime/server.js +17 -0
  114. package/dist/js/node/router/runtime/types.js +15 -0
  115. package/dist/js/node/router/runtime/utils.js +221 -0
  116. package/dist/js/node/router/runtime/withRouter.js +57 -0
  117. package/dist/js/node/runtime-context.js +31 -0
  118. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
  119. package/dist/js/node/ssr/cli/index.js +190 -0
  120. package/dist/js/node/ssr/index.js +185 -0
  121. package/dist/js/node/ssr/index.node.js +107 -0
  122. package/dist/js/node/ssr/prefetch.js +90 -0
  123. package/dist/js/node/ssr/react/index.js +30 -0
  124. package/dist/js/node/ssr/react/nossr/index.js +43 -0
  125. package/dist/js/node/ssr/react/prerender/index.js +130 -0
  126. package/dist/js/node/ssr/react/prerender/type.js +15 -0
  127. package/dist/js/node/ssr/react/prerender/util.js +123 -0
  128. package/dist/js/node/ssr/react/withCallback/index.js +38 -0
  129. package/dist/js/node/ssr/serverRender/helmet.js +65 -0
  130. package/dist/js/node/ssr/serverRender/index.js +56 -0
  131. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +65 -0
  132. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +35 -0
  133. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +87 -0
  134. package/dist/js/node/ssr/serverRender/renderToStream/index.js +87 -0
  135. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +47 -0
  136. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +111 -0
  137. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +35 -0
  138. package/dist/js/node/ssr/serverRender/renderToStream/template.js +45 -0
  139. package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
  140. package/dist/js/node/ssr/serverRender/renderToString/entry.js +196 -0
  141. package/dist/js/node/ssr/serverRender/renderToString/index.js +81 -0
  142. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +71 -0
  143. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +31 -0
  144. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +34 -0
  145. package/dist/js/node/ssr/serverRender/renderToString/template.js +82 -0
  146. package/dist/js/node/ssr/serverRender/renderToString/type.js +32 -0
  147. package/dist/js/node/ssr/serverRender/types.js +27 -0
  148. package/dist/js/node/ssr/serverRender/utils.js +46 -0
  149. package/dist/js/node/ssr/utils.js +106 -0
  150. package/dist/js/node/state/cli/index.js +100 -0
  151. package/dist/js/node/state/index.js +37 -0
  152. package/dist/js/node/state/plugins.js +45 -0
  153. package/dist/js/node/state/runtime/index.js +40 -0
  154. package/dist/js/node/state/runtime/plugin.js +121 -0
  155. package/dist/js/node/state/types.js +15 -0
  156. package/dist/js/treeshaking/cli/index.js +186 -0
  157. package/dist/js/treeshaking/common.js +4 -0
  158. package/dist/js/treeshaking/config.js +1 -0
  159. package/dist/js/treeshaking/core/app-config.js +9 -0
  160. package/dist/js/treeshaking/core/compatible.js +485 -0
  161. package/dist/js/treeshaking/core/index.js +7 -0
  162. package/dist/js/treeshaking/core/loader/index.js +2 -0
  163. package/dist/js/treeshaking/core/loader/loaderManager.js +406 -0
  164. package/dist/js/treeshaking/core/loader/useLoader.js +188 -0
  165. package/dist/js/treeshaking/core/plugin.js +176 -0
  166. package/dist/js/treeshaking/document/Body.js +18 -0
  167. package/dist/js/treeshaking/document/DocumentContext.js +7 -0
  168. package/dist/js/treeshaking/document/DocumentStructrueContext.js +9 -0
  169. package/dist/js/treeshaking/document/Head.js +24 -0
  170. package/dist/js/treeshaking/document/Html.js +99 -0
  171. package/dist/js/treeshaking/document/Links.js +8 -0
  172. package/dist/js/treeshaking/document/Root.js +26 -0
  173. package/dist/js/treeshaking/document/Script.js +15 -0
  174. package/dist/js/treeshaking/document/Scripts.js +8 -0
  175. package/dist/js/treeshaking/document/cli/index.js +393 -0
  176. package/dist/js/treeshaking/document/constants.js +35 -0
  177. package/dist/js/treeshaking/document/index.js +10 -0
  178. package/dist/js/treeshaking/exports/head.js +4 -0
  179. package/dist/js/treeshaking/exports/loadable.js +4 -0
  180. package/dist/js/treeshaking/exports/server.js +4 -0
  181. package/dist/js/treeshaking/exports/styled.js +4 -0
  182. package/dist/js/treeshaking/index.js +3 -0
  183. package/dist/js/treeshaking/router/cli/index.js +148 -0
  184. package/dist/js/treeshaking/router/index.js +4 -0
  185. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -0
  186. package/dist/js/treeshaking/router/runtime/index.js +6 -0
  187. package/dist/js/treeshaking/router/runtime/plugin.js +132 -0
  188. package/dist/js/treeshaking/router/runtime/plugin.node.js +390 -0
  189. package/dist/js/treeshaking/router/runtime/server.js +1 -0
  190. package/dist/js/treeshaking/router/runtime/types.js +1 -0
  191. package/dist/js/treeshaking/router/runtime/utils.js +260 -0
  192. package/dist/js/treeshaking/router/runtime/withRouter.js +67 -0
  193. package/dist/js/treeshaking/runtime-context.js +4 -0
  194. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
  195. package/dist/js/treeshaking/ssr/cli/index.js +217 -0
  196. package/dist/js/treeshaking/ssr/index.js +315 -0
  197. package/dist/js/treeshaking/ssr/index.node.js +240 -0
  198. package/dist/js/treeshaking/ssr/prefetch.js +199 -0
  199. package/dist/js/treeshaking/ssr/react/index.js +3 -0
  200. package/dist/js/treeshaking/ssr/react/nossr/index.js +58 -0
  201. package/dist/js/treeshaking/ssr/react/prerender/index.js +237 -0
  202. package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
  203. package/dist/js/treeshaking/ssr/react/prerender/util.js +108 -0
  204. package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -0
  205. package/dist/js/treeshaking/ssr/serverRender/helmet.js +42 -0
  206. package/dist/js/treeshaking/ssr/serverRender/index.js +169 -0
  207. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +34 -0
  208. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -0
  209. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +115 -0
  210. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +165 -0
  211. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +22 -0
  212. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +119 -0
  213. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -0
  214. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +63 -0
  215. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
  216. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +393 -0
  217. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +165 -0
  218. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +56 -0
  219. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +10 -0
  220. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -0
  221. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +156 -0
  222. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -0
  223. package/dist/js/treeshaking/ssr/serverRender/types.js +2 -0
  224. package/dist/js/treeshaking/ssr/serverRender/utils.js +69 -0
  225. package/dist/js/treeshaking/ssr/utils.js +134 -0
  226. package/dist/js/treeshaking/state/cli/index.js +71 -0
  227. package/dist/js/treeshaking/state/index.js +4 -0
  228. package/dist/js/treeshaking/state/plugins.js +14 -0
  229. package/dist/js/treeshaking/state/runtime/index.js +5 -0
  230. package/dist/js/treeshaking/state/runtime/plugin.js +198 -0
  231. package/dist/js/treeshaking/state/types.js +1 -0
  232. package/package.json +6 -6
@@ -0,0 +1,6 @@
1
+ import head from "react-helmet";
2
+ var head_default = head;
3
+ export * from "react-helmet";
4
+ export {
5
+ head_default as default
6
+ };
@@ -0,0 +1,6 @@
1
+ import loadable from "@loadable/component";
2
+ var loadable_default = loadable;
3
+ export * from "@loadable/component";
4
+ export {
5
+ loadable_default as default
6
+ };
@@ -0,0 +1,4 @@
1
+ const hook = (attacher) => attacher;
2
+ export {
3
+ hook
4
+ };
@@ -0,0 +1,6 @@
1
+ import styled from "styled-components";
2
+ var styled_default = styled;
3
+ export * from "styled-components";
4
+ export {
5
+ styled_default as default
6
+ };
@@ -0,0 +1,22 @@
1
+ import { isBrowser } from "./common";
2
+ import {
3
+ createApp,
4
+ createPlugin,
5
+ useLoader,
6
+ bootstrap,
7
+ RuntimeReactContext,
8
+ defineConfig,
9
+ registerInit,
10
+ useRuntimeContext
11
+ } from "./core";
12
+ export {
13
+ RuntimeReactContext,
14
+ bootstrap,
15
+ createApp,
16
+ createPlugin,
17
+ defineConfig,
18
+ isBrowser,
19
+ registerInit,
20
+ useLoader,
21
+ useRuntimeContext
22
+ };
@@ -0,0 +1,120 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
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
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import {
21
+ getEntryOptions,
22
+ createRuntimeExportsUtils,
23
+ PLUGIN_SCHEMAS
24
+ } from "@modern-js/utils";
25
+ const PLUGIN_IDENTIFIER = "router";
26
+ const ROUTES_IDENTIFIER = "routes";
27
+ const isV5 = (config) => {
28
+ var _a, _b;
29
+ return ((_b = (_a = config == null ? void 0 : config.runtime) == null ? void 0 : _a.router) == null ? void 0 : _b.mode) === "react-router-5";
30
+ };
31
+ var cli_default = () => ({
32
+ name: "@modern-js/plugin-router",
33
+ required: ["@modern-js/runtime"],
34
+ setup: (api) => {
35
+ const runtimeConfigMap = /* @__PURE__ */ new Map();
36
+ let pluginsExportsUtils;
37
+ return {
38
+ config() {
39
+ const appContext = api.useAppContext();
40
+ pluginsExportsUtils = createRuntimeExportsUtils(
41
+ appContext.internalDirectory,
42
+ "plugins"
43
+ );
44
+ return {
45
+ source: {
46
+ alias: {
47
+ "@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
48
+ }
49
+ }
50
+ };
51
+ },
52
+ validateSchema() {
53
+ return PLUGIN_SCHEMAS["@modern-js/plugin-router"];
54
+ },
55
+ modifyEntryImports({ entrypoint, imports }) {
56
+ const { entryName, fileSystemRoutes } = entrypoint;
57
+ const userConfig = api.useResolvedConfigContext();
58
+ const { packageName } = api.useAppContext();
59
+ const runtimeConfig = getEntryOptions(
60
+ entryName,
61
+ userConfig.runtime,
62
+ userConfig.runtimeByEntries,
63
+ packageName
64
+ );
65
+ runtimeConfigMap.set(entryName, runtimeConfig);
66
+ if (runtimeConfig == null ? void 0 : runtimeConfig.router) {
67
+ if (!isV5(userConfig)) {
68
+ imports.push({
69
+ value: "@modern-js/runtime/plugins",
70
+ specifiers: [{ imported: PLUGIN_IDENTIFIER }]
71
+ });
72
+ }
73
+ } else if (fileSystemRoutes) {
74
+ throw new Error(
75
+ `should enable runtime.router for entry ${entryName}`
76
+ );
77
+ }
78
+ return {
79
+ entrypoint,
80
+ imports
81
+ };
82
+ },
83
+ modifyEntryRuntimePlugins({ entrypoint, plugins }) {
84
+ const { entryName, fileSystemRoutes } = entrypoint;
85
+ const { serverRoutes } = api.useAppContext();
86
+ const userConfig = api.useResolvedConfigContext();
87
+ const runtimeConfig = runtimeConfigMap.get(entryName);
88
+ if (runtimeConfig.router && !isV5(userConfig)) {
89
+ const serverBase = serverRoutes.filter((route) => route.entryName === entryName).map((route) => route.urlPath).sort((a, b) => a.length - b.length > 0 ? -1 : 1);
90
+ plugins.push({
91
+ name: PLUGIN_IDENTIFIER,
92
+ options: JSON.stringify(__spreadProps(__spreadValues({
93
+ serverBase
94
+ }, runtimeConfig.router), {
95
+ routesConfig: fileSystemRoutes ? `{ ${ROUTES_IDENTIFIER}, globalApp: App }` : void 0
96
+ })).replace(
97
+ /"routesConfig"\s*:\s*"((\S|\s)+)"/g,
98
+ '"routesConfig": $1,'
99
+ )
100
+ });
101
+ }
102
+ return {
103
+ entrypoint,
104
+ plugins
105
+ };
106
+ },
107
+ addRuntimeExports() {
108
+ const userConfig = api.useResolvedConfigContext();
109
+ if (!isV5(userConfig)) {
110
+ pluginsExportsUtils.addExport(
111
+ `export { default as router } from '@modern-js/runtime/router'`
112
+ );
113
+ }
114
+ }
115
+ };
116
+ }
117
+ });
118
+ export {
119
+ cli_default as default
120
+ };
@@ -0,0 +1,7 @@
1
+ import { default as default2 } from "./runtime";
2
+ import { default as default3 } from "./runtime";
3
+ export * from "./runtime";
4
+ export {
5
+ default3 as default,
6
+ default2 as router
7
+ };
@@ -0,0 +1,14 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ const DefaultNotFound = () => /* @__PURE__ */ jsx("div", {
3
+ style: {
4
+ margin: "150px auto",
5
+ textAlign: "center",
6
+ display: "flex",
7
+ alignItems: "center",
8
+ justifyContent: "center"
9
+ },
10
+ children: "404"
11
+ });
12
+ export {
13
+ DefaultNotFound
14
+ };
@@ -0,0 +1,9 @@
1
+ import { routerPlugin } from "./plugin";
2
+ var runtime_default = routerPlugin;
3
+ import { modifyRoutes } from "./plugin";
4
+ export * from "react-router-dom";
5
+ export * from "./withRouter";
6
+ export {
7
+ runtime_default as default,
8
+ modifyRoutes
9
+ };
@@ -0,0 +1,104 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
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
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { jsx } from "react/jsx-runtime";
21
+ import {
22
+ createBrowserRouter,
23
+ createHashRouter,
24
+ RouterProvider,
25
+ createRoutesFromElements,
26
+ useMatches,
27
+ useLocation
28
+ } from "react-router-dom";
29
+ import hoistNonReactStatics from "hoist-non-react-statics";
30
+ import { renderRoutes, urlJoin } from "./utils";
31
+ let finalRouteConfig = {
32
+ routes: []
33
+ };
34
+ let beforeCreateRouter = true;
35
+ function modifyRoutes(modifyFunction) {
36
+ if (beforeCreateRouter) {
37
+ const { routes: originRoutes } = finalRouteConfig;
38
+ const newRoutes = modifyFunction(originRoutes);
39
+ finalRouteConfig.routes = newRoutes;
40
+ } else {
41
+ console.error(
42
+ "It is not allowed to modify routes config after create router."
43
+ );
44
+ }
45
+ }
46
+ const routerPlugin = ({
47
+ serverBase = [],
48
+ supportHtml5History = true,
49
+ basename = "",
50
+ routesConfig,
51
+ createRoutes
52
+ }) => {
53
+ const select = (pathname) => serverBase.find((baseUrl) => pathname.search(baseUrl) === 0) || "/";
54
+ finalRouteConfig = routesConfig;
55
+ return {
56
+ name: "@modern-js/plugin-router",
57
+ setup: () => {
58
+ return {
59
+ init({ context }, next) {
60
+ context.router = {
61
+ useMatches,
62
+ useLocation
63
+ };
64
+ return next({ context });
65
+ },
66
+ hoc: ({ App }, next) => {
67
+ if (!finalRouteConfig && !createRoutes) {
68
+ return next({ App });
69
+ }
70
+ const getRouteApp = () => {
71
+ return (props) => {
72
+ var _a;
73
+ beforeCreateRouter = true;
74
+ const routes = createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes(finalRouteConfig));
75
+ const baseUrl = ((_a = window._SERVER_DATA) == null ? void 0 : _a.router.baseUrl) || select(location.pathname);
76
+ const _basename = baseUrl === "/" ? urlJoin(baseUrl, basename) : baseUrl;
77
+ const router = supportHtml5History ? createBrowserRouter(routes, { basename: _basename }) : createHashRouter(routes, { basename: _basename });
78
+ return /* @__PURE__ */ jsx(App, __spreadProps(__spreadValues({}, props), {
79
+ children: /* @__PURE__ */ jsx(RouterProvider, {
80
+ router
81
+ })
82
+ }));
83
+ };
84
+ };
85
+ const RouteApp = getRouteApp();
86
+ if (routesConfig == null ? void 0 : routesConfig.globalApp) {
87
+ return next({
88
+ App: hoistNonReactStatics(RouteApp, routesConfig.globalApp)
89
+ });
90
+ }
91
+ return next({
92
+ App: RouteApp
93
+ });
94
+ }
95
+ };
96
+ }
97
+ };
98
+ };
99
+ export {
100
+ beforeCreateRouter,
101
+ finalRouteConfig,
102
+ modifyRoutes,
103
+ routerPlugin
104
+ };
@@ -0,0 +1,149 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
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
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __async = (__this, __arguments, generator) => {
21
+ return new Promise((resolve, reject) => {
22
+ var fulfilled = (value) => {
23
+ try {
24
+ step(generator.next(value));
25
+ } catch (e) {
26
+ reject(e);
27
+ }
28
+ };
29
+ var rejected = (value) => {
30
+ try {
31
+ step(generator.throw(value));
32
+ } catch (e) {
33
+ reject(e);
34
+ }
35
+ };
36
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
37
+ step((generator = generator.apply(__this, __arguments)).next());
38
+ });
39
+ };
40
+ import { jsx } from "react/jsx-runtime";
41
+ import { useContext } from "react";
42
+ import { createStaticHandler } from "@remix-run/router";
43
+ import {
44
+ createStaticRouter,
45
+ StaticRouterProvider
46
+ } from "react-router-dom/server";
47
+ import hoistNonReactStatics from "hoist-non-react-statics";
48
+ import { installGlobals } from "@remix-run/node";
49
+ import { createRoutesFromElements } from "react-router-dom";
50
+ import { RuntimeReactContext } from "../../core";
51
+ import { renderRoutes, urlJoin } from "./utils";
52
+ installGlobals();
53
+ function createFetchRequest(req) {
54
+ const origin = `${req.protocol}://${req.host}`;
55
+ const url = new URL(req.originalUrl || req.url, origin);
56
+ const controller = new AbortController();
57
+ const init = {
58
+ method: req.method,
59
+ headers: createFetchHeaders(req.headers),
60
+ signal: controller.signal
61
+ };
62
+ return new Request(url.href, init);
63
+ }
64
+ function createFetchHeaders(requestHeaders) {
65
+ const headers = new Headers();
66
+ for (const [key, values] of Object.entries(requestHeaders)) {
67
+ if (values) {
68
+ if (Array.isArray(values)) {
69
+ for (const value of values) {
70
+ headers.append(key, value);
71
+ }
72
+ } else {
73
+ headers.set(key, values);
74
+ }
75
+ }
76
+ }
77
+ return headers;
78
+ }
79
+ const routerPlugin = ({
80
+ basename = "",
81
+ routesConfig,
82
+ createRoutes
83
+ }) => {
84
+ return {
85
+ name: "@modern-js/plugin-router",
86
+ setup: () => {
87
+ return {
88
+ init(_0, _1) {
89
+ return __async(this, arguments, function* ({ context }, next) {
90
+ if (!routesConfig && !createRoutes) {
91
+ return next({ context });
92
+ }
93
+ const { request } = context.ssrContext;
94
+ const baseUrl = request.baseUrl;
95
+ const _basename = baseUrl === "/" ? urlJoin(baseUrl, basename) : baseUrl;
96
+ const routes = createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes(routesConfig));
97
+ const { query } = createStaticHandler(routes, {
98
+ basename: _basename
99
+ });
100
+ const remixRequest = createFetchRequest(request);
101
+ const routerContext = yield query(remixRequest);
102
+ if (routerContext instanceof Response) {
103
+ return routerContext;
104
+ }
105
+ const router = createStaticRouter(routes, routerContext);
106
+ context.router = router;
107
+ context.routerContext = routerContext;
108
+ context.routes = routes;
109
+ context.routeManifest = context.ssrContext.routeManifest;
110
+ return next({ context });
111
+ });
112
+ },
113
+ hoc: ({ App }, next) => {
114
+ if (!routesConfig) {
115
+ return next({ App });
116
+ }
117
+ const getRouteApp = () => {
118
+ return (props) => {
119
+ const { router, routerContext } = useContext(RuntimeReactContext);
120
+ return /* @__PURE__ */ jsx(App, __spreadProps(__spreadValues({}, props), {
121
+ children: /* @__PURE__ */ jsx(StaticRouterProvider, {
122
+ router,
123
+ context: routerContext,
124
+ nonce: "the-nonce"
125
+ })
126
+ }));
127
+ };
128
+ };
129
+ const RouteApp = getRouteApp();
130
+ if (routesConfig == null ? void 0 : routesConfig.globalApp) {
131
+ return next({
132
+ App: hoistNonReactStatics(RouteApp, routesConfig.globalApp)
133
+ });
134
+ }
135
+ return next({
136
+ App: RouteApp
137
+ });
138
+ }
139
+ };
140
+ }
141
+ };
142
+ };
143
+ const modifyRoutes = () => {
144
+ };
145
+ export {
146
+ createFetchHeaders,
147
+ modifyRoutes,
148
+ routerPlugin
149
+ };
@@ -0,0 +1 @@
1
+ export * from "react-router-dom/server";
File without changes
@@ -0,0 +1,196 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
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
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+ import { jsx } from "react/jsx-runtime";
33
+ import { Suspense } from "react";
34
+ import { Route } from "react-router-dom";
35
+ import { DefaultNotFound } from "./DefaultNotFound";
36
+ const renderNestedRoute = (nestedRoute, parent) => {
37
+ const { children, index, id, component, isRoot } = nestedRoute;
38
+ const Component = component;
39
+ const routeProps = {
40
+ caseSensitive: nestedRoute.caseSensitive,
41
+ path: nestedRoute.path,
42
+ id: nestedRoute.id,
43
+ loader: createLoader(nestedRoute),
44
+ action: nestedRoute.action,
45
+ hasErrorBoundary: nestedRoute.hasErrorBoundary,
46
+ shouldRevalidate: nestedRoute.shouldRevalidate,
47
+ handle: nestedRoute.handle,
48
+ index: nestedRoute.index,
49
+ element: nestedRoute.element,
50
+ errorElement: nestedRoute.errorElement
51
+ };
52
+ if (nestedRoute.error) {
53
+ const errorElement = /* @__PURE__ */ jsx(nestedRoute.error, {});
54
+ routeProps.errorElement = errorElement;
55
+ }
56
+ let element;
57
+ if (Component) {
58
+ if (parent == null ? void 0 : parent.loading) {
59
+ const Loading = parent.loading;
60
+ if (isLoadableComponent(Component)) {
61
+ element = /* @__PURE__ */ jsx(Component, {
62
+ fallback: /* @__PURE__ */ jsx(Loading, {})
63
+ });
64
+ } else {
65
+ element = /* @__PURE__ */ jsx(Suspense, {
66
+ fallback: /* @__PURE__ */ jsx(Loading, {}),
67
+ children: /* @__PURE__ */ jsx(Component, {})
68
+ });
69
+ }
70
+ } else if (isLoadableComponent(Component) || isRoot) {
71
+ element = /* @__PURE__ */ jsx(Component, {});
72
+ } else {
73
+ element = /* @__PURE__ */ jsx(Suspense, {
74
+ fallback: null,
75
+ children: /* @__PURE__ */ jsx(Component, {})
76
+ });
77
+ }
78
+ } else {
79
+ nestedRoute.loading = parent == null ? void 0 : parent.loading;
80
+ }
81
+ if (element) {
82
+ routeProps.element = element;
83
+ }
84
+ const childElements = children == null ? void 0 : children.map((childRoute) => {
85
+ return renderNestedRoute(childRoute, nestedRoute);
86
+ });
87
+ const routeElement = index ? /* @__PURE__ */ jsx(Route, __spreadProps(__spreadValues({}, routeProps), {
88
+ index: true
89
+ }), id) : /* @__PURE__ */ jsx(Route, __spreadProps(__spreadValues({}, routeProps), {
90
+ index: false,
91
+ children: childElements
92
+ }), id);
93
+ return routeElement;
94
+ };
95
+ function getRouteComponents(routes, globalApp) {
96
+ const Layout = (_a) => {
97
+ var _b = _a, { Component } = _b, props = __objRest(_b, ["Component"]);
98
+ const GlobalLayout = globalApp;
99
+ if (!GlobalLayout) {
100
+ return /* @__PURE__ */ jsx(Component, __spreadValues({}, props));
101
+ }
102
+ return /* @__PURE__ */ jsx(GlobalLayout, __spreadValues({
103
+ Component
104
+ }, props));
105
+ };
106
+ const routeElements = [];
107
+ for (const route of routes) {
108
+ if (route.type === "nested") {
109
+ const routeElement = renderNestedRoute(route);
110
+ routeElements.push(routeElement);
111
+ } else {
112
+ const routeElement = /* @__PURE__ */ jsx(Route, {
113
+ path: route.path,
114
+ element: /* @__PURE__ */ jsx(Layout, {
115
+ Component: route.component
116
+ })
117
+ }, route.path);
118
+ routeElements.push(routeElement);
119
+ }
120
+ }
121
+ routeElements.push(/* @__PURE__ */ jsx(Route, {
122
+ path: "*",
123
+ element: /* @__PURE__ */ jsx(DefaultNotFound, {})
124
+ }, "*"));
125
+ return routeElements;
126
+ }
127
+ function renderRoutes(routesConfig) {
128
+ if (!routesConfig) {
129
+ return null;
130
+ }
131
+ const { routes, globalApp } = routesConfig;
132
+ if (!routes) {
133
+ return null;
134
+ }
135
+ const routeElements = getRouteComponents(routes, globalApp);
136
+ return routeElements;
137
+ }
138
+ function getLocation(serverContext) {
139
+ var _a;
140
+ const { pathname, url } = (serverContext == null ? void 0 : serverContext.request) || {};
141
+ const cleanUrl = (_a = url == null ? void 0 : url.replace("http://", "")) == null ? void 0 : _a.replace("https://", "");
142
+ const index = (cleanUrl || "").indexOf(pathname);
143
+ if (index === -1) {
144
+ return pathname;
145
+ }
146
+ return cleanUrl.substring(index);
147
+ }
148
+ const urlJoin = (...parts) => {
149
+ const separator = "/";
150
+ const replace = new RegExp(`${separator}{1,}`, "g");
151
+ return standardSlash(parts.join(separator).replace(replace, separator));
152
+ };
153
+ function standardSlash(str) {
154
+ let addr = str;
155
+ if (!addr || typeof addr !== "string") {
156
+ return addr;
157
+ }
158
+ if (addr.startsWith(".")) {
159
+ addr = addr.slice(1);
160
+ }
161
+ if (!addr.startsWith("/")) {
162
+ addr = `/${addr}`;
163
+ }
164
+ if (addr.endsWith("/") && addr !== "/") {
165
+ addr = addr.slice(0, addr.length - 1);
166
+ }
167
+ return addr;
168
+ }
169
+ function createLoader(route) {
170
+ const { loader } = route;
171
+ if (loader) {
172
+ return (args) => {
173
+ if (typeof route.lazyImport === "function") {
174
+ route.lazyImport();
175
+ }
176
+ return loader(args);
177
+ };
178
+ } else {
179
+ return () => {
180
+ if (typeof route.lazyImport === "function") {
181
+ route.lazyImport();
182
+ }
183
+ return null;
184
+ };
185
+ }
186
+ }
187
+ function isLoadableComponent(component) {
188
+ return component && component.displayName === "Loadable" && component.preload && typeof component.preload === "function";
189
+ }
190
+ export {
191
+ getLocation,
192
+ getRouteComponents,
193
+ renderRoutes,
194
+ standardSlash,
195
+ urlJoin
196
+ };