@modern-js/runtime 2.3.1-alpha.0 → 2.4.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +14 -18
  3. package/dist/js/modern/core/compatible.js +1 -0
  4. package/dist/js/modern/document/Body.js +2 -2
  5. package/dist/js/modern/document/{DocumentStructrueContext.js → DocumentStructureContext.js} +2 -2
  6. package/dist/js/modern/document/Head.js +2 -2
  7. package/dist/js/modern/document/Html.js +2 -2
  8. package/dist/js/modern/document/index.js +1 -1
  9. package/dist/js/modern/router/runtime/fetch.js +5 -0
  10. package/dist/js/modern/router/runtime/fetch.node.js +4 -0
  11. package/dist/js/modern/router/runtime/fetch.worker.js +5 -0
  12. package/dist/js/modern/router/runtime/plugin.node.js +2 -14
  13. package/dist/js/modern/ssr/cli/index.js +2 -2
  14. package/dist/js/modern/ssr/prefetch.worker.js +66 -0
  15. package/dist/js/modern/ssr/react/nossr/index.js +6 -2
  16. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +1 -1
  17. package/dist/js/modern/ssr/serverRender/renderToStream/index.worker.js +35 -0
  18. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +5 -3
  19. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.worker.js +110 -0
  20. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +6 -7
  21. package/dist/js/modern/ssr/serverRender/renderToString/index.js +1 -1
  22. package/dist/js/modern/ssr/serverRender/renderToString/index.worker.js +49 -0
  23. package/dist/js/modern/ssr/serverRender/time.js +13 -0
  24. package/dist/js/modern/ssr/serverRender/time.worker.js +28 -0
  25. package/dist/js/modern/ssr/serverRender/utils.js +1 -12
  26. package/dist/js/node/core/compatible.js +1 -0
  27. package/dist/js/node/document/Body.js +2 -2
  28. package/dist/js/node/document/{DocumentStructrueContext.js → DocumentStructureContext.js} +6 -6
  29. package/dist/js/node/document/Head.js +2 -2
  30. package/dist/js/node/document/Html.js +2 -2
  31. package/dist/js/node/document/index.js +1 -1
  32. package/dist/js/node/router/runtime/fetch.js +28 -0
  33. package/dist/js/node/router/runtime/fetch.node.js +27 -0
  34. package/dist/js/node/router/runtime/fetch.worker.js +28 -0
  35. package/dist/js/node/router/runtime/plugin.node.js +3 -15
  36. package/dist/js/node/ssr/cli/index.js +2 -2
  37. package/dist/js/node/ssr/prefetch.worker.js +87 -0
  38. package/dist/js/node/ssr/react/nossr/index.js +6 -2
  39. package/dist/js/node/ssr/serverRender/renderToStream/index.js +2 -2
  40. package/dist/js/node/ssr/serverRender/renderToStream/index.worker.js +64 -0
  41. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +6 -2
  42. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.worker.js +129 -0
  43. package/dist/js/node/ssr/serverRender/renderToString/entry.js +8 -9
  44. package/dist/js/node/ssr/serverRender/renderToString/index.js +2 -2
  45. package/dist/js/node/ssr/serverRender/renderToString/index.worker.js +78 -0
  46. package/dist/js/node/ssr/serverRender/time.js +36 -0
  47. package/dist/js/node/ssr/serverRender/time.worker.js +51 -0
  48. package/dist/js/node/ssr/serverRender/utils.js +2 -14
  49. package/dist/js/treeshaking/core/compatible.js +8 -7
  50. package/dist/js/treeshaking/core/loader/loaderManager.js +3 -3
  51. package/dist/js/treeshaking/core/loader/useLoader.js +15 -15
  52. package/dist/js/treeshaking/document/Body.js +2 -2
  53. package/dist/js/treeshaking/document/{DocumentStructrueContext.js → DocumentStructureContext.js} +2 -2
  54. package/dist/js/treeshaking/document/Head.js +2 -2
  55. package/dist/js/treeshaking/document/Html.js +4 -4
  56. package/dist/js/treeshaking/document/Root.js +2 -2
  57. package/dist/js/treeshaking/document/cli/index.js +4 -4
  58. package/dist/js/treeshaking/document/index.js +1 -1
  59. package/dist/js/treeshaking/router/cli/index.js +2 -2
  60. package/dist/js/treeshaking/router/runtime/fetch.js +2 -0
  61. package/dist/js/treeshaking/router/runtime/fetch.node.js +2 -0
  62. package/dist/js/treeshaking/router/runtime/fetch.worker.js +2 -0
  63. package/dist/js/treeshaking/router/runtime/plugin.js +3 -3
  64. package/dist/js/treeshaking/router/runtime/plugin.node.js +5 -14
  65. package/dist/js/treeshaking/router/runtime/utils.js +3 -3
  66. package/dist/js/treeshaking/ssr/cli/index.js +5 -5
  67. package/dist/js/treeshaking/ssr/index.js +6 -6
  68. package/dist/js/treeshaking/ssr/index.node.js +1 -1
  69. package/dist/js/treeshaking/ssr/prefetch.js +2 -2
  70. package/dist/js/treeshaking/ssr/prefetch.worker.js +191 -0
  71. package/dist/js/treeshaking/ssr/react/nossr/index.js +3 -3
  72. package/dist/js/treeshaking/ssr/react/prerender/index.js +2 -2
  73. package/dist/js/treeshaking/ssr/react/prerender/util.js +2 -2
  74. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +2 -2
  75. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +1 -1
  76. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.worker.js +32 -0
  77. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +1 -1
  78. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +12 -9
  79. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.worker.js +280 -0
  80. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +1 -1
  81. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +6 -8
  82. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +1 -1
  83. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.worker.js +167 -0
  84. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +1 -1
  85. package/dist/js/treeshaking/ssr/serverRender/time.js +57 -0
  86. package/dist/js/treeshaking/ssr/serverRender/time.worker.js +75 -0
  87. package/dist/js/treeshaking/ssr/serverRender/utils.js +1 -57
  88. package/dist/js/treeshaking/ssr/utils.js +5 -5
  89. package/dist/js/treeshaking/state/cli/index.js +2 -2
  90. package/dist/js/treeshaking/state/runtime/plugin.js +3 -3
  91. package/dist/types/document/{DocumentStructrueContext.d.ts → DocumentStructureContext.d.ts} +2 -2
  92. package/dist/types/document/index.d.ts +1 -1
  93. package/dist/types/router/runtime/fetch.d.ts +2 -0
  94. package/dist/types/router/runtime/fetch.node.d.ts +2 -0
  95. package/dist/types/router/runtime/fetch.worker.d.ts +2 -0
  96. package/dist/types/ssr/prefetch.worker.d.ts +13 -0
  97. package/dist/types/ssr/react/nossr/index.d.ts +4 -2
  98. package/dist/types/ssr/serverRender/renderToStream/index.worker.d.ts +6 -0
  99. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +1 -1
  100. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.worker.d.ts +8 -0
  101. package/dist/types/ssr/serverRender/renderToString/index.worker.d.ts +6 -0
  102. package/dist/types/ssr/serverRender/time.d.ts +1 -0
  103. package/dist/types/ssr/serverRender/time.worker.d.ts +1 -0
  104. package/dist/types/ssr/serverRender/utils.d.ts +2 -3
  105. package/package.json +13 -12
@@ -1,49 +1,3 @@
1
- function _arrayLikeToArray(arr, len) {
2
- if (len == null || len > arr.length) len = arr.length;
3
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
- return arr2;
5
- }
6
- function _arrayWithHoles(arr) {
7
- if (Array.isArray(arr)) return arr;
8
- }
9
- function _iterableToArrayLimit(arr, i) {
10
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
11
- if (_i == null) return;
12
- var _arr = [];
13
- var _n = true;
14
- var _d = false;
15
- var _s, _e;
16
- try {
17
- for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
18
- _arr.push(_s.value);
19
- if (i && _arr.length === i) break;
20
- }
21
- } catch (err) {
22
- _d = true;
23
- _e = err;
24
- } finally{
25
- try {
26
- if (!_n && _i["return"] != null) _i["return"]();
27
- } finally{
28
- if (_d) throw _e;
29
- }
30
- }
31
- return _arr;
32
- }
33
- function _nonIterableRest() {
34
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
35
- }
36
- function _slicedToArray(arr, i) {
37
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
38
- }
39
- function _unsupportedIterableToArray(o, minLen) {
40
- if (!o) return;
41
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
42
- var n = Object.prototype.toString.call(o).slice(8, -1);
43
- if (n === "Object" && o.constructor) n = o.constructor.name;
44
- if (n === "Map" || n === "Set") return Array.from(n);
45
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
46
- }
47
1
  function getLoadableScripts(extractor) {
48
2
  var check = function(scripts2) {
49
3
  return (scripts2 || "").includes("__LOADABLE_REQUIRED_CHUNKS___ext");
@@ -56,14 +10,4 @@ function getLoadableScripts(extractor) {
56
10
  return "".concat(i, "</script>");
57
11
  }).join("");
58
12
  }
59
- var getLatency = function(hrtime) {
60
- var ref = _slicedToArray(process.hrtime(hrtime), 2), s = ref[0], ns = ref[1];
61
- return s * 1e3 + ns / 1e6;
62
- };
63
- var time = function() {
64
- var hrtime = process.hrtime();
65
- return function() {
66
- return getLatency(hrtime);
67
- };
68
- };
69
- export { getLoadableScripts, time };
13
+ export { getLoadableScripts };
@@ -76,7 +76,7 @@ var isReact18 = function() {
76
76
  return process.env.IS_REACT18 === "true";
77
77
  };
78
78
  var formatServer = function(request) {
79
- var ref = request.headers || {}, _cookie = ref.cookie, cookie = _cookie === void 0 ? "" : _cookie, tmp = ref["user-agent"], userAgent = tmp === void 0 ? "" : tmp, referer = ref.referer;
79
+ var _ref = request.headers || {}, _ref_cookie = _ref.cookie, cookie = _ref_cookie === void 0 ? "" : _ref_cookie, tmp = _ref["user-agent"], userAgent = tmp === void 0 ? "" : tmp, referer = _ref.referer;
80
80
  return _objectSpread({
81
81
  cookie: cookie,
82
82
  userAgent: userAgent,
@@ -85,7 +85,7 @@ var formatServer = function(request) {
85
85
  };
86
86
  var getQuery = function() {
87
87
  return window.location.search.substring(1).split("&").reduce(function(res, item) {
88
- var ref = _slicedToArray(item.split("="), 2), key = ref[0], value = ref[1];
88
+ var _item_split = _slicedToArray(item.split("="), 2), key = _item_split[0], value = _item_split[1];
89
89
  if (key) {
90
90
  res[key] = value;
91
91
  }
@@ -93,15 +93,15 @@ var getQuery = function() {
93
93
  }, {});
94
94
  };
95
95
  var formatClient = function(request) {
96
- var ref, ref1;
96
+ var _request_headers, _request_headers1;
97
97
  return {
98
98
  params: request.params || {},
99
99
  host: request.host || location.host,
100
100
  pathname: request.pathname || location.pathname,
101
101
  headers: request.headers || {},
102
102
  cookieMap: request.cookieMap || {},
103
- cookie: ((ref = request.headers) === null || ref === void 0 ? void 0 : ref.cookie) || document.cookie,
104
- userAgent: ((ref1 = request.headers) === null || ref1 === void 0 ? void 0 : ref1["user-agent"]) || navigator.userAgent,
103
+ cookie: ((_request_headers = request.headers) === null || _request_headers === void 0 ? void 0 : _request_headers.cookie) || document.cookie,
104
+ userAgent: ((_request_headers1 = request.headers) === null || _request_headers1 === void 0 ? void 0 : _request_headers1["user-agent"]) || navigator.userAgent,
105
105
  referer: request.referer || document.referrer,
106
106
  query: request.query || getQuery(),
107
107
  url: location.href
@@ -23,11 +23,11 @@ var cli_default = function() {
23
23
  },
24
24
  modifyEntryImports: function modifyEntryImports(param) {
25
25
  var entrypoint = param.entrypoint, imports = param.imports;
26
- var ref;
26
+ var _getEntryOptions;
27
27
  var entryName = entrypoint.entryName;
28
28
  var userConfig = api.useResolvedConfigContext();
29
29
  var packageName = api.useAppContext().packageName;
30
- var stateConfig = (ref = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || ref === void 0 ? void 0 : ref.state;
30
+ var stateConfig = (_getEntryOptions = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || _getEntryOptions === void 0 ? void 0 : _getEntryOptions.state;
31
31
  stateConfigMap.set(entryName, stateConfig);
32
32
  if (stateConfig) {
33
33
  imports.push({
@@ -127,7 +127,7 @@ var getStoreConfig = function(config) {
127
127
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
128
128
  try {
129
129
  for(var _iterator = Object.entries(config)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
130
- var _value = _slicedToArray(_step.value, 2), key = _value[0], value = _value[1];
130
+ var _step_value = _slicedToArray(_step.value, 2), key = _step_value[0], value = _step_value[1];
131
131
  if (!internalPlugins.includes(key)) {
132
132
  storeConfig[key] = value;
133
133
  }
@@ -172,8 +172,8 @@ var state = function(config) {
172
172
  init: function init(param, next) {
173
173
  var context = param.context;
174
174
  if (isBrowser()) {
175
- var ref, ref1;
176
- storeConfig.initialState = storeConfig.initialState || (window === null || window === void 0 ? void 0 : (ref = window._SSR_DATA) === null || ref === void 0 ? void 0 : (ref1 = ref.data) === null || ref1 === void 0 ? void 0 : ref1.storeState) || {};
175
+ var _window__SSR_DATA, _window__SSR_DATA_data;
176
+ storeConfig.initialState = storeConfig.initialState || (window === null || window === void 0 ? void 0 : (_window__SSR_DATA = window._SSR_DATA) === null || _window__SSR_DATA === void 0 ? void 0 : (_window__SSR_DATA_data = _window__SSR_DATA.data) === null || _window__SSR_DATA_data === void 0 ? void 0 : _window__SSR_DATA_data.storeState) || {};
177
177
  }
178
178
  context.store = createStore(storeConfig);
179
179
  return next({
@@ -1,5 +1,5 @@
1
1
  import React, { ReactNode } from 'react';
2
- type DocumentStructrueContextProps = {
2
+ type DocumentStructureContextProps = {
3
3
  hasSetHead?: boolean;
4
4
  hasSetScripts?: boolean;
5
5
  hasSetLinks?: boolean;
@@ -7,5 +7,5 @@ type DocumentStructrueContextProps = {
7
7
  hasSetRoot?: boolean;
8
8
  docChild?: ReactNode;
9
9
  };
10
- export declare const DocumentStructrueContext: React.Context<DocumentStructrueContextProps>;
10
+ export declare const DocumentStructureContext: React.Context<DocumentStructureContextProps>;
11
11
  export {};
@@ -1,6 +1,6 @@
1
1
  export * from './Html';
2
2
  export * from './DocumentContext';
3
- export * from './DocumentStructrueContext';
3
+ export * from './DocumentStructureContext';
4
4
  export * from './Head';
5
5
  export * from './Body';
6
6
  export * from './Root';
@@ -0,0 +1,2 @@
1
+ declare function installGlobals(): void;
2
+ export { installGlobals };
@@ -0,0 +1,2 @@
1
+ import { installGlobals } from '@remix-run/node';
2
+ export { installGlobals };
@@ -0,0 +1,2 @@
1
+ declare function installGlobals(): void;
2
+ export { installGlobals };
@@ -0,0 +1,13 @@
1
+ import { RuntimeContext } from '../core';
2
+ declare const prefetch: (App: React.ComponentType<any>, context: RuntimeContext) => Promise<{
3
+ initialData: Record<string, unknown> | undefined;
4
+ i18nData: any;
5
+ loadersData?: undefined;
6
+ storeState?: undefined;
7
+ } | {
8
+ loadersData: Record<string, import("../core/loader/loaderManager").LoaderResult>;
9
+ initialData: Record<string, unknown> | undefined;
10
+ i18nData: any;
11
+ storeState: any;
12
+ }>;
13
+ export default prefetch;
@@ -1,4 +1,6 @@
1
- import React from 'react';
2
- export declare const NoSSR: (props: React.PropsWithChildren<unknown>) => React.FunctionComponentElement<{
1
+ import React, { ReactElement } from 'react';
2
+ export declare const NoSSR: (props: React.PropsWithChildren<{
3
+ fallback?: ReactElement | string;
4
+ }>) => React.FunctionComponentElement<{
3
5
  children?: React.ReactNode;
4
6
  }>;
@@ -0,0 +1,6 @@
1
+ /// <reference types="node" />
2
+ import { ServerRenderOptions } from '../types';
3
+ export declare const render: ({
4
+ App,
5
+ context
6
+ }: ServerRenderOptions) => import("./renderToPipe").Pipe<import("stream").Writable>;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="react" />
3
3
  import { Writable } from 'stream';
4
- import { RenderToPipeableStreamOptions } from 'react-dom/server';
4
+ import type { RenderToPipeableStreamOptions } from 'react-dom/server';
5
5
  import { RuntimeContext } from '../types';
6
6
  export type Pipe<T extends Writable> = (output: T) => Promise<T | string>;
7
7
  declare function renderToPipe(rootElement: React.ReactElement, context: RuntimeContext, options?: RenderToPipeableStreamOptions): Pipe<Writable>;
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="react" />
3
+ import type { Writable } from 'stream';
4
+ import type { RenderToReadableStreamOptions } from 'react-dom/server';
5
+ import { RuntimeContext } from '../types';
6
+ export type Pipe<T extends Writable> = (output: T) => Promise<T | string>;
7
+ declare function renderToPipe(rootElement: React.ReactElement, context: RuntimeContext, options?: RenderToReadableStreamOptions): Pipe<Writable>;
8
+ export default renderToPipe;
@@ -0,0 +1,6 @@
1
+ import { ServerRenderOptions } from '../types';
2
+ export declare const render: ({
3
+ App,
4
+ context,
5
+ config
6
+ }: ServerRenderOptions) => Promise<string>;
@@ -0,0 +1 @@
1
+ export declare const time: () => () => number;
@@ -0,0 +1 @@
1
+ export declare const time: () => () => number;
@@ -1,3 +1,2 @@
1
- import { ChunkExtractor } from '@loadable/server';
2
- export declare function getLoadableScripts(extractor: ChunkExtractor): string;
3
- export declare const time: () => () => number;
1
+ import type { ChunkExtractor } from '@loadable/server';
2
+ export declare function getLoadableScripts(extractor: ChunkExtractor): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@modern-js/runtime",
3
- "description": "The meta-framework suite designed from scratch for frontend-focused modern web development.",
3
+ "description": "A Progressive React Framework for modern web development.",
4
4
  "homepage": "https://modernjs.dev",
5
5
  "bugs": "https://github.com/modern-js-dev/modern.js/issues",
6
6
  "repository": "modern-js-dev/modern.js",
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "2.3.1-alpha.0",
14
+ "version": "2.4.1-beta.0",
15
15
  "engines": {
16
16
  "node": ">=14.17.6"
17
17
  },
@@ -55,6 +55,7 @@
55
55
  "./ssr": {
56
56
  "jsnext:source": "./src/ssr/index.ts",
57
57
  "node": "./dist/js/treeshaking/ssr/index.node.js",
58
+ "worker": "./dist/js/treeshaking/ssr/index.node.js",
58
59
  "default": "./dist/js/treeshaking/ssr/index.js"
59
60
  },
60
61
  "./model": {
@@ -131,9 +132,6 @@
131
132
  "@modern-js-reduck/plugin-immutable": "^1.1.4",
132
133
  "@modern-js-reduck/react": "^1.1.4",
133
134
  "@modern-js-reduck/store": "^1.1.4",
134
- "@modern-js/plugin": "2.3.0",
135
- "@modern-js/types": "2.3.0",
136
- "@modern-js/utils": "2.3.0",
137
135
  "@remix-run/node": "^1.9.0",
138
136
  "@remix-run/router": "^1.2.0",
139
137
  "@types/loadable__component": "^5.13.4",
@@ -149,19 +147,17 @@
149
147
  "redux-logger": "^3.0.6",
150
148
  "serialize-javascript": "^6.0.0",
151
149
  "styled-components": "^5.3.1",
152
- "esbuild": "0.15.7"
150
+ "esbuild": "0.15.7",
151
+ "@modern-js/plugin": "2.4.0",
152
+ "@modern-js/types": "2.4.0",
153
+ "@modern-js/utils": "2.4.1-beta.0"
153
154
  },
154
155
  "peerDependencies": {
155
156
  "react": ">=17",
156
157
  "react-dom": ">=17"
157
158
  },
158
159
  "devDependencies": {
159
- "@modern-js/app-tools": "2.3.0",
160
- "@modern-js/core": "2.3.0",
161
- "@modern-js/server-core": "2.3.0",
162
160
  "@remix-run/web-fetch": "^4.1.3",
163
- "@scripts/build": "2.3.0",
164
- "@scripts/jest-config": "2.3.0",
165
161
  "@testing-library/react": "^13.4.0",
166
162
  "@testing-library/react-hooks": "^8.0.1",
167
163
  "@types/invariant": "^2.2.30",
@@ -174,7 +170,12 @@
174
170
  "react": "^18",
175
171
  "react-dom": "^18",
176
172
  "ts-jest": "^27.0.4",
177
- "typescript": "^4"
173
+ "typescript": "^4",
174
+ "@modern-js/app-tools": "3.0.0-beta.0",
175
+ "@modern-js/core": "2.4.1-beta.0",
176
+ "@modern-js/server-core": "2.4.1-beta.0",
177
+ "@scripts/jest-config": "2.4.0",
178
+ "@scripts/build": "2.4.0"
178
179
  },
179
180
  "sideEffects": false,
180
181
  "modernConfig": {},