@modern-js/runtime 2.17.1 → 2.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +6 -0
  3. package/dist/cjs/router/runtime/DeferredDataScripts.node.js +6 -6
  4. package/dist/cjs/router/runtime/index.js +5 -5
  5. package/dist/cjs/router/runtime/plugin.js +2 -2
  6. package/dist/cjs/router/runtime/plugin.node.js +2 -2
  7. package/dist/cjs/router/runtime/utils.js +4 -5
  8. package/dist/cjs/ssr/cli/index.js +30 -15
  9. package/dist/cjs/ssr/cli/loadable-bundler-plugin.js +112 -0
  10. package/dist/cjs/ssr/index.js +3 -3
  11. package/dist/cjs/ssr/prefetch.js +2 -2
  12. package/dist/cjs/ssr/serverRender/renderToStream/buildTemplate.after.js +2 -2
  13. package/dist/cjs/ssr/serverRender/renderToStream/index.js +2 -2
  14. package/dist/cjs/ssr/serverRender/renderToString/entry.js +3 -3
  15. package/dist/cjs/ssr/serverRender/renderToString/index.js +2 -2
  16. package/dist/esm/core/compatible.js +13 -13
  17. package/dist/esm/core/loader/loaderManager.js +7 -7
  18. package/dist/esm/core/loader/useLoader.js +2 -2
  19. package/dist/esm/core/plugin.js +6 -6
  20. package/dist/esm/document/Html.js +5 -5
  21. package/dist/esm/document/cli/index.js +6 -6
  22. package/dist/esm/document/constants.js +1 -1
  23. package/dist/esm/router/cli/index.js +6 -6
  24. package/dist/esm/router/runtime/DeferredDataScripts.node.js +4 -4
  25. package/dist/esm/router/runtime/PrefetchLink.js +7 -7
  26. package/dist/esm/router/runtime/index.js +2 -2
  27. package/dist/esm/router/runtime/plugin.js +10 -10
  28. package/dist/esm/router/runtime/plugin.node.js +8 -8
  29. package/dist/esm/router/runtime/utils.js +7 -8
  30. package/dist/esm/router/runtime/withRouter.js +4 -4
  31. package/dist/esm/ssr/cli/index.js +37 -22
  32. package/dist/esm/ssr/cli/loadable-bundler-plugin.js +209 -0
  33. package/dist/esm/ssr/index.js +14 -14
  34. package/dist/esm/ssr/index.node.js +9 -9
  35. package/dist/esm/ssr/prefetch.js +4 -4
  36. package/dist/esm/ssr/react/prerender/index.js +1 -1
  37. package/dist/esm/ssr/serverRender/renderToStream/buildTemplate.after.js +4 -4
  38. package/dist/esm/ssr/serverRender/renderToStream/index.js +1 -1
  39. package/dist/esm/ssr/serverRender/renderToStream/loadable.js +1 -1
  40. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.js +1 -1
  41. package/dist/esm/ssr/serverRender/renderToStream/renderToPipe.worker.js +1 -1
  42. package/dist/esm/ssr/serverRender/renderToStream/template.js +2 -2
  43. package/dist/esm/ssr/serverRender/renderToString/entry.js +4 -4
  44. package/dist/esm/ssr/serverRender/renderToString/index.js +3 -3
  45. package/dist/esm/ssr/serverRender/renderToString/loadable.js +1 -1
  46. package/dist/esm/ssr/serverRender/renderToString/template.js +1 -1
  47. package/dist/esm/ssr/utils.js +4 -4
  48. package/dist/esm/state/cli/index.js +4 -4
  49. package/dist/esm/state/runtime/plugin.js +7 -7
  50. package/dist/esm-node/router/runtime/DeferredDataScripts.node.js +1 -1
  51. package/dist/esm-node/router/runtime/index.js +2 -2
  52. package/dist/esm-node/router/runtime/plugin.js +1 -1
  53. package/dist/esm-node/router/runtime/plugin.node.js +1 -1
  54. package/dist/esm-node/router/runtime/utils.js +1 -2
  55. package/dist/esm-node/ssr/cli/index.js +30 -15
  56. package/dist/esm-node/ssr/cli/loadable-bundler-plugin.js +103 -0
  57. package/dist/esm-node/ssr/index.js +1 -1
  58. package/dist/esm-node/ssr/prefetch.js +1 -1
  59. package/dist/esm-node/ssr/serverRender/renderToStream/buildTemplate.after.js +1 -1
  60. package/dist/esm-node/ssr/serverRender/renderToStream/index.js +1 -1
  61. package/dist/esm-node/ssr/serverRender/renderToString/entry.js +1 -1
  62. package/dist/esm-node/ssr/serverRender/renderToString/index.js +1 -1
  63. package/dist/types/router/runtime/index.d.ts +1 -1
  64. package/dist/types/router/runtime/utils.d.ts +1 -1
  65. package/dist/types/runtimeContext.d.ts +1 -1
  66. package/dist/types/ssr/cli/loadable-bundler-plugin.d.ts +10 -0
  67. package/package.json +9 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # @modern-js/runtime
2
2
 
3
+ ## 2.18.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 8fb93d1: fix: replace route id correctly
8
+ fix: 正确地替换 route id
9
+ - @modern-js/plugin@2.18.1
10
+ - @modern-js/types@2.18.1
11
+ - @modern-js/utils@2.18.1
12
+
13
+ ## 2.18.0
14
+
15
+ ### Minor Changes
16
+
17
+ - 7de6599: feat: rspack-provider support modern.js ssr mode
18
+ feat: rspack-provider 支持 modern.js ssr 模式
19
+
20
+ ### Patch Changes
21
+
22
+ - @modern-js/plugin@2.18.0
23
+ - @modern-js/types@2.18.0
24
+ - @modern-js/utils@2.18.0
25
+
3
26
  ## 2.17.1
4
27
 
5
28
  ### Patch Changes
package/README.md CHANGED
@@ -24,3 +24,9 @@ Please read the [Contributing Guide](https://github.com/web-infra-dev/modern.js/
24
24
  ## License
25
25
 
26
26
  Modern.js is [MIT licensed](https://github.com/web-infra-dev/modern.js/blob/main/LICENSE).
27
+
28
+ ## Credist
29
+
30
+ Thanks to:
31
+
32
+ - [@loadable/webpack-plugin](https://github.com/gregberge/loadable-components) to create a webpack plugin prepare for loadable usage in ssr.
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "default", {
9
9
  const _jsxruntime = require("react/jsx-runtime");
10
10
  const _react = require("react");
11
11
  const _reactrouterdom = require("react-router-dom");
12
- const _serialize = require("@modern-js/utils/universal/serialize");
12
+ const _runtimenode = require("@modern-js/utils/runtime-node");
13
13
  const _common = require("../../common");
14
14
  const _utils = require("./utils");
15
15
  const setupFnStr = `function s(r,e){_ROUTER_DATA.r=_ROUTER_DATA.r||{},_ROUTER_DATA.r[r]=_ROUTER_DATA.r[r]||{};return new Promise((function(A,R){_ROUTER_DATA.r[r][e]={resolve:A,reject:R}}))};`;
@@ -32,7 +32,7 @@ const DeferredDataScripts = () => {
32
32
  errors: (0, _utils.serializeErrors)(staticContext.errors)
33
33
  };
34
34
  let initialScripts = [
35
- `_ROUTER_DATA = ${(0, _serialize.serializeJson)(_ROUTER_DATA)};`,
35
+ `_ROUTER_DATA = ${(0, _runtimenode.serializeJson)(_ROUTER_DATA)};`,
36
36
  `_ROUTER_DATA.s = ${setupFnStr}`,
37
37
  `_ROUTER_DATA.r = ${resolveFnStr}`,
38
38
  `_ROUTER_DATA.p = ${preResolvedFnStr}`
@@ -56,12 +56,12 @@ const DeferredDataScripts = () => {
56
56
  message: trackedPromise._error.message,
57
57
  stack: process.env.NODE_ENV !== "production" ? trackedPromise._error.stack : void 0
58
58
  };
59
- return `${JSON.stringify(key)}: _ROUTER_DATA.p(${void 0}, ${(0, _serialize.serializeJson)(error)})`;
59
+ return `${JSON.stringify(key)}: _ROUTER_DATA.p(${void 0}, ${(0, _runtimenode.serializeJson)(error)})`;
60
60
  } else {
61
61
  if (typeof trackedPromise._data === "undefined") {
62
62
  throw new Error(`The deferred data for ${key} was not resolved, did you forget to return data from a deferred promise`);
63
63
  }
64
- return `${JSON.stringify(key)}: _ROUTER_DATA.p(${(0, _serialize.serializeJson)(trackedPromise._data)})`;
64
+ return `${JSON.stringify(key)}: _ROUTER_DATA.p(${(0, _runtimenode.serializeJson)(trackedPromise._data)})`;
65
65
  }
66
66
  }
67
67
  }).join(",\n");
@@ -101,7 +101,7 @@ const DeferredDataScript = ({ data, routeId, dataKey }) => {
101
101
  async: true,
102
102
  suppressHydrationWarning: true,
103
103
  dangerouslySetInnerHTML: {
104
- __html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(dataKey)}, ${(0, _serialize.serializeJson)(data2)});`
104
+ __html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(dataKey)}, ${(0, _runtimenode.serializeJson)(data2)});`
105
105
  }
106
106
  })
107
107
  }) : null
@@ -112,7 +112,7 @@ const ErrorDeferredDataScript = ({ routeId, dataKey }) => {
112
112
  return /* @__PURE__ */ (0, _jsxruntime.jsx)("script", {
113
113
  suppressHydrationWarning: true,
114
114
  dangerouslySetInnerHTML: {
115
- __html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(dataKey)}, ${void 0}, ${(0, _serialize.serializeJson)({
115
+ __html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(dataKey)}, ${void 0}, ${(0, _runtimenode.serializeJson)({
116
116
  message: error.message,
117
117
  stack: error.stack
118
118
  })});`
@@ -73,15 +73,15 @@ _export(exports, {
73
73
  createPath: () => _reactrouterdom.createPath,
74
74
  unstable_useBlocker: () => _reactrouterdom.unstable_useBlocker,
75
75
  unstable_usePrompt: () => _reactrouterdom.unstable_usePrompt,
76
- defer: () => _remixrouter.defer,
77
- json: () => _remixrouter.json,
78
- redirect: () => _remixrouter.redirect
76
+ defer: () => _router.defer,
77
+ json: () => _router.json,
78
+ redirect: () => _router.redirect
79
79
  });
80
80
  const _reactrouterdom = require("react-router-dom");
81
81
  const _plugin = require("./plugin");
82
82
  _export_star(require("./withRouter"), exports);
83
83
  const _PrefetchLink = require("./PrefetchLink");
84
- const _remixrouter = require("@modern-js/utils/universal/remix-router");
84
+ const _router = require("@modern-js/utils/runtime/router");
85
85
  function _export_star(from, to) {
86
86
  Object.keys(from).forEach(function(k) {
87
87
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
@@ -97,6 +97,6 @@ function _export_star(from, to) {
97
97
  }
98
98
  const _default = _plugin.routerPlugin;
99
99
  const useRouteLoaderData = (routeId) => {
100
- const realRouteId = routeId.replace(/\((.*?)\)/g, "[$1]");
100
+ const realRouteId = routeId.replace(/\[(.*?)\]/g, "($1)");
101
101
  return (0, _reactrouterdom.useRouteLoaderData)(realRouteId);
102
102
  };
@@ -19,7 +19,7 @@ const _jsxruntime = require("react/jsx-runtime");
19
19
  const _react = /* @__PURE__ */ _interop_require_default(require("react"));
20
20
  const _reactrouterdom = require("react-router-dom");
21
21
  const _hoistnonreactstatics = /* @__PURE__ */ _interop_require_default(require("hoist-non-react-statics"));
22
- const _runtime = require("@modern-js/utils/runtime");
22
+ const _runtimebrowser = require("@modern-js/utils/runtime-browser");
23
23
  const _hooks = require("./hooks");
24
24
  const _utils = require("./utils");
25
25
  function _interop_require_default(obj) {
@@ -44,7 +44,7 @@ const routerPlugin = ({ serverBase = [], supportHtml5History = true, basename =
44
44
  const select = (pathname) => serverBase.find((baseUrl) => pathname.search(baseUrl) === 0) || "/";
45
45
  let routes = [];
46
46
  finalRouteConfig = routesConfig;
47
- window._SERVER_DATA = (0, _runtime.parsedJSONFromElement)("__MODERN_SERVER_DATA__");
47
+ window._SERVER_DATA = (0, _runtimebrowser.parsedJSONFromElement)("__MODERN_SERVER_DATA__");
48
48
  return {
49
49
  name: "@modern-js/plugin-router",
50
50
  registerHook: {
@@ -16,7 +16,7 @@ _export(exports, {
16
16
  });
17
17
  const _jsxruntime = require("react/jsx-runtime");
18
18
  const _react = /* @__PURE__ */ _interop_require_wildcard(require("react"));
19
- const _remixrouter = require("@modern-js/utils/universal/remix-router");
19
+ const _router = require("@modern-js/utils/runtime/router");
20
20
  const _server = require("react-router-dom/server");
21
21
  const _hoistnonreactstatics = /* @__PURE__ */ _interop_require_default(require("hoist-non-react-statics"));
22
22
  const _reactrouterdom = require("react-router-dom");
@@ -117,7 +117,7 @@ const routerPlugin = ({ basename = "", routesConfig, createRoutes }) => {
117
117
  routesConfig,
118
118
  ssrMode
119
119
  }));
120
- const { query } = (0, _remixrouter.createStaticHandler)(routes, {
120
+ const { query } = (0, _router.createStaticHandler)(routes, {
121
121
  basename: _basename
122
122
  });
123
123
  const remixRequest = createFetchRequest(request);
@@ -21,8 +21,7 @@ _export(exports, {
21
21
  const _jsxruntime = require("react/jsx-runtime");
22
22
  const _react = /* @__PURE__ */ _interop_require_default(require("react"));
23
23
  const _reactrouterdom = require("react-router-dom");
24
- const _remixrouter = require("@modern-js/utils/universal/remix-router");
25
- const _nestedRoutes = require("@modern-js/utils/universal/nestedRoutes");
24
+ const _router = require("@modern-js/utils/runtime/router");
26
25
  const _DefaultNotFound = require("./DefaultNotFound");
27
26
  const _DeferredDataScripts = /* @__PURE__ */ _interop_require_default(require("./DeferredDataScripts"));
28
27
  function _interop_require_default(obj) {
@@ -46,7 +45,7 @@ function getRouteComponents(routes, { globalApp, ssrMode, props }) {
46
45
  const routeElements = [];
47
46
  for (const route of routes) {
48
47
  if (route.type === "nested") {
49
- const routeElement = (0, _nestedRoutes.renderNestedRoute)(route, {
48
+ const routeElement = (0, _router.renderNestedRoute)(route, {
50
49
  DeferredDataComponent: ssrMode === "stream" ? _DeferredDataScripts.default : void 0,
51
50
  props
52
51
  });
@@ -120,7 +119,7 @@ function serializeErrors(errors) {
120
119
  const entries = Object.entries(errors);
121
120
  const serialized = {};
122
121
  for (const [key, val] of entries) {
123
- if ((0, _remixrouter.isRouteErrorResponse)(val)) {
122
+ if ((0, _router.isRouteErrorResponse)(val)) {
124
123
  serialized[key] = {
125
124
  ...val,
126
125
  __type: "RouteErrorResponse"
@@ -145,7 +144,7 @@ function deserializeErrors(errors) {
145
144
  const serialized = {};
146
145
  for (const [key, val] of entries) {
147
146
  if (val && val.__type === "RouteErrorResponse") {
148
- serialized[key] = new _remixrouter.ErrorResponse(val.status, val.statusText, val.data, val.internal === true);
147
+ serialized[key] = new _router.ErrorResponse(val.status, val.statusText, val.data, val.internal === true);
149
148
  } else if (val && val.__type === "Error") {
150
149
  const error = new Error(val.message);
151
150
  error.stack = val.stack;
@@ -42,21 +42,36 @@ const _default = () => {
42
42
  config() {
43
43
  const appContext = api.useAppContext();
44
44
  pluginsExportsUtils = (0, _utils.createRuntimeExportsUtils)(appContext.internalDirectory, "plugins");
45
+ const userConfig = api.useResolvedConfigContext();
45
46
  const { bundlerType = "webpack" } = api.useAppContext();
46
- const babelConfig = bundlerType === "webpack" ? (config) => {
47
- var _config_plugins;
48
- (_config_plugins = config.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(_path.default.join(__dirname, "./babel-plugin-ssr-loader-id"));
49
- const userConfig = api.useResolvedConfigContext();
50
- if ((0, _utils.isUseSSRBundle)(userConfig) && hasStringSSREntry(userConfig)) {
51
- var _config_plugins1;
52
- (_config_plugins1 = config.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(require.resolve("@loadable/babel-plugin"));
47
+ const babelConfig = (() => {
48
+ if (bundlerType === "webpack") {
49
+ return (config) => {
50
+ var _config_plugins;
51
+ (_config_plugins = config.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(_path.default.join(__dirname, "./babel-plugin-ssr-loader-id"));
52
+ if ((0, _utils.isUseSSRBundle)(userConfig) && hasStringSSREntry(userConfig)) {
53
+ var _config_plugins1;
54
+ (_config_plugins1 = config.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(require.resolve("@loadable/babel-plugin"));
55
+ }
56
+ };
57
+ } else if (bundlerType === "rspack") {
58
+ if ((0, _utils.isUseSSRBundle)(userConfig)) {
59
+ return (config) => {
60
+ var _config_plugins;
61
+ (_config_plugins = config.plugins) === null || _config_plugins === void 0 ? void 0 : _config_plugins.push(_path.default.join(__dirname, "./babel-plugin-ssr-loader-id"));
62
+ if (hasStringSSREntry(userConfig)) {
63
+ var _config_plugins1;
64
+ (_config_plugins1 = config.plugins) === null || _config_plugins1 === void 0 ? void 0 : _config_plugins1.push(require.resolve("@loadable/babel-plugin"));
65
+ }
66
+ };
67
+ }
53
68
  }
54
- } : void 0;
69
+ })();
55
70
  return {
56
71
  source: {
57
72
  alias: {
58
- // ensure that all packages use the same storage in @modern-js/utils/ssr
59
- "@modern-js/utils/ssr": require.resolve("@modern-js/utils/ssr"),
73
+ // ensure that all packages use the same storage in @modern-js/utils/runtime-node
74
+ "@modern-js/utils/runtime-node": require.resolve("@modern-js/utils/runtime-node"),
60
75
  "@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
61
76
  },
62
77
  globalVars: (values, { target }) => {
@@ -64,11 +79,11 @@ const _default = () => {
64
79
  }
65
80
  },
66
81
  tools: {
67
- webpackChain: (chain, { isServer, isServiceWorker, CHAIN_ID }) => {
68
- const userConfig = api.useResolvedConfigContext();
69
- if ((0, _utils.isUseSSRBundle)(userConfig) && !isServer && !isServiceWorker && hasStringSSREntry(userConfig)) {
70
- const LoadableWebpackPlugin = require("@loadable/webpack-plugin");
71
- chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableWebpackPlugin, [
82
+ bundlerChain(chain, { isServer, isServiceWorker, CHAIN_ID }) {
83
+ const userConfig2 = api.useResolvedConfigContext();
84
+ if ((0, _utils.isUseSSRBundle)(userConfig2) && !isServer && !isServiceWorker && hasStringSSREntry(userConfig2)) {
85
+ const LoadableBundlerPlugin = require("./loadable-bundler-plugin.js");
86
+ chain.plugin(CHAIN_ID.PLUGIN.LOADABLE).use(LoadableBundlerPlugin, [
72
87
  {
73
88
  filename: _utils.LOADABLE_STATS_FILE
74
89
  }
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ const _path = /* @__PURE__ */ _interop_require_default(require("path"));
6
+ const _utils = require("@modern-js/utils");
7
+ function _define_property(obj, key, value) {
8
+ if (key in obj) {
9
+ Object.defineProperty(obj, key, {
10
+ value,
11
+ enumerable: true,
12
+ configurable: true,
13
+ writable: true
14
+ });
15
+ } else {
16
+ obj[key] = value;
17
+ }
18
+ return obj;
19
+ }
20
+ function _interop_require_default(obj) {
21
+ return obj && obj.__esModule ? obj : {
22
+ default: obj
23
+ };
24
+ }
25
+ class LoadablePlugin {
26
+ apply(compiler) {
27
+ this.compiler = compiler;
28
+ compiler.options.output.chunkLoadingGlobal = this.opts.chunkLoadingGlobal;
29
+ if (this.opts.outputAsset || this.opts.writeToDisk) {
30
+ compiler.hooks.make.tap(LoadablePlugin.name, (compilation) => {
31
+ compilation.hooks.processAssets.tap({
32
+ name: LoadablePlugin.name,
33
+ stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_REPORT
34
+ }, () => {
35
+ const asset = this.handleEmit(compilation);
36
+ if (asset) {
37
+ compilation.emitAsset(this.opts.filename, asset);
38
+ }
39
+ });
40
+ });
41
+ }
42
+ }
43
+ handleEmit(compilation) {
44
+ const stats = compilation.getStats().toJson({
45
+ all: false,
46
+ assets: true,
47
+ // rspack not support cachedAssets,
48
+ cachedAssets: true,
49
+ chunks: true,
50
+ chunkGroups: true,
51
+ entrypoints: true,
52
+ // rspack not support chunkGroupChildren.
53
+ chunkGroupChildren: true,
54
+ hash: true,
55
+ ids: true,
56
+ outputPath: true,
57
+ publicPath: true
58
+ });
59
+ const output = {
60
+ ...stats,
61
+ generator: "loadable-components",
62
+ chunks: [
63
+ ...stats.chunks || []
64
+ ].map((chunk) => {
65
+ return {
66
+ id: chunk.id,
67
+ files: [
68
+ ...chunk.files || []
69
+ ]
70
+ };
71
+ })
72
+ };
73
+ const result = JSON.stringify(output, null, 2);
74
+ if (this.opts.writeToDisk) {
75
+ this.writeAssetsFile(result);
76
+ }
77
+ if (this.opts.outputAsset) {
78
+ return {
79
+ source() {
80
+ return result;
81
+ },
82
+ size() {
83
+ return result.length;
84
+ }
85
+ };
86
+ }
87
+ return null;
88
+ }
89
+ writeAssetsFile(manifest) {
90
+ var _this_compiler;
91
+ const outputFolder = (_this_compiler = this.compiler) === null || _this_compiler === void 0 ? void 0 : _this_compiler.options.output.path;
92
+ const outputFile = _path.default.resolve(outputFolder || "", this.opts.filename);
93
+ _utils.fs.outputFileSync(outputFile, manifest);
94
+ }
95
+ constructor({ filename = "loadable-stats.json", path, writeToDisk, outputAsset = true, chunkLoadingGlobal = "__LOADABLE_LOADED_CHUNKS__" } = {
96
+ filename: "loadable-stats.json",
97
+ outputAsset: true,
98
+ chunkLoadingGlobal: "__LOADABLE_LOADED_CHUNKS__"
99
+ }) {
100
+ _define_property(this, "opts", void 0);
101
+ _define_property(this, "compiler", void 0);
102
+ this.opts = {
103
+ filename,
104
+ path,
105
+ writeToDisk,
106
+ outputAsset,
107
+ chunkLoadingGlobal
108
+ };
109
+ this.compiler = null;
110
+ }
111
+ }
112
+ module.exports = LoadablePlugin;
@@ -16,7 +16,7 @@ _export(exports, {
16
16
  const _jsxruntime = require("react/jsx-runtime");
17
17
  const _component = require("@loadable/component");
18
18
  const _hoistnonreactstatics = /* @__PURE__ */ _interop_require_default(require("hoist-non-react-statics"));
19
- const _runtime = require("@modern-js/utils/runtime");
19
+ const _runtimebrowser = require("@modern-js/utils/runtime-browser");
20
20
  const _types = require("./serverRender/types");
21
21
  const _withCallback = require("./react/withCallback");
22
22
  const _utils = require("./utils");
@@ -46,8 +46,8 @@ const ssr = (config) => {
46
46
  setup: () => {
47
47
  const mockResp = (0, _utils.mockResponse)();
48
48
  if (config.inlineScript === false) {
49
- window._SSR_DATA = (0, _runtime.parsedJSONFromElement)(_utils1.SSR_DATA_JSON_ID);
50
- window._ROUTER_DATA = (0, _runtime.parsedJSONFromElement)(_utils1.ROUTER_DATA_JSON_ID);
49
+ window._SSR_DATA = (0, _runtimebrowser.parsedJSONFromElement)(_utils1.SSR_DATA_JSON_ID);
50
+ window._ROUTER_DATA = (0, _runtimebrowser.parsedJSONFromElement)(_utils1.ROUTER_DATA_JSON_ID);
51
51
  }
52
52
  return {
53
53
  client: async ({ App, context, ModernRender, ModernHydrate }) => {
@@ -8,10 +8,10 @@ Object.defineProperty(exports, "default", {
8
8
  });
9
9
  const _jsxruntime = require("react/jsx-runtime");
10
10
  const _server = require("react-dom/server");
11
- const _ssr = require("@modern-js/utils/ssr");
11
+ const _runtimenode = require("@modern-js/utils/runtime-node");
12
12
  const _server1 = require("@loadable/server");
13
13
  const prefetch = async (App, context) => {
14
- return (0, _ssr.run)(context.ssrContext.request.headers, async () => {
14
+ return (0, _runtimenode.run)(context.ssrContext.request.headers, async () => {
15
15
  var _context_store;
16
16
  const { ssrContext } = context;
17
17
  const { loadableStats } = ssrContext;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "buildShellAfterTemplate", {
6
6
  enumerable: true,
7
7
  get: () => buildShellAfterTemplate
8
8
  });
9
- const _serialize = require("@modern-js/utils/universal/serialize");
9
+ const _runtimenode = require("@modern-js/utils/runtime-node");
10
10
  const _buildTemplateshare = require("./buildTemplate.share");
11
11
  function buildShellAfterTemplate(afterAppTemplate, options) {
12
12
  const callbacks = [
@@ -40,7 +40,7 @@ function buildShellAfterTemplate(afterAppTemplate, options) {
40
40
  renderLevel
41
41
  };
42
42
  return `
43
- <script>window._SSR_DATA = ${(0, _serialize.serializeJson)(SSRData)}</script>
43
+ <script>window._SSR_DATA = ${(0, _runtimenode.serializeJson)(SSRData)}</script>
44
44
  `;
45
45
  }
46
46
  }
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "render", {
7
7
  get: () => render
8
8
  });
9
9
  const _react = require("react");
10
- const _ssr = require("@modern-js/utils/ssr");
10
+ const _runtimenode = require("@modern-js/utils/runtime-node");
11
11
  const _prerender = require("../../react/prerender");
12
12
  const _time = require("../time");
13
13
  const _renderToPipe = /* @__PURE__ */ _interop_require_default(require("./renderToPipe"));
@@ -21,7 +21,7 @@ const render = ({ App, context }) => {
21
21
  if (!ssrContext) {
22
22
  throw new Error('The "ssrContext" must not be undefined, but received undefined');
23
23
  }
24
- return (0, _ssr.run)(ssrContext.request.headers, async () => {
24
+ return (0, _runtimenode.run)(ssrContext.request.headers, async () => {
25
25
  const end = (0, _time.time)();
26
26
  const rootElement = (0, _react.createElement)(App, {
27
27
  context: Object.assign(context || {}, {
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "default", {
8
8
  });
9
9
  const _react = /* @__PURE__ */ _interop_require_default(require("react"));
10
10
  const _server = /* @__PURE__ */ _interop_require_default(require("react-dom/server"));
11
- const _serialize = require("@modern-js/utils/universal/serialize");
11
+ const _runtimenode = require("@modern-js/utils/runtime-node");
12
12
  const _reacthelmet = /* @__PURE__ */ _interop_require_default(require("react-helmet"));
13
13
  const _utils = require("../../../router/runtime/utils");
14
14
  const _helmet = /* @__PURE__ */ _interop_require_default(require("../helmet"));
@@ -183,10 +183,10 @@ class Entry {
183
183
  }
184
184
  getSSRDataScript(templateData, routerData) {
185
185
  const useInlineScript = this.pluginConfig.inlineScript !== false;
186
- const ssrData = (0, _serialize.serializeJson)(templateData);
186
+ const ssrData = (0, _runtimenode.serializeJson)(templateData);
187
187
  let ssrDataScripts = useInlineScript ? `<script>window._SSR_DATA = ${ssrData}</script>` : `<script type="application/json" id="${_utils1.SSR_DATA_JSON_ID}">${ssrData}</script>`;
188
188
  if (routerData) {
189
- const serializedRouterData = (0, _serialize.serializeJson)(routerData);
189
+ const serializedRouterData = (0, _runtimenode.serializeJson)(routerData);
190
190
  ssrDataScripts += useInlineScript ? `
191
191
  <script>window._ROUTER_DATA = ${serializedRouterData}</script>` : `
192
192
  <script type="application/json" id="${_utils1.ROUTER_DATA_JSON_ID}">${serializedRouterData}</script>`;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "render", {
6
6
  enumerable: true,
7
7
  get: () => render
8
8
  });
9
- const _ssr = require("@modern-js/utils/ssr");
9
+ const _runtimenode = require("@modern-js/utils/runtime-node");
10
10
  const _prerender = require("../../react/prerender");
11
11
  const _time = require("../time");
12
12
  const _entry = /* @__PURE__ */ _interop_require_default(require("./entry"));
@@ -17,7 +17,7 @@ function _interop_require_default(obj) {
17
17
  }
18
18
  const render = ({ App, context, config }) => {
19
19
  const ssrContext = context.ssrContext;
20
- return (0, _ssr.run)(ssrContext.request.headers, async () => {
20
+ return (0, _runtimenode.run)(ssrContext.request.headers, async () => {
21
21
  const entry = new _entry.default({
22
22
  ctx: ssrContext,
23
23
  App,
@@ -41,7 +41,7 @@ function _async_to_generator(fn) {
41
41
  function _define_property(obj, key, value) {
42
42
  if (key in obj) {
43
43
  Object.defineProperty(obj, key, {
44
- value,
44
+ value: value,
45
45
  enumerable: true,
46
46
  configurable: true,
47
47
  writable: true
@@ -245,7 +245,7 @@ var runnerMap = /* @__PURE__ */ new WeakMap();
245
245
  var getInitialContext = function(runner) {
246
246
  return {
247
247
  loaderManager: createLoaderManager({}),
248
- runner,
248
+ runner: runner,
249
249
  isBrowser: true,
250
250
  routeManifest: typeof window !== "undefined" && window[ROUTE_MANIFEST]
251
251
  };
@@ -262,9 +262,9 @@ export var createApp = function(param) {
262
262
  var element = /* @__PURE__ */ React.createElement(App || React.Fragment, App ? _object_spread({}, props) : null, App ? props.children : /* @__PURE__ */ React.cloneElement(props.children, _object_spread({}, (_props_children = props.children) === null || _props_children === void 0 ? void 0 : _props_children.props, props)));
263
263
  var context = useContext(RuntimeReactContext);
264
264
  return runner.provide({
265
- element,
265
+ element: element,
266
266
  props: _object_spread({}, props),
267
- context
267
+ context: context
268
268
  }, {
269
269
  onLast: function(param2) {
270
270
  var element2 = param2.element;
@@ -340,7 +340,7 @@ export var bootstrap = function() {
340
340
  return [
341
341
  2,
342
342
  /* @__PURE__ */ React.createElement(App, {
343
- context
343
+ context: context
344
344
  })
345
345
  ];
346
346
  }
@@ -418,15 +418,15 @@ export var bootstrap = function() {
418
418
  return [
419
419
  2,
420
420
  runner.client({
421
- App,
422
- context,
423
- ModernRender,
424
- ModernHydrate
421
+ App: App,
422
+ context: context,
423
+ ModernRender: ModernRender,
424
+ ModernHydrate: ModernHydrate
425
425
  }, {
426
426
  onLast: function(param) {
427
427
  var App2 = param.App;
428
428
  ModernRender(/* @__PURE__ */ React.createElement(App2, {
429
- context
429
+ context: context
430
430
  }));
431
431
  }
432
432
  })
@@ -476,8 +476,8 @@ export var bootstrap = function() {
476
476
  return [
477
477
  2,
478
478
  runner.server({
479
- App,
480
- context
479
+ App: App,
480
+ context: context
481
481
  })
482
482
  ];
483
483
  }
@@ -497,7 +497,7 @@ export var useRuntimeContext = function() {
497
497
  var context = useContext(RuntimeReactContext);
498
498
  var memoizedContext = useMemo(function() {
499
499
  return context.runner.pickContext({
500
- context,
500
+ context: context,
501
501
  pickedContext: {}
502
502
  }, {
503
503
  onLast: function(param) {
@@ -285,7 +285,7 @@ var createLoader = function(id) {
285
285
  return {
286
286
  loading: !hasLoaded && status === LoaderStatus.loading,
287
287
  reloading: hasLoaded && status === LoaderStatus.loading,
288
- data,
288
+ data: data,
289
289
  error: _instanceof(error, Error) ? "".concat(error.message) : error,
290
290
  // redundant fields for ssr log
291
291
  _error: error
@@ -309,8 +309,8 @@ var createLoader = function(id) {
309
309
  get promise() {
310
310
  return promise;
311
311
  },
312
- onChange,
313
- load
312
+ onChange: onChange,
313
+ load: load
314
314
  };
315
315
  };
316
316
  export var createLoaderManager = function(initialDataMap) {
@@ -425,9 +425,9 @@ export var createLoaderManager = function(initialDataMap) {
425
425
  };
426
426
  }();
427
427
  return {
428
- hasPendingLoaders,
429
- awaitPendingLoaders,
430
- add,
431
- get
428
+ hasPendingLoaders: hasPendingLoaders,
429
+ awaitPendingLoaders: awaitPendingLoaders,
430
+ add: add,
431
+ get: get
432
432
  };
433
433
  };
@@ -12,7 +12,7 @@ function _array_with_holes(arr) {
12
12
  function _define_property(obj, key, value) {
13
13
  if (key in obj) {
14
14
  Object.defineProperty(obj, key, {
15
- value,
15
+ value: value,
16
16
  enumerable: true,
17
17
  configurable: true,
18
18
  writable: true
@@ -148,7 +148,7 @@ var useLoader = function(loaderFn) {
148
148
  return Promise.reject(e);
149
149
  }
150
150
  }, _object_spread_props(_object_spread({}, options), {
151
- params
151
+ params: params
152
152
  }));
153
153
  loaderRef.current = loaderManager.get(id);
154
154
  (_unlistenLoaderChangeRef_current = unlistenLoaderChangeRef.current) === null || _unlistenLoaderChangeRef_current === void 0 ? void 0 : _unlistenLoaderChangeRef_current.call(unlistenLoaderChangeRef);
@@ -138,12 +138,12 @@ var server = createAsyncPipeline();
138
138
  var init = createAsyncPipeline();
139
139
  var pickContext = createPipeline();
140
140
  var runtimeHooks = {
141
- hoc,
142
- provide,
143
- client,
144
- server,
145
- init,
146
- pickContext
141
+ hoc: hoc,
142
+ provide: provide,
143
+ client: client,
144
+ server: server,
145
+ init: init,
146
+ pickContext: pickContext
147
147
  };
148
148
  export var createRuntime = function() {
149
149
  return createManager(runtimeHooks);
@@ -81,11 +81,11 @@ export function Html(props) {
81
81
  return /* @__PURE__ */ _jsx("html", {
82
82
  children: /* @__PURE__ */ _jsxs(DocumentStructureContext.Provider, {
83
83
  value: {
84
- hasSetHead,
85
- hasSetScripts,
86
- hasSetLinks,
87
- hasSetRoot,
88
- hasSetBody,
84
+ hasSetHead: hasSetHead,
85
+ hasSetScripts: hasSetScripts,
86
+ hasSetLinks: hasSetLinks,
87
+ hasSetRoot: hasSetRoot,
88
+ hasSetBody: hasSetBody,
89
89
  docChild: children
90
90
  },
91
91
  children: [