@bleedingdev/modern-js-runtime 3.5.0-ultramodern.97 → 3.5.0-ultramodern.99

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.
@@ -112,12 +112,10 @@ const runtimePlugin = (params)=>({
112
112
  });
113
113
  api.config(()=>{
114
114
  const { appDirectory, metaName } = api.getAppContext();
115
- const isReact18 = (0, utils_namespaceObject.isReact18)(appDirectory);
116
- process.env.IS_REACT18 = isReact18.toString();
117
115
  return {
118
116
  source: {
119
117
  globalVars: {
120
- 'process.env.IS_REACT18': process.env.IS_REACT18
118
+ 'process.env.IS_REACT18': 'true'
121
119
  },
122
120
  include: [
123
121
  new RegExp(`[\\\\/]node_modules[\\\\/]@${metaName}[\\\\/]runtime[\\\\/].*[\\\\/]head\\.`)
@@ -126,14 +124,6 @@ const runtimePlugin = (params)=>({
126
124
  tools: {
127
125
  bundlerChain: (chain)=>{
128
126
  chain.module.rule('modern-entry').test(/\.jsx?$/).include.add(external_path_default().resolve(appDirectory, 'node_modules', `.${metaName}`)).end().sideEffects(true);
129
- },
130
- rspack: (_config, { appendPlugins, rspack })=>{
131
- if (!isReact18) appendPlugins([
132
- new rspack.IgnorePlugin({
133
- resourceRegExp: /^react-dom\/client$/,
134
- contextRegExp: /@modern-js\/runtime/
135
- })
136
- ]);
137
127
  }
138
128
  }
139
129
  };
@@ -31,13 +31,12 @@ __webpack_require__.d(__webpack_exports__, {
31
31
  createNestedAppRenderer: ()=>createNestedAppRenderer,
32
32
  hydrateWithReact: ()=>external_hydrate_js_namespaceObject.hydrateWithReact,
33
33
  hydrateWithReact17: ()=>hydrateWithReact17,
34
- hydrateWithReact18: ()=>hydrateWithReact18,
35
34
  render: ()=>render,
36
35
  renderWithReact17: ()=>renderWithReact17,
37
36
  renderWithReact18: ()=>renderWithReact18
38
37
  });
39
- const constants_namespaceObject = require("@modern-js/utils/universal/constants");
40
38
  const external_cookie_namespaceObject = require("cookie");
39
+ const client_namespaceObject = require("react-dom/client");
41
40
  const index_js_namespaceObject = require("../context/index.js");
42
41
  const runtime_js_namespaceObject = require("../context/runtime.js");
43
42
  const wrapper_js_namespaceObject = require("../react/wrapper.js");
@@ -107,8 +106,8 @@ async function renderApp(App, id, hydrateFromSsrData, internalRuntimeContext) {
107
106
  return renderFunc(App, rootElement);
108
107
  }
109
108
  async function ModernHydrate(App, callback) {
110
- const hydrateFunc = IS_REACT18 ? hydrateWithReact18 : hydrateWithReact17;
111
- return hydrateFunc(App, rootElement, callback);
109
+ if (IS_REACT18) return (0, external_hydrate_js_namespaceObject.hydrateWithReact)(App, rootElement);
110
+ return hydrateWithReact17(App, rootElement, callback);
112
111
  }
113
112
  if (hydrateFromSsrData && process.env.MODERN_ENABLE_HYDRATION && window._SSR_DATA) return (0, external_hydrate_js_namespaceObject.hydrateRoot)(App, context, ModernRender, ModernHydrate);
114
113
  return ModernRender((0, wrapper_js_namespaceObject.wrapRuntimeContextProvider)(App, context));
@@ -123,8 +122,7 @@ function createNestedAppRenderer() {
123
122
  return (App, id)=>renderApp(App, id, false, internalRuntimeContext);
124
123
  }
125
124
  async function renderWithReact18(App, rootElement) {
126
- const ReactDOM = await import("react-dom/client");
127
- const root = ReactDOM.createRoot(rootElement);
125
+ const root = (0, client_namespaceObject.createRoot)(rootElement);
128
126
  root.render(App);
129
127
  return root;
130
128
  }
@@ -133,13 +131,6 @@ async function renderWithReact17(App, rootElement) {
133
131
  ReactDOM.render(App, rootElement);
134
132
  return rootElement;
135
133
  }
136
- async function hydrateWithReact18(App, rootElement) {
137
- const ReactDOM = await import("react-dom/client");
138
- const root = ReactDOM.hydrateRoot(rootElement, App, {
139
- identifierPrefix: constants_namespaceObject.SSR_HYDRATION_ID_PREFIX
140
- });
141
- return root;
142
- }
143
134
  async function hydrateWithReact17(App, rootElement, callback) {
144
135
  const ReactDOM = await import("react-dom");
145
136
  const root = ReactDOM.hydrate(App, rootElement, callback);
@@ -148,7 +139,6 @@ async function hydrateWithReact17(App, rootElement, callback) {
148
139
  exports.createNestedAppRenderer = __webpack_exports__.createNestedAppRenderer;
149
140
  exports.hydrateWithReact = __webpack_exports__.hydrateWithReact;
150
141
  exports.hydrateWithReact17 = __webpack_exports__.hydrateWithReact17;
151
- exports.hydrateWithReact18 = __webpack_exports__.hydrateWithReact18;
152
142
  exports.render = __webpack_exports__.render;
153
143
  exports.renderWithReact17 = __webpack_exports__.renderWithReact17;
154
144
  exports.renderWithReact18 = __webpack_exports__.renderWithReact18;
@@ -156,7 +146,6 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
156
146
  "createNestedAppRenderer",
157
147
  "hydrateWithReact",
158
148
  "hydrateWithReact17",
159
- "hydrateWithReact18",
160
149
  "render",
161
150
  "renderWithReact17",
162
151
  "renderWithReact18"
@@ -127,7 +127,7 @@ async function generateHtml(App, htmlTemplate, chunkSet, collectors, htmlModifie
127
127
  createReplaceHtml(html),
128
128
  createReplaceChunkJs(jsChunk, entryName),
129
129
  createReplaceChunkCss(cssChunk),
130
- createReplaceSSRDataScript(ssrScripts),
130
+ createReplaceSSRDataScript(ssrScripts, entryName),
131
131
  (0, external_helmet_js_namespaceObject.createReplaceHelemt)(helmetData),
132
132
  ...htmlModifiers
133
133
  ]);
@@ -136,8 +136,8 @@ async function generateHtml(App, htmlTemplate, chunkSet, collectors, htmlModifie
136
136
  function createReplaceHtml(html) {
137
137
  return (template)=>(0, external_utils_js_namespaceObject.safeReplace)(template, external_constants_js_namespaceObject_1.HTML_PLACEHOLDER, html);
138
138
  }
139
- function createReplaceSSRDataScript(data) {
140
- return (template)=>(0, external_utils_js_namespaceObject.safeReplace)(template, external_constants_js_namespaceObject_1.SSR_DATA_PLACEHOLDER, data);
139
+ function createReplaceSSRDataScript(data, entryName) {
140
+ return (template)=>(0, external_scriptOrder_js_namespaceObject.replaceChunkJsPlaceholder)(template, data, entryName, external_constants_js_namespaceObject_1.SSR_DATA_PLACEHOLDER);
141
141
  }
142
142
  function createReplaceChunkJs(js, entryName) {
143
143
  return (template)=>(0, external_scriptOrder_js_namespaceObject.replaceChunkJsPlaceholder)(template, js, entryName);
@@ -1,4 +1,4 @@
1
- import { cleanRequireCache, isReact18 as utils_isReact18 } from "@modern-js/utils";
1
+ import { cleanRequireCache } from "@modern-js/utils";
2
2
  import path_0 from "path";
3
3
  import { documentPlugin } from "../document/cli/index.mjs";
4
4
  import { getEntrypointRoutesDir, getEntrypointRoutesOwner, handleFileChange, handleGeneratorEntryCode, handleModifyEntrypoints, isRouteEntry, routerPlugin, updateNestedRoutesSpec } from "../router/cli/index.mjs";
@@ -54,12 +54,10 @@ const runtimePlugin = (params)=>({
54
54
  });
55
55
  api.config(()=>{
56
56
  const { appDirectory, metaName } = api.getAppContext();
57
- const isReact18 = utils_isReact18(appDirectory);
58
- process.env.IS_REACT18 = isReact18.toString();
59
57
  return {
60
58
  source: {
61
59
  globalVars: {
62
- 'process.env.IS_REACT18': process.env.IS_REACT18
60
+ 'process.env.IS_REACT18': 'true'
63
61
  },
64
62
  include: [
65
63
  new RegExp(`[\\\\/]node_modules[\\\\/]@${metaName}[\\\\/]runtime[\\\\/].*[\\\\/]head\\.`)
@@ -68,14 +66,6 @@ const runtimePlugin = (params)=>({
68
66
  tools: {
69
67
  bundlerChain: (chain)=>{
70
68
  chain.module.rule('modern-entry').test(/\.jsx?$/).include.add(path_0.resolve(appDirectory, 'node_modules', `.${metaName}`)).end().sideEffects(true);
71
- },
72
- rspack: (_config, { appendPlugins, rspack })=>{
73
- if (!isReact18) appendPlugins([
74
- new rspack.IgnorePlugin({
75
- resourceRegExp: /^react-dom\/client$/,
76
- contextRegExp: /@modern-js\/runtime/
77
- })
78
- ]);
79
69
  }
80
70
  }
81
71
  };
@@ -1,5 +1,5 @@
1
- import { SSR_HYDRATION_ID_PREFIX } from "@modern-js/utils/universal/constants";
2
1
  import { parseCookie } from "cookie";
2
+ import { createRoot } from "react-dom/client";
3
3
  import { getGlobalInternalRuntimeContext } from "../context/index.mjs";
4
4
  import { getInitialContext } from "../context/runtime.mjs";
5
5
  import { wrapRuntimeContextProvider } from "../react/wrapper.mjs";
@@ -69,8 +69,8 @@ async function renderApp(App, id, hydrateFromSsrData, internalRuntimeContext) {
69
69
  return renderFunc(App, rootElement);
70
70
  }
71
71
  async function ModernHydrate(App, callback) {
72
- const hydrateFunc = IS_REACT18 ? hydrateWithReact18 : hydrateWithReact17;
73
- return hydrateFunc(App, rootElement, callback);
72
+ if (IS_REACT18) return hydrateWithReact(App, rootElement);
73
+ return hydrateWithReact17(App, rootElement, callback);
74
74
  }
75
75
  if (hydrateFromSsrData && process.env.MODERN_ENABLE_HYDRATION && window._SSR_DATA) return hydrateRoot(App, context, ModernRender, ModernHydrate);
76
76
  return ModernRender(wrapRuntimeContextProvider(App, context));
@@ -85,8 +85,7 @@ function createNestedAppRenderer() {
85
85
  return (App, id)=>renderApp(App, id, false, internalRuntimeContext);
86
86
  }
87
87
  async function renderWithReact18(App, rootElement) {
88
- const ReactDOM = await import("react-dom/client");
89
- const root = ReactDOM.createRoot(rootElement);
88
+ const root = createRoot(rootElement);
90
89
  root.render(App);
91
90
  return root;
92
91
  }
@@ -95,16 +94,9 @@ async function renderWithReact17(App, rootElement) {
95
94
  ReactDOM.render(App, rootElement);
96
95
  return rootElement;
97
96
  }
98
- async function hydrateWithReact18(App, rootElement) {
99
- const ReactDOM = await import("react-dom/client");
100
- const root = ReactDOM.hydrateRoot(rootElement, App, {
101
- identifierPrefix: SSR_HYDRATION_ID_PREFIX
102
- });
103
- return root;
104
- }
105
97
  async function hydrateWithReact17(App, rootElement, callback) {
106
98
  const ReactDOM = await import("react-dom");
107
99
  const root = ReactDOM.hydrate(App, rootElement, callback);
108
100
  return root;
109
101
  }
110
- export { createNestedAppRenderer, hydrateWithReact, hydrateWithReact17, hydrateWithReact18, render, renderWithReact17, renderWithReact18 };
102
+ export { createNestedAppRenderer, hydrateWithReact, hydrateWithReact17, render, renderWithReact17, renderWithReact18 };
@@ -85,7 +85,7 @@ async function generateHtml(App, htmlTemplate, chunkSet, collectors, htmlModifie
85
85
  createReplaceHtml(html),
86
86
  createReplaceChunkJs(jsChunk, entryName),
87
87
  createReplaceChunkCss(cssChunk),
88
- createReplaceSSRDataScript(ssrScripts),
88
+ createReplaceSSRDataScript(ssrScripts, entryName),
89
89
  createReplaceHelemt(helmetData),
90
90
  ...htmlModifiers
91
91
  ]);
@@ -94,8 +94,8 @@ async function generateHtml(App, htmlTemplate, chunkSet, collectors, htmlModifie
94
94
  function createReplaceHtml(html) {
95
95
  return (template)=>safeReplace(template, HTML_PLACEHOLDER, html);
96
96
  }
97
- function createReplaceSSRDataScript(data) {
98
- return (template)=>safeReplace(template, SSR_DATA_PLACEHOLDER, data);
97
+ function createReplaceSSRDataScript(data, entryName) {
98
+ return (template)=>replaceChunkJsPlaceholder(template, data, entryName, SSR_DATA_PLACEHOLDER);
99
99
  }
100
100
  function createReplaceChunkJs(js, entryName) {
101
101
  return (template)=>replaceChunkJsPlaceholder(template, js, entryName);
@@ -1,6 +1,6 @@
1
1
  import __rslib_shim_module__ from "node:module";
2
2
  const require = /*#__PURE__*/ __rslib_shim_module__.createRequire(/*#__PURE__*/ (()=>import.meta.url)());
3
- import { cleanRequireCache, isReact18 as utils_isReact18 } from "@modern-js/utils";
3
+ import { cleanRequireCache } from "@modern-js/utils";
4
4
  import path_0 from "path";
5
5
  import { documentPlugin } from "../document/cli/index.mjs";
6
6
  import { getEntrypointRoutesDir, getEntrypointRoutesOwner, handleFileChange, handleGeneratorEntryCode, handleModifyEntrypoints, isRouteEntry, routerPlugin, updateNestedRoutesSpec } from "../router/cli/index.mjs";
@@ -56,12 +56,10 @@ const runtimePlugin = (params)=>({
56
56
  });
57
57
  api.config(()=>{
58
58
  const { appDirectory, metaName } = api.getAppContext();
59
- const isReact18 = utils_isReact18(appDirectory);
60
- process.env.IS_REACT18 = isReact18.toString();
61
59
  return {
62
60
  source: {
63
61
  globalVars: {
64
- 'process.env.IS_REACT18': process.env.IS_REACT18
62
+ 'process.env.IS_REACT18': 'true'
65
63
  },
66
64
  include: [
67
65
  new RegExp(`[\\\\/]node_modules[\\\\/]@${metaName}[\\\\/]runtime[\\\\/].*[\\\\/]head\\.`)
@@ -70,14 +68,6 @@ const runtimePlugin = (params)=>({
70
68
  tools: {
71
69
  bundlerChain: (chain)=>{
72
70
  chain.module.rule('modern-entry').test(/\.jsx?$/).include.add(path_0.resolve(appDirectory, 'node_modules', `.${metaName}`)).end().sideEffects(true);
73
- },
74
- rspack: (_config, { appendPlugins, rspack })=>{
75
- if (!isReact18) appendPlugins([
76
- new rspack.IgnorePlugin({
77
- resourceRegExp: /^react-dom\/client$/,
78
- contextRegExp: /@modern-js\/runtime/
79
- })
80
- ]);
81
71
  }
82
72
  }
83
73
  };
@@ -1,6 +1,6 @@
1
1
  import "node:module";
2
- import { SSR_HYDRATION_ID_PREFIX } from "@modern-js/utils/universal/constants";
3
2
  import { parseCookie } from "cookie";
3
+ import { createRoot } from "react-dom/client";
4
4
  import { getGlobalInternalRuntimeContext } from "../context/index.mjs";
5
5
  import { getInitialContext } from "../context/runtime.mjs";
6
6
  import { wrapRuntimeContextProvider } from "../react/wrapper.mjs";
@@ -70,8 +70,8 @@ async function renderApp(App, id, hydrateFromSsrData, internalRuntimeContext) {
70
70
  return renderFunc(App, rootElement);
71
71
  }
72
72
  async function ModernHydrate(App, callback) {
73
- const hydrateFunc = IS_REACT18 ? hydrateWithReact18 : hydrateWithReact17;
74
- return hydrateFunc(App, rootElement, callback);
73
+ if (IS_REACT18) return hydrateWithReact(App, rootElement);
74
+ return hydrateWithReact17(App, rootElement, callback);
75
75
  }
76
76
  if (hydrateFromSsrData && process.env.MODERN_ENABLE_HYDRATION && window._SSR_DATA) return hydrateRoot(App, context, ModernRender, ModernHydrate);
77
77
  return ModernRender(wrapRuntimeContextProvider(App, context));
@@ -86,8 +86,7 @@ function createNestedAppRenderer() {
86
86
  return (App, id)=>renderApp(App, id, false, internalRuntimeContext);
87
87
  }
88
88
  async function renderWithReact18(App, rootElement) {
89
- const ReactDOM = await import("react-dom/client");
90
- const root = ReactDOM.createRoot(rootElement);
89
+ const root = createRoot(rootElement);
91
90
  root.render(App);
92
91
  return root;
93
92
  }
@@ -96,16 +95,9 @@ async function renderWithReact17(App, rootElement) {
96
95
  ReactDOM.render(App, rootElement);
97
96
  return rootElement;
98
97
  }
99
- async function hydrateWithReact18(App, rootElement) {
100
- const ReactDOM = await import("react-dom/client");
101
- const root = ReactDOM.hydrateRoot(rootElement, App, {
102
- identifierPrefix: SSR_HYDRATION_ID_PREFIX
103
- });
104
- return root;
105
- }
106
98
  async function hydrateWithReact17(App, rootElement, callback) {
107
99
  const ReactDOM = await import("react-dom");
108
100
  const root = ReactDOM.hydrate(App, rootElement, callback);
109
101
  return root;
110
102
  }
111
- export { createNestedAppRenderer, hydrateWithReact, hydrateWithReact17, hydrateWithReact18, render, renderWithReact17, renderWithReact18 };
103
+ export { createNestedAppRenderer, hydrateWithReact, hydrateWithReact17, render, renderWithReact17, renderWithReact18 };
@@ -86,7 +86,7 @@ async function generateHtml(App, htmlTemplate, chunkSet, collectors, htmlModifie
86
86
  createReplaceHtml(html),
87
87
  createReplaceChunkJs(jsChunk, entryName),
88
88
  createReplaceChunkCss(cssChunk),
89
- createReplaceSSRDataScript(ssrScripts),
89
+ createReplaceSSRDataScript(ssrScripts, entryName),
90
90
  createReplaceHelemt(helmetData),
91
91
  ...htmlModifiers
92
92
  ]);
@@ -95,8 +95,8 @@ async function generateHtml(App, htmlTemplate, chunkSet, collectors, htmlModifie
95
95
  function createReplaceHtml(html) {
96
96
  return (template)=>safeReplace(template, HTML_PLACEHOLDER, html);
97
97
  }
98
- function createReplaceSSRDataScript(data) {
99
- return (template)=>safeReplace(template, SSR_DATA_PLACEHOLDER, data);
98
+ function createReplaceSSRDataScript(data, entryName) {
99
+ return (template)=>replaceChunkJsPlaceholder(template, data, entryName, SSR_DATA_PLACEHOLDER);
100
100
  }
101
101
  function createReplaceChunkJs(js, entryName) {
102
102
  return (template)=>replaceChunkJsPlaceholder(template, js, entryName);
@@ -9,5 +9,4 @@ export declare function render(App: React.ReactElement<{
9
9
  export declare function createNestedAppRenderer(): RenderFunc;
10
10
  export declare function renderWithReact18(App: React.ReactElement, rootElement: HTMLElement): Promise<import("react-dom/client").Root>;
11
11
  export declare function renderWithReact17(App: React.ReactElement, rootElement: HTMLElement): Promise<HTMLElement>;
12
- export declare function hydrateWithReact18(App: React.ReactElement, rootElement: HTMLElement): Promise<import("react-dom/client").Root>;
13
12
  export declare function hydrateWithReact17(App: React.ReactElement, rootElement: HTMLElement, callback?: () => void): Promise<any>;
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "modern",
18
18
  "modern.js"
19
19
  ],
20
- "version": "3.5.0-ultramodern.97",
20
+ "version": "3.5.0-ultramodern.99",
21
21
  "engines": {
22
22
  "node": ">=20"
23
23
  },
@@ -246,12 +246,12 @@
246
246
  "dependencies": {
247
247
  "@loadable/component": "5.16.7",
248
248
  "@loadable/server": "5.16.7",
249
- "@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.5.0-ultramodern.97",
250
- "@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.5.0-ultramodern.97",
251
- "@modern-js/render": "npm:@bleedingdev/modern-js-render@3.5.0-ultramodern.97",
252
- "@modern-js/runtime-utils": "npm:@bleedingdev/modern-js-runtime-utils@3.5.0-ultramodern.97",
253
- "@modern-js/types": "npm:@bleedingdev/modern-js-types@3.5.0-ultramodern.97",
254
- "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.5.0-ultramodern.97",
249
+ "@modern-js/plugin": "npm:@bleedingdev/modern-js-plugin@3.5.0-ultramodern.99",
250
+ "@modern-js/plugin-data-loader": "npm:@bleedingdev/modern-js-plugin-data-loader@3.5.0-ultramodern.99",
251
+ "@modern-js/render": "npm:@bleedingdev/modern-js-render@3.5.0-ultramodern.99",
252
+ "@modern-js/runtime-utils": "npm:@bleedingdev/modern-js-runtime-utils@3.5.0-ultramodern.99",
253
+ "@modern-js/types": "npm:@bleedingdev/modern-js-types@3.5.0-ultramodern.99",
254
+ "@modern-js/utils": "npm:@bleedingdev/modern-js-utils@3.5.0-ultramodern.99",
255
255
  "@swc/core": "1.15.43",
256
256
  "@swc/helpers": "^0.5.23",
257
257
  "@swc/plugin-loadable-components": "^11.15.0",
@@ -272,13 +272,14 @@
272
272
  "react-dom": "^19.2.7"
273
273
  },
274
274
  "devDependencies": {
275
- "@modern-js/app-tools": "npm:@bleedingdev/modern-js-app-tools@3.5.0-ultramodern.97",
275
+ "@modern-js/app-tools": "npm:@bleedingdev/modern-js-app-tools@3.5.0-ultramodern.99",
276
276
  "@remix-run/web-fetch": "^4.4.2",
277
277
  "@rsbuild/core": "2.1.5",
278
278
  "@rslib/core": "0.23.2",
279
279
  "@scripts/rstest-config": "2.66.0",
280
280
  "@testing-library/dom": "^10.4.1",
281
281
  "@testing-library/react": "^16.3.2",
282
+ "@types/cookie": "0.6.0",
282
283
  "@types/invariant": "^2.2.37",
283
284
  "@types/loadable__server": "5.12.11",
284
285
  "@types/node": "^26.1.1",