@modern-js/runtime 2.31.2 → 2.31.3-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 (241) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cjs/cli/index.js +2 -1
  3. package/dist/cjs/document/Style.js +2 -2
  4. package/dist/cjs/router/runtime/plugin.node.js +7 -1
  5. package/dist/esm/cli/index.js +2 -1
  6. package/dist/esm/document/Style.js +2 -2
  7. package/dist/esm/router/runtime/plugin.node.js +8 -2
  8. package/dist/esm-node/cli/index.js +2 -1
  9. package/dist/esm-node/document/Style.js +2 -2
  10. package/dist/esm-node/router/runtime/plugin.node.js +7 -1
  11. package/dist/js/modern/cli/index.js +72 -0
  12. package/dist/js/modern/common.js +4 -0
  13. package/dist/js/modern/config.js +0 -0
  14. package/dist/js/modern/core/app-config.js +10 -0
  15. package/dist/js/modern/core/compatible.js +285 -0
  16. package/dist/js/modern/core/index.js +16 -0
  17. package/dist/js/modern/core/loader/index.js +4 -0
  18. package/dist/js/modern/core/loader/loaderManager.js +165 -0
  19. package/dist/js/modern/core/loader/useLoader.js +114 -0
  20. package/dist/js/modern/core/plugin.js +58 -0
  21. package/dist/js/modern/document/Body.js +23 -0
  22. package/dist/js/modern/document/DocumentContext.js +9 -0
  23. package/dist/js/modern/document/DocumentStructrueContext.js +11 -0
  24. package/dist/js/modern/document/Head.js +27 -0
  25. package/dist/js/modern/document/Html.js +78 -0
  26. package/dist/js/modern/document/Links.js +10 -0
  27. package/dist/js/modern/document/Root.js +33 -0
  28. package/dist/js/modern/document/Script.js +20 -0
  29. package/dist/js/modern/document/Scripts.js +10 -0
  30. package/dist/js/modern/document/cli/index.js +228 -0
  31. package/dist/js/modern/document/constants.js +49 -0
  32. package/dist/js/modern/document/index.js +10 -0
  33. package/dist/js/modern/exports/head.js +6 -0
  34. package/dist/js/modern/exports/loadable.js +6 -0
  35. package/dist/js/modern/exports/server.js +4 -0
  36. package/dist/js/modern/exports/styled.js +6 -0
  37. package/dist/js/modern/index.js +22 -0
  38. package/dist/js/modern/router/cli/index.js +120 -0
  39. package/dist/js/modern/router/index.js +7 -0
  40. package/dist/js/modern/router/runtime/DefaultNotFound.js +14 -0
  41. package/dist/js/modern/router/runtime/index.js +9 -0
  42. package/dist/js/modern/router/runtime/plugin.js +104 -0
  43. package/dist/js/modern/router/runtime/plugin.node.js +149 -0
  44. package/dist/js/modern/router/runtime/server.js +1 -0
  45. package/dist/js/modern/router/runtime/types.js +0 -0
  46. package/dist/js/modern/router/runtime/utils.js +196 -0
  47. package/dist/js/modern/router/runtime/withRouter.js +36 -0
  48. package/dist/js/modern/runtime-context.js +7 -0
  49. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
  50. package/dist/js/modern/ssr/cli/index.js +172 -0
  51. package/dist/js/modern/ssr/index.js +159 -0
  52. package/dist/js/modern/ssr/index.node.js +79 -0
  53. package/dist/js/modern/ssr/prefetch.js +69 -0
  54. package/dist/js/modern/ssr/react/index.js +6 -0
  55. package/dist/js/modern/ssr/react/nossr/index.js +14 -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/loadable.js +24 -0
  67. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +94 -0
  68. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +12 -0
  69. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +22 -0
  70. package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
  71. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +171 -0
  72. package/dist/js/modern/ssr/serverRender/renderToString/index.js +52 -0
  73. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +48 -0
  74. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +8 -0
  75. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +11 -0
  76. package/dist/js/modern/ssr/serverRender/renderToString/template.js +58 -0
  77. package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -0
  78. package/dist/js/modern/ssr/serverRender/types.js +4 -0
  79. package/dist/js/modern/ssr/serverRender/utils.js +22 -0
  80. package/dist/js/modern/ssr/utils.js +81 -0
  81. package/dist/js/modern/state/cli/index.js +83 -0
  82. package/dist/js/modern/state/index.js +7 -0
  83. package/dist/js/modern/state/plugins.js +13 -0
  84. package/dist/js/modern/state/runtime/index.js +9 -0
  85. package/dist/js/modern/state/runtime/plugin.js +97 -0
  86. package/dist/js/modern/state/types.js +0 -0
  87. package/dist/js/node/cli/index.js +99 -0
  88. package/dist/js/node/common.js +27 -0
  89. package/dist/js/node/config.js +15 -0
  90. package/dist/js/node/core/app-config.js +34 -0
  91. package/dist/js/node/core/compatible.js +312 -0
  92. package/dist/js/node/core/index.js +47 -0
  93. package/dist/js/node/core/loader/index.js +33 -0
  94. package/dist/js/node/core/loader/loaderManager.js +195 -0
  95. package/dist/js/node/core/loader/useLoader.js +132 -0
  96. package/dist/js/node/core/plugin.js +80 -0
  97. package/dist/js/node/document/Body.js +43 -0
  98. package/dist/js/node/document/DocumentContext.js +38 -0
  99. package/dist/js/node/document/DocumentStructrueContext.js +40 -0
  100. package/dist/js/node/document/Head.js +51 -0
  101. package/dist/js/node/document/Html.js +101 -0
  102. package/dist/js/node/document/Links.js +33 -0
  103. package/dist/js/node/document/Root.js +57 -0
  104. package/dist/js/node/document/Script.js +40 -0
  105. package/dist/js/node/document/Scripts.js +33 -0
  106. package/dist/js/node/document/cli/index.js +240 -0
  107. package/dist/js/node/document/constants.js +86 -0
  108. package/dist/js/node/document/index.js +26 -0
  109. package/dist/js/node/exports/head.js +34 -0
  110. package/dist/js/node/exports/loadable.js +34 -0
  111. package/dist/js/node/exports/server.js +27 -0
  112. package/dist/js/node/exports/styled.js +34 -0
  113. package/dist/js/node/index.js +44 -0
  114. package/dist/js/node/router/cli/index.js +135 -0
  115. package/dist/js/node/router/index.js +37 -0
  116. package/dist/js/node/router/runtime/DefaultNotFound.js +37 -0
  117. package/dist/js/node/router/runtime/index.js +33 -0
  118. package/dist/js/node/router/runtime/plugin.js +127 -0
  119. package/dist/js/node/router/runtime/plugin.node.js +175 -0
  120. package/dist/js/node/router/runtime/server.js +17 -0
  121. package/dist/js/node/router/runtime/types.js +15 -0
  122. package/dist/js/node/router/runtime/utils.js +221 -0
  123. package/dist/js/node/router/runtime/withRouter.js +57 -0
  124. package/dist/js/node/runtime-context.js +31 -0
  125. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
  126. package/dist/js/node/ssr/cli/index.js +190 -0
  127. package/dist/js/node/ssr/index.js +185 -0
  128. package/dist/js/node/ssr/index.node.js +107 -0
  129. package/dist/js/node/ssr/prefetch.js +90 -0
  130. package/dist/js/node/ssr/react/index.js +30 -0
  131. package/dist/js/node/ssr/react/nossr/index.js +43 -0
  132. package/dist/js/node/ssr/react/prerender/index.js +130 -0
  133. package/dist/js/node/ssr/react/prerender/type.js +15 -0
  134. package/dist/js/node/ssr/react/prerender/util.js +123 -0
  135. package/dist/js/node/ssr/react/withCallback/index.js +38 -0
  136. package/dist/js/node/ssr/serverRender/helmet.js +65 -0
  137. package/dist/js/node/ssr/serverRender/index.js +56 -0
  138. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +65 -0
  139. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +35 -0
  140. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +87 -0
  141. package/dist/js/node/ssr/serverRender/renderToStream/index.js +87 -0
  142. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +47 -0
  143. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +111 -0
  144. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +35 -0
  145. package/dist/js/node/ssr/serverRender/renderToStream/template.js +45 -0
  146. package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
  147. package/dist/js/node/ssr/serverRender/renderToString/entry.js +196 -0
  148. package/dist/js/node/ssr/serverRender/renderToString/index.js +81 -0
  149. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +71 -0
  150. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +31 -0
  151. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +34 -0
  152. package/dist/js/node/ssr/serverRender/renderToString/template.js +82 -0
  153. package/dist/js/node/ssr/serverRender/renderToString/type.js +32 -0
  154. package/dist/js/node/ssr/serverRender/types.js +27 -0
  155. package/dist/js/node/ssr/serverRender/utils.js +46 -0
  156. package/dist/js/node/ssr/utils.js +106 -0
  157. package/dist/js/node/state/cli/index.js +100 -0
  158. package/dist/js/node/state/index.js +37 -0
  159. package/dist/js/node/state/plugins.js +45 -0
  160. package/dist/js/node/state/runtime/index.js +40 -0
  161. package/dist/js/node/state/runtime/plugin.js +121 -0
  162. package/dist/js/node/state/types.js +15 -0
  163. package/dist/js/treeshaking/cli/index.js +186 -0
  164. package/dist/js/treeshaking/common.js +4 -0
  165. package/dist/js/treeshaking/config.js +1 -0
  166. package/dist/js/treeshaking/core/app-config.js +9 -0
  167. package/dist/js/treeshaking/core/compatible.js +485 -0
  168. package/dist/js/treeshaking/core/index.js +7 -0
  169. package/dist/js/treeshaking/core/loader/index.js +2 -0
  170. package/dist/js/treeshaking/core/loader/loaderManager.js +406 -0
  171. package/dist/js/treeshaking/core/loader/useLoader.js +188 -0
  172. package/dist/js/treeshaking/core/plugin.js +176 -0
  173. package/dist/js/treeshaking/document/Body.js +18 -0
  174. package/dist/js/treeshaking/document/DocumentContext.js +7 -0
  175. package/dist/js/treeshaking/document/DocumentStructrueContext.js +9 -0
  176. package/dist/js/treeshaking/document/Head.js +24 -0
  177. package/dist/js/treeshaking/document/Html.js +99 -0
  178. package/dist/js/treeshaking/document/Links.js +8 -0
  179. package/dist/js/treeshaking/document/Root.js +26 -0
  180. package/dist/js/treeshaking/document/Script.js +15 -0
  181. package/dist/js/treeshaking/document/Scripts.js +8 -0
  182. package/dist/js/treeshaking/document/cli/index.js +393 -0
  183. package/dist/js/treeshaking/document/constants.js +35 -0
  184. package/dist/js/treeshaking/document/index.js +10 -0
  185. package/dist/js/treeshaking/exports/head.js +4 -0
  186. package/dist/js/treeshaking/exports/loadable.js +4 -0
  187. package/dist/js/treeshaking/exports/server.js +4 -0
  188. package/dist/js/treeshaking/exports/styled.js +4 -0
  189. package/dist/js/treeshaking/index.js +3 -0
  190. package/dist/js/treeshaking/router/cli/index.js +148 -0
  191. package/dist/js/treeshaking/router/index.js +4 -0
  192. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -0
  193. package/dist/js/treeshaking/router/runtime/index.js +6 -0
  194. package/dist/js/treeshaking/router/runtime/plugin.js +132 -0
  195. package/dist/js/treeshaking/router/runtime/plugin.node.js +390 -0
  196. package/dist/js/treeshaking/router/runtime/server.js +1 -0
  197. package/dist/js/treeshaking/router/runtime/types.js +1 -0
  198. package/dist/js/treeshaking/router/runtime/utils.js +260 -0
  199. package/dist/js/treeshaking/router/runtime/withRouter.js +67 -0
  200. package/dist/js/treeshaking/runtime-context.js +4 -0
  201. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
  202. package/dist/js/treeshaking/ssr/cli/index.js +217 -0
  203. package/dist/js/treeshaking/ssr/index.js +315 -0
  204. package/dist/js/treeshaking/ssr/index.node.js +240 -0
  205. package/dist/js/treeshaking/ssr/prefetch.js +199 -0
  206. package/dist/js/treeshaking/ssr/react/index.js +3 -0
  207. package/dist/js/treeshaking/ssr/react/nossr/index.js +58 -0
  208. package/dist/js/treeshaking/ssr/react/prerender/index.js +237 -0
  209. package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
  210. package/dist/js/treeshaking/ssr/react/prerender/util.js +108 -0
  211. package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -0
  212. package/dist/js/treeshaking/ssr/serverRender/helmet.js +42 -0
  213. package/dist/js/treeshaking/ssr/serverRender/index.js +169 -0
  214. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +34 -0
  215. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -0
  216. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +115 -0
  217. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +165 -0
  218. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +22 -0
  219. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +119 -0
  220. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -0
  221. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +63 -0
  222. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
  223. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +393 -0
  224. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +165 -0
  225. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +56 -0
  226. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +10 -0
  227. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -0
  228. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +156 -0
  229. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -0
  230. package/dist/js/treeshaking/ssr/serverRender/types.js +2 -0
  231. package/dist/js/treeshaking/ssr/serverRender/utils.js +69 -0
  232. package/dist/js/treeshaking/ssr/utils.js +134 -0
  233. package/dist/js/treeshaking/state/cli/index.js +71 -0
  234. package/dist/js/treeshaking/state/index.js +4 -0
  235. package/dist/js/treeshaking/state/plugins.js +14 -0
  236. package/dist/js/treeshaking/state/runtime/index.js +5 -0
  237. package/dist/js/treeshaking/state/runtime/plugin.js +198 -0
  238. package/dist/js/treeshaking/state/types.js +1 -0
  239. package/dist/types/router/runtime/index.d.ts +2 -1
  240. package/dist/types/router/runtime/types.d.ts +12 -2
  241. package/package.json +18 -18
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 Modern.js
3
+ Copyright (c) 2021-present Modern.js
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -55,7 +55,8 @@ const runtimePlugin = () => ({
55
55
  * But it will not be installed under the user project.
56
56
  * So need to add alias
57
57
  */
58
- "styled-components": require.resolve("styled-components")
58
+ "styled-components": require.resolve("styled-components"),
59
+ "@modern-js/utils": require.resolve("@modern-js/utils")
59
60
  },
60
61
  globalVars: {
61
62
  "process.env.IS_REACT18": process.env.IS_REACT18
@@ -15,11 +15,11 @@ const _constants = require("./constants");
15
15
  function Style(props) {
16
16
  const { content, children } = props;
17
17
  const contentStr = children || content;
18
- const contentIIFE = encodeURIComponent(`(${contentStr})()`);
18
+ const styleContent = encodeURIComponent(`${contentStr}`);
19
19
  return /* @__PURE__ */ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
20
20
  children: [
21
21
  `${_constants.DOCUMENT_STYLE_PLACEHOLDER_START}`,
22
- `${contentIIFE}`,
22
+ `${styleContent}`,
23
23
  `${_constants.DOCUMENT_STYLE_PLACEHOLDER_END}`
24
24
  ]
25
25
  });
@@ -28,6 +28,7 @@ const _remixrouter = require("@modern-js/utils/runtime/remix-router");
28
28
  const _router = require("@modern-js/utils/runtime-node/router");
29
29
  const _hoistnonreactstatics = /* @__PURE__ */ _interop_require_default._(require("hoist-non-react-statics"));
30
30
  const _router1 = require("@modern-js/utils/runtime/router");
31
+ const _runtimenode = require("@modern-js/utils/runtime-node");
31
32
  const _core = require("../../core");
32
33
  const _utils = require("./utils");
33
34
  const _fetch = require("./fetch");
@@ -89,7 +90,12 @@ const routerPlugin = ({ basename = "", routesConfig, createRoutes }) => {
89
90
  basename: _basename
90
91
  });
91
92
  const remixRequest = createFetchRequest(request);
92
- const routerContext = await query(remixRequest);
93
+ const requestContext = (0, _runtimenode.createRequestContext)();
94
+ const { reporter } = context.ssrContext;
95
+ requestContext.set(_runtimenode.reporterCtx, reporter);
96
+ const routerContext = await query(remixRequest, {
97
+ requestContext
98
+ });
93
99
  if (routerContext instanceof Response) {
94
100
  return routerContext;
95
101
  }
@@ -39,7 +39,8 @@ export var runtimePlugin = function() {
39
39
  * But it will not be installed under the user project.
40
40
  * So need to add alias
41
41
  */
42
- "styled-components": require.resolve("styled-components")
42
+ "styled-components": require.resolve("styled-components"),
43
+ "@modern-js/utils": require.resolve("@modern-js/utils")
43
44
  },
44
45
  globalVars: {
45
46
  "process.env.IS_REACT18": process.env.IS_REACT18
@@ -3,11 +3,11 @@ import { DOCUMENT_STYLE_PLACEHOLDER_START, DOCUMENT_STYLE_PLACEHOLDER_END } from
3
3
  export function Style(props) {
4
4
  var content = props.content, children = props.children;
5
5
  var contentStr = children || content;
6
- var contentIIFE = encodeURIComponent("(".concat(contentStr, ")()"));
6
+ var styleContent = encodeURIComponent("".concat(contentStr));
7
7
  return /* @__PURE__ */ _jsxs(_Fragment, {
8
8
  children: [
9
9
  "".concat(DOCUMENT_STYLE_PLACEHOLDER_START),
10
- "".concat(contentIIFE),
10
+ "".concat(styleContent),
11
11
  "".concat(DOCUMENT_STYLE_PLACEHOLDER_END)
12
12
  ]
13
13
  });
@@ -10,6 +10,7 @@ import { createStaticHandler } from "@modern-js/utils/runtime/remix-router";
10
10
  import { createStaticRouter, StaticRouterProvider } from "@modern-js/utils/runtime-node/router";
11
11
  import hoistNonReactStatics from "hoist-non-react-statics";
12
12
  import { createRoutesFromElements } from "@modern-js/utils/runtime/router";
13
+ import { createRequestContext, reporterCtx } from "@modern-js/utils/runtime-node";
13
14
  import { RuntimeReactContext } from "../../core";
14
15
  import { renderRoutes, urlJoin } from "./utils";
15
16
  import { installGlobals } from "./fetch";
@@ -87,7 +88,7 @@ export var routerPlugin = function(param) {
87
88
  init: function init(param2, next) {
88
89
  var context = param2.context;
89
90
  return _async_to_generator(function() {
90
- var _context_ssrContext, request, ssrMode, nonce, baseUrl, _basename, routes, runner, query, remixRequest, routerContext, router;
91
+ var _context_ssrContext, request, ssrMode, nonce, baseUrl, _basename, routes, runner, query, remixRequest, requestContext, reporter, routerContext, router;
91
92
  return _ts_generator(this, function(_state) {
92
93
  switch (_state.label) {
93
94
  case 0:
@@ -115,9 +116,14 @@ export var routerPlugin = function(param) {
115
116
  basename: _basename
116
117
  }).query;
117
118
  remixRequest = createFetchRequest(request);
119
+ requestContext = createRequestContext();
120
+ reporter = context.ssrContext.reporter;
121
+ requestContext.set(reporterCtx, reporter);
118
122
  return [
119
123
  4,
120
- query(remixRequest)
124
+ query(remixRequest, {
125
+ requestContext: requestContext
126
+ })
121
127
  ];
122
128
  case 1:
123
129
  routerContext = _state.sent();
@@ -35,7 +35,8 @@ export const runtimePlugin = () => ({
35
35
  * But it will not be installed under the user project.
36
36
  * So need to add alias
37
37
  */
38
- "styled-components": require.resolve("styled-components")
38
+ "styled-components": require.resolve("styled-components"),
39
+ "@modern-js/utils": require.resolve("@modern-js/utils")
39
40
  },
40
41
  globalVars: {
41
42
  "process.env.IS_REACT18": process.env.IS_REACT18
@@ -3,11 +3,11 @@ import { DOCUMENT_STYLE_PLACEHOLDER_START, DOCUMENT_STYLE_PLACEHOLDER_END } from
3
3
  export function Style(props) {
4
4
  const { content, children } = props;
5
5
  const contentStr = children || content;
6
- const contentIIFE = encodeURIComponent(`(${contentStr})()`);
6
+ const styleContent = encodeURIComponent(`${contentStr}`);
7
7
  return /* @__PURE__ */ _jsxs(_Fragment, {
8
8
  children: [
9
9
  `${DOCUMENT_STYLE_PLACEHOLDER_START}`,
10
- `${contentIIFE}`,
10
+ `${styleContent}`,
11
11
  `${DOCUMENT_STYLE_PLACEHOLDER_END}`
12
12
  ]
13
13
  });
@@ -4,6 +4,7 @@ import { createStaticHandler } from "@modern-js/utils/runtime/remix-router";
4
4
  import { createStaticRouter, StaticRouterProvider } from "@modern-js/utils/runtime-node/router";
5
5
  import hoistNonReactStatics from "hoist-non-react-statics";
6
6
  import { createRoutesFromElements } from "@modern-js/utils/runtime/router";
7
+ import { createRequestContext, reporterCtx } from "@modern-js/utils/runtime-node";
7
8
  import { RuntimeReactContext } from "../../core";
8
9
  import { renderRoutes, urlJoin } from "./utils";
9
10
  import { installGlobals } from "./fetch";
@@ -65,7 +66,12 @@ export const routerPlugin = ({ basename = "", routesConfig, createRoutes }) => {
65
66
  basename: _basename
66
67
  });
67
68
  const remixRequest = createFetchRequest(request);
68
- const routerContext = await query(remixRequest);
69
+ const requestContext = createRequestContext();
70
+ const { reporter } = context.ssrContext;
71
+ requestContext.set(reporterCtx, reporter);
72
+ const routerContext = await query(remixRequest, {
73
+ requestContext
74
+ });
69
75
  if (routerContext instanceof Response) {
70
76
  return routerContext;
71
77
  }
@@ -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,285 @@
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.status = status;
252
+ ssrContext.redirection.url = redirectUrl;
253
+ }
254
+ return true;
255
+ }
256
+ return false;
257
+ };
258
+ const initialData = yield runInit(context);
259
+ if (!isRedirectResponse(initialData)) {
260
+ context.initialData = initialData;
261
+ return runner.server({
262
+ App,
263
+ context
264
+ });
265
+ }
266
+ }
267
+ });
268
+ const useRuntimeContext = () => {
269
+ const context = useContext(RuntimeReactContext);
270
+ const memoizedContext = useMemo(
271
+ () => context.runner.pickContext(
272
+ { context, pickedContext: {} },
273
+ {
274
+ onLast: ({ pickedContext }) => pickedContext
275
+ }
276
+ ),
277
+ [context]
278
+ );
279
+ return memoizedContext;
280
+ };
281
+ export {
282
+ bootstrap,
283
+ createApp,
284
+ useRuntimeContext
285
+ };
@@ -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
+ };