@modern-js/runtime 2.63.0 → 2.63.2
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/dist/cjs/cli/template.js +1 -1
- package/dist/cjs/core/server/requestHandler.js +2 -3
- package/dist/cjs/core/server/stream/afterTemplate.js +3 -6
- package/dist/cjs/core/server/string/index.js +2 -1
- package/dist/cjs/core/server/string/ssrData.js +5 -7
- package/dist/cjs/core/server/utils.js +0 -8
- package/dist/cjs/router/runtime/DeferredDataScripts.node.js +4 -4
- package/dist/cjs/router/runtime/plugin.node.js +6 -4
- package/dist/esm/cli/template.js +1 -1
- package/dist/esm/core/server/requestHandler.js +3 -4
- package/dist/esm/core/server/stream/afterTemplate.js +4 -5
- package/dist/esm/core/server/string/index.js +2 -1
- package/dist/esm/core/server/string/ssrData.js +4 -6
- package/dist/esm/core/server/utils.js +0 -8
- package/dist/esm/router/runtime/DeferredDataScripts.node.js +4 -4
- package/dist/esm/router/runtime/plugin.node.js +7 -5
- package/dist/esm-node/cli/template.js +1 -1
- package/dist/esm-node/core/server/requestHandler.js +3 -4
- package/dist/esm-node/core/server/stream/afterTemplate.js +4 -7
- package/dist/esm-node/core/server/string/index.js +2 -1
- package/dist/esm-node/core/server/string/ssrData.js +6 -8
- package/dist/esm-node/core/server/utils.js +0 -7
- package/dist/esm-node/router/runtime/DeferredDataScripts.node.js +4 -4
- package/dist/esm-node/router/runtime/plugin.node.js +6 -4
- package/dist/types/core/server/string/ssrData.d.ts +1 -0
- package/dist/types/core/server/utils.d.ts +0 -1
- package/dist/types/core/types.d.ts +1 -1
- package/dist/types/router/runtime/DeferredDataScripts.node.d.ts +1 -1
- package/package.json +12 -12
package/dist/cjs/cli/template.js
CHANGED
|
@@ -89,7 +89,7 @@ const runtimeGlobalContext = ({ srcDirectory, internalSrcAlias, metaName, entry,
|
|
|
89
89
|
return `import { setGlobalContext } from '@${metaName}/runtime/context'
|
|
90
90
|
|
|
91
91
|
import App from '${// We need to get the path of App.tsx here, but the entry is `src/entry.tsx`
|
|
92
|
-
(0, import_utils.formatImportPath)(customEntry ? entry.replace(
|
|
92
|
+
(0, import_utils.formatImportPath)(customEntry ? entry.replace(/entry\.[tj]sx/, "App").replace(srcDirectory, internalSrcAlias) : entry.replace(srcDirectory, internalSrcAlias).replace(/\.[tj]sx/, ""))}';
|
|
93
93
|
|
|
94
94
|
setGlobalContext({
|
|
95
95
|
App,
|
|
@@ -31,7 +31,7 @@ var import_constants = require("./constants");
|
|
|
31
31
|
var import_utils = require("./utils");
|
|
32
32
|
function createSSRContext(request, options) {
|
|
33
33
|
const { config, loaderContext, onError, onTiming, locals, resource, params, responseProxy, logger, metrics, reporter } = options;
|
|
34
|
-
const { nonce } = config;
|
|
34
|
+
const { nonce, useJsonScript } = config;
|
|
35
35
|
const { entryName, route } = resource;
|
|
36
36
|
const { headers } = request;
|
|
37
37
|
const cookie = headers.get("cookie") || "";
|
|
@@ -47,10 +47,10 @@ function createSSRContext(request, options) {
|
|
|
47
47
|
}
|
|
48
48
|
const ssrConfig = (0, import_utils.getSSRConfigByEntry)(entryName, config.ssr, config.ssrByEntries);
|
|
49
49
|
const ssrMode = (0, import_utils.getSSRMode)(ssrConfig);
|
|
50
|
-
const inlineScript = (0, import_utils.getSSRInlineScript)(ssrConfig);
|
|
51
50
|
const loaderFailureMode = typeof ssrConfig === "object" ? ssrConfig.loaderFailureMode : void 0;
|
|
52
51
|
return {
|
|
53
52
|
nonce,
|
|
53
|
+
useJsonScript,
|
|
54
54
|
loaderContext,
|
|
55
55
|
redirection: {},
|
|
56
56
|
htmlModifiers: [],
|
|
@@ -80,7 +80,6 @@ function createSSRContext(request, options) {
|
|
|
80
80
|
},
|
|
81
81
|
reporter,
|
|
82
82
|
mode: ssrMode,
|
|
83
|
-
inlineScript,
|
|
84
83
|
onError,
|
|
85
84
|
onTiming,
|
|
86
85
|
loaderFailureMode
|
|
@@ -33,6 +33,7 @@ function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
|
33
33
|
request,
|
|
34
34
|
ssrConfig,
|
|
35
35
|
nonce: config.nonce,
|
|
36
|
+
useJsonScript: config.useJsonScript,
|
|
36
37
|
runtimeContext,
|
|
37
38
|
renderLevel
|
|
38
39
|
}),
|
|
@@ -57,7 +58,7 @@ function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
|
57
58
|
return (0, import_shared.buildHtml)(afterAppTemplate, callbacks);
|
|
58
59
|
}
|
|
59
60
|
function createReplaceSSRData(options) {
|
|
60
|
-
const { runtimeContext, nonce, renderLevel, ssrConfig } = options;
|
|
61
|
+
const { runtimeContext, nonce, renderLevel, useJsonScript, ssrConfig } = options;
|
|
61
62
|
const { request, reporter } = runtimeContext.ssrContext;
|
|
62
63
|
const headers = typeof ssrConfig === "object" && ssrConfig.unsafeHeaders ? Object.fromEntries(Object.entries(request.headers).filter(([key, _]) => {
|
|
63
64
|
var _ssrConfig_unsafeHeaders_map, _ssrConfig_unsafeHeaders;
|
|
@@ -87,12 +88,8 @@ function createReplaceSSRData(options) {
|
|
|
87
88
|
const attrsStr = (0, import_utils.attributesToString)({
|
|
88
89
|
nonce
|
|
89
90
|
});
|
|
90
|
-
const inlineScript = (0, import_utils.getSSRInlineScript)(ssrConfig);
|
|
91
|
-
const useInlineScript = inlineScript !== false;
|
|
92
91
|
const serializeSSRData = (0, import_node.serializeJson)(ssrData);
|
|
93
|
-
const ssrDataScript =
|
|
94
|
-
<script${attrsStr}>window._SSR_DATA = ${serializeSSRData}</script>
|
|
95
|
-
` : `<script type="application/json" id="${import_constants.SSR_DATA_JSON_ID}">${serializeSSRData}</script>`;
|
|
92
|
+
const ssrDataScript = useJsonScript ? `<script type="application/json" id="${import_constants.SSR_DATA_JSON_ID}">${serializeSSRData}</script>` : `<script${attrsStr}>window._SSR_DATA = ${serializeSSRData}</script>`;
|
|
96
93
|
return (template) => (0, import_utils.safeReplace)(template, import_constants2.SSR_DATA_PLACEHOLDER, ssrDataScript);
|
|
97
94
|
}
|
|
98
95
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -91,7 +91,8 @@ const renderString = async (request, serverRoot, options) => {
|
|
|
91
91
|
ssrContext: runtimeContext.ssrContext,
|
|
92
92
|
chunkSet,
|
|
93
93
|
routerContext,
|
|
94
|
-
nonce: config.nonce
|
|
94
|
+
nonce: config.nonce,
|
|
95
|
+
useJsonScript: config.useJsonScript
|
|
95
96
|
})
|
|
96
97
|
];
|
|
97
98
|
const rootElement = (0, import_wrapper.wrapRuntimeContextProvider)(serverRoot, Object.assign(runtimeContext, {
|
|
@@ -78,19 +78,17 @@ function getSSRData() {
|
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
80
|
function getSSRDataScripts(ssrData, routerData) {
|
|
81
|
-
const { nonce,
|
|
82
|
-
const inlineScript = (0, import_utils.getSSRInlineScript)(ssrConfig);
|
|
83
|
-
const useInlineScript = inlineScript !== false;
|
|
81
|
+
const { nonce, useJsonScript = false } = (0, import_class_private_field_get._)(this, _options);
|
|
84
82
|
const serializeSSRData = (0, import_node.serializeJson)(ssrData);
|
|
85
83
|
const attrsStr = (0, import_utils.attributesToString)({
|
|
86
84
|
nonce
|
|
87
85
|
});
|
|
88
|
-
let ssrDataScripts =
|
|
86
|
+
let ssrDataScripts = useJsonScript ? `<script type="application/json" id="${import_constants.SSR_DATA_JSON_ID}">${serializeSSRData}</script>` : `<script${attrsStr}>window._SSR_DATA = ${serializeSSRData}</script>`;
|
|
89
87
|
if (routerData) {
|
|
90
88
|
const serializedRouterData = (0, import_node.serializeJson)(routerData);
|
|
91
|
-
ssrDataScripts +=
|
|
92
|
-
<script
|
|
93
|
-
<script
|
|
89
|
+
ssrDataScripts += useJsonScript ? `
|
|
90
|
+
<script type="application/json" id="${import_constants.ROUTER_DATA_JSON_ID}">${serializedRouterData}</script>` : `
|
|
91
|
+
<script${attrsStr}>window._ROUTER_DATA = ${serializedRouterData}</script>`;
|
|
94
92
|
}
|
|
95
93
|
return ssrDataScripts;
|
|
96
94
|
}
|
|
@@ -21,7 +21,6 @@ __export(utils_exports, {
|
|
|
21
21
|
attributesToString: () => attributesToString,
|
|
22
22
|
checkIsNode: () => checkIsNode,
|
|
23
23
|
getSSRConfigByEntry: () => getSSRConfigByEntry,
|
|
24
|
-
getSSRInlineScript: () => getSSRInlineScript,
|
|
25
24
|
getSSRMode: () => getSSRMode,
|
|
26
25
|
safeReplace: () => safeReplace,
|
|
27
26
|
serializeErrors: () => serializeErrors
|
|
@@ -76,18 +75,11 @@ function getSSRMode(ssrConfig) {
|
|
|
76
75
|
}
|
|
77
76
|
return (ssrConfig === null || ssrConfig === void 0 ? void 0 : ssrConfig.mode) === "stream" ? "stream" : "string";
|
|
78
77
|
}
|
|
79
|
-
function getSSRInlineScript(ssrConfig) {
|
|
80
|
-
if (typeof ssrConfig === "object") {
|
|
81
|
-
return ssrConfig.inlineScript === void 0 ? true : ssrConfig.inlineScript;
|
|
82
|
-
}
|
|
83
|
-
return true;
|
|
84
|
-
}
|
|
85
78
|
// Annotate the CommonJS export names for ESM import in node:
|
|
86
79
|
0 && (module.exports = {
|
|
87
80
|
attributesToString,
|
|
88
81
|
checkIsNode,
|
|
89
82
|
getSSRConfigByEntry,
|
|
90
|
-
getSSRInlineScript,
|
|
91
83
|
getSSRMode,
|
|
92
84
|
safeReplace,
|
|
93
85
|
serializeErrors
|
|
@@ -30,7 +30,7 @@ var import_constants2 = require("./constants");
|
|
|
30
30
|
var import_utils = require("./utils");
|
|
31
31
|
const DeferredDataScripts = (props) => {
|
|
32
32
|
const staticContext = props === null || props === void 0 ? void 0 : props.context;
|
|
33
|
-
const
|
|
33
|
+
const useJsonScript = props === null || props === void 0 ? void 0 : props.useJsonScript;
|
|
34
34
|
const hydratedRef = (0, import_react.useRef)(false);
|
|
35
35
|
(0, import_react.useEffect)(() => {
|
|
36
36
|
hydratedRef.current = true;
|
|
@@ -44,11 +44,11 @@ const DeferredDataScripts = (props) => {
|
|
|
44
44
|
loaderData: staticContext.loaderData,
|
|
45
45
|
errors: (0, import_utils.serializeErrors)(staticContext.errors)
|
|
46
46
|
};
|
|
47
|
-
const initialScript0 =
|
|
48
|
-
const initialScript1 =
|
|
47
|
+
const initialScript0 = useJsonScript ? `${(0, import_node.serializeJson)(_ROUTER_DATA)}` : "";
|
|
48
|
+
const initialScript1 = useJsonScript ? import_constants2.modernInline : [
|
|
49
49
|
`_ROUTER_DATA = ${(0, import_node.serializeJson)(_ROUTER_DATA)};`,
|
|
50
50
|
import_constants2.modernInline
|
|
51
|
-
].join("\n")
|
|
51
|
+
].join("\n");
|
|
52
52
|
const deferredDataScripts = [];
|
|
53
53
|
const initialScripts = Object.entries(activeDeferreds).map(([routeId, deferredData]) => {
|
|
54
54
|
const pendingKeys = new Set(deferredData.pendingKeys);
|
|
@@ -109,9 +109,11 @@ const routerPlugin = (userConfig = {}) => {
|
|
|
109
109
|
if (routerContext instanceof Response) {
|
|
110
110
|
return interrupt(routerContext);
|
|
111
111
|
}
|
|
112
|
-
if (routerContext.statusCode >= 500 && routerContext.statusCode < 600 && loaderFailureMode
|
|
112
|
+
if (routerContext.statusCode >= 500 && routerContext.statusCode < 600 && // TODO: if loaderFailureMode is not 'errroBoundary', error log will not be printed.
|
|
113
|
+
loaderFailureMode === "clientRender") {
|
|
113
114
|
routerContext.statusCode = 200;
|
|
114
|
-
|
|
115
|
+
const errors = Object.values(routerContext.errors);
|
|
116
|
+
throw errors[0];
|
|
115
117
|
}
|
|
116
118
|
const router = (0, import_router.createStaticRouter)(routes, routerContext);
|
|
117
119
|
context.routerContext = routerContext;
|
|
@@ -126,7 +128,7 @@ const routerPlugin = (userConfig = {}) => {
|
|
|
126
128
|
return () => {
|
|
127
129
|
const context = (0, import_react.useContext)(import_core.RuntimeReactContext);
|
|
128
130
|
const { remixRouter, routerContext, ssrContext } = context;
|
|
129
|
-
const { nonce, mode,
|
|
131
|
+
const { nonce, mode, useJsonScript } = ssrContext;
|
|
130
132
|
const routerWrapper = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
|
|
131
133
|
children: [
|
|
132
134
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_router.StaticRouterProvider, {
|
|
@@ -139,7 +141,7 @@ const routerPlugin = (userConfig = {}) => {
|
|
|
139
141
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DeferredDataScripts.default, {
|
|
140
142
|
nonce,
|
|
141
143
|
context: routerContext,
|
|
142
|
-
|
|
144
|
+
useJsonScript
|
|
143
145
|
}),
|
|
144
146
|
mode === "stream" && import_common.JSX_SHELL_STREAM_END_MARK
|
|
145
147
|
]
|
package/dist/esm/cli/template.js
CHANGED
|
@@ -44,7 +44,7 @@ var runtimeRegister = function(param) {
|
|
|
44
44
|
};
|
|
45
45
|
var runtimeGlobalContext = function(param) {
|
|
46
46
|
var srcDirectory = param.srcDirectory, internalSrcAlias = param.internalSrcAlias, metaName = param.metaName, entry = param.entry, customEntry = param.customEntry;
|
|
47
|
-
return "import { setGlobalContext } from '@".concat(metaName, "/runtime/context'\n\nimport App from '").concat(formatImportPath(customEntry ? entry.replace(
|
|
47
|
+
return "import { setGlobalContext } from '@".concat(metaName, "/runtime/context'\n\nimport App from '").concat(formatImportPath(customEntry ? entry.replace(/entry\.[tj]sx/, "App").replace(srcDirectory, internalSrcAlias) : entry.replace(srcDirectory, internalSrcAlias).replace(/\.[tj]sx/, "")), "';\n\nsetGlobalContext({\n App,\n});");
|
|
48
48
|
};
|
|
49
49
|
export {
|
|
50
50
|
index,
|
|
@@ -12,10 +12,10 @@ import { createLoaderManager } from "../loader/loaderManager";
|
|
|
12
12
|
import { getGlobalRunner } from "../plugin/runner";
|
|
13
13
|
import { createRoot } from "../react";
|
|
14
14
|
import { CHUNK_CSS_PLACEHOLDER } from "./constants";
|
|
15
|
-
import { getSSRConfigByEntry,
|
|
15
|
+
import { getSSRConfigByEntry, getSSRMode } from "./utils";
|
|
16
16
|
function createSSRContext(request, options) {
|
|
17
17
|
var config = options.config, loaderContext = options.loaderContext, onError = options.onError, onTiming = options.onTiming, locals = options.locals, resource = options.resource, params = options.params, responseProxy = options.responseProxy, logger = options.logger, metrics = options.metrics, reporter = options.reporter;
|
|
18
|
-
var nonce = config.nonce;
|
|
18
|
+
var nonce = config.nonce, useJsonScript = config.useJsonScript;
|
|
19
19
|
var entryName = resource.entryName, route = resource.route;
|
|
20
20
|
var headers = request.headers;
|
|
21
21
|
var cookie = headers.get("cookie") || "";
|
|
@@ -31,10 +31,10 @@ function createSSRContext(request, options) {
|
|
|
31
31
|
}
|
|
32
32
|
var ssrConfig = getSSRConfigByEntry(entryName, config.ssr, config.ssrByEntries);
|
|
33
33
|
var ssrMode = getSSRMode(ssrConfig);
|
|
34
|
-
var inlineScript = getSSRInlineScript(ssrConfig);
|
|
35
34
|
var loaderFailureMode = (typeof ssrConfig === "undefined" ? "undefined" : _type_of(ssrConfig)) === "object" ? ssrConfig.loaderFailureMode : void 0;
|
|
36
35
|
return {
|
|
37
36
|
nonce,
|
|
37
|
+
useJsonScript,
|
|
38
38
|
loaderContext,
|
|
39
39
|
redirection: {},
|
|
40
40
|
htmlModifiers: [],
|
|
@@ -64,7 +64,6 @@ function createSSRContext(request, options) {
|
|
|
64
64
|
},
|
|
65
65
|
reporter,
|
|
66
66
|
mode: ssrMode,
|
|
67
|
-
inlineScript,
|
|
68
67
|
onError,
|
|
69
68
|
onTiming,
|
|
70
69
|
loaderFailureMode
|
|
@@ -6,7 +6,7 @@ import { serializeJson } from "@modern-js/runtime-utils/node";
|
|
|
6
6
|
import { SSR_DATA_JSON_ID } from "../../constants";
|
|
7
7
|
import { SSR_DATA_PLACEHOLDER } from "../constants";
|
|
8
8
|
import { buildHtml } from "../shared";
|
|
9
|
-
import { attributesToString,
|
|
9
|
+
import { attributesToString, safeReplace } from "../utils";
|
|
10
10
|
function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
11
11
|
var request = options.request, config = options.config, ssrConfig = options.ssrConfig, runtimeContext = options.runtimeContext, renderLevel = options.renderLevel, entryName = options.entryName;
|
|
12
12
|
var callbacks = [
|
|
@@ -14,6 +14,7 @@ function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
|
14
14
|
request,
|
|
15
15
|
ssrConfig,
|
|
16
16
|
nonce: config.nonce,
|
|
17
|
+
useJsonScript: config.useJsonScript,
|
|
17
18
|
runtimeContext,
|
|
18
19
|
renderLevel
|
|
19
20
|
}),
|
|
@@ -57,7 +58,7 @@ function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
|
57
58
|
return buildHtml(afterAppTemplate, callbacks);
|
|
58
59
|
}
|
|
59
60
|
function createReplaceSSRData(options) {
|
|
60
|
-
var runtimeContext = options.runtimeContext, nonce = options.nonce, renderLevel = options.renderLevel, ssrConfig = options.ssrConfig;
|
|
61
|
+
var runtimeContext = options.runtimeContext, nonce = options.nonce, renderLevel = options.renderLevel, useJsonScript = options.useJsonScript, ssrConfig = options.ssrConfig;
|
|
61
62
|
var _runtimeContext_ssrContext = runtimeContext.ssrContext, request = _runtimeContext_ssrContext.request, reporter = _runtimeContext_ssrContext.reporter;
|
|
62
63
|
var headers = (typeof ssrConfig === "undefined" ? "undefined" : _type_of(ssrConfig)) === "object" && ssrConfig.unsafeHeaders ? Object.fromEntries(Object.entries(request.headers).filter(function(param) {
|
|
63
64
|
var _param = _sliced_to_array(param, 2), key = _param[0], _ = _param[1];
|
|
@@ -90,10 +91,8 @@ function createReplaceSSRData(options) {
|
|
|
90
91
|
var attrsStr = attributesToString({
|
|
91
92
|
nonce
|
|
92
93
|
});
|
|
93
|
-
var inlineScript = getSSRInlineScript(ssrConfig);
|
|
94
|
-
var useInlineScript = inlineScript !== false;
|
|
95
94
|
var serializeSSRData = serializeJson(ssrData);
|
|
96
|
-
var ssrDataScript =
|
|
95
|
+
var ssrDataScript = useJsonScript ? '<script type="application/json" id="'.concat(SSR_DATA_JSON_ID, '">').concat(serializeSSRData, "</script>") : "<script".concat(attrsStr, ">window._SSR_DATA = ").concat(serializeSSRData, "</script>");
|
|
97
96
|
return function(template) {
|
|
98
97
|
return safeReplace(template, SSR_DATA_PLACEHOLDER, ssrDataScript);
|
|
99
98
|
};
|
|
@@ -90,7 +90,8 @@ var renderString = function() {
|
|
|
90
90
|
ssrContext: runtimeContext.ssrContext,
|
|
91
91
|
chunkSet,
|
|
92
92
|
routerContext,
|
|
93
|
-
nonce: config.nonce
|
|
93
|
+
nonce: config.nonce,
|
|
94
|
+
useJsonScript: config.useJsonScript
|
|
94
95
|
})
|
|
95
96
|
];
|
|
96
97
|
rootElement = wrapRuntimeContextProvider(serverRoot, Object.assign(runtimeContext, {
|
|
@@ -8,7 +8,7 @@ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
|
8
8
|
import { _ as _type_of } from "@swc/helpers/_/_type_of";
|
|
9
9
|
import { serializeJson } from "@modern-js/runtime-utils/node";
|
|
10
10
|
import { ROUTER_DATA_JSON_ID, SSR_DATA_JSON_ID } from "../../constants";
|
|
11
|
-
import { attributesToString,
|
|
11
|
+
import { attributesToString, serializeErrors } from "../utils";
|
|
12
12
|
var _options = /* @__PURE__ */ new WeakMap(), _getSSRData = /* @__PURE__ */ new WeakSet(), _getSSRDataScripts = /* @__PURE__ */ new WeakSet();
|
|
13
13
|
var SSRDataCollector = /* @__PURE__ */ function() {
|
|
14
14
|
"use strict";
|
|
@@ -65,17 +65,15 @@ function getSSRData() {
|
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
67
|
function getSSRDataScripts(ssrData, routerData) {
|
|
68
|
-
var _$_class_private_field_get = _class_private_field_get(this, _options), nonce = _$_class_private_field_get.nonce,
|
|
69
|
-
var inlineScript = getSSRInlineScript(ssrConfig);
|
|
70
|
-
var useInlineScript = inlineScript !== false;
|
|
68
|
+
var _$_class_private_field_get = _class_private_field_get(this, _options), nonce = _$_class_private_field_get.nonce, _class_private_field_get_useJsonScript = _$_class_private_field_get.useJsonScript, useJsonScript = _class_private_field_get_useJsonScript === void 0 ? false : _class_private_field_get_useJsonScript;
|
|
71
69
|
var serializeSSRData = serializeJson(ssrData);
|
|
72
70
|
var attrsStr = attributesToString({
|
|
73
71
|
nonce
|
|
74
72
|
});
|
|
75
|
-
var ssrDataScripts =
|
|
73
|
+
var ssrDataScripts = useJsonScript ? '<script type="application/json" id="'.concat(SSR_DATA_JSON_ID, '">').concat(serializeSSRData, "</script>") : "<script".concat(attrsStr, ">window._SSR_DATA = ").concat(serializeSSRData, "</script>");
|
|
76
74
|
if (routerData) {
|
|
77
75
|
var serializedRouterData = serializeJson(routerData);
|
|
78
|
-
ssrDataScripts +=
|
|
76
|
+
ssrDataScripts += useJsonScript ? '\n<script type="application/json" id="'.concat(ROUTER_DATA_JSON_ID, '">').concat(serializedRouterData, "</script>") : "\n<script".concat(attrsStr, ">window._ROUTER_DATA = ").concat(serializedRouterData, "</script>");
|
|
79
77
|
}
|
|
80
78
|
return ssrDataScripts;
|
|
81
79
|
}
|
|
@@ -2,7 +2,6 @@ import { _ as _instanceof } from "@swc/helpers/_/_instanceof";
|
|
|
2
2
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
3
3
|
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
4
4
|
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
|
|
5
|
-
import { _ as _type_of } from "@swc/helpers/_/_type_of";
|
|
6
5
|
import { isRouteErrorResponse } from "@modern-js/runtime-utils/remix-router";
|
|
7
6
|
function attributesToString(attributes) {
|
|
8
7
|
return Object.entries(attributes).reduce(function(str, param) {
|
|
@@ -71,17 +70,10 @@ function getSSRMode(ssrConfig) {
|
|
|
71
70
|
}
|
|
72
71
|
return (ssrConfig === null || ssrConfig === void 0 ? void 0 : ssrConfig.mode) === "stream" ? "stream" : "string";
|
|
73
72
|
}
|
|
74
|
-
function getSSRInlineScript(ssrConfig) {
|
|
75
|
-
if ((typeof ssrConfig === "undefined" ? "undefined" : _type_of(ssrConfig)) === "object") {
|
|
76
|
-
return ssrConfig.inlineScript === void 0 ? true : ssrConfig.inlineScript;
|
|
77
|
-
}
|
|
78
|
-
return true;
|
|
79
|
-
}
|
|
80
73
|
export {
|
|
81
74
|
attributesToString,
|
|
82
75
|
checkIsNode,
|
|
83
76
|
getSSRConfigByEntry,
|
|
84
|
-
getSSRInlineScript,
|
|
85
77
|
getSSRMode,
|
|
86
78
|
safeReplace,
|
|
87
79
|
serializeErrors
|
|
@@ -8,7 +8,7 @@ import { modernInline, runRouterDataFnStr, runWindowFnStr } from "./constants";
|
|
|
8
8
|
import { serializeErrors } from "./utils";
|
|
9
9
|
var DeferredDataScripts = function(props) {
|
|
10
10
|
var staticContext = props === null || props === void 0 ? void 0 : props.context;
|
|
11
|
-
var
|
|
11
|
+
var useJsonScript = props === null || props === void 0 ? void 0 : props.useJsonScript;
|
|
12
12
|
var hydratedRef = useRef(false);
|
|
13
13
|
useEffect(function() {
|
|
14
14
|
hydratedRef.current = true;
|
|
@@ -22,11 +22,11 @@ var DeferredDataScripts = function(props) {
|
|
|
22
22
|
loaderData: staticContext.loaderData,
|
|
23
23
|
errors: serializeErrors(staticContext.errors)
|
|
24
24
|
};
|
|
25
|
-
var initialScript0 =
|
|
26
|
-
var initialScript1 =
|
|
25
|
+
var initialScript0 = useJsonScript ? "".concat(serializeJson(_ROUTER_DATA)) : "";
|
|
26
|
+
var initialScript1 = useJsonScript ? modernInline : [
|
|
27
27
|
"_ROUTER_DATA = ".concat(serializeJson(_ROUTER_DATA), ";"),
|
|
28
28
|
modernInline
|
|
29
|
-
].join("\n")
|
|
29
|
+
].join("\n");
|
|
30
30
|
var deferredDataScripts = [];
|
|
31
31
|
var initialScripts = Object.entries(activeDeferreds).map(function(param) {
|
|
32
32
|
var _param = _sliced_to_array(param, 2), routeId = _param[0], deferredData = _param[1];
|
|
@@ -40,7 +40,7 @@ var routerPlugin = function() {
|
|
|
40
40
|
return {
|
|
41
41
|
beforeRender: function beforeRender(context, interrupt) {
|
|
42
42
|
return _async_to_generator(function() {
|
|
43
|
-
var _context_ssrContext, _context_ssrContext_onTiming, _context_ssrContext1, pluginConfig, _merge, _merge_basename, basename, routesConfig, createRoutes, _context_ssrContext2, request, ssrMode, nonce, _context_ssrContext_loaderFailureMode, loaderFailureMode, baseUrl, _basename, reporter, requestContext, runner, routes, query, remixRequest, end, routerContext, cost, router;
|
|
43
|
+
var _context_ssrContext, _context_ssrContext_onTiming, _context_ssrContext1, pluginConfig, _merge, _merge_basename, basename, routesConfig, createRoutes, _context_ssrContext2, request, ssrMode, nonce, _context_ssrContext_loaderFailureMode, loaderFailureMode, baseUrl, _basename, reporter, requestContext, runner, routes, query, remixRequest, end, routerContext, cost, errors, router;
|
|
44
44
|
return _ts_generator(this, function(_state) {
|
|
45
45
|
switch (_state.label) {
|
|
46
46
|
case 0:
|
|
@@ -98,9 +98,11 @@ var routerPlugin = function() {
|
|
|
98
98
|
interrupt(routerContext)
|
|
99
99
|
];
|
|
100
100
|
}
|
|
101
|
-
if (routerContext.statusCode >= 500 && routerContext.statusCode < 600 && loaderFailureMode
|
|
101
|
+
if (routerContext.statusCode >= 500 && routerContext.statusCode < 600 && // TODO: if loaderFailureMode is not 'errroBoundary', error log will not be printed.
|
|
102
|
+
loaderFailureMode === "clientRender") {
|
|
102
103
|
routerContext.statusCode = 200;
|
|
103
|
-
|
|
104
|
+
errors = Object.values(routerContext.errors);
|
|
105
|
+
throw errors[0];
|
|
104
106
|
}
|
|
105
107
|
router = createStaticRouter(routes, routerContext);
|
|
106
108
|
context.routerContext = routerContext;
|
|
@@ -121,7 +123,7 @@ var routerPlugin = function() {
|
|
|
121
123
|
return function() {
|
|
122
124
|
var context = useContext(RuntimeReactContext);
|
|
123
125
|
var remixRouter = context.remixRouter, routerContext = context.routerContext, ssrContext = context.ssrContext;
|
|
124
|
-
var nonce = ssrContext.nonce, mode = ssrContext.mode,
|
|
126
|
+
var nonce = ssrContext.nonce, mode = ssrContext.mode, useJsonScript = ssrContext.useJsonScript;
|
|
125
127
|
var routerWrapper = /* @__PURE__ */ _jsxs(_Fragment, {
|
|
126
128
|
children: [
|
|
127
129
|
/* @__PURE__ */ _jsx(StaticRouterProvider, {
|
|
@@ -134,7 +136,7 @@ var routerPlugin = function() {
|
|
|
134
136
|
/* @__PURE__ */ _jsx(DeferredDataScripts, {
|
|
135
137
|
nonce,
|
|
136
138
|
context: routerContext,
|
|
137
|
-
|
|
139
|
+
useJsonScript
|
|
138
140
|
}),
|
|
139
141
|
mode === "stream" && JSX_SHELL_STREAM_END_MARK
|
|
140
142
|
]
|
|
@@ -53,7 +53,7 @@ const runtimeGlobalContext = ({ srcDirectory, internalSrcAlias, metaName, entry,
|
|
|
53
53
|
return `import { setGlobalContext } from '@${metaName}/runtime/context'
|
|
54
54
|
|
|
55
55
|
import App from '${// We need to get the path of App.tsx here, but the entry is `src/entry.tsx`
|
|
56
|
-
formatImportPath(customEntry ? entry.replace(
|
|
56
|
+
formatImportPath(customEntry ? entry.replace(/entry\.[tj]sx/, "App").replace(srcDirectory, internalSrcAlias) : entry.replace(srcDirectory, internalSrcAlias).replace(/\.[tj]sx/, ""))}';
|
|
57
57
|
|
|
58
58
|
setGlobalContext({
|
|
59
59
|
App,
|
|
@@ -5,10 +5,10 @@ import { createLoaderManager } from "../loader/loaderManager";
|
|
|
5
5
|
import { getGlobalRunner } from "../plugin/runner";
|
|
6
6
|
import { createRoot } from "../react";
|
|
7
7
|
import { CHUNK_CSS_PLACEHOLDER } from "./constants";
|
|
8
|
-
import { getSSRConfigByEntry,
|
|
8
|
+
import { getSSRConfigByEntry, getSSRMode } from "./utils";
|
|
9
9
|
function createSSRContext(request, options) {
|
|
10
10
|
const { config, loaderContext, onError, onTiming, locals, resource, params, responseProxy, logger, metrics, reporter } = options;
|
|
11
|
-
const { nonce } = config;
|
|
11
|
+
const { nonce, useJsonScript } = config;
|
|
12
12
|
const { entryName, route } = resource;
|
|
13
13
|
const { headers } = request;
|
|
14
14
|
const cookie = headers.get("cookie") || "";
|
|
@@ -24,10 +24,10 @@ function createSSRContext(request, options) {
|
|
|
24
24
|
}
|
|
25
25
|
const ssrConfig = getSSRConfigByEntry(entryName, config.ssr, config.ssrByEntries);
|
|
26
26
|
const ssrMode = getSSRMode(ssrConfig);
|
|
27
|
-
const inlineScript = getSSRInlineScript(ssrConfig);
|
|
28
27
|
const loaderFailureMode = typeof ssrConfig === "object" ? ssrConfig.loaderFailureMode : void 0;
|
|
29
28
|
return {
|
|
30
29
|
nonce,
|
|
30
|
+
useJsonScript,
|
|
31
31
|
loaderContext,
|
|
32
32
|
redirection: {},
|
|
33
33
|
htmlModifiers: [],
|
|
@@ -57,7 +57,6 @@ function createSSRContext(request, options) {
|
|
|
57
57
|
},
|
|
58
58
|
reporter,
|
|
59
59
|
mode: ssrMode,
|
|
60
|
-
inlineScript,
|
|
61
60
|
onError,
|
|
62
61
|
onTiming,
|
|
63
62
|
loaderFailureMode
|
|
@@ -2,7 +2,7 @@ import { serializeJson } from "@modern-js/runtime-utils/node";
|
|
|
2
2
|
import { SSR_DATA_JSON_ID } from "../../constants";
|
|
3
3
|
import { SSR_DATA_PLACEHOLDER } from "../constants";
|
|
4
4
|
import { buildHtml } from "../shared";
|
|
5
|
-
import { attributesToString,
|
|
5
|
+
import { attributesToString, safeReplace } from "../utils";
|
|
6
6
|
function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
7
7
|
const { request, config, ssrConfig, runtimeContext, renderLevel, entryName } = options;
|
|
8
8
|
const callbacks = [
|
|
@@ -10,6 +10,7 @@ function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
|
10
10
|
request,
|
|
11
11
|
ssrConfig,
|
|
12
12
|
nonce: config.nonce,
|
|
13
|
+
useJsonScript: config.useJsonScript,
|
|
13
14
|
runtimeContext,
|
|
14
15
|
renderLevel
|
|
15
16
|
}),
|
|
@@ -34,7 +35,7 @@ function buildShellAfterTemplate(afterAppTemplate, options) {
|
|
|
34
35
|
return buildHtml(afterAppTemplate, callbacks);
|
|
35
36
|
}
|
|
36
37
|
function createReplaceSSRData(options) {
|
|
37
|
-
const { runtimeContext, nonce, renderLevel, ssrConfig } = options;
|
|
38
|
+
const { runtimeContext, nonce, renderLevel, useJsonScript, ssrConfig } = options;
|
|
38
39
|
const { request, reporter } = runtimeContext.ssrContext;
|
|
39
40
|
const headers = typeof ssrConfig === "object" && ssrConfig.unsafeHeaders ? Object.fromEntries(Object.entries(request.headers).filter(([key, _]) => {
|
|
40
41
|
var _ssrConfig_unsafeHeaders_map, _ssrConfig_unsafeHeaders;
|
|
@@ -64,12 +65,8 @@ function createReplaceSSRData(options) {
|
|
|
64
65
|
const attrsStr = attributesToString({
|
|
65
66
|
nonce
|
|
66
67
|
});
|
|
67
|
-
const inlineScript = getSSRInlineScript(ssrConfig);
|
|
68
|
-
const useInlineScript = inlineScript !== false;
|
|
69
68
|
const serializeSSRData = serializeJson(ssrData);
|
|
70
|
-
const ssrDataScript =
|
|
71
|
-
<script${attrsStr}>window._SSR_DATA = ${serializeSSRData}</script>
|
|
72
|
-
` : `<script type="application/json" id="${SSR_DATA_JSON_ID}">${serializeSSRData}</script>`;
|
|
69
|
+
const ssrDataScript = useJsonScript ? `<script type="application/json" id="${SSR_DATA_JSON_ID}">${serializeSSRData}</script>` : `<script${attrsStr}>window._SSR_DATA = ${serializeSSRData}</script>`;
|
|
73
70
|
return (template) => safeReplace(template, SSR_DATA_PLACEHOLDER, ssrDataScript);
|
|
74
71
|
}
|
|
75
72
|
export {
|
|
@@ -58,7 +58,8 @@ const renderString = async (request, serverRoot, options) => {
|
|
|
58
58
|
ssrContext: runtimeContext.ssrContext,
|
|
59
59
|
chunkSet,
|
|
60
60
|
routerContext,
|
|
61
|
-
nonce: config.nonce
|
|
61
|
+
nonce: config.nonce,
|
|
62
|
+
useJsonScript: config.useJsonScript
|
|
62
63
|
})
|
|
63
64
|
];
|
|
64
65
|
const rootElement = wrapRuntimeContextProvider(serverRoot, Object.assign(runtimeContext, {
|
|
@@ -5,7 +5,7 @@ import { _ as _class_private_method_get } from "@swc/helpers/_/_class_private_me
|
|
|
5
5
|
import { _ as _class_private_method_init } from "@swc/helpers/_/_class_private_method_init";
|
|
6
6
|
import { serializeJson } from "@modern-js/runtime-utils/node";
|
|
7
7
|
import { ROUTER_DATA_JSON_ID, SSR_DATA_JSON_ID } from "../../constants";
|
|
8
|
-
import { attributesToString,
|
|
8
|
+
import { attributesToString, serializeErrors } from "../utils";
|
|
9
9
|
var _options = /* @__PURE__ */ new WeakMap(), _getSSRData = /* @__PURE__ */ new WeakSet(), _getSSRDataScripts = /* @__PURE__ */ new WeakSet();
|
|
10
10
|
class SSRDataCollector {
|
|
11
11
|
effect() {
|
|
@@ -55,19 +55,17 @@ function getSSRData() {
|
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
57
|
function getSSRDataScripts(ssrData, routerData) {
|
|
58
|
-
const { nonce,
|
|
59
|
-
const inlineScript = getSSRInlineScript(ssrConfig);
|
|
60
|
-
const useInlineScript = inlineScript !== false;
|
|
58
|
+
const { nonce, useJsonScript = false } = _class_private_field_get(this, _options);
|
|
61
59
|
const serializeSSRData = serializeJson(ssrData);
|
|
62
60
|
const attrsStr = attributesToString({
|
|
63
61
|
nonce
|
|
64
62
|
});
|
|
65
|
-
let ssrDataScripts =
|
|
63
|
+
let ssrDataScripts = useJsonScript ? `<script type="application/json" id="${SSR_DATA_JSON_ID}">${serializeSSRData}</script>` : `<script${attrsStr}>window._SSR_DATA = ${serializeSSRData}</script>`;
|
|
66
64
|
if (routerData) {
|
|
67
65
|
const serializedRouterData = serializeJson(routerData);
|
|
68
|
-
ssrDataScripts +=
|
|
69
|
-
<script
|
|
70
|
-
<script
|
|
66
|
+
ssrDataScripts += useJsonScript ? `
|
|
67
|
+
<script type="application/json" id="${ROUTER_DATA_JSON_ID}">${serializedRouterData}</script>` : `
|
|
68
|
+
<script${attrsStr}>window._ROUTER_DATA = ${serializedRouterData}</script>`;
|
|
71
69
|
}
|
|
72
70
|
return ssrDataScripts;
|
|
73
71
|
}
|
|
@@ -47,17 +47,10 @@ function getSSRMode(ssrConfig) {
|
|
|
47
47
|
}
|
|
48
48
|
return (ssrConfig === null || ssrConfig === void 0 ? void 0 : ssrConfig.mode) === "stream" ? "stream" : "string";
|
|
49
49
|
}
|
|
50
|
-
function getSSRInlineScript(ssrConfig) {
|
|
51
|
-
if (typeof ssrConfig === "object") {
|
|
52
|
-
return ssrConfig.inlineScript === void 0 ? true : ssrConfig.inlineScript;
|
|
53
|
-
}
|
|
54
|
-
return true;
|
|
55
|
-
}
|
|
56
50
|
export {
|
|
57
51
|
attributesToString,
|
|
58
52
|
checkIsNode,
|
|
59
53
|
getSSRConfigByEntry,
|
|
60
|
-
getSSRInlineScript,
|
|
61
54
|
getSSRMode,
|
|
62
55
|
safeReplace,
|
|
63
56
|
serializeErrors
|
|
@@ -7,7 +7,7 @@ import { modernInline, runRouterDataFnStr, runWindowFnStr } from "./constants";
|
|
|
7
7
|
import { serializeErrors } from "./utils";
|
|
8
8
|
const DeferredDataScripts = (props) => {
|
|
9
9
|
const staticContext = props === null || props === void 0 ? void 0 : props.context;
|
|
10
|
-
const
|
|
10
|
+
const useJsonScript = props === null || props === void 0 ? void 0 : props.useJsonScript;
|
|
11
11
|
const hydratedRef = useRef(false);
|
|
12
12
|
useEffect(() => {
|
|
13
13
|
hydratedRef.current = true;
|
|
@@ -21,11 +21,11 @@ const DeferredDataScripts = (props) => {
|
|
|
21
21
|
loaderData: staticContext.loaderData,
|
|
22
22
|
errors: serializeErrors(staticContext.errors)
|
|
23
23
|
};
|
|
24
|
-
const initialScript0 =
|
|
25
|
-
const initialScript1 =
|
|
24
|
+
const initialScript0 = useJsonScript ? `${serializeJson(_ROUTER_DATA)}` : "";
|
|
25
|
+
const initialScript1 = useJsonScript ? modernInline : [
|
|
26
26
|
`_ROUTER_DATA = ${serializeJson(_ROUTER_DATA)};`,
|
|
27
27
|
modernInline
|
|
28
|
-
].join("\n")
|
|
28
|
+
].join("\n");
|
|
29
29
|
const deferredDataScripts = [];
|
|
30
30
|
const initialScripts = Object.entries(activeDeferreds).map(([routeId, deferredData]) => {
|
|
31
31
|
const pendingKeys = new Set(deferredData.pendingKeys);
|
|
@@ -75,9 +75,11 @@ const routerPlugin = (userConfig = {}) => {
|
|
|
75
75
|
if (routerContext instanceof Response) {
|
|
76
76
|
return interrupt(routerContext);
|
|
77
77
|
}
|
|
78
|
-
if (routerContext.statusCode >= 500 && routerContext.statusCode < 600 && loaderFailureMode
|
|
78
|
+
if (routerContext.statusCode >= 500 && routerContext.statusCode < 600 && // TODO: if loaderFailureMode is not 'errroBoundary', error log will not be printed.
|
|
79
|
+
loaderFailureMode === "clientRender") {
|
|
79
80
|
routerContext.statusCode = 200;
|
|
80
|
-
|
|
81
|
+
const errors = Object.values(routerContext.errors);
|
|
82
|
+
throw errors[0];
|
|
81
83
|
}
|
|
82
84
|
const router = createStaticRouter(routes, routerContext);
|
|
83
85
|
context.routerContext = routerContext;
|
|
@@ -92,7 +94,7 @@ const routerPlugin = (userConfig = {}) => {
|
|
|
92
94
|
return () => {
|
|
93
95
|
const context = useContext(RuntimeReactContext);
|
|
94
96
|
const { remixRouter, routerContext, ssrContext } = context;
|
|
95
|
-
const { nonce, mode,
|
|
97
|
+
const { nonce, mode, useJsonScript } = ssrContext;
|
|
96
98
|
const routerWrapper = /* @__PURE__ */ _jsxs(_Fragment, {
|
|
97
99
|
children: [
|
|
98
100
|
/* @__PURE__ */ _jsx(StaticRouterProvider, {
|
|
@@ -105,7 +107,7 @@ const routerPlugin = (userConfig = {}) => {
|
|
|
105
107
|
/* @__PURE__ */ _jsx(DeferredDataScripts, {
|
|
106
108
|
nonce,
|
|
107
109
|
context: routerContext,
|
|
108
|
-
|
|
110
|
+
useJsonScript
|
|
109
111
|
}),
|
|
110
112
|
mode === "stream" && JSX_SHELL_STREAM_END_MARK
|
|
111
113
|
]
|
|
@@ -17,4 +17,3 @@ export declare function checkIsNode(): boolean;
|
|
|
17
17
|
export declare function serializeErrors(errors: StaticHandlerContext['errors']): StaticHandlerContext['errors'];
|
|
18
18
|
export declare function getSSRConfigByEntry(entryName: string, ssr?: ServerUserConfig['ssr'], ssrByEntries?: ServerUserConfig['ssrByEntries']): import("@modern-js/app-tools").SSR;
|
|
19
19
|
export declare function getSSRMode(ssrConfig?: SSRConfig): 'string' | 'stream' | false;
|
|
20
|
-
export declare function getSSRInlineScript(ssrConfig?: SSRConfig): boolean;
|
|
@@ -52,7 +52,7 @@ export type SSRServerContext = Pick<BaseSSRServerContext, 'redirection' | 'respo
|
|
|
52
52
|
loaderFailureMode?: 'clientRender' | 'errorBoundary';
|
|
53
53
|
onError?: (e: unknown) => void;
|
|
54
54
|
onTiming?: (name: string, dur: number) => void;
|
|
55
|
-
|
|
55
|
+
useJsonScript?: boolean;
|
|
56
56
|
};
|
|
57
57
|
interface TSSRBaseContext {
|
|
58
58
|
request: BaseSSRServerContext['request'] & {
|
|
@@ -6,7 +6,7 @@ import type { StaticHandlerContext } from '@modern-js/runtime-utils/remix-router
|
|
|
6
6
|
*/
|
|
7
7
|
declare const DeferredDataScripts: (props?: {
|
|
8
8
|
nonce?: string;
|
|
9
|
-
|
|
9
|
+
useJsonScript?: boolean;
|
|
10
10
|
context: StaticHandlerContext;
|
|
11
11
|
}) => import("react").JSX.Element | null;
|
|
12
12
|
export default DeferredDataScripts;
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.63.
|
|
18
|
+
"version": "2.63.2",
|
|
19
19
|
"engines": {
|
|
20
20
|
"node": ">=14.17.6"
|
|
21
21
|
},
|
|
@@ -200,11 +200,11 @@
|
|
|
200
200
|
"react-is": "^18",
|
|
201
201
|
"react-side-effect": "^2.1.1",
|
|
202
202
|
"styled-components": "^5.3.1",
|
|
203
|
-
"@modern-js/plugin": "2.63.
|
|
204
|
-
"@modern-js/
|
|
205
|
-
"@modern-js/
|
|
206
|
-
"@modern-js/utils": "2.63.
|
|
207
|
-
"@modern-js/
|
|
203
|
+
"@modern-js/plugin": "2.63.2",
|
|
204
|
+
"@modern-js/types": "2.63.2",
|
|
205
|
+
"@modern-js/utils": "2.63.2",
|
|
206
|
+
"@modern-js/runtime-utils": "2.63.2",
|
|
207
|
+
"@modern-js/plugin-data-loader": "2.63.2"
|
|
208
208
|
},
|
|
209
209
|
"peerDependencies": {
|
|
210
210
|
"react": ">=17",
|
|
@@ -212,7 +212,7 @@
|
|
|
212
212
|
},
|
|
213
213
|
"devDependencies": {
|
|
214
214
|
"@remix-run/web-fetch": "^4.1.3",
|
|
215
|
-
"@rsbuild/core": "
|
|
215
|
+
"@rsbuild/core": "1.1.9",
|
|
216
216
|
"@testing-library/react": "^13.4.0",
|
|
217
217
|
"@types/cookie": "0.6.0",
|
|
218
218
|
"@types/invariant": "^2.2.30",
|
|
@@ -227,11 +227,11 @@
|
|
|
227
227
|
"ts-jest": "^29.1.0",
|
|
228
228
|
"ts-node": "^10.9.1",
|
|
229
229
|
"typescript": "^5",
|
|
230
|
-
"webpack": "^5.
|
|
231
|
-
"@modern-js/app-tools": "2.63.
|
|
232
|
-
"@
|
|
233
|
-
"@
|
|
234
|
-
"@scripts/
|
|
230
|
+
"webpack": "^5.97.1",
|
|
231
|
+
"@modern-js/app-tools": "2.63.2",
|
|
232
|
+
"@modern-js/core": "2.63.2",
|
|
233
|
+
"@scripts/build": "2.63.2",
|
|
234
|
+
"@scripts/jest-config": "2.63.2"
|
|
235
235
|
},
|
|
236
236
|
"sideEffects": false,
|
|
237
237
|
"publishConfig": {
|