@modern-js/runtime 2.49.2 → 2.49.3-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.
Files changed (242) hide show
  1. package/dist/cjs/router/runtime/plugin.js +2 -2
  2. package/dist/cjs/router/runtime/plugin.node.js +2 -2
  3. package/dist/cjs/ssr/serverRender/renderToStream/bulidTemplate.before.js +7 -15
  4. package/dist/esm/router/runtime/plugin.js +2 -2
  5. package/dist/esm/router/runtime/plugin.node.js +2 -2
  6. package/dist/esm/ssr/serverRender/renderToStream/bulidTemplate.before.js +115 -132
  7. package/dist/esm-node/router/runtime/plugin.js +2 -2
  8. package/dist/esm-node/router/runtime/plugin.node.js +2 -2
  9. package/dist/esm-node/ssr/serverRender/renderToStream/bulidTemplate.before.js +8 -16
  10. package/dist/js/modern/cli/index.js +72 -0
  11. package/dist/js/modern/common.js +4 -0
  12. package/dist/js/modern/config.js +0 -0
  13. package/dist/js/modern/core/app-config.js +10 -0
  14. package/dist/js/modern/core/compatible.js +285 -0
  15. package/dist/js/modern/core/index.js +16 -0
  16. package/dist/js/modern/core/loader/index.js +4 -0
  17. package/dist/js/modern/core/loader/loaderManager.js +165 -0
  18. package/dist/js/modern/core/loader/useLoader.js +114 -0
  19. package/dist/js/modern/core/plugin.js +58 -0
  20. package/dist/js/modern/document/Body.js +23 -0
  21. package/dist/js/modern/document/DocumentContext.js +9 -0
  22. package/dist/js/modern/document/DocumentStructrueContext.js +11 -0
  23. package/dist/js/modern/document/Head.js +27 -0
  24. package/dist/js/modern/document/Html.js +78 -0
  25. package/dist/js/modern/document/Links.js +10 -0
  26. package/dist/js/modern/document/Root.js +33 -0
  27. package/dist/js/modern/document/Script.js +20 -0
  28. package/dist/js/modern/document/Scripts.js +10 -0
  29. package/dist/js/modern/document/cli/index.js +228 -0
  30. package/dist/js/modern/document/constants.js +49 -0
  31. package/dist/js/modern/document/index.js +10 -0
  32. package/dist/js/modern/exports/head.js +6 -0
  33. package/dist/js/modern/exports/loadable.js +6 -0
  34. package/dist/js/modern/exports/server.js +4 -0
  35. package/dist/js/modern/exports/styled.js +6 -0
  36. package/dist/js/modern/index.js +22 -0
  37. package/dist/js/modern/router/cli/index.js +120 -0
  38. package/dist/js/modern/router/index.js +7 -0
  39. package/dist/js/modern/router/runtime/DefaultNotFound.js +14 -0
  40. package/dist/js/modern/router/runtime/index.js +9 -0
  41. package/dist/js/modern/router/runtime/plugin.js +104 -0
  42. package/dist/js/modern/router/runtime/plugin.node.js +149 -0
  43. package/dist/js/modern/router/runtime/server.js +1 -0
  44. package/dist/js/modern/router/runtime/types.js +0 -0
  45. package/dist/js/modern/router/runtime/utils.js +196 -0
  46. package/dist/js/modern/router/runtime/withRouter.js +36 -0
  47. package/dist/js/modern/runtime-context.js +7 -0
  48. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
  49. package/dist/js/modern/ssr/cli/index.js +172 -0
  50. package/dist/js/modern/ssr/index.js +159 -0
  51. package/dist/js/modern/ssr/index.node.js +79 -0
  52. package/dist/js/modern/ssr/prefetch.js +69 -0
  53. package/dist/js/modern/ssr/react/index.js +6 -0
  54. package/dist/js/modern/ssr/react/nossr/index.js +14 -0
  55. package/dist/js/modern/ssr/react/prerender/index.js +108 -0
  56. package/dist/js/modern/ssr/react/prerender/type.js +0 -0
  57. package/dist/js/modern/ssr/react/prerender/util.js +96 -0
  58. package/dist/js/modern/ssr/react/withCallback/index.js +15 -0
  59. package/dist/js/modern/ssr/serverRender/helmet.js +44 -0
  60. package/dist/js/modern/ssr/serverRender/index.js +35 -0
  61. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +36 -0
  62. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -0
  63. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +61 -0
  64. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +58 -0
  65. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +24 -0
  66. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +94 -0
  67. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +12 -0
  68. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +22 -0
  69. package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
  70. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +171 -0
  71. package/dist/js/modern/ssr/serverRender/renderToString/index.js +52 -0
  72. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +48 -0
  73. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +8 -0
  74. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +11 -0
  75. package/dist/js/modern/ssr/serverRender/renderToString/template.js +58 -0
  76. package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -0
  77. package/dist/js/modern/ssr/serverRender/types.js +4 -0
  78. package/dist/js/modern/ssr/serverRender/utils.js +22 -0
  79. package/dist/js/modern/ssr/utils.js +81 -0
  80. package/dist/js/modern/state/cli/index.js +83 -0
  81. package/dist/js/modern/state/index.js +7 -0
  82. package/dist/js/modern/state/plugins.js +13 -0
  83. package/dist/js/modern/state/runtime/index.js +9 -0
  84. package/dist/js/modern/state/runtime/plugin.js +97 -0
  85. package/dist/js/modern/state/types.js +0 -0
  86. package/dist/js/node/cli/index.js +99 -0
  87. package/dist/js/node/common.js +27 -0
  88. package/dist/js/node/config.js +15 -0
  89. package/dist/js/node/core/app-config.js +34 -0
  90. package/dist/js/node/core/compatible.js +312 -0
  91. package/dist/js/node/core/index.js +47 -0
  92. package/dist/js/node/core/loader/index.js +33 -0
  93. package/dist/js/node/core/loader/loaderManager.js +195 -0
  94. package/dist/js/node/core/loader/useLoader.js +132 -0
  95. package/dist/js/node/core/plugin.js +80 -0
  96. package/dist/js/node/document/Body.js +43 -0
  97. package/dist/js/node/document/DocumentContext.js +38 -0
  98. package/dist/js/node/document/DocumentStructrueContext.js +40 -0
  99. package/dist/js/node/document/Head.js +51 -0
  100. package/dist/js/node/document/Html.js +101 -0
  101. package/dist/js/node/document/Links.js +33 -0
  102. package/dist/js/node/document/Root.js +57 -0
  103. package/dist/js/node/document/Script.js +40 -0
  104. package/dist/js/node/document/Scripts.js +33 -0
  105. package/dist/js/node/document/cli/index.js +240 -0
  106. package/dist/js/node/document/constants.js +86 -0
  107. package/dist/js/node/document/index.js +26 -0
  108. package/dist/js/node/exports/head.js +34 -0
  109. package/dist/js/node/exports/loadable.js +34 -0
  110. package/dist/js/node/exports/server.js +27 -0
  111. package/dist/js/node/exports/styled.js +34 -0
  112. package/dist/js/node/index.js +44 -0
  113. package/dist/js/node/router/cli/index.js +135 -0
  114. package/dist/js/node/router/index.js +37 -0
  115. package/dist/js/node/router/runtime/DefaultNotFound.js +37 -0
  116. package/dist/js/node/router/runtime/index.js +33 -0
  117. package/dist/js/node/router/runtime/plugin.js +127 -0
  118. package/dist/js/node/router/runtime/plugin.node.js +175 -0
  119. package/dist/js/node/router/runtime/server.js +17 -0
  120. package/dist/js/node/router/runtime/types.js +15 -0
  121. package/dist/js/node/router/runtime/utils.js +221 -0
  122. package/dist/js/node/router/runtime/withRouter.js +57 -0
  123. package/dist/js/node/runtime-context.js +31 -0
  124. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
  125. package/dist/js/node/ssr/cli/index.js +190 -0
  126. package/dist/js/node/ssr/index.js +185 -0
  127. package/dist/js/node/ssr/index.node.js +107 -0
  128. package/dist/js/node/ssr/prefetch.js +90 -0
  129. package/dist/js/node/ssr/react/index.js +30 -0
  130. package/dist/js/node/ssr/react/nossr/index.js +43 -0
  131. package/dist/js/node/ssr/react/prerender/index.js +130 -0
  132. package/dist/js/node/ssr/react/prerender/type.js +15 -0
  133. package/dist/js/node/ssr/react/prerender/util.js +123 -0
  134. package/dist/js/node/ssr/react/withCallback/index.js +38 -0
  135. package/dist/js/node/ssr/serverRender/helmet.js +65 -0
  136. package/dist/js/node/ssr/serverRender/index.js +56 -0
  137. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +65 -0
  138. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +35 -0
  139. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +87 -0
  140. package/dist/js/node/ssr/serverRender/renderToStream/index.js +87 -0
  141. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +47 -0
  142. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +111 -0
  143. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +35 -0
  144. package/dist/js/node/ssr/serverRender/renderToStream/template.js +45 -0
  145. package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
  146. package/dist/js/node/ssr/serverRender/renderToString/entry.js +196 -0
  147. package/dist/js/node/ssr/serverRender/renderToString/index.js +81 -0
  148. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +71 -0
  149. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +31 -0
  150. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +34 -0
  151. package/dist/js/node/ssr/serverRender/renderToString/template.js +82 -0
  152. package/dist/js/node/ssr/serverRender/renderToString/type.js +32 -0
  153. package/dist/js/node/ssr/serverRender/types.js +27 -0
  154. package/dist/js/node/ssr/serverRender/utils.js +46 -0
  155. package/dist/js/node/ssr/utils.js +106 -0
  156. package/dist/js/node/state/cli/index.js +100 -0
  157. package/dist/js/node/state/index.js +37 -0
  158. package/dist/js/node/state/plugins.js +45 -0
  159. package/dist/js/node/state/runtime/index.js +40 -0
  160. package/dist/js/node/state/runtime/plugin.js +121 -0
  161. package/dist/js/node/state/types.js +15 -0
  162. package/dist/js/treeshaking/cli/index.js +186 -0
  163. package/dist/js/treeshaking/common.js +4 -0
  164. package/dist/js/treeshaking/config.js +1 -0
  165. package/dist/js/treeshaking/core/app-config.js +9 -0
  166. package/dist/js/treeshaking/core/compatible.js +485 -0
  167. package/dist/js/treeshaking/core/index.js +7 -0
  168. package/dist/js/treeshaking/core/loader/index.js +2 -0
  169. package/dist/js/treeshaking/core/loader/loaderManager.js +406 -0
  170. package/dist/js/treeshaking/core/loader/useLoader.js +188 -0
  171. package/dist/js/treeshaking/core/plugin.js +176 -0
  172. package/dist/js/treeshaking/document/Body.js +18 -0
  173. package/dist/js/treeshaking/document/DocumentContext.js +7 -0
  174. package/dist/js/treeshaking/document/DocumentStructrueContext.js +9 -0
  175. package/dist/js/treeshaking/document/Head.js +24 -0
  176. package/dist/js/treeshaking/document/Html.js +99 -0
  177. package/dist/js/treeshaking/document/Links.js +8 -0
  178. package/dist/js/treeshaking/document/Root.js +26 -0
  179. package/dist/js/treeshaking/document/Script.js +15 -0
  180. package/dist/js/treeshaking/document/Scripts.js +8 -0
  181. package/dist/js/treeshaking/document/cli/index.js +393 -0
  182. package/dist/js/treeshaking/document/constants.js +35 -0
  183. package/dist/js/treeshaking/document/index.js +10 -0
  184. package/dist/js/treeshaking/exports/head.js +4 -0
  185. package/dist/js/treeshaking/exports/loadable.js +4 -0
  186. package/dist/js/treeshaking/exports/server.js +4 -0
  187. package/dist/js/treeshaking/exports/styled.js +4 -0
  188. package/dist/js/treeshaking/index.js +3 -0
  189. package/dist/js/treeshaking/router/cli/index.js +148 -0
  190. package/dist/js/treeshaking/router/index.js +4 -0
  191. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -0
  192. package/dist/js/treeshaking/router/runtime/index.js +6 -0
  193. package/dist/js/treeshaking/router/runtime/plugin.js +132 -0
  194. package/dist/js/treeshaking/router/runtime/plugin.node.js +390 -0
  195. package/dist/js/treeshaking/router/runtime/server.js +1 -0
  196. package/dist/js/treeshaking/router/runtime/types.js +1 -0
  197. package/dist/js/treeshaking/router/runtime/utils.js +260 -0
  198. package/dist/js/treeshaking/router/runtime/withRouter.js +67 -0
  199. package/dist/js/treeshaking/runtime-context.js +4 -0
  200. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
  201. package/dist/js/treeshaking/ssr/cli/index.js +217 -0
  202. package/dist/js/treeshaking/ssr/index.js +315 -0
  203. package/dist/js/treeshaking/ssr/index.node.js +240 -0
  204. package/dist/js/treeshaking/ssr/prefetch.js +199 -0
  205. package/dist/js/treeshaking/ssr/react/index.js +3 -0
  206. package/dist/js/treeshaking/ssr/react/nossr/index.js +58 -0
  207. package/dist/js/treeshaking/ssr/react/prerender/index.js +237 -0
  208. package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
  209. package/dist/js/treeshaking/ssr/react/prerender/util.js +108 -0
  210. package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -0
  211. package/dist/js/treeshaking/ssr/serverRender/helmet.js +42 -0
  212. package/dist/js/treeshaking/ssr/serverRender/index.js +169 -0
  213. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +34 -0
  214. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -0
  215. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +115 -0
  216. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +165 -0
  217. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +22 -0
  218. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +119 -0
  219. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -0
  220. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +63 -0
  221. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
  222. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +393 -0
  223. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +165 -0
  224. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +56 -0
  225. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +10 -0
  226. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -0
  227. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +156 -0
  228. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -0
  229. package/dist/js/treeshaking/ssr/serverRender/types.js +2 -0
  230. package/dist/js/treeshaking/ssr/serverRender/utils.js +69 -0
  231. package/dist/js/treeshaking/ssr/utils.js +134 -0
  232. package/dist/js/treeshaking/state/cli/index.js +71 -0
  233. package/dist/js/treeshaking/state/index.js +4 -0
  234. package/dist/js/treeshaking/state/plugins.js +14 -0
  235. package/dist/js/treeshaking/state/runtime/index.js +5 -0
  236. package/dist/js/treeshaking/state/runtime/plugin.js +198 -0
  237. package/dist/js/treeshaking/state/types.js +1 -0
  238. package/dist/types/document/Html.d.ts +2 -2
  239. package/dist/types/router/runtime/plugin.d.ts +1 -1
  240. package/dist/types/router/runtime/plugin.node.d.ts +1 -1
  241. package/dist/types/router/runtime/types.d.ts +1 -0
  242. package/package.json +4 -4
@@ -0,0 +1,27 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useContext } from "react";
3
+ import { DocumentStructrueContext } from "./DocumentStructrueContext";
4
+ import { Scripts } from "./Scripts";
5
+ import { Links } from "./Links";
6
+ import { DOCUMENT_META_PLACEHOLDER } from "./constants";
7
+ function Head(props) {
8
+ const { hasSetScripts, hasSetLinks } = useContext(DocumentStructrueContext);
9
+ const { children } = props;
10
+ return /* @__PURE__ */ jsxs("head", {
11
+ children: [
12
+ `${DOCUMENT_META_PLACEHOLDER}`,
13
+ !hasSetLinks && /* @__PURE__ */ jsx(Links, {}),
14
+ !hasSetScripts && /* @__PURE__ */ jsx(Scripts, {}),
15
+ children
16
+ ]
17
+ });
18
+ }
19
+ function DefaultHead() {
20
+ return /* @__PURE__ */ jsx("head", {
21
+ children: `${DOCUMENT_META_PLACEHOLDER}`
22
+ });
23
+ }
24
+ export {
25
+ DefaultHead,
26
+ Head
27
+ };
@@ -0,0 +1,78 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Body } from "./Body";
3
+ import { DocumentStructrueContext } from "./DocumentStructrueContext";
4
+ import { Head } from "./Head";
5
+ function findTargetChild(tag, children) {
6
+ return children.find((item) => getEleType(item) === tag);
7
+ }
8
+ function getEleType(ele) {
9
+ return typeof (ele == null ? void 0 : ele.type) === "function" ? ele.type.name : ele == null ? void 0 : ele.type;
10
+ }
11
+ function findTargetElement(tag, children) {
12
+ var _a;
13
+ if (children.length === 0) {
14
+ return null;
15
+ }
16
+ let nextChildren = [];
17
+ for (const item of children) {
18
+ if (tag === getEleType(item)) {
19
+ return item;
20
+ }
21
+ if ((_a = item == null ? void 0 : item.props) == null ? void 0 : _a.children) {
22
+ nextChildren = nextChildren.concat(item.props.children);
23
+ }
24
+ }
25
+ return findTargetElement(tag, nextChildren);
26
+ }
27
+ function Html(props) {
28
+ const { children } = props;
29
+ const hasSetHead = Boolean(findTargetChild("Head", children));
30
+ const hasSetScripts = Boolean(findTargetElement("Scripts", children));
31
+ const hasSetLinks = Boolean(findTargetElement("Links", children));
32
+ const hasSetBody = Boolean(findTargetChild("Body", children));
33
+ const hasSetRoot = Boolean(findTargetElement("Root", children));
34
+ const notMissMustChild = [
35
+ hasSetHead,
36
+ hasSetBody
37
+ ].every((item) => item);
38
+ if (!notMissMustChild) {
39
+ return /* @__PURE__ */ jsx("html", {
40
+ children: /* @__PURE__ */ jsxs("body", {
41
+ style: { color: "red" },
42
+ children: [
43
+ `Miss the `,
44
+ [
45
+ hasSetHead,
46
+ hasSetBody
47
+ ].map((item, index) => {
48
+ return item ? null : [
49
+ "Head",
50
+ "Body"
51
+ ][index];
52
+ }),
53
+ ` Element`
54
+ ]
55
+ })
56
+ });
57
+ }
58
+ return /* @__PURE__ */ jsx("html", {
59
+ children: /* @__PURE__ */ jsxs(DocumentStructrueContext.Provider, {
60
+ value: {
61
+ hasSetHead,
62
+ hasSetScripts,
63
+ hasSetLinks,
64
+ hasSetRoot,
65
+ hasSetBody,
66
+ docChild: children
67
+ },
68
+ children: [
69
+ !hasSetHead && /* @__PURE__ */ jsx(Head, {}),
70
+ !hasSetBody && /* @__PURE__ */ jsx(Body, {}),
71
+ children
72
+ ]
73
+ })
74
+ });
75
+ }
76
+ export {
77
+ Html
78
+ };
@@ -0,0 +1,10 @@
1
+ import { Fragment, jsx } from "react/jsx-runtime";
2
+ import { DOCUMENT_LINKS_PLACEHOLDER } from "./constants";
3
+ function Links() {
4
+ return /* @__PURE__ */ jsx(Fragment, {
5
+ children: DOCUMENT_LINKS_PLACEHOLDER
6
+ });
7
+ }
8
+ export {
9
+ Links
10
+ };
@@ -0,0 +1,33 @@
1
+ import { jsxs } from "react/jsx-runtime";
2
+ import { useContext } from "react";
3
+ import { DocumentContext } from "./DocumentContext";
4
+ import { DOCUMENT_SSR_PLACEHOLDER } from "./constants";
5
+ function Root(props) {
6
+ const { rootId, children } = props;
7
+ const {
8
+ templateParams: { mountId = "root" }
9
+ } = useContext(DocumentContext);
10
+ return /* @__PURE__ */ jsxs("div", {
11
+ id: `${rootId || mountId}`,
12
+ children: [
13
+ `${DOCUMENT_SSR_PLACEHOLDER}`,
14
+ children
15
+ ]
16
+ });
17
+ }
18
+ function DefaultRoot(props) {
19
+ const {
20
+ templateParams: { mountId = "root" }
21
+ } = useContext(DocumentContext);
22
+ return /* @__PURE__ */ jsxs("div", {
23
+ id: `${mountId}`,
24
+ children: [
25
+ `${DOCUMENT_SSR_PLACEHOLDER}`,
26
+ props.children
27
+ ]
28
+ });
29
+ }
30
+ export {
31
+ DefaultRoot,
32
+ Root
33
+ };
@@ -0,0 +1,20 @@
1
+ import { Fragment, jsxs } from "react/jsx-runtime";
2
+ import {
3
+ DOCUMENT_SCRIPT_PLACEHOLDER_START,
4
+ DOCUMENT_SCRIPT_PLACEHOLDER_END
5
+ } from "./constants";
6
+ function Script(props) {
7
+ const { content } = props;
8
+ const contentStr = content.toString();
9
+ const contentIIFE = encodeURIComponent(`(${contentStr})()`);
10
+ return /* @__PURE__ */ jsxs(Fragment, {
11
+ children: [
12
+ `${DOCUMENT_SCRIPT_PLACEHOLDER_START}`,
13
+ `${contentIIFE}`,
14
+ `${DOCUMENT_SCRIPT_PLACEHOLDER_END}`
15
+ ]
16
+ });
17
+ }
18
+ export {
19
+ Script
20
+ };
@@ -0,0 +1,10 @@
1
+ import { Fragment, jsx } from "react/jsx-runtime";
2
+ import { DOCUMENT_SCRIPTS_PLACEHOLDER } from "./constants";
3
+ function Scripts() {
4
+ return /* @__PURE__ */ jsx(Fragment, {
5
+ children: `${DOCUMENT_SCRIPTS_PLACEHOLDER}`
6
+ });
7
+ }
8
+ export {
9
+ Scripts
10
+ };
@@ -0,0 +1,228 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ var __async = (__this, __arguments, generator) => {
18
+ return new Promise((resolve, reject) => {
19
+ var fulfilled = (value) => {
20
+ try {
21
+ step(generator.next(value));
22
+ } catch (e) {
23
+ reject(e);
24
+ }
25
+ };
26
+ var rejected = (value) => {
27
+ try {
28
+ step(generator.throw(value));
29
+ } catch (e) {
30
+ reject(e);
31
+ }
32
+ };
33
+ var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
34
+ step((generator = generator.apply(__this, __arguments)).next());
35
+ });
36
+ };
37
+ import path from "path";
38
+ import React from "react";
39
+ import ReactDomServer from "react-dom/server";
40
+ import { build } from "esbuild";
41
+ import { createDebugger, findExists, fs } from "@modern-js/utils";
42
+ import { DocumentContext } from "../DocumentContext";
43
+ import {
44
+ DOCUMENT_SCRIPTS_PLACEHOLDER,
45
+ DOCUMENT_LINKS_PLACEHOLDER,
46
+ DOCUMENT_FILE_NAME,
47
+ DOCUMENT_META_PLACEHOLDER,
48
+ PLACEHOLDER_REPLACER_MAP,
49
+ DOC_EXT,
50
+ DOCUMENT_SSR_PLACEHOLDER,
51
+ DOCUMENT_CHUNKSMAP_PLACEHOLDER,
52
+ DOCUMENT_SSRDATASCRIPT_PLACEHOLDER,
53
+ DOCUMENT_SCRIPT_PLACEHOLDER_START,
54
+ DOCUMENT_SCRIPT_PLACEHOLDER_END,
55
+ HTML_SEPARATOR
56
+ } from "../constants";
57
+ const debug = createDebugger("html_genarate");
58
+ const getDocumenByEntryName = function(entrypoints, entryName, fallbackDir) {
59
+ var _a;
60
+ const entryDir = (_a = entrypoints.find(
61
+ (item) => item.entryName === entryName
62
+ )) == null ? void 0 : _a.absoluteEntryDir;
63
+ const entryDirs = DOC_EXT.map(
64
+ (item) => `${entryDir}${path.sep}${DOCUMENT_FILE_NAME}.${item}`
65
+ );
66
+ const fallbackDirs = fallbackDir ? DOC_EXT.map(
67
+ (item) => [fallbackDir, "src", `${DOCUMENT_FILE_NAME}.${item}`].join(path.sep)
68
+ ) : [];
69
+ const docFile = findExists([...entryDirs, ...fallbackDirs]);
70
+ return docFile || void 0;
71
+ };
72
+ var cli_default = () => ({
73
+ name: "@modern-js/plugin-document",
74
+ pre: ["@modern-js/plugin-analyze"],
75
+ setup: (api) => __async(void 0, null, function* () {
76
+ function getDocParams(params) {
77
+ const { config, templateParameters, entryName } = params;
78
+ return {
79
+ processEnv: process.env,
80
+ config: {
81
+ output: config.output
82
+ },
83
+ entryName,
84
+ templateParams: templateParameters
85
+ };
86
+ }
87
+ const documentEntry = (entryName, templateParameters) => {
88
+ const { entrypoints, internalDirectory, appDirectory } = api.useAppContext();
89
+ const documentFilePath = getDocumenByEntryName(
90
+ entrypoints,
91
+ entryName,
92
+ appDirectory
93
+ );
94
+ if (!documentFilePath) {
95
+ return null;
96
+ }
97
+ return (_0) => __async(void 0, [_0], function* ({ htmlWebpackPlugin }) {
98
+ const documentParams = getDocParams({
99
+ config: api.useConfigContext(),
100
+ entryName,
101
+ templateParameters
102
+ });
103
+ const tempTsConfigFile = path.join(
104
+ internalDirectory,
105
+ `./document/_tempTsconfig.json`
106
+ );
107
+ const userTsConfigFilePath = path.join(appDirectory, "tsconfig.json");
108
+ let tsConfig;
109
+ try {
110
+ tsConfig = yield require(userTsConfigFilePath);
111
+ } catch (err) {
112
+ tsConfig = {};
113
+ }
114
+ if (tsConfig == null ? void 0 : tsConfig.compilerOptions) {
115
+ tsConfig.compilerOptions.jsx = "react-jsx";
116
+ } else {
117
+ tsConfig.compilerOptions = {
118
+ jsx: "react-jsx"
119
+ };
120
+ }
121
+ fs.outputFileSync(tempTsConfigFile, JSON.stringify(tsConfig));
122
+ const htmlOutputFile = path.join(
123
+ internalDirectory,
124
+ `./document/_${entryName}.html.js`
125
+ );
126
+ yield build({
127
+ entryPoints: [documentFilePath],
128
+ outfile: htmlOutputFile,
129
+ platform: "node",
130
+ tsconfig: tempTsConfigFile,
131
+ target: "es6",
132
+ loader: {
133
+ ".ts": "ts",
134
+ ".tsx": "tsx"
135
+ },
136
+ bundle: true,
137
+ plugins: [
138
+ {
139
+ name: "make-all-packages-external",
140
+ setup(build2) {
141
+ build2.onResolve(
142
+ { filter: /^[^./]|^\.[^./]|^\.\.[^/]/ },
143
+ (args) => {
144
+ let external = true;
145
+ if (args.kind === "entry-point") {
146
+ external = false;
147
+ }
148
+ return {
149
+ path: args.path,
150
+ external
151
+ };
152
+ }
153
+ );
154
+ }
155
+ }
156
+ ]
157
+ });
158
+ delete require.cache[require.resolve(htmlOutputFile)];
159
+ const Document = (yield require(htmlOutputFile)).default;
160
+ const HTMLElement = React.createElement(
161
+ DocumentContext.Provider,
162
+ { value: documentParams },
163
+ React.createElement(Document, null)
164
+ );
165
+ let html = ReactDomServer.renderToStaticMarkup(HTMLElement);
166
+ debug("entry %s's document jsx rendered html: %o", entryName, html);
167
+ const scripts = [
168
+ htmlWebpackPlugin.tags.headTags.filter((item) => item.tagName === "script").join(""),
169
+ htmlWebpackPlugin.tags.bodyTags.toString()
170
+ ].join("");
171
+ const links = [
172
+ htmlWebpackPlugin.tags.headTags.filter((item) => item.tagName === "link").join("")
173
+ ].join("");
174
+ const metas = [
175
+ templateParameters.meta,
176
+ htmlWebpackPlugin.tags.headTags.filter(
177
+ (item) => item.tagName !== "script" && item.tagName !== "link"
178
+ ).join("")
179
+ ].join("");
180
+ if (html.includes(DOCUMENT_SCRIPT_PLACEHOLDER_START) && html.includes(DOCUMENT_SCRIPT_PLACEHOLDER_END)) {
181
+ html = html.replaceAll(
182
+ new RegExp(
183
+ `${DOCUMENT_SCRIPT_PLACEHOLDER_START}(.*?)${DOCUMENT_SCRIPT_PLACEHOLDER_END}`,
184
+ "g"
185
+ ),
186
+ (_scriptStr, $1) => `<script>${decodeURIComponent($1)}<\/script>`
187
+ );
188
+ }
189
+ const finalHtml = `<!DOCTYPE html>${html}`.replace(DOCUMENT_META_PLACEHOLDER, metas).replace(DOCUMENT_SSR_PLACEHOLDER, HTML_SEPARATOR).replace(DOCUMENT_SCRIPTS_PLACEHOLDER, scripts).replace(DOCUMENT_LINKS_PLACEHOLDER, links).replace(
190
+ DOCUMENT_CHUNKSMAP_PLACEHOLDER,
191
+ PLACEHOLDER_REPLACER_MAP[DOCUMENT_CHUNKSMAP_PLACEHOLDER]
192
+ ).replace(
193
+ DOCUMENT_SSRDATASCRIPT_PLACEHOLDER,
194
+ PLACEHOLDER_REPLACER_MAP[DOCUMENT_SSRDATASCRIPT_PLACEHOLDER]
195
+ );
196
+ return finalHtml;
197
+ });
198
+ };
199
+ return {
200
+ config: () => {
201
+ return {
202
+ tools: {
203
+ htmlPlugin: (options, entry) => {
204
+ const hackParameters = typeof (options == null ? void 0 : options.templateParameters) === "function" ? options == null ? void 0 : options.templateParameters(
205
+ {},
206
+ {},
207
+ {},
208
+ {}
209
+ ) : __spreadValues({}, options == null ? void 0 : options.templateParameters);
210
+ const templateContent = documentEntry(
211
+ entry.entryName,
212
+ hackParameters
213
+ );
214
+ const documentHtmlOptions = templateContent ? {
215
+ templateContent,
216
+ inject: false
217
+ } : {};
218
+ return __spreadValues(__spreadValues({}, options), documentHtmlOptions);
219
+ }
220
+ }
221
+ };
222
+ }
223
+ };
224
+ })
225
+ });
226
+ export {
227
+ cli_default as default
228
+ };
@@ -0,0 +1,49 @@
1
+ const DOC_EXT = ["jsx", "tsx", "ts", "js"];
2
+ const DOCUMENT_META_PLACEHOLDER = encodeURIComponent("<%= meta %>");
3
+ const HTML_SEPARATOR = "<!--<?- html ?>-->";
4
+ const HTML_CHUNKSMAP_SEPARATOR = "<!--<?- chunksMap.js ?>-->";
5
+ const HTML_SSRDATASCRIPT_SEPARATOR = "<!--<?- SSRDataScript ?>-->";
6
+ const DOCUMENT_SSR_PLACEHOLDER = encodeURIComponent(HTML_SEPARATOR);
7
+ const DOCUMENT_CHUNKSMAP_PLACEHOLDER = encodeURIComponent(
8
+ HTML_CHUNKSMAP_SEPARATOR
9
+ );
10
+ const DOCUMENT_SSRDATASCRIPT_PLACEHOLDER = encodeURIComponent(
11
+ HTML_SSRDATASCRIPT_SEPARATOR
12
+ );
13
+ const DOCUMENT_FILE_NAME = "Document";
14
+ const DOCUMENT_SCRIPTS_PLACEHOLDER = encodeURIComponent(
15
+ "<!-- chunk scripts placeholder -->"
16
+ );
17
+ const DOCUMENT_LINKS_PLACEHOLDER = encodeURIComponent(
18
+ "<!-- chunk links placeholder -->"
19
+ );
20
+ const DOCUMENT_NO_SCRIPTE_PLACEHOLDER = encodeURIComponent("<!-- no-script -->");
21
+ const DOCUMENT_SCRIPT_PLACEHOLDER_START = encodeURIComponent(
22
+ "<!-- script-start -->"
23
+ );
24
+ const DOCUMENT_SCRIPT_PLACEHOLDER_END = encodeURIComponent(
25
+ "<!-- script-end -->"
26
+ );
27
+ const PLACEHOLDER_REPLACER_MAP = {
28
+ [DOCUMENT_NO_SCRIPTE_PLACEHOLDER]: `We're sorry but react app doesn't work properly without JavaScript enabled. Please enable it to continue.`,
29
+ [DOCUMENT_SSR_PLACEHOLDER]: HTML_SEPARATOR,
30
+ [DOCUMENT_CHUNKSMAP_PLACEHOLDER]: HTML_CHUNKSMAP_SEPARATOR,
31
+ [DOCUMENT_SSRDATASCRIPT_PLACEHOLDER]: HTML_SSRDATASCRIPT_SEPARATOR
32
+ };
33
+ export {
34
+ DOCUMENT_CHUNKSMAP_PLACEHOLDER,
35
+ DOCUMENT_FILE_NAME,
36
+ DOCUMENT_LINKS_PLACEHOLDER,
37
+ DOCUMENT_META_PLACEHOLDER,
38
+ DOCUMENT_NO_SCRIPTE_PLACEHOLDER,
39
+ DOCUMENT_SCRIPTS_PLACEHOLDER,
40
+ DOCUMENT_SCRIPT_PLACEHOLDER_END,
41
+ DOCUMENT_SCRIPT_PLACEHOLDER_START,
42
+ DOCUMENT_SSRDATASCRIPT_PLACEHOLDER,
43
+ DOCUMENT_SSR_PLACEHOLDER,
44
+ DOC_EXT,
45
+ HTML_CHUNKSMAP_SEPARATOR,
46
+ HTML_SEPARATOR,
47
+ HTML_SSRDATASCRIPT_SEPARATOR,
48
+ PLACEHOLDER_REPLACER_MAP
49
+ };
@@ -0,0 +1,10 @@
1
+ export * from "./Html";
2
+ export * from "./DocumentContext";
3
+ export * from "./DocumentStructrueContext";
4
+ export * from "./Head";
5
+ export * from "./Body";
6
+ export * from "./Root";
7
+ export * from "./Links";
8
+ export * from "./Scripts";
9
+ export * from "./Script";
10
+ export * from "./constants";
@@ -0,0 +1,6 @@
1
+ import head from "react-helmet";
2
+ var head_default = head;
3
+ export * from "react-helmet";
4
+ export {
5
+ head_default as default
6
+ };
@@ -0,0 +1,6 @@
1
+ import loadable from "@loadable/component";
2
+ var loadable_default = loadable;
3
+ export * from "@loadable/component";
4
+ export {
5
+ loadable_default as default
6
+ };
@@ -0,0 +1,4 @@
1
+ const hook = (attacher) => attacher;
2
+ export {
3
+ hook
4
+ };
@@ -0,0 +1,6 @@
1
+ import styled from "styled-components";
2
+ var styled_default = styled;
3
+ export * from "styled-components";
4
+ export {
5
+ styled_default as default
6
+ };
@@ -0,0 +1,22 @@
1
+ import { isBrowser } from "./common";
2
+ import {
3
+ createApp,
4
+ createPlugin,
5
+ useLoader,
6
+ bootstrap,
7
+ RuntimeReactContext,
8
+ defineConfig,
9
+ registerInit,
10
+ useRuntimeContext
11
+ } from "./core";
12
+ export {
13
+ RuntimeReactContext,
14
+ bootstrap,
15
+ createApp,
16
+ createPlugin,
17
+ defineConfig,
18
+ isBrowser,
19
+ registerInit,
20
+ useLoader,
21
+ useRuntimeContext
22
+ };
@@ -0,0 +1,120 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import {
21
+ getEntryOptions,
22
+ createRuntimeExportsUtils,
23
+ PLUGIN_SCHEMAS
24
+ } from "@modern-js/utils";
25
+ const PLUGIN_IDENTIFIER = "router";
26
+ const ROUTES_IDENTIFIER = "routes";
27
+ const isV5 = (config) => {
28
+ var _a, _b;
29
+ return ((_b = (_a = config == null ? void 0 : config.runtime) == null ? void 0 : _a.router) == null ? void 0 : _b.mode) === "react-router-5";
30
+ };
31
+ var cli_default = () => ({
32
+ name: "@modern-js/plugin-router",
33
+ required: ["@modern-js/runtime"],
34
+ setup: (api) => {
35
+ const runtimeConfigMap = /* @__PURE__ */ new Map();
36
+ let pluginsExportsUtils;
37
+ return {
38
+ config() {
39
+ const appContext = api.useAppContext();
40
+ pluginsExportsUtils = createRuntimeExportsUtils(
41
+ appContext.internalDirectory,
42
+ "plugins"
43
+ );
44
+ return {
45
+ source: {
46
+ alias: {
47
+ "@modern-js/runtime/plugins": pluginsExportsUtils.getPath()
48
+ }
49
+ }
50
+ };
51
+ },
52
+ validateSchema() {
53
+ return PLUGIN_SCHEMAS["@modern-js/plugin-router"];
54
+ },
55
+ modifyEntryImports({ entrypoint, imports }) {
56
+ const { entryName, fileSystemRoutes } = entrypoint;
57
+ const userConfig = api.useResolvedConfigContext();
58
+ const { packageName } = api.useAppContext();
59
+ const runtimeConfig = getEntryOptions(
60
+ entryName,
61
+ userConfig.runtime,
62
+ userConfig.runtimeByEntries,
63
+ packageName
64
+ );
65
+ runtimeConfigMap.set(entryName, runtimeConfig);
66
+ if (runtimeConfig == null ? void 0 : runtimeConfig.router) {
67
+ if (!isV5(userConfig)) {
68
+ imports.push({
69
+ value: "@modern-js/runtime/plugins",
70
+ specifiers: [{ imported: PLUGIN_IDENTIFIER }]
71
+ });
72
+ }
73
+ } else if (fileSystemRoutes) {
74
+ throw new Error(
75
+ `should enable runtime.router for entry ${entryName}`
76
+ );
77
+ }
78
+ return {
79
+ entrypoint,
80
+ imports
81
+ };
82
+ },
83
+ modifyEntryRuntimePlugins({ entrypoint, plugins }) {
84
+ const { entryName, fileSystemRoutes } = entrypoint;
85
+ const { serverRoutes } = api.useAppContext();
86
+ const userConfig = api.useResolvedConfigContext();
87
+ const runtimeConfig = runtimeConfigMap.get(entryName);
88
+ if (runtimeConfig.router && !isV5(userConfig)) {
89
+ const serverBase = serverRoutes.filter((route) => route.entryName === entryName).map((route) => route.urlPath).sort((a, b) => a.length - b.length > 0 ? -1 : 1);
90
+ plugins.push({
91
+ name: PLUGIN_IDENTIFIER,
92
+ options: JSON.stringify(__spreadProps(__spreadValues({
93
+ serverBase
94
+ }, runtimeConfig.router), {
95
+ routesConfig: fileSystemRoutes ? `{ ${ROUTES_IDENTIFIER}, globalApp: App }` : void 0
96
+ })).replace(
97
+ /"routesConfig"\s*:\s*"((\S|\s)+)"/g,
98
+ '"routesConfig": $1,'
99
+ )
100
+ });
101
+ }
102
+ return {
103
+ entrypoint,
104
+ plugins
105
+ };
106
+ },
107
+ addRuntimeExports() {
108
+ const userConfig = api.useResolvedConfigContext();
109
+ if (!isV5(userConfig)) {
110
+ pluginsExportsUtils.addExport(
111
+ `export { default as router } from '@modern-js/runtime/router'`
112
+ );
113
+ }
114
+ }
115
+ };
116
+ }
117
+ });
118
+ export {
119
+ cli_default as default
120
+ };
@@ -0,0 +1,7 @@
1
+ import { default as default2 } from "./runtime";
2
+ import { default as default3 } from "./runtime";
3
+ export * from "./runtime";
4
+ export {
5
+ default3 as default,
6
+ default2 as router
7
+ };
@@ -0,0 +1,14 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ const DefaultNotFound = () => /* @__PURE__ */ jsx("div", {
3
+ style: {
4
+ margin: "150px auto",
5
+ textAlign: "center",
6
+ display: "flex",
7
+ alignItems: "center",
8
+ justifyContent: "center"
9
+ },
10
+ children: "404"
11
+ });
12
+ export {
13
+ DefaultNotFound
14
+ };
@@ -0,0 +1,9 @@
1
+ import { routerPlugin } from "./plugin";
2
+ var runtime_default = routerPlugin;
3
+ import { modifyRoutes } from "./plugin";
4
+ export * from "react-router-dom";
5
+ export * from "./withRouter";
6
+ export {
7
+ runtime_default as default,
8
+ modifyRoutes
9
+ };