@modern-js/utils 2.69.4 → 3.0.0-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 (265) hide show
  1. package/dist/cjs/cli/alias.js +76 -70
  2. package/dist/cjs/cli/applyOptionsChain.js +44 -45
  3. package/dist/cjs/cli/babel.js +100 -119
  4. package/dist/cjs/cli/commands.js +61 -59
  5. package/dist/cjs/cli/common.js +45 -37
  6. package/dist/cjs/cli/config.js +36 -30
  7. package/dist/cjs/cli/constants.js +124 -161
  8. package/dist/cjs/cli/ensure.js +52 -45
  9. package/dist/cjs/cli/fs.js +41 -38
  10. package/dist/cjs/cli/get/config.js +43 -38
  11. package/dist/cjs/cli/get/data.js +108 -125
  12. package/dist/cjs/cli/get/index.js +109 -58
  13. package/dist/cjs/cli/index.js +202 -63
  14. package/dist/cjs/cli/is/config.js +75 -71
  15. package/dist/cjs/cli/is/env.js +49 -37
  16. package/dist/cjs/cli/is/index.js +76 -25
  17. package/dist/cjs/cli/is/project.js +139 -135
  18. package/dist/cjs/cli/is/type.js +65 -49
  19. package/dist/cjs/cli/logger.js +36 -27
  20. package/dist/cjs/cli/monorepo.js +100 -96
  21. package/dist/cjs/cli/package.js +85 -82
  22. package/dist/cjs/cli/path.js +101 -82
  23. package/dist/cjs/cli/port.js +71 -74
  24. package/dist/cjs/cli/prettyInstructions.js +106 -116
  25. package/dist/cjs/cli/require.js +116 -136
  26. package/dist/cjs/cli/route.js +67 -77
  27. package/dist/cjs/cli/runtimeExports.js +16 -70
  28. package/dist/cjs/cli/version.js +53 -42
  29. package/dist/cjs/cli/watch.js +79 -72
  30. package/dist/cjs/compiled.js +199 -128
  31. package/dist/cjs/import.js +58 -33
  32. package/dist/cjs/index.js +69 -23
  33. package/dist/cjs/universal/constants.js +77 -67
  34. package/dist/cjs/universal/index.js +33 -25
  35. package/dist/cjs/universal/path.js +33 -27
  36. package/dist/cjs/universal/pluginDagSort.js +69 -68
  37. package/dist/compiled/address/index.js +171 -1
  38. package/dist/compiled/browserslist/index.js +1329 -1
  39. package/dist/compiled/chalk/index.js +2368 -1
  40. package/dist/compiled/chokidar/index.js +4138 -16
  41. package/dist/compiled/chokidar/index.js.LICENSE.txt +41 -0
  42. package/dist/compiled/commander/index.js +1540 -1
  43. package/dist/compiled/debug/index.js +621 -1
  44. package/dist/compiled/dotenv/index.js +101 -1
  45. package/dist/compiled/dotenv-expand/index.js +54 -1
  46. package/dist/compiled/execa/index.js +1738 -1
  47. package/dist/compiled/fast-glob/index.js +4645 -17
  48. package/dist/compiled/fast-glob/index.js.LICENSE.txt +38 -0
  49. package/dist/compiled/filesize/index.js +193 -4
  50. package/dist/compiled/filesize/index.js.LICENSE.txt +7 -0
  51. package/dist/compiled/fs-extra/index.js +2222 -1
  52. package/dist/compiled/glob/index.js +2011 -1
  53. package/dist/compiled/globby/index.js +690 -1
  54. package/dist/compiled/gzip-size/index.js +157 -1
  55. package/dist/compiled/import-lazy/index.js +45 -1
  56. package/dist/compiled/inquirer/index.js +20162 -4
  57. package/dist/compiled/inquirer/index.js.LICENSE.txt +7 -0
  58. package/dist/compiled/js-yaml/index.js +2188 -1
  59. package/dist/compiled/json5/index.js +983 -1
  60. package/dist/compiled/lodash/index.js +0 -4
  61. package/dist/compiled/mime-types/index.js +108 -6
  62. package/dist/compiled/mime-types/index.js.LICENSE.txt +13 -0
  63. package/dist/compiled/minimist/index.js +202 -1
  64. package/dist/compiled/nanoid/index.js +83 -1
  65. package/dist/compiled/ora/index.js +3936 -3
  66. package/dist/compiled/ora/index.js.LICENSE.txt +1 -0
  67. package/dist/compiled/pkg-up/index.js +177 -1
  68. package/dist/compiled/semver/index.js +1779 -1
  69. package/dist/compiled/signale/index.js +1704 -1
  70. package/dist/compiled/slash/index.js +32 -1
  71. package/dist/compiled/strip-ansi/index.js +34 -1
  72. package/dist/compiled/tsconfig-paths/index.js +629 -1
  73. package/dist/compiled/upath/index.js +135 -1
  74. package/dist/compiled/url-join/index.js +61 -1
  75. package/dist/compiled/webpack-chain/index.js +1475 -1
  76. package/dist/esm/cli/alias.mjs +31 -0
  77. package/dist/esm/cli/applyOptionsChain.mjs +16 -0
  78. package/dist/esm/cli/babel.mjs +76 -0
  79. package/dist/esm/cli/commands.mjs +23 -0
  80. package/dist/esm/cli/common.mjs +11 -0
  81. package/dist/esm/cli/config.mjs +5 -0
  82. package/dist/esm/cli/constants.mjs +29 -0
  83. package/dist/esm/cli/ensure.mjs +9 -0
  84. package/dist/esm/cli/fs.mjs +9 -0
  85. package/dist/esm/cli/get/config.mjs +14 -0
  86. package/dist/esm/cli/get/data.mjs +57 -0
  87. package/dist/esm/cli/get/index.mjs +18 -0
  88. package/dist/{esm-node/cli/index.js → esm/cli/index.mjs} +0 -1
  89. package/dist/esm/cli/is/config.mjs +34 -0
  90. package/dist/esm/cli/is/env.mjs +6 -0
  91. package/dist/esm/cli/is/project.mjs +104 -0
  92. package/dist/esm/cli/is/type.mjs +26 -0
  93. package/dist/esm/cli/logger.mjs +2 -0
  94. package/dist/esm/cli/monorepo.mjs +50 -0
  95. package/dist/esm/cli/package.mjs +51 -0
  96. package/dist/esm/cli/path.mjs +35 -0
  97. package/dist/esm/cli/port.mjs +35 -0
  98. package/dist/esm/cli/prettyInstructions.mjs +68 -0
  99. package/dist/esm/cli/require.mjs +79 -0
  100. package/dist/esm/cli/route.mjs +36 -0
  101. package/dist/esm/cli/runtimeExports.mjs +0 -0
  102. package/dist/esm/cli/version.mjs +21 -0
  103. package/dist/esm/cli/watch.mjs +40 -0
  104. package/dist/esm/compiled.mjs +115 -0
  105. package/dist/esm/import.mjs +25 -0
  106. package/dist/esm/universal/constants.mjs +13 -0
  107. package/dist/{esm-node/universal/index.js → esm/universal/index.mjs} +1 -3
  108. package/dist/esm/universal/path.mjs +2 -0
  109. package/dist/esm/universal/pluginDagSort.mjs +41 -0
  110. package/dist/esm-node/cli/alias.mjs +31 -0
  111. package/dist/esm-node/cli/applyOptionsChain.mjs +16 -0
  112. package/dist/esm-node/cli/babel.mjs +76 -0
  113. package/dist/esm-node/cli/commands.mjs +23 -0
  114. package/dist/esm-node/cli/common.mjs +11 -0
  115. package/dist/esm-node/cli/config.mjs +5 -0
  116. package/dist/esm-node/cli/constants.mjs +29 -0
  117. package/dist/esm-node/cli/ensure.mjs +9 -0
  118. package/dist/esm-node/cli/fs.mjs +9 -0
  119. package/dist/esm-node/cli/get/config.mjs +14 -0
  120. package/dist/esm-node/cli/get/data.mjs +57 -0
  121. package/dist/esm-node/cli/get/index.mjs +18 -0
  122. package/dist/esm-node/cli/index.mjs +22 -0
  123. package/dist/esm-node/cli/is/config.mjs +34 -0
  124. package/dist/esm-node/cli/is/env.mjs +6 -0
  125. package/dist/esm-node/cli/is/index.mjs +4 -0
  126. package/dist/esm-node/cli/is/project.mjs +104 -0
  127. package/dist/esm-node/cli/is/type.mjs +26 -0
  128. package/dist/esm-node/cli/logger.mjs +2 -0
  129. package/dist/esm-node/cli/monorepo.mjs +50 -0
  130. package/dist/esm-node/cli/package.mjs +51 -0
  131. package/dist/esm-node/cli/path.mjs +35 -0
  132. package/dist/esm-node/cli/port.mjs +35 -0
  133. package/dist/esm-node/cli/prettyInstructions.mjs +68 -0
  134. package/dist/esm-node/cli/require.mjs +79 -0
  135. package/dist/esm-node/cli/route.mjs +36 -0
  136. package/dist/esm-node/cli/runtimeExports.mjs +0 -0
  137. package/dist/esm-node/cli/version.mjs +21 -0
  138. package/dist/esm-node/cli/watch.mjs +40 -0
  139. package/dist/esm-node/compiled.mjs +115 -0
  140. package/dist/esm-node/import.mjs +25 -0
  141. package/dist/esm-node/index.mjs +3 -0
  142. package/dist/esm-node/universal/constants.mjs +13 -0
  143. package/dist/esm-node/universal/index.mjs +2 -0
  144. package/dist/esm-node/universal/path.mjs +2 -0
  145. package/dist/esm-node/universal/pluginDagSort.mjs +41 -0
  146. package/dist/types/cli/constants.d.ts +2 -26
  147. package/dist/types/cli/get/data.d.ts +0 -1
  148. package/dist/types/cli/index.d.ts +0 -1
  149. package/dist/types/cli/is/config.d.ts +1 -1
  150. package/dist/types/cli/runtimeExports.d.ts +1 -4
  151. package/dist/types/cli/watch.d.ts +1 -1
  152. package/dist/types/compiled.d.ts +0 -5
  153. package/dist/types/universal/constants.d.ts +4 -7
  154. package/package.json +28 -57
  155. package/rslib.config.mts +140 -0
  156. package/dist/cjs/cli/action.js +0 -55
  157. package/dist/cjs/universal/formatWebpack.js +0 -127
  158. package/dist/compiled/react-server-dom-webpack/LICENSE +0 -21
  159. package/dist/compiled/react-server-dom-webpack/README.md +0 -5
  160. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js +0 -2552
  161. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.production.js +0 -1636
  162. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.development.js +0 -2708
  163. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.edge.production.js +0 -1799
  164. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.development.js +0 -2751
  165. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.production.js +0 -1848
  166. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.development.js +0 -2714
  167. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.node.unbundled.production.js +0 -1814
  168. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-node-register.js +0 -69
  169. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-plugin.js +0 -399
  170. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +0 -4015
  171. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +0 -3001
  172. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +0 -4045
  173. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +0 -3003
  174. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +0 -4116
  175. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +0 -3113
  176. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +0 -4080
  177. package/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +0 -3080
  178. package/dist/compiled/react-server-dom-webpack/client.browser.js +0 -7
  179. package/dist/compiled/react-server-dom-webpack/client.edge.js +0 -7
  180. package/dist/compiled/react-server-dom-webpack/client.js +0 -3
  181. package/dist/compiled/react-server-dom-webpack/client.node.js +0 -7
  182. package/dist/compiled/react-server-dom-webpack/client.node.unbundled.js +0 -7
  183. package/dist/compiled/react-server-dom-webpack/index.js +0 -12
  184. package/dist/compiled/react-server-dom-webpack/package.json +0 -111
  185. package/dist/compiled/react-server-dom-webpack/server.browser.js +0 -17
  186. package/dist/compiled/react-server-dom-webpack/server.edge.js +0 -17
  187. package/dist/compiled/react-server-dom-webpack/server.js +0 -6
  188. package/dist/compiled/react-server-dom-webpack/server.node.js +0 -18
  189. package/dist/compiled/react-server-dom-webpack/server.node.unbundled.js +0 -18
  190. package/dist/esm/cli/action.js +0 -68
  191. package/dist/esm/cli/alias.js +0 -43
  192. package/dist/esm/cli/applyOptionsChain.js +0 -29
  193. package/dist/esm/cli/babel.js +0 -122
  194. package/dist/esm/cli/commands.js +0 -39
  195. package/dist/esm/cli/common.js +0 -20
  196. package/dist/esm/cli/config.js +0 -11
  197. package/dist/esm/cli/constants.js +0 -114
  198. package/dist/esm/cli/ensure.js +0 -16
  199. package/dist/esm/cli/fs.js +0 -65
  200. package/dist/esm/cli/get/config.js +0 -19
  201. package/dist/esm/cli/get/data.js +0 -143
  202. package/dist/esm/cli/get/index.js +0 -38
  203. package/dist/esm/cli/index.js +0 -23
  204. package/dist/esm/cli/is/config.js +0 -70
  205. package/dist/esm/cli/is/env.js +0 -22
  206. package/dist/esm/cli/is/index.js +0 -4
  207. package/dist/esm/cli/is/project.js +0 -146
  208. package/dist/esm/cli/is/type.js +0 -39
  209. package/dist/esm/cli/logger.js +0 -5
  210. package/dist/esm/cli/monorepo.js +0 -82
  211. package/dist/esm/cli/package.js +0 -203
  212. package/dist/esm/cli/path.js +0 -66
  213. package/dist/esm/cli/port.js +0 -97
  214. package/dist/esm/cli/prettyInstructions.js +0 -102
  215. package/dist/esm/cli/require.js +0 -235
  216. package/dist/esm/cli/route.js +0 -64
  217. package/dist/esm/cli/runtimeExports.js +0 -44
  218. package/dist/esm/cli/version.js +0 -26
  219. package/dist/esm/cli/watch.js +0 -112
  220. package/dist/esm/compiled.js +0 -66
  221. package/dist/esm/import.js +0 -11
  222. package/dist/esm/index.js +0 -3
  223. package/dist/esm/universal/constants.js +0 -32
  224. package/dist/esm/universal/formatWebpack.js +0 -95
  225. package/dist/esm/universal/index.js +0 -4
  226. package/dist/esm/universal/path.js +0 -6
  227. package/dist/esm/universal/pluginDagSort.js +0 -73
  228. package/dist/esm-node/cli/action.js +0 -30
  229. package/dist/esm-node/cli/alias.js +0 -40
  230. package/dist/esm-node/cli/applyOptionsChain.js +0 -27
  231. package/dist/esm-node/cli/babel.js +0 -107
  232. package/dist/esm-node/cli/commands.js +0 -39
  233. package/dist/esm-node/cli/common.js +0 -15
  234. package/dist/esm-node/cli/config.js +0 -9
  235. package/dist/esm-node/cli/constants.js +0 -114
  236. package/dist/esm-node/cli/ensure.js +0 -14
  237. package/dist/esm-node/cli/fs.js +0 -18
  238. package/dist/esm-node/cli/get/config.js +0 -19
  239. package/dist/esm-node/cli/get/data.js +0 -96
  240. package/dist/esm-node/cli/get/index.js +0 -22
  241. package/dist/esm-node/cli/is/config.js +0 -50
  242. package/dist/esm-node/cli/is/env.js +0 -12
  243. package/dist/esm-node/cli/is/project.js +0 -105
  244. package/dist/esm-node/cli/is/type.js +0 -36
  245. package/dist/esm-node/cli/logger.js +0 -5
  246. package/dist/esm-node/cli/monorepo.js +0 -67
  247. package/dist/esm-node/cli/package.js +0 -66
  248. package/dist/esm-node/cli/path.js +0 -48
  249. package/dist/esm-node/cli/port.js +0 -48
  250. package/dist/esm-node/cli/prettyInstructions.js +0 -90
  251. package/dist/esm-node/cli/require.js +0 -111
  252. package/dist/esm-node/cli/route.js +0 -60
  253. package/dist/esm-node/cli/runtimeExports.js +0 -38
  254. package/dist/esm-node/cli/version.js +0 -26
  255. package/dist/esm-node/cli/watch.js +0 -45
  256. package/dist/esm-node/compiled.js +0 -66
  257. package/dist/esm-node/import.js +0 -11
  258. package/dist/esm-node/universal/constants.js +0 -32
  259. package/dist/esm-node/universal/formatWebpack.js +0 -102
  260. package/dist/esm-node/universal/path.js +0 -6
  261. package/dist/esm-node/universal/pluginDagSort.js +0 -50
  262. package/dist/types/cli/action.d.ts +0 -2
  263. package/dist/types/universal/formatWebpack.d.ts +0 -26
  264. /package/dist/{esm-node/cli/is/index.js → esm/cli/is/index.mjs} +0 -0
  265. /package/dist/{esm-node/index.js → esm/index.mjs} +0 -0
@@ -1,69 +0,0 @@
1
- /**
2
- * @license React
3
- * react-server-dom-webpack-node-register.js
4
- *
5
- * Copyright (c) Meta Platforms, Inc. and affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */
10
-
11
- "use strict";
12
- const acorn = require("acorn-loose"),
13
- url = require("url"),
14
- Module = require("module");
15
- module.exports = function () {
16
- const Server = require("react-server-dom-webpack/server"),
17
- registerServerReference = Server.registerServerReference,
18
- createClientModuleProxy = Server.createClientModuleProxy,
19
- originalCompile = Module.prototype._compile;
20
- Module.prototype._compile = function (content, filename) {
21
- if (
22
- -1 === content.indexOf("use client") &&
23
- -1 === content.indexOf("use server")
24
- )
25
- return originalCompile.apply(this, arguments);
26
- try {
27
- var body = acorn.parse(content, {
28
- ecmaVersion: "2024",
29
- sourceType: "source"
30
- }).body;
31
- } catch (x) {
32
- return (
33
- console.error("Error parsing %s %s", url, x.message),
34
- originalCompile.apply(this, arguments)
35
- );
36
- }
37
- var useClient = !1,
38
- useServer = !1;
39
- for (var i = 0; i < body.length; i++) {
40
- var node = body[i];
41
- if ("ExpressionStatement" !== node.type || !node.directive) break;
42
- "use client" === node.directive && (useClient = !0);
43
- "use server" === node.directive && (useServer = !0);
44
- }
45
- if (!useClient && !useServer) return originalCompile.apply(this, arguments);
46
- if (useClient && useServer)
47
- throw Error(
48
- 'Cannot have both "use client" and "use server" directives in the same file.'
49
- );
50
- useClient &&
51
- ((body = url.pathToFileURL(filename).href),
52
- (this.exports = createClientModuleProxy(body)));
53
- if (useServer)
54
- if (
55
- (originalCompile.apply(this, arguments),
56
- (useServer = url.pathToFileURL(filename).href),
57
- (body = this.exports),
58
- "function" === typeof body)
59
- )
60
- registerServerReference(body, useServer, null);
61
- else
62
- for (useClient = Object.keys(body), i = 0; i < useClient.length; i++) {
63
- node = useClient[i];
64
- const value = body[useClient[i]];
65
- "function" === typeof value &&
66
- registerServerReference(value, useServer, node);
67
- }
68
- };
69
- };
@@ -1,399 +0,0 @@
1
- /**
2
- * @license React
3
- * react-server-dom-webpack-plugin.js
4
- *
5
- * Copyright (c) Meta Platforms, Inc. and affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */
10
-
11
- "use strict";
12
- var path = require("path"),
13
- url = require("url"),
14
- asyncLib = require("neo-async"),
15
- acorn = require("acorn-loose"),
16
- ModuleDependency = require("webpack/lib/dependencies/ModuleDependency"),
17
- NullDependency = require("webpack/lib/dependencies/NullDependency"),
18
- Template = require("webpack/lib/Template"),
19
- webpack = require("webpack");
20
- function _unsupportedIterableToArray(o, minLen) {
21
- if (o) {
22
- if ("string" === typeof o) return _arrayLikeToArray(o, minLen);
23
- var n = Object.prototype.toString.call(o).slice(8, -1);
24
- "Object" === n && o.constructor && (n = o.constructor.name);
25
- if ("Map" === n || "Set" === n) return Array.from(o);
26
- if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
27
- return _arrayLikeToArray(o, minLen);
28
- }
29
- }
30
- function _arrayLikeToArray(arr, len) {
31
- if (null == len || len > arr.length) len = arr.length;
32
- for (var i = 0, arr2 = Array(len); i < len; i++) arr2[i] = arr[i];
33
- return arr2;
34
- }
35
- function _createForOfIteratorHelper(o, allowArrayLike) {
36
- var it;
37
- if ("undefined" === typeof Symbol || null == o[Symbol.iterator]) {
38
- if (
39
- Array.isArray(o) ||
40
- (it = _unsupportedIterableToArray(o)) ||
41
- (allowArrayLike && o && "number" === typeof o.length)
42
- ) {
43
- it && (o = it);
44
- var i = 0;
45
- allowArrayLike = function () {};
46
- return {
47
- s: allowArrayLike,
48
- n: function () {
49
- return i >= o.length ? { done: !0 } : { done: !1, value: o[i++] };
50
- },
51
- e: function (e) {
52
- throw e;
53
- },
54
- f: allowArrayLike
55
- };
56
- }
57
- throw new TypeError(
58
- "Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."
59
- );
60
- }
61
- var normalCompletion = !0,
62
- didErr = !1,
63
- err;
64
- return {
65
- s: function () {
66
- it = o[Symbol.iterator]();
67
- },
68
- n: function () {
69
- var step = it.next();
70
- normalCompletion = step.done;
71
- return step;
72
- },
73
- e: function (e) {
74
- didErr = !0;
75
- err = e;
76
- },
77
- f: function () {
78
- try {
79
- normalCompletion || null == it.return || it.return();
80
- } finally {
81
- if (didErr) throw err;
82
- }
83
- }
84
- };
85
- }
86
- const isArrayImpl = Array.isArray;
87
- class ClientReferenceDependency extends ModuleDependency {
88
- constructor(request) {
89
- super(request);
90
- }
91
- get type() {
92
- return "client-reference";
93
- }
94
- }
95
- const clientFileName = require.resolve("../client.browser.js");
96
- class ReactFlightWebpackPlugin {
97
- constructor(options) {
98
- this.serverConsumerManifestFilename =
99
- this.clientManifestFilename =
100
- this.chunkName =
101
- this.clientReferences =
102
- void 0;
103
- if (!options || "boolean" !== typeof options.isServer)
104
- throw Error(
105
- "React Server Plugin: You must specify the isServer option as a boolean."
106
- );
107
- if (options.isServer) throw Error("TODO: Implement the server compiler.");
108
- options.clientReferences
109
- ? "string" !== typeof options.clientReferences &&
110
- isArrayImpl(options.clientReferences)
111
- ? (this.clientReferences = options.clientReferences)
112
- : (this.clientReferences = [options.clientReferences])
113
- : (this.clientReferences = [
114
- { directory: ".", recursive: !0, include: /\.(js|ts|jsx|tsx)$/ }
115
- ]);
116
- "string" === typeof options.chunkName
117
- ? ((this.chunkName = options.chunkName),
118
- /\[(index|request)\]/.test(this.chunkName) ||
119
- (this.chunkName += "[index]"))
120
- : (this.chunkName = "client[index]");
121
- this.clientManifestFilename =
122
- options.clientManifestFilename || "react-client-manifest.json";
123
- this.serverConsumerManifestFilename =
124
- options.serverConsumerManifestFilename || "react-ssr-manifest.json";
125
- }
126
- apply(compiler) {
127
- const _this = this;
128
- let resolvedClientReferences,
129
- clientFileNameFound = !1;
130
- compiler.hooks.beforeCompile.tapAsync(
131
- "React Server Plugin",
132
- (_ref, callback) => {
133
- _ref = _ref.contextModuleFactory;
134
- const contextResolver = compiler.resolverFactory.get("context", {}),
135
- normalResolver = compiler.resolverFactory.get("normal");
136
- _this.resolveAllClientFiles(
137
- compiler.context,
138
- contextResolver,
139
- normalResolver,
140
- compiler.inputFileSystem,
141
- _ref,
142
- function (err, resolvedClientRefs) {
143
- err
144
- ? callback(err)
145
- : ((resolvedClientReferences = resolvedClientRefs), callback());
146
- }
147
- );
148
- }
149
- );
150
- compiler.hooks.thisCompilation.tap(
151
- "React Server Plugin",
152
- (compilation, _ref2) => {
153
- _ref2 = _ref2.normalModuleFactory;
154
- compilation.dependencyFactories.set(ClientReferenceDependency, _ref2);
155
- compilation.dependencyTemplates.set(
156
- ClientReferenceDependency,
157
- new NullDependency.Template()
158
- );
159
- compilation = (parser) => {
160
- parser.hooks.program.tap("React Server Plugin", () => {
161
- const module = parser.state.module;
162
- if (
163
- module.resource === clientFileName &&
164
- ((clientFileNameFound = !0), resolvedClientReferences)
165
- )
166
- for (let i = 0; i < resolvedClientReferences.length; i++) {
167
- const dep = resolvedClientReferences[i];
168
- var chunkName = _this.chunkName
169
- .replace(/\[index\]/g, "" + i)
170
- .replace(/\[request\]/g, Template.toPath(dep.userRequest));
171
- chunkName = new webpack.AsyncDependenciesBlock(
172
- { name: chunkName },
173
- null,
174
- dep.request
175
- );
176
- chunkName.addDependency(dep);
177
- module.addBlock(chunkName);
178
- }
179
- });
180
- };
181
- _ref2.hooks.parser
182
- .for("javascript/auto")
183
- .tap("HarmonyModulesPlugin", compilation);
184
- _ref2.hooks.parser
185
- .for("javascript/esm")
186
- .tap("HarmonyModulesPlugin", compilation);
187
- _ref2.hooks.parser
188
- .for("javascript/dynamic")
189
- .tap("HarmonyModulesPlugin", compilation);
190
- }
191
- );
192
- compiler.hooks.make.tap("React Server Plugin", (compilation) => {
193
- compilation.hooks.processAssets.tap(
194
- {
195
- name: "React Server Plugin",
196
- stage: webpack.Compilation.PROCESS_ASSETS_STAGE_REPORT
197
- },
198
- function () {
199
- if (!1 === clientFileNameFound)
200
- compilation.warnings.push(
201
- new webpack.WebpackError(
202
- "Client runtime at react-server-dom-webpack/client was not found. React Server Components module map file " +
203
- _this.clientManifestFilename +
204
- " was not created."
205
- )
206
- );
207
- else {
208
- var configuredCrossOriginLoading =
209
- compilation.outputOptions.crossOriginLoading;
210
- configuredCrossOriginLoading =
211
- "string" === typeof configuredCrossOriginLoading
212
- ? "use-credentials" === configuredCrossOriginLoading
213
- ? configuredCrossOriginLoading
214
- : "anonymous"
215
- : null;
216
- var resolvedClientFiles = new Set(
217
- (resolvedClientReferences || []).map((ref) => ref.request)
218
- ),
219
- clientManifest = {},
220
- moduleMap = {};
221
- configuredCrossOriginLoading = {
222
- moduleLoading: {
223
- prefix: compilation.outputOptions.publicPath || "",
224
- crossOrigin: configuredCrossOriginLoading
225
- },
226
- moduleMap
227
- };
228
- var runtimeChunkFiles = new Set();
229
- compilation.entrypoints.forEach((entrypoint) => {
230
- (entrypoint = entrypoint.getRuntimeChunk()) &&
231
- entrypoint.files.forEach((runtimeFile) => {
232
- runtimeChunkFiles.add(runtimeFile);
233
- });
234
- });
235
- compilation.chunkGroups.forEach(function (chunkGroup) {
236
- function recordModule(id, module) {
237
- if (
238
- resolvedClientFiles.has(module.resource) &&
239
- ((module = url.pathToFileURL(module.resource).href),
240
- void 0 !== module)
241
- ) {
242
- const ssrExports = {};
243
- clientManifest[module] = { id, chunks, name: "*" };
244
- ssrExports["*"] = { specifier: module, name: "*" };
245
- moduleMap[id] = ssrExports;
246
- }
247
- }
248
- const chunks = [];
249
- chunkGroup.chunks.forEach(function (c) {
250
- var _iterator = _createForOfIteratorHelper(c.files),
251
- _step;
252
- try {
253
- for (_iterator.s(); !(_step = _iterator.n()).done; ) {
254
- const file = _step.value;
255
- if (!file.endsWith(".js")) break;
256
- if (file.endsWith(".hot-update.js")) break;
257
- chunks.push(c.id, file);
258
- break;
259
- }
260
- } catch (err) {
261
- _iterator.e(err);
262
- } finally {
263
- _iterator.f();
264
- }
265
- });
266
- chunkGroup.chunks.forEach(function (chunk) {
267
- chunk = compilation.chunkGraph.getChunkModulesIterable(chunk);
268
- Array.from(chunk).forEach(function (module) {
269
- const moduleId = compilation.chunkGraph.getModuleId(module);
270
- recordModule(moduleId, module);
271
- module.modules &&
272
- module.modules.forEach((concatenatedMod) => {
273
- recordModule(moduleId, concatenatedMod);
274
- });
275
- });
276
- });
277
- });
278
- var clientOutput = JSON.stringify(clientManifest, null, 2);
279
- compilation.emitAsset(
280
- _this.clientManifestFilename,
281
- new webpack.sources.RawSource(clientOutput, !1)
282
- );
283
- configuredCrossOriginLoading = JSON.stringify(
284
- configuredCrossOriginLoading,
285
- null,
286
- 2
287
- );
288
- compilation.emitAsset(
289
- _this.serverConsumerManifestFilename,
290
- new webpack.sources.RawSource(configuredCrossOriginLoading, !1)
291
- );
292
- }
293
- }
294
- );
295
- });
296
- }
297
- resolveAllClientFiles(
298
- context,
299
- contextResolver,
300
- normalResolver,
301
- fs,
302
- contextModuleFactory,
303
- callback
304
- ) {
305
- function hasUseClientDirective(source) {
306
- if (-1 === source.indexOf("use client")) return !1;
307
- let body;
308
- try {
309
- body = acorn.parse(source, {
310
- ecmaVersion: "2024",
311
- sourceType: "module"
312
- }).body;
313
- } catch (x) {
314
- return !1;
315
- }
316
- for (source = 0; source < body.length; source++) {
317
- const node = body[source];
318
- if ("ExpressionStatement" !== node.type || !node.directive) break;
319
- if ("use client" === node.directive) return !0;
320
- }
321
- return !1;
322
- }
323
- asyncLib.map(
324
- this.clientReferences,
325
- (clientReferencePath, cb) => {
326
- "string" === typeof clientReferencePath
327
- ? cb(null, [new ClientReferenceDependency(clientReferencePath)])
328
- : contextResolver.resolve(
329
- {},
330
- context,
331
- clientReferencePath.directory,
332
- {},
333
- (err, resolvedDirectory) => {
334
- if (err) return cb(err);
335
- contextModuleFactory.resolveDependencies(
336
- fs,
337
- {
338
- resource: resolvedDirectory,
339
- resourceQuery: "",
340
- recursive:
341
- void 0 === clientReferencePath.recursive
342
- ? !0
343
- : clientReferencePath.recursive,
344
- regExp: clientReferencePath.include,
345
- include: void 0,
346
- exclude: clientReferencePath.exclude
347
- },
348
- (err2, deps) => {
349
- if (err2) return cb(err2);
350
- err2 = deps.map((dep) => {
351
- var request = path.join(
352
- resolvedDirectory,
353
- dep.userRequest
354
- );
355
- request = new ClientReferenceDependency(request);
356
- request.userRequest = dep.userRequest;
357
- return request;
358
- });
359
- asyncLib.filter(
360
- err2,
361
- (clientRefDep, filterCb) => {
362
- normalResolver.resolve(
363
- {},
364
- context,
365
- clientRefDep.request,
366
- {},
367
- (err3, resolvedPath) => {
368
- if (err3 || "string" !== typeof resolvedPath)
369
- return filterCb(null, !1);
370
- fs.readFile(
371
- resolvedPath,
372
- "utf-8",
373
- (err4, content) => {
374
- if (err4 || "string" !== typeof content)
375
- return filterCb(null, !1);
376
- err4 = hasUseClientDirective(content);
377
- filterCb(null, err4);
378
- }
379
- );
380
- }
381
- );
382
- },
383
- cb
384
- );
385
- }
386
- );
387
- }
388
- );
389
- },
390
- (err, result) => {
391
- if (err) return callback(err);
392
- err = [];
393
- for (let i = 0; i < result.length; i++) err.push.apply(err, result[i]);
394
- callback(null, err);
395
- }
396
- );
397
- }
398
- }
399
- module.exports = ReactFlightWebpackPlugin;