@bleedingdev/modern-js-runtime 3.9.0-ultramodern.2 → 3.9.0-ultramodern.20

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 (209) hide show
  1. package/dist/cjs/cli/code.js +3 -1
  2. package/dist/cjs/cli/ssr/index.js +2 -74
  3. package/dist/cjs/cli/ssr/loadable-bundler-plugin.js +2 -0
  4. package/dist/cjs/cli/template.server.js +1 -2
  5. package/dist/cjs/core/browser/hydrate.js +9 -10
  6. package/dist/cjs/core/browser/index.js +4 -5
  7. package/dist/cjs/core/context/index.js +12 -45
  8. package/dist/cjs/core/context/public.js +4 -7
  9. package/dist/cjs/core/context/runtime.js +10 -4
  10. package/dist/cjs/core/index.js +3 -3
  11. package/dist/cjs/core/plugin/index.js +2 -2
  12. package/dist/cjs/core/react/index.js +3 -3
  13. package/dist/cjs/core/react/wrapper.js +23 -67
  14. package/dist/cjs/core/server/helmet.js +5 -4
  15. package/dist/cjs/core/server/requestHandler.js +6 -7
  16. package/dist/cjs/core/server/requestResponse.js +4 -4
  17. package/dist/cjs/core/server/routerCleanup.js +2 -2
  18. package/dist/cjs/core/server/shared.js +171 -4
  19. package/dist/cjs/core/server/stream/afterTemplate.js +21 -16
  20. package/dist/cjs/core/server/stream/beforeTemplate.js +37 -28
  21. package/dist/cjs/core/server/stream/beforeTemplate.worker.js +30 -23
  22. package/dist/cjs/core/server/stream/createReadableStream.js +222 -125
  23. package/dist/cjs/core/server/stream/createReadableStream.worker.js +171 -90
  24. package/dist/cjs/core/server/stream/deferredScript.js +3 -3
  25. package/dist/cjs/core/server/stream/shared.js +6 -2
  26. package/dist/cjs/core/server/string/index.js +104 -66
  27. package/dist/cjs/core/server/string/loadable.js +38 -23
  28. package/dist/cjs/core/server/string/ssrData.js +5 -12
  29. package/dist/cjs/core/server/utils.js +1 -2
  30. package/dist/cjs/exports/head.js +7 -14
  31. package/dist/cjs/internal.js +2 -2
  32. package/dist/cjs/router/cli/code/nestedRoutes.js +1 -2
  33. package/dist/cjs/router/cli/code/templates.js +1 -1
  34. package/dist/cjs/router/cli/code/utils.js +2 -2
  35. package/dist/cjs/router/runtime/DeferredDataScripts.node.js +10 -9
  36. package/dist/cjs/router/runtime/PrefetchLink.js +69 -125
  37. package/dist/cjs/router/runtime/hooks.js +13 -2
  38. package/dist/cjs/router/runtime/internal.js +7 -45
  39. package/dist/cjs/router/runtime/plugin.js +19 -34
  40. package/dist/cjs/router/runtime/plugin.node.js +9 -37
  41. package/dist/cjs/router/runtime/redirect.js +1 -1
  42. package/dist/esm/cli/code.mjs +3 -1
  43. package/dist/esm/cli/ssr/index.mjs +3 -72
  44. package/dist/esm/cli/ssr/loadable-bundler-plugin.mjs +2 -0
  45. package/dist/esm/cli/template.server.mjs +1 -2
  46. package/dist/esm/core/browser/hydrate.mjs +10 -11
  47. package/dist/esm/core/browser/index.mjs +1 -2
  48. package/dist/esm/core/context/index.mjs +2 -5
  49. package/dist/esm/core/context/public.mjs +1 -5
  50. package/dist/esm/core/context/runtime.mjs +6 -3
  51. package/dist/esm/core/index.mjs +1 -1
  52. package/dist/esm/core/plugin/index.mjs +1 -1
  53. package/dist/esm/core/react/index.mjs +1 -1
  54. package/dist/esm/core/react/wrapper.mjs +20 -67
  55. package/dist/esm/core/server/helmet.mjs +5 -4
  56. package/dist/esm/core/server/requestHandler.mjs +1 -2
  57. package/dist/esm/core/server/requestResponse.mjs +3 -3
  58. package/dist/esm/core/server/routerCleanup.mjs +1 -1
  59. package/dist/esm/core/server/shared.mjs +153 -1
  60. package/dist/esm/core/server/stream/afterTemplate.mjs +23 -18
  61. package/dist/esm/core/server/stream/beforeTemplate.mjs +40 -31
  62. package/dist/esm/core/server/stream/beforeTemplate.worker.mjs +33 -26
  63. package/dist/esm/core/server/stream/createReadableStream.mjs +220 -123
  64. package/dist/esm/core/server/stream/createReadableStream.worker.mjs +161 -90
  65. package/dist/esm/core/server/stream/deferredScript.mjs +3 -3
  66. package/dist/esm/core/server/stream/shared.mjs +4 -3
  67. package/dist/esm/core/server/string/index.mjs +106 -68
  68. package/dist/esm/core/server/string/loadable.mjs +38 -23
  69. package/dist/esm/core/server/string/ssrData.mjs +5 -12
  70. package/dist/esm/core/server/utils.mjs +1 -2
  71. package/dist/esm/exports/head.mjs +7 -14
  72. package/dist/esm/internal.mjs +1 -1
  73. package/dist/esm/router/cli/code/nestedRoutes.mjs +1 -2
  74. package/dist/esm/router/cli/code/templates.mjs +1 -1
  75. package/dist/esm/router/cli/code/utils.mjs +2 -2
  76. package/dist/esm/router/runtime/DeferredDataScripts.node.mjs +10 -9
  77. package/dist/esm/router/runtime/PrefetchLink.mjs +68 -124
  78. package/dist/esm/router/runtime/hooks.mjs +9 -1
  79. package/dist/esm/router/runtime/internal.mjs +2 -33
  80. package/dist/esm/router/runtime/plugin.mjs +10 -25
  81. package/dist/esm/router/runtime/plugin.node.mjs +3 -31
  82. package/dist/esm/router/runtime/redirect.mjs +1 -1
  83. package/dist/esm-node/cli/code.mjs +3 -1
  84. package/dist/esm-node/cli/ssr/index.mjs +3 -72
  85. package/dist/esm-node/cli/ssr/loadable-bundler-plugin.mjs +2 -0
  86. package/dist/esm-node/cli/template.server.mjs +1 -2
  87. package/dist/esm-node/core/browser/hydrate.mjs +10 -11
  88. package/dist/esm-node/core/browser/index.mjs +1 -2
  89. package/dist/esm-node/core/context/index.mjs +2 -5
  90. package/dist/esm-node/core/context/public.mjs +1 -5
  91. package/dist/esm-node/core/context/runtime.mjs +6 -3
  92. package/dist/esm-node/core/index.mjs +1 -1
  93. package/dist/esm-node/core/plugin/index.mjs +1 -1
  94. package/dist/esm-node/core/react/index.mjs +1 -1
  95. package/dist/esm-node/core/react/wrapper.mjs +20 -67
  96. package/dist/esm-node/core/server/helmet.mjs +5 -4
  97. package/dist/esm-node/core/server/requestHandler.mjs +1 -2
  98. package/dist/esm-node/core/server/requestResponse.mjs +3 -3
  99. package/dist/esm-node/core/server/routerCleanup.mjs +1 -1
  100. package/dist/esm-node/core/server/shared.mjs +153 -1
  101. package/dist/esm-node/core/server/stream/afterTemplate.mjs +23 -18
  102. package/dist/esm-node/core/server/stream/beforeTemplate.mjs +40 -31
  103. package/dist/esm-node/core/server/stream/beforeTemplate.worker.mjs +33 -26
  104. package/dist/esm-node/core/server/stream/createReadableStream.mjs +220 -123
  105. package/dist/esm-node/core/server/stream/createReadableStream.worker.mjs +161 -90
  106. package/dist/esm-node/core/server/stream/deferredScript.mjs +3 -3
  107. package/dist/esm-node/core/server/stream/shared.mjs +4 -3
  108. package/dist/esm-node/core/server/string/index.mjs +106 -68
  109. package/dist/esm-node/core/server/string/loadable.mjs +38 -23
  110. package/dist/esm-node/core/server/string/ssrData.mjs +5 -12
  111. package/dist/esm-node/core/server/utils.mjs +1 -2
  112. package/dist/esm-node/exports/head.mjs +7 -14
  113. package/dist/esm-node/internal.mjs +1 -1
  114. package/dist/esm-node/router/cli/code/nestedRoutes.mjs +1 -2
  115. package/dist/esm-node/router/cli/code/templates.mjs +1 -1
  116. package/dist/esm-node/router/cli/code/utils.mjs +2 -2
  117. package/dist/esm-node/router/runtime/DeferredDataScripts.node.mjs +10 -9
  118. package/dist/esm-node/router/runtime/PrefetchLink.mjs +68 -124
  119. package/dist/esm-node/router/runtime/hooks.mjs +9 -1
  120. package/dist/esm-node/router/runtime/internal.mjs +2 -33
  121. package/dist/esm-node/router/runtime/plugin.mjs +10 -25
  122. package/dist/esm-node/router/runtime/plugin.node.mjs +3 -31
  123. package/dist/esm-node/router/runtime/redirect.mjs +1 -1
  124. package/dist/types/cli/ssr/index.d.ts +0 -3
  125. package/dist/types/core/context/index.d.ts +4 -6
  126. package/dist/types/core/context/public.d.ts +1 -23
  127. package/dist/types/core/context/runtime.d.ts +26 -2
  128. package/dist/types/core/index.d.ts +1 -1
  129. package/dist/types/core/react/wrapper.d.ts +7 -1
  130. package/dist/types/core/server/helmet.d.ts +4 -5
  131. package/dist/types/core/server/requestHandler.d.ts +3 -3
  132. package/dist/types/core/server/requestResponse.d.ts +1 -1
  133. package/dist/types/core/server/routerCleanup.d.ts +1 -1
  134. package/dist/types/core/server/shared.d.ts +24 -1
  135. package/dist/types/core/server/stream/afterTemplate.d.ts +2 -1
  136. package/dist/types/core/server/stream/beforeTemplate.d.ts +4 -1
  137. package/dist/types/core/server/stream/beforeTemplate.worker.d.ts +4 -1
  138. package/dist/types/core/server/stream/shared.d.ts +16 -2
  139. package/dist/types/core/server/string/loadable.d.ts +6 -3
  140. package/dist/types/core/server/string/ssrData.d.ts +2 -1
  141. package/dist/types/core/server/string/types.d.ts +1 -5
  142. package/dist/types/core/server/tracer.d.ts +1 -1
  143. package/dist/types/core/server/utils.d.ts +1 -1
  144. package/dist/types/core/types.d.ts +1 -2
  145. package/dist/types/exports/head.d.ts +2 -2
  146. package/dist/types/internal.d.ts +1 -1
  147. package/dist/types/router/runtime/PrefetchLink.d.ts +27 -2
  148. package/dist/types/router/runtime/hooks.d.ts +19 -2
  149. package/dist/types/router/runtime/internal.d.ts +4 -21
  150. package/dist/types/router/runtime/types.d.ts +2 -43
  151. package/package.json +18 -46
  152. package/rslib.config.mts +3 -0
  153. package/rstest.config.mts +28 -2
  154. package/dist/cjs/boundary-debugger/index.js +0 -317
  155. package/dist/cjs/core/context/extensions.js +0 -74
  156. package/dist/cjs/core/context/helmetContext.js +0 -54
  157. package/dist/cjs/core/server/federatedCss.js +0 -58
  158. package/dist/cjs/core/server/scriptOrder.js +0 -140
  159. package/dist/cjs/module-federation/consume-surface.js +0 -199
  160. package/dist/cjs/module-federation/distributed-ssr.js +0 -135
  161. package/dist/cjs/module-federation/index.js +0 -316
  162. package/dist/cjs/module-federation/last-known-good.js +0 -157
  163. package/dist/cjs/module-federation/manifest-recovery-runtime-plugin.js +0 -129
  164. package/dist/cjs/module-federation/surface-resolution-types.js +0 -61
  165. package/dist/cjs/router/runtime/lifecycle.js +0 -167
  166. package/dist/cjs/router/runtime/provider.js +0 -153
  167. package/dist/cjs/rsc/server.worker.js +0 -62
  168. package/dist/esm/boundary-debugger/index.mjs +0 -277
  169. package/dist/esm/core/context/extensions.mjs +0 -33
  170. package/dist/esm/core/context/helmetContext.mjs +0 -13
  171. package/dist/esm/core/server/federatedCss.mjs +0 -20
  172. package/dist/esm/core/server/scriptOrder.mjs +0 -90
  173. package/dist/esm/module-federation/consume-surface.mjs +0 -158
  174. package/dist/esm/module-federation/distributed-ssr.mjs +0 -82
  175. package/dist/esm/module-federation/index.mjs +0 -115
  176. package/dist/esm/module-federation/last-known-good.mjs +0 -113
  177. package/dist/esm/module-federation/manifest-recovery-runtime-plugin.mjs +0 -89
  178. package/dist/esm/module-federation/surface-resolution-types.mjs +0 -8
  179. package/dist/esm/router/runtime/lifecycle.mjs +0 -105
  180. package/dist/esm/router/runtime/provider.mjs +0 -100
  181. package/dist/esm/rsc/server.worker.mjs +0 -1
  182. package/dist/esm-node/boundary-debugger/index.mjs +0 -278
  183. package/dist/esm-node/core/context/extensions.mjs +0 -34
  184. package/dist/esm-node/core/context/helmetContext.mjs +0 -14
  185. package/dist/esm-node/core/server/federatedCss.mjs +0 -21
  186. package/dist/esm-node/core/server/scriptOrder.mjs +0 -91
  187. package/dist/esm-node/module-federation/consume-surface.mjs +0 -159
  188. package/dist/esm-node/module-federation/distributed-ssr.mjs +0 -83
  189. package/dist/esm-node/module-federation/index.mjs +0 -116
  190. package/dist/esm-node/module-federation/last-known-good.mjs +0 -114
  191. package/dist/esm-node/module-federation/manifest-recovery-runtime-plugin.mjs +0 -90
  192. package/dist/esm-node/module-federation/surface-resolution-types.mjs +0 -9
  193. package/dist/esm-node/router/runtime/lifecycle.mjs +0 -106
  194. package/dist/esm-node/router/runtime/provider.mjs +0 -101
  195. package/dist/esm-node/rsc/server.worker.mjs +0 -2
  196. package/dist/types/boundary-debugger/index.d.ts +0 -28
  197. package/dist/types/core/context/extensions.d.ts +0 -35
  198. package/dist/types/core/context/helmetContext.d.ts +0 -10
  199. package/dist/types/core/server/federatedCss.d.ts +0 -5
  200. package/dist/types/core/server/scriptOrder.d.ts +0 -25
  201. package/dist/types/module-federation/consume-surface.d.ts +0 -104
  202. package/dist/types/module-federation/distributed-ssr.d.ts +0 -61
  203. package/dist/types/module-federation/index.d.ts +0 -71
  204. package/dist/types/module-federation/last-known-good.d.ts +0 -52
  205. package/dist/types/module-federation/manifest-recovery-runtime-plugin.d.ts +0 -25
  206. package/dist/types/module-federation/surface-resolution-types.d.ts +0 -23
  207. package/dist/types/router/runtime/lifecycle.d.ts +0 -27
  208. package/dist/types/router/runtime/provider.d.ts +0 -78
  209. package/dist/types/rsc/server.worker.d.ts +0 -1
@@ -115,7 +115,9 @@ const generateCode = async (entrypoints, appContext, config, hooks)=>{
115
115
  const bootstrapFile = external_path_default().resolve(internalDirectory, `./${entryName}/${external_constants_js_namespaceObject.ENTRY_BOOTSTRAP_FILE_NAME}`);
116
116
  await utils_namespaceObject.fs.outputFile(bootstrapFile, `import(/* webpackChunkName: "async-${entryName}" */ './${external_constants_js_namespaceObject.INDEX_FILE_NAME}');`, 'utf8');
117
117
  const bootstrapServerFile = external_path_default().resolve(internalDirectory, `./${entryName}/${external_constants_js_namespaceObject.ENTRY_SERVER_BOOTSTRAP_FILE_NAME}`);
118
- if (ssrMode) await utils_namespaceObject.fs.outputFile(bootstrapServerFile, `export const requestHandler = import('./${external_constants_js_namespaceObject.SERVER_ENTRY_POINT_FILE_NAME}').then((m) => m.requestHandler)`, 'utf8');
118
+ if (ssrMode) await utils_namespaceObject.fs.outputFile(bootstrapServerFile, `export const requestHandler = import('./${external_constants_js_namespaceObject.SERVER_ENTRY_POINT_FILE_NAME}').then((m) => m.requestHandler);
119
+ // The renderer awaits this promise later; retain its rejection without an early unhandled rejection.
120
+ requestHandler.catch(() => {});`, 'utf8');
119
121
  }
120
122
  if (ssrMode) {
121
123
  const indexServerCode = external_template_server_js_namespaceObject.serverIndex({
@@ -38,7 +38,6 @@ var __webpack_exports__ = {};
38
38
  __webpack_require__.r(__webpack_exports__);
39
39
  __webpack_require__.d(__webpack_exports__, {
40
40
  default: ()=>cli_ssr,
41
- shouldUseModuleFederationNodeOutput: ()=>shouldUseModuleFederationNodeOutput,
42
41
  ssrPlugin: ()=>ssrPlugin
43
42
  });
44
43
  const utils_namespaceObject = require("@modern-js/utils");
@@ -47,51 +46,6 @@ var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_na
47
46
  const external_loadable_bundler_plugin_js_namespaceObject = require("./loadable-bundler-plugin.js");
48
47
  var external_loadable_bundler_plugin_js_default = /*#__PURE__*/ __webpack_require__.n(external_loadable_bundler_plugin_js_namespaceObject);
49
48
  const external_mode_js_namespaceObject = require("./mode.js");
50
- const getRspackPlugins = (rspackConfig)=>{
51
- if (!rspackConfig) return [];
52
- const rspackEntries = Array.isArray(rspackConfig) ? rspackConfig : [
53
- rspackConfig
54
- ];
55
- const plugins = [];
56
- for (const entry of rspackEntries){
57
- if (!entry || 'function' == typeof entry || 'object' != typeof entry) continue;
58
- const maybePlugins = entry.plugins;
59
- if (Array.isArray(maybePlugins)) {
60
- for (const plugin of maybePlugins)if (plugin) plugins.push(plugin);
61
- }
62
- }
63
- return plugins;
64
- };
65
- const getRspackPluginName = (plugin)=>{
66
- if ('string' == typeof plugin) return plugin;
67
- if ('function' == typeof plugin) return plugin.name;
68
- if (Array.isArray(plugin)) {
69
- const [first] = plugin;
70
- if (!first) return;
71
- if ('string' == typeof first) return first;
72
- if ('function' == typeof first) return first.name;
73
- if ('object' == typeof first) return first.name || first.constructor?.name;
74
- return;
75
- }
76
- return plugin.name || plugin.constructor?.name;
77
- };
78
- const hasServerRenderingConfig = (userConfig)=>{
79
- const { output, server } = userConfig;
80
- if (output?.ssg) return true;
81
- if (output?.ssgByEntries && Object.keys(output.ssgByEntries).length > 0) return true;
82
- if (server?.ssr) return true;
83
- if (server?.ssrByEntries && Object.keys(server.ssrByEntries).length > 0) return true;
84
- return false;
85
- };
86
- const isModuleFederationAppSSREnabledInConfig = (ssr)=>{
87
- if (!ssr || 'object' != typeof ssr) return false;
88
- return true === ssr.moduleFederationAppSSR;
89
- };
90
- const isModuleFederationAppSSREnabled = (userConfig)=>{
91
- if (isModuleFederationAppSSREnabledInConfig(userConfig.server?.ssr)) return true;
92
- if (userConfig.server?.ssrByEntries && 'object' == typeof userConfig.server.ssrByEntries) return Object.values(userConfig.server.ssrByEntries).some(isModuleFederationAppSSREnabledInConfig);
93
- return false;
94
- };
95
49
  const checkUseStringSSR = (config, appDirectory, entrypoints)=>{
96
50
  if (entrypoints && entrypoints.length > 0) {
97
51
  for (const entrypoint of entrypoints){
@@ -107,41 +61,19 @@ const checkUseStringSSR = (config, appDirectory, entrypoints)=>{
107
61
  }
108
62
  return true;
109
63
  };
110
- const isModuleFederationRspackPlugin = (plugin)=>{
111
- const candidate = getRspackPluginName(plugin);
112
- return 'string' == typeof candidate && /modulefederation/i.test(candidate);
113
- };
114
- const hasModuleFederationMarker = (config)=>{
115
- if ('true' === process.env.MF_SSR_PRJ) return true;
116
- const define = config.source?.define || {};
117
- if ('REMOTE_IP_STRATEGY' in define || 'FEDERATION_IPV4' in define) return true;
118
- const plugins = getRspackPlugins(config.tools?.rspack);
119
- return plugins.some(isModuleFederationRspackPlugin);
120
- };
121
64
  const isNodeEnvironmentTarget = (target)=>'string' == typeof target && ('node' === target || 'async-node' === target || target.startsWith('node'));
122
- const shouldUseModuleFederationNodeOutput = (config)=>isNodeEnvironmentTarget(config.output?.target) && hasModuleFederationMarker(config);
123
65
  const ssrBuilderPlugin = (modernAPI, outputModule, exportLoadablePath)=>({
124
66
  name: '@modern-js/builder-plugin-ssr',
125
67
  setup (api) {
126
68
  api.modifyEnvironmentConfig((config, { name, mergeEnvironmentConfig })=>{
127
69
  const isServerEnvironment = isNodeEnvironmentTarget(config.output.target) || 'workerSSR' === name;
128
70
  const userConfig = modernAPI.getNormalizedConfig();
129
- const hasServerRendering = hasServerRenderingConfig(userConfig);
130
- const hasModuleFederationRuntimeMarker = hasServerRendering && shouldUseModuleFederationNodeOutput(config);
131
- const hasExplicitMfSsrFlag = isModuleFederationAppSSREnabled(userConfig);
132
- const requireExplicitMfSsrFlag = 'true' === process.env.MODERN_MF_APP_SSR_REQUIRE_EXPLICIT;
133
- if (hasServerRendering && hasModuleFederationRuntimeMarker && !hasExplicitMfSsrFlag) {
134
- const warningMessage = '[modernjs][mf-ssr] Module Federation SSR was auto-detected from runtime markers. Set server.ssr.moduleFederationAppSSR=true explicitly in host and remotes to avoid heuristic drift.';
135
- if (requireExplicitMfSsrFlag) throw new Error(`${warningMessage} (enforced by MODERN_MF_APP_SSR_REQUIRE_EXPLICIT=true)`);
136
- console.warn(warningMessage);
137
- }
138
- const isModuleFederationAppSSR = hasServerRendering && hasExplicitMfSsrFlag;
139
71
  const ssrEnv = userConfig.deploy?.worker?.ssr || userConfig.server?.rsc ? 'edge' : 'node';
140
72
  const appContext = modernAPI.getAppContext();
141
73
  const { appDirectory, entrypoints } = appContext;
142
74
  const useLoadablePlugin = (0, utils_namespaceObject.isUseSSRBundle)(userConfig) && !isServerEnvironment && checkUseStringSSR(userConfig, appDirectory, entrypoints);
143
75
  const outputConfig = {
144
- module: isServerEnvironment && (outputModule || 'workerSSR' === name && userConfig.deploy?.target === 'cloudflare')
76
+ module: isServerEnvironment && outputModule
145
77
  };
146
78
  const useLoadableComponents = (0, utils_namespaceObject.isUseSSRBundle)(userConfig) && checkUseStringSSR(userConfig, appDirectory, entrypoints);
147
79
  return mergeEnvironmentConfig(config, {
@@ -151,12 +83,10 @@ const ssrBuilderPlugin = (modernAPI, outputModule, exportLoadablePath)=>({
151
83
  'process.env.MODERN_SSR_ENV': JSON.stringify(ssrEnv),
152
84
  'process.env.MODERN_ENABLE_HYDRATION': JSON.stringify((0, utils_namespaceObject.isUseSSRBundle)(userConfig)),
153
85
  'process.env.MODERN_ENABLE_RSC': JSON.stringify(Boolean(userConfig.server?.rsc)),
154
- __MODERN_ENABLE_RSC__: JSON.stringify(Boolean(userConfig.server?.rsc)),
155
- 'process.env.MODERN_MF_APP_SSR': JSON.stringify(String(isModuleFederationAppSSR))
86
+ __MODERN_ENABLE_RSC__: JSON.stringify(Boolean(userConfig.server?.rsc))
156
87
  }
157
88
  },
158
89
  output: outputConfig,
159
- splitChunks: isServerEnvironment && (hasModuleFederationRuntimeMarker || hasExplicitMfSsrFlag) ? false : void 0,
160
90
  tools: {
161
91
  bundlerChain: useLoadablePlugin ? (chain)=>{
162
92
  chain.plugin('loadable').use(external_loadable_bundler_plugin_js_default(), [
@@ -225,11 +155,9 @@ const ssrPlugin = ()=>({
225
155
  });
226
156
  const cli_ssr = ssrPlugin;
227
157
  exports["default"] = __webpack_exports__["default"];
228
- exports.shouldUseModuleFederationNodeOutput = __webpack_exports__.shouldUseModuleFederationNodeOutput;
229
158
  exports.ssrPlugin = __webpack_exports__.ssrPlugin;
230
159
  for(var __rspack_i in __webpack_exports__)if (-1 === [
231
160
  "default",
232
- "shouldUseModuleFederationNodeOutput",
233
161
  "ssrPlugin"
234
162
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
235
163
  Object.defineProperty(exports, '__esModule', {
@@ -44,6 +44,7 @@ const external_path_namespaceObject = require("path");
44
44
  var external_path_default = /*#__PURE__*/ __webpack_require__.n(external_path_namespaceObject);
45
45
  const normalizeChunkId = (id)=>'string' == typeof id && /^\d+$/.test(id) ? Number(id) : id;
46
46
  const DEFAULT_CHUNK_LOADING_GLOBAL = '__LOADABLE_LOADED_CHUNKS__';
47
+ const normalizeStatsPublicPath = (publicPath)=>'auto' === publicPath || 'auto/' === publicPath ? '/' : publicPath;
47
48
  const normalizeChunkGroup = (group)=>({
48
49
  ...group,
49
50
  chunks: (group.chunks || []).map(normalizeChunkId)
@@ -86,6 +87,7 @@ class LoadablePlugin {
86
87
  for (const [name, ep] of Object.entries(stats.entrypoints || {}))entrypoints[name] = normalizeChunkGroup(ep);
87
88
  const output = {
88
89
  ...stats,
90
+ publicPath: normalizeStatsPublicPath(stats.publicPath),
89
91
  namedChunkGroups,
90
92
  entrypoints,
91
93
  generator: 'loadable-components',
@@ -153,8 +153,7 @@ function genHandlerCode({ mode, metaName, customServerEntry, srcDirectory, inter
153
153
  return `
154
154
  export * from '${realEntryPath}';
155
155
  export { default as requestHandler } from '${realEntryPath}'`;
156
- }
157
- {
156
+ } else {
158
157
  const entrySource = enableRsc ? SERVER_ENTRY_RSC : SERVER_ENTRY;
159
158
  const serverEntry = transformServerEntry(entrySource, {
160
159
  metaName: metaName || 'modern-js',
@@ -62,18 +62,23 @@ function hydrateRoot(App, context, ModernRender, ModernHydrate) {
62
62
  if ('stream' === renderMode) return streamSSRHydrate();
63
63
  function streamSSRHydrate() {
64
64
  if (renderLevel !== external_constants_js_namespaceObject.RenderLevel.SERVER_RENDER) return ModernRender((0, wrapper_js_namespaceObject.wrapRuntimeContextProvider)(App, context));
65
- {
65
+ else {
66
66
  const SSRApp = ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_withCallback_js_namespaceObject.WithCallback, {
67
67
  callback: callback,
68
68
  children: App
69
69
  });
70
- return ModernHydrate((0, wrapper_js_namespaceObject.wrapRuntimeContextProvider)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(SSRApp, {}), hydrateContext));
70
+ return ModernHydrate(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(jsx_runtime_namespaceObject.Fragment, {
71
+ children: [
72
+ (0, wrapper_js_namespaceObject.wrapRuntimeContextProvider)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(SSRApp, {}), hydrateContext),
73
+ null
74
+ ]
75
+ }));
71
76
  }
72
77
  }
73
78
  return stringSSRHydrate();
74
79
  function stringSSRHydrate() {
75
80
  if (renderLevel === external_constants_js_namespaceObject.RenderLevel.CLIENT_RENDER) return ModernRender((0, wrapper_js_namespaceObject.wrapRuntimeContextProvider)(App, context));
76
- {
81
+ else {
77
82
  if (renderLevel === external_constants_js_namespaceObject.RenderLevel.SERVER_RENDER) return (0, component_namespaceObject.loadableReady)(()=>void 0, loadableReadyOptions).then(()=>{
78
83
  const SSRApp = ()=>/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_withCallback_js_namespaceObject.WithCallback, {
79
84
  callback: callback,
@@ -81,13 +86,7 @@ function hydrateRoot(App, context, ModernRender, ModernHydrate) {
81
86
  });
82
87
  return ModernHydrate((0, wrapper_js_namespaceObject.wrapRuntimeContextProvider)(/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(SSRApp, {}), hydrateContext));
83
88
  });
84
- const runtimeConsole = Reflect.get(globalThis, 'console');
85
- if (null !== runtimeConsole && 'object' == typeof runtimeConsole) {
86
- const warn = Reflect.get(runtimeConsole, 'warn');
87
- if ('function' == typeof warn) Reflect.apply(warn, runtimeConsole, [
88
- `unknow render level: ${renderLevel}, execute render()`
89
- ]);
90
- }
89
+ console.warn(`unknow render level: ${renderLevel}, execute render()`);
91
90
  return ModernRender((0, wrapper_js_namespaceObject.wrapRuntimeContextProvider)(App, context));
92
91
  }
93
92
  }
@@ -35,10 +35,9 @@ __webpack_require__.d(__webpack_exports__, {
35
35
  renderWithReact17: ()=>renderWithReact17,
36
36
  renderWithReact18: ()=>renderWithReact18
37
37
  });
38
+ const context_namespaceObject = require("@modern-js/runtime/context");
38
39
  const external_cookie_namespaceObject = require("cookie");
39
40
  const client_namespaceObject = require("react-dom/client");
40
- const index_js_namespaceObject = require("../context/index.js");
41
- const runtime_js_namespaceObject = require("../context/runtime.js");
42
41
  const wrapper_js_namespaceObject = require("../react/wrapper.js");
43
42
  const external_hydrate_js_namespaceObject = require("./hydrate.js");
44
43
  const IS_REACT18 = 'true' === process.env.IS_REACT18;
@@ -85,7 +84,7 @@ function isClientArgs(id) {
85
84
  return void 0 === id || 'string' == typeof id || "u" > typeof HTMLElement && id instanceof HTMLElement;
86
85
  }
87
86
  async function renderApp(App, id, hydrateFromSsrData, internalRuntimeContext) {
88
- const context = (0, runtime_js_namespaceObject.getInitialContext)();
87
+ const context = (0, context_namespaceObject.getInitialContext)();
89
88
  const runBeforeRender = async (context)=>{
90
89
  const api = internalRuntimeContext.pluginAPI;
91
90
  api.updateRuntimeContext(context);
@@ -115,10 +114,10 @@ async function renderApp(App, id, hydrateFromSsrData, internalRuntimeContext) {
115
114
  throw Error('`render` function needs id in browser environment, it needs to be string or element');
116
115
  }
117
116
  async function render(App, id) {
118
- return renderApp(App, id, true, (0, index_js_namespaceObject.getGlobalInternalRuntimeContext)());
117
+ return renderApp(App, id, true, (0, context_namespaceObject.getGlobalInternalRuntimeContext)());
119
118
  }
120
119
  function createNestedAppRenderer() {
121
- const internalRuntimeContext = (0, index_js_namespaceObject.getGlobalInternalRuntimeContext)();
120
+ const internalRuntimeContext = (0, context_namespaceObject.getGlobalInternalRuntimeContext)();
122
121
  return (App, id)=>renderApp(App, id, false, internalRuntimeContext);
123
122
  }
124
123
  async function renderWithReact18(App, rootElement) {
@@ -30,14 +30,9 @@ __webpack_require__.r(__webpack_exports__);
30
30
  __webpack_require__.d(__webpack_exports__, {
31
31
  DefaultNotFound: ()=>DefaultNotFound_js_namespaceObject.DefaultNotFound,
32
32
  InternalRuntimeContext: ()=>external_runtime_js_namespaceObject.InternalRuntimeContext,
33
+ ReactRuntimeContext: ()=>external_runtime_js_namespaceObject.ReactRuntimeContext,
34
+ RuntimeComponentResolverContext: ()=>external_runtime_js_namespaceObject.RuntimeComponentResolverContext,
33
35
  RuntimeContext: ()=>external_runtime_js_namespaceObject.RuntimeContext,
34
- applyRouterRuntimeState: ()=>lifecycle_js_namespaceObject.applyRouterRuntimeState,
35
- applyRouterServerPrepareResult: ()=>lifecycle_js_namespaceObject.applyRouterServerPrepareResult,
36
- cleanupRouterRuntimeState: ()=>lifecycle_js_namespaceObject.cleanupRouterRuntimeState,
37
- createRouterProviderRealm: ()=>provider_js_namespaceObject.createRouterProviderRealm,
38
- createRouterRuntimeState: ()=>lifecycle_js_namespaceObject.createRouterRuntimeState,
39
- createRouterServerSnapshot: ()=>lifecycle_js_namespaceObject.createRouterServerSnapshot,
40
- createRuntimeContextExtension: ()=>external_extensions_js_namespaceObject.createRuntimeContextExtension,
41
36
  getCurrentEntryName: ()=>getCurrentEntryName,
42
37
  getGlobalApp: ()=>getGlobalApp,
43
38
  getGlobalBasename: ()=>getGlobalBasename,
@@ -48,10 +43,6 @@ __webpack_require__.d(__webpack_exports__, {
48
43
  getGlobalRSCRoot: ()=>getGlobalRSCRoot,
49
44
  getGlobalRoutes: ()=>getGlobalRoutes,
50
45
  getInitialContext: ()=>external_runtime_js_namespaceObject.getInitialContext,
51
- getRouterHydrationScripts: ()=>lifecycle_js_namespaceObject.getRouterHydrationScripts,
52
- getRouterMatchedRouteIds: ()=>lifecycle_js_namespaceObject.getRouterMatchedRouteIds,
53
- getRouterRuntimeState: ()=>lifecycle_js_namespaceObject.getRouterRuntimeState,
54
- getRouterServerSnapshot: ()=>lifecycle_js_namespaceObject.getRouterServerSnapshot,
55
46
  getServerPayload: ()=>index_js_namespaceObject.getServerPayload,
56
47
  modifyRoutes: ()=>hooks_js_namespaceObject.modifyRoutes,
57
48
  onAfterCreateRouter: ()=>hooks_js_namespaceObject.onAfterCreateRouter,
@@ -59,18 +50,14 @@ __webpack_require__.d(__webpack_exports__, {
59
50
  onBeforeCreateRouter: ()=>hooks_js_namespaceObject.onBeforeCreateRouter,
60
51
  onBeforeCreateRoutes: ()=>hooks_js_namespaceObject.onBeforeCreateRoutes,
61
52
  onBeforeHydrateRouter: ()=>hooks_js_namespaceObject.onBeforeHydrateRouter,
62
- registerRouterProvider: ()=>provider_js_namespaceObject.registerRouterProvider,
63
- resolveRouterProvider: ()=>provider_js_namespaceObject.resolveRouterProvider,
64
- routerProviderRegistryHooks: ()=>provider_js_namespaceObject.routerProviderRegistryHooks,
53
+ routerProviderRegistryHooks: ()=>hooks_js_namespaceObject.routerProviderRegistryHooks,
65
54
  setGlobalContext: ()=>setGlobalContext,
66
55
  setGlobalInternalRuntimeContext: ()=>setGlobalInternalRuntimeContext,
67
- setServerPayload: ()=>index_js_namespaceObject.setServerPayload
56
+ setServerPayload: ()=>index_js_namespaceObject.setServerPayload,
57
+ useRuntimeContext: ()=>external_runtime_js_namespaceObject.useRuntimeContext
68
58
  });
69
59
  const DefaultNotFound_js_namespaceObject = require("../../router/runtime/DefaultNotFound.js");
70
60
  const hooks_js_namespaceObject = require("../../router/runtime/hooks.js");
71
- const lifecycle_js_namespaceObject = require("../../router/runtime/lifecycle.js");
72
- const provider_js_namespaceObject = require("../../router/runtime/provider.js");
73
- const external_extensions_js_namespaceObject = require("./extensions.js");
74
61
  const external_runtime_js_namespaceObject = require("./runtime.js");
75
62
  const index_js_namespaceObject = require("./serverPayload/index.js");
76
63
  const globalContext = {};
@@ -117,14 +104,9 @@ function getGlobalBasename() {
117
104
  }
118
105
  exports.DefaultNotFound = __webpack_exports__.DefaultNotFound;
119
106
  exports.InternalRuntimeContext = __webpack_exports__.InternalRuntimeContext;
107
+ exports.ReactRuntimeContext = __webpack_exports__.ReactRuntimeContext;
108
+ exports.RuntimeComponentResolverContext = __webpack_exports__.RuntimeComponentResolverContext;
120
109
  exports.RuntimeContext = __webpack_exports__.RuntimeContext;
121
- exports.applyRouterRuntimeState = __webpack_exports__.applyRouterRuntimeState;
122
- exports.applyRouterServerPrepareResult = __webpack_exports__.applyRouterServerPrepareResult;
123
- exports.cleanupRouterRuntimeState = __webpack_exports__.cleanupRouterRuntimeState;
124
- exports.createRouterProviderRealm = __webpack_exports__.createRouterProviderRealm;
125
- exports.createRouterRuntimeState = __webpack_exports__.createRouterRuntimeState;
126
- exports.createRouterServerSnapshot = __webpack_exports__.createRouterServerSnapshot;
127
- exports.createRuntimeContextExtension = __webpack_exports__.createRuntimeContextExtension;
128
110
  exports.getCurrentEntryName = __webpack_exports__.getCurrentEntryName;
129
111
  exports.getGlobalApp = __webpack_exports__.getGlobalApp;
130
112
  exports.getGlobalBasename = __webpack_exports__.getGlobalBasename;
@@ -135,10 +117,6 @@ exports.getGlobalLayoutApp = __webpack_exports__.getGlobalLayoutApp;
135
117
  exports.getGlobalRSCRoot = __webpack_exports__.getGlobalRSCRoot;
136
118
  exports.getGlobalRoutes = __webpack_exports__.getGlobalRoutes;
137
119
  exports.getInitialContext = __webpack_exports__.getInitialContext;
138
- exports.getRouterHydrationScripts = __webpack_exports__.getRouterHydrationScripts;
139
- exports.getRouterMatchedRouteIds = __webpack_exports__.getRouterMatchedRouteIds;
140
- exports.getRouterRuntimeState = __webpack_exports__.getRouterRuntimeState;
141
- exports.getRouterServerSnapshot = __webpack_exports__.getRouterServerSnapshot;
142
120
  exports.getServerPayload = __webpack_exports__.getServerPayload;
143
121
  exports.modifyRoutes = __webpack_exports__.modifyRoutes;
144
122
  exports.onAfterCreateRouter = __webpack_exports__.onAfterCreateRouter;
@@ -146,23 +124,17 @@ exports.onAfterHydrateRouter = __webpack_exports__.onAfterHydrateRouter;
146
124
  exports.onBeforeCreateRouter = __webpack_exports__.onBeforeCreateRouter;
147
125
  exports.onBeforeCreateRoutes = __webpack_exports__.onBeforeCreateRoutes;
148
126
  exports.onBeforeHydrateRouter = __webpack_exports__.onBeforeHydrateRouter;
149
- exports.registerRouterProvider = __webpack_exports__.registerRouterProvider;
150
- exports.resolveRouterProvider = __webpack_exports__.resolveRouterProvider;
151
127
  exports.routerProviderRegistryHooks = __webpack_exports__.routerProviderRegistryHooks;
152
128
  exports.setGlobalContext = __webpack_exports__.setGlobalContext;
153
129
  exports.setGlobalInternalRuntimeContext = __webpack_exports__.setGlobalInternalRuntimeContext;
154
130
  exports.setServerPayload = __webpack_exports__.setServerPayload;
131
+ exports.useRuntimeContext = __webpack_exports__.useRuntimeContext;
155
132
  for(var __rspack_i in __webpack_exports__)if (-1 === [
156
133
  "DefaultNotFound",
157
134
  "InternalRuntimeContext",
135
+ "ReactRuntimeContext",
136
+ "RuntimeComponentResolverContext",
158
137
  "RuntimeContext",
159
- "applyRouterRuntimeState",
160
- "applyRouterServerPrepareResult",
161
- "cleanupRouterRuntimeState",
162
- "createRouterProviderRealm",
163
- "createRouterRuntimeState",
164
- "createRouterServerSnapshot",
165
- "createRuntimeContextExtension",
166
138
  "getCurrentEntryName",
167
139
  "getGlobalApp",
168
140
  "getGlobalBasename",
@@ -173,10 +145,6 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
173
145
  "getGlobalRSCRoot",
174
146
  "getGlobalRoutes",
175
147
  "getInitialContext",
176
- "getRouterHydrationScripts",
177
- "getRouterMatchedRouteIds",
178
- "getRouterRuntimeState",
179
- "getRouterServerSnapshot",
180
148
  "getServerPayload",
181
149
  "modifyRoutes",
182
150
  "onAfterCreateRouter",
@@ -184,12 +152,11 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
184
152
  "onBeforeCreateRouter",
185
153
  "onBeforeCreateRoutes",
186
154
  "onBeforeHydrateRouter",
187
- "registerRouterProvider",
188
- "resolveRouterProvider",
189
155
  "routerProviderRegistryHooks",
190
156
  "setGlobalContext",
191
157
  "setGlobalInternalRuntimeContext",
192
- "setServerPayload"
158
+ "setServerPayload",
159
+ "useRuntimeContext"
193
160
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
194
161
  Object.defineProperty(exports, '__esModule', {
195
162
  value: true
@@ -28,14 +28,11 @@ var __webpack_require__ = {};
28
28
  var __webpack_exports__ = {};
29
29
  __webpack_require__.r(__webpack_exports__);
30
30
  __webpack_require__.d(__webpack_exports__, {
31
- ReactRuntimeContext: ()=>ReactRuntimeContext,
32
- RuntimeContext: ()=>RuntimeContext,
33
- useRuntimeContext: ()=>useRuntimeContext
31
+ ReactRuntimeContext: ()=>context_namespaceObject.ReactRuntimeContext,
32
+ RuntimeContext: ()=>context_namespaceObject.RuntimeContext,
33
+ useRuntimeContext: ()=>context_namespaceObject.useRuntimeContext
34
34
  });
35
- const external_react_namespaceObject = require("react");
36
- const RuntimeContext = (0, external_react_namespaceObject.createContext)({});
37
- const ReactRuntimeContext = RuntimeContext;
38
- const useRuntimeContext = ()=>(0, external_react_namespaceObject.useContext)(RuntimeContext);
35
+ const context_namespaceObject = require("@modern-js/runtime/context");
39
36
  exports.ReactRuntimeContext = __webpack_exports__.ReactRuntimeContext;
40
37
  exports.RuntimeContext = __webpack_exports__.RuntimeContext;
41
38
  exports.useRuntimeContext = __webpack_exports__.useRuntimeContext;
@@ -29,15 +29,19 @@ var __webpack_exports__ = {};
29
29
  __webpack_require__.r(__webpack_exports__);
30
30
  __webpack_require__.d(__webpack_exports__, {
31
31
  InternalRuntimeContext: ()=>InternalRuntimeContext,
32
- ReactRuntimeContext: ()=>external_public_js_namespaceObject.ReactRuntimeContext,
33
- RuntimeContext: ()=>external_public_js_namespaceObject.RuntimeContext,
32
+ ReactRuntimeContext: ()=>ReactRuntimeContext,
33
+ RuntimeComponentResolverContext: ()=>RuntimeComponentResolverContext,
34
+ RuntimeContext: ()=>RuntimeContext,
34
35
  getInitialContext: ()=>getInitialContext,
35
- useRuntimeContext: ()=>external_public_js_namespaceObject.useRuntimeContext
36
+ useRuntimeContext: ()=>useRuntimeContext
36
37
  });
37
38
  const external_react_namespaceObject = require("react");
38
- const external_public_js_namespaceObject = require("./public.js");
39
39
  const ROUTE_MANIFEST = '_MODERNJS_ROUTE_MANIFEST';
40
40
  const InternalRuntimeContext = (0, external_react_namespaceObject.createContext)({});
41
+ const RuntimeContext = (0, external_react_namespaceObject.createContext)({});
42
+ const RuntimeComponentResolverContext = (0, external_react_namespaceObject.createContext)(void 0);
43
+ const ReactRuntimeContext = RuntimeContext;
44
+ const useRuntimeContext = ()=>(0, external_react_namespaceObject.useContext)(RuntimeContext);
41
45
  const getInitialContext = (isBrowser = true, routeManifest)=>{
42
46
  const requestContext = {
43
47
  request: {
@@ -63,12 +67,14 @@ const getInitialContext = (isBrowser = true, routeManifest)=>{
63
67
  };
64
68
  exports.InternalRuntimeContext = __webpack_exports__.InternalRuntimeContext;
65
69
  exports.ReactRuntimeContext = __webpack_exports__.ReactRuntimeContext;
70
+ exports.RuntimeComponentResolverContext = __webpack_exports__.RuntimeComponentResolverContext;
66
71
  exports.RuntimeContext = __webpack_exports__.RuntimeContext;
67
72
  exports.getInitialContext = __webpack_exports__.getInitialContext;
68
73
  exports.useRuntimeContext = __webpack_exports__.useRuntimeContext;
69
74
  for(var __rspack_i in __webpack_exports__)if (-1 === [
70
75
  "InternalRuntimeContext",
71
76
  "ReactRuntimeContext",
77
+ "RuntimeComponentResolverContext",
72
78
  "RuntimeContext",
73
79
  "getInitialContext",
74
80
  "useRuntimeContext"
@@ -28,12 +28,12 @@ var __webpack_require__ = {};
28
28
  var __webpack_exports__ = {};
29
29
  __webpack_require__.r(__webpack_exports__);
30
30
  __webpack_require__.d(__webpack_exports__, {
31
- RuntimeContext: ()=>runtime_js_namespaceObject.RuntimeContext,
31
+ RuntimeContext: ()=>context_namespaceObject.RuntimeContext,
32
32
  defineRuntimeConfig: ()=>external_config_js_namespaceObject.defineRuntimeConfig,
33
- useRuntimeContext: ()=>runtime_js_namespaceObject.useRuntimeContext
33
+ useRuntimeContext: ()=>context_namespaceObject.useRuntimeContext
34
34
  });
35
+ const context_namespaceObject = require("@modern-js/runtime/context");
35
36
  const external_config_js_namespaceObject = require("./config.js");
36
- const runtime_js_namespaceObject = require("./context/runtime.js");
37
37
  exports.RuntimeContext = __webpack_exports__.RuntimeContext;
38
38
  exports.defineRuntimeConfig = __webpack_exports__.defineRuntimeConfig;
39
39
  exports.useRuntimeContext = __webpack_exports__.useRuntimeContext;
@@ -32,11 +32,11 @@ __webpack_require__.d(__webpack_exports__, {
32
32
  registerPlugin: ()=>registerPlugin
33
33
  });
34
34
  const runtime_namespaceObject = require("@modern-js/plugin/runtime");
35
+ const context_namespaceObject = require("@modern-js/runtime/context");
35
36
  const merge_namespaceObject = require("@modern-js/runtime-utils/merge");
36
37
  const index_js_namespaceObject = require("../compat/index.js");
37
38
  const hooks_js_namespaceObject = require("../compat/hooks.js");
38
39
  const requestContext_js_namespaceObject = require("../compat/requestContext.js");
39
- const external_context_index_js_namespaceObject = require("../context/index.js");
40
40
  function registerPlugin(internalPlugins, runtimeConfig) {
41
41
  const { plugins = [] } = runtimeConfig || {};
42
42
  const { runtimeContext } = runtime_namespaceObject.runtime.run({
@@ -50,7 +50,7 @@ function registerPlugin(internalPlugins, runtimeConfig) {
50
50
  handleSetupResult: hooks_js_namespaceObject.handleSetupResult
51
51
  });
52
52
  const internalRuntimeContext = runtimeContext;
53
- (0, external_context_index_js_namespaceObject.setGlobalInternalRuntimeContext)(internalRuntimeContext);
53
+ (0, context_namespaceObject.setGlobalInternalRuntimeContext)(internalRuntimeContext);
54
54
  return internalRuntimeContext;
55
55
  }
56
56
  function mergeConfig(config, ...otherConfig) {
@@ -30,17 +30,17 @@ __webpack_require__.r(__webpack_exports__);
30
30
  __webpack_require__.d(__webpack_exports__, {
31
31
  createRoot: ()=>createRoot
32
32
  });
33
+ const context_namespaceObject = require("@modern-js/runtime/context");
33
34
  const parsed_namespaceObject = require("@modern-js/runtime-utils/parsed");
34
35
  const external_common_js_namespaceObject = require("../../common.js");
35
36
  const external_constants_js_namespaceObject = require("../constants.js");
36
- const index_js_namespaceObject = require("../context/index.js");
37
37
  function createRoot(UserApp) {
38
- const App = UserApp || (0, index_js_namespaceObject.getGlobalApp)();
38
+ const App = UserApp || (0, context_namespaceObject.getGlobalApp)();
39
39
  if ((0, external_common_js_namespaceObject.isBrowser)()) {
40
40
  window._SSR_DATA = window._SSR_DATA || (0, parsed_namespaceObject.parsedJSONFromElement)(external_constants_js_namespaceObject.SSR_DATA_JSON_ID);
41
41
  window._ROUTER_DATA = window._ROUTER_DATA || (0, parsed_namespaceObject.parsedJSONFromElement)(external_constants_js_namespaceObject.ROUTER_DATA_JSON_ID);
42
42
  }
43
- const internalRuntimeContext = (0, index_js_namespaceObject.getGlobalInternalRuntimeContext)();
43
+ const internalRuntimeContext = (0, context_namespaceObject.getGlobalInternalRuntimeContext)();
44
44
  const hooks = internalRuntimeContext.hooks;
45
45
  const WrapperApp = hooks.wrapRoot.call(App);
46
46
  return WrapperApp;
@@ -28,50 +28,19 @@ var __webpack_require__ = {};
28
28
  var __webpack_exports__ = {};
29
29
  __webpack_require__.r(__webpack_exports__);
30
30
  __webpack_require__.d(__webpack_exports__, {
31
+ wrapRuntimeComponentResolver: ()=>wrapRuntimeComponentResolver,
31
32
  wrapRuntimeContextProvider: ()=>wrapRuntimeContextProvider
32
33
  });
33
34
  const jsx_runtime_namespaceObject = require("react/jsx-runtime");
34
- const external_react_helmet_async_namespaceObject = require("react-helmet-async");
35
- const index_js_namespaceObject = require("../context/index.js");
36
- const extensions_js_namespaceObject = require("../context/extensions.js");
37
- const helmetContext_js_namespaceObject = require("../context/helmetContext.js");
38
- function createRscSafeRequestContext(ssrContext) {
39
- const requestContext = (0, index_js_namespaceObject.getInitialContext)().requestContext;
40
- Object.defineProperty(requestContext.response, 'setHeader', {
41
- enumerable: false
35
+ const context_namespaceObject = require("@modern-js/runtime/context");
36
+ function wrapRuntimeComponentResolver(root, hooks = (0, context_namespaceObject.getGlobalInternalRuntimeContext)()?.hooks) {
37
+ return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(context_namespaceObject.RuntimeComponentResolverContext.Provider, {
38
+ value: hooks?.resolveComponent?.call,
39
+ children: root
42
40
  });
43
- Object.defineProperty(requestContext.response, 'status', {
44
- enumerable: false
45
- });
46
- if (void 0 === ssrContext) return requestContext;
47
- const { request, response } = ssrContext;
48
- return {
49
- request: {
50
- url: request.url,
51
- userAgent: request.userAgent,
52
- cookie: request.cookie,
53
- pathname: request.pathname,
54
- query: {
55
- ...request.query
56
- },
57
- params: {
58
- ...request.params
59
- },
60
- headers: {
61
- ...request.headers
62
- },
63
- host: request.host,
64
- referer: request.referer
65
- },
66
- response: Object.assign(requestContext.response, {
67
- locals: response.locals ?? {}
68
- })
69
- };
70
41
  }
71
42
  function wrapRuntimeContextProvider(App, contextValue) {
72
43
  const { isBrowser, initialData, routes, context, routeManifest, routerContext, unstable_getBlockNavState, ssrContext, _internalContext, _internalRouterBaseName, ...rest } = contextValue;
73
- const internalContextValue = contextValue;
74
- const helmetContext = (0, helmetContext_js_namespaceObject.ensureHelmetContext)(internalContextValue);
75
44
  const runtimeContextValue = {
76
45
  isBrowser,
77
46
  initialData,
@@ -79,41 +48,28 @@ function wrapRuntimeContextProvider(App, contextValue) {
79
48
  context,
80
49
  ...rest
81
50
  };
82
- (0, extensions_js_namespaceObject.stripRuntimeContextExtensions)(runtimeContextValue);
83
- if (true === (0, index_js_namespaceObject.getGlobalEnableRsc)() && false === isBrowser) {
84
- const rscSafeRequestContext = createRscSafeRequestContext(ssrContext);
85
- const rscInternalContextValue = {
86
- ...internalContextValue,
87
- context: rscSafeRequestContext,
88
- requestContext: rscSafeRequestContext
89
- };
90
- delete rscInternalContextValue.ssrContext;
91
- const rscRuntimeContextValue = {
92
- ...runtimeContextValue,
93
- context: rscSafeRequestContext,
94
- requestContext: rscSafeRequestContext
95
- };
96
- return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_js_namespaceObject.InternalRuntimeContext.Provider, {
97
- value: rscInternalContextValue,
98
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_js_namespaceObject.RuntimeContext.Provider, {
99
- value: rscRuntimeContextValue,
100
- children: App
101
- })
102
- });
103
- }
104
- return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_js_namespaceObject.InternalRuntimeContext.Provider, {
105
- value: internalContextValue,
106
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(index_js_namespaceObject.RuntimeContext.Provider, {
107
- value: runtimeContextValue,
108
- children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_react_helmet_async_namespaceObject.HelmetProvider, {
109
- context: helmetContext,
110
- children: App
111
- })
51
+ const isRsc = true === (0, context_namespaceObject.getGlobalEnableRsc)();
52
+ const projection = {
53
+ internalContext: contextValue,
54
+ publicContext: runtimeContextValue
55
+ };
56
+ const values = (0, context_namespaceObject.getGlobalInternalRuntimeContext)()?.hooks.transformRuntimeContext?.call(projection, {
57
+ context: contextValue,
58
+ isRsc
59
+ }) ?? projection;
60
+ const root = /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(context_namespaceObject.InternalRuntimeContext.Provider, {
61
+ value: values.internalContext,
62
+ children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(context_namespaceObject.RuntimeContext.Provider, {
63
+ value: values.publicContext,
64
+ children: App
112
65
  })
113
66
  });
67
+ return isRsc && false === isBrowser ? root : wrapRuntimeComponentResolver(root);
114
68
  }
69
+ exports.wrapRuntimeComponentResolver = __webpack_exports__.wrapRuntimeComponentResolver;
115
70
  exports.wrapRuntimeContextProvider = __webpack_exports__.wrapRuntimeContextProvider;
116
71
  for(var __rspack_i in __webpack_exports__)if (-1 === [
72
+ "wrapRuntimeComponentResolver",
117
73
  "wrapRuntimeContextProvider"
118
74
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
119
75
  Object.defineProperty(exports, '__esModule', {
@@ -32,7 +32,6 @@ __webpack_require__.d(__webpack_exports__, {
32
32
  getHelmetData: ()=>getHelmetData,
33
33
  helmetReplace: ()=>helmetReplace
34
34
  });
35
- const helmetContext_js_namespaceObject = require("../context/helmetContext.js");
36
35
  const external_utils_js_namespaceObject = require("./utils.js");
37
36
  const EOL = '\n';
38
37
  const RE_HTML_ATTR = /<html[^>]*>/;
@@ -40,8 +39,10 @@ const RE_BODY_ATTR = /<body[^>]*>/;
40
39
  const RE_LAST_IN_HEAD = /<\/head>/;
41
40
  const RE_TITLE = /<title[^>]*>([\s\S\n\r]*?)<\/title>/;
42
41
  const TEST_TITLE_CONTENT = /(?<=<title[^>]*>)([\s\S\n\r]*?)([.|\S])([\s\S\n\r]*?)(?=<\/title>)/;
43
- function getHelmetData(runtimeContext) {
44
- return (0, helmetContext_js_namespaceObject.getHelmetContext)(runtimeContext)?.helmet ?? void 0;
42
+ function getHelmetData(providers) {
43
+ let result;
44
+ for (const provider of providers)result = provider.getHeadData?.() ?? result;
45
+ return result;
45
46
  }
46
47
  function createReplaceHelemt(helmetData) {
47
48
  return helmetData ? (template)=>helmetReplace(template, helmetData) : (tempalte)=>tempalte;
@@ -53,7 +54,7 @@ function helmetReplace(content, helmetData) {
53
54
  const htmlAttributes = helmetData.htmlAttributes.toString();
54
55
  if (htmlAttributes) result = (0, external_utils_js_namespaceObject.safeReplace)(result, RE_HTML_ATTR, `<html ${htmlAttributes}>`);
55
56
  const base = helmetData.base.toString();
56
- const priority = helmetData.priority.toString();
57
+ const priority = helmetData.priority?.toString() ?? '';
57
58
  const link = helmetData.link.toString();
58
59
  const meta = helmetData.meta.toString();
59
60
  const noscript = helmetData.noscript.toString();