@modern-js/runtime 2.0.0-beta.3 → 2.0.0-beta.5

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 (258) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/dist/js/modern/cli/index.js +49 -19
  3. package/dist/js/modern/cli/types.d.js +0 -0
  4. package/dist/js/modern/common.js +4 -1
  5. package/dist/js/modern/core/app-config.js +8 -9
  6. package/dist/js/modern/core/compatible.js +195 -169
  7. package/dist/js/modern/core/index.js +14 -6
  8. package/dist/js/modern/core/loader/index.js +4 -1
  9. package/dist/js/modern/core/loader/loaderManager.js +75 -77
  10. package/dist/js/modern/core/loader/useLoader.js +96 -69
  11. package/dist/js/modern/core/plugin.js +37 -20
  12. package/dist/js/modern/document/Body.js +20 -14
  13. package/dist/js/modern/document/DocumentContext.js +6 -3
  14. package/dist/js/modern/document/DocumentStructrueContext.js +6 -3
  15. package/dist/js/modern/document/Head.js +18 -17
  16. package/dist/js/modern/document/Html.js +42 -58
  17. package/dist/js/modern/document/Root.js +22 -20
  18. package/dist/js/modern/document/Script.js +20 -0
  19. package/dist/js/modern/document/Scripts.js +7 -7
  20. package/dist/js/modern/document/cli/index.js +175 -85
  21. package/dist/js/modern/document/constants.js +41 -15
  22. package/dist/js/modern/document/index.js +2 -1
  23. package/dist/js/modern/document/type.d.js +0 -0
  24. package/dist/js/modern/exports/head.js +6 -3
  25. package/dist/js/modern/exports/loadable.js +6 -3
  26. package/dist/js/modern/exports/server.js +4 -1
  27. package/dist/js/modern/exports/styled.js +6 -3
  28. package/dist/js/modern/index.js +22 -2
  29. package/dist/js/modern/modern-app.env.d.js +0 -0
  30. package/dist/js/modern/router/cli/index.js +76 -60
  31. package/dist/js/modern/router/index.js +7 -3
  32. package/dist/js/modern/router/runtime/DefaultNotFound.js +11 -10
  33. package/dist/js/modern/router/runtime/index.js +8 -3
  34. package/dist/js/modern/router/runtime/plugin.js +79 -37
  35. package/dist/js/modern/router/runtime/plugin.node.js +88 -83
  36. package/dist/js/modern/router/runtime/root/index.js +10 -10
  37. package/dist/js/modern/router/runtime/root/load.js +57 -36
  38. package/dist/js/modern/router/runtime/server.js +1 -1
  39. package/dist/js/modern/router/runtime/types.js +0 -1
  40. package/dist/js/modern/router/runtime/utils.js +91 -66
  41. package/dist/js/modern/router/runtime/withRouter.js +31 -15
  42. package/dist/js/modern/runtime-context.js +7 -3
  43. package/dist/js/modern/ssr/cli/babel-plugin-ssr-loader-id.js +130 -0
  44. package/dist/js/modern/ssr/cli/index.js +102 -79
  45. package/dist/js/modern/ssr/index.js +89 -71
  46. package/dist/js/modern/ssr/index.node.js +59 -37
  47. package/dist/js/modern/ssr/prefetch.js +64 -45
  48. package/dist/js/modern/ssr/react/index.js +6 -2
  49. package/dist/js/modern/ssr/react/nossr/index.js +8 -7
  50. package/dist/js/modern/ssr/react/prerender/index.js +53 -28
  51. package/dist/js/modern/ssr/react/prerender/util.js +38 -26
  52. package/dist/js/modern/ssr/react/withCallback/index.js +6 -7
  53. package/dist/js/modern/ssr/serverRender/helmet.js +18 -12
  54. package/dist/js/modern/ssr/serverRender/index.js +34 -13
  55. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.after.js +10 -12
  56. package/dist/js/modern/ssr/serverRender/renderToStream/buildTemplate.share.js +11 -5
  57. package/dist/js/modern/ssr/serverRender/renderToStream/bulidTemplate.before.js +37 -38
  58. package/dist/js/modern/ssr/serverRender/renderToStream/index.js +36 -18
  59. package/dist/js/modern/ssr/serverRender/renderToStream/loadable.js +7 -7
  60. package/dist/js/modern/ssr/serverRender/renderToStream/renderToPipe.js +56 -34
  61. package/dist/js/modern/ssr/serverRender/renderToStream/styledComponent.js +6 -5
  62. package/dist/js/modern/ssr/serverRender/renderToStream/template.js +13 -9
  63. package/dist/js/modern/ssr/serverRender/renderToString/entry.js +101 -84
  64. package/dist/js/modern/ssr/serverRender/renderToString/index.js +32 -9
  65. package/dist/js/modern/ssr/serverRender/renderToString/loadable.js +21 -18
  66. package/dist/js/modern/ssr/serverRender/renderToString/reduce.js +6 -3
  67. package/dist/js/modern/ssr/serverRender/renderToString/styledComponent.js +6 -3
  68. package/dist/js/modern/ssr/serverRender/renderToString/template.js +22 -22
  69. package/dist/js/modern/ssr/serverRender/renderToString/type.js +9 -6
  70. package/dist/js/modern/ssr/serverRender/types.js +3 -1
  71. package/dist/js/modern/ssr/serverRender/utils.js +11 -9
  72. package/dist/js/modern/ssr/type.d.js +0 -0
  73. package/dist/js/modern/ssr/utils.js +41 -21
  74. package/dist/js/modern/state/cli/index.js +43 -32
  75. package/dist/js/modern/state/index.js +7 -3
  76. package/dist/js/modern/state/plugins.js +13 -7
  77. package/dist/js/modern/state/runtime/index.js +9 -4
  78. package/dist/js/modern/state/runtime/plugin.js +56 -40
  79. package/dist/js/modern/state/types.js +0 -1
  80. package/dist/js/node/cli/index.js +79 -30
  81. package/dist/js/node/cli/types.d.js +0 -0
  82. package/dist/js/node/common.js +26 -7
  83. package/dist/js/node/core/app-config.js +29 -14
  84. package/dist/js/node/core/compatible.js +227 -186
  85. package/dist/js/node/core/index.js +44 -99
  86. package/dist/js/node/core/loader/index.js +31 -11
  87. package/dist/js/node/core/loader/loaderManager.js +102 -83
  88. package/dist/js/node/core/loader/useLoader.js +120 -83
  89. package/dist/js/node/core/plugin.js +65 -35
  90. package/dist/js/node/document/Body.js +40 -23
  91. package/dist/js/node/document/DocumentContext.js +33 -9
  92. package/dist/js/node/document/DocumentStructrueContext.js +33 -9
  93. package/dist/js/node/document/Head.js +43 -27
  94. package/dist/js/node/document/Html.js +66 -65
  95. package/dist/js/node/document/Root.js +47 -31
  96. package/dist/js/node/document/Script.js +40 -0
  97. package/dist/js/node/document/Scripts.js +30 -14
  98. package/dist/js/node/document/cli/index.js +188 -95
  99. package/dist/js/node/document/constants.js +73 -28
  100. package/dist/js/node/document/index.js +25 -93
  101. package/dist/js/node/document/type.d.js +0 -0
  102. package/dist/js/node/exports/head.js +33 -22
  103. package/dist/js/node/exports/loadable.js +33 -22
  104. package/dist/js/node/exports/server.js +26 -7
  105. package/dist/js/node/exports/styled.js +33 -22
  106. package/dist/js/node/index.js +43 -60
  107. package/dist/js/node/modern-app.env.d.js +0 -0
  108. package/dist/js/node/router/cli/index.js +89 -65
  109. package/dist/js/node/router/index.js +33 -30
  110. package/dist/js/node/router/runtime/DefaultNotFound.js +32 -17
  111. package/dist/js/node/router/runtime/index.js +31 -32
  112. package/dist/js/node/router/runtime/plugin.js +101 -44
  113. package/dist/js/node/router/runtime/plugin.node.js +113 -93
  114. package/dist/js/node/router/runtime/root/index.js +37 -21
  115. package/dist/js/node/router/runtime/root/load.js +80 -42
  116. package/dist/js/node/router/runtime/server.js +17 -16
  117. package/dist/js/node/router/runtime/types.js +15 -5
  118. package/dist/js/node/router/runtime/utils.js +112 -75
  119. package/dist/js/node/router/runtime/withRouter.js +53 -22
  120. package/dist/js/node/runtime-context.js +30 -10
  121. package/dist/js/node/ssr/cli/babel-plugin-ssr-loader-id.js +139 -0
  122. package/dist/js/node/ssr/cli/index.js +119 -85
  123. package/dist/js/node/ssr/index.js +125 -104
  124. package/dist/js/node/ssr/index.node.js +86 -59
  125. package/dist/js/node/ssr/prefetch.js +84 -51
  126. package/dist/js/node/ssr/react/index.js +27 -16
  127. package/dist/js/node/ssr/react/nossr/index.js +37 -16
  128. package/dist/js/node/ssr/react/prerender/index.js +82 -45
  129. package/dist/js/node/ssr/react/prerender/type.js +15 -0
  130. package/dist/js/node/ssr/react/prerender/util.js +63 -36
  131. package/dist/js/node/ssr/react/withCallback/index.js +29 -15
  132. package/dist/js/node/ssr/serverRender/helmet.js +37 -17
  133. package/dist/js/node/ssr/serverRender/index.js +55 -19
  134. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.after.js +40 -20
  135. package/dist/js/node/ssr/serverRender/renderToStream/buildTemplate.share.js +32 -10
  136. package/dist/js/node/ssr/serverRender/renderToStream/bulidTemplate.before.js +65 -47
  137. package/dist/js/node/ssr/serverRender/renderToStream/index.js +69 -30
  138. package/dist/js/node/ssr/serverRender/renderToStream/loadable.js +29 -12
  139. package/dist/js/node/ssr/serverRender/renderToStream/renderToPipe.js +75 -43
  140. package/dist/js/node/ssr/serverRender/renderToStream/styledComponent.js +29 -11
  141. package/dist/js/node/ssr/serverRender/renderToStream/template.js +36 -16
  142. package/dist/js/node/ssr/serverRender/renderToStream/type.js +15 -0
  143. package/dist/js/node/ssr/serverRender/renderToString/entry.js +135 -103
  144. package/dist/js/node/ssr/serverRender/renderToString/index.js +64 -20
  145. package/dist/js/node/ssr/serverRender/renderToString/loadable.js +45 -26
  146. package/dist/js/node/ssr/serverRender/renderToString/reduce.js +27 -7
  147. package/dist/js/node/ssr/serverRender/renderToString/styledComponent.js +27 -8
  148. package/dist/js/node/ssr/serverRender/renderToString/template.js +44 -28
  149. package/dist/js/node/ssr/serverRender/renderToString/type.js +31 -12
  150. package/dist/js/node/ssr/serverRender/types.js +25 -10
  151. package/dist/js/node/ssr/serverRender/utils.js +31 -13
  152. package/dist/js/node/ssr/type.d.js +0 -0
  153. package/dist/js/node/ssr/utils.js +63 -29
  154. package/dist/js/node/state/cli/index.js +58 -37
  155. package/dist/js/node/state/index.js +33 -30
  156. package/dist/js/node/state/plugins.js +43 -22
  157. package/dist/js/node/state/runtime/index.js +36 -50
  158. package/dist/js/node/state/runtime/plugin.js +89 -68
  159. package/dist/js/node/state/types.js +15 -5
  160. package/dist/js/treeshaking/cli/index.js +180 -52
  161. package/dist/js/treeshaking/cli/types.d.js +1 -0
  162. package/dist/js/treeshaking/common.js +4 -3
  163. package/dist/js/treeshaking/core/app-config.js +8 -13
  164. package/dist/js/treeshaking/core/compatible.js +473 -276
  165. package/dist/js/treeshaking/core/index.js +5 -6
  166. package/dist/js/treeshaking/core/loader/index.js +2 -1
  167. package/dist/js/treeshaking/core/loader/loaderManager.js +395 -224
  168. package/dist/js/treeshaking/core/loader/useLoader.js +181 -83
  169. package/dist/js/treeshaking/core/plugin.js +164 -48
  170. package/dist/js/treeshaking/document/Body.js +15 -11
  171. package/dist/js/treeshaking/document/DocumentContext.js +7 -6
  172. package/dist/js/treeshaking/document/DocumentStructrueContext.js +8 -7
  173. package/dist/js/treeshaking/document/Head.js +18 -17
  174. package/dist/js/treeshaking/document/Html.js +86 -93
  175. package/dist/js/treeshaking/document/Root.js +23 -21
  176. package/dist/js/treeshaking/document/Script.js +15 -0
  177. package/dist/js/treeshaking/document/Scripts.js +7 -9
  178. package/dist/js/treeshaking/document/cli/index.js +381 -168
  179. package/dist/js/treeshaking/document/constants.js +34 -16
  180. package/dist/js/treeshaking/document/index.js +2 -1
  181. package/dist/js/treeshaking/document/type.d.js +1 -0
  182. package/dist/js/treeshaking/exports/head.js +4 -3
  183. package/dist/js/treeshaking/exports/loadable.js +4 -3
  184. package/dist/js/treeshaking/exports/server.js +4 -3
  185. package/dist/js/treeshaking/exports/styled.js +4 -3
  186. package/dist/js/treeshaking/index.js +3 -2
  187. package/dist/js/treeshaking/modern-app.env.d.js +1 -0
  188. package/dist/js/treeshaking/router/cli/index.js +145 -99
  189. package/dist/js/treeshaking/router/index.js +4 -3
  190. package/dist/js/treeshaking/router/runtime/DefaultNotFound.js +14 -15
  191. package/dist/js/treeshaking/router/runtime/index.js +5 -3
  192. package/dist/js/treeshaking/router/runtime/plugin.js +129 -62
  193. package/dist/js/treeshaking/router/runtime/plugin.node.js +375 -152
  194. package/dist/js/treeshaking/router/runtime/root/index.js +17 -15
  195. package/dist/js/treeshaking/router/runtime/root/load.js +290 -95
  196. package/dist/js/treeshaking/router/runtime/server.js +1 -1
  197. package/dist/js/treeshaking/router/runtime/types.js +1 -1
  198. package/dist/js/treeshaking/router/runtime/utils.js +230 -142
  199. package/dist/js/treeshaking/router/runtime/withRouter.js +67 -18
  200. package/dist/js/treeshaking/runtime-context.js +4 -3
  201. package/dist/js/treeshaking/ssr/cli/babel-plugin-ssr-loader-id.js +122 -0
  202. package/dist/js/treeshaking/ssr/cli/index.js +210 -138
  203. package/dist/js/treeshaking/ssr/index.js +305 -144
  204. package/dist/js/treeshaking/ssr/index.node.js +234 -66
  205. package/dist/js/treeshaking/ssr/prefetch.js +196 -79
  206. package/dist/js/treeshaking/ssr/react/index.js +3 -2
  207. package/dist/js/treeshaking/ssr/react/nossr/index.js +57 -14
  208. package/dist/js/treeshaking/ssr/react/prerender/index.js +226 -89
  209. package/dist/js/treeshaking/ssr/react/prerender/type.js +1 -0
  210. package/dist/js/treeshaking/ssr/react/prerender/util.js +96 -86
  211. package/dist/js/treeshaking/ssr/react/withCallback/index.js +16 -15
  212. package/dist/js/treeshaking/ssr/serverRender/helmet.js +38 -34
  213. package/dist/js/treeshaking/ssr/serverRender/index.js +165 -37
  214. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.after.js +33 -31
  215. package/dist/js/treeshaking/ssr/serverRender/renderToStream/buildTemplate.share.js +7 -7
  216. package/dist/js/treeshaking/ssr/serverRender/renderToStream/bulidTemplate.before.js +109 -58
  217. package/dist/js/treeshaking/ssr/serverRender/renderToStream/index.js +157 -42
  218. package/dist/js/treeshaking/ssr/serverRender/renderToStream/loadable.js +20 -20
  219. package/dist/js/treeshaking/ssr/serverRender/renderToStream/renderToPipe.js +114 -63
  220. package/dist/js/treeshaking/ssr/serverRender/renderToStream/styledComponent.js +11 -10
  221. package/dist/js/treeshaking/ssr/serverRender/renderToStream/template.js +61 -20
  222. package/dist/js/treeshaking/ssr/serverRender/renderToStream/type.js +1 -0
  223. package/dist/js/treeshaking/ssr/serverRender/renderToString/entry.js +380 -208
  224. package/dist/js/treeshaking/ssr/serverRender/renderToString/index.js +161 -40
  225. package/dist/js/treeshaking/ssr/serverRender/renderToString/loadable.js +51 -45
  226. package/dist/js/treeshaking/ssr/serverRender/renderToString/reduce.js +9 -8
  227. package/dist/js/treeshaking/ssr/serverRender/renderToString/styledComponent.js +9 -8
  228. package/dist/js/treeshaking/ssr/serverRender/renderToString/template.js +142 -64
  229. package/dist/js/treeshaking/ssr/serverRender/renderToString/type.js +7 -6
  230. package/dist/js/treeshaking/ssr/serverRender/types.js +1 -1
  231. package/dist/js/treeshaking/ssr/serverRender/utils.js +67 -26
  232. package/dist/js/treeshaking/ssr/type.d.js +1 -0
  233. package/dist/js/treeshaking/ssr/utils.js +128 -64
  234. package/dist/js/treeshaking/state/cli/index.js +70 -68
  235. package/dist/js/treeshaking/state/index.js +4 -3
  236. package/dist/js/treeshaking/state/plugins.js +12 -11
  237. package/dist/js/treeshaking/state/runtime/index.js +5 -4
  238. package/dist/js/treeshaking/state/runtime/plugin.js +189 -77
  239. package/dist/js/treeshaking/state/types.js +1 -1
  240. package/dist/types/cli/index.d.ts +2 -0
  241. package/dist/types/core/loader/loaderManager.d.ts +1 -0
  242. package/dist/types/core/loader/useLoader.d.ts +5 -0
  243. package/dist/types/core/plugin.d.ts +6 -1
  244. package/dist/types/document/Script.d.ts +4 -0
  245. package/dist/types/document/cli/index.d.ts +2 -0
  246. package/dist/types/document/constants.d.ts +2 -0
  247. package/dist/types/document/index.d.ts +1 -0
  248. package/dist/types/router/cli/index.d.ts +2 -0
  249. package/dist/types/router/runtime/index.d.ts +1 -0
  250. package/dist/types/router/runtime/plugin.d.ts +5 -2
  251. package/dist/types/router/runtime/types.d.ts +5 -2
  252. package/dist/types/ssr/cli/babel-plugin-ssr-loader-id.d.ts +1 -0
  253. package/dist/types/ssr/cli/index.d.ts +2 -0
  254. package/dist/types/state/cli/index.d.ts +2 -0
  255. package/dist/types/state/types.d.ts +1 -0
  256. package/package.json +24 -13
  257. package/types/index.d.ts +2 -2
  258. package/types/router.d.ts +2 -2
@@ -1,288 +1,485 @@
1
- import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
4
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
5
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
6
- var _excluded = ["context"];
7
- import React, { useContext, useMemo } from 'react';
8
- import hoistNonReactStatics from 'hoist-non-react-statics';
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithoutHoles(arr) {
7
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
8
+ }
9
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
10
+ try {
11
+ var info = gen[key](arg);
12
+ var value = info.value;
13
+ } catch (error) {
14
+ reject(error);
15
+ return;
16
+ }
17
+ if (info.done) {
18
+ resolve(value);
19
+ } else {
20
+ Promise.resolve(value).then(_next, _throw);
21
+ }
22
+ }
23
+ function _asyncToGenerator(fn) {
24
+ return function() {
25
+ var self = this, args = arguments;
26
+ return new Promise(function(resolve, reject) {
27
+ var gen = fn.apply(self, args);
28
+ function _next(value) {
29
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
30
+ }
31
+ function _throw(err) {
32
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
33
+ }
34
+ _next(undefined);
35
+ });
36
+ };
37
+ }
38
+ function _defineProperty(obj, key, value) {
39
+ if (key in obj) {
40
+ Object.defineProperty(obj, key, {
41
+ value: value,
42
+ enumerable: true,
43
+ configurable: true,
44
+ writable: true
45
+ });
46
+ } else {
47
+ obj[key] = value;
48
+ }
49
+ return obj;
50
+ }
51
+ function _instanceof(left, right) {
52
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
53
+ return !!right[Symbol.hasInstance](left);
54
+ } else {
55
+ return left instanceof right;
56
+ }
57
+ }
58
+ function _iterableToArray(iter) {
59
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
60
+ }
61
+ function _nonIterableSpread() {
62
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
63
+ }
64
+ function _objectSpread(target) {
65
+ for(var i = 1; i < arguments.length; i++){
66
+ var source = arguments[i] != null ? arguments[i] : {};
67
+ var ownKeys = Object.keys(source);
68
+ if (typeof Object.getOwnPropertySymbols === "function") {
69
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
70
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
71
+ }));
72
+ }
73
+ ownKeys.forEach(function(key) {
74
+ _defineProperty(target, key, source[key]);
75
+ });
76
+ }
77
+ return target;
78
+ }
79
+ function _objectWithoutProperties(source, excluded) {
80
+ if (source == null) return {};
81
+ var target = _objectWithoutPropertiesLoose(source, excluded);
82
+ var key, i;
83
+ if (Object.getOwnPropertySymbols) {
84
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
85
+ for(i = 0; i < sourceSymbolKeys.length; i++){
86
+ key = sourceSymbolKeys[i];
87
+ if (excluded.indexOf(key) >= 0) continue;
88
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
89
+ target[key] = source[key];
90
+ }
91
+ }
92
+ return target;
93
+ }
94
+ function _objectWithoutPropertiesLoose(source, excluded) {
95
+ if (source == null) return {};
96
+ var target = {};
97
+ var sourceKeys = Object.keys(source);
98
+ var key, i;
99
+ for(i = 0; i < sourceKeys.length; i++){
100
+ key = sourceKeys[i];
101
+ if (excluded.indexOf(key) >= 0) continue;
102
+ target[key] = source[key];
103
+ }
104
+ return target;
105
+ }
106
+ function _toConsumableArray(arr) {
107
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
108
+ }
109
+ function _unsupportedIterableToArray(o, minLen) {
110
+ if (!o) return;
111
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
112
+ var n = Object.prototype.toString.call(o).slice(8, -1);
113
+ if (n === "Object" && o.constructor) n = o.constructor.name;
114
+ if (n === "Map" || n === "Set") return Array.from(n);
115
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
116
+ }
117
+ var __generator = this && this.__generator || function(thisArg, body) {
118
+ var f, y, t, g, _ = {
119
+ label: 0,
120
+ sent: function() {
121
+ if (t[0] & 1) throw t[1];
122
+ return t[1];
123
+ },
124
+ trys: [],
125
+ ops: []
126
+ };
127
+ return(g = {
128
+ next: verb(0),
129
+ "throw": verb(1),
130
+ "return": verb(2)
131
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
132
+ return this;
133
+ }), g);
134
+ function verb(n) {
135
+ return function(v) {
136
+ return step([
137
+ n,
138
+ v
139
+ ]);
140
+ };
141
+ }
142
+ function step(op) {
143
+ if (f) throw new TypeError("Generator is already executing.");
144
+ while(_)try {
145
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
146
+ if (y = 0, t) op = [
147
+ op[0] & 2,
148
+ t.value
149
+ ];
150
+ switch(op[0]){
151
+ case 0:
152
+ case 1:
153
+ t = op;
154
+ break;
155
+ case 4:
156
+ _.label++;
157
+ return {
158
+ value: op[1],
159
+ done: false
160
+ };
161
+ case 5:
162
+ _.label++;
163
+ y = op[1];
164
+ op = [
165
+ 0
166
+ ];
167
+ continue;
168
+ case 7:
169
+ op = _.ops.pop();
170
+ _.trys.pop();
171
+ continue;
172
+ default:
173
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
174
+ _ = 0;
175
+ continue;
176
+ }
177
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
178
+ _.label = op[1];
179
+ break;
180
+ }
181
+ if (op[0] === 6 && _.label < t[1]) {
182
+ _.label = t[1];
183
+ t = op;
184
+ break;
185
+ }
186
+ if (t && _.label < t[2]) {
187
+ _.label = t[2];
188
+ _.ops.push(op);
189
+ break;
190
+ }
191
+ if (t[2]) _.ops.pop();
192
+ _.trys.pop();
193
+ continue;
194
+ }
195
+ op = body.call(thisArg, _);
196
+ } catch (e) {
197
+ op = [
198
+ 6,
199
+ e
200
+ ];
201
+ y = 0;
202
+ } finally{
203
+ f = t = 0;
204
+ }
205
+ if (op[0] & 5) throw op[1];
206
+ return {
207
+ value: op[0] ? op[1] : void 0,
208
+ done: true
209
+ };
210
+ }
211
+ };
212
+ import { jsx } from "react/jsx-runtime";
213
+ import React, { useContext, useMemo } from "react";
214
+ import hoistNonReactStatics from "hoist-non-react-statics";
215
+ import { ROUTE_MANIFEST } from "@modern-js/utils/constants";
9
216
  import { RuntimeReactContext } from "../runtime-context";
10
217
  import { runtime } from "./plugin";
11
218
  import { createLoaderManager } from "./loader/loaderManager";
12
- import { jsx as _jsx } from "react/jsx-runtime";
13
- var IS_REACT18 = process.env.IS_REACT18 === 'true';
14
- var ROUTE_MANIFEST = "_MODERNJS_ROUTE_MANIFEST";
219
+ var IS_REACT18 = process.env.IS_REACT18 === "true";
15
220
  function isClientArgs(id) {
16
- return typeof id === 'string' || typeof HTMLElement !== 'undefined' && id instanceof HTMLElement;
221
+ return typeof id === "string" || typeof HTMLElement !== "undefined" && _instanceof(id, HTMLElement);
17
222
  }
18
- var runnerMap = new WeakMap();
19
- var getInitialContext = function getInitialContext(runner) {
20
- return {
21
- loaderManager: createLoaderManager({}),
22
- runner: runner,
23
- isBrowser: true,
24
- routeManifest: typeof window !== 'undefined' && window[ROUTE_MANIFEST]
25
- };
26
- };
27
- export var createApp = function createApp(_ref) {
28
- var plugins = _ref.plugins;
29
- var appRuntime = runtime.clone();
30
- appRuntime.usePlugin.apply(appRuntime, _toConsumableArray(plugins));
31
- return function (App) {
32
- var runner = appRuntime.init();
33
- var WrapperComponent = function WrapperComponent(props) {
34
- var element = /*#__PURE__*/React.createElement(App || React.Fragment, _objectSpread({}, props), props.children);
35
- var context = useContext(RuntimeReactContext);
36
- return runner.provide({
37
- element: element,
38
- props: _objectSpread({}, props),
39
- context: context
40
- }, {
41
- onLast: function onLast(_ref2) {
42
- var element = _ref2.element;
43
- return element;
44
- }
45
- });
223
+ var runnerMap = /* @__PURE__ */ new WeakMap();
224
+ var getInitialContext = function(runner) {
225
+ return {
226
+ loaderManager: createLoaderManager({}),
227
+ runner: runner,
228
+ isBrowser: true,
229
+ routeManifest: typeof window !== "undefined" && window[ROUTE_MANIFEST]
46
230
  };
47
- if (App) {
48
- hoistNonReactStatics(WrapperComponent, App);
49
- }
50
- var HOCApp = runner.hoc({
51
- App: WrapperComponent
52
- }, {
53
- onLast: function onLast(_ref3) {
54
- var App = _ref3.App;
55
- var WrapComponent = function WrapComponent(_ref4) {
56
- var _contextValue;
57
- var context = _ref4.context,
58
- props = _objectWithoutProperties(_ref4, _excluded);
59
- var contextValue = context;
60
-
61
- // We should construct the context, when root component is not passed into `bootstrap`.
62
- if (!((_contextValue = contextValue) !== null && _contextValue !== void 0 && _contextValue.runner)) {
63
- contextValue = getInitialContext(runner);
64
- runner.init({
65
- context: contextValue
231
+ };
232
+ var createApp = function(param) {
233
+ var plugins = param.plugins;
234
+ var _appRuntime;
235
+ var appRuntime = runtime.clone();
236
+ (_appRuntime = appRuntime).usePlugin.apply(_appRuntime, _toConsumableArray(plugins));
237
+ return function(App) {
238
+ var runner = appRuntime.init();
239
+ var WrapperComponent = function(props) {
240
+ var element = React.createElement(App || React.Fragment, _objectSpread({}, props), props.children);
241
+ var context = useContext(RuntimeReactContext);
242
+ return runner.provide({
243
+ element: element,
244
+ props: _objectSpread({}, props),
245
+ context: context
66
246
  }, {
67
- onLast: function onLast(_ref5) {
68
- var _App$init;
69
- var context1 = _ref5.context;
70
- return App === null || App === void 0 ? void 0 : (_App$init = App.init) === null || _App$init === void 0 ? void 0 : _App$init.call(App, context1);
71
- }
247
+ onLast: function(param) {
248
+ var element2 = param.element;
249
+ return element2;
250
+ }
72
251
  });
73
- }
74
- return /*#__PURE__*/_jsx(RuntimeReactContext.Provider, {
75
- value: contextValue,
76
- children: /*#__PURE__*/_jsx(App, _objectSpread({}, props))
77
- });
78
252
  };
79
- return hoistNonReactStatics(WrapComponent, App);
80
- }
81
- });
82
- runnerMap.set(HOCApp, runner);
83
- return HOCApp;
84
- };
85
- };
86
- export var bootstrap = /*#__PURE__*/function () {
87
- var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(BootApp,
88
- /**
89
- * When csr, id is root id.
90
- * When ssr, id is serverContext
91
- */
92
- id,
93
- /**
94
- * root.render need use root to run function
95
- */
96
- root, ReactDOM
97
- // eslint-disable-next-line consistent-return
98
- ) {
99
- var App, runner, context, runInit, isBrowser, _ssrData$data, _ssrData$data2, ssrData, loadersData, initialLoadersState, initialData, rootElement, ModernRender, ModernHydrate, isRedirectResponse, _initialData;
100
- return _regeneratorRuntime().wrap(function _callee$(_context2) {
101
- while (1) {
102
- switch (_context2.prev = _context2.next) {
103
- case 0:
104
- App = BootApp;
105
- runner = runnerMap.get(App); // ensure Component used is created by `createApp`
106
- if (!runner) {
107
- App = createApp({
108
- plugins: []
109
- })(App);
110
- runner = runnerMap.get(App);
111
- }
112
- context = getInitialContext(runner);
113
- runInit = function runInit(_context) {
114
- return runner.init({
115
- context: _context
116
- }, {
117
- onLast: function onLast(_ref7) {
118
- var _App, _App$init2;
119
- var context1 = _ref7.context;
120
- return (_App = App) === null || _App === void 0 ? void 0 : (_App$init2 = _App.init) === null || _App$init2 === void 0 ? void 0 : _App$init2.call(_App, context1);
121
- }
122
- });
123
- }; // don't mount the App, let user in charge of it.
124
- if (id) {
125
- _context2.next = 7;
126
- break;
127
- }
128
- return _context2.abrupt("return", /*#__PURE__*/React.createElement(App, {
129
- context: context
130
- }));
131
- case 7:
132
- isBrowser = typeof window !== 'undefined' && window.name !== 'nodejs';
133
- if (!isBrowser) {
134
- _context2.next = 30;
135
- break;
136
- }
137
- if (!isClientArgs(id)) {
138
- _context2.next = 27;
139
- break;
140
- }
141
- ssrData = window._SSR_DATA;
142
- loadersData = (ssrData === null || ssrData === void 0 ? void 0 : (_ssrData$data = ssrData.data) === null || _ssrData$data === void 0 ? void 0 : _ssrData$data.loadersData) || {};
143
- initialLoadersState = Object.keys(loadersData).reduce(function (res, key) {
144
- var loaderData = loadersData[key];
145
- if (loaderData.loading !== false) {
146
- return res;
147
- }
148
- res[key] = loaderData;
149
- return res;
150
- }, {});
151
- Object.assign(context, _objectSpread({
152
- loaderManager: createLoaderManager(initialLoadersState, {
153
- skipStatic: true
154
- })
155
- }, ssrData ? {
156
- ssrContext: ssrData === null || ssrData === void 0 ? void 0 : ssrData.context
157
- } : {}));
158
- context.initialData = ssrData === null || ssrData === void 0 ? void 0 : (_ssrData$data2 = ssrData.data) === null || _ssrData$data2 === void 0 ? void 0 : _ssrData$data2.initialData;
159
- _context2.next = 17;
160
- return runInit(context);
161
- case 17:
162
- initialData = _context2.sent;
163
- if (initialData) {
164
- context.initialData = initialData;
165
- }
166
- rootElement = typeof id !== 'string' ? id : document.getElementById(id || 'root');
167
- if (ReactDOM) {
168
- _context2.next = 22;
169
- break;
253
+ if (App) {
254
+ hoistNonReactStatics(WrapperComponent, App);
255
+ }
256
+ var HOCApp = runner.hoc({
257
+ App: WrapperComponent
258
+ }, {
259
+ onLast: function(param) {
260
+ var App2 = param.App;
261
+ var WrapComponent = function(_param) {
262
+ var context = _param.context, props = _objectWithoutProperties(_param, [
263
+ "context"
264
+ ]);
265
+ var contextValue = context;
266
+ if (!(contextValue === null || contextValue === void 0 ? void 0 : contextValue.runner)) {
267
+ contextValue = getInitialContext(runner);
268
+ runner.init({
269
+ context: contextValue
270
+ }, {
271
+ onLast: function(param) {
272
+ var context1 = param.context;
273
+ var ref;
274
+ return App2 === null || App2 === void 0 ? void 0 : (ref = App2.init) === null || ref === void 0 ? void 0 : ref.call(App2, context1);
275
+ }
276
+ });
277
+ }
278
+ return /* @__PURE__ */ jsx(RuntimeReactContext.Provider, {
279
+ value: contextValue,
280
+ children: /* @__PURE__ */ jsx(App2, _objectSpread({}, props))
281
+ });
282
+ };
283
+ return hoistNonReactStatics(WrapComponent, App2);
170
284
  }
171
- throw Error('The `bootstrap` need provide `ReactDOM` parameter');
172
- case 22:
173
- // https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html
174
- ModernRender = function ModernRender(App) {
175
- if (IS_REACT18) {
176
- if (root) {
177
- root.render(App);
178
- } else if (ReactDOM.createRoot) {
179
- ReactDOM.createRoot(rootElement).render(App);
180
- } else {
181
- throw Error('The `bootstrap` `ReactDOM` parameter needs to provide the `createRoot` method');
182
- }
183
- } else {
184
- if (!ReactDOM.render) {
185
- throw Error('The `bootstrap` `ReactDOM` parameter needs to provide the `render` method');
186
- }
187
- ReactDOM.render(App, rootElement);
188
- }
189
- };
190
- ModernHydrate = function ModernHydrate(App, callback) {
191
- if (IS_REACT18) {
192
- if (!ReactDOM.hydrateRoot) {
193
- throw Error('The `bootstrap` `ReactDOM` parameter needs to provide the `hydrateRoot` method');
194
- }
195
- ReactDOM.hydrateRoot(rootElement, App);
196
- } else {
197
- if (!ReactDOM.hydrate) {
198
- throw Error('The `bootstrap` `ReactDOM` parameter needs to provide the `hydrate` method');
199
- }
200
- ReactDOM.hydrate(App, rootElement, callback);
201
- }
202
- };
203
- return _context2.abrupt("return", runner.client({
204
- App: App,
205
- context: context,
206
- ModernRender: ModernRender,
207
- ModernHydrate: ModernHydrate
208
- }, {
209
- onLast: function onLast(_ref8) {
210
- var App = _ref8.App;
211
- ModernRender( /*#__PURE__*/React.createElement(App, {
212
- context: context
213
- }));
214
- }
215
- }));
216
- case 27:
217
- throw Error('`bootstrap` needs id in browser environment, it needs to be string or element');
218
- case 28:
219
- _context2.next = 38;
220
- break;
221
- case 30:
222
- Object.assign(context, {
223
- ssrContext: id,
224
- isBrowser: false,
225
- loaderManager: createLoaderManager({}, {
226
- skipNonStatic: id.staticGenerate,
227
- // if not static generate, only non-static loader can exec on prod env
228
- skipStatic: process.env.NODE_ENV === 'production' && !id.staticGenerate
229
- })
230
- });
231
-
232
- // Handle redirects from React Router with an HTTP redirect
233
- isRedirectResponse = function isRedirectResponse(result) {
234
- if (typeof Response !== 'undefined' &&
235
- // fix: ssg workflow doesn't inject Web Response
236
- result instanceof Response && result.status >= 300 && result.status <= 399) {
237
- var status = result.status;
238
- var redirectUrl = result.headers.get('Location') || '/';
239
- var ssrContext = context.ssrContext;
240
- if (ssrContext) {
241
- ssrContext.res.statusCode = status;
242
- ssrContext.res.setHeader('Location', redirectUrl);
243
- ssrContext.redirection.status = status;
244
- ssrContext.redirection.url = redirectUrl;
245
- }
246
- return true;
247
- }
248
- return false;
249
- };
250
- _context2.next = 34;
251
- return runInit(context);
252
- case 34:
253
- _initialData = _context2.sent;
254
- if (isRedirectResponse(_initialData)) {
255
- _context2.next = 38;
256
- break;
285
+ });
286
+ runnerMap.set(HOCApp, runner);
287
+ return HOCApp;
288
+ };
289
+ };
290
+ var bootstrap = function() {
291
+ var _ref = _asyncToGenerator(function(BootApp, id, root, ReactDOM) {
292
+ var App, runner, context, runInit, isBrowser, ref, ref1, ssrData, loadersData, initialLoadersState, initialData, rootElement, ModernRender, ModernHydrate, isRedirectResponse, initialData1;
293
+ return __generator(this, function(_state) {
294
+ switch(_state.label){
295
+ case 0:
296
+ App = BootApp;
297
+ runner = runnerMap.get(App);
298
+ if (!runner) {
299
+ App = createApp({
300
+ plugins: []
301
+ })(App);
302
+ runner = runnerMap.get(App);
303
+ }
304
+ context = getInitialContext(runner);
305
+ runInit = function(_context) {
306
+ return runner.init({
307
+ context: _context
308
+ }, {
309
+ onLast: function(param) {
310
+ var context1 = param.context;
311
+ var ref;
312
+ return App === null || App === void 0 ? void 0 : (ref = App.init) === null || ref === void 0 ? void 0 : ref.call(App, context1);
313
+ }
314
+ });
315
+ };
316
+ if (!id) {
317
+ return [
318
+ 2,
319
+ React.createElement(App, {
320
+ context: context
321
+ })
322
+ ];
323
+ }
324
+ isBrowser = typeof window !== "undefined" && window.name !== "nodejs";
325
+ if (!isBrowser) return [
326
+ 3,
327
+ 4
328
+ ];
329
+ if (!isClientArgs(id)) return [
330
+ 3,
331
+ 2
332
+ ];
333
+ ssrData = window._SSR_DATA;
334
+ loadersData = (ssrData === null || ssrData === void 0 ? void 0 : (ref = ssrData.data) === null || ref === void 0 ? void 0 : ref.loadersData) || {};
335
+ initialLoadersState = Object.keys(loadersData).reduce(function(res, key) {
336
+ var loaderData = loadersData[key];
337
+ if (loaderData.loading !== false) {
338
+ return res;
339
+ }
340
+ res[key] = loaderData;
341
+ return res;
342
+ }, {});
343
+ Object.assign(context, _objectSpread({
344
+ loaderManager: createLoaderManager(initialLoadersState, {
345
+ skipStatic: true
346
+ })
347
+ }, ssrData ? {
348
+ ssrContext: ssrData === null || ssrData === void 0 ? void 0 : ssrData.context
349
+ } : {}));
350
+ context.initialData = ssrData === null || ssrData === void 0 ? void 0 : (ref1 = ssrData.data) === null || ref1 === void 0 ? void 0 : ref1.initialData;
351
+ return [
352
+ 4,
353
+ runInit(context)
354
+ ];
355
+ case 1:
356
+ initialData = _state.sent();
357
+ if (initialData) {
358
+ context.initialData = initialData;
359
+ }
360
+ rootElement = typeof id !== "string" ? id : document.getElementById(id || "root");
361
+ if (!ReactDOM) {
362
+ throw Error("The `bootstrap` need provide `ReactDOM` parameter");
363
+ }
364
+ ModernRender = function(App2) {
365
+ if (IS_REACT18) {
366
+ if (root) {
367
+ root.render(App2);
368
+ } else if (ReactDOM.createRoot) {
369
+ ReactDOM.createRoot(rootElement).render(App2);
370
+ } else {
371
+ throw Error("The `bootstrap` `ReactDOM` parameter needs to provide the `createRoot` method");
372
+ }
373
+ } else {
374
+ if (!ReactDOM.render) {
375
+ throw Error("The `bootstrap` `ReactDOM` parameter needs to provide the `render` method");
376
+ }
377
+ ReactDOM.render(App2, rootElement);
378
+ }
379
+ };
380
+ ModernHydrate = function(App2, callback) {
381
+ if (IS_REACT18) {
382
+ if (!ReactDOM.hydrateRoot) {
383
+ throw Error("The `bootstrap` `ReactDOM` parameter needs to provide the `hydrateRoot` method");
384
+ }
385
+ ReactDOM.hydrateRoot(rootElement, App2);
386
+ } else {
387
+ if (!ReactDOM.hydrate) {
388
+ throw Error("The `bootstrap` `ReactDOM` parameter needs to provide the `hydrate` method");
389
+ }
390
+ ReactDOM.hydrate(App2, rootElement, callback);
391
+ }
392
+ };
393
+ return [
394
+ 2,
395
+ runner.client({
396
+ App: App,
397
+ context: context,
398
+ ModernRender: ModernRender,
399
+ ModernHydrate: ModernHydrate
400
+ }, {
401
+ onLast: function(param) {
402
+ var App2 = param.App;
403
+ ModernRender(React.createElement(App2, {
404
+ context: context
405
+ }));
406
+ }
407
+ })
408
+ ];
409
+ case 2:
410
+ throw Error("`bootstrap` needs id in browser environment, it needs to be string or element");
411
+ case 3:
412
+ return [
413
+ 3,
414
+ 6
415
+ ];
416
+ case 4:
417
+ Object.assign(context, {
418
+ ssrContext: id,
419
+ isBrowser: false,
420
+ loaderManager: createLoaderManager({}, {
421
+ skipNonStatic: id.staticGenerate,
422
+ skipStatic: process.env.NODE_ENV === "production" && !id.staticGenerate
423
+ })
424
+ });
425
+ isRedirectResponse = function(result) {
426
+ if (typeof Response !== "undefined" && _instanceof(result, Response) && result.status >= 300 && result.status <= 399) {
427
+ var status = result.status;
428
+ var redirectUrl = result.headers.get("Location") || "/";
429
+ var ssrContext = context.ssrContext;
430
+ if (ssrContext) {
431
+ ssrContext.res.statusCode = status;
432
+ ssrContext.res.setHeader("Location", redirectUrl);
433
+ ssrContext.redirection.status = status;
434
+ ssrContext.redirection.url = redirectUrl;
435
+ }
436
+ return true;
437
+ }
438
+ return false;
439
+ };
440
+ return [
441
+ 4,
442
+ runInit(context)
443
+ ];
444
+ case 5:
445
+ initialData1 = _state.sent();
446
+ if (!isRedirectResponse(initialData1)) {
447
+ context.initialData = initialData1;
448
+ return [
449
+ 2,
450
+ runner.server({
451
+ App: App,
452
+ context: context
453
+ })
454
+ ];
455
+ }
456
+ _state.label = 6;
457
+ case 6:
458
+ return [
459
+ 2
460
+ ];
257
461
  }
258
- context.initialData = _initialData;
259
- return _context2.abrupt("return", runner.server({
260
- App: App,
261
- context: context
262
- }));
263
- case 38:
264
- case "end":
265
- return _context2.stop();
266
- }
267
- }
268
- }, _callee);
269
- }));
270
- return function bootstrap(_x, _x2, _x3, _x4) {
271
- return _ref6.apply(this, arguments);
272
- };
273
- }();
274
- export var useRuntimeContext = function useRuntimeContext() {
275
- var context = useContext(RuntimeReactContext);
276
- var memoizedContext = useMemo(function () {
277
- return context.runner.pickContext({
278
- context: context,
279
- pickedContext: {}
280
- }, {
281
- onLast: function onLast(_ref9) {
282
- var pickedContext = _ref9.pickedContext;
283
- return pickedContext;
284
- }
462
+ });
285
463
  });
286
- }, [context]);
287
- return memoizedContext;
288
- };
464
+ return function bootstrap(BootApp, id, root, ReactDOM) {
465
+ return _ref.apply(this, arguments);
466
+ };
467
+ }();
468
+ var useRuntimeContext = function() {
469
+ var context = useContext(RuntimeReactContext);
470
+ var memoizedContext = useMemo(function() {
471
+ return context.runner.pickContext({
472
+ context: context,
473
+ pickedContext: {}
474
+ }, {
475
+ onLast: function(param) {
476
+ var pickedContext = param.pickedContext;
477
+ return pickedContext;
478
+ }
479
+ });
480
+ }, [
481
+ context
482
+ ]);
483
+ return memoizedContext;
484
+ };
485
+ export { bootstrap, createApp, useRuntimeContext };