@modern-js/runtime 2.4.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.
- package/CHANGELOG.md +17 -0
- package/dist/js/modern/core/compatible.js +1 -0
- package/dist/js/modern/router/runtime/fetch.js +5 -0
- package/dist/js/modern/router/runtime/fetch.node.js +4 -0
- package/dist/js/modern/router/runtime/fetch.worker.js +5 -0
- package/dist/js/modern/router/runtime/plugin.node.js +2 -2
- package/dist/js/modern/ssr/cli/index.js +2 -2
- package/dist/js/modern/ssr/prefetch.worker.js +66 -0
- package/dist/js/modern/ssr/react/nossr/index.js +6 -2
- package/dist/js/modern/ssr/serverRender/renderToStream/index.js +1 -1
- package/dist/js/modern/ssr/serverRender/renderToStream/index.worker.js +35 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.worker.js +110 -0
- package/dist/js/modern/ssr/serverRender/renderToString/entry.js +5 -4
- package/dist/js/modern/ssr/serverRender/renderToString/index.js +1 -1
- package/dist/js/modern/ssr/serverRender/renderToString/index.worker.js +49 -0
- package/dist/js/modern/ssr/serverRender/time.js +13 -0
- package/dist/js/modern/ssr/serverRender/time.worker.js +28 -0
- package/dist/js/modern/ssr/serverRender/utils.js +1 -12
- package/dist/js/node/core/compatible.js +1 -0
- package/dist/js/node/router/runtime/fetch.js +28 -0
- package/dist/js/node/router/runtime/fetch.node.js +27 -0
- package/dist/js/node/router/runtime/fetch.worker.js +28 -0
- package/dist/js/node/router/runtime/plugin.node.js +3 -3
- package/dist/js/node/ssr/cli/index.js +2 -2
- package/dist/js/node/ssr/prefetch.worker.js +87 -0
- package/dist/js/node/ssr/react/nossr/index.js +6 -2
- package/dist/js/node/ssr/serverRender/renderToStream/index.js +2 -2
- package/dist/js/node/ssr/serverRender/renderToStream/index.worker.js +64 -0
- package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.worker.js +129 -0
- package/dist/js/node/ssr/serverRender/renderToString/entry.js +7 -6
- package/dist/js/node/ssr/serverRender/renderToString/index.js +2 -2
- package/dist/js/node/ssr/serverRender/renderToString/index.worker.js +78 -0
- package/dist/js/node/ssr/serverRender/time.js +36 -0
- package/dist/js/node/ssr/serverRender/time.worker.js +51 -0
- package/dist/js/node/ssr/serverRender/utils.js +2 -14
- package/dist/js/treeshaking/core/compatible.js +8 -7
- package/dist/js/treeshaking/core/loader/loaderManager.js +3 -3
- package/dist/js/treeshaking/core/loader/useLoader.js +15 -15
- package/dist/js/treeshaking/document/Head.js +1 -1
- package/dist/js/treeshaking/document/Html.js +2 -2
- package/dist/js/treeshaking/document/Root.js +2 -2
- package/dist/js/treeshaking/document/cli/index.js +4 -4
- package/dist/js/treeshaking/router/cli/index.js +2 -2
- package/dist/js/treeshaking/router/runtime/fetch.js +2 -0
- package/dist/js/treeshaking/router/runtime/fetch.node.js +2 -0
- package/dist/js/treeshaking/router/runtime/fetch.worker.js +2 -0
- package/dist/js/treeshaking/router/runtime/plugin.js +3 -3
- package/dist/js/treeshaking/router/runtime/plugin.node.js +5 -5
- package/dist/js/treeshaking/router/runtime/utils.js +3 -3
- package/dist/js/treeshaking/ssr/cli/index.js +5 -5
- package/dist/js/treeshaking/ssr/index.js +6 -6
- package/dist/js/treeshaking/ssr/index.node.js +1 -1
- package/dist/js/treeshaking/ssr/prefetch.js +2 -2
- package/dist/js/treeshaking/ssr/prefetch.worker.js +191 -0
- package/dist/js/treeshaking/ssr/react/nossr/index.js +3 -3
- package/dist/js/treeshaking/ssr/react/prerender/index.js +2 -2
- package/dist/js/treeshaking/ssr/react/prerender/util.js +2 -2
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +2 -2
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +1 -1
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.worker.js +32 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +1 -1
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +8 -8
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.worker.js +280 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +1 -1
- package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +5 -5
- package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +1 -1
- package/dist/js/treeshaking/ssr/serverRender/renderToString/index.worker.js +167 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +1 -1
- package/dist/js/treeshaking/ssr/serverRender/time.js +57 -0
- package/dist/js/treeshaking/ssr/serverRender/time.worker.js +75 -0
- package/dist/js/treeshaking/ssr/serverRender/utils.js +1 -57
- package/dist/js/treeshaking/ssr/utils.js +5 -5
- package/dist/js/treeshaking/state/cli/index.js +2 -2
- package/dist/js/treeshaking/state/runtime/plugin.js +3 -3
- package/dist/types/router/runtime/fetch.d.ts +2 -0
- package/dist/types/router/runtime/fetch.node.d.ts +2 -0
- package/dist/types/router/runtime/fetch.worker.d.ts +2 -0
- package/dist/types/ssr/prefetch.worker.d.ts +13 -0
- package/dist/types/ssr/react/nossr/index.d.ts +4 -2
- package/dist/types/ssr/serverRender/renderToStream/index.worker.d.ts +6 -0
- package/dist/types/ssr/serverRender/renderToStream/renderToPipe.worker.d.ts +8 -0
- package/dist/types/ssr/serverRender/renderToString/index.worker.d.ts +6 -0
- package/dist/types/ssr/serverRender/time.d.ts +1 -0
- package/dist/types/ssr/serverRender/time.worker.d.ts +1 -0
- package/dist/types/ssr/serverRender/utils.d.ts +2 -3
- package/package.json +6 -5
|
@@ -0,0 +1,75 @@
|
|
|
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
|
+
function processHrtime(previousTimestamp) {
|
|
48
|
+
var now = new Date().getTime();
|
|
49
|
+
var clocktime = now * 1e-3;
|
|
50
|
+
var seconds = Math.floor(clocktime);
|
|
51
|
+
var nanoseconds = Math.floor(clocktime % 1 * 1e9);
|
|
52
|
+
if (previousTimestamp) {
|
|
53
|
+
seconds -= previousTimestamp[0];
|
|
54
|
+
nanoseconds -= previousTimestamp[1];
|
|
55
|
+
if (nanoseconds < 0) {
|
|
56
|
+
seconds--;
|
|
57
|
+
nanoseconds += 1e9;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return [
|
|
61
|
+
seconds,
|
|
62
|
+
nanoseconds
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
var getLatency = function(hrtime) {
|
|
66
|
+
var _processHrtime = _slicedToArray(processHrtime(hrtime), 2), s = _processHrtime[0], ns = _processHrtime[1];
|
|
67
|
+
return s * 1e3 + ns / 1e6;
|
|
68
|
+
};
|
|
69
|
+
var time = function() {
|
|
70
|
+
var hrtime = processHrtime();
|
|
71
|
+
return function() {
|
|
72
|
+
return getLatency(hrtime);
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
export { time };
|
|
@@ -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
|
-
|
|
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
|
|
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
|
|
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
|
|
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: ((
|
|
104
|
-
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
|
|
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 = (
|
|
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
|
|
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
|
|
176
|
-
storeConfig.initialState = storeConfig.initialState || (window === null || window === void 0 ? void 0 : (
|
|
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({
|
|
@@ -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<
|
|
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,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 @@
|
|
|
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
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "2.4.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": {
|
|
@@ -149,7 +150,7 @@
|
|
|
149
150
|
"esbuild": "0.15.7",
|
|
150
151
|
"@modern-js/plugin": "2.4.0",
|
|
151
152
|
"@modern-js/types": "2.4.0",
|
|
152
|
-
"@modern-js/utils": "2.4.0"
|
|
153
|
+
"@modern-js/utils": "2.4.1-beta.0"
|
|
153
154
|
},
|
|
154
155
|
"peerDependencies": {
|
|
155
156
|
"react": ">=17",
|
|
@@ -170,9 +171,9 @@
|
|
|
170
171
|
"react-dom": "^18",
|
|
171
172
|
"ts-jest": "^27.0.4",
|
|
172
173
|
"typescript": "^4",
|
|
173
|
-
"@modern-js/app-tools": "
|
|
174
|
-
"@modern-js/core": "2.4.0",
|
|
175
|
-
"@modern-js/server-core": "2.4.0",
|
|
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",
|
|
176
177
|
"@scripts/jest-config": "2.4.0",
|
|
177
178
|
"@scripts/build": "2.4.0"
|
|
178
179
|
},
|