@modern-js/runtime 2.22.1 → 2.22.2-alpha.1

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 (264) hide show
  1. package/dist/cjs/document/constants.js +3 -6
  2. package/dist/cjs/router/runtime/plugin.js +17 -1
  3. package/dist/esm/document/constants.js +1 -1
  4. package/dist/esm/router/runtime/plugin.js +21 -1
  5. package/dist/esm-node/document/constants.js +1 -1
  6. package/dist/esm-node/router/runtime/plugin.js +17 -1
  7. package/dist/js/modern/cli/index.js +72 -0
  8. package/dist/js/modern/common.js +4 -0
  9. package/dist/js/modern/config.js +0 -0
  10. package/dist/js/modern/core/app-config.js +10 -0
  11. package/dist/js/modern/core/compatible.js +286 -0
  12. package/dist/js/modern/core/index.js +16 -0
  13. package/dist/js/modern/core/loader/index.js +4 -0
  14. package/dist/js/modern/core/loader/loaderManager.js +165 -0
  15. package/dist/js/modern/core/loader/useLoader.js +114 -0
  16. package/dist/js/modern/core/plugin.js +58 -0
  17. package/dist/js/modern/document/Body.js +23 -0
  18. package/dist/js/modern/document/DocumentContext.js +9 -0
  19. package/dist/js/modern/document/DocumentStructureContext.js +11 -0
  20. package/dist/js/modern/document/Head.js +27 -0
  21. package/dist/js/modern/document/Html.js +78 -0
  22. package/dist/js/modern/document/Links.js +10 -0
  23. package/dist/js/modern/document/Root.js +33 -0
  24. package/dist/js/modern/document/Script.js +20 -0
  25. package/dist/js/modern/document/Scripts.js +10 -0
  26. package/dist/js/modern/document/cli/index.js +228 -0
  27. package/dist/js/modern/document/constants.js +49 -0
  28. package/dist/js/modern/document/index.js +10 -0
  29. package/dist/js/modern/exports/head.js +6 -0
  30. package/dist/js/modern/exports/loadable.js +6 -0
  31. package/dist/js/modern/exports/server.js +4 -0
  32. package/dist/js/modern/exports/styled.js +6 -0
  33. package/dist/js/modern/index.js +22 -0
  34. package/dist/js/modern/router/cli/index.js +120 -0
  35. package/dist/js/modern/router/index.js +7 -0
  36. package/dist/js/modern/router/runtime/DefaultNotFound.js +14 -0
  37. package/dist/js/modern/router/runtime/fetch.js +5 -0
  38. package/dist/js/modern/router/runtime/fetch.node.js +4 -0
  39. package/dist/js/modern/router/runtime/fetch.worker.js +5 -0
  40. package/dist/js/modern/router/runtime/index.js +9 -0
  41. package/dist/js/modern/router/runtime/plugin.js +104 -0
  42. package/dist/js/modern/router/runtime/plugin.node.js +189 -0
  43. package/dist/js/modern/router/runtime/server.js +1 -0
  44. package/dist/js/modern/router/runtime/types.js +0 -0
  45. package/dist/js/modern/router/runtime/utils.js +196 -0
  46. package/dist/js/modern/router/runtime/withRouter.js +36 -0
  47. package/dist/js/modern/runtime-context.js +7 -0
  48. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
  49. package/dist/js/modern/ssr/cli/index.js +172 -0
  50. package/dist/js/modern/ssr/index.js +159 -0
  51. package/dist/js/modern/ssr/index.node.js +79 -0
  52. package/dist/js/modern/ssr/prefetch.js +69 -0
  53. package/dist/js/modern/ssr/prefetch.worker.js +66 -0
  54. package/dist/js/modern/ssr/react/index.js +6 -0
  55. package/dist/js/modern/ssr/react/nossr/index.js +18 -0
  56. package/dist/js/modern/ssr/react/prerender/index.js +108 -0
  57. package/dist/js/modern/ssr/react/prerender/type.js +0 -0
  58. package/dist/js/modern/ssr/react/prerender/util.js +96 -0
  59. package/dist/js/modern/ssr/react/withCallback/index.js +15 -0
  60. package/dist/js/modern/ssr/serverRender/helmet.js +44 -0
  61. package/dist/js/modern/ssr/serverRender/index.js +35 -0
  62. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +36 -0
  63. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -0
  64. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +61 -0
  65. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +58 -0
  66. package/dist/js/modern/ssr/serverRender/renderToStream/index.worker.js +35 -0
  67. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +24 -0
  68. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +96 -0
  69. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.worker.js +117 -0
  70. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +12 -0
  71. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +22 -0
  72. package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
  73. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +172 -0
  74. package/dist/js/modern/ssr/serverRender/renderToString/index.js +52 -0
  75. package/dist/js/modern/ssr/serverRender/renderToString/index.worker.js +49 -0
  76. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +48 -0
  77. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +8 -0
  78. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +11 -0
  79. package/dist/js/modern/ssr/serverRender/renderToString/template.js +58 -0
  80. package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -0
  81. package/dist/js/modern/ssr/serverRender/time.js +13 -0
  82. package/dist/js/modern/ssr/serverRender/time.worker.js +28 -0
  83. package/dist/js/modern/ssr/serverRender/types.js +4 -0
  84. package/dist/js/modern/ssr/serverRender/utils.js +11 -0
  85. package/dist/js/modern/ssr/utils.js +81 -0
  86. package/dist/js/modern/state/cli/index.js +83 -0
  87. package/dist/js/modern/state/index.js +7 -0
  88. package/dist/js/modern/state/plugins.js +13 -0
  89. package/dist/js/modern/state/runtime/index.js +9 -0
  90. package/dist/js/modern/state/runtime/plugin.js +97 -0
  91. package/dist/js/modern/state/types.js +0 -0
  92. package/dist/js/node/cli/index.js +99 -0
  93. package/dist/js/node/common.js +27 -0
  94. package/dist/js/node/config.js +15 -0
  95. package/dist/js/node/core/app-config.js +34 -0
  96. package/dist/js/node/core/compatible.js +313 -0
  97. package/dist/js/node/core/index.js +47 -0
  98. package/dist/js/node/core/loader/index.js +33 -0
  99. package/dist/js/node/core/loader/loaderManager.js +195 -0
  100. package/dist/js/node/core/loader/useLoader.js +132 -0
  101. package/dist/js/node/core/plugin.js +80 -0
  102. package/dist/js/node/document/Body.js +43 -0
  103. package/dist/js/node/document/DocumentContext.js +38 -0
  104. package/dist/js/node/document/DocumentStructureContext.js +40 -0
  105. package/dist/js/node/document/Head.js +51 -0
  106. package/dist/js/node/document/Html.js +101 -0
  107. package/dist/js/node/document/Links.js +33 -0
  108. package/dist/js/node/document/Root.js +57 -0
  109. package/dist/js/node/document/Script.js +40 -0
  110. package/dist/js/node/document/Scripts.js +33 -0
  111. package/dist/js/node/document/cli/index.js +240 -0
  112. package/dist/js/node/document/constants.js +86 -0
  113. package/dist/js/node/document/index.js +26 -0
  114. package/dist/js/node/exports/head.js +34 -0
  115. package/dist/js/node/exports/loadable.js +34 -0
  116. package/dist/js/node/exports/server.js +27 -0
  117. package/dist/js/node/exports/styled.js +34 -0
  118. package/dist/js/node/index.js +44 -0
  119. package/dist/js/node/router/cli/index.js +135 -0
  120. package/dist/js/node/router/index.js +37 -0
  121. package/dist/js/node/router/runtime/DefaultNotFound.js +37 -0
  122. package/dist/js/node/router/runtime/fetch.js +28 -0
  123. package/dist/js/node/router/runtime/fetch.node.js +27 -0
  124. package/dist/js/node/router/runtime/fetch.worker.js +28 -0
  125. package/dist/js/node/router/runtime/index.js +33 -0
  126. package/dist/js/node/router/runtime/plugin.js +127 -0
  127. package/dist/js/node/router/runtime/plugin.node.js +212 -0
  128. package/dist/js/node/router/runtime/server.js +17 -0
  129. package/dist/js/node/router/runtime/types.js +15 -0
  130. package/dist/js/node/router/runtime/utils.js +221 -0
  131. package/dist/js/node/router/runtime/withRouter.js +57 -0
  132. package/dist/js/node/runtime-context.js +31 -0
  133. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
  134. package/dist/js/node/ssr/cli/index.js +190 -0
  135. package/dist/js/node/ssr/index.js +185 -0
  136. package/dist/js/node/ssr/index.node.js +107 -0
  137. package/dist/js/node/ssr/prefetch.js +90 -0
  138. package/dist/js/node/ssr/prefetch.worker.js +87 -0
  139. package/dist/js/node/ssr/react/index.js +30 -0
  140. package/dist/js/node/ssr/react/nossr/index.js +47 -0
  141. package/dist/js/node/ssr/react/prerender/index.js +130 -0
  142. package/dist/js/node/ssr/react/prerender/type.js +15 -0
  143. package/dist/js/node/ssr/react/prerender/util.js +123 -0
  144. package/dist/js/node/ssr/react/withCallback/index.js +38 -0
  145. package/dist/js/node/ssr/serverRender/helmet.js +65 -0
  146. package/dist/js/node/ssr/serverRender/index.js +56 -0
  147. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +65 -0
  148. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +35 -0
  149. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +87 -0
  150. package/dist/js/node/ssr/serverRender/renderToStream/index.js +87 -0
  151. package/dist/js/node/ssr/serverRender/renderToStream/index.worker.js +64 -0
  152. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +47 -0
  153. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +115 -0
  154. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.worker.js +136 -0
  155. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +35 -0
  156. package/dist/js/node/ssr/serverRender/renderToStream/template.js +45 -0
  157. package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
  158. package/dist/js/node/ssr/serverRender/renderToString/entry.js +197 -0
  159. package/dist/js/node/ssr/serverRender/renderToString/index.js +81 -0
  160. package/dist/js/node/ssr/serverRender/renderToString/index.worker.js +78 -0
  161. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +71 -0
  162. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +31 -0
  163. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +34 -0
  164. package/dist/js/node/ssr/serverRender/renderToString/template.js +82 -0
  165. package/dist/js/node/ssr/serverRender/renderToString/type.js +32 -0
  166. package/dist/js/node/ssr/serverRender/time.js +36 -0
  167. package/dist/js/node/ssr/serverRender/time.worker.js +51 -0
  168. package/dist/js/node/ssr/serverRender/types.js +27 -0
  169. package/dist/js/node/ssr/serverRender/utils.js +34 -0
  170. package/dist/js/node/ssr/utils.js +106 -0
  171. package/dist/js/node/state/cli/index.js +100 -0
  172. package/dist/js/node/state/index.js +37 -0
  173. package/dist/js/node/state/plugins.js +45 -0
  174. package/dist/js/node/state/runtime/index.js +40 -0
  175. package/dist/js/node/state/runtime/plugin.js +121 -0
  176. package/dist/js/node/state/types.js +15 -0
  177. package/dist/js/treeshaking/cli/index.js +186 -0
  178. package/dist/js/treeshaking/common.js +4 -0
  179. package/dist/js/treeshaking/config.js +1 -0
  180. package/dist/js/treeshaking/core/app-config.js +9 -0
  181. package/dist/js/treeshaking/core/compatible.js +486 -0
  182. package/dist/js/treeshaking/core/index.js +7 -0
  183. package/dist/js/treeshaking/core/loader/index.js +2 -0
  184. package/dist/js/treeshaking/core/loader/loaderManager.js +406 -0
  185. package/dist/js/treeshaking/core/loader/useLoader.js +188 -0
  186. package/dist/js/treeshaking/core/plugin.js +176 -0
  187. package/dist/js/treeshaking/document/Body.js +18 -0
  188. package/dist/js/treeshaking/document/DocumentContext.js +7 -0
  189. package/dist/js/treeshaking/document/DocumentStructureContext.js +9 -0
  190. package/dist/js/treeshaking/document/Head.js +24 -0
  191. package/dist/js/treeshaking/document/Html.js +99 -0
  192. package/dist/js/treeshaking/document/Links.js +8 -0
  193. package/dist/js/treeshaking/document/Root.js +26 -0
  194. package/dist/js/treeshaking/document/Script.js +15 -0
  195. package/dist/js/treeshaking/document/Scripts.js +8 -0
  196. package/dist/js/treeshaking/document/cli/index.js +393 -0
  197. package/dist/js/treeshaking/document/constants.js +35 -0
  198. package/dist/js/treeshaking/document/index.js +10 -0
  199. package/dist/js/treeshaking/exports/head.js +4 -0
  200. package/dist/js/treeshaking/exports/loadable.js +4 -0
  201. package/dist/js/treeshaking/exports/server.js +4 -0
  202. package/dist/js/treeshaking/exports/styled.js +4 -0
  203. package/dist/js/treeshaking/index.js +3 -0
  204. package/dist/js/treeshaking/router/cli/index.js +148 -0
  205. package/dist/js/treeshaking/router/index.js +4 -0
  206. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -0
  207. package/dist/js/treeshaking/router/runtime/fetch.js +2 -0
  208. package/dist/js/treeshaking/router/runtime/fetch.node.js +2 -0
  209. package/dist/js/treeshaking/router/runtime/fetch.worker.js +2 -0
  210. package/dist/js/treeshaking/router/runtime/index.js +6 -0
  211. package/dist/js/treeshaking/router/runtime/plugin.js +132 -0
  212. package/dist/js/treeshaking/router/runtime/plugin.node.js +447 -0
  213. package/dist/js/treeshaking/router/runtime/server.js +1 -0
  214. package/dist/js/treeshaking/router/runtime/types.js +1 -0
  215. package/dist/js/treeshaking/router/runtime/utils.js +260 -0
  216. package/dist/js/treeshaking/router/runtime/withRouter.js +67 -0
  217. package/dist/js/treeshaking/runtime-context.js +4 -0
  218. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
  219. package/dist/js/treeshaking/ssr/cli/index.js +217 -0
  220. package/dist/js/treeshaking/ssr/index.js +315 -0
  221. package/dist/js/treeshaking/ssr/index.node.js +240 -0
  222. package/dist/js/treeshaking/ssr/prefetch.js +199 -0
  223. package/dist/js/treeshaking/ssr/prefetch.worker.js +191 -0
  224. package/dist/js/treeshaking/ssr/react/index.js +3 -0
  225. package/dist/js/treeshaking/ssr/react/nossr/index.js +58 -0
  226. package/dist/js/treeshaking/ssr/react/prerender/index.js +237 -0
  227. package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
  228. package/dist/js/treeshaking/ssr/react/prerender/util.js +108 -0
  229. package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -0
  230. package/dist/js/treeshaking/ssr/serverRender/helmet.js +42 -0
  231. package/dist/js/treeshaking/ssr/serverRender/index.js +169 -0
  232. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +34 -0
  233. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -0
  234. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +115 -0
  235. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +165 -0
  236. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.worker.js +32 -0
  237. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +22 -0
  238. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +122 -0
  239. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.worker.js +294 -0
  240. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -0
  241. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +63 -0
  242. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
  243. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +393 -0
  244. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +165 -0
  245. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.worker.js +167 -0
  246. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +56 -0
  247. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +10 -0
  248. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -0
  249. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +156 -0
  250. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -0
  251. package/dist/js/treeshaking/ssr/serverRender/time.js +57 -0
  252. package/dist/js/treeshaking/ssr/serverRender/time.worker.js +75 -0
  253. package/dist/js/treeshaking/ssr/serverRender/types.js +2 -0
  254. package/dist/js/treeshaking/ssr/serverRender/utils.js +13 -0
  255. package/dist/js/treeshaking/ssr/utils.js +134 -0
  256. package/dist/js/treeshaking/state/cli/index.js +71 -0
  257. package/dist/js/treeshaking/state/index.js +4 -0
  258. package/dist/js/treeshaking/state/plugins.js +14 -0
  259. package/dist/js/treeshaking/state/runtime/index.js +5 -0
  260. package/dist/js/treeshaking/state/runtime/plugin.js +198 -0
  261. package/dist/js/treeshaking/state/types.js +1 -0
  262. package/dist/types/document/constants.d.ts +0 -1
  263. package/dist/types/runtimeContext.d.ts +8 -0
  264. package/package.json +4 -3
@@ -19,9 +19,6 @@ _export(exports, {
19
19
  HTML_SEPARATOR: function() {
20
20
  return HTML_SEPARATOR;
21
21
  },
22
- HTML_CHUNKSMAP_SEPARATOR: function() {
23
- return HTML_CHUNKSMAP_SEPARATOR;
24
- },
25
22
  HTML_SSRDATASCRIPT_SEPARATOR: function() {
26
23
  return HTML_SSRDATASCRIPT_SEPARATOR;
27
24
  },
@@ -68,6 +65,7 @@ _export(exports, {
68
65
  return PLACEHOLDER_REPLACER_MAP;
69
66
  }
70
67
  });
68
+ const _constants = require("@modern-js/utils/universal/constants");
71
69
  const DOC_EXT = [
72
70
  "jsx",
73
71
  "tsx",
@@ -76,10 +74,9 @@ const DOC_EXT = [
76
74
  ];
77
75
  const DOCUMENT_META_PLACEHOLDER = encodeURIComponent("<%= meta %>");
78
76
  const HTML_SEPARATOR = "<!--<?- html ?>-->";
79
- const HTML_CHUNKSMAP_SEPARATOR = "<!--<?- chunksMap.js ?>-->";
80
77
  const HTML_SSRDATASCRIPT_SEPARATOR = "<!--<?- SSRDataScript ?>-->";
81
78
  const DOCUMENT_SSR_PLACEHOLDER = encodeURIComponent(HTML_SEPARATOR);
82
- const DOCUMENT_CHUNKSMAP_PLACEHOLDER = encodeURIComponent(HTML_CHUNKSMAP_SEPARATOR);
79
+ const DOCUMENT_CHUNKSMAP_PLACEHOLDER = encodeURIComponent(_constants.HTML_CHUNKSMAP_SEPARATOR);
83
80
  const DOCUMENT_SSRDATASCRIPT_PLACEHOLDER = encodeURIComponent(HTML_SSRDATASCRIPT_SEPARATOR);
84
81
  const DOCUMENT_FILE_NAME = "Document";
85
82
  const DOCUMENT_SCRIPTS_PLACEHOLDER = encodeURIComponent("<!-- chunk scripts placeholder -->");
@@ -94,6 +91,6 @@ const DOCUMENT_COMMENT_PLACEHOLDER_END = encodeURIComponent("<!-- comment-end --
94
91
  const PLACEHOLDER_REPLACER_MAP = {
95
92
  [DOCUMENT_NO_SCRIPTE_PLACEHOLDER]: `We're sorry but react app doesn't work properly without JavaScript enabled. Please enable it to continue.`,
96
93
  [DOCUMENT_SSR_PLACEHOLDER]: HTML_SEPARATOR,
97
- [DOCUMENT_CHUNKSMAP_PLACEHOLDER]: HTML_CHUNKSMAP_SEPARATOR,
94
+ [DOCUMENT_CHUNKSMAP_PLACEHOLDER]: _constants.HTML_CHUNKSMAP_SEPARATOR,
98
95
  [DOCUMENT_SSRDATASCRIPT_PLACEHOLDER]: HTML_SSRDATASCRIPT_SEPARATOR
99
96
  };
@@ -105,7 +105,23 @@ const routerPlugin = ({ serverBase = [], supportHtml5History = true, basename =
105
105
  hydrationData
106
106
  });
107
107
  const runtimeContext = (0, _react.useContext)(_core.RuntimeReactContext);
108
- runtimeContext.remixRouter = router;
108
+ Object.defineProperty(runtimeContext, "remixRouter", {
109
+ get() {
110
+ return router;
111
+ }
112
+ });
113
+ const originSubscribe = router.subscribe;
114
+ router.subscribe = (listener) => {
115
+ const wrapedListener = (...args) => {
116
+ const getBlockNavState = runtimeContext.unstable_getBlockNavState;
117
+ const blockRoute = getBlockNavState ? getBlockNavState() : false;
118
+ if (blockRoute) {
119
+ return;
120
+ }
121
+ return listener(...args);
122
+ };
123
+ return originSubscribe(wrapedListener);
124
+ };
109
125
  return /* @__PURE__ */ (0, _jsxruntime.jsx)(App, {
110
126
  ...props,
111
127
  children: /* @__PURE__ */ (0, _jsxruntime.jsx)(_router.RouterProvider, {
@@ -1,4 +1,5 @@
1
1
  import { _ as _define_property } from "@swc/helpers/_/_define_property";
2
+ import { HTML_CHUNKSMAP_SEPARATOR } from "@modern-js/utils/universal/constants";
2
3
  export var DOC_EXT = [
3
4
  "jsx",
4
5
  "tsx",
@@ -7,7 +8,6 @@ export var DOC_EXT = [
7
8
  ];
8
9
  export var DOCUMENT_META_PLACEHOLDER = encodeURIComponent("<%= meta %>");
9
10
  export var HTML_SEPARATOR = "<!--<?- html ?>-->";
10
- export var HTML_CHUNKSMAP_SEPARATOR = "<!--<?- chunksMap.js ?>-->";
11
11
  export var HTML_SSRDATASCRIPT_SEPARATOR = "<!--<?- SSRDataScript ?>-->";
12
12
  export var DOCUMENT_SSR_PLACEHOLDER = encodeURIComponent(HTML_SEPARATOR);
13
13
  export var DOCUMENT_CHUNKSMAP_PLACEHOLDER = encodeURIComponent(HTML_CHUNKSMAP_SEPARATOR);
@@ -1,5 +1,6 @@
1
1
  import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
2
2
  import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
+ import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
3
4
  import { jsx as _jsx } from "react/jsx-runtime";
4
5
  import { useContext } from "react";
5
6
  import { createBrowserRouter, createHashRouter, RouterProvider, createRoutesFromElements, useMatches, useLocation } from "@modern-js/utils/runtime/router";
@@ -86,7 +87,26 @@ export var routerPlugin = function(param) {
86
87
  hydrationData: hydrationData
87
88
  });
88
89
  var runtimeContext = useContext(RuntimeReactContext);
89
- runtimeContext.remixRouter = router;
90
+ Object.defineProperty(runtimeContext, "remixRouter", {
91
+ get: function get() {
92
+ return router;
93
+ }
94
+ });
95
+ var originSubscribe = router.subscribe;
96
+ router.subscribe = function(listener) {
97
+ var wrapedListener = function() {
98
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
99
+ args[_key] = arguments[_key];
100
+ }
101
+ var getBlockNavState = runtimeContext.unstable_getBlockNavState;
102
+ var blockRoute = getBlockNavState ? getBlockNavState() : false;
103
+ if (blockRoute) {
104
+ return;
105
+ }
106
+ return listener.apply(void 0, _to_consumable_array(args));
107
+ };
108
+ return originSubscribe(wrapedListener);
109
+ };
90
110
  return /* @__PURE__ */ _jsx(App, _object_spread_props(_object_spread({}, props), {
91
111
  children: /* @__PURE__ */ _jsx(RouterProvider, {
92
112
  router: router
@@ -1,3 +1,4 @@
1
+ import { HTML_CHUNKSMAP_SEPARATOR } from "@modern-js/utils/universal/constants";
1
2
  export const DOC_EXT = [
2
3
  "jsx",
3
4
  "tsx",
@@ -6,7 +7,6 @@ export const DOC_EXT = [
6
7
  ];
7
8
  export const DOCUMENT_META_PLACEHOLDER = encodeURIComponent("<%= meta %>");
8
9
  export const HTML_SEPARATOR = "<!--<?- html ?>-->";
9
- export const HTML_CHUNKSMAP_SEPARATOR = "<!--<?- chunksMap.js ?>-->";
10
10
  export const HTML_SSRDATASCRIPT_SEPARATOR = "<!--<?- SSRDataScript ?>-->";
11
11
  export const DOCUMENT_SSR_PLACEHOLDER = encodeURIComponent(HTML_SEPARATOR);
12
12
  export const DOCUMENT_CHUNKSMAP_PLACEHOLDER = encodeURIComponent(HTML_CHUNKSMAP_SEPARATOR);
@@ -78,7 +78,23 @@ export const routerPlugin = ({ serverBase = [], supportHtml5History = true, base
78
78
  hydrationData
79
79
  });
80
80
  const runtimeContext = useContext(RuntimeReactContext);
81
- runtimeContext.remixRouter = router;
81
+ Object.defineProperty(runtimeContext, "remixRouter", {
82
+ get() {
83
+ return router;
84
+ }
85
+ });
86
+ const originSubscribe = router.subscribe;
87
+ router.subscribe = (listener) => {
88
+ const wrapedListener = (...args) => {
89
+ const getBlockNavState = runtimeContext.unstable_getBlockNavState;
90
+ const blockRoute = getBlockNavState ? getBlockNavState() : false;
91
+ if (blockRoute) {
92
+ return;
93
+ }
94
+ return listener(...args);
95
+ };
96
+ return originSubscribe(wrapedListener);
97
+ };
82
98
  return /* @__PURE__ */ _jsx(App, {
83
99
  ...props,
84
100
  children: /* @__PURE__ */ _jsx(RouterProvider, {
@@ -0,0 +1,72 @@
1
+ var __async = (__this, __arguments, generator) => {
2
+ return new Promise((resolve, reject) => {
3
+ var fulfilled = (value) => {
4
+ try {
5
+ step(generator.next(value));
6
+ } catch (e) {
7
+ reject(e);
8
+ }
9
+ };
10
+ var rejected = (value) => {
11
+ try {
12
+ step(generator.throw(value));
13
+ } catch (e) {
14
+ reject(e);
15
+ }
16
+ };
17
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
18
+ step((generator = generator.apply(__this, __arguments)).next());
19
+ });
20
+ };
21
+ import path from "path";
22
+ import { PLUGIN_SCHEMAS, cleanRequireCache, isReact18 } from "@modern-js/utils";
23
+ import PluginState from "../state/cli";
24
+ import PluginSSR from "../ssr/cli";
25
+ import PluginRouter from "../router/cli";
26
+ import Document from "../document/cli";
27
+ var cli_default = () => ({
28
+ name: "@modern-js/runtime",
29
+ post: [
30
+ "@modern-js/plugin-router",
31
+ "@modern-js/plugin-ssr",
32
+ "@modern-js/plugin-document",
33
+ "@modern-js/plugin-state",
34
+ "@modern-js/plugin-design-token"
35
+ ],
36
+ usePlugins: [PluginState(), PluginSSR(), PluginRouter(), Document()],
37
+ setup: (api) => {
38
+ return {
39
+ config() {
40
+ const dir = api.useAppContext().internalDirectory || "";
41
+ process.env.IS_REACT18 = isReact18(path.join(dir, "../../")).toString();
42
+ return {
43
+ runtime: {},
44
+ runtimeByEntries: {},
45
+ source: {
46
+ alias: {
47
+ "styled-components": require.resolve("styled-components")
48
+ },
49
+ globalVars: {
50
+ "process.env.IS_REACT18": process.env.IS_REACT18
51
+ }
52
+ }
53
+ };
54
+ },
55
+ validateSchema() {
56
+ return PLUGIN_SCHEMAS["@modern-js/runtime"];
57
+ },
58
+ beforeRestart() {
59
+ return __async(this, null, function* () {
60
+ cleanRequireCache([
61
+ require.resolve("../state/cli"),
62
+ require.resolve("../router/cli"),
63
+ require.resolve("../ssr/cli")
64
+ ]);
65
+ });
66
+ }
67
+ };
68
+ }
69
+ });
70
+ export {
71
+ cli_default as default
72
+ };
@@ -0,0 +1,4 @@
1
+ const isBrowser = () => typeof window !== "undefined" && window.name !== "nodejs";
2
+ export {
3
+ isBrowser
4
+ };
File without changes
@@ -0,0 +1,10 @@
1
+ const APP_CONFIG_SYMBOL = "config";
2
+ const getConfig = (Component) => Component[APP_CONFIG_SYMBOL];
3
+ const defineConfig = (Component, config) => {
4
+ Component[APP_CONFIG_SYMBOL] = config;
5
+ return Component;
6
+ };
7
+ export {
8
+ defineConfig,
9
+ getConfig
10
+ };
@@ -0,0 +1,286 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ var __objRest = (source, exclude) => {
18
+ var target = {};
19
+ for (var prop in source)
20
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
21
+ target[prop] = source[prop];
22
+ if (source != null && __getOwnPropSymbols)
23
+ for (var prop of __getOwnPropSymbols(source)) {
24
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
25
+ target[prop] = source[prop];
26
+ }
27
+ return target;
28
+ };
29
+ var __async = (__this, __arguments, generator) => {
30
+ return new Promise((resolve, reject) => {
31
+ var fulfilled = (value) => {
32
+ try {
33
+ step(generator.next(value));
34
+ } catch (e) {
35
+ reject(e);
36
+ }
37
+ };
38
+ var rejected = (value) => {
39
+ try {
40
+ step(generator.throw(value));
41
+ } catch (e) {
42
+ reject(e);
43
+ }
44
+ };
45
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
46
+ step((generator = generator.apply(__this, __arguments)).next());
47
+ });
48
+ };
49
+ import { jsx } from "react/jsx-runtime";
50
+ import React, { useContext, useMemo } from "react";
51
+ import hoistNonReactStatics from "hoist-non-react-statics";
52
+ import { ROUTE_MANIFEST } from "@modern-js/utils/constants";
53
+ import {
54
+ RuntimeReactContext
55
+ } from "../runtime-context";
56
+ import { runtime } from "./plugin";
57
+ import { createLoaderManager } from "./loader/loaderManager";
58
+ const IS_REACT18 = process.env.IS_REACT18 === "true";
59
+ function isClientArgs(id) {
60
+ return typeof id === "string" || typeof HTMLElement !== "undefined" && id instanceof HTMLElement;
61
+ }
62
+ const runnerMap = /* @__PURE__ */ new WeakMap();
63
+ const getInitialContext = (runner) => ({
64
+ loaderManager: createLoaderManager({}),
65
+ runner,
66
+ isBrowser: true,
67
+ routeManifest: typeof window !== "undefined" && window[ROUTE_MANIFEST]
68
+ });
69
+ const createApp = ({ plugins }) => {
70
+ const appRuntime = runtime.clone();
71
+ appRuntime.usePlugin(...plugins);
72
+ return (App) => {
73
+ const runner = appRuntime.init();
74
+ const WrapperComponent = (props) => {
75
+ const element = React.createElement(
76
+ App || React.Fragment,
77
+ __spreadValues({}, props),
78
+ props.children
79
+ );
80
+ const context = useContext(RuntimeReactContext);
81
+ return runner.provide(
82
+ { element, props: __spreadValues({}, props), context },
83
+ {
84
+ onLast: ({ element: element2 }) => element2
85
+ }
86
+ );
87
+ };
88
+ if (App) {
89
+ hoistNonReactStatics(WrapperComponent, App);
90
+ }
91
+ const HOCApp = runner.hoc(
92
+ { App: WrapperComponent },
93
+ {
94
+ onLast: ({ App: App2 }) => {
95
+ const WrapComponent = (_a) => {
96
+ var _b = _a, { context } = _b, props = __objRest(_b, ["context"]);
97
+ let contextValue = context;
98
+ if (!(contextValue == null ? void 0 : contextValue.runner)) {
99
+ contextValue = getInitialContext(runner);
100
+ runner.init(
101
+ { context: contextValue },
102
+ {
103
+ onLast: ({ context: context1 }) => {
104
+ var _a2;
105
+ return (_a2 = App2 == null ? void 0 : App2.init) == null ? void 0 : _a2.call(App2, context1);
106
+ }
107
+ }
108
+ );
109
+ }
110
+ return /* @__PURE__ */ jsx(RuntimeReactContext.Provider, {
111
+ value: contextValue,
112
+ children: /* @__PURE__ */ jsx(App2, __spreadValues({}, props))
113
+ });
114
+ };
115
+ return hoistNonReactStatics(WrapComponent, App2);
116
+ }
117
+ }
118
+ );
119
+ runnerMap.set(HOCApp, runner);
120
+ return HOCApp;
121
+ };
122
+ };
123
+ const bootstrap = (BootApp, id, root, ReactDOM) => __async(void 0, null, function* () {
124
+ var _a, _b;
125
+ let App = BootApp;
126
+ let runner = runnerMap.get(App);
127
+ if (!runner) {
128
+ App = createApp({ plugins: [] })(App);
129
+ runner = runnerMap.get(App);
130
+ }
131
+ const context = getInitialContext(runner);
132
+ const runInit = (_context) => runner.init(
133
+ { context: _context },
134
+ {
135
+ onLast: ({ context: context1 }) => {
136
+ var _a2;
137
+ return (_a2 = App == null ? void 0 : App.init) == null ? void 0 : _a2.call(App, context1);
138
+ }
139
+ }
140
+ );
141
+ if (!id) {
142
+ return React.createElement(App, {
143
+ context
144
+ });
145
+ }
146
+ const isBrowser = typeof window !== "undefined" && window.name !== "nodejs";
147
+ if (isBrowser) {
148
+ if (isClientArgs(id)) {
149
+ const ssrData = window._SSR_DATA;
150
+ const loadersData = ((_a = ssrData == null ? void 0 : ssrData.data) == null ? void 0 : _a.loadersData) || {};
151
+ const initialLoadersState = Object.keys(loadersData).reduce(
152
+ (res, key) => {
153
+ const loaderData = loadersData[key];
154
+ if (loaderData.loading !== false) {
155
+ return res;
156
+ }
157
+ res[key] = loaderData;
158
+ return res;
159
+ },
160
+ {}
161
+ );
162
+ Object.assign(context, __spreadValues({
163
+ loaderManager: createLoaderManager(initialLoadersState, {
164
+ skipStatic: true
165
+ })
166
+ }, ssrData ? { ssrContext: ssrData == null ? void 0 : ssrData.context } : {}));
167
+ context.initialData = (_b = ssrData == null ? void 0 : ssrData.data) == null ? void 0 : _b.initialData;
168
+ const initialData = yield runInit(context);
169
+ if (initialData) {
170
+ context.initialData = initialData;
171
+ }
172
+ const rootElement = typeof id !== "string" ? id : document.getElementById(id || "root");
173
+ if (!ReactDOM) {
174
+ throw Error("The `bootstrap` need provide `ReactDOM` parameter");
175
+ }
176
+ const ModernRender = (App2) => {
177
+ if (IS_REACT18) {
178
+ if (root) {
179
+ root.render(App2);
180
+ } else if (ReactDOM.createRoot) {
181
+ ReactDOM.createRoot(rootElement).render(App2);
182
+ } else {
183
+ throw Error(
184
+ "The `bootstrap` `ReactDOM` parameter needs to provide the `createRoot` method"
185
+ );
186
+ }
187
+ } else {
188
+ if (!ReactDOM.render) {
189
+ throw Error(
190
+ "The `bootstrap` `ReactDOM` parameter needs to provide the `render` method"
191
+ );
192
+ }
193
+ ReactDOM.render(App2, rootElement);
194
+ }
195
+ };
196
+ const ModernHydrate = (App2, callback) => {
197
+ if (IS_REACT18) {
198
+ if (!ReactDOM.hydrateRoot) {
199
+ throw Error(
200
+ "The `bootstrap` `ReactDOM` parameter needs to provide the `hydrateRoot` method"
201
+ );
202
+ }
203
+ ReactDOM.hydrateRoot(rootElement, App2);
204
+ } else {
205
+ if (!ReactDOM.hydrate) {
206
+ throw Error(
207
+ "The `bootstrap` `ReactDOM` parameter needs to provide the `hydrate` method"
208
+ );
209
+ }
210
+ ReactDOM.hydrate(App2, rootElement, callback);
211
+ }
212
+ };
213
+ return runner.client(
214
+ {
215
+ App,
216
+ context,
217
+ ModernRender,
218
+ ModernHydrate
219
+ },
220
+ {
221
+ onLast: ({ App: App2 }) => {
222
+ ModernRender(React.createElement(App2, { context }));
223
+ }
224
+ }
225
+ );
226
+ } else {
227
+ throw Error(
228
+ "`bootstrap` needs id in browser environment, it needs to be string or element"
229
+ );
230
+ }
231
+ } else {
232
+ Object.assign(context, {
233
+ ssrContext: id,
234
+ isBrowser: false,
235
+ loaderManager: createLoaderManager(
236
+ {},
237
+ {
238
+ skipNonStatic: id.staticGenerate,
239
+ skipStatic: process.env.NODE_ENV === "production" && !id.staticGenerate
240
+ }
241
+ )
242
+ });
243
+ const isRedirectResponse = (result) => {
244
+ if (typeof Response !== "undefined" && result instanceof Response && result.status >= 300 && result.status <= 399) {
245
+ const { status } = result;
246
+ const redirectUrl = result.headers.get("Location") || "/";
247
+ const { ssrContext } = context;
248
+ if (ssrContext) {
249
+ ssrContext.res.statusCode = status;
250
+ ssrContext.res.setHeader("Location", redirectUrl);
251
+ ssrContext.redirection = ssrContext.redirection || {};
252
+ ssrContext.redirection.status = status;
253
+ ssrContext.redirection.url = redirectUrl;
254
+ }
255
+ return true;
256
+ }
257
+ return false;
258
+ };
259
+ const initialData = yield runInit(context);
260
+ if (!isRedirectResponse(initialData)) {
261
+ context.initialData = initialData;
262
+ return runner.server({
263
+ App,
264
+ context
265
+ });
266
+ }
267
+ }
268
+ });
269
+ const useRuntimeContext = () => {
270
+ const context = useContext(RuntimeReactContext);
271
+ const memoizedContext = useMemo(
272
+ () => context.runner.pickContext(
273
+ { context, pickedContext: {} },
274
+ {
275
+ onLast: ({ pickedContext }) => pickedContext
276
+ }
277
+ ),
278
+ [context]
279
+ );
280
+ return memoizedContext;
281
+ };
282
+ export {
283
+ bootstrap,
284
+ createApp,
285
+ useRuntimeContext
286
+ };
@@ -0,0 +1,16 @@
1
+ import { createPlugin, createRuntime, runtime, registerInit } from "./plugin";
2
+ import { defineConfig, getConfig } from "./app-config";
3
+ export * from "./compatible";
4
+ import { RuntimeReactContext, ServerRouterContext } from "../runtime-context";
5
+ export * from "./loader";
6
+ export * from "@modern-js/plugin";
7
+ export {
8
+ RuntimeReactContext,
9
+ ServerRouterContext,
10
+ createPlugin,
11
+ createRuntime,
12
+ defineConfig,
13
+ getConfig,
14
+ registerInit,
15
+ runtime
16
+ };
@@ -0,0 +1,4 @@
1
+ import { default as default2 } from "./useLoader";
2
+ export {
3
+ default2 as useLoader
4
+ };