@modern-js/runtime 2.22.0 → 2.22.2-alpha.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 +15 -0
- package/dist/cjs/document/Html.js +2 -1
- package/dist/cjs/document/Style.js +26 -0
- package/dist/cjs/document/cli/index.js +3 -0
- package/dist/cjs/document/constants.js +11 -6
- package/dist/cjs/document/index.js +1 -0
- package/dist/cjs/router/runtime/DeferredDataScripts.node.js +9 -4
- package/dist/cjs/router/runtime/plugin.js +16 -1
- package/dist/cjs/router/runtime/plugin.node.js +5 -2
- package/dist/esm/document/Html.js +8 -3
- package/dist/esm/document/Style.js +14 -0
- package/dist/esm/document/cli/index.js +6 -1
- package/dist/esm/document/constants.js +3 -1
- package/dist/esm/document/index.js +1 -0
- package/dist/esm/router/runtime/DeferredDataScripts.node.js +9 -4
- package/dist/esm/router/runtime/plugin.js +20 -1
- package/dist/esm/router/runtime/plugin.node.js +6 -3
- package/dist/esm-node/document/Html.js +2 -1
- package/dist/esm-node/document/Style.js +14 -0
- package/dist/esm-node/document/cli/index.js +4 -1
- package/dist/esm-node/document/constants.js +3 -1
- package/dist/esm-node/document/index.js +1 -0
- package/dist/esm-node/router/runtime/DeferredDataScripts.node.js +9 -4
- package/dist/esm-node/router/runtime/plugin.js +16 -1
- package/dist/esm-node/router/runtime/plugin.node.js +5 -2
- package/dist/js/modern/cli/index.js +72 -0
- package/dist/js/modern/common.js +4 -0
- package/dist/js/modern/config.js +0 -0
- package/dist/js/modern/core/app-config.js +10 -0
- package/dist/js/modern/core/compatible.js +286 -0
- package/dist/js/modern/core/index.js +16 -0
- package/dist/js/modern/core/loader/index.js +4 -0
- package/dist/js/modern/core/loader/loaderManager.js +165 -0
- package/dist/js/modern/core/loader/useLoader.js +114 -0
- package/dist/js/modern/core/plugin.js +58 -0
- package/dist/js/modern/document/Body.js +23 -0
- package/dist/js/modern/document/DocumentContext.js +9 -0
- package/dist/js/modern/document/DocumentStructureContext.js +11 -0
- package/dist/js/modern/document/Head.js +27 -0
- package/dist/js/modern/document/Html.js +78 -0
- package/dist/js/modern/document/Links.js +10 -0
- package/dist/js/modern/document/Root.js +33 -0
- package/dist/js/modern/document/Script.js +20 -0
- package/dist/js/modern/document/Scripts.js +10 -0
- package/dist/js/modern/document/cli/index.js +228 -0
- package/dist/js/modern/document/constants.js +49 -0
- package/dist/js/modern/document/index.js +10 -0
- package/dist/js/modern/exports/head.js +6 -0
- package/dist/js/modern/exports/loadable.js +6 -0
- package/dist/js/modern/exports/server.js +4 -0
- package/dist/js/modern/exports/styled.js +6 -0
- package/dist/js/modern/index.js +22 -0
- package/dist/js/modern/router/cli/index.js +120 -0
- package/dist/js/modern/router/index.js +7 -0
- package/dist/js/modern/router/runtime/DefaultNotFound.js +14 -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/index.js +9 -0
- package/dist/js/modern/router/runtime/plugin.js +104 -0
- package/dist/js/modern/router/runtime/plugin.node.js +189 -0
- package/dist/js/modern/router/runtime/server.js +1 -0
- package/dist/js/modern/router/runtime/types.js +0 -0
- package/dist/js/modern/router/runtime/utils.js +196 -0
- package/dist/js/modern/router/runtime/withRouter.js +36 -0
- package/dist/js/modern/runtime-context.js +7 -0
- package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
- package/dist/js/modern/ssr/cli/index.js +172 -0
- package/dist/js/modern/ssr/index.js +159 -0
- package/dist/js/modern/ssr/index.node.js +79 -0
- package/dist/js/modern/ssr/prefetch.js +69 -0
- package/dist/js/modern/ssr/prefetch.worker.js +66 -0
- package/dist/js/modern/ssr/react/index.js +6 -0
- package/dist/js/modern/ssr/react/nossr/index.js +18 -0
- package/dist/js/modern/ssr/react/prerender/index.js +108 -0
- package/dist/js/modern/ssr/react/prerender/type.js +0 -0
- package/dist/js/modern/ssr/react/prerender/util.js +96 -0
- package/dist/js/modern/ssr/react/withCallback/index.js +15 -0
- package/dist/js/modern/ssr/serverRender/helmet.js +44 -0
- package/dist/js/modern/ssr/serverRender/index.js +35 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +36 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +61 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/index.js +58 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/index.worker.js +35 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +24 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +96 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.worker.js +117 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +12 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/template.js +22 -0
- package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
- package/dist/js/modern/ssr/serverRender/renderToString/entry.js +172 -0
- package/dist/js/modern/ssr/serverRender/renderToString/index.js +52 -0
- package/dist/js/modern/ssr/serverRender/renderToString/index.worker.js +49 -0
- package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +48 -0
- package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +8 -0
- package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +11 -0
- package/dist/js/modern/ssr/serverRender/renderToString/template.js +58 -0
- package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -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/types.js +4 -0
- package/dist/js/modern/ssr/serverRender/utils.js +11 -0
- package/dist/js/modern/ssr/utils.js +81 -0
- package/dist/js/modern/state/cli/index.js +83 -0
- package/dist/js/modern/state/index.js +7 -0
- package/dist/js/modern/state/plugins.js +13 -0
- package/dist/js/modern/state/runtime/index.js +9 -0
- package/dist/js/modern/state/runtime/plugin.js +97 -0
- package/dist/js/modern/state/types.js +0 -0
- package/dist/js/node/cli/index.js +99 -0
- package/dist/js/node/common.js +27 -0
- package/dist/js/node/config.js +15 -0
- package/dist/js/node/core/app-config.js +34 -0
- package/dist/js/node/core/compatible.js +313 -0
- package/dist/js/node/core/index.js +47 -0
- package/dist/js/node/core/loader/index.js +33 -0
- package/dist/js/node/core/loader/loaderManager.js +195 -0
- package/dist/js/node/core/loader/useLoader.js +132 -0
- package/dist/js/node/core/plugin.js +80 -0
- package/dist/js/node/document/Body.js +43 -0
- package/dist/js/node/document/DocumentContext.js +38 -0
- package/dist/js/node/document/DocumentStructureContext.js +40 -0
- package/dist/js/node/document/Head.js +51 -0
- package/dist/js/node/document/Html.js +101 -0
- package/dist/js/node/document/Links.js +33 -0
- package/dist/js/node/document/Root.js +57 -0
- package/dist/js/node/document/Script.js +40 -0
- package/dist/js/node/document/Scripts.js +33 -0
- package/dist/js/node/document/cli/index.js +240 -0
- package/dist/js/node/document/constants.js +86 -0
- package/dist/js/node/document/index.js +26 -0
- package/dist/js/node/exports/head.js +34 -0
- package/dist/js/node/exports/loadable.js +34 -0
- package/dist/js/node/exports/server.js +27 -0
- package/dist/js/node/exports/styled.js +34 -0
- package/dist/js/node/index.js +44 -0
- package/dist/js/node/router/cli/index.js +135 -0
- package/dist/js/node/router/index.js +37 -0
- package/dist/js/node/router/runtime/DefaultNotFound.js +37 -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/index.js +33 -0
- package/dist/js/node/router/runtime/plugin.js +127 -0
- package/dist/js/node/router/runtime/plugin.node.js +212 -0
- package/dist/js/node/router/runtime/server.js +17 -0
- package/dist/js/node/router/runtime/types.js +15 -0
- package/dist/js/node/router/runtime/utils.js +221 -0
- package/dist/js/node/router/runtime/withRouter.js +57 -0
- package/dist/js/node/runtime-context.js +31 -0
- package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
- package/dist/js/node/ssr/cli/index.js +190 -0
- package/dist/js/node/ssr/index.js +185 -0
- package/dist/js/node/ssr/index.node.js +107 -0
- package/dist/js/node/ssr/prefetch.js +90 -0
- package/dist/js/node/ssr/prefetch.worker.js +87 -0
- package/dist/js/node/ssr/react/index.js +30 -0
- package/dist/js/node/ssr/react/nossr/index.js +47 -0
- package/dist/js/node/ssr/react/prerender/index.js +130 -0
- package/dist/js/node/ssr/react/prerender/type.js +15 -0
- package/dist/js/node/ssr/react/prerender/util.js +123 -0
- package/dist/js/node/ssr/react/withCallback/index.js +38 -0
- package/dist/js/node/ssr/serverRender/helmet.js +65 -0
- package/dist/js/node/ssr/serverRender/index.js +56 -0
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +65 -0
- package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +35 -0
- package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +87 -0
- package/dist/js/node/ssr/serverRender/renderToStream/index.js +87 -0
- package/dist/js/node/ssr/serverRender/renderToStream/index.worker.js +64 -0
- package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +47 -0
- package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +115 -0
- package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.worker.js +136 -0
- package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +35 -0
- package/dist/js/node/ssr/serverRender/renderToStream/template.js +45 -0
- package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
- package/dist/js/node/ssr/serverRender/renderToString/entry.js +197 -0
- package/dist/js/node/ssr/serverRender/renderToString/index.js +81 -0
- package/dist/js/node/ssr/serverRender/renderToString/index.worker.js +78 -0
- package/dist/js/node/ssr/serverRender/renderToString/loadable.js +71 -0
- package/dist/js/node/ssr/serverRender/renderToString/reduce.js +31 -0
- package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +34 -0
- package/dist/js/node/ssr/serverRender/renderToString/template.js +82 -0
- package/dist/js/node/ssr/serverRender/renderToString/type.js +32 -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/types.js +27 -0
- package/dist/js/node/ssr/serverRender/utils.js +34 -0
- package/dist/js/node/ssr/utils.js +106 -0
- package/dist/js/node/state/cli/index.js +100 -0
- package/dist/js/node/state/index.js +37 -0
- package/dist/js/node/state/plugins.js +45 -0
- package/dist/js/node/state/runtime/index.js +40 -0
- package/dist/js/node/state/runtime/plugin.js +121 -0
- package/dist/js/node/state/types.js +15 -0
- package/dist/js/treeshaking/cli/index.js +186 -0
- package/dist/js/treeshaking/common.js +4 -0
- package/dist/js/treeshaking/config.js +1 -0
- package/dist/js/treeshaking/core/app-config.js +9 -0
- package/dist/js/treeshaking/core/compatible.js +486 -0
- package/dist/js/treeshaking/core/index.js +7 -0
- package/dist/js/treeshaking/core/loader/index.js +2 -0
- package/dist/js/treeshaking/core/loader/loaderManager.js +406 -0
- package/dist/js/treeshaking/core/loader/useLoader.js +188 -0
- package/dist/js/treeshaking/core/plugin.js +176 -0
- package/dist/js/treeshaking/document/Body.js +18 -0
- package/dist/js/treeshaking/document/DocumentContext.js +7 -0
- package/dist/js/treeshaking/document/DocumentStructureContext.js +9 -0
- package/dist/js/treeshaking/document/Head.js +24 -0
- package/dist/js/treeshaking/document/Html.js +99 -0
- package/dist/js/treeshaking/document/Links.js +8 -0
- package/dist/js/treeshaking/document/Root.js +26 -0
- package/dist/js/treeshaking/document/Script.js +15 -0
- package/dist/js/treeshaking/document/Scripts.js +8 -0
- package/dist/js/treeshaking/document/cli/index.js +393 -0
- package/dist/js/treeshaking/document/constants.js +35 -0
- package/dist/js/treeshaking/document/index.js +10 -0
- package/dist/js/treeshaking/exports/head.js +4 -0
- package/dist/js/treeshaking/exports/loadable.js +4 -0
- package/dist/js/treeshaking/exports/server.js +4 -0
- package/dist/js/treeshaking/exports/styled.js +4 -0
- package/dist/js/treeshaking/index.js +3 -0
- package/dist/js/treeshaking/router/cli/index.js +148 -0
- package/dist/js/treeshaking/router/index.js +4 -0
- package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -0
- 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/index.js +6 -0
- package/dist/js/treeshaking/router/runtime/plugin.js +132 -0
- package/dist/js/treeshaking/router/runtime/plugin.node.js +447 -0
- package/dist/js/treeshaking/router/runtime/server.js +1 -0
- package/dist/js/treeshaking/router/runtime/types.js +1 -0
- package/dist/js/treeshaking/router/runtime/utils.js +260 -0
- package/dist/js/treeshaking/router/runtime/withRouter.js +67 -0
- package/dist/js/treeshaking/runtime-context.js +4 -0
- package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
- package/dist/js/treeshaking/ssr/cli/index.js +217 -0
- package/dist/js/treeshaking/ssr/index.js +315 -0
- package/dist/js/treeshaking/ssr/index.node.js +240 -0
- package/dist/js/treeshaking/ssr/prefetch.js +199 -0
- package/dist/js/treeshaking/ssr/prefetch.worker.js +191 -0
- package/dist/js/treeshaking/ssr/react/index.js +3 -0
- package/dist/js/treeshaking/ssr/react/nossr/index.js +58 -0
- package/dist/js/treeshaking/ssr/react/prerender/index.js +237 -0
- package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
- package/dist/js/treeshaking/ssr/react/prerender/util.js +108 -0
- package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -0
- package/dist/js/treeshaking/ssr/serverRender/helmet.js +42 -0
- package/dist/js/treeshaking/ssr/serverRender/index.js +169 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +34 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +115 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +165 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.worker.js +32 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +22 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +122 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.worker.js +294 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +63 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +393 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +165 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToString/index.worker.js +167 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +56 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +10 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +156 -0
- package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -0
- 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/types.js +2 -0
- package/dist/js/treeshaking/ssr/serverRender/utils.js +13 -0
- package/dist/js/treeshaking/ssr/utils.js +134 -0
- package/dist/js/treeshaking/state/cli/index.js +71 -0
- package/dist/js/treeshaking/state/index.js +4 -0
- package/dist/js/treeshaking/state/plugins.js +14 -0
- package/dist/js/treeshaking/state/runtime/index.js +5 -0
- package/dist/js/treeshaking/state/runtime/plugin.js +198 -0
- package/dist/js/treeshaking/state/types.js +1 -0
- package/dist/types/document/Style.d.ts +5 -0
- package/dist/types/document/constants.d.ts +2 -1
- package/dist/types/document/index.d.ts +1 -0
- package/dist/types/router/runtime/DeferredDataScripts.node.d.ts +3 -1
- package/dist/types/runtimeContext.d.ts +8 -0
- package/package.json +11 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @modern-js/runtime
|
|
2
2
|
|
|
3
|
+
## 2.22.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- e2848a2: fix: support nonce in streaming SSR
|
|
8
|
+
fix: 在 streaming SSR 中支持 nonce
|
|
9
|
+
- 9b69987: feat: support Style component to use style with some <> special chartset
|
|
10
|
+
feat: 支持 Style 组件,用于渲染含 <> 等特殊字符
|
|
11
|
+
- Updated dependencies [25b490a]
|
|
12
|
+
- Updated dependencies [e2848a2]
|
|
13
|
+
- Updated dependencies [d4045ed]
|
|
14
|
+
- @modern-js/types@2.22.1
|
|
15
|
+
- @modern-js/utils@2.22.1
|
|
16
|
+
- @modern-js/plugin@2.22.1
|
|
17
|
+
|
|
3
18
|
## 2.22.0
|
|
4
19
|
|
|
5
20
|
### Minor Changes
|
|
@@ -37,7 +37,7 @@ function findTargetElement(tag, children) {
|
|
|
37
37
|
return findTargetElement(tag, nextChildren);
|
|
38
38
|
}
|
|
39
39
|
function Html(props) {
|
|
40
|
-
const { children } = props;
|
|
40
|
+
const { children, ...rest } = props;
|
|
41
41
|
const hasSetHead = Boolean(findTargetChild("Head", children));
|
|
42
42
|
const hasSetScripts = Boolean(findTargetElement("Scripts", children));
|
|
43
43
|
const hasSetLinks = Boolean(findTargetElement("Links", children));
|
|
@@ -70,6 +70,7 @@ function Html(props) {
|
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
return /* @__PURE__ */ (0, _jsxruntime.jsx)("html", {
|
|
73
|
+
...rest,
|
|
73
74
|
children: /* @__PURE__ */ (0, _jsxruntime.jsxs)(_DocumentStructureContext.DocumentStructureContext.Provider, {
|
|
74
75
|
value: {
|
|
75
76
|
hasSetHead,
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "Style", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return Style;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
|
|
12
|
+
const _jsxruntime = require("react/jsx-runtime");
|
|
13
|
+
const _react = /* @__PURE__ */ _interop_require_default._(require("react"));
|
|
14
|
+
const _constants = require("./constants");
|
|
15
|
+
function Style(props) {
|
|
16
|
+
const { content, children } = props;
|
|
17
|
+
const contentStr = children || content;
|
|
18
|
+
const contentIIFE = encodeURIComponent(`(${contentStr})()`);
|
|
19
|
+
return /* @__PURE__ */ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {
|
|
20
|
+
children: [
|
|
21
|
+
`${_constants.DOCUMENT_STYLE_PLACEHOLDER_START}`,
|
|
22
|
+
`${contentIIFE}`,
|
|
23
|
+
`${_constants.DOCUMENT_STYLE_PLACEHOLDER_END}`
|
|
24
|
+
]
|
|
25
|
+
});
|
|
26
|
+
}
|
|
@@ -146,6 +146,9 @@ const _default = () => {
|
|
|
146
146
|
const nonceAttr = nonce ? `nonce=${nonce}` : "";
|
|
147
147
|
html = html.replace(new RegExp(`${_constants.DOCUMENT_SCRIPT_PLACEHOLDER_START}(.*?)${_constants.DOCUMENT_SCRIPT_PLACEHOLDER_END}`, "g"), (_scriptStr, $1) => `<script ${nonceAttr}>${decodeURIComponent($1)}</script>`);
|
|
148
148
|
}
|
|
149
|
+
if (html.includes(_constants.DOCUMENT_STYLE_PLACEHOLDER_START) && html.includes(_constants.DOCUMENT_STYLE_PLACEHOLDER_END)) {
|
|
150
|
+
html = html.replace(new RegExp(`${_constants.DOCUMENT_STYLE_PLACEHOLDER_START}(.*?)${_constants.DOCUMENT_STYLE_PLACEHOLDER_END}`, "g"), (_styleStr, $1) => `<style>${decodeURIComponent($1)}</style>`);
|
|
151
|
+
}
|
|
149
152
|
if (html.includes(_constants.DOCUMENT_COMMENT_PLACEHOLDER_START) && html.includes(_constants.DOCUMENT_COMMENT_PLACEHOLDER_END)) {
|
|
150
153
|
html = html.replace(new RegExp(`${_constants.DOCUMENT_COMMENT_PLACEHOLDER_START}(.*?)${_constants.DOCUMENT_COMMENT_PLACEHOLDER_END}`, "g"), (_scriptStr, $1) => `${decodeURIComponent($1)}`);
|
|
151
154
|
}
|
|
@@ -19,9 +19,6 @@ _export(exports, {
|
|
|
19
19
|
HTML_SEPARATOR: function() {
|
|
20
20
|
return HTML_SEPARATOR;
|
|
21
21
|
},
|
|
22
|
-
HTML_CHUNKSMAP_SEPARATOR: function() {
|
|
23
|
-
return HTML_CHUNKSMAP_SEPARATOR;
|
|
24
|
-
},
|
|
25
22
|
HTML_SSRDATASCRIPT_SEPARATOR: function() {
|
|
26
23
|
return HTML_SSRDATASCRIPT_SEPARATOR;
|
|
27
24
|
},
|
|
@@ -52,6 +49,12 @@ _export(exports, {
|
|
|
52
49
|
DOCUMENT_SCRIPT_PLACEHOLDER_END: function() {
|
|
53
50
|
return DOCUMENT_SCRIPT_PLACEHOLDER_END;
|
|
54
51
|
},
|
|
52
|
+
DOCUMENT_STYLE_PLACEHOLDER_START: function() {
|
|
53
|
+
return DOCUMENT_STYLE_PLACEHOLDER_START;
|
|
54
|
+
},
|
|
55
|
+
DOCUMENT_STYLE_PLACEHOLDER_END: function() {
|
|
56
|
+
return DOCUMENT_STYLE_PLACEHOLDER_END;
|
|
57
|
+
},
|
|
55
58
|
DOCUMENT_COMMENT_PLACEHOLDER_START: function() {
|
|
56
59
|
return DOCUMENT_COMMENT_PLACEHOLDER_START;
|
|
57
60
|
},
|
|
@@ -62,6 +65,7 @@ _export(exports, {
|
|
|
62
65
|
return PLACEHOLDER_REPLACER_MAP;
|
|
63
66
|
}
|
|
64
67
|
});
|
|
68
|
+
const _constants = require("@modern-js/utils/universal/constants");
|
|
65
69
|
const DOC_EXT = [
|
|
66
70
|
"jsx",
|
|
67
71
|
"tsx",
|
|
@@ -70,10 +74,9 @@ const DOC_EXT = [
|
|
|
70
74
|
];
|
|
71
75
|
const DOCUMENT_META_PLACEHOLDER = encodeURIComponent("<%= meta %>");
|
|
72
76
|
const HTML_SEPARATOR = "<!--<?- html ?>-->";
|
|
73
|
-
const HTML_CHUNKSMAP_SEPARATOR = "<!--<?- chunksMap.js ?>-->";
|
|
74
77
|
const HTML_SSRDATASCRIPT_SEPARATOR = "<!--<?- SSRDataScript ?>-->";
|
|
75
78
|
const DOCUMENT_SSR_PLACEHOLDER = encodeURIComponent(HTML_SEPARATOR);
|
|
76
|
-
const DOCUMENT_CHUNKSMAP_PLACEHOLDER = encodeURIComponent(HTML_CHUNKSMAP_SEPARATOR);
|
|
79
|
+
const DOCUMENT_CHUNKSMAP_PLACEHOLDER = encodeURIComponent(_constants.HTML_CHUNKSMAP_SEPARATOR);
|
|
77
80
|
const DOCUMENT_SSRDATASCRIPT_PLACEHOLDER = encodeURIComponent(HTML_SSRDATASCRIPT_SEPARATOR);
|
|
78
81
|
const DOCUMENT_FILE_NAME = "Document";
|
|
79
82
|
const DOCUMENT_SCRIPTS_PLACEHOLDER = encodeURIComponent("<!-- chunk scripts placeholder -->");
|
|
@@ -81,11 +84,13 @@ const DOCUMENT_LINKS_PLACEHOLDER = encodeURIComponent("<!-- chunk links placehol
|
|
|
81
84
|
const DOCUMENT_NO_SCRIPTE_PLACEHOLDER = encodeURIComponent("<!-- no-script -->");
|
|
82
85
|
const DOCUMENT_SCRIPT_PLACEHOLDER_START = encodeURIComponent("<!-- script-start -->");
|
|
83
86
|
const DOCUMENT_SCRIPT_PLACEHOLDER_END = encodeURIComponent("<!-- script-end -->");
|
|
87
|
+
const DOCUMENT_STYLE_PLACEHOLDER_START = encodeURIComponent("<!-- style-start -->");
|
|
88
|
+
const DOCUMENT_STYLE_PLACEHOLDER_END = encodeURIComponent("<!-- style-end -->");
|
|
84
89
|
const DOCUMENT_COMMENT_PLACEHOLDER_START = encodeURIComponent("<!-- comment-start -->");
|
|
85
90
|
const DOCUMENT_COMMENT_PLACEHOLDER_END = encodeURIComponent("<!-- comment-end -->");
|
|
86
91
|
const PLACEHOLDER_REPLACER_MAP = {
|
|
87
92
|
[DOCUMENT_NO_SCRIPTE_PLACEHOLDER]: `We're sorry but react app doesn't work properly without JavaScript enabled. Please enable it to continue.`,
|
|
88
93
|
[DOCUMENT_SSR_PLACEHOLDER]: HTML_SEPARATOR,
|
|
89
|
-
[DOCUMENT_CHUNKSMAP_PLACEHOLDER]: HTML_CHUNKSMAP_SEPARATOR,
|
|
94
|
+
[DOCUMENT_CHUNKSMAP_PLACEHOLDER]: _constants.HTML_CHUNKSMAP_SEPARATOR,
|
|
90
95
|
[DOCUMENT_SSRDATASCRIPT_PLACEHOLDER]: HTML_SSRDATASCRIPT_SEPARATOR
|
|
91
96
|
};
|
|
@@ -11,6 +11,7 @@ _export_star._(require("./Body"), exports);
|
|
|
11
11
|
_export_star._(require("./Root"), exports);
|
|
12
12
|
_export_star._(require("./Links"), exports);
|
|
13
13
|
_export_star._(require("./Comment"), exports);
|
|
14
|
+
_export_star._(require("./Style"), exports);
|
|
14
15
|
_export_star._(require("./Scripts"), exports);
|
|
15
16
|
_export_star._(require("./Script"), exports);
|
|
16
17
|
_export_star._(require("./constants"), exports);
|
|
@@ -17,7 +17,7 @@ const _utils = require("./utils");
|
|
|
17
17
|
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}}))};`;
|
|
18
18
|
const resolveFnStr = `function r(e,r,o,A){A?_ROUTER_DATA.r[e][r].reject(A):_ROUTER_DATA.r[e][r].resolve(o)};`;
|
|
19
19
|
const preResolvedFnStr = `function p(e,r){return void 0!==r?Promise.reject(new Error(r.message)):Promise.resolve(e)};`;
|
|
20
|
-
const DeferredDataScripts = () => {
|
|
20
|
+
const DeferredDataScripts = (props) => {
|
|
21
21
|
const context = (0, _react.useContext)(_router.UNSAFE_DataRouterContext);
|
|
22
22
|
const { staticContext } = context || {};
|
|
23
23
|
const hydratedRef = (0, _react.useRef)(false);
|
|
@@ -46,6 +46,7 @@ const DeferredDataScripts = () => {
|
|
|
46
46
|
const deferredKeyPromiseStr = deferredKeys.map((key) => {
|
|
47
47
|
if (pendingKeys.has(key)) {
|
|
48
48
|
deferredDataScripts.push(/* @__PURE__ */ (0, _jsxruntime.jsx)(DeferredDataScript, {
|
|
49
|
+
nonce: props === null || props === void 0 ? void 0 : props.nonce,
|
|
49
50
|
data: deferredData.data[key],
|
|
50
51
|
dataKey: key,
|
|
51
52
|
routeId
|
|
@@ -81,6 +82,7 @@ const DeferredDataScripts = () => {
|
|
|
81
82
|
children: [
|
|
82
83
|
!hydratedRef.current && /* @__PURE__ */ (0, _jsxruntime.jsx)("script", {
|
|
83
84
|
async: true,
|
|
85
|
+
nonce: props === null || props === void 0 ? void 0 : props.nonce,
|
|
84
86
|
suppressHydrationWarning: true,
|
|
85
87
|
dangerouslySetInnerHTML: {
|
|
86
88
|
__html: deferredScripts[0]
|
|
@@ -91,16 +93,18 @@ const DeferredDataScripts = () => {
|
|
|
91
93
|
]
|
|
92
94
|
});
|
|
93
95
|
};
|
|
94
|
-
const DeferredDataScript = ({ data, routeId, dataKey }) => {
|
|
96
|
+
const DeferredDataScript = ({ data, routeId, dataKey, nonce }) => {
|
|
95
97
|
return /* @__PURE__ */ (0, _jsxruntime.jsx)(_react.Suspense, {
|
|
96
98
|
children: typeof document === "undefined" && data && dataKey && routeId ? /* @__PURE__ */ (0, _jsxruntime.jsx)(_router.Await, {
|
|
97
99
|
resolve: data,
|
|
98
100
|
errorElement: /* @__PURE__ */ (0, _jsxruntime.jsx)(ErrorDeferredDataScript, {
|
|
99
101
|
routeId,
|
|
100
|
-
dataKey
|
|
102
|
+
dataKey,
|
|
103
|
+
nonce
|
|
101
104
|
}),
|
|
102
105
|
children: (data2) => /* @__PURE__ */ (0, _jsxruntime.jsx)("script", {
|
|
103
106
|
async: true,
|
|
107
|
+
nonce,
|
|
104
108
|
suppressHydrationWarning: true,
|
|
105
109
|
dangerouslySetInnerHTML: {
|
|
106
110
|
__html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(dataKey)}, ${(0, _runtimenode.serializeJson)(data2)});`
|
|
@@ -109,9 +113,10 @@ const DeferredDataScript = ({ data, routeId, dataKey }) => {
|
|
|
109
113
|
}) : null
|
|
110
114
|
});
|
|
111
115
|
};
|
|
112
|
-
const ErrorDeferredDataScript = ({ routeId, dataKey }) => {
|
|
116
|
+
const ErrorDeferredDataScript = ({ routeId, dataKey, nonce }) => {
|
|
113
117
|
const error = (0, _router.useAsyncError)();
|
|
114
118
|
return /* @__PURE__ */ (0, _jsxruntime.jsx)("script", {
|
|
119
|
+
nonce,
|
|
115
120
|
suppressHydrationWarning: true,
|
|
116
121
|
dangerouslySetInnerHTML: {
|
|
117
122
|
__html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(dataKey)}, ${void 0}, ${(0, _runtimenode.serializeJson)({
|
|
@@ -105,7 +105,22 @@ const routerPlugin = ({ serverBase = [], supportHtml5History = true, basename =
|
|
|
105
105
|
hydrationData
|
|
106
106
|
});
|
|
107
107
|
const runtimeContext = (0, _react.useContext)(_core.RuntimeReactContext);
|
|
108
|
-
runtimeContext
|
|
108
|
+
Object.defineProperty(runtimeContext, "remixRouter", {
|
|
109
|
+
get() {
|
|
110
|
+
return router;
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
const originSubscribe = router.subscribe;
|
|
114
|
+
router.subscribe = (listener) => {
|
|
115
|
+
const wrapedListener = (...args) => {
|
|
116
|
+
const blockRoute = runtimeContext.unstable_blockRoute;
|
|
117
|
+
if (blockRoute) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
return listener(...args);
|
|
121
|
+
};
|
|
122
|
+
return originSubscribe(wrapedListener);
|
|
123
|
+
};
|
|
109
124
|
return /* @__PURE__ */ (0, _jsxruntime.jsx)(App, {
|
|
110
125
|
...props,
|
|
111
126
|
children: /* @__PURE__ */ (0, _jsxruntime.jsx)(_router.RouterProvider, {
|
|
@@ -73,12 +73,15 @@ const routerPlugin = ({ basename = "", routesConfig, createRoutes }) => {
|
|
|
73
73
|
context
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
|
-
const { request, mode: ssrMode } = context.ssrContext;
|
|
76
|
+
const { request, mode: ssrMode, nonce } = context.ssrContext;
|
|
77
77
|
const baseUrl = request.baseUrl;
|
|
78
78
|
const _basename = baseUrl === "/" ? (0, _utils.urlJoin)(baseUrl, basename) : baseUrl;
|
|
79
79
|
const routes = createRoutes ? createRoutes() : (0, _router1.createRoutesFromElements)((0, _utils.renderRoutes)({
|
|
80
80
|
routesConfig,
|
|
81
|
-
ssrMode
|
|
81
|
+
ssrMode,
|
|
82
|
+
props: {
|
|
83
|
+
nonce
|
|
84
|
+
}
|
|
82
85
|
}));
|
|
83
86
|
const { query } = (0, _remixrouter.createStaticHandler)(routes, {
|
|
84
87
|
basename: _basename
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
|
+
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
|
+
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
1
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
5
|
import { Body } from "./Body";
|
|
3
6
|
import { DocumentStructureContext } from "./DocumentStructureContext";
|
|
@@ -44,7 +47,9 @@ function findTargetElement(tag, children) {
|
|
|
44
47
|
return findTargetElement(tag, nextChildren);
|
|
45
48
|
}
|
|
46
49
|
export function Html(props) {
|
|
47
|
-
var children = props.children
|
|
50
|
+
var children = props.children, rest = _object_without_properties(props, [
|
|
51
|
+
"children"
|
|
52
|
+
]);
|
|
48
53
|
var hasSetHead = Boolean(findTargetChild("Head", children));
|
|
49
54
|
var hasSetScripts = Boolean(findTargetElement("Scripts", children));
|
|
50
55
|
var hasSetLinks = Boolean(findTargetElement("Links", children));
|
|
@@ -78,7 +83,7 @@ export function Html(props) {
|
|
|
78
83
|
})
|
|
79
84
|
});
|
|
80
85
|
}
|
|
81
|
-
return /* @__PURE__ */ _jsx("html", {
|
|
86
|
+
return /* @__PURE__ */ _jsx("html", _object_spread_props(_object_spread({}, rest), {
|
|
82
87
|
children: /* @__PURE__ */ _jsxs(DocumentStructureContext.Provider, {
|
|
83
88
|
value: {
|
|
84
89
|
hasSetHead: hasSetHead,
|
|
@@ -94,5 +99,5 @@ export function Html(props) {
|
|
|
94
99
|
children
|
|
95
100
|
]
|
|
96
101
|
})
|
|
97
|
-
});
|
|
102
|
+
}));
|
|
98
103
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { DOCUMENT_STYLE_PLACEHOLDER_START, DOCUMENT_STYLE_PLACEHOLDER_END } from "./constants";
|
|
3
|
+
export function Style(props) {
|
|
4
|
+
var content = props.content, children = props.children;
|
|
5
|
+
var contentStr = children || content;
|
|
6
|
+
var contentIIFE = encodeURIComponent("(".concat(contentStr, ")()"));
|
|
7
|
+
return /* @__PURE__ */ _jsxs(_Fragment, {
|
|
8
|
+
children: [
|
|
9
|
+
"".concat(DOCUMENT_STYLE_PLACEHOLDER_START),
|
|
10
|
+
"".concat(contentIIFE),
|
|
11
|
+
"".concat(DOCUMENT_STYLE_PLACEHOLDER_END)
|
|
12
|
+
]
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -8,7 +8,7 @@ import ReactDomServer from "react-dom/server";
|
|
|
8
8
|
import { build } from "esbuild";
|
|
9
9
|
import { createDebugger, findExists, fs } from "@modern-js/utils";
|
|
10
10
|
import { DocumentContext } from "../DocumentContext";
|
|
11
|
-
import { DOCUMENT_SCRIPTS_PLACEHOLDER, DOCUMENT_LINKS_PLACEHOLDER, DOCUMENT_FILE_NAME, DOCUMENT_META_PLACEHOLDER, PLACEHOLDER_REPLACER_MAP, DOC_EXT, DOCUMENT_SSR_PLACEHOLDER, DOCUMENT_CHUNKSMAP_PLACEHOLDER, DOCUMENT_SSRDATASCRIPT_PLACEHOLDER, DOCUMENT_SCRIPT_PLACEHOLDER_START, DOCUMENT_SCRIPT_PLACEHOLDER_END, HTML_SEPARATOR, DOCUMENT_COMMENT_PLACEHOLDER_START, DOCUMENT_COMMENT_PLACEHOLDER_END } from "../constants";
|
|
11
|
+
import { DOCUMENT_SCRIPTS_PLACEHOLDER, DOCUMENT_LINKS_PLACEHOLDER, DOCUMENT_FILE_NAME, DOCUMENT_META_PLACEHOLDER, PLACEHOLDER_REPLACER_MAP, DOC_EXT, DOCUMENT_SSR_PLACEHOLDER, DOCUMENT_CHUNKSMAP_PLACEHOLDER, DOCUMENT_SSRDATASCRIPT_PLACEHOLDER, DOCUMENT_SCRIPT_PLACEHOLDER_START, DOCUMENT_SCRIPT_PLACEHOLDER_END, HTML_SEPARATOR, DOCUMENT_COMMENT_PLACEHOLDER_START, DOCUMENT_COMMENT_PLACEHOLDER_END, DOCUMENT_STYLE_PLACEHOLDER_START, DOCUMENT_STYLE_PLACEHOLDER_END } from "../constants";
|
|
12
12
|
var debug = createDebugger("html_genarate");
|
|
13
13
|
export var getDocumenByEntryName = function getDocumenByEntryName2(entrypoints, entryName, fallbackDir) {
|
|
14
14
|
var _entrypoints_find;
|
|
@@ -180,6 +180,11 @@ export default function() {
|
|
|
180
180
|
return "<script ".concat(nonceAttr, ">").concat(decodeURIComponent($1), "</script>");
|
|
181
181
|
});
|
|
182
182
|
}
|
|
183
|
+
if (html.includes(DOCUMENT_STYLE_PLACEHOLDER_START) && html.includes(DOCUMENT_STYLE_PLACEHOLDER_END)) {
|
|
184
|
+
html = html.replace(new RegExp("".concat(DOCUMENT_STYLE_PLACEHOLDER_START, "(.*?)").concat(DOCUMENT_STYLE_PLACEHOLDER_END), "g"), function(_styleStr, $1) {
|
|
185
|
+
return "<style>".concat(decodeURIComponent($1), "</style>");
|
|
186
|
+
});
|
|
187
|
+
}
|
|
183
188
|
if (html.includes(DOCUMENT_COMMENT_PLACEHOLDER_START) && html.includes(DOCUMENT_COMMENT_PLACEHOLDER_END)) {
|
|
184
189
|
html = html.replace(new RegExp("".concat(DOCUMENT_COMMENT_PLACEHOLDER_START, "(.*?)").concat(DOCUMENT_COMMENT_PLACEHOLDER_END), "g"), function(_scriptStr, $1) {
|
|
185
190
|
return "".concat(decodeURIComponent($1));
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
2
|
+
import { HTML_CHUNKSMAP_SEPARATOR } from "@modern-js/utils/universal/constants";
|
|
2
3
|
export var DOC_EXT = [
|
|
3
4
|
"jsx",
|
|
4
5
|
"tsx",
|
|
@@ -7,7 +8,6 @@ export var DOC_EXT = [
|
|
|
7
8
|
];
|
|
8
9
|
export var DOCUMENT_META_PLACEHOLDER = encodeURIComponent("<%= meta %>");
|
|
9
10
|
export var HTML_SEPARATOR = "<!--<?- html ?>-->";
|
|
10
|
-
export var HTML_CHUNKSMAP_SEPARATOR = "<!--<?- chunksMap.js ?>-->";
|
|
11
11
|
export var HTML_SSRDATASCRIPT_SEPARATOR = "<!--<?- SSRDataScript ?>-->";
|
|
12
12
|
export var DOCUMENT_SSR_PLACEHOLDER = encodeURIComponent(HTML_SEPARATOR);
|
|
13
13
|
export var DOCUMENT_CHUNKSMAP_PLACEHOLDER = encodeURIComponent(HTML_CHUNKSMAP_SEPARATOR);
|
|
@@ -18,6 +18,8 @@ export var DOCUMENT_LINKS_PLACEHOLDER = encodeURIComponent("<!-- chunk links pla
|
|
|
18
18
|
export var DOCUMENT_NO_SCRIPTE_PLACEHOLDER = encodeURIComponent("<!-- no-script -->");
|
|
19
19
|
export var DOCUMENT_SCRIPT_PLACEHOLDER_START = encodeURIComponent("<!-- script-start -->");
|
|
20
20
|
export var DOCUMENT_SCRIPT_PLACEHOLDER_END = encodeURIComponent("<!-- script-end -->");
|
|
21
|
+
export var DOCUMENT_STYLE_PLACEHOLDER_START = encodeURIComponent("<!-- style-start -->");
|
|
22
|
+
export var DOCUMENT_STYLE_PLACEHOLDER_END = encodeURIComponent("<!-- style-end -->");
|
|
21
23
|
export var DOCUMENT_COMMENT_PLACEHOLDER_START = encodeURIComponent("<!-- comment-start -->");
|
|
22
24
|
export var DOCUMENT_COMMENT_PLACEHOLDER_END = encodeURIComponent("<!-- comment-end -->");
|
|
23
25
|
var _obj;
|
|
@@ -8,7 +8,7 @@ import { serializeErrors } from "./utils";
|
|
|
8
8
|
var 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}}))};";
|
|
9
9
|
var resolveFnStr = "function r(e,r,o,A){A?_ROUTER_DATA.r[e][r].reject(A):_ROUTER_DATA.r[e][r].resolve(o)};";
|
|
10
10
|
var preResolvedFnStr = "function p(e,r){return void 0!==r?Promise.reject(new Error(r.message)):Promise.resolve(e)};";
|
|
11
|
-
var DeferredDataScripts = function() {
|
|
11
|
+
var DeferredDataScripts = function(props) {
|
|
12
12
|
var context = useContext(DataRouterContext);
|
|
13
13
|
var staticContext = (context || {}).staticContext;
|
|
14
14
|
var hydratedRef = useRef(false);
|
|
@@ -38,6 +38,7 @@ var DeferredDataScripts = function() {
|
|
|
38
38
|
var deferredKeyPromiseStr = deferredKeys.map(function(key) {
|
|
39
39
|
if (pendingKeys.has(key)) {
|
|
40
40
|
deferredDataScripts.push(/* @__PURE__ */ _jsx(DeferredDataScript, {
|
|
41
|
+
nonce: props === null || props === void 0 ? void 0 : props.nonce,
|
|
41
42
|
data: deferredData.data[key],
|
|
42
43
|
dataKey: key,
|
|
43
44
|
routeId: routeId
|
|
@@ -73,6 +74,7 @@ var DeferredDataScripts = function() {
|
|
|
73
74
|
children: [
|
|
74
75
|
!hydratedRef.current && /* @__PURE__ */ _jsx("script", {
|
|
75
76
|
async: true,
|
|
77
|
+
nonce: props === null || props === void 0 ? void 0 : props.nonce,
|
|
76
78
|
suppressHydrationWarning: true,
|
|
77
79
|
dangerouslySetInnerHTML: {
|
|
78
80
|
__html: deferredScripts[0]
|
|
@@ -84,17 +86,19 @@ var DeferredDataScripts = function() {
|
|
|
84
86
|
});
|
|
85
87
|
};
|
|
86
88
|
var DeferredDataScript = function(param) {
|
|
87
|
-
var data = param.data, routeId = param.routeId, dataKey = param.dataKey;
|
|
89
|
+
var data = param.data, routeId = param.routeId, dataKey = param.dataKey, nonce = param.nonce;
|
|
88
90
|
return /* @__PURE__ */ _jsx(Suspense, {
|
|
89
91
|
children: typeof document === "undefined" && data && dataKey && routeId ? /* @__PURE__ */ _jsx(Await, {
|
|
90
92
|
resolve: data,
|
|
91
93
|
errorElement: /* @__PURE__ */ _jsx(ErrorDeferredDataScript, {
|
|
92
94
|
routeId: routeId,
|
|
93
|
-
dataKey: dataKey
|
|
95
|
+
dataKey: dataKey,
|
|
96
|
+
nonce: nonce
|
|
94
97
|
}),
|
|
95
98
|
children: function(data2) {
|
|
96
99
|
return /* @__PURE__ */ _jsx("script", {
|
|
97
100
|
async: true,
|
|
101
|
+
nonce: nonce,
|
|
98
102
|
suppressHydrationWarning: true,
|
|
99
103
|
dangerouslySetInnerHTML: {
|
|
100
104
|
__html: "_ROUTER_DATA.r(".concat(JSON.stringify(routeId), ", ").concat(JSON.stringify(dataKey), ", ").concat(serializeJson(data2), ");")
|
|
@@ -105,9 +109,10 @@ var DeferredDataScript = function(param) {
|
|
|
105
109
|
});
|
|
106
110
|
};
|
|
107
111
|
var ErrorDeferredDataScript = function(param) {
|
|
108
|
-
var routeId = param.routeId, dataKey = param.dataKey;
|
|
112
|
+
var routeId = param.routeId, dataKey = param.dataKey, nonce = param.nonce;
|
|
109
113
|
var error = useAsyncError();
|
|
110
114
|
return /* @__PURE__ */ _jsx("script", {
|
|
115
|
+
nonce: nonce,
|
|
111
116
|
suppressHydrationWarning: true,
|
|
112
117
|
dangerouslySetInnerHTML: {
|
|
113
118
|
__html: "_ROUTER_DATA.r(".concat(JSON.stringify(routeId), ", ").concat(JSON.stringify(dataKey), ", ").concat(void 0, ", ").concat(serializeJson({
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
2
|
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
3
|
+
import { _ as _to_consumable_array } from "@swc/helpers/_/_to_consumable_array";
|
|
3
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
5
|
import { useContext } from "react";
|
|
5
6
|
import { createBrowserRouter, createHashRouter, RouterProvider, createRoutesFromElements, useMatches, useLocation } from "@modern-js/utils/runtime/router";
|
|
@@ -86,7 +87,25 @@ export var routerPlugin = function(param) {
|
|
|
86
87
|
hydrationData: hydrationData
|
|
87
88
|
});
|
|
88
89
|
var runtimeContext = useContext(RuntimeReactContext);
|
|
89
|
-
runtimeContext
|
|
90
|
+
Object.defineProperty(runtimeContext, "remixRouter", {
|
|
91
|
+
get: function get() {
|
|
92
|
+
return router;
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
var originSubscribe = router.subscribe;
|
|
96
|
+
router.subscribe = function(listener) {
|
|
97
|
+
var wrapedListener = function() {
|
|
98
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
99
|
+
args[_key] = arguments[_key];
|
|
100
|
+
}
|
|
101
|
+
var blockRoute = runtimeContext.unstable_blockRoute;
|
|
102
|
+
if (blockRoute) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
return listener.apply(void 0, _to_consumable_array(args));
|
|
106
|
+
};
|
|
107
|
+
return originSubscribe(wrapedListener);
|
|
108
|
+
};
|
|
90
109
|
return /* @__PURE__ */ _jsx(App, _object_spread_props(_object_spread({}, props), {
|
|
91
110
|
children: /* @__PURE__ */ _jsx(RouterProvider, {
|
|
92
111
|
router: router
|
|
@@ -87,7 +87,7 @@ export var routerPlugin = function(param) {
|
|
|
87
87
|
init: function init(param2, next) {
|
|
88
88
|
var context = param2.context;
|
|
89
89
|
return _async_to_generator(function() {
|
|
90
|
-
var _context_ssrContext, request, ssrMode, baseUrl, _basename, routes, query, remixRequest, routerContext, router, runner;
|
|
90
|
+
var _context_ssrContext, request, ssrMode, nonce, baseUrl, _basename, routes, query, remixRequest, routerContext, router, runner;
|
|
91
91
|
return _ts_generator(this, function(_state) {
|
|
92
92
|
switch (_state.label) {
|
|
93
93
|
case 0:
|
|
@@ -99,12 +99,15 @@ export var routerPlugin = function(param) {
|
|
|
99
99
|
})
|
|
100
100
|
];
|
|
101
101
|
}
|
|
102
|
-
_context_ssrContext = context.ssrContext, request = _context_ssrContext.request, ssrMode = _context_ssrContext.mode;
|
|
102
|
+
_context_ssrContext = context.ssrContext, request = _context_ssrContext.request, ssrMode = _context_ssrContext.mode, nonce = _context_ssrContext.nonce;
|
|
103
103
|
baseUrl = request.baseUrl;
|
|
104
104
|
_basename = baseUrl === "/" ? urlJoin(baseUrl, basename) : baseUrl;
|
|
105
105
|
routes = createRoutes ? createRoutes() : createRoutesFromElements(renderRoutes({
|
|
106
106
|
routesConfig: routesConfig,
|
|
107
|
-
ssrMode: ssrMode
|
|
107
|
+
ssrMode: ssrMode,
|
|
108
|
+
props: {
|
|
109
|
+
nonce: nonce
|
|
110
|
+
}
|
|
108
111
|
}));
|
|
109
112
|
query = createStaticHandler(routes, {
|
|
110
113
|
basename: _basename
|
|
@@ -25,7 +25,7 @@ function findTargetElement(tag, children) {
|
|
|
25
25
|
return findTargetElement(tag, nextChildren);
|
|
26
26
|
}
|
|
27
27
|
export function Html(props) {
|
|
28
|
-
const { children } = props;
|
|
28
|
+
const { children, ...rest } = props;
|
|
29
29
|
const hasSetHead = Boolean(findTargetChild("Head", children));
|
|
30
30
|
const hasSetScripts = Boolean(findTargetElement("Scripts", children));
|
|
31
31
|
const hasSetLinks = Boolean(findTargetElement("Links", children));
|
|
@@ -58,6 +58,7 @@ export function Html(props) {
|
|
|
58
58
|
});
|
|
59
59
|
}
|
|
60
60
|
return /* @__PURE__ */ _jsx("html", {
|
|
61
|
+
...rest,
|
|
61
62
|
children: /* @__PURE__ */ _jsxs(DocumentStructureContext.Provider, {
|
|
62
63
|
value: {
|
|
63
64
|
hasSetHead,
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { DOCUMENT_STYLE_PLACEHOLDER_START, DOCUMENT_STYLE_PLACEHOLDER_END } from "./constants";
|
|
3
|
+
export function Style(props) {
|
|
4
|
+
const { content, children } = props;
|
|
5
|
+
const contentStr = children || content;
|
|
6
|
+
const contentIIFE = encodeURIComponent(`(${contentStr})()`);
|
|
7
|
+
return /* @__PURE__ */ _jsxs(_Fragment, {
|
|
8
|
+
children: [
|
|
9
|
+
`${DOCUMENT_STYLE_PLACEHOLDER_START}`,
|
|
10
|
+
`${contentIIFE}`,
|
|
11
|
+
`${DOCUMENT_STYLE_PLACEHOLDER_END}`
|
|
12
|
+
]
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -4,7 +4,7 @@ import ReactDomServer from "react-dom/server";
|
|
|
4
4
|
import { build } from "esbuild";
|
|
5
5
|
import { createDebugger, findExists, fs } from "@modern-js/utils";
|
|
6
6
|
import { DocumentContext } from "../DocumentContext";
|
|
7
|
-
import { DOCUMENT_SCRIPTS_PLACEHOLDER, DOCUMENT_LINKS_PLACEHOLDER, DOCUMENT_FILE_NAME, DOCUMENT_META_PLACEHOLDER, PLACEHOLDER_REPLACER_MAP, DOC_EXT, DOCUMENT_SSR_PLACEHOLDER, DOCUMENT_CHUNKSMAP_PLACEHOLDER, DOCUMENT_SSRDATASCRIPT_PLACEHOLDER, DOCUMENT_SCRIPT_PLACEHOLDER_START, DOCUMENT_SCRIPT_PLACEHOLDER_END, HTML_SEPARATOR, DOCUMENT_COMMENT_PLACEHOLDER_START, DOCUMENT_COMMENT_PLACEHOLDER_END } from "../constants";
|
|
7
|
+
import { DOCUMENT_SCRIPTS_PLACEHOLDER, DOCUMENT_LINKS_PLACEHOLDER, DOCUMENT_FILE_NAME, DOCUMENT_META_PLACEHOLDER, PLACEHOLDER_REPLACER_MAP, DOC_EXT, DOCUMENT_SSR_PLACEHOLDER, DOCUMENT_CHUNKSMAP_PLACEHOLDER, DOCUMENT_SSRDATASCRIPT_PLACEHOLDER, DOCUMENT_SCRIPT_PLACEHOLDER_START, DOCUMENT_SCRIPT_PLACEHOLDER_END, HTML_SEPARATOR, DOCUMENT_COMMENT_PLACEHOLDER_START, DOCUMENT_COMMENT_PLACEHOLDER_END, DOCUMENT_STYLE_PLACEHOLDER_START, DOCUMENT_STYLE_PLACEHOLDER_END } from "../constants";
|
|
8
8
|
const debug = createDebugger("html_genarate");
|
|
9
9
|
export const getDocumenByEntryName = function(entrypoints, entryName, fallbackDir) {
|
|
10
10
|
var _entrypoints_find;
|
|
@@ -126,6 +126,9 @@ export default () => {
|
|
|
126
126
|
const nonceAttr = nonce ? `nonce=${nonce}` : "";
|
|
127
127
|
html = html.replace(new RegExp(`${DOCUMENT_SCRIPT_PLACEHOLDER_START}(.*?)${DOCUMENT_SCRIPT_PLACEHOLDER_END}`, "g"), (_scriptStr, $1) => `<script ${nonceAttr}>${decodeURIComponent($1)}</script>`);
|
|
128
128
|
}
|
|
129
|
+
if (html.includes(DOCUMENT_STYLE_PLACEHOLDER_START) && html.includes(DOCUMENT_STYLE_PLACEHOLDER_END)) {
|
|
130
|
+
html = html.replace(new RegExp(`${DOCUMENT_STYLE_PLACEHOLDER_START}(.*?)${DOCUMENT_STYLE_PLACEHOLDER_END}`, "g"), (_styleStr, $1) => `<style>${decodeURIComponent($1)}</style>`);
|
|
131
|
+
}
|
|
129
132
|
if (html.includes(DOCUMENT_COMMENT_PLACEHOLDER_START) && html.includes(DOCUMENT_COMMENT_PLACEHOLDER_END)) {
|
|
130
133
|
html = html.replace(new RegExp(`${DOCUMENT_COMMENT_PLACEHOLDER_START}(.*?)${DOCUMENT_COMMENT_PLACEHOLDER_END}`, "g"), (_scriptStr, $1) => `${decodeURIComponent($1)}`);
|
|
131
134
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { HTML_CHUNKSMAP_SEPARATOR } from "@modern-js/utils/universal/constants";
|
|
1
2
|
export const DOC_EXT = [
|
|
2
3
|
"jsx",
|
|
3
4
|
"tsx",
|
|
@@ -6,7 +7,6 @@ export const DOC_EXT = [
|
|
|
6
7
|
];
|
|
7
8
|
export const DOCUMENT_META_PLACEHOLDER = encodeURIComponent("<%= meta %>");
|
|
8
9
|
export const HTML_SEPARATOR = "<!--<?- html ?>-->";
|
|
9
|
-
export const HTML_CHUNKSMAP_SEPARATOR = "<!--<?- chunksMap.js ?>-->";
|
|
10
10
|
export const HTML_SSRDATASCRIPT_SEPARATOR = "<!--<?- SSRDataScript ?>-->";
|
|
11
11
|
export const DOCUMENT_SSR_PLACEHOLDER = encodeURIComponent(HTML_SEPARATOR);
|
|
12
12
|
export const DOCUMENT_CHUNKSMAP_PLACEHOLDER = encodeURIComponent(HTML_CHUNKSMAP_SEPARATOR);
|
|
@@ -17,6 +17,8 @@ export const DOCUMENT_LINKS_PLACEHOLDER = encodeURIComponent("<!-- chunk links p
|
|
|
17
17
|
export const DOCUMENT_NO_SCRIPTE_PLACEHOLDER = encodeURIComponent("<!-- no-script -->");
|
|
18
18
|
export const DOCUMENT_SCRIPT_PLACEHOLDER_START = encodeURIComponent("<!-- script-start -->");
|
|
19
19
|
export const DOCUMENT_SCRIPT_PLACEHOLDER_END = encodeURIComponent("<!-- script-end -->");
|
|
20
|
+
export const DOCUMENT_STYLE_PLACEHOLDER_START = encodeURIComponent("<!-- style-start -->");
|
|
21
|
+
export const DOCUMENT_STYLE_PLACEHOLDER_END = encodeURIComponent("<!-- style-end -->");
|
|
20
22
|
export const DOCUMENT_COMMENT_PLACEHOLDER_START = encodeURIComponent("<!-- comment-start -->");
|
|
21
23
|
export const DOCUMENT_COMMENT_PLACEHOLDER_END = encodeURIComponent("<!-- comment-end -->");
|
|
22
24
|
export const PLACEHOLDER_REPLACER_MAP = {
|
|
@@ -7,7 +7,7 @@ import { serializeErrors } from "./utils";
|
|
|
7
7
|
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}}))};`;
|
|
8
8
|
const resolveFnStr = `function r(e,r,o,A){A?_ROUTER_DATA.r[e][r].reject(A):_ROUTER_DATA.r[e][r].resolve(o)};`;
|
|
9
9
|
const preResolvedFnStr = `function p(e,r){return void 0!==r?Promise.reject(new Error(r.message)):Promise.resolve(e)};`;
|
|
10
|
-
const DeferredDataScripts = () => {
|
|
10
|
+
const DeferredDataScripts = (props) => {
|
|
11
11
|
const context = useContext(DataRouterContext);
|
|
12
12
|
const { staticContext } = context || {};
|
|
13
13
|
const hydratedRef = useRef(false);
|
|
@@ -36,6 +36,7 @@ const DeferredDataScripts = () => {
|
|
|
36
36
|
const deferredKeyPromiseStr = deferredKeys.map((key) => {
|
|
37
37
|
if (pendingKeys.has(key)) {
|
|
38
38
|
deferredDataScripts.push(/* @__PURE__ */ _jsx(DeferredDataScript, {
|
|
39
|
+
nonce: props === null || props === void 0 ? void 0 : props.nonce,
|
|
39
40
|
data: deferredData.data[key],
|
|
40
41
|
dataKey: key,
|
|
41
42
|
routeId
|
|
@@ -71,6 +72,7 @@ const DeferredDataScripts = () => {
|
|
|
71
72
|
children: [
|
|
72
73
|
!hydratedRef.current && /* @__PURE__ */ _jsx("script", {
|
|
73
74
|
async: true,
|
|
75
|
+
nonce: props === null || props === void 0 ? void 0 : props.nonce,
|
|
74
76
|
suppressHydrationWarning: true,
|
|
75
77
|
dangerouslySetInnerHTML: {
|
|
76
78
|
__html: deferredScripts[0]
|
|
@@ -81,16 +83,18 @@ const DeferredDataScripts = () => {
|
|
|
81
83
|
]
|
|
82
84
|
});
|
|
83
85
|
};
|
|
84
|
-
const DeferredDataScript = ({ data, routeId, dataKey }) => {
|
|
86
|
+
const DeferredDataScript = ({ data, routeId, dataKey, nonce }) => {
|
|
85
87
|
return /* @__PURE__ */ _jsx(Suspense, {
|
|
86
88
|
children: typeof document === "undefined" && data && dataKey && routeId ? /* @__PURE__ */ _jsx(Await, {
|
|
87
89
|
resolve: data,
|
|
88
90
|
errorElement: /* @__PURE__ */ _jsx(ErrorDeferredDataScript, {
|
|
89
91
|
routeId,
|
|
90
|
-
dataKey
|
|
92
|
+
dataKey,
|
|
93
|
+
nonce
|
|
91
94
|
}),
|
|
92
95
|
children: (data2) => /* @__PURE__ */ _jsx("script", {
|
|
93
96
|
async: true,
|
|
97
|
+
nonce,
|
|
94
98
|
suppressHydrationWarning: true,
|
|
95
99
|
dangerouslySetInnerHTML: {
|
|
96
100
|
__html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(dataKey)}, ${serializeJson(data2)});`
|
|
@@ -99,9 +103,10 @@ const DeferredDataScript = ({ data, routeId, dataKey }) => {
|
|
|
99
103
|
}) : null
|
|
100
104
|
});
|
|
101
105
|
};
|
|
102
|
-
const ErrorDeferredDataScript = ({ routeId, dataKey }) => {
|
|
106
|
+
const ErrorDeferredDataScript = ({ routeId, dataKey, nonce }) => {
|
|
103
107
|
const error = useAsyncError();
|
|
104
108
|
return /* @__PURE__ */ _jsx("script", {
|
|
109
|
+
nonce,
|
|
105
110
|
suppressHydrationWarning: true,
|
|
106
111
|
dangerouslySetInnerHTML: {
|
|
107
112
|
__html: `_ROUTER_DATA.r(${JSON.stringify(routeId)}, ${JSON.stringify(dataKey)}, ${void 0}, ${serializeJson({
|
|
@@ -78,7 +78,22 @@ export const routerPlugin = ({ serverBase = [], supportHtml5History = true, base
|
|
|
78
78
|
hydrationData
|
|
79
79
|
});
|
|
80
80
|
const runtimeContext = useContext(RuntimeReactContext);
|
|
81
|
-
runtimeContext
|
|
81
|
+
Object.defineProperty(runtimeContext, "remixRouter", {
|
|
82
|
+
get() {
|
|
83
|
+
return router;
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
const originSubscribe = router.subscribe;
|
|
87
|
+
router.subscribe = (listener) => {
|
|
88
|
+
const wrapedListener = (...args) => {
|
|
89
|
+
const blockRoute = runtimeContext.unstable_blockRoute;
|
|
90
|
+
if (blockRoute) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
return listener(...args);
|
|
94
|
+
};
|
|
95
|
+
return originSubscribe(wrapedListener);
|
|
96
|
+
};
|
|
82
97
|
return /* @__PURE__ */ _jsx(App, {
|
|
83
98
|
...props,
|
|
84
99
|
children: /* @__PURE__ */ _jsx(RouterProvider, {
|