@modern-js/runtime 1.21.5 → 2.0.0-beta.1

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 (256) hide show
  1. package/CHANGELOG.md +117 -18
  2. package/dist/js/modern/cli/index.js +3 -5
  3. package/dist/js/modern/core/app-config.js +2 -1
  4. package/dist/js/modern/core/compatible.js +47 -48
  5. package/dist/js/modern/core/index.js +4 -3
  6. package/dist/js/modern/core/loader/loaderManager.js +12 -34
  7. package/dist/js/modern/core/loader/useLoader.js +8 -26
  8. package/dist/js/modern/core/plugin.js +6 -28
  9. package/dist/js/modern/document/Body.js +17 -0
  10. package/dist/js/modern/document/DocumentContext.js +6 -0
  11. package/dist/js/modern/document/DocumentStructrueContext.js +7 -0
  12. package/dist/js/modern/document/Head.js +24 -0
  13. package/dist/js/modern/document/Html.js +92 -0
  14. package/dist/js/modern/document/Root.js +31 -0
  15. package/dist/js/modern/document/Scripts.js +10 -0
  16. package/dist/js/modern/document/cli/index.js +130 -0
  17. package/dist/js/modern/document/constants.js +19 -0
  18. package/dist/js/modern/document/index.js +8 -0
  19. package/dist/js/modern/index.js +2 -1
  20. package/dist/js/modern/router/cli/index.js +20 -20
  21. package/dist/js/modern/router/runtime/index.js +1 -1
  22. package/dist/js/modern/router/runtime/plugin.js +25 -52
  23. package/dist/js/modern/router/runtime/plugin.node.js +137 -0
  24. package/dist/js/modern/router/runtime/root/index.js +19 -0
  25. package/dist/js/modern/router/runtime/root/load.js +61 -0
  26. package/dist/js/modern/router/runtime/types.js +1 -0
  27. package/dist/js/modern/router/runtime/utils.js +99 -58
  28. package/dist/js/modern/router/runtime/withRouter.js +20 -0
  29. package/dist/js/modern/runtime-context.js +2 -1
  30. package/dist/js/modern/ssr/cli/index.js +35 -17
  31. package/dist/js/modern/ssr/index.js +64 -51
  32. package/dist/js/modern/ssr/index.node.js +6 -15
  33. package/dist/js/modern/ssr/prefetch.js +0 -7
  34. package/dist/js/modern/ssr/react/prerender/index.js +2 -23
  35. package/dist/js/modern/ssr/react/prerender/util.js +2 -17
  36. package/dist/js/modern/ssr/react/withCallback/index.js +0 -1
  37. package/dist/js/modern/ssr/serverRender/helmet.js +12 -20
  38. package/dist/js/modern/ssr/serverRender/index.js +12 -27
  39. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +38 -0
  40. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +5 -0
  41. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +58 -0
  42. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +40 -0
  43. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +24 -0
  44. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +72 -0
  45. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +11 -0
  46. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +18 -0
  47. package/dist/js/modern/ssr/serverRender/renderToStream/type.js +0 -0
  48. package/dist/js/modern/ssr/serverRender/{entry.js → renderToString/entry.js} +6 -40
  49. package/dist/js/modern/ssr/serverRender/renderToString/index.js +29 -0
  50. package/dist/js/modern/ssr/serverRender/{loadable.js → renderToString/loadable.js} +2 -24
  51. package/dist/js/modern/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -2
  52. package/dist/js/modern/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -0
  53. package/dist/js/modern/ssr/serverRender/{template.js → renderToString/template.js} +0 -15
  54. package/dist/js/modern/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
  55. package/dist/js/modern/ssr/serverRender/types.js +2 -0
  56. package/dist/js/modern/ssr/serverRender/utils.js +20 -0
  57. package/dist/js/modern/ssr/utils.js +8 -13
  58. package/dist/js/modern/state/cli/index.js +0 -10
  59. package/dist/js/modern/state/runtime/plugin.js +1 -14
  60. package/dist/js/node/cli/index.js +3 -13
  61. package/dist/js/node/common.js +0 -2
  62. package/dist/js/node/core/app-config.js +2 -5
  63. package/dist/js/node/core/compatible.js +47 -66
  64. package/dist/js/node/core/index.js +8 -17
  65. package/dist/js/node/core/loader/index.js +0 -2
  66. package/dist/js/node/core/loader/loaderManager.js +12 -37
  67. package/dist/js/node/core/loader/useLoader.js +8 -31
  68. package/dist/js/node/core/plugin.js +5 -34
  69. package/dist/js/node/document/Body.js +26 -0
  70. package/dist/js/node/document/DocumentContext.js +14 -0
  71. package/dist/js/node/document/DocumentStructrueContext.js +15 -0
  72. package/dist/js/node/document/Head.js +33 -0
  73. package/dist/js/node/document/Html.js +98 -0
  74. package/dist/js/node/document/Root.js +41 -0
  75. package/dist/js/node/document/Scripts.js +17 -0
  76. package/dist/js/node/document/cli/index.js +140 -0
  77. package/dist/js/node/document/constants.js +36 -0
  78. package/dist/js/node/document/index.js +93 -0
  79. package/dist/js/node/exports/head.js +0 -5
  80. package/dist/js/node/exports/loadable.js +0 -5
  81. package/dist/js/node/exports/server.js +0 -2
  82. package/dist/js/node/exports/styled.js +0 -5
  83. package/dist/js/node/index.js +5 -5
  84. package/dist/js/node/router/cli/index.js +20 -24
  85. package/dist/js/node/router/index.js +0 -4
  86. package/dist/js/node/router/runtime/DefaultNotFound.js +1 -5
  87. package/dist/js/node/router/runtime/index.js +4 -9
  88. package/dist/js/node/router/runtime/plugin.js +23 -65
  89. package/dist/js/node/router/runtime/plugin.node.js +147 -0
  90. package/dist/js/node/router/runtime/root/index.js +26 -0
  91. package/dist/js/node/router/runtime/root/load.js +69 -0
  92. package/dist/js/node/router/runtime/types.js +5 -0
  93. package/dist/js/node/router/runtime/utils.js +101 -67
  94. package/dist/js/node/router/runtime/withRouter.js +26 -0
  95. package/dist/js/node/runtime-context.js +4 -4
  96. package/dist/js/node/ssr/cli/index.js +35 -21
  97. package/dist/js/node/ssr/index.js +63 -62
  98. package/dist/js/node/ssr/index.node.js +6 -25
  99. package/dist/js/node/ssr/prefetch.js +0 -11
  100. package/dist/js/node/ssr/react/index.js +0 -2
  101. package/dist/js/node/ssr/react/nossr/index.js +0 -6
  102. package/dist/js/node/ssr/react/prerender/index.js +2 -30
  103. package/dist/js/node/ssr/react/prerender/util.js +2 -25
  104. package/dist/js/node/ssr/react/withCallback/index.js +1 -4
  105. package/dist/js/node/ssr/serverRender/helmet.js +13 -20
  106. package/dist/js/node/ssr/serverRender/index.js +14 -39
  107. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +45 -0
  108. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +13 -0
  109. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +65 -0
  110. package/dist/js/node/ssr/serverRender/renderToStream/index.js +48 -0
  111. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +30 -0
  112. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +79 -0
  113. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +17 -0
  114. package/dist/js/node/ssr/serverRender/renderToStream/template.js +25 -0
  115. package/dist/js/node/ssr/serverRender/renderToStream/type.js +0 -0
  116. package/dist/js/node/ssr/serverRender/{entry.js → renderToString/entry.js} +13 -64
  117. package/dist/js/node/ssr/serverRender/renderToString/index.js +37 -0
  118. package/dist/js/node/ssr/serverRender/{loadable.js → renderToString/loadable.js} +3 -28
  119. package/dist/js/node/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -3
  120. package/dist/js/node/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -3
  121. package/dist/js/node/ssr/serverRender/{template.js → renderToString/template.js} +0 -18
  122. package/dist/js/node/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
  123. package/dist/js/node/ssr/serverRender/types.js +12 -0
  124. package/dist/js/node/ssr/serverRender/utils.js +28 -0
  125. package/dist/js/node/ssr/utils.js +10 -21
  126. package/dist/js/node/state/cli/index.js +0 -15
  127. package/dist/js/node/state/index.js +0 -4
  128. package/dist/js/node/state/plugins.js +0 -11
  129. package/dist/js/node/state/runtime/index.js +0 -7
  130. package/dist/js/node/state/runtime/plugin.js +1 -25
  131. package/dist/js/treeshaking/cli/index.js +3 -3
  132. package/dist/js/treeshaking/core/app-config.js +2 -1
  133. package/dist/js/treeshaking/core/compatible.js +50 -65
  134. package/dist/js/treeshaking/core/index.js +4 -3
  135. package/dist/js/treeshaking/core/loader/loaderManager.js +19 -51
  136. package/dist/js/treeshaking/core/loader/useLoader.js +11 -28
  137. package/dist/js/treeshaking/core/plugin.js +6 -51
  138. package/dist/js/treeshaking/document/Body.js +14 -0
  139. package/dist/js/treeshaking/document/DocumentContext.js +6 -0
  140. package/dist/js/treeshaking/document/DocumentStructrueContext.js +7 -0
  141. package/dist/js/treeshaking/document/Head.js +21 -0
  142. package/dist/js/treeshaking/document/Html.js +104 -0
  143. package/dist/js/treeshaking/document/Root.js +24 -0
  144. package/dist/js/treeshaking/document/Scripts.js +10 -0
  145. package/dist/js/treeshaking/document/cli/index.js +170 -0
  146. package/dist/js/treeshaking/document/constants.js +16 -0
  147. package/dist/js/treeshaking/document/index.js +8 -0
  148. package/dist/js/treeshaking/index.js +2 -1
  149. package/dist/js/treeshaking/router/cli/index.js +26 -22
  150. package/dist/js/treeshaking/router/runtime/index.js +1 -1
  151. package/dist/js/treeshaking/router/runtime/plugin.js +28 -54
  152. package/dist/js/treeshaking/router/runtime/plugin.node.js +161 -0
  153. package/dist/js/treeshaking/router/runtime/root/index.js +17 -0
  154. package/dist/js/treeshaking/router/runtime/root/load.js +102 -0
  155. package/dist/js/treeshaking/router/runtime/types.js +1 -0
  156. package/dist/js/treeshaking/router/runtime/utils.js +104 -58
  157. package/dist/js/treeshaking/router/runtime/withRouter.js +18 -0
  158. package/dist/js/treeshaking/runtime-context.js +2 -1
  159. package/dist/js/treeshaking/ssr/cli/index.js +43 -23
  160. package/dist/js/treeshaking/ssr/index.js +74 -59
  161. package/dist/js/treeshaking/ssr/index.node.js +18 -31
  162. package/dist/js/treeshaking/ssr/prefetch.js +0 -13
  163. package/dist/js/treeshaking/ssr/react/nossr/index.js +3 -4
  164. package/dist/js/treeshaking/ssr/react/prerender/index.js +2 -21
  165. package/dist/js/treeshaking/ssr/react/prerender/util.js +3 -20
  166. package/dist/js/treeshaking/ssr/react/withCallback/index.js +1 -2
  167. package/dist/js/treeshaking/ssr/serverRender/helmet.js +12 -11
  168. package/dist/js/treeshaking/ssr/serverRender/index.js +33 -55
  169. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +32 -0
  170. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -0
  171. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +60 -0
  172. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +50 -0
  173. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +22 -0
  174. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +68 -0
  175. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +10 -0
  176. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +22 -0
  177. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +0 -0
  178. package/dist/js/treeshaking/ssr/serverRender/{entry.js → renderToString/entry.js} +23 -76
  179. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +44 -0
  180. package/dist/js/treeshaking/ssr/serverRender/{loadable.js → renderToString/loadable.js} +7 -34
  181. package/dist/js/treeshaking/ssr/serverRender/{reduce.js → renderToString/reduce.js} +0 -2
  182. package/dist/js/treeshaking/ssr/serverRender/{styledComponent.js → renderToString/styledComponent.js} +0 -0
  183. package/dist/js/treeshaking/ssr/serverRender/{template.js → renderToString/template.js} +2 -18
  184. package/dist/js/treeshaking/ssr/serverRender/{type.js → renderToString/type.js} +0 -2
  185. package/dist/js/treeshaking/ssr/serverRender/types.js +2 -0
  186. package/dist/js/treeshaking/ssr/serverRender/utils.js +28 -0
  187. package/dist/js/treeshaking/ssr/utils.js +20 -17
  188. package/dist/js/treeshaking/state/cli/index.js +3 -10
  189. package/dist/js/treeshaking/state/runtime/plugin.js +2 -10
  190. package/dist/types/cli/index.d.ts +0 -2
  191. package/dist/types/common.d.ts +0 -2
  192. package/dist/types/core/compatible.d.ts +2 -2
  193. package/dist/types/core/index.d.ts +2 -2
  194. package/dist/types/core/loader/loaderManager.d.ts +0 -1
  195. package/dist/types/core/loader/useLoader.d.ts +0 -5
  196. package/dist/types/core/plugin.d.ts +2 -14
  197. package/dist/types/document/Body.d.ts +4 -0
  198. package/dist/types/document/DocumentContext.d.ts +13 -0
  199. package/dist/types/document/DocumentStructrueContext.d.ts +10 -0
  200. package/dist/types/document/Head.d.ts +5 -0
  201. package/dist/types/document/Html.d.ts +4 -0
  202. package/dist/types/document/Root.d.ts +8 -0
  203. package/dist/types/document/Scripts.d.ts +2 -0
  204. package/dist/types/document/cli/index.d.ts +3 -0
  205. package/dist/types/document/constants.d.ts +14 -0
  206. package/dist/types/document/index.d.ts +8 -0
  207. package/dist/types/exports/server.d.ts +21 -1
  208. package/dist/types/index.d.ts +2 -1
  209. package/dist/types/router/cli/index.d.ts +0 -2
  210. package/dist/types/router/runtime/DefaultNotFound.d.ts +1 -0
  211. package/dist/types/router/runtime/index.d.ts +3 -3
  212. package/dist/types/router/runtime/plugin.d.ts +2 -45
  213. package/dist/types/router/runtime/plugin.node.d.ts +8 -0
  214. package/dist/types/router/runtime/root/index.d.ts +8 -0
  215. package/dist/types/router/runtime/root/load.d.ts +22 -0
  216. package/dist/types/router/runtime/types.d.ts +36 -0
  217. package/dist/types/router/runtime/utils.d.ts +5 -2
  218. package/dist/types/router/runtime/withRouter.d.ts +8 -0
  219. package/dist/types/runtime-context.d.ts +3 -1
  220. package/dist/types/ssr/cli/index.d.ts +0 -2
  221. package/dist/types/ssr/index.d.ts +2 -2
  222. package/dist/types/ssr/index.node.d.ts +1 -1
  223. package/dist/types/ssr/prefetch.d.ts +2 -2
  224. package/dist/types/ssr/react/nossr/index.d.ts +3 -1
  225. package/dist/types/ssr/serverRender/index.d.ts +2 -3
  226. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.after.d.ts +7 -0
  227. package/dist/types/ssr/serverRender/renderToStream/buildTemplate.share.d.ts +3 -0
  228. package/dist/types/ssr/serverRender/renderToStream/bulidTemplate.before.d.ts +2 -0
  229. package/dist/types/ssr/serverRender/renderToStream/index.d.ts +6 -0
  230. package/dist/types/ssr/serverRender/renderToStream/loadable.d.ts +16 -0
  231. package/dist/types/ssr/serverRender/renderToStream/renderToPipe.d.ts +8 -0
  232. package/dist/types/ssr/serverRender/renderToStream/styledComponent.d.ts +12 -0
  233. package/dist/types/ssr/serverRender/renderToStream/template.d.ts +3 -0
  234. package/dist/types/ssr/serverRender/renderToStream/type.d.ts +4 -0
  235. package/dist/types/ssr/serverRender/{entry.d.ts → renderToString/entry.d.ts} +2 -2
  236. package/dist/types/ssr/serverRender/renderToString/index.d.ts +6 -0
  237. package/dist/types/ssr/serverRender/{loadable.d.ts → renderToString/loadable.d.ts} +0 -0
  238. package/dist/types/ssr/serverRender/{reduce.d.ts → renderToString/reduce.d.ts} +0 -0
  239. package/dist/types/ssr/serverRender/{styledComponent.d.ts → renderToString/styledComponent.d.ts} +0 -0
  240. package/dist/types/ssr/serverRender/{template.d.ts → renderToString/template.d.ts} +0 -0
  241. package/dist/types/ssr/serverRender/{type.d.ts → renderToString/type.d.ts} +1 -8
  242. package/dist/types/ssr/serverRender/types.d.ts +15 -0
  243. package/dist/types/ssr/serverRender/utils.d.ts +3 -0
  244. package/dist/types/ssr/utils.d.ts +4 -2
  245. package/dist/types/state/cli/index.d.ts +0 -2
  246. package/dist/types/state/runtime/plugin.d.ts +1 -1
  247. package/dist/types/state/types.d.ts +0 -1
  248. package/package.json +63 -71
  249. package/types/index.d.ts +13 -0
  250. package/types/router.d.ts +14 -0
  251. package/dist/js/modern/ssr/serverRender/measure.js +0 -11
  252. package/dist/js/node/ssr/serverRender/measure.js +0 -20
  253. package/dist/js/treeshaking/ssr/serverRender/measure.js +0 -17
  254. package/dist/types/ssr/serverRender/measure.d.ts +0 -1
  255. package/lib/types.d.ts +0 -10
  256. package/type.d.ts +0 -5
@@ -1,43 +1,22 @@
1
1
  import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
2
2
  import { ChunkExtractor } from '@loadable/server';
3
- import { isCrossOrigin } from "../utils";
4
-
3
+ import { isCrossOrigin } from "../../utils";
4
+ import { getLoadableScripts } from "../utils";
5
5
  var extname = function extname(uri) {
6
6
  if (typeof uri !== 'string' || !uri.includes('.')) {
7
7
  return '';
8
8
  }
9
-
10
9
  return ".".concat(uri === null || uri === void 0 ? void 0 : uri.split('.').pop()) || '';
11
10
  };
12
-
13
- function getLoadableScripts(extractor) {
14
- var check = function check(scripts) {
15
- return (scripts || '').includes('__LOADABLE_REQUIRED_CHUNKS___ext');
16
- };
17
-
18
- var scripts = extractor.getScriptTags();
19
-
20
- if (!check(scripts)) {
21
- return '';
22
- }
23
-
24
- return scripts.split('</script>') // 前两个 script为 loadable 必须的 script
25
- .slice(0, 2).map(function (i) {
26
- return "".concat(i, "</script>");
27
- }).join('');
28
- }
29
-
30
11
  export var toHtml = function toHtml(jsx, renderer, next) {
31
12
  var stats = renderer.stats,
32
- chunksMap = renderer.result.chunksMap,
33
- host = renderer.host,
34
- _renderer$config = renderer.config,
35
- config = _renderer$config === void 0 ? {} : _renderer$config;
36
-
13
+ chunksMap = renderer.result.chunksMap,
14
+ host = renderer.host,
15
+ _renderer$config = renderer.config,
16
+ config = _renderer$config === void 0 ? {} : _renderer$config;
37
17
  if (!stats || chunksMap.js) {
38
18
  return next(jsx);
39
19
  }
40
-
41
20
  var extractor = new ChunkExtractor({
42
21
  stats: stats,
43
22
  entrypoints: [renderer.entryName]
@@ -45,23 +24,18 @@ export var toHtml = function toHtml(jsx, renderer, next) {
45
24
  var html = next(extractor.collectChunks(jsx));
46
25
  var chunks = extractor.getChunkAssets(extractor.chunks);
47
26
  chunksMap.js = (chunksMap.js || '') + getLoadableScripts(extractor);
48
-
49
27
  var _iterator = _createForOfIteratorHelper(chunks),
50
- _step;
51
-
28
+ _step;
52
29
  try {
53
30
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
54
31
  var v = _step.value;
55
32
  var fileType = extname(v.url).slice(1);
56
-
57
33
  if (fileType === 'js') {
58
34
  var props = [];
59
35
  var crossorigin = config.crossorigin;
60
-
61
36
  if (crossorigin && isCrossOrigin(v.url, host)) {
62
37
  props.push("crossorigin=\"".concat(crossorigin === true ? 'anonymous' : crossorigin, "\""));
63
38
  }
64
-
65
39
  chunksMap[fileType] += "<script src=\"".concat(v.url, "\" ").concat(props.join(' '), "></script>");
66
40
  } else if (fileType === 'css') {
67
41
  chunksMap[fileType] += "<link href=\"".concat(v.url, "\" rel=\"stylesheet\" />");
@@ -72,6 +46,5 @@ export var toHtml = function toHtml(jsx, renderer, next) {
72
46
  } finally {
73
47
  _iterator.f();
74
48
  }
75
-
76
49
  return html;
77
50
  };
@@ -1,11 +1,9 @@
1
1
  export function reduce(jsx, renderer, middleware) {
2
2
  var index = 0;
3
-
4
3
  var createNext = function createNext() {
5
4
  return function (App) {
6
5
  return middleware[index++](App, renderer, createNext());
7
6
  };
8
7
  };
9
-
10
8
  return createNext()(jsx);
11
9
  }
@@ -12,34 +12,24 @@ var ENCODE_HTML_RULES = {
12
12
  "'": '&#39;'
13
13
  };
14
14
  var MATCH_HTML = /[&<>'"]/g;
15
-
16
15
  function encodeChar(c) {
17
16
  return ENCODE_HTML_RULES[c] || c;
18
17
  }
19
-
20
18
  function escape(str) {
21
19
  return str.replace(MATCH_HTML, encodeChar);
22
20
  }
23
-
24
21
  export var Fragment = /*#__PURE__*/function () {
25
22
  function Fragment(template) {
26
23
  _classCallCheck(this, Fragment);
27
-
28
24
  _defineProperty(this, "isVariable", void 0);
29
-
30
25
  _defineProperty(this, "content", void 0);
31
-
32
26
  _defineProperty(this, "filters", void 0);
33
-
34
27
  _defineProperty(this, "path", void 0);
35
-
36
28
  var match = VARIABLE_REG_EXP.exec(template);
37
-
38
29
  if (match) {
39
30
  var _match = _slicedToArray(match, 3),
40
- filterFlag = _match[1],
41
- content = _match[2];
42
-
31
+ filterFlag = _match[1],
32
+ content = _match[2];
43
33
  this.isVariable = true;
44
34
  this.content = content;
45
35
  this.filters = [Fragment.filterMap[filterFlag]];
@@ -51,7 +41,6 @@ export var Fragment = /*#__PURE__*/function () {
51
41
  this.path = [];
52
42
  }
53
43
  }
54
-
55
44
  _createClass(Fragment, [{
56
45
  key: "getValue",
57
46
  value: function getValue(data) {
@@ -63,27 +52,22 @@ export var Fragment = /*#__PURE__*/function () {
63
52
  return n(p);
64
53
  }, value != null ? value : '');
65
54
  }
66
-
67
55
  return this.content;
68
56
  }
69
57
  }]);
70
-
71
58
  return Fragment;
72
59
  }();
73
-
74
60
  _defineProperty(Fragment, "filterMap", {
75
61
  '=': escape,
76
62
  '-': function _(v) {
77
63
  return v;
78
64
  }
79
65
  });
80
-
81
66
  var fragmentListMap = {};
82
67
  export function toFragments(template, entryName) {
83
68
  if (fragmentListMap[entryName]) {
84
69
  return fragmentListMap[entryName];
85
70
  }
86
-
87
71
  var fragmentList = template.split(VARIABLE_SPLITTER).filter(function (v) {
88
72
  return Boolean(v);
89
73
  }).map(function (v) {
@@ -1,6 +1,4 @@
1
- // import { IncomingHttpHeaders } from 'http';
2
1
  export var RenderLevel;
3
-
4
2
  (function (RenderLevel) {
5
3
  RenderLevel[RenderLevel["CLIENT_RENDER"] = 0] = "CLIENT_RENDER";
6
4
  RenderLevel[RenderLevel["SERVER_PREFETCH"] = 1] = "SERVER_PREFETCH";
@@ -0,0 +1,2 @@
1
+ import { RenderLevel } from "./renderToString/type";
2
+ export { RenderLevel };
@@ -0,0 +1,28 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ export function getLoadableScripts(extractor) {
3
+ var check = function check(scripts) {
4
+ return (scripts || '').includes('__LOADABLE_REQUIRED_CHUNKS___ext');
5
+ };
6
+ var scripts = extractor.getScriptTags();
7
+ if (!check(scripts)) {
8
+ return '';
9
+ }
10
+ return scripts.split('</script>')
11
+ // 前两个 script为 loadable 必须的 script
12
+ .slice(0, 2).map(function (i) {
13
+ return "".concat(i, "</script>");
14
+ }).join('');
15
+ }
16
+ var getLatency = function getLatency(hrtime) {
17
+ var _process$hrtime = process.hrtime(hrtime),
18
+ _process$hrtime2 = _slicedToArray(_process$hrtime, 2),
19
+ s = _process$hrtime2[0],
20
+ ns = _process$hrtime2[1];
21
+ return s * 1e3 + ns / 1e6;
22
+ };
23
+ export var time = function time() {
24
+ var hrtime = process.hrtime();
25
+ return function () {
26
+ return getLatency(hrtime);
27
+ };
28
+ };
@@ -1,38 +1,35 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
2
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
+ export var isReact18 = function isReact18() {
4
+ return process.env.IS_REACT18 === 'true';
5
+ };
3
6
  export var formatServer = function formatServer(request) {
4
7
  var _ref = request.headers || {},
5
- _ref$cookie = _ref.cookie,
6
- cookie = _ref$cookie === void 0 ? '' : _ref$cookie,
7
- _ref$userAgent = _ref['user-agent'],
8
- userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent,
9
- referer = _ref.referer;
10
-
8
+ _ref$cookie = _ref.cookie,
9
+ cookie = _ref$cookie === void 0 ? '' : _ref$cookie,
10
+ _ref$userAgent = _ref['user-agent'],
11
+ userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent,
12
+ referer = _ref.referer;
11
13
  return _objectSpread({
12
14
  cookie: cookie,
13
15
  userAgent: userAgent,
14
16
  referer: referer
15
17
  }, request);
16
18
  };
17
-
18
19
  var getQuery = function getQuery() {
19
20
  return window.location.search.substring(1).split('&').reduce(function (res, item) {
20
21
  var _item$split = item.split('='),
21
- _item$split2 = _slicedToArray(_item$split, 2),
22
- key = _item$split2[0],
23
- value = _item$split2[1];
24
-
22
+ _item$split2 = _slicedToArray(_item$split, 2),
23
+ key = _item$split2[0],
24
+ value = _item$split2[1];
25
25
  if (key) {
26
26
  res[key] = value;
27
27
  }
28
-
29
28
  return res;
30
29
  }, {});
31
30
  };
32
-
33
31
  export var formatClient = function formatClient(request) {
34
32
  var _request$headers, _request$headers2;
35
-
36
33
  return {
37
34
  params: request.params || {},
38
35
  host: request.host || location.host,
@@ -49,14 +46,20 @@ export var formatClient = function formatClient(request) {
49
46
  export var mockResponse = function mockResponse() {
50
47
  return {
51
48
  setHeader: function setHeader() {
52
- console.info('setHeader can only be used in the server side');
49
+ console.warn('response.setHeader() can only be used in the server side');
53
50
  },
54
51
  status: function status() {
55
- console.info('status can only be used in the server side');
52
+ console.warn('response.status() can only be used in the server side');
53
+ },
54
+ get locals() {
55
+ console.warn('response.locals can only be used in the server side');
56
+ return {};
56
57
  }
57
58
  };
58
59
  };
59
- export var isCrossOrigin = function isCrossOrigin(url, base) {
60
+ export var isCrossOrigin = function isCrossOrigin() {
61
+ var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
62
+ var base = arguments.length > 1 ? arguments[1] : undefined;
60
63
  if (url.startsWith('/') || url.startsWith('./')) {
61
64
  return false;
62
65
  } else if (!url.includes(base)) {
@@ -22,18 +22,14 @@ export default (function () {
22
22
  },
23
23
  modifyEntryImports: function modifyEntryImports(_ref) {
24
24
  var _getEntryOptions;
25
-
26
25
  var entrypoint = _ref.entrypoint,
27
- imports = _ref.imports;
26
+ imports = _ref.imports;
28
27
  var entryName = entrypoint.entryName;
29
28
  var userConfig = api.useResolvedConfigContext();
30
-
31
29
  var _api$useAppContext = api.useAppContext(),
32
- packageName = _api$useAppContext.packageName;
33
-
30
+ packageName = _api$useAppContext.packageName;
34
31
  var stateConfig = (_getEntryOptions = getEntryOptions(entryName, userConfig.runtime, userConfig.runtimeByEntries, packageName)) === null || _getEntryOptions === void 0 ? void 0 : _getEntryOptions.state;
35
32
  stateConfigMap.set(entryName, stateConfig);
36
-
37
33
  if (stateConfig) {
38
34
  imports.push({
39
35
  value: '@modern-js/runtime/plugins',
@@ -42,7 +38,6 @@ export default (function () {
42
38
  }]
43
39
  });
44
40
  }
45
-
46
41
  return {
47
42
  entrypoint: entrypoint,
48
43
  imports: imports
@@ -50,16 +45,14 @@ export default (function () {
50
45
  },
51
46
  modifyEntryRuntimePlugins: function modifyEntryRuntimePlugins(_ref2) {
52
47
  var entrypoint = _ref2.entrypoint,
53
- plugins = _ref2.plugins;
48
+ plugins = _ref2.plugins;
54
49
  var stateOptions = stateConfigMap.get(entrypoint.entryName);
55
-
56
50
  if (stateOptions) {
57
51
  plugins.push({
58
52
  name: PLUGIN_IDENTIFIER,
59
53
  options: "".concat(JSON.stringify(stateConfigMap.get(entrypoint.entryName)))
60
54
  });
61
55
  }
62
-
63
56
  return {
64
57
  entrypoint: entrypoint,
65
58
  plugins: plugins
@@ -13,7 +13,6 @@ var StatePluginHandleMap = {
13
13
  autoActions: autoActions,
14
14
  devtools: devtools
15
15
  };
16
-
17
16
  var getStoreConfig = function getStoreConfig(config) {
18
17
  var internalPlugins = ['immer', 'effects', 'autoActions', 'devtools'];
19
18
  var plugins = [];
@@ -26,7 +25,6 @@ var getStoreConfig = function getStoreConfig(config) {
26
25
  plugins: plugins
27
26
  };
28
27
  };
29
-
30
28
  var state = function state(config) {
31
29
  return {
32
30
  name: '@modern-js/plugin-state',
@@ -34,7 +32,6 @@ var state = function state(config) {
34
32
  return {
35
33
  hoc: function hoc(_ref, next) {
36
34
  var App = _ref.App;
37
-
38
35
  var getStateApp = function getStateApp(props) {
39
36
  // eslint-disable-next-line react-hooks/rules-of-hooks
40
37
  var context = useContext(RuntimeReactContext);
@@ -44,7 +41,6 @@ var state = function state(config) {
44
41
  children: /*#__PURE__*/_jsx(App, _objectSpread({}, props))
45
42
  });
46
43
  };
47
-
48
44
  return next({
49
45
  App: hoistNonReactStatics(getStateApp, App)
50
46
  });
@@ -52,21 +48,18 @@ var state = function state(config) {
52
48
  init: function init(_ref2, next) {
53
49
  var context = _ref2.context;
54
50
  var storeConfig = getStoreConfig(config || {});
55
-
56
51
  if (isBrowser()) {
57
52
  var _window, _window$_SSR_DATA, _window$_SSR_DATA$dat;
58
-
59
53
  storeConfig.initialState = storeConfig.initialState || ((_window = window) === null || _window === void 0 ? void 0 : (_window$_SSR_DATA = _window._SSR_DATA) === null || _window$_SSR_DATA === void 0 ? void 0 : (_window$_SSR_DATA$dat = _window$_SSR_DATA.data) === null || _window$_SSR_DATA$dat === void 0 ? void 0 : _window$_SSR_DATA$dat.storeState) || {};
60
54
  }
61
-
62
55
  context.store = createStore(storeConfig);
63
- next({
56
+ return next({
64
57
  context: context
65
58
  });
66
59
  },
67
60
  pickContext: function pickContext(_ref3, next) {
68
61
  var context = _ref3.context,
69
- pickedContext = _ref3.pickedContext;
62
+ pickedContext = _ref3.pickedContext;
70
63
  return next({
71
64
  context: context,
72
65
  pickedContext: _objectSpread(_objectSpread({}, pickedContext), {}, {
@@ -78,6 +71,5 @@ var state = function state(config) {
78
71
  }
79
72
  };
80
73
  };
81
-
82
74
  export default state;
83
75
  export * from "../plugins";
@@ -1,5 +1,3 @@
1
1
  import type { CliPlugin } from '@modern-js/core';
2
-
3
2
  declare const _default: () => CliPlugin;
4
-
5
3
  export default _default;
@@ -1,8 +1,6 @@
1
1
  import type { StateConfig } from './state';
2
- import type { RouterConfig } from './router';
3
2
  export declare const isBrowser: () => boolean;
4
3
  export interface AppConfig {
5
- router?: RouterConfig | boolean;
6
4
  state?: StateConfig | boolean;
7
5
  [key: string]: any;
8
6
  }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TRuntimeContext } from '../runtime-context';
2
+ import { RuntimeContext, TRuntimeContext } from '../runtime-context';
3
3
  import { Plugin } from './plugin';
4
4
  export declare type CreateAppOptions = {
5
5
  plugins: Plugin[];
@@ -11,7 +11,7 @@ interface HydrateFunc {
11
11
  (container: Element | Document, initialChildren: React.ReactNode): void;
12
12
  (initialChildren: React.ReactNode, container: Element | Document, callback?: () => void): void;
13
13
  }
14
- declare type BootStrap<T = unknown> = (App: React.ComponentType, id: string | Record<string, any> | HTMLElement, root?: any, ReactDOM?: {
14
+ declare type BootStrap<T = unknown> = (App: React.ComponentType, id: string | HTMLElement | RuntimeContext, root?: any, ReactDOM?: {
15
15
  render?: (children: React.ReactNode, rootElement?: HTMLElement) => void;
16
16
  hydrate?: HydrateFunc;
17
17
  createRoot?: (rootElement: HTMLElement) => any;
@@ -1,8 +1,8 @@
1
- export { createPlugin, createRuntime, runtime, registerInit, registerPrefetch } from './plugin';
1
+ export { createPlugin, createRuntime, runtime, registerInit } from './plugin';
2
2
  export type { Plugin } from './plugin';
3
3
  export { defineConfig, getConfig } from './app-config';
4
4
  export * from './compatible';
5
5
  export type { TRuntimeContext, RuntimeContext } from '../runtime-context';
6
- export { RuntimeReactContext } from '../runtime-context';
6
+ export { RuntimeReactContext, ServerRouterContext } from '../runtime-context';
7
7
  export * from './loader';
8
8
  export * from '@modern-js/plugin';
@@ -35,7 +35,6 @@ declare type ManagerOption = {
35
35
  * Create loaders manager. It's returned instance will add to context
36
36
  * @param initialDataMap used to initialing loader data
37
37
  */
38
-
39
38
  export declare const createLoaderManager: (initialDataMap: Record<string, LoaderResult>, managerOptions?: ManagerOption) => {
40
39
  hasPendingLoaders: () => boolean;
41
40
  awaitPendingLoaders: () => Promise<Record<string, LoaderResult>>;
@@ -20,28 +20,23 @@ export interface LoaderOptions<Params = any, TData = any, TError extends Error =
20
20
  /**
21
21
  * Revoke when loader ended with error
22
22
  */
23
-
24
23
  onError?: (error: TError) => void;
25
24
  /**
26
25
  * initialData to display once loader is ready.
27
26
  */
28
-
29
27
  initialData?: TData;
30
28
  /**
31
29
  * whether skip loader
32
30
  * if true, the loader will not exec.
33
31
  */
34
-
35
32
  skip?: boolean;
36
33
  /**
37
34
  * User params, it will pass to loader's second parameter.
38
35
  */
39
-
40
36
  params?: Params;
41
37
  /**
42
38
  * whether loader can exec on build phase.
43
39
  */
44
-
45
40
  static?: boolean;
46
41
  }
47
42
  declare type LoaderFn<P = any, T = any> = (context: any, params: P) => Promise<T>;
@@ -30,16 +30,12 @@ declare const runtimeHooks: {
30
30
  }, TRuntimeContext>;
31
31
  };
32
32
  /** All hooks of runtime plugin. */
33
-
34
33
  export declare type RuntimeHooks = typeof runtimeHooks;
35
34
  /** All hook callbacks of runtime plugin. */
36
-
37
35
  export declare type RuntimeHookCallbacks = ToThreads<RuntimeHooks>;
38
36
  /** All apis for runtime plugin. */
39
-
40
37
  export declare type PluginAPI = CommonAPI<RuntimeHooks>;
41
38
  /** Plugin options of a runtime plugin. */
42
-
43
39
  export declare type Plugin = PluginOptions<RuntimeHooks, Setup<RuntimeHooks>>;
44
40
  export declare const createRuntime: () => import("@modern-js/plugin").Manager<{
45
41
  hoc: import("@modern-js/plugin").Pipeline<{
@@ -71,15 +67,7 @@ export declare const createRuntime: () => import("@modern-js/plugin").Manager<{
71
67
  /**
72
68
  * register init hook. It would be revoked both ssr and csr.
73
69
  */
74
-
75
70
  declare const registerInit: (App: React.ComponentType, _init: (context: RuntimeContext) => any | Promise<any>) => void;
76
- /**
77
- * register prefetch hook. It would be revoked both ssr and csr.
78
- * But if ssr success, It wont exec in csr again.
79
- * If ssr prefetch failed, It will fallback to exec in csr.
80
- */
81
-
82
- declare const registerPrefetch: (App: React.ComponentType, prefetch: (context: RuntimeContext) => Promise<any>) => void;
83
71
  export declare const runtime: import("@modern-js/plugin").Manager<{
84
72
  hoc: import("@modern-js/plugin").Pipeline<{
85
73
  App: React.ComponentType<any>;
@@ -185,7 +173,7 @@ export declare const createPlugin: (setup?: Setup<{
185
173
  context: RuntimeContext;
186
174
  pickedContext: TRuntimeContext;
187
175
  }, TRuntimeContext>;
188
- }, Record<string, never>>> | undefined) => import("@modern-js/plugin").Plugin<{
176
+ }, Record<string, never>>, Record<string, unknown>> | undefined) => import("@modern-js/plugin").Plugin<{
189
177
  hoc: import("@modern-js/plugin").Pipeline<{
190
178
  App: React.ComponentType<any>;
191
179
  }, React.ComponentType<any>>;
@@ -212,4 +200,4 @@ export declare const createPlugin: (setup?: Setup<{
212
200
  pickedContext: TRuntimeContext;
213
201
  }, TRuntimeContext>;
214
202
  }, Record<string, never>>;
215
- export { registerInit, registerPrefetch };
203
+ export { registerInit };
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare function Body(props: {
3
+ children?: any;
4
+ }): JSX.Element;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ declare type DocumentProps = {
3
+ [x: string]: any;
4
+ config?: any;
5
+ templateParams: {
6
+ [y: string]: any;
7
+ mountId?: string;
8
+ };
9
+ processEnv?: Record<string, string | undefined>;
10
+ children?: JSX.Element;
11
+ };
12
+ export declare const DocumentContext: React.Context<DocumentProps>;
13
+ export {};
@@ -0,0 +1,10 @@
1
+ import React, { ReactNode } from 'react';
2
+ declare type DocumentStructrueContextProps = {
3
+ hasSetHead?: boolean;
4
+ hasSetScripts?: boolean;
5
+ hasSetBody?: boolean;
6
+ hasSetRoot?: boolean;
7
+ docChild?: ReactNode;
8
+ };
9
+ export declare const DocumentStructrueContext: React.Context<DocumentStructrueContextProps>;
10
+ export {};
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export declare function Head(props: {
3
+ children?: any;
4
+ }): JSX.Element;
5
+ export declare function DefaultHead(): JSX.Element;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ export declare function Html(props: {
3
+ children: any[];
4
+ }): JSX.Element;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ export declare function Root(props: {
3
+ children?: any;
4
+ rootId?: string;
5
+ }): JSX.Element;
6
+ export declare function DefaultRoot(props: {
7
+ children?: any;
8
+ }): JSX.Element;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare function Scripts(): JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { CliPlugin } from '@modern-js/core';
2
+ declare const _default: () => CliPlugin;
3
+ export default _default;
@@ -0,0 +1,14 @@
1
+ export declare const DOC_EXT: string[];
2
+ export declare const DOCUMENT_META_PLACEHOLDER: string;
3
+ export declare const HTML_SEPARATOR = "<!--<?- html ?>-->";
4
+ export declare const HTML_CHUNKSMAP_SEPARATOR = "<!--<?- chunksMap.js ?>-->";
5
+ export declare const HTML_SSRDATASCRIPT_SEPARATOR = "<!--<?- SSRDataScript ?>-->";
6
+ export declare const DOCUMENT_SSR_PLACEHOLDER: string;
7
+ export declare const DOCUMENT_CHUNKSMAP_PLACEHOLDER: string;
8
+ export declare const DOCUMENT_SSRDATASCRIPT_PLACEHOLDER: string;
9
+ export declare const DOCUMENT_FILE_NAME = "document";
10
+ export declare const DOCUMENT_SCRIPTS_PLACEHOLDER: string;
11
+ export declare const DOCUMENT_NO_SCRIPTE_PLACEHOLDER: string;
12
+ export declare const PLACEHOLDER_REPLACER_MAP: {
13
+ [x: string]: string;
14
+ };
@@ -0,0 +1,8 @@
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 './Scripts';
8
+ export * from './constants';
@@ -1 +1,21 @@
1
- export declare const hook: (attacher: any) => any;
1
+ import { AfterMatchContext, AfterRenderContext, MiddlewareContext, NextFunction } from '@modern-js/types';
2
+ export declare const hook: (attacher: ({
3
+ addMiddleware,
4
+ afterMatch,
5
+ afterRender
6
+ }: {
7
+ addMiddleware: (mid: Middleware) => void;
8
+ afterRender: (hook: AfterRenderHook) => void;
9
+ afterMatch: (hook: AfterMatchHook) => void;
10
+ }) => void) => ({
11
+ addMiddleware,
12
+ afterMatch,
13
+ afterRender
14
+ }: {
15
+ addMiddleware: (mid: Middleware) => void;
16
+ afterRender: (hook: AfterRenderHook) => void;
17
+ afterMatch: (hook: AfterMatchHook) => void;
18
+ }) => void;
19
+ export declare type AfterRenderHook = (context: AfterRenderContext, next: NextFunction) => void;
20
+ export declare type AfterMatchHook = (context: AfterMatchContext, next: NextFunction) => void;
21
+ export declare type Middleware = (context: MiddlewareContext, next: NextFunction) => Promise<void> | void;
@@ -2,6 +2,7 @@ import type { StateConfig } from './state';
2
2
  import type { RouterConfig } from './router';
3
3
  export type { Plugin } from './core';
4
4
  export type { AppConfig } from './common';
5
+ export { isBrowser } from './common';
5
6
  export type { BaseRuntimeContext, RuntimeContext, BaseTRuntimeContext, TRuntimeContext } from './runtime-context';
6
- export { createApp, createPlugin, useLoader, bootstrap, RuntimeReactContext, registerPrefetch, defineConfig, registerInit, useRuntimeContext } from './core';
7
+ export { createApp, createPlugin, useLoader, bootstrap, RuntimeReactContext, defineConfig, registerInit, useRuntimeContext } from './core';
7
8
  export { StateConfig, RouterConfig };
@@ -1,5 +1,3 @@
1
1
  import type { CliPlugin } from '@modern-js/core';
2
-
3
2
  declare const _default: () => CliPlugin;
4
-
5
3
  export default _default;
@@ -1 +1,2 @@
1
+ /// <reference types="react" />
1
2
  export declare const DefaultNotFound: () => JSX.Element;